第90行: |
第90行: |
| | | |
| Swarm就是许多个体(对象)组成的一个群体,这些个体共享一个行为时间表和内存池。显然“Swarm”有两个主要的组成部分:(1)是一系列对象(Object);(2)这些对象的行为时间表(Action)。时间表就像一个索引引导对象动作的顺序执行。 | | Swarm就是许多个体(对象)组成的一个群体,这些个体共享一个行为时间表和内存池。显然“Swarm”有两个主要的组成部分:(1)是一系列对象(Object);(2)这些对象的行为时间表(Action)。时间表就像一个索引引导对象动作的顺序执行。 |
| + | |
| '''对象''' | | '''对象''' |
| + | |
| 模型“swarm”中的每一项对应模型世界中的每一个对象(个体)。“swarm”中的个体就象系统中的演员,是能够产生动作并影响自身和其他个体的一个实体。模拟包括几组交互的个体。例如,在一个经济学模拟中,个体可能是公司、证券代理人、分红利者和中央银行。 | | 模型“swarm”中的每一项对应模型世界中的每一个对象(个体)。“swarm”中的个体就象系统中的演员,是能够产生动作并影响自身和其他个体的一个实体。模拟包括几组交互的个体。例如,在一个经济学模拟中,个体可能是公司、证券代理人、分红利者和中央银行。 |
| + | |
| '''时间表''' | | '''时间表''' |
| + | |
| 除了对象的集合,模型“swarm”还包括模型中行为的时间表。时间表是一个数据结构,定义了各个对象的独立事件发生的流程,即各事件的执行顺序。通过确定合理的时间调度机制,可以使用户在没有并行环境的状况下也能进行研究工作,也就是说,在并行系统下agent之间复杂的消息传送机制在该swarm中通过行为表的方式可以在单机环境下实现。例如,在狼/兔子这个模拟系统中可能有三种行为:“兔子吃胡萝卜”,“兔子躲避狼的追踪”和“狼吃兔子”。每种行为是一个独立的动作。在时间表中,对这三种行为按照以下顺序排序:“每天,兔子先吃胡萝卜,然后它们躲避狼的追踪,最后狼试图吃兔子”。模型按照这种安排好的事件的执行顺序向前发展,并尽量使这些事件看起来象同步发生的。 | | 除了对象的集合,模型“swarm”还包括模型中行为的时间表。时间表是一个数据结构,定义了各个对象的独立事件发生的流程,即各事件的执行顺序。通过确定合理的时间调度机制,可以使用户在没有并行环境的状况下也能进行研究工作,也就是说,在并行系统下agent之间复杂的消息传送机制在该swarm中通过行为表的方式可以在单机环境下实现。例如,在狼/兔子这个模拟系统中可能有三种行为:“兔子吃胡萝卜”,“兔子躲避狼的追踪”和“狼吃兔子”。每种行为是一个独立的动作。在时间表中,对这三种行为按照以下顺序排序:“每天,兔子先吃胡萝卜,然后它们躲避狼的追踪,最后狼试图吃兔子”。模型按照这种安排好的事件的执行顺序向前发展,并尽量使这些事件看起来象同步发生的。 |
| + | |
| '''输入输出''' | | '''输入输出''' |
| + | |
| 模型“swarm”还包括一系列输入和输出。输入是模型参数:如世界的大小,主体的个数等环境参数。输出是可观察的模型的运行结果:如个体的行为等等。 | | 模型“swarm”还包括一系列输入和输出。输入是模型参数:如世界的大小,主体的个数等环境参数。输出是可观察的模型的运行结果:如个体的行为等等。 |
| | | |
第101行: |
第107行: |
| | | |
| 模型“swarm”只是定义了被模拟的世界。但是一个实验不应只包括实验对象,还应包括用来观察和测量的实验仪器。在Swarm计算机模拟中,这些观察对象放在一个叫观察员“swarm”的“Swarm”中。 观察员“swarm”中最重要的组件是模型“swarm”。 它就像实验室中一个培养皿中的世界,是被观测的对象。观察员对象可以向模型“swarm”输入数据(通过设置模拟参数),也可以从模型“swarm”中读取数据(通过收集个体行为的统计数据)。 | | 模型“swarm”只是定义了被模拟的世界。但是一个实验不应只包括实验对象,还应包括用来观察和测量的实验仪器。在Swarm计算机模拟中,这些观察对象放在一个叫观察员“swarm”的“Swarm”中。 观察员“swarm”中最重要的组件是模型“swarm”。 它就像实验室中一个培养皿中的世界,是被观测的对象。观察员对象可以向模型“swarm”输入数据(通过设置模拟参数),也可以从模型“swarm”中读取数据(通过收集个体行为的统计数据)。 |
| + | |
| | | |
| 与模型“swarm”的设置相同,一个观察员“swarm”也由对象(即实验仪器),行为的时间表和一系列输入输出组成。观察员行为的时间表主要是为了驱动数据收集,即从模型中将数据读出,并画出图表。观察员“swarm”的输入是对观察工具的配置,例如生成哪类图表,输出是观察结果。 | | 与模型“swarm”的设置相同,一个观察员“swarm”也由对象(即实验仪器),行为的时间表和一系列输入输出组成。观察员行为的时间表主要是为了驱动数据收集,即从模型中将数据读出,并画出图表。观察员“swarm”的输入是对观察工具的配置,例如生成哪类图表,输出是观察结果。 |
第109行: |
第116行: |
| | | |
| swarm不仅是一个包含其它对象的容器,还可以是一个不包含其它对象的主体本身。这是最简单的“swarm”情形,它包括一系列规则、刺激和反应。而一个主体自身也可以作为一个“swarm”:一个对象的集合和动作的时间表。在这种情况下,一个主体“swarm”的行为可以由它包含的其它个体的表现来定义。层次模型就是这样由多个“swarm”嵌套构成。例如,你可以为一个居住着单细胞动物的池塘建立模型。在最高层,生成包括个体的“swarm”:“swarm”代表池塘而每个个体代表池塘里的一个动物。动物的细胞也可以看作是由多个个体(细胞质)组成的“swarm”。这时需要连接两个模型,池塘作为一个由细胞组成的“swarm”,细胞也作为一个可分解的“swarm”。 | | swarm不仅是一个包含其它对象的容器,还可以是一个不包含其它对象的主体本身。这是最简单的“swarm”情形,它包括一系列规则、刺激和反应。而一个主体自身也可以作为一个“swarm”:一个对象的集合和动作的时间表。在这种情况下,一个主体“swarm”的行为可以由它包含的其它个体的表现来定义。层次模型就是这样由多个“swarm”嵌套构成。例如,你可以为一个居住着单细胞动物的池塘建立模型。在最高层,生成包括个体的“swarm”:“swarm”代表池塘而每个个体代表池塘里的一个动物。动物的细胞也可以看作是由多个个体(细胞质)组成的“swarm”。这时需要连接两个模型,池塘作为一个由细胞组成的“swarm”,细胞也作为一个可分解的“swarm”。 |
| + | |
| | | |
| 还由于“swarm”可以在模拟运行过程中建立和释放,Swarm可用来建立描述多层次的动态出现的模型。 通过建造模型“swarm” 和观察员“swarm”, 将模型和数据收集分离开,一个完整的实验仪器就建立起来了。就像一个玻璃下的模拟世界,不同的观察员“swarm” 可用来实现不同的数据收集和实现控制协议,但是模型本身没有发生变化。 | | 还由于“swarm”可以在模拟运行过程中建立和释放,Swarm可用来建立描述多层次的动态出现的模型。 通过建造模型“swarm” 和观察员“swarm”, 将模型和数据收集分离开,一个完整的实验仪器就建立起来了。就像一个玻璃下的模拟世界,不同的观察员“swarm” 可用来实现不同的数据收集和实现控制协议,但是模型本身没有发生变化。 |