1、复杂系统的计算机模拟探索复杂性的模型方法方美琪MQFANGPUBLIC.BTA.NET.CN诞生于秩序与混沌边缘的科学一场激动人心的科学观念的革命瞬间照亮了各个学科领域,其中的原则和思想影响是如此地深远和广泛,以至于绝大多数学科都卷入其中!过去我们用数学给出世界完美的描述,我们很陶醉,以为我们已经认识了世界。但近来我们发现世界其实很复杂,并不确定,偶然的小情况可能放大为决定性的事件,影响了整个历史进程复杂地发展。原来组成系统的个体是有适应性的。个体的适应性就产生了系统的复杂性。用计算机程序描述个体的行为,在一定的框架之下,个体平行地动作起来,这包括个体对外界的适应,偶然的小情况,个体的相互作用
2、.如此,计算机模拟就比较真实地反映了复杂世界的一个个方面。第一节 复杂性科学1.确定性的终结、复杂性科学的兴起2.路径依赖的反思3.复杂性研究的方法第二节 复杂系统1.系统理论2.复杂适应系统第三节 模型与模拟方法1.模型2.建摸与模拟3.模拟软件平台SWARM的介绍4.模拟软件平台STARLOGO的介绍 5.应用举例第一节 复杂性科学 I 确定性的终结、复杂性科学的兴起拉普拉斯决定论宇宙不过是一台机械的钟表 宇宙的未来完全由它的过去决定。世界是可被预知的。只要我们明白了支配宇宙的规律,那么我们就能推察过去,预言未来。宇宙的统一规律已找到了(牛顿),宇宙的图景已被描绘出来了。确定性的乐观诗人蒲
3、柏为伟大的牛顿写下的墓志铭所言:自然和自然的法则在黑夜中隐藏,上帝说,让牛顿去吧 于是一切都已照亮。通向混沌 初始条件的微小变动就会导致轨道完全不一样。“差之毫厘,失之千里”牛顿定律本身虽是确定性的,但它所描述的具体事物,很可能出现随机行为。混沌 =非线性动力学=难以精确求解洛伦兹与气象混沌 1963年的一天,气象学家洛伦兹踱进麻省理工学院的咖啡馆。而在他进来之前,他刚把一个数据输入他那台现在看来工作速度其慢无比的计算机,以验证上一次的结果。他知道结果还需要等一个来小时,他大可一边躲开噪音,一边来悠闲地享受点咖啡。当他回到自己的工作室时,令他惊讶的事发生了:这次的结果与上次的结果在开始时相同,
4、但到后来却出现了很大的差异。他的结果是通过曲线表示的,这就是说两条曲线只是在开始时相吻合,而到后来两者却分道扬镳了。混沌与复杂 复杂是多体系统 多体之间的交互关系是非线性的 单独一个主体的运动轨迹是混沌 系统整体则涌现出一定的秩序和结构例子:湍流与水分子 社会与人 历史规律 经济周期与经济主体 股票行情与股民的行为在传统的社会科学研究中,解释和预测间的过渡看来太随意而缺乏严谨了对一个社会现象的正确解释并不意味必然能够对这个现象的未来进行预测,特别当内在机制中有非线性关系时,这种从解释到预测之间的思维延伸几乎百分之百是不可能的。复杂理论告诉我们,即便我们能够很清楚地界定和完全掌握了对个体行为影响
5、的所有因素,对组织或机构行为的预测仍然是非常不充分的。人类认识实践中的经验教训大自然对人类线性思维的教训 水坝生态 中国垦荒与沙漠化 美国西部的风尘暴 核泄露 人工生态实验的失败失败的逻辑事情因何出错,世间有无妙策为什么为什么铁路信号系统工作正常时,列车仍然会发生撞车事故?为什么为什么所有操作人员警觉地坚守着工作岗位,核反应堆依然会发生灾难性的熔化事故?为什么为什么我们制定得甚好的那么多专业和个人计划,会如此频繁地出岔子?对人类思维方式的反思 德国 心理学迪特里希.德尔纳 思维复杂性研究 用计算机模拟情景试验 让不同的专家以游戏的方式 发掘决策思维模式的一般特征 理性思维的局限性:逻辑严密 线
6、性思维方式 直觉、联想=思维的并行直觉思维整体思维的回归 世界上原来不只存在一种逻辑思维方式 神秘主义思潮和新时代(new age)运动路经依赖 系统的发展与其初始条件紧密相关,与其发展过程中的偶然事件密切相关 个体微不足道的行为可能产生出乎意料的结果马屁股的宽度决定了火星探测发射器的宽度?马屁股的宽度决定了双马马车的车辙宽度 决定了 电车轨道的宽度 电车轨道的宽度决定了铁轨的宽度(修建第一条铁路顺着马车的车辙印记)铁轨的宽度决定了火车的车厢的宽度 决定了火箭发射仓的最大宽度(为了运载方便)决定了火星探测发射器尺寸 故事是颇有趣的。从一定意义上说,今天世界是最先进的运输系统的设计,或许是由两千
7、年前两匹战马的屁股宽度来决定的。历史惯性的力量是多么的强大,要冲破由惯性形成的规则又是多么的艰难。经济领域内的路经依赖 经济领域内的路经锁定:钟表的顺时针,信息化的标准和垄断 微软的战略:当盗版让人们已经习惯于使用windows时,就会受制于它,很多人只会使用装了windows的计算机 高科技的竞争就是标准的竞争 DD格式 无线上网的格式的争议自然科学领域的路径依赖 极其微小的初始状态会成指数的放大,极大地影响了混沌系统的输出 人类对世界的认识实践活动影响了世界科学认识的反思 人类对世界的认识实践活动影响了世界 后现代科学:自然规律是自然的习惯 集体的习惯有被锁定成为既定成俗的倾向个人习惯之间
8、的交互涌现出集体的习惯 自由落体难道是铜球的一种难改的积习?万有引力难道是物质世界的一种惯例?惯性vs习惯 参考:科学的后现代基础英 鲁珀特谢尔德拉克 Sheldrake 网上有个人主页科学认识的反思 科学的自然观,不以人的意志为转移的客观世界是否存在?完全严格的重复试验是否可能?完全严格的重复实验是不可能的 人是否可以第二次踏入同一条河流?反归纳法 归纳得到的现象越多,推广的余地越小 正归纳 归纳得到的现象越多,推广到全部的可能性越大后现代科学 心理学家 麦独孤的老鼠迷宫实验随着实验的重复进行,虽然选定重复实验的老鼠是完全不同的个体,但老鼠的智力却随着实验的重复而递增,后来参加实验的老鼠比前
9、面参加实验的老鼠更快地学会走出迷宫 文化人类学和新时代巫术的兴起 影视界的 波利哈特热复杂系统的特征 涌现 非线性 反馈循环 开放式 部分不能包含整体 路径依赖,与历史相关(混沌特性)多层次嵌套 边界模糊复杂系统研究的议题和范例 发现和应用刻划社会系统、自然系统演化的规律的普适性方法 对人工技术系统(企业信息化、互联网络、数字化生存)的演化规律进行探讨例如:企业信息化建模 信息经济学 人工技术网络和社会网络的脆性研究 网络对社会交往的影响 交往媒介的革新与社会文化的变革等复杂系统的普遍性 生命体 智力神经网络 社会系统 蚁群 经济 股市 人际关系网 互联网 电讯网 航运线路生命体的复杂性 20
10、02年5月,英国自然周刊上宣布在冰岛北部海下发现了一种迄今所知最小的生命。这种被称为“Nanoarchaeum equitans”的微生物属于古细菌的一种,其基因组的DNA碱基对仅有50万左右。假设一个基因的平均长度为1000个碱基,那么这个细菌所拥有的基因大约是500个。如果每个基因编码一种蛋白质,那么这个细菌最多可以拥有500种蛋白质。哪怕是最小、最简单的生物体,也是由许多执行不同功能的组分构成的。因此,生命复杂性的第一个特征是,生命是一种复合体,不可能由一个成分(一种基因或蛋白质)构成。全球通讯网络全球通讯网络全球通讯网络航空交通网航空交通网航空交通网分形图案分形分布的宇宙:瑞士天文学家
11、Franceso Sylos Labini 宇宙平均看起来是各向同性的,但却不是均匀的,我们在某一层级上。CAS复杂自适应系统理论 CAS理论的最基本的思想 系统的复杂性(整个系统的演变或进化,包括新层次的产生、分化和多样性的出现,新的、聚合而成的、更大的主体的出现等等,)是来源于系统中的成员的适应性。所谓具有适应性,就是指它能够与环境以及其它主体进行交流,在这种交流的过程中“学习”或“积累经验”,并且根据学到的经验改变自身的结构和行为方式。1 参见系统科学,徐国志等,上海科技教育出版社 2000年 P252复杂系统研究的方法和理论 结构状态描述 分形分维 状态空间 自组织与耗散结构 演化机制
12、的动力学描述 艾根超循环 协同学 复杂系统建模与模型表示 受限生成系统 网络模型 非线性动力学方程 元胞自动机 多主体系统 人工生命复杂系统研究的方法和理论 CAS理论 网络模型:复杂网络拓扑研究 小世界网络 尺度无关的网络为什么用计算机?1860 年,法国天文学家 Delaunay(Charles Eugene Delaunay,1816-1872)为计算受到地球与太阳重力影响的月球运动轨迹,花了二十年,计算过程填满一本书,也只得到一个近似解1970年,用符号方程检查他的计算,计算机只花了20个小时,不但求出更精确的近似解,还找出 Delaunay 的三个计算错误四色图问题整体大于部分之和:
13、个体设计上的简单规则不能预料交互过程中涌现出的整体新特征根本原因:非线性方程的不可积,不能精确求解,不能长期预测人工社会 Sugar scape 模型 糖域模型 芝加哥大学社会政治学研究所 人工社会拓展了社会学、人类学研究的手段 在虚拟的社会中观察战争、文化等因素的形成 例如:货币的形成过程。在一个追求交换效益最大化、以分工细化为方向的人工社会中这是必然发生的。统一规范与计算机建模工具如 Swarm Repast Ascape Satrlogo Dynamo等 工具化 标准化 简便化 跨学科性计算机建模工具应该 规范研究 方便研究 方便交流模型方法是现代科学的一种核心方法 用于复杂性研究的典型
14、信息模型是一种半经验半理论模型。模型是知识表示的基本概念和工具第二节 复杂系统系统理论复杂适应系统系统理论 系统 什么是系统?贝塔朗菲认为,系统是处于一定相互关系中与环境发生关系的各组成部分(要素)的总体。或者说,系统是集合内各要素按一定的结构组织而成的一个整体,并在与外部环境进行物质、能量、信息的交换过程中体现出一定的功能。系统科学 系统科学是探索系统的存在方式和运动变化规律的学问,是对系统本质的正确反映和真理性认识。系统科学已经形成了一个学科群:如系统论、信息论、控制论、运筹学、博奕论、协同学、耗散结构理论等。系统科学方法是按照系统科学的观点和理论,把研究对象视为系统来解决认识和实践中的各
15、种问题和方法的总称。系统科学方法的原则运用系统的观点研究和处理对象时,要把握以下一些原则:(1)整体性原则。整体性原则是系统方法的首要原则。(2)动态原则。这是指系统方法的历时性原则。系统科学方法的原则(续)(3)最优化原则。亦称整体优化原则。本着“多利相权取其重,多害相权取其轻”的精神进行综合优化和系统筛选。(4)模型化原则。采用系统科学方法需要这真实系统模型化。模型化原则是采用系统化方法时求得最优化的保证。前两个原则是基础,第三个是目标,第四个是手段。系统科学方法的作用为人们提供了新的思想模式,是推动科技整体化、综合化的重要方法。兼具多种认识功能,是研究复杂系统的有效工具。为人们提供了制定
16、系统最佳方案以实行优化组合和优化管理的手段。探索复杂性的方法一 探索简单性 研究相对简单的对象特别是把用简化的方法研究事物,称为探索简单性。近代自然科学基本上属于探索简单性的科学,人们形成了一种信念,即认为一旦掌握了简单性的实体和关系,任何复杂的对象都可以构造和计算出来。二 探索复杂性 强调整体与部分的关系是一种非加和性。复杂系统各要素之间存在非线性。系统变化过程服从因果反馈规律。系统不但存在,还在生长和消逝着。复杂性探索的方法论启示:从还原论到整体论的转变;从线性观到非线性观的转变;科学兴趣从简单性向复杂性的转变;从崇尚解析方法向重视非解析方法的转变;确定论和概率论两套描述体系从对立到沟通。
17、复杂适应系统也即CAS(Complex Adaptive System)。我们把系统中的成员称为具有适应性的主体(Adaptive Agent),简称为主体。所谓具有适应性,就是指它能够与环境以及其它主体进行交流,在这种交流的过程中“学习”或“积累经验”,并且根据学到的经验改变自身的结构和行为方式。整个系统的演变或进化,包括新层次的产生,分化和多样性的出现,新的、聚合而成的、更大的主体的出现等等,都是在这个基础上出现的。复杂适应系统的例子 生物有机体 生态系统 经济 运输为什么使用Agent-Based Modelling 传统的建模方法能够描述宏观的系统,但是并不能解释一些特性的来源;不能很
18、好的处理离散系统;ABM能够很好的针对以上问题进行处理,它是传统建模方法的一个补充。CAS基本思想1994年正式提出我们把系统中的成员称为具有适应性的主体(Adaptive Agent),简称为主体。所谓具有适应性,就是指它能够与环境以及其它主体进行交流,在这种交流的过程中“学习”或“积累经验”,并且根据学到的经验改变自身的结构和行为方式。整个系统的演变或进化,包括新层次的产生,分化和多样性的出现,新的、聚合而成的、更大的主体的出现等等,都是在这个基础上出现的。基于CAS思想的要点:A)主体(Adaptive Agent)是主动的、活的实休。这点是CAS 和其他建模方法的关键性的区别。正是这个
19、特点,使得它能够用于经济、社会、生态等其它方法难于应用的复杂系统。B)个体与环境(包括个体之间)的相互影响,相互作用,是系统演变和进化的主要动力。以往的建模方法往往把个体本身的内部属性放在主要位置,而没有对于个体之间,以及个体与环境之间的相互作用给予足够的重视。这个特点使得CAS方法能够运用于个体本身属性极不相同,但是相互关系却有许多共同点的不同领域。基于CAS思想的要点:C)这种建模方法不象许多其他的方法那样,把宏观和微观截然分开,而是把它们有机地联系起来。它通过主体和环境的相互作用,使得个体的变化成为整个系统的变化的基础,统一地加以考察。D)这种建模方法还引进了随机因素的作用,使它具有更强
20、的描述和表达能力CAS了描述复杂适应性的6个特点:分散的相互作用 全局现象是由许多分散的异质主体的相互作用产生的,任意给定主体的行动依赖于对有限数目其他主体的行动和这些主体共同建立的积累状态。主体的差异性导致积累行为的“永远新奇”没有全局控制者 没有全局性实体控制相互作用,控制产生于主体间的竞争和写作机制。经济行为通过法律制度、设定的角色和波动的联系调节。没有全局竞争对手个体可以运用经济中的所有机会。CAS了描述复杂适应性的6个特点:层次交叉的组织 经济中具有许多层次和相互作用。任何给定层次的单元(行为、动作、策略和产品)都作为构建较高层次的单元基本块。整个组织不仅具有层次性,层次间还存在许多
21、相互作用。连续的适应性 依据积累的经验,主体的行为、动作、策略和产品不断调整,导致系统不断适应,层次间还存在许多相互作用。CAS了描述复杂适应性的6个特点:永远创新 新行为和新结构可能刺激更新的行为和更新的结构的创立,产生一个持续创新的状态。经济中的新市场、新技术、新行为和新组织不断创立新的环境,填充新环境的行动将产生更新的环境。静态被动态代替。偏离均衡的动态 由于新的环境、新的潜在力量、新的可能性不断产生,经济运行远离任何最优或全局的均衡。均衡是暂时的,非均衡是常态。意味着改进通常是可能的,并且却是是由规律的发生。CAS的7个有关概念 1聚集聚集(Aggregation)有两个含义。有两个含
22、义。简化复杂系统的一个标准方法即把相似的事物聚合成类,例如树、汽车、银行等。主体通过“粘合”形成较大的更高一级的主体介主体(meta-agent)。2标识标识(Tag)在聚集体的形成过程中,标识机制在起作用。标识的作用在于区别主体。聚集体的形成或者说主体的聚集都是有选择的,并非任意个体都会聚集。标识的作用在于促进主体选择性的相互作用。3非线性非线性(Non-linearity)非线性是指个体自身属性的变化以及个体之间的相互作用并非遵从简单的线性关系。因为这样,复杂系统的行为才会如此难以预测;才会经历曲折的进化过程,呈现出丰富多彩的性质和状态。4流流(Flow)在个体与环境之间存在着物质流、能量
23、流和信息流。CAS理论认为这些流的渠道是否通畅、周转迅速到什么程度,都直接影响系统的演化过程。5多样性多样性(Diversity)CAS理论认为,在CAS系统中,多样性既非偶然也非随机。每个主体都安顿在由以该主体与其他主体相互作用所限定的小生境上(niche,或翻译为生态位)CAS理论认为,多样性产生的原因在于适应过程中,是一种动态模式,具有持续性和内聚性。CAS系统与其他系统的最重要区别在于组成CAS系统的主体的多样性 6内部模型(内部模型(Internal Model)主体复杂的内部模型是主体适应性的内部机制和精髓,主体在适应过程中接受外部刺激,做出反应,合理调整自身的内部结构。最终,结构
24、的变化,必须使主体能够预知再次遇到该情形时会随之发生的后果,主体由此来适应环境。7.积木块积木块(Building Blocks)就像人往往通过将复杂问题分解成若干简单部分进行理解一样,CAS内部模型用搭积木的方法对已测试过的规则进行组合,产生新问题的处理规则,已有的规则被形象化地称为积木块,它们是新规则产生的基础。第三节 模型与模拟方法1.模型2.建摸与模拟3.模拟软件平台SWARM的介绍4.模拟软件平台STARLOGO的介绍 5.应用举例具体地用模型与模拟方法探索复杂性模型数学模型模拟基于主体的建模方法和CAS 模型方法定义:模型是在结构或/和行为的重要方面和所研究的系统相似的,真实的或想
25、象的系统的映象。它往往能为大范围的观察事实提供解释。模型与原型 模型的建立不是“原型的重复”,而是按研究目的的实际需要和侧重面,寻找一个便于进行系统研究的“替身”。不同的人由于研究的目标不同,就会对某些方面做出不同的简化。在原型系统及模型之间存在着“反馈”的关系,根据对原型系统规律的认识,可以建立模型。而建立模型进行实验的过程又可发现一些新的规律,由此预测未来或丰富对原型系统的认识。模型应用范围 人类对世界的探索过程,就是建立各种模型表示的过程。人类知识积累的过程,也是修正和具体化各种形态的模型的过程。静态结构的模型称为静态模型 描述事物发生、发展、演化过程的模型称为动态模型。历史地看,模型形
26、态的变化也有一个逐渐从简单到复杂的发展过程。从最初原始的思维意象模型,发展到借用外在的工具搭建的各种模型,包括绘画模型、建筑雕塑模型、工具模型等,再到哲学和神学中发展出的各种理论模型。模型分类 按照模型存在的空间,模型可分为物质模型与思维模型两大类。物质模型是以某种速度、形式相似、人造或自然的模型实体去再现原型。物质模型是模拟实验赖以进行的物质手段。思维模型是人们在头脑中创造出来的,并且运用它在思维中进行逻辑推理、数学演算和“思想实验”,可分为形象的(唯象的)模型和符号的(标志性的)模型。建模动机一般可以把人类建立模型的动机分为四个层次:(1)解释和理解的需要。(2)预测的需要。(3)控制的需
27、要。(4)技术理性和工具的需要。一 近代常见的模型物质形式的模型 物理模型思维形式的模型 数学模型 统计模型 逻辑模型物质形式的科学模型物理模型对要研究的客体,按照一定的研究目的,寻找一种天然存在的具有相似性的实物或者人工地制造一种具有相似形的实物,作为原形客体的实际模拟物,即实物模型。运用这种实物模型,进行模拟实验或模型实验,以获取关于客体的某种规律性认识。天然模型:以天然存在物作为模型。最为典型和运用得最多的就是生物模型。其方法论作用:一方面生物所具有的奇妙器官和功能作为仿生学的对象。另一方面,把某类生物作为人的科学模型来研究,获得对人体的认识。人工模型:即以人工制作物作为科学模型。思维形
28、式的科学模型 对要研究的对象,按照一定的研究目的,经过科学的分析而抽象出它的本质属性 特征,构造一种思维形式的模拟物,即思维模型,常表现为抽象的、数学的、理论的形 态。(1)理想模型:是对研究对象的一种简化和理想化。(2)数学模型:(3)理论模型:(4)半经验半理论模型:二 建立模型的方法论原则模型具有工具性与对象性双重性质。建立模型的方法论原则:相似性与简单性的统一。要求具有本质上的相似性。可验证性。多种知识和方法的综合运用。三 科学模型的多重功能 科学模型的研究纲领作用;科学研究的间接方法;思维模型可以起到思想实验的目的。思想实验实际上是思维操作亦即逻辑推理的结果。是实际实验的逻辑补充。模
29、型是研究复杂系统的关键。模型研究对实践的指导作用。四 模型的多样性和有限性 多样性 局限性:常常过于简化。模型的系统分析 人本体描述语言程序设计语言客体程序?客体描述系统设计形式系统认知模型软件制作模型抽象模型抽象模型组织模型组织模型表示模型表示语用语义 认知制作 语法 模型:客观事物的反映 客观规律的简化和抽象 整理信息的概念框架模型小结 模型具有以下这些基本的性质:客观性:必须符合实际。主观性:对于目标有效。相对性:只反映客观事物的某一侧面。渐进性:随认识和实践的发展而发展。模型的作用 模型是人类认识和改造世界的必经之路:描述系统 整理信息 寻找规律 预测未来 设计人为事物从模型到模拟数学
30、模型计算机模拟CAS数学模型方法数学模型是对于某个特定对象或一定问题,采用形式化数学语言来描述其特征及数量相依关系的一种数学结构,它是一组数学关系式或一套具体的数学算法。即用数学语言表达事物的状态、关系和过程,经推导、演算和分析,以形成解释、判断和预言的方法。数学模型的类型 确定性数学模型;随机性数学模型;模糊性数学模型;突变性数学模型。数学模型的特征:高度的抽象性;具有严密的逻辑性;具有应用的广泛性;过程描述,非直观:如果是非线性动力学方程,可表示、但却不可求解。数学方法在科学认识中的作用 为科学技术研究提供简洁精确的形式化语言 为科学技术研究提供数量分析和计算的方法:为科学研究提供逻辑推理
31、的工具计算机模型方法:所要研究问题的数学模型,转换为能输入计算机进行数值运算的形式,或直接建立计算机仿真模型,在计算机上通过系统地变换参数作大量数值计算。计算机模拟-发展的历史 计算的历史主要是模拟的历史;在PC上模拟人的智能、智能发育过程;在平台上模拟系统,如人工生命,机器人足球,蚁群算法;在网络上模拟社会,如email,电子商务,网格计算;在平台上,网络上模拟智能agent,agent是虚拟社会人,实质上是现实社会人的缩扩模型。PC,网络是系统,人,社会是系统,它们之间是模拟关系。模拟 计算机发展中模拟是不变的,而变化的只不过是模拟的对象,那么什么是模拟?从系统观来看,模拟是两个系统之间的
32、关系,模拟的实质是两事物或两个系统同一性的转化。模拟要素有四:原型,转化,模型,系统同一性。传统建摸方法的问题 近代科学使用的各种建模方法普遍存在以下几个缺点:宏观和微观的割裂。状态和过程的割裂。难以描述反映非线性过程。忽视个体或元素的主动性。基于主体的建摸方法 新的方法具有三个显著的特点:宏观和微观的结合 过程和状态的结合 可操作性强,软件工具的提供。基于主体的建模方法多主体建模的理论常见缩写CAS complex adaptive system MAS Multi-Agent System ABM Agent based Model ACE Agent based Computional
33、Economy。广泛应用于各种社会科学、自然科学与工程科学中(生态经济学 人工社会 政治科学 人工智能 人工生命 商务经济模拟 工程模拟 地理信息系统 决策支持系统 生物信息学)计算机模型的一般特点(1)计算机模型一般只输出一组离散的数值。它不像解微分方程组那样给出通解或一个函数。(2)它不用深究变动机理,只需从实际数据或直观感觉出发,来模仿描述系统,然后通过逐步求精,最后达到正确地反映系统。计算机模型的一般特点(续)(3)计算机建模用其程序模拟现象,计算机语言被证明是便于进行模拟的。计算机语言的丰富的数据结构可以方便地描述系统的状态。用计算机程序能灵活地描述各种复杂的进程。(4)计算机建模的
34、应用很广泛,可用于工、农、商及军事等各行各业的规划、调度、设计和决策等等。有人对美国1000家最大的公司的计划系统应用定量分析方法的情况调查时,得到不同方法应用的频数表,发现在各种定量分析方法中模拟方法所占的比重很大。项项 目目应用频数应用频数所占百分比所占百分比模拟研究线性规划网络分析(包括PERT与CPM)存储理论非线性规划动态规划整数规划排队理论其他6043282416877122921141284336合计205100 应用定量分析方法的频率计算机模型的一般特点(续)(5)可充分发挥人和计算机的优势。人具有直觉,其思维方式是很灵活的。在寻找复杂的因果关系时,可以根据直觉与经验比较敏锐地
35、给出一个模型结构的框架。计算机有大的存储器,又有高速运算的能力,所以它可以同时顾及系统的各方面结构或易于展现系统动态变化的具体情节 计算机模型发挥了人机两方面的优势,通过人的直觉、思维和推理,一块一块地构筑模型,送入计算机,然后可迅速地逐步计算。计算机模型的一般特点(续)(6)计算机建模的实现方法灵活。一般来说,用解析式表示量之间的关系,明确、清晰、令人信服。然而,它只解决较简单而且有固定模式的问题。对复杂而灵活的问题,就要用模拟的办法。(7)智能化的发展方向。人工智能的原理就是从人脑处理问题的模式中抽象出来的。计算机模型把人机的优势结合,以解决传统数学方法不易解决的复杂系统的认识问题,所以必
36、然利用人工智能所取得的成果。计算机建模方法优势 经济性 对于一个大型的系统、直接实验成本十分昂贵,使用计算机建模实验能大大地降低实验成本,而且可以多次重复使用;安全性 对于某些系统,如载人宇宙飞行器、核电站控制、直接实验往往是危险的和不允许的;预见性 对于经济、社会、生物、战争等非工程系统,直接实验几乎是不可能的。计算机模型可用于预测系统的特性和外部作用的影响,从而研究管理、控制的策略。计算机模拟局限性 各种模型都是基于建模者的认知水平和观测能力的结果,从而模型模拟的可信度缺乏统一的测量尺度,因此结果很难被大众采纳而形成公共知识;根据测不准定理,观测事实不过是一种近似结果,由于建模者的参与,观
37、测事实的细节和观测指标的取舍都带有建模者预先设计的痕迹,得到的结果很难客观 第三,建模者本身就是有限信息和有限理性的主体,就是现实系统的参与者。因此不大可能实现超越系统、超越自身的理性。这些局限在通常的实验研究方法中也同样存在,但在计算机建模方法中更容易引起人们的质疑 模拟软件平台的介绍SwarmStarlogoSWARM简介1、背景、背景2、Swarm的历史与简介的历史与简介3、面向对象的技术、面向对象的技术 4、用用Swarm建模的思想和方法建模的思想和方法5、对、对Swarm的感性认识的感性认识例子例子6、Swarm类库简介类库简介1、背景、背景 早期的科学家通常自己制造实验仪器,自己磨
38、透镜,自己连探测器,甚至自己制造计算机。研究者首先是工程师、技师、电工,其次才是科学家。计算机模拟程序实际上就是用软件制造的实验仪器,这种方法在某些方面已经取代了物理实验仪器。计算机模型常常使优秀的科学家变成糟糕的程序员。Swarm是一个高效率的、可信的、可重用的软件实验仪器。其目标就是予科学家们一个标准的软件工具集,从而提供一个设备精良的软件实验室,帮助人们集中精力于研究工作而非制造工具。Swarm是一个面向对象的类库,用户可以通过调用这些类库简化模拟工作。用户通过在自己的程序中引入Swarm类建模。Swarm类用Objective C编写,Objective C是一种面向对象的C语言。图形
39、用户界面用Tcl/Tk编写,这是一种用于编写窗口小部件的脚本语言。既可用于Unix平台又可以用于Windows 95/98/NT。2、Swarm的历史与简介的历史与简介开发环境:Swarm支持 SUN JDK 1.2或以上版本。因此,常用的开发工具,如Jbuilder3,Visual Cafe 4等都可以用来编写和调试基于Java的Swarm程序。UnixUnix下:下:1)如果要使用Java,必须首先安装Swarm支持的Java虚拟机。在Unix下,可以使用Kaffe(http:/ JDK(http:/www.Blackdown.org)或SUN JDK(http:/ parameters
40、initialize for 1 to timesteps do:for 1 to num_agents do:agent-i-do-somethingend forshow stateend forquit提供一些数据结构来存储主体的状态和行为初始化,设定数据结构和输入输出等将状态数据输出给程序在编程语言中的实现主体的组织结构活动主体模型Swarm静态主体探测器Swarm建模结构:建模结构:探测器输出界面模型“swarm”SWARM就是许多个体(对象)组成的一个群体,这些个体共享一个行为时间表和内存池。显然“swarm”有两个主要的组成部分:8对象对象模型“swarm”中的每一项对应模型世界
41、中的每一个对象(个体)。“swarm”中的个体就象系统中的演员,是能够产生动作并影响自身和其他个体的一个实体。8时间表时间表时间表是一个数据结构,定义了各个对象的独立事件发生的流程,即各事件的执行顺序。在SWARM中特定的事件发生在特定的时间,按照时间表安排的顺序进行。每种行为是一个独立的动作。模型按照这种安排好的事件的执行顺序向前发展,并尽量使这些事件看起来象同步发生的。8输入输出输入输出模型“swarm”还包括一系列输入和输出。输入是模型参数:如世界的大小,主体的个数等环境参数。输出是可观察的模型的运行结果:如个体的行为等等。观察员“swarm”模型“swarm”只是定义了被模拟的世界。但
42、是一个实验不应只包括实验对象,还应包括用来观察和测量的实验仪器。在SWARM计算机模拟中,这些观察对象放在一个叫观察员“swarm”的“swarm”中。最重要的观察组件是模型Swarm观察员行为的时间表主要是为了驱动数据收集,即从模型中将数据读出,并画出图表。输入是对观察工具的配置,例如生成哪类图表;输出是观察结果。在图形模式下运行时,观察员在图形模式下运行时,观察员“swarm”swarm”中的大部分对象被用来调节用中的大部分对象被用来调节用户界面。这些对象可能是平面网格图,折线图或探测器,它们一方面与户界面。这些对象可能是平面网格图,折线图或探测器,它们一方面与模型模型“Swarm”Swa
43、rm”相连以读取数据,同时把数据输出到到图形界面,为用相连以读取数据,同时把数据输出到到图形界面,为用户提供了很好的实验观察方式户提供了很好的实验观察方式。SwarmSub-Swarm主体时间表图形用户界面图形用户界面模型模型探测器Sub-sub-Swarm Swarm中所有的主体和变量都可以被探测。探测器将它自己和主体联系起来,它可以给主体发送消息,还可以通过直接读取或者调用主体来获得或修改主体变量。探测器探测器被观测变量被观测变量=10.2 探测器将主体与图形界面联系起来 缺省的探测器图形界面会显示被观测的主体的所有变量也可以由用户自定义显示变量。探测器探测器执行方法输入变量值打开该类的探
44、测器关闭探测器 可用于绘制 线性图 柱状图 格栅图 Digraphs 图形用户界面的支持对象可以实现数据的收集,计算和更新。平均价格平均成本探测器探测器主体图形窗口 图形窗口输出依赖于探测器动态地收集主体的数据。建模思想:建模思想:这种建模方法不需要一个方程形式来体现系统中内生的关系。这种方法强调非均衡的发展路径,它的分析是基于进化和突变行为而不是基于一种机械的观点来看待社会。这种方法是基于单个主体的,因此用户必须为每个决策者建立微观模型,而不是为整个市场建立宏观模型。这种方法将经济系统看作是一个进化的复杂系统。用户可以使用Swarm提供的随机数生成器轻松的引入随机因素。建模方法建模方法:Sw
45、arm是一种支持“自下而上”(bottom-up)的建模工具。5、对、对Swarm的感性认识的感性认识例子例子热虫(Heatbugs)热虫是Swarm的经典例子之一,它说明了简单的局部的主体活动如何产生复杂的全局的行为。结果显示结果显示界面的样子界面的样子interface HeatbugModelSwarm:Swarm int numBugs;/simulation parameters double evaporationRate;double diffuseConstant;int worldXSize,worldYSize;int minIdealTemp,maxIdealTemp;i
46、nt minOutputHeat,maxOutputHeat;double randomMoveProbability;id modelActions;/scheduling data structures id modelSchedule;id heatbugList;/list of all the heatbugs Grid2d*world;/objects representing HeatSpace*heat;/the world-getHeatbugList;/access methods into the-(Grid2d*)getWorld;/model swarm.These
47、methods-(HeatSpace*)getHeat;/allow the model swarm to be observed.+createBegin:aZone;/extra methods you-createEnd;/provide for Swarms-buildObjects;-buildActions;-activateIn:swarmContext;第一步:建立一个模型第一步:建立一个模型swarm一个模拟的关键部分是模型swarm。这里是HeatbugModelSwarm的定义:第二步:定义一个主体第二步:定义一个主体所有个体是整个模拟的中心。在模拟中的大部分工作来自于定
48、义个体的行为,以使模型与真实世界的现象类似。heatbug主体的定义如下:interface Heatbug:SwarmObject double unhappiness;/my current unhappiness int x,y;/my spatial coordinatesHeatValue idealTemperature;/my idealtemperature HeatValue outputHeat;/how much heat I put out float randomMoveProbability;/chance of moving randomlyGrid2d*worl
49、d;/the world I live in int worldXSize,worldYSize;/how big that world is HeatSpace*heat;/the heat for the world Color bugColor;/my colour(display)-setWorld:(Grid2d*)w Heat:(HeatSpace*)h;/which world are we in-createEnd;-(double)getUnhappiness;-setIdealTemperature:(HeatValue)i;-setOutputHeat:(HeatValu
50、e)o;-setRandomMoveProbability:(float)p;-setX:(int)x Y:(int)y;/bugs position-setBugColor:(Color)c;/bugs colour(display)-step;-drawSelfOn:(id)r;第三步:建立主体第三步:建立主体Heatbug们已经被定义,模型swarm需要创建它们。这里是HeatbugModelSwarm中buildObjects方法的一段代码:for(i=0;i numBugs;i+)Heatbug*hbug;int idealTemp,outputHeat;/Choose a rand