1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,管理系统模拟,华中科技大学 肖人彬 等,电子工业出版社,2008,高等学校信息管理示范教材,第5章 多智能体模拟,5.1,多智能体模拟的基本概念,5.2,多智能体建模,5.3,多智能体模拟工具,5.4,多智能体模拟工具,AnyLogic,5.1,多智能体模拟的基本概念,一、智能体的定义,智能体是一种处于一定环境下包装的计算机系统,为了实现设计目的,它能在那种环境下灵活地、自主地活动。,系统具有如下的特性:,1.,自主性
2、5.,移动性,2.,社会性,6.,理性,3.,反应性,7.,诚实性,4.,合作性,8.,友好性,5.1,多智能体模拟的基本概念,二、智能体与对象,(1)对象的定义,对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位。一个对象由一组属性和对这组属性进行操作的一组服务(即方法)组成。,5.1,多智能体模拟的基本概念,(2)智能体与对象的区别,自治程度不同。,自治行为的灵活性(自治性、反应性、社会性)不同。,智能体组成的系统,对每一个智能体来说,它都有自己独立的控制线程;而在标准的对象模型中,整个系统才有一个控制线程。,注意:尽管智能体与对象有着重大的区别,但这并不妨碍用面向对象技
3、术来实现智能体,。,5.1,多智能体模拟的基本概念,三、多智能体系统概述,(1)多智能体系统的出现及发展,多智能体系统,(Multi-Agent System,,,MAS),是分布式人工智能,(Distributed Artificial Intelligence,,,DAI),研究的一个前沿领域,,MAS,的研究重点在于如何协调系统中多个智能体的行为使其协同工作。,5.1,多智能体模拟的基本概念,(2)多智能体系统的特点,5.,在多智能体系统中,智能体之间相互通讯,彼此协调,并行地求解问题。,6.,同一个多智能体系统中各个智能体可以异构。,7.,多智能体技术打破了当前知识工程领域中仅使用一个
4、专家系统的限制。,5.1,多智能体模拟的基本概念,(三)多智能体系统的求解机制,1.,交互作用,智能体的八类交互行为,目标,资源,能力,可能的交互状态类型,兼容,充足,满足,独立完成,不需交互,兼容,充足,不满足,简单合作(如采用通信方式),兼容,不充足,满足,阻塞(如遇到交通堵塞),兼容,不充足,不满足,有协调的合作,不兼容,充足,满足,各体竞争(如赛跑),不兼容,充足,不满足,群体间的竞争(如团队竞争),不兼容,不充足,满足,个体间对资源的冲突,不兼容,不充足,不满足,群体间对资源的冲突,5.1,多智能体模拟的基本概念,2.,合作与协调,分解与派发任务的两种方式:,(,1,)集中式分配,设
5、立一个专门的智能体来充当“协调者”的角色,将任务分解并根据各个智能体的能力将子任务分发。,(,2,)分布式分配,各个智能体根据它自己的任务要求,在无法独立完成时,请求其它智能体提供服务,这种服务的请求不是强制性的。,5.1,多智能体模拟的基本概念,3.,通信,智能体间的交互、合作与协调都是通过通信来完成的。,信息的传递有同步与异步两种方式,。,同步:当智能体发送消息后将会等待,知道接到答复为止。,异步:智能体发出消息后并不等待,继续它的活动,而不论是否接到了答复。,5.1,多智能体模拟的基本概念,(四)多智能体系统的各领域应用,多智能体在各个领域中的应用包括:,1.,智能机器人,5.,分布式预
6、测,2.,交通控制,6.,监控及诊断,3.,柔性制造,7.,分布式智能决策,4.,协调专家系统,8.,软件开发,5.1,多智能体模拟的基本概念,(四)多智能体系统的各领域应用,多智能体在各个领域中的应用包括:,9.,虚拟实现,10.,网络自动化与智能化,11.,分布式计算,12.,产品设计,13.,商业管理,14.,网络化的办公自动化,15.,网络化计算机辅助教学,16.,医疗,5.2,多智能体建模,一、多智能体建模概述,(一)基于智能体建模的思想,基于智能体建模思想的三大要素:智能体、智能和交互。,智能体是一个自治的计算实体,它可以通过感应器(物理的或软件的)来感知环境,并通过效应器作用于环
7、境。,智能是根据研究的需要和技术的可行性,使智能体具有合适的智能特性(如理性、诚实性等)。,交互是指智能体可以被其他的为追求自己的子目标而执行相应任务的智能体(或人)所影响。交互可以通过他们之间共享的环境或共享的语言来实现。,5.2,多智能体建模,(二)多智能体模拟系统的模拟思路,传统的模拟思路。,通过对系统整体结构与功能的分析,寻找其中规律,建立确定的逻辑模型,并使模型沿着某一变量(如时间)进行逐步演算,得到模拟结果,其本质是在计算机中还原实际系统。,多智能体模拟系统的模拟思路。,采用自下而上的研究方法,通过对系统个体特征和行为的研究,建立个体特征和行为的模型,将个体映射为智能体,将个体特征
8、映射为智能体的属性,将个体行为映射为智能体的方法,利用智能体间的自治、推理、通讯和协作机制,模拟个体间相互独立又交互作用的现象,从而研究系统的整体结构和功能。,5.2,多智能体建模,(三)多智能体模拟的优势,1.,广泛适用性。,多智能体系统模拟技术是对传统的基于模块和面向对象的模拟技术的继承与发展,使多智能体模拟系统具有广泛适用性。,2.,智能性和交互性。,单个智能体的智能是有限的,多智能体系统通过适当的体系结构把智能体组织起来,从而弥补各个智能体的不足,使得整个系统的能力超过任何单个智能体的能力。,3.,分布性和移动性。,基于分布式计算的智能体,具有分布性和移动性,可以运行在网络中的任意位置
9、更适合群体决策的需要,。,5.2,多智能体建模,二、多智能体系统分析,面向智能体的系统分析,就是用智能体来抽象所研究(或要开发)的系统并建立系统模型。,基于智能体的系统模型的层次,买方,6,买方,8,买方,5,买方,3,买方,4,买方,7,买方,1,买方,2,卖方,1,交,互,关,系,属性集,行为集,属性集,行为集,卖方,2,卖方智能体,5.2,多智能体建模,(,1,)规划单个智能体,智能体抽象的基本原则:从系统的物理结构出发,围绕着系统的目标来对系统进行抽象。,异质智能体与同质智能体的处理。,处理方法:将异质的智能体分别形成相应的智能体类,而将同质的多个智能体的抽象归结为一个智能体类。,抽
10、象的粒度。,粒度太小,系统重组的灵活性增加、适应性增强,但由于规模大,系统的组织与控制的复杂程度增加、通信负载重、相应的运行效率也低;,拉度太大,则系统灵活性差,并且降低了系统的并行性,但系统结构简单,管理和控制更容易。,5.2,多智能体建模,集中服务智能体,集中服务智能体:确定了实体智能体(即类型智能体)后,有时为了实现系统的目标,设计的一些其他辅助智能体,为一个智能体群体提供某些共同的服务,或是为研究人员(或用户)提供有关这个智能体群体的信息。,移动智能体,物理上分布的系统来说,为了传输信息或执行特定的功能,可能还需要一些移动智能体,如在分布式模拟系统中和分布式应用系统中就存在这种需求;对
11、于单机系统的建模与模拟可不考虑。,5.2,多智能体建模,(,2,)多智能体群体的体系结构和交互关系分析,1.,智能体之间的依赖关系,如果一个智能体需要另一个智能体帮助实现自己的目标,则称两个智能体之间存在依赖关系。,依赖关系可分为以下几种:,1,)独立:智能体之间没有依赖关系。,5.2,多智能体建模,(,2,)多智能体群体的体系结构和交互关系分析,1.,智能体之间的依赖关系,1,)独立:智能体之间没有依赖关系。,2,)单向依赖:一个智能体单向依赖另一个智能体。,3,)相互依赖:为了共同的目标,两个智能体相互依赖。,4,)交叉依赖:为了某一目标第一个智能体依赖于第二个智能体,而第二个智能体为了实
12、现某一目标也依赖于第一个智能体(两个目标不必相同)。相互依赖蕴涵着交互依赖。,5.2,多智能体建模,2.,智能体之间的协商,一个协商框架包含,4,个部分:,1,)一个协商集合,表示智能体可能提出建议的空间;,2,)一个协议,定义智能体提出的合法的建议,它是先验的协商历史的函数;,3,)一组策略,每个智能体一个策略,决定了智能体将会提出什么建议;,4,)一条规则,决定什么时候达成交易以及交易内容。,5.2,多智能体建模,2.,智能体之间的协商,三种协商情况:,1,)一对一协商,2,)多对一协商,3,)多对多协商,5.2,多智能体建模,(,3,)智能体间的关联结构设计。,各智能体之间的关联结构,5
13、2,多智能体建模,(三)单个智能体的特征行为建模分析,智能体由事件感知器、外部效应执行器、方法集和内部状态集等三个主要部分构成,环境指智能体本体以外的软件系统(主要是其它智能体)和用户。,智能体的事件感知器时刻捕捉所关注的事件状态的出现,并根据事件状态的类型启动相应事件处理分发器,进而执行有关事件的处理。,5.2,多智能体建模,(三)单个智能体的特征行为建模分析,智能体的方法集是其大脑,决定了该智能体的能力,描述了智能体处理相关事件的方法。,方法的执行由事件处理分发器引发。,智能体的内部状态集是表现该智能体当前状态的成分,其中包括表征事件的状态。,5.2,多智能体建模,智能体的通用模型,5.
14、2,多智能体建模,三、病毒传播实例分析,通过多智能体模拟工具,Agentsheets,制作的病毒传播实例进行说明多智能体模型的系统分析。,假设:,1.,假设这是一个封闭的区域,区域中有医生、正常人、感染者三类人;,2.,假设人在移动的过程中会发生接触传染,人只在划定的区间中移动;,3.,假设不考虑感染者治愈后的不具备免疫能力;,4.,假设医生在移动过程中不会被感染。,5.2,多智能体建模,(一)规划智能体,三种智能体规划方案的比较。,1.,建立一种智能体(包括医生、正常人、感染者);,2.,建立三种智能体(医生、正常人、感染者各为一类智能体);,3.,建立两种智能体(医生智能体、正常人和感染者
15、合为另一类智能体)。,第三种方案建立的模拟模型与实际系统类似,同时考虑了正常人和感染者的属性和行为存在相似性,使模型更加简洁。,注意:,特殊智能体:环境智能体,是其他智能体存在和交互的基础。,5.2,多智能体建模,(二)智能体行为建模,智能体行为交互模型,5.2,多智能体建模,(三)病毒传播实例制作过程,1.,新建工程,在菜单中选择“,File-New Project,”,选择工程存放的路径,建立一个工程命名,Virus Attack,的工程文件,最后单击,OK,。,2.,设置智能体的大小,进入到,Define Agent Size,界面,单击下拉菜单,选择“,Custome,”,然后设定智能
16、体的高和宽,最后单击,OK,。,3.,定义智能体,进入了,Gallery,界面,单击“,New Agent,”按钮,给智能体的命名为,person,,单击,OK,。,在,Gallery,界面中选择,person,,然后在此界面中单击“,Edit Depiction,”按钮,改变,person,的外观。,5.2,多智能体建模,4.,新建运行环境,主界面中选择“,File-New Worksheet,”,出现一个,Worksheet,,按,Ctrl+S,或者在菜单中选择“,File-Save,”,出现对话框,选择所要存放的路径,填写,Worksheet,的名字,Epidemic,,按,OK,。,W
17、orksheet(Epidemic),,如图所示,在,Grallery,界面中选中,person,,在,Epidemic,中选择铅笔图标,接下来就可以在,Epidemic,中任意位置添加不生病的,person,,同理添加医生智能体和人智能体中感染者。,5.,设置智能体运行条件,双击,Gallery,窗口医生智能体,出现,Doctor Behavior,设置窗口,为医生智能体设置运行条件和运行行为。,6.,病毒传播的运行结果,在运行环境,Epdemic,窗口中点击“,Run,”按钮。,5.2,多智能体建模,病毒传播的运行结果,5.3,多智能体模拟工具,1.NetLogo,NetLogo,是美国西
18、北大学网络学习和计算机建模中心推出的可编程建模环境。该系统是采用,1.4.1,版,Java,语言编写的,因此能够在多种主流平台上运行,(Mac,、,Windows,、,Linux,等,),。它同时提供单机和网络环境两种版本,每个模型还可以保存为,Java applets,,可嵌入到网页上运行。,目前,NetLogo,更新频繁,,2004,年,8,月发布了,2.0.2,版,,9,月,15,日又推出了,NetLogo 2.1,的,beta2,版。对于教学和科研等非商业目的应用可免费下载,其网址是:,ccl.northwestern.edu/netlogo/,。,5.3,多智能体模拟工具,2.Sta
19、rLogo,StarLogo,是在美国自然科学基金会和乐高集团,(LEGO Group),赞助下,由麻省理工学院多媒体实验室开发的基于智能体的可编程建模环境。早期版本的,StarLogo,只能在,Macintosh,机器上运行,,2000,年,2,月发布了基于,Java,的版本,摆脱了计算机平台的限制。,2004,年,6,月推出了,StarLogo 2.1,版,其网址是:,education.mit.edu/starlogo/,。,上面介绍的,StarLogo,和,NetLogo,系统本身提供很多内置原语,支持多主体建模和并行操作,用于建立模型的编程语言是一种扩展的,Logo,语言的“方言”。
20、5.3,多智能体模拟工具,3.Swarm,Swarm,是一个多智能体复杂系统模拟软件工具集,最初是由圣达菲研究所于,1994,年用一种被称为,GNU Objective-C,的扩展,C,语言开发的,其目的是为研究人员进行多智能体建模提供可用工具。,2004,年,6,月发布了,Windows XP,下运行的,Swarm2.1.1,版,具体下载网址是:,eco83.econ.unito.it/swarm/materiale/cd/,。,从,2004,年,3,月起,,Swarm,网站迁移到新址:,wiki.swarm.org/,。,5.3,多智能体模拟工具,4.Repast,Repast,是,Re
21、cursive Porus Agent Simulation,的缩写。这是一个用,Java,开发的基于智能体的模拟框架。,Repast,从,Swarm,中借鉴了很多设计理念,形成一个“类,Swarm,”的模拟软件架构。,Repast,最初由芝加哥大学的社会科学计算实验室开发研制的,后来俄勒岗国家实验室维护了一段时间,现在由来自政府、教育界和行业组织成员组成的非赢利机构管理。,参考网址:,TNG Lab,TNG Lab,代表,Trade Network Game Laboratory(,商业网络博弈实验室,),,它是美国爱荷华州立大学的,McFadzean,、,Stewart,和,Tesfats
22、ion,用,C+,开发的软件包。,参考网址:,www.econ.iastate.edu/tesfatsi/tnghome.htm,。,TNG Lab,有标准组件,并具有可扩展性,操作相对比较简单。它适于作为经济研究和教学的工具。,5.3,多智能体模拟工具,6.JES,JES,是意大利都灵大学,Pietro Terna,用,Java,开发的企业模拟项目,这是一个在,Java,版的本的,Swarm,基础上开发的模型架构,可用于测试带有不同目标的模拟企业的动态行为,并可进一步对虚拟企业的创建、发展,以及企业之间网络关系进行理论分析。,参考网址:,web.econ.unito.it/terna/jes
23、/,。,5.3,多智能体模拟工具,7.Ascape,Ascape,代表,Agent Landscape,的意思,它是美国布鲁金斯研究所的,Miles T.Parker,开发的基于智能体建模平台。,Ascape,全部用,Java,语言实现,可以在,Windows、Macintosh、Unix、Linux,以及网络环境下使用。因为,Ascape,有选择性地使用了,Java 1.2 API,,其网络应用可以在任何浏览器中使用。开发者于2000年10月推出,Ascape 1.9.1,版,参考网址:,www.brookings.edu/es/dynamics/models/ascape/main.htm
24、/,5.3,多智能体模拟工具,8.,其他,1.Ecolab,2.MASON,3.ABLE,4.Cougaar,5.4,模拟工具,AnyLogic,一、,AnyLogic,的建模思想和方法,AnyLogic,模型的主要构建模块是活动对象(,active object,)。活动对象可以用于建模现实世界中类型广泛的各种对象,例如加工工作台,资源,人员,硬件,具体的物体,控制器等等。,类等级结构:,1,.,活动对象继承,2.,等级化分解,3.,结构分解,4.,活动对象重用,5.4,模拟工具,AnyLogic,AnyLogic,强大而灵活,并提供多种建模方法:,(1),基于,UML,语言的面向对象的建模
25、方法,(2),基于方图的流程图建模方法,(3)Statecharts,(状态机),分为普通的和混合的,(4),微分和代数方程,(5),用,Java,建模,活动对象有其内部结构和行为,可以任意向下封装其他对象。,活动对象通过边界对象与周围交互作用。,5.4,模拟工具,AnyLogic,二、多智能体模拟实例,本章用基于多智能体模拟技术,探讨从消费者的购买行为出发,一步步深入,研究新产品的市场扩散问题。,模型假设:,1.,无竞争和替代产品,市场潜力不变;,2.,不存在创新;,3.,地域界限固定;,4.,营销战略仅包括广告;,5.,没有供给约束;,6.,购买行为存在随机性;,7.,存在重复购买;,8.
26、产品信息非稳态渗透。,5.4,模拟工具,AnyLogic,将模型规划为两类智能体:,顾客智能体(包括现有顾客和潜在顾客),环境智能体,模型的体系结构框架,5.4,模拟工具,AnyLogic,三、产品生命周期模型,1.,创建一个新的工程,2.,创建智能体并放置于环境中,1,)创建一个智能体,2,)将智能体放置于环境中,3.,定义智能体特性,1,)定义个人受广告影响程度,2,)定义每人每年联系的数目,3,)定义个人的说服力,4,)创建辅助变量,5.4,模拟工具,AnyLogic,4.,定义智能体行为,5.,统计产品客户数量,1,)创建变量,2,)修改状态图,6.,配置模型,1,)设置模型停止条件
27、7.,运行模型,8.,考察模拟过程中系统状态动态变化,1,)创建图表,2,)配置图表,5.4,模拟工具,AnyLogic,模拟运行结果,5.4,模拟工具,AnyLogic,9.,考虑口碑的影响,1,)修改状态图,10.,加入产品消耗因,1,)定义产品的平均寿命时间,2,)修改状态图,11.,创建空间模型,1,)定义人的地点,2,)创建函数以计算人们之间的距离,3,)修改状态图,5.4,模拟工具,AnyLogic,考虑口碑后的模拟运行结果,5.4,模拟工具,AnyLogic,加入产品消耗因后,的模拟运行结果,5.4,模拟工具,AnyLogic,创建空间模型后,的模拟运行结果,5.4,模拟工具,
28、AnyLogic,12.,创建动画,(1,)定义人的地点,(2,)创建函数以计算人们之间的距离,(3,)修改状态图,(4,)创建颜色变量,(5,)创建一个动画图表,(6),编辑动画画框,(7),拖动,explored area,动画的限制框,5.4,模拟工具,AnyLogic,12.,创建动画,(8,)绘制智能体,(9,)加入潜在客户数量指示器,(10,)加入现有客户指示器,(11,)向指示器加入描,(12,)加入控件,(13,)移除模型停止条件,(14,)打开抗锯齿,(anti-aliasing),对话框,5.4,模拟工具,AnyLogic,模拟运行动画,5.4,模拟工具,AnyLogic,三、扩展产品生命周期模型,1.,广告活动,1,)创建新变量,2,)创建定时器,3,)修改状态图,4,)绘制圆,5.4,模拟工具,AnyLogic,广告活动模拟运行动画,5.4,模拟工具,AnyLogic,三、扩展产品生命周期模型,2.,人群移动,1,)创建辅助变量,2,)创建定时器,3,)智能体的平滑移动,4,)修改智能体的动画形状,5.4,模拟工具,AnyLogic,人群移动模拟运行动画,






