您好,欢迎访问三七文档
1Swarm用户指南Swarm开发组PaulJohnson堪萨斯州大学政治科学系pauljohn@ukans.eduAlexLanchaster圣塔菲研究所alex@santafe.edu译者柳泉波北京师范大学信息学院brookwithy@hotmail.com2Swarm用户指南Swarm开发组PaulHohnson和AlexLancaster2000年4月10日出版Copyright©1999-2000Swarm开发组Swarm仿真系统的用户指南本文档是由CASA有限公司的BenediktStefansson(以前在UCLA的经济系工作)在1998和1999年的SwarmFest上发表的Swarm教程材料发展而来的。分三个阶段逐步深入的讨论了Swarm工具:第一部分是Swarm的简介;第二部分深入地剖析了Swarm程序;第三部分则详细讨论了用户在使用Swarm开发程序时可那遇到的种种问题。鼓励用户探索Swarm提供的样例程序,并访问Swarm站点()来了解最新消息和加入Swarm邮件列表。PaulJohnson的工作,由国家科学基金会的基金(SBR-9709404)部分支持。Paul是主要的作者,提供了《指南》的主要材料。AlexLancaster负责有关SGML的大部分工作——即在DocBook(见书末)中的锤炼和标记问题,并提供了补充材料和正文。有关Swarm用户指南的许可说明复制本文档需要预先获得版权持有者(Swarm开发组)的书面版权许可,合理的个人使用或者用于教育目的不在此禁。不允许大量分发本文的复制品或者将之用于牟利。生成本文档的SGML源文件以及相关程序在文件包userbook-0.9.tar.gz()。只要遵循GNU一般公共许可(GPL,),那么使用、复制、修改和分发swarmdocs包及其生成的文档(包括HTML、TeX、dvi、PostScript和RTF格式)是允许的。3目录PARTI基本概念...........................................................................................................................................4第一章介绍...........................................................................................................................................4第二章程序设计和仿真........................................................................................................................6第三章面向对象程序设计详论............................................................................................................10第四章Swarm的开发思想...................................................................................................................17第五章图形用户接口.........................................................................................................................20PARTIISwarm应用:样例演示...................................................................................................................24第六章Swarm教程...............................................................................................................................24附录A.Swarm工具...............................................................................................................................82附录BObjectiveC-Swarm风格.........................................................................................................854PARTI基本概念第一章介绍Swarm项目由ChrisLangton于1994年在新墨西哥州的圣塔菲研究所(SantaFeInstitute,,SFI)启动。现在由圣塔菲研究所的非盈利性组织Swarm开发组()负责。目的是为基于多主体仿真模型(即所谓的ABMs,Agent-BasedModels的缩写)的开发提供一系列标准的计算机工具并成为研究者交流的中介。有了Swarm,研究者可以专心于建模任务的本质,避免编程的某些复杂细节。有很多程序员对Swarm项目作出了贡献:RogerBurkhart,NelsonMinar,ManorAskenazi,GlenRopella,SvenThommesen,MarcusDaniels,AlexLancaster,VladimirJojic,和IreneLee。1.1有关Swarm的基本事实Swarm提供了一系列支持仿真程序设计的软件库。最显著的特点包括:Swarm的代码是面向对象的。Swarm库由名为“Objective-C”的计算机语言编写而成,这种语言是C语言的超集。Objective-C提供了创建软件“类”的能力,进而可以创建实例个体,实例是自包含的实体。面向对象程序设计的术语非常适合基于主体模型的讨论。Swarm程序是层次结构的。大部分swarm应用程序大体具有如下的结构。首先,创建最顶层的一级,通常叫做“observerswarm”。“observerswarm”负责屏幕的显示,以及创建下一层,叫做“modelswarm”。然后,“modelswarm”创建主体个体,调度主体的活动,搜集有关主体的信息,并在“observerswarm”需要的时候提供。Swarm提供了很多方便的工具。在手册的后续部分不难发现,Swarm库提供了很多有利于基于主体模型设计的代码。这些工具方便了内存的管理,表的维护,活动的调度以及其他很多琐碎工作。用户通过将Swarm对象集成在自己的程序中创建仿真应用。建议用户仔细研究提供很多的样例程序,以便充分的利用Swarm库的功能,充分体会个中蕴含的建模策略。1.2Swarm是一个动态平台Swarm是自由软件()1。当前版本的Swarm,遵循2GNUGeneralPublicLicense(GPL,)许可。无论是从理论或实际方面考虑,软件开发的自由软件模式都对像Swarm这样的工具特别有效。完全可观察。由于提供了完全的源代码,因此在必要时,建模者可以在操作系统级别上跟踪方针的执行。这对于可重复性是很重要的,最终使得建模者可以(在抽象的数学意义上)证明仿真的正确性。共享开发者的智慧。更实际的原因是,由于Swarm是开源的,我们可以利用开发者的智慧:技术水平比较高的开发者能找出Swarm的缺陷,编写补丁程序,实现新的特性等。GNU/Linux操作系统能够快速而健壮的成长也是由于类似的原因[DiBona等,1999]。随着Swarm的发展,越来越多的程序员和建模者将参与进来。Swarm的开发工作目前由位于新墨西哥州圣塔菲的Swarm开发组()负责。开发结果定期发布在Internet上,用1有时也指“开源”(opensource)软件,有关开源的定义参看。2Swarm库的核心遵循LGPL()许可,但是标准的二进制发布包括了遵守GPL许可的部件,这意味着Swarm是遵守GPL的。5户可以访问相应的源代码。Swarm的开发者们特别希望用户下载代码,进行试验,改进和增强Swarm的功能。采取开源策略的目的是能够综合整个研究社区的贡献。当Swarm的用户对库做了改进,我们鼓励他宣布出来并供他人使用。社区和Swarm团队的这种交互,使得Swarm库可以经常被修订。为了对此有所了解,简要介绍一下本项目的历史。原先Swarm的目的是用于支持XWindows系统的Unix操作系统的。Swarm的第一个测试版发布于1995年。1997年1月,Swarm1.0正式发布,必须运行在Solaris和Linux操作系统上。不久,改进版的Swarm支持DECAlpha平台以及其他Unix的变体。1998年4月,Swarm1.1发布,其应用范围进一步扩展。在CygnusWin32软件包的支持下,Swarm可以在微软Windows95/NT(现在是98)上运行。1999年下半年,Swarm2.0和2.0.1发布,增加了Java层使得Java程序员可以调用Swarm库,支持数据输出为NSCAHDF51格式。由于Swarm仍在发展当中,因此很难精确的预测它的开发路径。目前Swarm开发组的工作重点是使得Swarm可以工作在更多的平台上,有更多的计算机语言支持。例如,Swarm的XML和Schema层原型已经通过测试。1.3成功使用Swarm的前提Swarm的出发点是为设计多主体模型提供一系列的标准化方法。Swarm库的用户并不需要是一个技术高超的程序员2。实际上,由于Swarm的安装过程非常的流水线化,因此只要有合适的硬件平台,任何人都可以轻松的测试Swarm的样例应用程序。对于使用Windows98/NT或Linux操作系统的用户来说,已经有编译好的Swarm库可用,安装就更加轻松了。然而,要创建新的Swarm应用并非易事。因为此时需要生成一个计算机程序。即使Swarm用户不是一个专家级的程序员,他也必须对重要的计算概念有根本的理解。所需要的知识因要创建的模型而异,但至少,必须具备:对计算机程序设计的基本理解。对下列两种面向对象程序设计语言之一有基本的理解:Java或ObjectiveC3。Java学习起来很简单,是一种具有良好的开发工具和文档支持的主流语言。Objective-C也是相当一流的语言,学过C的人学习起来会很简单。因此,没有编程经验的人在创建基于Swarm的模型之前,需要做一些背景准备。如果想用Objective-C实现模型,建议先去找一本有关C语言的基础指南,例如“TheCProgrammingLanguage”[Ketnighan&Ritchie,1988]。两位作者是C语言的实现者
本文标题:swarm中文手册
链接地址:https://www.777doc.com/doc-2861675 .html