213
复复复 复复复复复复 复复复复复复复复复复 复复复 [email protected]

复杂系统 的 计算机模拟

  • Upload
    jeneva

  • View
    112

  • Download
    0

Embed Size (px)

DESCRIPTION

复杂系统 的 计算机模拟. 探索复杂性的模型方法 方美琪 [email protected]. 复杂. —— 诞生于秩序与混沌边缘的科学 一场激动人心的科学观念的革命 瞬间照亮了各个学科领域,其中的原则和思想影响是如此地深远和广泛,以至于绝大多数学科都卷入其中!. 过去我们用 数学 给出世界完美的描述,我们很陶醉,以为我们已经认识了世界。但近来我们发现世界其实很复杂,并不确定,偶然的小情况可能放大为决定性的事件,影响了整个历史进程复杂地发展。 原来组成系统的个体是有适应性的。个体的适应性就产生了系统的 复杂性。 - PowerPoint PPT Presentation

Citation preview

Page 1: 复杂系统 的 计算机模拟

复杂系统的计算机模拟

探索复杂性的模型方法方美琪

[email protected]

Page 2: 复杂系统 的 计算机模拟

复杂复杂复杂复杂—— 诞生于秩序与混沌边缘的科学

一场激动人心的科学观念的革命瞬间照亮了各个学科领域,其中的原则和思想影响是如此地深远和广泛,

以至于绝大多数学科都卷入其中!

Page 3: 复杂系统 的 计算机模拟

过去我们用数学给出世界完美的描述,我们很陶醉,以为我们已经认识了世界。但近来我们发现世界其实很复杂,并不确定,偶然的小情况可能放大为决定性的事件,影响了整个历史进程复杂地发展。

原来组成系统的个体是有适应性的。个体的适应性就产生了系统的复杂性。

用计算机程序描述个体的行为,在一定的框架之下,个体平行地动作起来,这包括个体对外界的适应,偶然的小情况,个体的相互作用… .. 如此,计算机模拟就比较真实地反映了复杂世界的一个个方面。

Page 4: 复杂系统 的 计算机模拟

第一节 复杂性科学

1. 确定性的终结、复杂性科学的兴起

2. 路径依赖的反思3. 复杂性研究的方法 

Page 5: 复杂系统 的 计算机模拟

第二节 复杂系统

1.系统理论2.复杂适应系统

Page 6: 复杂系统 的 计算机模拟

第三节 模型与模拟方法

1. 模型2. 建摸与模拟3. 模拟软件平台 SWARM 的介绍4. 模拟软件平台 STARLOGO 的介绍 5. 应用举例

Page 7: 复杂系统 的 计算机模拟

第一节 复杂性科学

• I 确定性的终结、复杂性科学的兴起

Page 8: 复杂系统 的 计算机模拟

I I 确定性的确定性的终结终结 !!

Page 9: 复杂系统 的 计算机模拟

拉普拉斯决定论

宇宙不过是一台机械的钟表• 宇宙的未来完全由它的过去决定。• 世界是可被预知的。只要我们明白了支配

宇宙的规律,那么我们就能推察过去,预言未来。

• 宇宙的统一规律已找到了(牛顿),宇宙的图景已被描绘出来了。

Page 10: 复杂系统 的 计算机模拟

确定性的乐观

诗人蒲柏为伟大的牛顿写下的墓志铭所言: 自然和自然的法则在黑夜中隐藏, 上帝说,让牛顿去吧 于是一切都已照亮。

Page 11: 复杂系统 的 计算机模拟

通向混沌• 初始条件的微小变动就会导致轨道完全

不一样。 “差之毫厘,失之千里”• 牛顿定律本身虽是确定性的,但它所描

述的具体事物,很可能出现随机行为。• 混沌 = 非线性动力学 =难以精确求解

Page 12: 复杂系统 的 计算机模拟

洛伦兹与气象混沌• 1963年的一天,气象学家洛伦兹踱进麻省理工

学院的咖啡馆。而在他进来之前,他刚把一个数据输入他那台现在看来工作速度其慢无比的计算机,以验证上一次的结果。他知道结果还需要等一个来小时,他大可一边躲开噪音,一边来悠闲地享受点咖啡。当他回到自己的工作室时,令他惊讶的事发生了:这次的结果与上次的结果在开始时相同,但到后来却出现了很大的差异。他的结果是通过曲线表示的,这就是说两条曲线只是在开始时相吻合,而到后来两者却分道扬镳了。

Page 13: 复杂系统 的 计算机模拟

混沌与复杂• 复杂是多体系统• 多体之间的交互关系是非线性的• 单独一个主体的运动轨迹是混沌• 系统整体则涌现出一定的秩序和结构例子:湍流与水分子 社会与人 历史规律

经济周期与经济主体 股票行情与股民的行为

Page 14: 复杂系统 的 计算机模拟

在传统的社会科学研究中,解释和预测间的过渡看来太随意而缺乏严谨了——对一个社会现象的正确解释并不意味必然能够对这个现象的未来进行预测,特别当内在机制中有非线性关系时,这种从解释到预测之间的思维延伸几乎百分之百是不可能的。复杂理论告诉我们,即便我们能够很清楚地界定和完全掌握了对个体行为影响的所有因素,对组织或机构行为的预测仍然是非常不充分的。

Page 15: 复杂系统 的 计算机模拟

人类认识实践中的经验教训

大自然对人类线性思维的教训• 水坝生态 • 中国垦荒与沙漠化• 美国西部的风尘暴• 核泄露• 人工生态实验的失败

Page 16: 复杂系统 的 计算机模拟

《失败的逻辑》事情因何出错 ,世间有无妙策

为什么铁路信号系统工作正常时,列车仍然会发生撞车事故?为什么所有操作人员警觉地坚守着工作岗位,核反应堆依然会发生灾难性的熔化事故?为什么我们制定得甚好的那么多专业和个人计划,会如此频繁地出岔子 ?

Page 17: 复杂系统 的 计算机模拟

对人类思维方式的反思• 德国 心理学迪特里希 .德尔纳 思维复杂

性研究• 用计算机模拟情景试验• 让不同的专家以游戏的方式 发掘决策思维模式的一般特征

• 理性思维的局限性:逻辑严密 线性思维方式

• 直觉、联想 = 思维的并行

Page 18: 复杂系统 的 计算机模拟

直觉思维整体思维的回归

• 世界上原来不只存在一种逻辑思维方式

• 神秘主义思潮和新时代( new age )运动

Page 19: 复杂系统 的 计算机模拟

II II 路经依赖的反思路经依赖的反思

Page 20: 复杂系统 的 计算机模拟

路经依赖

• 系统的发展与其初始条件紧密相关,与其发展过程中的偶然事件密切相关

• 个体微不足道的行为可能产生出乎意料的结果

Page 21: 复杂系统 的 计算机模拟

马屁股的宽度决定了火星探测发射器的宽度?

• 马屁股的宽度决定了双马马车的车辙宽度 决定了 电车轨道的宽度

• 电车轨道的宽度决定了铁轨的宽度(修建第一条铁路顺着马车的车辙印记)

• 铁轨的宽度决定了火车的车厢的宽度• 决定了火箭发射仓的最大宽度(为了运载方便)

• 决定了火星探测发射器尺寸

Page 22: 复杂系统 的 计算机模拟

• 故事是颇有趣的。从一定意义上说,今天世界是最先进的运输系统的设计,或许是由两千年前两匹战马的屁股宽度来决定的。历史惯性的力量是多么的强大,要冲破由惯性形成的规则又是多么的艰难。

Page 23: 复杂系统 的 计算机模拟

经济领域内的路经依赖• 经济领域内的路经锁定:钟表的顺时针,• 信息化的标准和垄断 • 微软的战略 : 当盗版让人们已经习惯于使用 windows时 , 就会受制于它 , 很多人只会使用装了 windows 的计算机.

• 高科技的竞争就是标准的竞争 DV D格式 无线上网的格式的争议

Page 24: 复杂系统 的 计算机模拟

自然科学领域的路径依赖

• 极其微小的初始状态会成指数的放大,极大地影响了混沌系统的输出

• 人类对世界的认识实践活动影响了世界

Page 25: 复杂系统 的 计算机模拟

科学认识的反思• 人类对世界的认识实践活动影响了世界• 后现代科学:自然规律是自然的习惯• 集体的习惯有被锁定成为既定成俗的倾向 个

人习惯之间的交互涌现出集体的习惯• 自由落体难道是铜球的一种难改的积习?• 万有引力难道是物质世界的一种惯例?• 惯性 vs习惯 参考 作为习性的自然法则作为习性的自然法则:科学的后现代基础

[英 ] 鲁珀特 ·谢尔德拉克 Sheldrake 网上有个人主页

Page 26: 复杂系统 的 计算机模拟

科学认识的反思2• 科学的自然观,不以人的意志为转移的客观

世界是否存在?完全严格的重复试验是否可能?

• 完全严格的重复实验是不可能的• 人是否可以第二次踏入同一条河流?• 反归纳法 归纳得到的现象越多,推广的余地越小

• 正归纳 归纳得到的现象越多,推广到全部的可能性越大

Page 27: 复杂系统 的 计算机模拟

后现代科学• 心理学家 麦独孤的老鼠迷宫实验随着实验的重复进行,虽然选定重复实验

的老鼠是完全不同的个体,但老鼠的智力却随着实验的重复而递增,后来参加实验的老鼠比前面参加实验的老鼠更快地学会走出迷宫

• 文化人类学和新时代巫术的兴起 影视界的 《波利哈特》热

Page 28: 复杂系统 的 计算机模拟

3. 3. 复杂性研究方法复杂性研究方法

Page 29: 复杂系统 的 计算机模拟

复杂系统的特征• 涌现• 非线性• 反馈循环• 开放式• 部分不能包含整体• 路径依赖,与历史相关(混沌特性)• 多层次嵌套• 边界模糊

Page 30: 复杂系统 的 计算机模拟

复杂系统研究的议题和范例• 发现和应用刻划社会系统、自然系统演化的规律的普适性方法

• 对人工技术系统(企业信息化、互联网络、数字化生存)的演化规律进行探讨

例如:企业信息化建模 信息经济学 人工技术网络和社会网络的脆性研究 网络对社会交往的影响 交往媒介的革新与社会文化的变革等

Page 31: 复杂系统 的 计算机模拟

复杂系统的普遍性• 生命体• 智力——神经网络• 社会系统 蚁群 经济 股市• 人际关系网 互联网 电讯网 航运线路

Page 32: 复杂系统 的 计算机模拟

生命体的复杂性• 2002年 5月,英国《自然》周刊上宣布在冰岛北部海下发现了一种迄今所知最小的生命。这种被称为“ Nanoarchaeum equitans” 的微生物属于古细菌的一种,其基因组的 DNA碱基对仅有 50万左右。假设一个基因的平均长度为 1000 个碱基,那么这个细菌所拥有的基因大约是 500 个。如果每个基因编码一种蛋白质,那么这个细菌最多可以拥有 500种蛋白质。

• 哪怕是最小、最简单的生物体,也是由许多执行不同功能的组分构成的。因此,生命复杂性的第一个特征是,生命是一种复合体,不可能由一个成分(一种基因或蛋白质)构成。

Page 33: 复杂系统 的 计算机模拟

全球通讯网络

全球通讯网络

Page 34: 复杂系统 的 计算机模拟

航空交通网

航空交通网

Page 35: 复杂系统 的 计算机模拟

分形图案

分形分布的宇宙:瑞士天文学家 Franceso Sylos Labini 宇宙平均看起来是各向同性的,但却不是均匀的,我们在某一层级上。。。

Page 36: 复杂系统 的 计算机模拟
Page 37: 复杂系统 的 计算机模拟

CAS 复杂自适应系统理论• CAS 理论的最基本的思想• 系统的复杂性(整个系统的演变或进化,包括新层次的产生、分化和多样性的出现,新的、聚合而成的、更大的主体的出现等等,)是来源于系统中的成员的适应性。所谓具有适应性,就是指它能够与环境以及其它主体进行交流,在这种交流的过程中“学习”或“积累经验”,并且根据学到的经验改变自身的结构和行为方式。 [1] 参见《系统科学》 ,徐国志等,上海科技教育出版社 2000年 P252

返回返回

Page 38: 复杂系统 的 计算机模拟

复杂系统研究的方法和理论• 结构状态描述 分形分维 状态空间 自组织与耗散结构• 演化机制的动力学描述 艾根超循环 协同学• 复杂系统建模与模型表示 受限生成系统 网络模型 非线性动力学方程 元胞自动机 多主体系统 人工生命

Page 39: 复杂系统 的 计算机模拟

复杂系统研究的方法和理论

• CAS理论• 网络模型:复杂网络拓扑研究

小世界网络 尺度无关的网络

Page 40: 复杂系统 的 计算机模拟

为什么用计算机?• 1860 年,法国天文学家 Delaunay( Charles Eugene Delaunay, 1816-1872)为计算受到地球与太阳重力影响的月球运动轨迹,花了二十年 ,计算过程填满一本书,也只得到一个近似解

• 1970年 , 用符号方程检查他的计算 ,计算机只花了20个小时 ,不但求出更精确的近似解 ,还找出 Delaunay 的三个计算错误

• 四色图问题  • 整体大于部分之和 :个体设计上的简单规则不能预料交互过程中涌现出的整体新特征

• 根本原因 :——非线性方程的不可积,不能精确求解,不能长期预测

Page 41: 复杂系统 的 计算机模拟

人工社会• Sugar scape 模型 糖域模型 芝加哥大学社

会政治学研究所• 人工社会拓展了社会学、人类学研究的手段

• 在虚拟的社会中观察战争、文化等因素的形成

• 例如:货币的形成过程。在一个追求交换效益最大化、以分工细化为方向的人工社会中这是必然发生的。

Page 42: 复杂系统 的 计算机模拟

统一规范与计算机建模工具

如 Swarm Repast Ascape Satrlogo Dynamo等

• 工具化 • 标准化 • 简便化• 跨学科性

计算机建模工具应该 规范研究 方便研究 方便交流

Page 43: 复杂系统 的 计算机模拟

模型方法是现代科学的一种核心方法

• 用于复杂性研究的典型信息模型是一种半经验半理论模型。

• 模型是知识表示的基本概念和工具

Page 44: 复杂系统 的 计算机模拟

第二节 复杂系统• 系统理论• 复杂适应系统

Page 45: 复杂系统 的 计算机模拟

系统理论

Page 46: 复杂系统 的 计算机模拟

系统 什么是系统?贝塔朗菲认为,系统是处于一定相互关系中与环境发生关系的各组成部分 (要素 )的总体。

或者说,系统是集合内各要素按一定的结构组织而成的一个整体 ,并在与外部环境进行物质、能量、信息的交换过程中体现出一定的功能。

Page 47: 复杂系统 的 计算机模拟

系统科学• 系统科学是探索系统的存在方式和运动变化规

律的学问,是对系统本质的正确反映和真理性认识。系统科学已经形成了一个学科群:如系统论、信息论、控制论、运筹学、博奕论、协同学、耗散结构理论等。

• 系统科学方法是按照系统科学的观点和理论,把研究对象视为系统来解决认识和实践中的各种问题和方法的总称。

Page 48: 复杂系统 的 计算机模拟

系统科学方法的原则

运用系统的观点研究和处理对象时,要把握以下一些原则:

( 1 )整体性原则。整体性原则是系统方法的首要原则。

( 2 )动态原则。这是指系统方法的历时性原则。

Page 49: 复杂系统 的 计算机模拟

系统科学方法的原则(续)( 3 )最优化原则。 亦称整体优化原则。本着“多利相权取其重,多害相权取其轻”的精神进行综合优化和系统筛选。

( 4 )模型化原则。 采用系统科学方法需要这真实系统模型化。模型化原则是采用系统化方法时求得最优化的保证。

前两个原则是基础,第三个是目标,第四个是手段。

Page 50: 复杂系统 的 计算机模拟

系统科学方法的作用

为人们提供了新的思想模式,是推动科技整体化、综合化的重要方法。兼具多种认识功能,是研究复杂系统的有效工具。为人们提供了制定系统最佳方案以实行优化组合和优化管理的手段。

Page 51: 复杂系统 的 计算机模拟

探索复杂性的方法

一 探索简单性• 研究相对简单的对象特别是把用简化的

方法研究事物,称为探索简单性。• 近代自然科学基本上属于探索简单性的

科学,人们形成了一种信念,即认为一旦掌握了简单性的实体和关系,任何复杂的对象都可以构造和计算出来。

Page 52: 复杂系统 的 计算机模拟

二 探索复杂性• 强调整体与部分的关系是一种非加和性。• 复杂系统各要素之间存在非线性。• 系统变化过程服从因果反馈规律。• 系统不但存在,还在生长和消逝着。

Page 53: 复杂系统 的 计算机模拟

复杂性探索的方法论启示:

• 从还原论到整体论的转变;• 从线性观到非线性观的转变;• 科学兴趣从简单性向复杂性的转变;• 从崇尚解析方法向重视非解析方法的转变;• 确定论和概率论两套描述体系从对立到沟通。

Page 54: 复杂系统 的 计算机模拟

复杂适应系统理论复杂适应系统理论 的最基本的思想 的最基本的思想

• 复杂适应系统也即 CAS(Complex Adaptive System) 。

• 我们把系统中的成员称为具有适应性的主体 (Adaptive Agent) ,简称为主体。

Page 55: 复杂系统 的 计算机模拟

• 所谓具有适应性,就是指它能够与环境以及其它主体进行交流,在这种交流的过程中“学习”或“积累经验”,并且根据学到的经验改变自身的结构和行为方式。

• 整个系统的演变或进化,包括新层次的产生,分化和多样性的出现,新的、聚合而成的、更大的主体的出现等等,都是在这个基础上出现的。

Page 56: 复杂系统 的 计算机模拟

复杂适应系统的例子• 生物有机体• 生态系统• 经济• 运输

Page 57: 复杂系统 的 计算机模拟

为什么使用Agent-Based Modelling

• 传统的建模方法能够描述宏观的系统,但是并不能解释一些特性的来源;

• 不能很好的处理离散系统;• ABM 能够很好的针对以上问题进行处理,

它是传统建模方法的一个补充。

Page 58: 复杂系统 的 计算机模拟

CAS基本思想1994年正式提出我们把系统中的成员称为具有适应性的主体 (Adaptive Agent),简称为主体。所谓具有适应性,就是指它能够与环境以及其它主体进行交流,在这种交流的过程中“学习”或“积累经验”,并且根据学到的经验改变自身的结构和行为方式。整个系统的演变或进化,包括新层次的产生,分化和多样性的出现,新的、聚合而成的、更大的主体的出现等等 ,都是在这个基础上出现的。

Page 59: 复杂系统 的 计算机模拟

基于 CAS 思想的要点 :

A)主体 (Adaptive Agent)是主动的、活的实休。这点是 CAS 和其他建模方法的关键性的区别。正是这个特点,使得它能够用于经济、社会、生态等其它方法难于应用的复杂系统。B)个体与环境 (包括个体之间 )的相互影响,相互作

用,是系统演变和进化的主要动力。以往的建模方法往往把个体本身的内部属性放在主要位置,而没有对于个体之间,以及个体与环境之间的相互作用给予足够的重视。这个特点使得 CAS方法能够运用于个体本身属性极不相同,但是相互关系却有许多共同点的不同领域。

Page 60: 复杂系统 的 计算机模拟

基于 CAS 思想的要点 :

C)这种建模方法不象许多其他的方法那样,把宏观和微观截然分开,而是把它们有机地联系起来。它通过主体和环境的相互作用,使得个体的变化成为整个系统的变化的基础,统一地加以考察。D)这种建模方法还引进了随机因素的作用,使它具有更强的描述和表达能力

Page 61: 复杂系统 的 计算机模拟

CAS 了描述复杂适应性的 6 个特点 :

• 分散的相互作用 全局现象是由许多分散的异质主体的相互作用产生的,任意给定主体的行动依赖于对有限数目其他主体的行动和这些主体共同建立的积累状态。主体的差异性导致积累行为的“永远新奇”

• 没有全局控制者 没有全局性实体控制相互作用,控制产生于主体间的竞争和写作机制。经济行为通过法律制度、设定的角色和波动的联系调节。没有全局竞争对手——个体可以运用经济中的所有机会。

Page 62: 复杂系统 的 计算机模拟

CAS 了描述复杂适应性的 6 个特点 :

• 层次交叉的组织 经济中具有许多层次和相互作用。任何给定层次的单元(行为、动作、策略和产品)都作为构建较高层次的单元基本块。整个组织不仅具有层次性,层次间还存在许多相互作用。

• 连续的适应性 依据积累的经验,主体的行为、动作、策略和产品不断调整,导致系统不断适应,层次间还存在许多相互作用。

Page 63: 复杂系统 的 计算机模拟

CAS 了描述复杂适应性的 6 个特点 :

• 永远创新 新行为和新结构可能刺激更新的行为和更新的结构的创立,产生一个持续创新的状态。经济中的新市场、新技术、新行为和新组织不断创立新的环境,填充新环境的行动将产生更新的环境。静态被动态代替。

• 偏离均衡的动态 由于新的环境、新的潜在力量、新的可能性不断产生,经济运行远离任何最优或全局的均衡。均衡是暂时的,非均衡是常态。意味着改进通常是可能的,并且却是是由规律的发生。

Page 64: 复杂系统 的 计算机模拟

CAS 的 7 个有关概念• 1.聚集 (Aggregation) 有两个含义。

– 简化复杂系统的一个标准方法——即把相似的事物聚合成类,例如树、汽车、银行等。

– 主体通过“粘合”形成较大的更高一级的主体——介主体( meta-agent )。

• 2 .标识 (Tag)– 在聚集体的形成过程中,标识机制在起作用。标识

的作用在于区别主体。聚集体的形成或者说主体的聚集都是有选择的,并非任意个体都会聚集。标识的作用在于促进主体选择性的相互作用。

Page 65: 复杂系统 的 计算机模拟

3 .非线性 (Non-linearity)非线性是指个体自身属性的变化以及个体之间的相互

作用并非遵从简单的线性关系。因为这样,复杂系统的行为才会如此难以预测;才会经历曲折的进化过程,呈现出丰富多彩的性质和状态。

4 .流 (Flow)在个体与环境之间存在着物质流、能量流和信息流。

CAS 理论认为这些流的渠道是否通畅、周转迅速到什么程度,都直接影响系统的演化过程。

Page 66: 复杂系统 的 计算机模拟

5 .多样性 (Diversity)CAS 理论认为,在 CAS 系统中,多样性既非偶然也非随机。每个主体都安顿在由以该主体与其他主体相互作用所限定的小生境上( niche ,或翻译为生态位)

CAS 理论认为,多样性产生的原因在于适应过程中,是一种动态模式,具有持续性和内聚性。

CAS 系统与其他系统的最重要区别在于组成 CAS 系统的主体的多样性

Page 67: 复杂系统 的 计算机模拟

• 6 .内部模型( Internal Model )– 主体复杂的内部模型是主体适应性的内部机制和精髓,主体在适应过程中接受外部刺激,做出反应,合理调整自身的内部结构。最终,结构的变化,必须使主体能够预知再次遇到该情形时会随之发生的后果,主体由此来适应环境。

• 7. 积木块 (Building Blocks ) – 就像人往往通过将复杂问题分解成若干简单部分进

行理解一样, CAS内部模型用搭积木的方法对已测试过的规则进行组合,产生新问题的处理规则,已有的规则被形象化地称为积木块,它们是新规则产生的基础。

Page 68: 复杂系统 的 计算机模拟

第三节 模型与模拟方法

1. 模型2. 建摸与模拟3. 模拟软件平台 SWARM 的介绍4. 模拟软件平台 STARLOGO 的介绍 5. 应用举例

Page 69: 复杂系统 的 计算机模拟

具体地用模型与模拟方法探索复杂性

模型数学模型

模拟基于主体的建模方法和 CAS

Page 70: 复杂系统 的 计算机模拟

模型方法

定义:模型是在结构或 / 和行为的重要方面和所研究的系统相似的,真实的或想象的系统的映象。

它往往能为大范围的观察事实提供解释。

Page 71: 复杂系统 的 计算机模拟

模型与原型• 模型的建立不是“原型的重复”,而是按研究目的的实际需要和侧重面,寻找一个便于进行系统研究的“替身”。不同的人由于研究的目标不同,就会对某些方面做出不同的简化。

• 在原型系统及模型之间存在着“反馈”的关系,根据对原型系统规律的认识,可以建立模型。而建立模型进行实验的过程又可发现一些新的规律,由此预测未来或丰富对原型系统的认识。

Page 72: 复杂系统 的 计算机模拟
Page 73: 复杂系统 的 计算机模拟

模型应用范围• 人类对世界的探索过程,就是建立各种模型表示的过

程。人类知识积累的过程,也是修正和具体化各种形态的模型的过程。 – 静态结构的模型称为静态模型 – 描述事物发生、发展、演化过程的模型称为动态模

型。 • 历史地看,模型形态的变化也有一个逐渐从简单到复

杂的发展过程。– 从最初原始的思维意象模型,发展到借用外在的工具搭建的

各种模型,包括绘画模型、建筑雕塑模型、工具模型等,再到哲学和神学中发展出的各种理论模型。

Page 74: 复杂系统 的 计算机模拟

模型分类• 按照模型存在的空间,模型可分为物质

模型与思维模型两大类。– 物质模型是以某种速度、形式相似、人造或

自然的模型实体去再现原型。物质模型是模拟实验赖以进行的物质手段。

– 思维模型是人们在头脑中创造出来的,并且运用它在思维中进行逻辑推理、数学演算和“思想实验”,可分为形象的(唯象的)模型和符号的(标志性的)模型。

Page 75: 复杂系统 的 计算机模拟

建模动机

一般可以把人类建立模型的动机分为四个层次:

( 1 )解释和理解的需要。 ( 2 )预测的需要。( 3 )控制的需要。 ( 4 )技术理性和工具的需要。

Page 76: 复杂系统 的 计算机模拟

一 近代常见的模型物质形式的模型 ——物理模型思维形式的模型 ——数学模型 ——统计模型 ——逻辑模型

Page 77: 复杂系统 的 计算机模拟

物质形式的科学模型物理模型对要研究的客体,按照一定的研究目的,寻找一种天然存在的具有相似性的实物或者人工地制造一种具有相似形的实物,作为原形客体的实际模拟物,即实物模型。运用这种实物模型,进行模拟实验或模型实验,以获取关于客体的某种规律性认识。

• 天然模型:以天然存在物作为模型。最为典型和运用得最多的就是生物模型。其方法论作用:一方面生物所具有的奇妙器官和功能作为仿生学的对象。 另一方面,把某类生物作为人的科学模型来研究,获得对人体的认识。

• 人工模型 : 即以人工制作物作为科学模型。

Page 78: 复杂系统 的 计算机模拟

思维形式的科学模型 对要研究的对象,按照一定的研究目的,经过

科学的分析而抽象出它的本质属性 特征,构造一种思维形式的模拟物,即思维模型,常表现为抽象的、数学的、理论的形 态。

( 1 )理想模型:是对研究对象的一种简化和理想化。

( 2 )数学模型: ( 3 )理论模型: ( 4 )半经验半理论模型:

Page 79: 复杂系统 的 计算机模拟

二 建立模型的方法论原则

模型具有工具性与对象性双重性质。建立模型的方法论原则:• 相似性与简单性的统一。要求具有本质

上的相似性。• 可验证性。• 多种知识和方法的综合运用。

Page 80: 复杂系统 的 计算机模拟

三 科学模型的多重功能• 科学模型的研究纲领作用;• 科学研究的间接方法;• 思维模型可以起到思想实验的目的。思

想实验实际上是思维操作亦即逻辑推理的结果。 是实际实验的逻辑补充。

• 模型是研究复杂系统的关键。• 模型研究对实践的指导作用。

Page 81: 复杂系统 的 计算机模拟

四 模型的多样性和有限性

• 多样性• 局限性:常常过于简化。

Page 82: 复杂系统 的 计算机模拟

模型的系统分析

本体描述语言 程序设计语言

客体 程序?

客体

描述

系统

设计

形式

系统

认知

模型软件制作

模型抽象 模型组织模型表示

语用

语义 认知 制作 语法

Page 83: 复杂系统 的 计算机模拟

模型: ——客观事物的反映 ——客观规律的简化和抽象 ——整理信息的概念框架

模型小结

Page 84: 复杂系统 的 计算机模拟

模型具有以下这些基本的性质:•客观性:必须符合实际。•主观性:对于目标有效。•相对性:只反映客观事物的某一侧面。•渐进性:随认识和实践的发展而发展。

Page 85: 复杂系统 的 计算机模拟

模型的作用 模型是人类认识和改造世界的必经之路:

——描述系统 ——整理信息 ——寻找规律 ——预测未来 ——设计人为事物

Page 86: 复杂系统 的 计算机模拟

从模型到模拟

数学模型计算机模拟

CAS

Page 87: 复杂系统 的 计算机模拟

数学模型方法

数学模型是对于某个特定对象或一定问题,采用形式化数学语言来描述其特征及数量相依关系的一种数学结构,它是一组数学关系式或一套具体的数学算法。即用数学语言表达事物的状态、关系和过程,经推导、演算和分析,以形成解释、判断和预言的方法。

Page 88: 复杂系统 的 计算机模拟

数学模型的类型• 确定性数学模型;• 随机性数学模型;• 模糊性数学模型;• 突变性数学模型。。。。。

Page 89: 复杂系统 的 计算机模拟

数学模型的特征:

–高度的抽象性;–具有严密的逻辑性;–具有应用的广泛性;– 过程描述,非直观:如果是非线

性动力学方程,可表示、但却不可求解。

Page 90: 复杂系统 的 计算机模拟

数学方法在科学认识中的作用• 为科学技术研究提供简洁精确的形式化语言

• 为科学技术研究提供数量分析和计算的方法:

• 为科学研究提供逻辑推理的工具

Page 91: 复杂系统 的 计算机模拟

计算机模型方法:

所要研究问题的数学模型,转换为能输入计算机进行数值运算的形式,或直接建立计算机仿真模型,在计算机上通过系统地变换参数作大量数值计算。

Page 92: 复杂系统 的 计算机模拟

计算机模拟 - 发展的历史• 计算的历史主要是模拟的历史;• 在 PC 上模拟人的智能、智能发育过程;• 在平台上模拟系统 , 如人工生命,机器人足球,蚁群算法;

• 在网络上模拟社会,如 email ,电子商务,网格计算;

• 在平台上,网络上模拟智能 agent , agent是虚拟社会人,实质上是现实社会人的缩扩模型。

• PC ,网络是系统,人,社会是系统,它们之间是模拟关系。

Page 93: 复杂系统 的 计算机模拟

模拟• 计算机发展中模拟是不变的,而变化的

只不过是模拟的对象,那么什么是模拟?• 从系统观来看,模拟是两个系统之间的关系,模拟的实质是两事物或两个系统同一性的转化。

• 模拟要素有四:原型,转化,模型,系统同一性。

Page 94: 复杂系统 的 计算机模拟

传统建摸方法的问题 近代科学使用的各种建模方法普遍存在以下几个缺点:

——宏观和微观的割裂。 ——状态和过程的割裂。 ——难以描述反映非线性过程。 ——忽视个体或元素的主动性。

Page 95: 复杂系统 的 计算机模拟

基于主体的建摸方法

新的方法具有三个显著的特点: —— 宏观和微观的结合 —— 过程和状态的结合 —— 可操作性强,软件工具的提供。

Page 96: 复杂系统 的 计算机模拟

基于主体的建模方法

Page 97: 复杂系统 的 计算机模拟

多主体建模的理论常见缩写CAS complex adaptive system• MAS Multi-Agent System• ABM Agent based Model• ACE Agent based Computional Economy• 。。。广泛应用于各种社会科学、自然科学与工

程科学中(生态经济学 人工社会 政治科学 人工智能 人工生命 商务经济模拟 工程模拟 地理信息系统 决策支持系统 生物信息学)

Page 98: 复杂系统 的 计算机模拟

计算机模型的一般特点 • ( 1 )计算机模型一般只输出一组离散

的数值。它不像解微分方程组那样给出通解或一个函数。

• ( 2 )它不用深究变动机理,只需从实际数据或直观感觉出发,来模仿描述系统,然后通过逐步求精,最后达到正确地反映系统。

Page 99: 复杂系统 的 计算机模拟

计算机模型的一般特点(续)• ( 3 )计算机建模用其程序模拟现象,

计算机语言被证明是便于进行模拟的。计算机语言的丰富的数据结构可以方便地描述系统的状态。用计算机程序能灵活地描述各种复杂的进程。

• ( 4 )计算机建模的应用很广泛 , 可用于工、农、商及军事等各行各业的规划、调度、设计和决策等等。

Page 100: 复杂系统 的 计算机模拟

有人对美国 1000家最大的公司的计划系统应用定量分析方法的情况调查时,得到不同方法应用的频数表,发现

在各种定量分析方法中模拟方法所占的比重很大。

项 目 应用频数 所占百分比

模拟研究线性规划网络分析(包括 PERT 与 CPM )存储理论非线性规划动态规划整数规划排队理论其他

604328241687712

2921141284336

合计 205 100

应用定量分析方法的频率

Page 101: 复杂系统 的 计算机模拟

计算机模型的一般特点(续)• ( 5 )可充分发挥人和计算机的优势。

– 人具有直觉,其思维方式是很灵活的。在寻找复杂的因果关系时,可以根据直觉与经验比较敏锐地给出一个模型结构的框架。

– 计算机有大的存储器,又有高速运算的能力,所以它可以同时顾及系统的各方面结构或易于展现系统动态变化的具体情节

• 计算机模型发挥了人机两方面的优势,通过人的直觉、思维和推理,一块一块地构筑模型,送入计算机,然后可迅速地逐步计算。

Page 102: 复杂系统 的 计算机模拟

计算机模型的一般特点(续)• ( 6 )计算机建模的实现方法灵活。一般来说,

用解析式表示量之间的关系,明确、清晰、令人信服。然而,它只解决较简单而且有固定模式的问题。对复杂而灵活的问题,就要用模拟的办法。

• ( 7 )智能化的发展方向。人工智能的原理就是从人脑处理问题的模式中抽象出来的。计算机模型把人机的优势结合,以解决传统数学方法不易解决的复杂系统的认识问题,所以必然利用人工智能所取得的成果。

Page 103: 复杂系统 的 计算机模拟

计算机建模方法优势 • 经济性 对于一个大型的系统、直接实验成本十分昂贵,使用计算机建模实验能大大地降低实验成本,而且可以多次重复使用;

• 安全性 对于某些系统,如载人宇宙飞行器、核电站控制、直接实验往往是危险的和不允许的;

• 预见性 对于经济、社会、生物、战争等非工程系统,直接实验几乎是不可能的。计算机模型可用于预测系统的特性和外部作用的影响,从而研究管理、控制的策略。

Page 104: 复杂系统 的 计算机模拟

计算机模拟局限性• 各种模型都是基于建模者的认知水平和观测能力的结果,从而模型模拟的可信度缺乏统一的测量尺度,因此结果很难被大众采纳而形成公共知识;

• 根据测不准定理,观测事实不过是一种近似结果,由于建模者的参与,观测事实的细节和观测指标的取舍都带有建模者预先设计的痕迹,得到的结果很难客观

• 第三,建模者本身就是有限信息和有限理性的主体,就是现实系统的参与者。因此不大可能实现超越系统、超越自身的理性。

• 这些局限在通常的实验研究方法中也同样存在,但在计算机建模方法中更容易引起人们的质疑

Page 105: 复杂系统 的 计算机模拟

模拟软件平台的介绍

Swarm

Starlogo

Page 106: 复杂系统 的 计算机模拟

SWARM简介

1 、背景

2 、 Swarm 的历史与简介

3 、面向对象的技术

4 、 用 Swarm 建模的思想和方法

5 、对 Swarm 的感性认识——例子

6 、 Swarm 类库简介

Page 107: 复杂系统 的 计算机模拟

1 、背景

• 早期的科学家通常自己制造实验仪器,自己磨透镜,自己连探测器,甚至自己制造计算机。研究者首先是工程师、技师、电工,其次才是科学家。

• 计算机模拟程序实际上就是用软件制造的实验仪器,这种方法在某些方面已经取代了物理实验仪器。

• 计算机模型常常使优秀的科学家变成糟糕的程序员。

• Swarm是一个高效率的、可信的、可重用的软件实验仪器。其目标就是予科学家们一个标准的软件工具集,从而提供一个设备精良的软件实验室,帮助人们集中精力于研究工作而非制造工具。

Page 108: 复杂系统 的 计算机模拟

Swarm 是一个面向对象的类库,用户可以通过调用这些类库简化模拟工作。

用户通过在自己的程序中引入 Swarm类建模。

Swarm类用 Objective C编写, Objective C 是一种面向对象的 C语言。图形用户界面用 Tcl/Tk编写,这是一种用于编写窗口小部件的脚本语言。

既可用于 Unix 平台又可以用于 Windows 95/98/NT 。

2 、 Swarm 的历史与简介

Page 109: 复杂系统 的 计算机模拟

开发环境:

Swarm 支持 SUN JDK 1.2 或以上版本。因此,常用的开发工具,如 Jbuilder3 , Visual Cafe 4 等都可以用来编写和调试基于 Java 的 Swarm 程序。

Unix 下:1)如果要使用 Java ,必须首先安装 Swarm 支持的 Java 虚拟机。在 Unix 下,可以使用 Kaffe ( http://www.alphaworks.ibm.com/tech/jikes ), Blackdown JDK ( http://www.Blackdown.org )或 SUN JDK ( http://java.sun.com/products/jdk/1.2/ )。

2)系统中还必须安装 emacs , emacs 是一个 GNU 的编辑器,由于它配置灵活,功能强大,可以免费获得,又与开发工具具有一定的集成性,应用非常广泛。

Page 110: 复杂系统 的 计算机模拟

3 、 SWARM 的技术基础——面向对象的技术

对象( object )这个词在英语中的意思是被感知或被触摸的事物。对象在客观世界中的意义是很简单的,即明确的物体,小到一个螺丝钉、大到一个生物、一个社会,都是实实在在的对象。作为系统的一个组成部分,它们都为其所在的系统提供一定的功能,在系统中具有一定的作用,担当一定的角色。实际上,我们在认识世界的时候就是面向对象的,我们通过了解系统中这些实实在在的对象来把握整个系统的各个方面。

Page 111: 复杂系统 的 计算机模拟

变量

方法

状态

行为

一个对象 程序

消息

Page 112: 复杂系统 的 计算机模拟
Page 113: 复杂系统 的 计算机模拟

简单的术语

类封装了对象的变量和方法

父类其变量和方法将被继承

子类从父类处继承了变量和方法

实例一个对象,也是一个类的实例

实例变量一个实例中的内部变量

方法函数 . 可以通过给实例发消息来调用

Page 114: 复杂系统 的 计算机模拟

三大特点

封装对象把他们的功能(方法)和数据(实例变量和方法变量)隐藏起来

继承所有子类都继承其父类的所有方法和变量

多态一个类可以有多个对象,他们有共同的行为,但是又有不同的状态

父类

子类

Page 115: 复杂系统 的 计算机模拟

4 。用 Swarm 建模的思想和方法

   Swarm建模框架是一系列独立的主体通过独立事件进行交互。 Swarm模拟可使用不同的领域如化学、经济、物理、人类学和政治科学。   Swarm模拟的基本单位是主体,一个主体就象系统中的一个演员,是能够产生动作并影响自身和其他个体的一个实体。模拟包括几组交互的主体。

主体定义 Swarm系统中的基本对象——模拟部件。一个时间表定义这些对象的独立事件发生的流程。

Page 116: 复杂系统 的 计算机模拟

get parameters

initialize

for 1 to timesteps do:

for 1 to num_agents do:

agent-i-do-something

end for

show state

end for

quit

提供一些数据结构来存储主体的状态和行为

初始化,设定数据结构和输入输出等

将状态数据输出给程序

在编程语言中的实现

Page 117: 复杂系统 的 计算机模拟

主体的组织结构

活动主体

模型 Swarm

静态主体

探测器 Swarm

建模结构:

探测器

输出界面

Page 118: 复杂系统 的 计算机模拟

模型“ swarm” SWARM就是许多个体(对象)组成的一个群体,这些个体共享一个行为时间表和内存池。显然“ swarm”有两个主要的组成部分:对象——模型“ swarm”中的每一项对应模型世界中的每一个对象(个体)。“ swarm”中的个体就象系统中的演员,是能够产生动作并影响自身和其他个体的一个实体。时间表——时间表是一个数据结构,定义了各个对象的独立事件发生的流程,即各事件的执行顺序。在 SWARM中特定的事件发生在特定的时间,按照时间表安排的顺序进行。每种行为是一个独立的动作。模型按照这种安排好的事件的执行顺序向前发展,并尽量使这些事件看起来象同步发生的。输入输出——模型“ swarm”还包括一系列输入和输出。输入是模型参数:如世界的大小,主体的个数等环境参数。输出是可观察的模型的运行结果:如个体的行为等等。

Page 119: 复杂系统 的 计算机模拟

观察员“ swarm” 模型“ swarm”只是定义了被模拟的世界。但是一个实验不应只包括实验对象,还应包括用来观察和测量的实验仪器。在 SWARM计算机模拟中,这些观察对象放在一个叫观察员“ swarm”的“ swarm”中。

•最重要的观察组件是——模型 Swarm•观察员行为的时间表主要是为了驱动数据收集,即从模型中将数据读出,并画出图表。•输入是对观察工具的配置,例如生成哪类图表 ;输出是观察结果。在图形模式下运行时,观察员“ swarm” 中的大部分对象被用来调节用户界面。这些对象可能是平面网格图,折线图或探测器,它们一方面与模型“ Swarm” 相连以读取数据,同时把数据输出到到图形界面,为用户提供了很好的实验观察方式。

Page 120: 复杂系统 的 计算机模拟

Swarm

Sub-Swarm主体

时间表

图形用户界面

模型探测器

Sub-sub-Swarm

Page 121: 复杂系统 的 计算机模拟

• Swarm 中所有的主体和变量都可以被探测。

• 探测器将它自己和主体联系起来 , 它可以给主体发送消息,还可以通过直接读取或者调用主体来获得或修改主体变量。

探测器

被观测变量 =10.2

探测器探测器

Page 122: 复杂系统 的 计算机模拟

• 探测器将主体与图形界面联系起来

• 缺省的探测器图形界面会显示被观测的主体的所有变量——也可以由用户自定义显示变量。

探测器

执行方法输入变量值

打开该类的探测器 关闭探测器

探测器与图形用户界面(探测器与图形用户界面( GUI)GUI)

Page 123: 复杂系统 的 计算机模拟

• 可用于绘制 – 线性图– 柱状图– 格栅图– Digraphs

• 图形用户界面的支持对象可以实现数据的收集,计算和更新。

图形用户界面(图形用户界面( GUI)GUI)

Page 124: 复杂系统 的 计算机模拟

平均价格平均成本

探测器

探测器主体

图形窗口

• 图形窗口输出依赖于探测器动态地收集主体的数据。

给图形用户界面(给图形用户界面( GUI)GUI) 提供数据提供数据

Page 125: 复杂系统 的 计算机模拟

建模思想:

• 这种建模方法不需要一个方程形式来体现系统中内生的关系。

• 这种方法强调非均衡的发展路径,它的分析是基于进化和突变行为而不是基于一种机械的观点来看待社会。

• 这种方法是基于单个主体的,因此用户必须为每个决策者建立微观模型,而不是为整个市场建立宏观模型。

• 这种方法将经济系统看作是一个进化的复杂系统。• 用户可以使用 Swarm提供的随机数生成器轻松的引入随

机因素。

Page 126: 复杂系统 的 计算机模拟

建模方法: Swarm 是一种支持“自下而上” (bottom-up) 的建模工具。

Page 127: 复杂系统 的 计算机模拟

5 、对 Swarm 的感性认识——例子热虫( Heatbugs)

热虫是 Swarm的经典例子之一,它说明了简单的局部的主体活动如何产生复杂的全局的行为。

Page 128: 复杂系统 的 计算机模拟

结果显示

Page 129: 复杂系统 的 计算机模拟

界面的样子

Page 130: 复杂系统 的 计算机模拟

interface HeatbugModelSwarm : Swarm { int numBugs; // simulation parameters double evaporationRate; double diffuseConstant; int worldXSize, worldYSize; int minIdealTemp, maxIdealTemp; int 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 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 的定义:

Page 131: 复杂系统 的 计算机模拟

第二步:定义一个主体

所有个体是整个模拟的中心。在模拟中的大部分工作来自于定义个体的行为,以使模型与真实世界的现象类似。 heatbug主体的定义如下:

interface Heatbug: SwarmObject { double unhappiness; // my current unhappiness int x, y; // my spatial coordinatesHeatValue idealTemperature; // my ideal

temperature HeatValue outputHeat; // how much heat I put out float randomMoveProbability; // chance of moving

randomlyGrid2d * world; // 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: (HeatValue) o;-setRandomMoveProbability: (float) p;-setX: (int) x Y: (int) y; // bug's position-setBugColor: (Color) c; // bug's colour (display)

-step;

-drawSelfOn: (id <Raster>) r;

Page 132: 复杂系统 的 计算机模拟

第三步:建立主体

Heatbug 们已经被定义,模型 swarm需要创建它们。这里是 HeatbugModelSwarm 中buildObjects 方法的一段代码:

for (i = 0; i < numBugs; i++) { Heatbug * hbug; int idealTemp, outputHeat;

// Choose a random ideal temperature, output heat from the specified idealTemp = [uniformRandom rMin: minIdealTemp Max: maxIdealTemp]; outputHeat = [uniformRandom rMin: minOutputHeat Max: maxOutputHeat];

// Create the heatbug, set the creation time variables hbug = [Heatbug createBegin: [self getZone]]; [hbug setWorld: world Heat: heat]; hbug = [hbug createEnd];

// Add the bug to the end of the list. [heatbugList addLast: hbug];

// Now initialize the rest of the heatbug's state. [hbug setIdealTemperature: idealTemp]; [hbug setOutputHeat: outputHeat]; [hbug setX: [uniformRandom rMax: worldXSize] // random position Y: [uniformRandom rMax: worldYSize]];}

Page 133: 复杂系统 的 计算机模拟

第四步:建立空间对象

在 swarm 中,空间是另一种个体。在 Heatbug 模型中我们创建一个热空间,这是 swarm 的 space库中一个散射对象的子类。这里是 HeatbugModelSwarm 中 buildObjects 方法的一段代码:

heat = [HeatSpace createBegin: [self getZone]];[heat setSizeX: worldXSize Y: worldYSize];[heat setDiffusionConstant: diffuseConstant];[heat setEvaporationRate: evaporationRate];heat = [heat createEnd];

Page 134: 复杂系统 的 计算机模拟

第五步:模型 swarm 的时序安排

一旦所有的模拟对象在 buildObjects 中被创建,下一步的任务就是在 buildActions方法中确定它们的时序安排。

modelActions = [ActionGroup create: [self getZone]];[modelActions createActionTo: heat message: M(stepRule)];[modelActions createActionForEach: heatbugList message: M(step)];[modelActions createActionTo: heat message: M(updateLattice)];

modelSchedule = [Schedule createBegin: [self getZone]];[modelSchedule setRepeatInterval: 1];modelSchedule = [modelSchedule createEnd];[modelSchedule at: 0 createAction: modelActions];

Page 135: 复杂系统 的 计算机模拟

第六步:建立图形化的探测器

模型 swarm 已经定义,下一步是安排图形化的探测器 swarm 。对于 Heatbug 模型来说,代码段在 HeatbugObserverSwarm 中。探测器 swarm 的结构同建立模型 swarm几乎完全相同。

interface HeatbugObserverSwarm : GUISwarm { int displayFrequency; // one parameter: update freq

id displayActions; // schedule data structs id displaySchedule; HeatbugModelSwarm * heatbugModelSwarm; // the Swarm we're observing

// Lots of display objects. First, widgets XColormap * colormap; // allocate colours ZoomRaster * worldRaster; // 2d display widget EZGraph * unhappyGraph; // graphing widget // Now, higher order display and data objects Value2dDisplay * heatDisplay; // display the heat Object2dDisplay * heatbugDisplay; // display the heatbugs}

Page 136: 复杂系统 的 计算机模拟

第七步:建立数据图表

数据图表是 HeatbugObserverSwarm 中的一个对象,表示平均的不高兴程度。这段代码用来创建这个对象:

// Create the graph widget to display unhappiness.unhappyGraph = [EZGraph createBegin: [self getZone]];[unhappyGraph setTitle: "Unhappiness of bugs vs. time"];[unhappyGraph setAxisLabelsX: "time" Y: "unhappiness"];unhappyGraph = [unhappyGraph createEnd] ;

[unhappyGraph createAverageSequence: "unhappiness" withFeedFrom: [heatbugModelSwarm getHeatbugList] andSelector: M(getUnhappiness)] ;

Page 137: 复杂系统 的 计算机模拟

第八步:主函数

函数 main() 是你的程序中最先被调用的函数。所有的实际工作已经完成,剩下的就是在合适的时间创建对象。

int main(int argc, const char** argv) { id theTopLevelSwarm ;

// Swarm initialization: all Swarm apps must call this first. initSwarm(argc, argv);

// swarmGUIMode is set in initSwarm(). It's set to be 0 if you // typed `heatbugs --batchmode' or `heatbugs -b', Otherwise, it's set to // 1.

if (swarmGUIMode == 1) // We've got graphics, so make a full ObserverSwarm to get GUI objects theTopLevelSwarm = [HeatbugObserverSwarm create: globalZone]; else // No graphics - make a batchmode swarm and run it. theTopLevelSwarm = [HeatbugBatchSwarm create: globalZone];

[theTopLevelSwarm buildObjects]; [theTopLevelSwarm buildActions]; [theTopLevelSwarm activateIn: nil]; [theTopLevelSwarm go];

// theTopLevelSwarm has finished processing, so it's time to quit. return 0;}

Page 138: 复杂系统 的 计算机模拟

6 、 Swarm 类库简介• Swarm类库有两个主要功能——被用户直接使用;用户使用 Swarm库来建立自己的子类,为专门的建模需要你建立自己专门的类

Swarmobject

simtools

该库包括两个重要的类, swarmobject 和 swarm 。 Swarmobject 是所有模拟主体的根类,它定义了内存管理的接口并提供对探测器的支持。 Swarm 类是模型的总控, ModelSwarm 和 ObserverSwarm 都从这一基类处继承有用的代码。

activity该库提供了对时间表的支持。时间表是模型运行的时序列表,用户可以将周期性执行的动作按顺序放入这个数据结构中,并指明运行间隔和触发条件,模型就可以按照这个约定运行而不需人为的干预。该库中包括支持探测器的类,这样就可以在模型的运行过程中观察或修改变量。 Simtools 还提供数据分析和显示支持的工具,能够产生统计数据汇总,画时序图等等。

Page 139: 复杂系统 的 计算机模拟

Collection该库中提供了一系列对象的列表,如 List 、 Array 、 Set 等。 Swarm 支持向一个列表中的所有对象传递消息,还可以将列表中的对象按某个属性排序。

defobj该库中提供了对消息、错误处理、调试和内存分配的支持,增强了 Objective-C 的功能。它还支持对象界面和实现分离,从而使 Swarm 编写的程序的层次性更加清晰。

random该库提供给用户一套随机数生成器。支持正态分布、均匀分布、指数分布等多种随机分布。

Space

该库是一个简单的空间库,包括一系列用于二维离散模型的类。这些空间类型在生态系统模拟中经常用到。 Space 中的类大多数是从 Grid2D ,一个可以在指定格点上存储对象和整型值的二维数组继承得来。

Page 140: 复杂系统 的 计算机模拟

ga和 neuro遗传算法类和神经网络类。这是 Swarm 的第一个用户提供的库,是由 Juan J.Merelo 在访问桑塔菲研究所时编写的。

Page 141: 复杂系统 的 计算机模拟

Starlogo

基于 CAS 理论的 模拟平台之二

Page 142: 复杂系统 的 计算机模拟

Starlogo 概述

• StarLogo 是一个可编程的建模环境。• 它用来研究分散系统的运行机制。所谓分散系统是指:没有组织者而有组织,没有协调者而协调的系统。

• 使用 StarLogo 可以对许多现实世界中的现象进行建模并且观察研究,例如鸟群、交通、蚂蚁以及市场经济。 StarLogo非常适合于研究人工生命。

Page 143: 复杂系统 的 计算机模拟

•StarLogo is developed at Media Laboratory, MIT, Cambridge, Massachusetts, with support from the National Science Foundation and the LEGO group.

Page 144: 复杂系统 的 计算机模拟

• Starlogo 中有海龟 (turtle) 和点 (patch) 。其中,海龟是我们自己创建的主体,点是画布 (canvas) 上固定的一个个小方格。我们可以对海龟和点的行为及属性进行编程,海龟主要固有属性是坐标位置 , 头的朝向 , 颜色 , 和画笔。点的主要固有属性是颜色和坐标位置,我们还可以给它们自定义一些新的属性。程序运行时所有的海龟和点都以系统规定的时间步进,并行运转。 Starlogo 就是通过海龟和点的交互运作来模拟现实世界的运转的。

• 另外, Starlogo允许对海龟进行分类 (breeds ) ,例如,我们可以创建两类海龟:狼和兔子,然后对这两类分别定义它们的属性和行为。

Page 145: 复杂系统 的 计算机模拟

• 界面 画布 (canvas) 、控件等

• 控制中心 海龟窗口:命令窗口 +函数窗口 观察者窗口:命令窗口 +函数窗口

Page 146: 复杂系统 的 计算机模拟

界 面

Page 147: 复杂系统 的 计算机模拟

控制中心

Page 148: 复杂系统 的 计算机模拟

控制中心 海龟窗口:每一个海龟都执行

观察者窗口:创建海龟等外部工作

命令窗口:立即执行

函数窗口:被命令窗口中的命令 或按钮调用时执行

Page 149: 复杂系统 的 计算机模拟

控件• 按钮:通过按按钮调用函数控制程序的运行;• 滑块:显示及调节常量的值;• 监控器 (monitor) :实时监控变量值;• 绘图:折线图、柱状图等;• 速度:控制系统的时间步进;• 画布:直观地表现海龟和点的运转;• output 窗口:程序中 print语句的输出窗口。

Page 150: 复杂系统 的 计算机模拟

特 点• 距离:以画布的点的宽度为单位长度• 时间:以可调整的 speed 为时间步进,每隔一

个 speed时间系统中的 observer 和 turtles 并行执行当前要求执行的命令。 也可用 timer 来确定标准时间(以秒为单位)

• 海龟有序号 ( Who)• 颜色:有 14种主要色彩,每种主要色彩又都

有色彩深浅程度,可用数字来表示。

Page 151: 复杂系统 的 计算机模拟

建立模型 建模就是要对现实世界进行抽象,剔除与主题无关的次

要因素,抓住主要因素,提炼规则,用计算机来模拟主体在现实世界中依据一定规则运动的情况,观察结果,总结规律。

不同的情况:• 建模之前已经确切地知道会有怎样的结果,建模的目的

只是让结果更加形象化地表现出来。• 建模之前对于结果的大致方向有一定的把握,建模后验证了自己的判断并了解了更多的细节。

• 建模之前对于结果没有什么判断或者有错误的判断,建模后出现了完全在意料之外的现象。这是最有价值的建模。

Page 152: 复杂系统 的 计算机模拟

可能应用的领域• 生物学• 流行病学• 社会学• 股市分析:每个股民有自己的行为规则,

思维方式,不受他人控制,但所有股民的行为集合则在股市的涨落上体现了个体所不具有的性质。

Page 153: 复杂系统 的 计算机模拟

变 量(一)• Starlogo 中只有四种数据类型:布尔型、数据列表型、数值型、字符串型。

• 状态变量:是海龟和点固有的特性,除了坐标属性外它们都可以用 set 命令改变。

• 自定义变量:我们可以创建全局变量和海龟、点及观察者的新的状态变量。一旦创建了新的状态变量,系统便会自动生成相应的函数集来方便这个变量的使用。变量定义语句可以写在任何一个函数窗口中。

Page 154: 复杂系统 的 计算机模拟

变 量(二)• 变量的后缀:利用 -at, -to , -towards 等后缀我们可以读取、修改其它海龟或点的状态变量

Page 155: 复杂系统 的 计算机模拟

变 量(三)• 全局变量:……• 局部变量:与全局变量一样和任何点或海龟无关。仅在定义所在的函数内有效。(用 let语句定义,以冒号开头)

• 函数参数:参数之前要加:,多个参数之间用空格隔开。

Page 156: 复杂系统 的 计算机模拟

list

• 可用 list 或 sentence 命令或 [ ] 生成列表,但是要注意这里只是针对数据列表,在 Starlogo 中,不能将执行语句置于数据列表中

• Pick [ 数据列表 ] 随机返回列表中的一个数据• copy-list [ 数据列表 ] 返回列表的一个副本• Median-of-list[ 数据列表 ] 将数据列表按大小排序,返回中值

• Mode-of-list[ 数据列表 ] 返回列表中出现次数最多的项,如果不止一个,则返回他们的集合列表

• Setitem number[ 数据列表 ] thing 把列表中第 number项改为 thing

Page 157: 复杂系统 的 计算机模拟

输出方式• 画布• Output窗口• Plot窗口• 监控器• Info窗口

Page 158: 复杂系统 的 计算机模拟

命令测试• diffuse variable percentage 语言解释: 让每个点把自己的 variable 变量取出 percentage(0

到 1 之间的数 ) ,并分成八份给邻近的每个点一份。程序测试: 初始状态:( 0 , 0 )点的 color置为 139 ,其他点都置为 0 (黑色)。每调用一次 go函数,每一个点都把自己的颜色拿出 20% 来平分给邻近的八个点。

相关命令: diffuse4 variable percentage ,和 diffuse基本相同,

只是 diffuse4 是分成四份给上下左右的点。

Page 159: 复杂系统 的 计算机模拟

Diffuse测试程序运行结果初始状

态 运行一次

运行12

后 运行27

此外,我们还可以利用 output 窗口将每次运行后所有点的 color值记录下来,定量地分析 diffuse语句的含义。

Page 160: 复杂系统 的 计算机模拟

• fd, step, jump, leap

语言解释:这四个都是让海龟前进的命令。但它们又都不同。 fd 和 step 都是每移动一个 step 就要花一单位时间,也就是说移动 10 个 step 的时间 =10*移动一个 step 的时间。但 jump 和 leap 是无论移动多少个 step 所花的时间都一样。也就是说移动 10 个 step 的时间 =移动一个 step 的时间。 jump 和 leap 的区别在于 leap 要确定目标点上面没有别的海龟才执行跳跃,而 jump没有这个要求。 fd和 step 的区别在于 fd后面要跟 number ,可以前进多步, step 就是前进一步,不带参数。

Page 161: 复杂系统 的 计算机模拟

• 程序测试:

• 运行结果: 打开 output窗口观察结果

to goask-turtle 1 [resett fd 10 print timer]ask-turtle 2 [resett jump 10 print timer]ask-turtle 3 [resett leap 10 print timer]ask-turtle 0 [resett repeat 10 [step] print timer]end

Turtle #1: 0.831Turtle #2: 0.14Turtle #3: 0.14Turtle #0: 0.811

Page 162: 复杂系统 的 计算机模拟

应用举例1. 国会山保姆公司模型2. Akerlof 模型3. 企业集群研究4. ACE

Page 163: 复杂系统 的 计算机模拟

1 、国会山保姆公司模型• 模型背景

一些主要在美国国会工作的年轻夫妇成立的组织,他们愿意彼此之间充当保姆。国会山保姆公司通过印刷临时票券来解决问题:每做一个小时的保姆工作(即照顾别人的孩子)可以得到一个单位的票券,反过来,请别人照顾孩子,则要付给别人一张票券。

• 困惑出于对未来的预期而导致当前消费减少,从而发生经济衰退。

Page 164: 复杂系统 的 计算机模拟

模型的实现•每个保姆对未来预期的票数为:

• NumTicket = p * predictDay•当一个保姆手中掌握的票数大于他 / 她

预期的票数时,出行的概率增加,找工作的概率下降;否则,找工作的概率上升,出行的概率下降。

• 通过调整参数求得解决之道。

Page 165: 复杂系统 的 计算机模拟

模型结果分析(一)• 刚开始,找工作和出

行的人数基本相等。由于货币供给不足而导致的消费不足,最终将导致失业率上升,引发市场衰退。

Page 166: 复杂系统 的 计算机模拟

模型结果分析(二)• 通过政策调整达到市

场均衡1 、增加每个保姆手中的初始票数,也就是增加整个市场的货币投放量2 、减少人们的预期天数,完善和健全贷款制度、保险制度和社会保障金制度

Page 167: 复杂系统 的 计算机模拟

模型结果分析(三)

• 由于主体竞争能力不同而导致贫富分化,需要税收政策等进行收入再分配

返回

Page 168: 复杂系统 的 计算机模拟

2 、阿克洛夫模型• 模型以旧车市场上旧车的销售情况来解释在非对称信息环境下产品销售方面的不利选择问题。

• 它解释了在某些特定情况下,一种低效率的市场是如何产生的。

Page 169: 复杂系统 的 计算机模拟

• 所有外表相同的汽车都以同样的价格出售。高质量的汽车在旧车市场上就无法以预期的高价格出售。对于卖主是不利的。

• 低质量汽车的卖主不愿意以较低价格卖出,直到旧汽车的低质量性质将要显示出来为止。

• 拥有高质量汽车的卖主往往将他们的汽车撤出市场。这样旧汽车市场上汽车的平均价格在下降。

Page 170: 复杂系统 的 计算机模拟

模型的实现• OBJECT :汽车、市场• 汽车:定义汽车的属性和卖主的行为• 市场:容量固定,记录当前高质量和低质量的汽车的数量,和当前卖出的高质量和低质量的汽车的数量。

Page 171: 复杂系统 的 计算机模拟

• 如何表示市场上交易双方的信息不对称:对于卖方,汽车的信息是完全的,即卖方知道汽车是高质量的还是低质量的,但是买方并不知道汽车是高质量还是低质量的,只能根据上一轮的交易情况预测本轮交易中市场上高质量和低质量汽车的比例,并以此为基础给出买方购买汽车的期望价格

Page 172: 复杂系统 的 计算机模拟

模型结果分析• 市场中汽车交易价格

下降• 高质量汽车退出市场• 市场萧条• 与传统经济学相悖,

在非对称信息环境中,商品质量依赖于价格。

返回

Page 173: 复杂系统 的 计算机模拟

3 。关于企业集群形成机制的研究

• 企业集群的形成是现代经济生活中引人注目的一种现象。

• 我们用模拟的方法,观察了其形成的过程,得到了一些有趣的结果。

Page 174: 复杂系统 的 计算机模拟

应用举例 4 : ACE1. 有限理性和经济进化2. 基于主体的可计算经济学3. 基于主体的可计算经济模型

Page 175: 复杂系统 的 计算机模拟

1. 有限理性和经济进化

1.1 新古典经济学的理论基础

1.2 经济是一个复杂适应系统

1.3 经济主体行为的有限理性和经济进化论

Page 176: 复杂系统 的 计算机模拟

1.1 新古典经济学的理论基础

• 经济主体行为的完全理性假设• 经济系统的均衡假设在此理论基础上,经济学者应用数学工

具推导出一系列经济结论,用于分析经济理论和经济现实。

Page 177: 复杂系统 的 计算机模拟

1.1 新古典经济学的理论基础

• 完全理性假设 ( 1)经济主体行动的完全理性,所有经济主体愿意并能够极大化他们的预期效用或预期收益;

2)经济主体知识的完全理性,所有经济主体具有理性预期。理性预期意味着所有经济主体关于其他主体如何行动有相同和正确的信念(对称信息)

• 经济系统均衡假设 追求个体利益最大化的行为在市场机制的作用下,能

导致整个社会福利的最大化,资源达到最有效的配置。

Page 178: 复杂系统 的 计算机模拟

这里应用一个简单的竞争市场的静态模型阐述经济主体行为完全理性假设的应用。假设某行业中存在 n个同质企业( n很

大),每个企业选择其产量 x以使其利润 R

R ( x . p ) = px – c ( x ) 达到最大化,其中p为价格, c ( x )是一个递增的成本函数。

Page 179: 复杂系统 的 计算机模拟

存在一个下降的需求函数p = p ( n X ),表示价格是行业总产量n X

的反函数,其中 X是行业中的 “平均”企业(典型个体)的产量。每个企业的价格 p给定,选择 x以使其利润最大化,这意味着设置 x以满足“价格等于边际成本( p = c’( x ))”条件。

Page 180: 复杂系统 的 计算机模拟

通过求解x*=argmaxxR(x,p)=g(p) 来得到该问题的解,其中 argmax意味着x的最大值。由于 p = p ( n X )依据市场需求函数,我们可以表示 x如下:

x=g(p(nX))=h(X)

Page 181: 复杂系统 的 计算机模拟

因而,经济主体利润最大化假设能从给定的平均企业归纳出一个个体(企业)的优化选择。理性预期假设要求个体的选择一致性。因为所有的企业是同质的,一致性 X=h(X),每个企业最终选择平均企业的选择 X。由于 x=X=h(X),我们可以断定每个企业都没有偏离平均企业产量的冬季。这一例子说明,完全理性假设可以用于分析竞争性市场。

Page 182: 复杂系统 的 计算机模拟

西方经济学者一直追求的是建立一个综合和统一的经济学理论。这个理论以经济主体的完全理性行为假设出发,构造消费理论、投资理论和生产理论,进而形成完整的经济理论体系。随着数学工具的不断引入,理论发展的越来越精密,越来越机械,也离经济现实越来越远。

Page 183: 复杂系统 的 计算机模拟

1.2 经济是一个复杂适应系统

复杂性意味着:( 1 )系统是由一系列相互作用的主体(过程、元素)构成

一个网络;( 2 )这些主体的活动自然形成了系统的动态积累行为;( 3 )累积行为的描述可以与个别主体的细节知识无关。适应性意味着: ( 1 )环境中主体的活动可以被赋予一个值(如效用、偿付或适应);

( 2 )随着时间的推移,主体的行为趋向于使该值增加。

Page 184: 复杂系统 的 计算机模拟

1.2 经济是一个复杂适应系统 经济是一种重要的复杂适应系统• 经济是由无数个主体(如消费者)构成;• 主体在重要的方面有所不同,如消费偏好和收入等;• 主体被组织成群体或等级结构,如家庭和企业等;• 主体为适应环境,必须从时间中学习或自然选择,

如教育和广告效应等;• 主体的状态和行为随时间而改变,如价格调整;• 主体的变化是反馈的结果,如购买或销售;• 宏观层次行为从微观层次的相互作用中自然产生。

如通货膨胀和失业等。

Page 185: 复杂系统 的 计算机模拟

1.2 经济是一个复杂适应系统• 沙堆模型:倒塌沙量的分配是在指定时间段 T 上遵循一种幂律分布。也就是说,一个给定沙崩量的平均发生次数是和它的大小量成反比的。即大的沙崩是很少的,小的沙崩是经常的。

• 例如, 24 个小时你可能观察具有 1000沙粒的一个沙崩, 10 个有 100沙粒的沙崩, 100 个 10颗沙粒的沙崩。

log(N) = log(K)-slog(c)

N=沙崩的数量, K=1000,c=沙崩中沙粒的数量, s= 1

经济系统的许多行为,如股市崩盘,与此类似。

Page 186: 复杂系统 的 计算机模拟

1.3 经济主体行为的有限理性和经济进化论 • 在复杂的经济系统面前,经济主体的理

性是有限的。• 进化经济学者认为经济中也存在自然选择。企业在市场中相互竞争,赢利的企业增长扩大,亏损的企业收缩衰弱,直至被淘汰出局。企业要在激烈的竞争中利于不败之地,必须不断创新和不断适应,以保持持久的竞争优势。

Page 187: 复杂系统 的 计算机模拟

2. 基于主体的可计算经济学 • 基于进化经济学、认知科学和人工智能技术产

生出来的基于主体的可计算经济学( Agent-based Computational Economics )简称 ACE ,是研究经济理论和经济现实的一个新的有效方法论。

• ACE把经济模型化成由一系列相互作用主体构成的进化系统,是复杂适应系统的经济学体现。

Page 188: 复杂系统 的 计算机模拟

2. 基于主体的可计算经济学 2.1 计算经济学2.2 传统人工智能技术及其在经济学中的

应用2.3 基于主体的可计算经济学研究的基本

内容2.4 遗传算法和分类器系统2.5 基于主体的可计算经济学的建模过程2.6 基于主体的可计算经济实验室

Page 189: 复杂系统 的 计算机模拟

2.1 计算经济学 • 计算经济学( Computational Economic

s )是应用计算技术研究经济问题的方法论。

• 计算途径能对传统经济模型提供有效的数量求解方法,即利用计算机的高速计算和海量存储

• 计算途径可以提供更准确的洞察力,是对传统经济研究途径的替代 。

Page 190: 复杂系统 的 计算机模拟

2.2 传统人工智能技术及其在经济学中的应用

人工智能( Artificial Intelligence )是研究如何制造出人造的智能机器或智能系统,来模拟人类智能活动的能力,以延伸人类智能的技术。早在 1992年一份美国国家科学基金的报告就指出:“经济学是人工智能一个很有前途的应用领域”,但人工智能在经济学中的应用仍远远滞后于其他自然科学领域。 因为使用工具不同,研究途径不同。

Page 191: 复杂系统 的 计算机模拟

2.2 传统人工智能技术及其在经济学中的应用• 人工智能的传统技术是专家系统和神经网络 • 专家系统是一种在相关领域中具有专家水平解题

能力的智能程序系统,它能运用领域专家多年积累的知识与专门经验,模拟人类专家思维过程,求解需要专家才能解决的问题。

• 专家系统的最大优势是复杂系统的定性推理能力,因而它可以作为传统定量计算程序(如计量经济模型)的有力补充。专家系统能够有效的处理不完全和不确定信息,而在现实经济中,不完全和不确定信息是广泛存在的,因而专家系统在经济学领域应该大有用武之地。

Page 192: 复杂系统 的 计算机模拟

2.2 传统人工智能技术及其在经济学中的应用• 目前,在经济领域应用最广泛的传统人工智能技术是神经网络( Neural Networks )。神经网络是一个计算机程序,它模拟了人脑的认知处理过程

• 神经网络是由具有各种相互联系的单元组成的集合。每个单元具有极为简化的神经元的特性。神经网络常常被用来模拟神经系统中某些部分的行为,生产有用的商业化装置以及检验脑是如何工作的一般理论

Page 193: 复杂系统 的 计算机模拟

2.3 基于主体的可计算经济学研究的基本内容

• 基于主体的可计算经济学 ACE 研究的主要内容是经济的自组织和进化性,以及经济的模拟实验。

• ACE运用了计算机强有力的运算能力,尤其是 OO 程序语言,来模拟经济政策导致的经济环境变化,在“结构、行为和福利效果”这一框架中探讨经济政策的可行性。这种方法使经济学进一步接近了现实世界,并使经济政策在一定程度上可以如同科学实验一样得到检验。

• ACE 是从微观经济的角度(企业和消费者)分析宏观经济的运行规律(经济政策机制和经济周期)。

Page 194: 复杂系统 的 计算机模拟

2.3 基于主体的可计算经济学研究的基本内容• 现代计算技术允许我们在计算机上建立一个人工经济( Model Economy )

• 在人工经济中,允许出现广泛的微观个体行为及其相互作用

• 进化过程可以被描述成自然选择压力直接作用于个体行为的过程,而不是被描述成群体的运动规律

• 一旦所有个体的初始状态和行为模式以及个体——个体和个体——环境相互作用的市场协议被确定,经济系统中不存在集中控制,人工经济沿时间路径自动发展

Page 195: 复杂系统 的 计算机模拟

2.3 基于主体的可计算经济学研究的基本内容 发展现状例如在在财税领域中的不少成果:美国霍普金斯大学 Yo

ung 对财政决策过程的分析,美国耶鲁大学 Shubik 对公共政策福利效应的研究,美国密执安大学 Henrich对公共资源合理运用的分析,英国牛津大学 Chattoe 对预算过程的研究等等。

在 2001年,国家著名经济学刊物《 Journal of Economic Dynamics and Control 》《 Computation Economics 》和计算机刊物《 IEEE Transaction on Evolutionary Computation》都分别出版一期基于主体的可计算经济学专刊,表明它已经成为当前经济学研究的一个热点。

Page 196: 复杂系统 的 计算机模拟

2.4 遗传算法和分类器系统 目前,经济学者主要应用遗传算法和分类器系

统来研究经济主体的适应行为 受达尔文进化论——适者生存的启发, Holland

于 1975年提出了模拟遗传进化过程的计算方法——遗传算法( Genetic Algorithms ) 基本的遗传算法组成部分包括: • 对主体(或其潜在行为)编码的符号串表示;• 评价符号串对环境适应程度的适应值函数;• 产生新符号串的遗传算子

Page 197: 复杂系统 的 计算机模拟

2.4 遗传算法和分类器系统 • Holland ( 1986 )提出分类器系统( Classif

ier Systems )技术。分类器系统是并行传递消息的基于规则系统,并能应用数学算法修改其规则。

• 分类器系统由 3部分组成: ( 1 )执行子系统; ( 2 )赋适应值子系统; ( 3 )规则发现子系统。

Page 198: 复杂系统 的 计算机模拟

2.4 遗传算法和分类器系统 执行子系统规则: IF< 条件 >THEN< 结论 ><强度 >

赋适应值子系统用某一算法计算适应值,用于调整规则的强度。在每一个时间片内,每一个满足条件的规则都要依靠其强度进行投标。

规则发现子系统应用遗传算法发现新规则,其中规则强度相当于适应值。

Page 199: 复杂系统 的 计算机模拟

2.5 基于主体的可计算经济学的建模过程 • 问题识别 分析经济理论和经济现实中存在的问题,并提出解决问题的目标

• 模型框架 描述人工经济的框架: ( 1 )主体的类型; ( 2 )主体之间相互作用的市场协议; ( 3 )人工经济一轮进化过程中的事件发生次序;

( 4 )经济总量的统计方式。

Page 200: 复杂系统 的 计算机模拟

2.5 基于主体的可计算经济学的建模过程• 主体描述 描述每一类主体的状态和行为模式。主体的状态决定其行为,主体的行为能改变其状态,甚至改变行为模式本身(行为进化)

• 实验设计 选择一种人工适应主体技术和一种计算机程序设计语言,模拟主体行为模式和经济运行模式。确定每一类主体的数目,并采用合适的方法为所有主体状态赋初值。

• 结果分析 观察模型运行的结果,并应用经济学理论给予解释。

Page 201: 复杂系统 的 计算机模拟

2.6 基于主体的可计算经济实验室 • 可计算实验室 CL(computational laboratory ) • CL 是一个可计算框架,它支持有若干相互作用主体的系统依靠控制和可复制实验进行研究。

• 具有清晰和简单的图形用户操作界面的 CL使得研究者可以进行严谨的可计算研究,很容易操作。

• CL 可以设计成为有标准的可扩展的。可以开始使用可选择执行模块来实验,并可以使用 CL 来扩展系统的应用范围。

Page 202: 复杂系统 的 计算机模拟

2.6 基于主体的可计算经济实验室• Trade Network Game ( TNG ) Lab (C++ /Visu

al Basic

• SimBioSys ,一个基于主体的进化模拟 CL 主要用于生物学和社会科学一般基于主体的进化模拟;

• Swarm 、 Ascape (Java) 、 RePast (Java) 平台;• 一些建模语言,如 MAML ( Multi-Agent Mode

lling Language) 、 MATLAB 、 SDML (The Strictly Declarative Modelling Language ) 、 StarLogo 和 StarlogoT等

Page 203: 复杂系统 的 计算机模拟

3. 基于主体的可计算经济模型 3.1 ACE 模型在经济理论研究中的应用3.2 ACE 模型在具体市场分析中的应用3.3 Thomas Schelling 的城市种族隔离模型 3.4 阿克洛夫模型3.5 ACE 模型的优势和存在的问题

Page 204: 复杂系统 的 计算机模拟

3.1 ACE 模型在经济理论研究中的应用

1989年, Kiyotaki 和 Wright ( 1989 )建立了著名的货币产生模型。 但是在完全理性假设基础上进行的工作在 Kiyotaki 和 Wright 的基本环境中, Marimon等

人( 1900 )提出基于主体货币产生模型Vriend ( 1995 )应用分类器系统来模拟市场的自组织

过程,在有限理性假设下,验证了斯密的“看不见的手”

Epstein ( 2001 )应用一个基于主体的计算框架,实验性的研究了社会准则进化的重要方面:主体思考某个行为的时间和与此行为有关的社会准则的强度负相关

Page 205: 复杂系统 的 计算机模拟

3.2 ACE 模型在具体市场分析中的应用 • 美国 Santa Fe 研究院研制的著名的人工股票市场

模型• Tesfasion 应用一个基于主体的劳动力市场模型,

研究职业容量、职业集中度和市场力之间的关系 。• 工作供给者和雇主应用人工适应主体来描述,他

们在不断更新预期效用的基础上寻找合作伙伴,相互作用基于囚徒困境模型,并随时间进化其行为。

• 模型的主要发现是,在用于预测工作者与雇主的相应市场力时,职业容量一贯优于职业集中度。

Page 206: 复杂系统 的 计算机模拟

3.2 ACE 模型在具体市场分析中的应用• Kirman 和 Vriend ( 2001 )建立了一个居于主体的零售渔业市场模型,用于分析显示渔业市场的两个特性即:价格分散和重复性购买

• 卖方的决策包括:产品供应量、产品要价和对老顾客的优惠。买方的决策包括:在谁那里购买和可接受的价格。他们应用分类器系统模拟主体的决策行为。

• 实验结果表明:经过一段时期的协同进化,买方成为给他较大优惠卖方的忠实顾客,而卖方也通过优惠吸引老顾客以获得更大的收益。

Page 207: 复杂系统 的 计算机模拟

3.3 Thomas Schelling 的城市种族隔离模型

• 1. 模型描述 Schelling著名的城市种族隔离模型主要描述一个城市中的人们在不愿意有太多和他们不同类邻居的情况下,怎样受响应局部干扰迅速由高度的综合转向高度的隔离。在城市中种族隔离的准确度很强的依赖于主体快乐法则的规范

• 2. 模型实现

Page 208: 复杂系统 的 计算机模拟

3.5 ACE 模型的优势和存在的问题

优势:• ACE 模型的一个优势是群体中每个个体

的细节表示,他们的状态和行为存在重要差异。

• ACE 模型的另一个优势是群体中的个体存在广泛的相互作用。

Page 209: 复杂系统 的 计算机模拟

3.5 ACE 模型的优势和存在的问题

问题:• 几乎没有数学理论可以用来解释模型模拟的结果。 • 计算技术方面的问题 • 由于其研究工作起步较晚,它目前通常作为研究方法论

在实验室中进行研究 • ACE 模型缺少完整系统的经济理论的支持。

Page 210: 复杂系统 的 计算机模拟

•总 结

Page 211: 复杂系统 的 计算机模拟

MATLAB

• http://www.mathworks.com/

Page 212: 复杂系统 的 计算机模拟

四、几点思考• 1 。信息时代要求新的思维方法;• 2 。信息技术提供了新的工具和手段;

• 3 。他山之石,可以攻玉,学科之间的交流是科学进步之道。

Page 213: 复杂系统 的 计算机模拟

结 束 语

• 希望学习哲学和其他学科的同行,对于这种方法给予更多的关注,有更多的同学掌握和利用这些工具,从新的视角观察和研究丰富多彩的各种新发现的问题和现象。