网站大量收购独家精品文档,联系QQ:2885784924

Swarm-Heatbug代码剖析1532.ppt

  1. 1、本文档共64页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Swarm-Heatbug代码剖析1532.ppt

?SWARM程序实现 代码简介 SWARM程序介绍 HeatBug程序代码介绍 SARS疫情模拟的程序介绍 回顾:Swarm?的结构 一个Swarm模型包括 模型Swarm (ModelSwarm) 观察者Swarm (ObserverSwarm) 分层的“Swarm”可以将模型的数据收集和实现进行分离. ModelSwarm ModelSwarm 是swarm的子类。 ModelSwarm 中的每一个对象对应模型世界中的一个主体。 ModelSwarm包括模型中行为的时间表。 ModelSwarm 还包括一系列输入和输出。输入的是模型参数,如对象的个数、初始值等;输出的是要观测的变量的值及模型的运行结果。 ObserverSwarm ObserverSwarm 同样是swarm的一个子类。 ObserverSwarm 是一个特殊的对象,它可以通过探测器接口观察其它个体。 ObserverSwarm 包括一组个体和一个行为时间表。 ObserverSwarm 的个体是用来观测的探测器以及输出界面,如图表、二维格点等。 ObserverSwarm的行为时间表用来描述各探测器采样的间隔和顺序。 两类SWARM的合并 先建ObserverSwarm 在ObserverSwarm 中建立ModelSwarm 作为自身一个 subswarm,并为它分配内存空间; ModelSwarm 建立模型的主体(agent)以及主体的行为。 Integration of Swarm activities Heatbug模型 这是swarm的经典示例之一,也是swarm的入门example(与HelloWorld有异曲同工之妙)。 我们利用这个模型来观察简单主体如何通过局部信息上的动作产生复杂的全局行为结果。 模型背景 在这模型中,每一个heatbug都是一个主体(agent)。 World有一个特殊的属性——heat,热量经过一定的时间散发和消失。 每一个heatbug都放射出一定的热量,并且都有自己的一个适于自身生存的理想温度。 Heatbug在释放热量的同时,也在向着更接近于适于自己生存的理想温度的附近的点不断移动。 单独一个 heatbug并不能获得足够的热量继续生存,因此它们倾向于聚成一堆的生存,以便获得足够的热量。 模型的开始,随机分布着一定数量的heatbug。 模型运行界面 输出结果显示——光栅图 输出结果显示——折线图 代码剖析 程序清单 StartHeatbugs.java(含main函数) HeatbugObserverSwarm.java(观察者swarm) HeatbugModelSwarm.java(模型swarm) Heatbug.java(heatbug个体) HeatSpace.java(heatspace环境) HeatCell.java(环境中的小单元) HeatbugBatchSwarm.java(功能与HeatbugObserverSwarm.java相同) 面向对象的程序设计(OOP)基础 面向对象的程序设计与多主体建模的基本思想非常吻合。 (静态结构与动态结构) 掌握一门面向对象的程序设计语言,是学习多主体建模工具的必要条件 程序设计中的重要概念回顾 对象Objects 基本语法 构造函数:Constructors 继承性:Inheritance 静态变量:Static 接口:Interfaces 包和引用:Packages Import 主程序函数:The main method 内部类 Inner classes 类路径:Class Path JAR 文档 结构关系总揽 StartHeatbugs是起始程序,它调用HeatbugObserverSwarm(或HeatbugBatchSwarm),由它再调用HeatbugModelSwarm及Heatbug实现,HeatbugModelSwarm调用Heatbug与HeatSpace,Heatbug调用HeatSpace与HeatCell,HeatSpace调用HeatCell。 关系框架图: StartHeatbugs.java …… //(仅以图形方式为例) public class StartHeatbugs { //main() 函数是整个程序开始运行的顶层(top-level),典型的Swarm模拟中,在main()函数里创建一个顶层Swarm 对它建立并激活,然后让它运行 public static void main (String[] args) { //初始化swarm,每个swarm程序都必须要先初始化 Globals.env.initSwarm (……); He

文档评论(0)

liuxiaoyu98 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档