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