第4卷第1期 智能系统学报 Vol 4 Na 1 2009年2月 CAA I Transactions on Intelligent Systems Feb 2009 一种基于MAS和GS平台的 城市人口变迁模拟仿真方法 危辉2,白宇12 (1复旦大学计算机科学与工程系认知算法模型实验室,上海200433,2复旦大学波散射与遥感信息教育部重点 实验室,上海200433) 摘要:中国的城市化进程非常迅速,人口增长和迁移是重要特征之一.以地理信息系统Muli·agent系统和随机过 程为基础,建立一个研究人口增长的仿真模型.首先,利用GS建立一个数字环境,用效能函数的概念在GS中表示 各类资源的效能.其次,详细阐述了一个Multir-agent系统设计和实现,重点是用agentf代表某个地块及其属性和行为 设计.由于发展的不确定性,设计了一个基于随机过程的行为模型,这也和agc宏观水平上的特性一致.最后,以上 海市浦东新区为对象,进行了实验模拟和分析.结果表明这个基于Multi-agent系统和GS的人口变迁仿真模型,具有 模块性和可扩展性方面的优势,可应用到其他的城市规划研究中去. 关键词:复杂系统仿真;Multi-agent系统;城市化模型 中图分类号:TP18文献标识码:A文章编号:16734785(2009)01-0044-15 Simula tion of urban popula tion growth with a multiagent system and GIS pla tform WEIHui2,BAI Yu'2 (1.Laborabry ofAlgorithm for Cognitive Model of Deparment of Computer Science,Fudan University,Shanghai 200433,China,2 Key Laboratory ofWave Scattering and Remote Sensing hnfomation (MOE),Fudan University,Shanghai 200433,China) Abstract:The Chinese economy grew rap idly for more than 20 years,promoting rap id urbanization New cities e- merged and great changes took place in old cities Population changes complicated city planning,infrastructure construction,housing,and environmental preservation A model smulating this population transomation was built mergingmethods from Geographical Infomation Systems,Multi-agent Systems and Stochastic Processes First an ef ficiency function was proposed to represent the effectiveness of a resource within the GIS Second,a multi-agent system was designed and mplemented,with agents representing ground segnents and profits acquired after that Third,static attributes and dynam ic behaviors of agents were discussed To model the uncertainty of urban develp- ment better,a behavioralmode was designed based on a stochastic process,consistentwith macto-level characteris- tics of the agent The combined system and its mplementation in a computer were then discussed Finally experi- ments,using data from Pudong D istrict of Shanghai,were run and analyzed This urban evolution model can be a- dapted to more types of research and owes its good peromance to modularity and scalability Keywords:system smulation;multi-agent system;urban modeling 些发展中国家经济的快速增长,工业结构的 商业契机,但是同时也增加了就业、环保、政府管理 调整和持续增长的城市化速度,使得人口向城市和 等方面的压力.因此,对于政府管理者政策制定者、 城市的边缘地区迁移的速度明显加快了.人口的增 投资者和提供服务者而言,研究地区人口变化有很 长对房屋道路、公共服务设施和能源等等的供应提 重要的意义.影响人口迁移的因素很多,因此建立一 出了新的要求,虽然对于投资者而言这增加了很多 个有统计意义并且可以模拟人口变化的数字化城市 模型是一大挑战.而且对这样的模型稍加改造,就可 收稿日期:200709-15 基金项目:国家973计划资助项目(2001B309401):国家自然科学基 以用来研究和城市发展与规划相关的其他问题: 金资助项目(60303007). 通信作者:危辉.Emaik wehui@fudan edu cn 己经有很多方法被用于城市化建模.早期的模 1994-2009 China Academic Journal Electronic Publishing House.All rights reserved.http://www.cnki.net
第 4卷第 1期 智 能 系 统 学 报 Vol. 4 №. 1 2009年 2月 CAA I Transactions on Intelligent System s Feb. 2009 一种基于 MAS和 GIS平台的 城市人口变迁模拟仿真方法 危 辉 1, 2 ,白 宇 1, 2 (1. 复旦大学 计算机科学与工程系认知算法模型实验室 ,上海 200433; 2. 复旦大学 波散射与遥感信息教育部重点 实验室 ,上海 200433) 摘 要 :中国的城市化进程非常迅速 ,人口增长和迁移是重要特征之一. 以地理信息系统、Multi - agent系统和随机过 程为基础 ,建立一个研究人口增长的仿真模型. 首先 ,利用 GIS建立一个数字环境 ,用效能函数的概念在 GIS中表示 各类资源的效能. 其次 ,详细阐述了一个 Multi2agent系统设计和实现 ,重点是用 agent代表某个地块及其属性和行为 设计. 由于发展的不确定性 ,设计了一个基于随机过程的行为模型 ,这也和 agent宏观水平上的特性一致. 最后 ,以上 海市浦东新区为对象 ,进行了实验模拟和分析. 结果表明这个基于 Multi2agent系统和 GIS的人口变迁仿真模型 ,具有 模块性和可扩展性方面的优势 ,可应用到其他的城市规划研究中去. 关键词 :复杂系统仿真 ;Multi2agent系统 ;城市化模型 中图分类号 : TP18 文献标识码 : A 文章编号 : 167324785 (2009) 0120044215 Simulation of urban population growth with a multi2agent system and GIS platform W EI Hui 1, 2 ,BA I Yu 1, 2 (1. Laboratory of A lgorithm for Cognitive Model of Department of Computer Science, Fudan University, Shanghai 200433, China; 2. Key Laboratory ofW ave Scattering and Remote Sensing Information (MOE) , Fudan University, Shanghai 200433, China) Abstract: The Chinese economy grew rap idly for more than 20 years, p romoting rap id urbanization. New cities e2 merged and great changes took p lace in old cities. Population changes comp licated city p lanning, infrastructure construction, housing, and environmental p reservation. A model simulating this population transformation was built mergingmethods from Geographical Information System s, Multi2agent System s and Stochastic Processes. First an ef2 ficiency function was p roposed to rep resent the effectiveness of a resource within the GIS. Second, a multi2agent system was designed and imp lemented, with agents rep resenting ground segments and p rofits acquired after that. Third, static attributes and dynam ic behaviors of agentswere discussed. To model the uncertainty of urban develop2 ment better, a behavioralmode was designed based on a stochastic p rocess, consistentwith macro2level characteris2 tics of the agent. The combined system and its imp lementation in a computer were then discussed. Finally experi2 ments, using data from Pudong D istrict of Shanghai, were run and analyzed. This urban evolution model can be a2 dap ted to more types of research and owes its good performance to modularity and scalability. Keywords: system simulation; multi2agent system; urban modeling 收稿日期 : 2007209215. 基金项目 :国家 973计划资助项目 (2001CB309401) ;国家自然科学基 金资助项目 (60303007). 通信作者 :危 辉. E2mail: weihui@fudan. edu. cn. 一些发展中国家经济的快速增长 ,工业结构的 调整和持续增长的城市化速度 ,使得人口向城市和 城市的边缘地区迁移的速度明显加快了. 人口的增 长对房屋、道路、公共服务设施和能源等等的供应提 出了新的要求 ,虽然对于投资者而言这增加了很多 商业契机 ,但是同时也增加了就业、环保、政府管理 等方面的压力. 因此 ,对于政府管理者、政策制定者、 投资者和提供服务者而言 ,研究地区人口变化有很 重要的意义. 影响人口迁移的因素很多 ,因此建立一 个有统计意义并且可以模拟人口变化的数字化城市 模型是一大挑战. 而且对这样的模型稍加改造 ,就可 以用来研究和城市发展与规划相关的其他问题. 已经有很多方法被用于城市化建模. 早期的模
第1期 危辉,等:一种基于MAS和GS平台的城市人口变迁模拟仿真方法 ·45. 型大多是静态的,包括很多重空间交互的模型.因为 基于Multi-agent系统的模型更注重于一些活跃的、 缺乏时间维的概念,这样的模型只能表示空间对象 宏观的agent,如人群和社会团体,所有的agent和它 的分布和它们的交互,而不能反映城市化的动态过 们之间的交互作用被用来模拟宏观现象的演变过 程现在大多数研究者把注意力集中在动态模型上, 程.Baty与Jiang等人22开发了一个虚拟城市系 所有这些方法通常可以归为两类.第一类是采用自 统,其中有很多个体agent,模拟人流和运输流讨论 顶而下的宏观方法.这类模型包括系统动态模 城市结构对人们行为的影响.Benenson等I0把一 型!,它们基于微分方程和统计模型5,通常用 个家庭作为一个个体,建立了Tel-Aviv城YA FFO地 于某些社会经济(soc-econom ic)指数的分析.因为没 区的人口分布模型,利用高性能并行计算机仿真城 有考虑城市的微观结构和个体行为,所以它们不能 市环境和对居民搬迁的动态模拟.他们仅仅分析了 真正反映城市空间结构的变化.第二类是自底向上 城市空间结构和人群分布的关系,而没有考虑其他 的方法,即建立在人工神经网络56、分形79)、细 诸如工作分布的因素.在将MAS(Multi-agent sys 胞自动机、agent等的基础上的离散的动态模型.在 tem)与GS相结合方面也有新的进展.如利用MAS 这些技术中,细胞自动机和agent尤其值得注目.To- 进行城市拓展研究231,进行生态学研究,进行 bleo首先应用细胞空间模型模拟底特律的城市发 城市公共交通研究s),进行环境保护研究川 展.在他的影响下,Couclelis21s1对细胞自动机应用 基于Web的GS应用研究【o】,进行电力网络的故 于城市发展建模的优点给出了充分的理论论述,确 障诊断研究2等 立了自胞自动机应用于城市发展研究的基础. Phpps等人2通过对Cell Automata模型和并行过 1仿真系统结构 程间的关系进行分析并讨论了并发动态系统,提出 为了使模拟更加可信,需要处理几个问题.第一 了模拟城市土地利用的Thunen模型.Benati25以市 是要建造一个虚拟环境,这个数字的环境应该包括 场上多个店主的空间竞争模型为例阐述了市场的进 尽可能多的对人们的行为产生影响的方方面面.第 化模式和自组织间的一致性.White等人22通过 二是要设计一些与人们的行为近似的响应行为模 定义一个包括工业、商业、住宅区、道路和河流的多 型.由于人们的个体特征差异十分重要,基于特征多 状态集,建立起了基于细胞自动机的模型.他们成功 样性的行为多样性是模型设计的目标.第三是行为 地仿真了亚特兰大和辛辛那提土地利用的空间不规 模型中人工智能技术的运用.因为行为的核心是基 则碎片模式,以此揭开地形通过道路网影响城市形 于知识的决策过程,所以行为模型需要推理、计划和 态的人与土地间的机制.接着他们建造了GS(geo 问题求解等具有智能的行为能力.图1展示了模拟 graphical in6 mation system)系统内的宏观的空间模 系统的框架结构,它是一个自然环境和人工环境的 型和一个包含自然和人工子系统的动态集成模型 复合体,人们通过这个复合的环境彼此影响 家庭数据 公共交通部门 医院 超市 人口 快速路 地点 地点 职业 地铁 规模 行为规则 知识库 家庭集合 城市管理者集合 公网设施集合 公司集合… 事实 决策或行为 ☒ ▲ 8 事实 盒A GIS底层结构 图1仿真系统结构 Fig 1 The structure of smulaton system 1994-2009 China Academic Journal Electronic Publishing House.All rights reserved.http://www.cnki.net
型大多是静态的 ,包括很多重空间交互的模型. 因为 缺乏时间维的概念 ,这样的模型只能表示空间对象 的分布和它们的交互 ,而不能反映城市化的动态过 程. 现在大多数研究者把注意力集中在动态模型上 , 所有这些方法通常可以归为两类. 第一类是采用自 顶而下的宏观方法. 这类模型包括系统动态模 型 [ 124 ] ,它们基于微分方程和统计模型 [ 5214 ] ,通常用 于某些社会经济 ( soc2econom ic)指数的分析. 因为没 有考虑城市的微观结构和个体行为 ,所以它们不能 真正反映城市空间结构的变化. 第二类是自底向上 的方法 ,即建立在人工神经网络 [ 15216 ]、分形 [ 17219 ]、细 胞自动机、agent等的基础上的离散的动态模型. 在 这些技术中 ,细胞自动机和 agent尤其值得注目. To2 bler [ 20 ]首先应用细胞空间模型模拟底特律的城市发 展. 在他的影响下 , Couclelis [ 21223 ]对细胞自动机应用 于城市发展建模的优点给出了充分的理论论述 ,确 立了自胞自动机应用于城市发展研究的基础. Phipp s等人 [ 24 ]通过对 Cell Automata模型和并行过 程间的关系进行分析并讨论了并发动态系统 ,提出 了模拟城市土地利用的 Thünen模型. Benati [ 25 ]以市 场上多个店主的空间竞争模型为例阐述了市场的进 化模式和自组织间的一致性. W hite 等人 [ 26227 ]通过 定义一个包括工业、商业、住宅区、道路和河流的多 状态集 ,建立起了基于细胞自动机的模型. 他们成功 地仿真了亚特兰大和辛辛那提土地利用的空间不规 则碎片模式 ,以此揭开地形通过道路网影响城市形 态的人与土地间的机制. 接着他们建造了 GIS( geo2 graphical information system)系统内的宏观的空间模 型和一个包含自然和人工子系统的动态集成模型. 基于 Multi2agent系统的模型更注重于一些活跃的、 宏观的 agent,如人群和社会团体. 所有的 agent和它 们之间的交互作用被用来模拟宏观现象的演变过 程. Batty与 Jiang等人 [ 28229 ]开发了一个虚拟城市系 统 ,其中有很多个体 agent,模拟人流和运输流讨论 城市结构对人们行为的影响. Benenson等 [ 30231 ]把一 个家庭作为一个个体 ,建立了 Tel2Aviv城 YAFFO地 区的人口分布模型 ,利用高性能并行计算机仿真城 市环境和对居民搬迁的动态模拟. 他们仅仅分析了 城市空间结构和人群分布的关系 ,而没有考虑其他 诸如工作分布的因素. 在将 MAS (Multi2agent sys2 tem)与 GIS相结合方面也有新的进展. 如利用 MAS 进行城市拓展研究 [ 32233 ] ,进行生态学研究 [ 34 ] ,进行 城市公共交通研究 [ 35237 ] ,进行环境保护研究 [ 38239 ] , 基于 Web的 GIS应用研究 [ 40241 ] ,进行电力网络的故 障诊断研究 [ 42 ]等. 1 仿真系统结构 为了使模拟更加可信 ,需要处理几个问题. 第一 是要建造一个虚拟环境 ,这个数字的环境应该包括 尽可能多的对人们的行为产生影响的方方面面. 第 二是要设计一些与人们的行为近似的响应行为模 型. 由于人们的个体特征差异十分重要 ,基于特征多 样性的行为多样性是模型设计的目标. 第三是行为 模型中人工智能技术的运用. 因为行为的核心是基 于知识的决策过程 ,所以行为模型需要推理、计划和 问题求解等具有智能的行为能力. 图 1展示了模拟 系统的框架结构 ,它是一个自然环境和人工环境的 复合体 ,人们通过这个复合的环境彼此影响. 图 1 仿真系统结构 Fig. 1 The structure of simulation system 第 1期 危 辉 ,等 :一种基于 MAS和 GIS平台的城市人口变迁模拟仿真方法 ·45·
46 智能系统学报 第4卷 对比,可以根据资源所占用的空间形状将它们分为 4类:一是点状资源,如银行、邮局、商店等;二是线 2城市公共设施分布的GS表达 状资源,如公路地铁、河流等;三是面状资源,如自 21城市相关面貌布局的GS表示 然风景区、工业区、农业区等;四是立体状的资源,如 城市是一个庞大而又复杂的复合结构.所有自 空气污染(虽然它是一种坏的资源)等.各类资源通 然和人工的客体构成了一个本地的静态环境,这些 过恰当定义的效能函数来体现各自影响力的辐射范 在我们对环境进行模拟时都要考虑到.GS平台专 围和强度 门表达这些空间位置相关的物体,根据属性和功能 如前所述,资源根据其对人口迁移的正面影响 把它们分成不同的类别,例如所有的学校按照坐标 和负面影响的不同,可将取值分别设为正数和负数 定位于电子地图的教育图层,所有的高架路地铁和 现在以上海浦东新区为例,图2是几条道路的效能 轻轨则属于交通图层.很多GS的教材都讨论了怎 函数量化图.一条道路的负载能力和一个点靠近道 样设计和建造一个图层,这里略去。 路的程度是计算该道路在该点的效能值的参数,在 本文的目的是设计一套系统的方法来预测和检 图2中有一条高速路,一条地铁和一条世界上首例 验由于人口数量的改变,环境的改变和经济的发展 投入商业运营的磁悬浮线路,它们的效能曲面很不 而引起城市面积扩展在不同方面的效果.实验的结 一样.图3是由包含一个被黄浦江隔断的面状资源 果应该对投资者和管理者有一些借鉴意义.在本研 (公园)、若干交通资源、就业岗位资源大片的办公 究目标下需要考虑的主要因素都是对人口迁移有显 区)、若干点状资源(银行、邮局等)叠加所形成的复 著影响的因素,包括区域面积、人口密度、自然环境、 杂曲面,可见在此区域内是非常适合找一份工作的。 住宅数量与分布、就业岗位数量与分布、交通设施的 里程与分布、教育机构的分布、各类服务设施的数量 ▣15-20 与分布、城市功能分区的布局等.所有这些因素都可 ▣10-15 ■5-10 以显性地表示在GS系统中 ■0-5 22各种资源效能函数的定义 影响人口迁移的因素有很多,如道路网络、住房 S239 数量、就业岗位数量、生态环境、污染程度、教育设施 S205 分布、生活服务设施分布等,它们都可被视为地理信 33 65 S171 息系统中管理着的各类资源.但是值得关注的是这 7 S137 y12 X S103 些资源在影响人口迁移的能力方面是不同的,或者 6 193 S69 A:高架路 说怎样使这些影响可以计算和量测.作者发现这类 B:地铁 25 S35 C:磁悬浮铁路 影响能力可以用向量的方向性来表示,具体来说就 是某种资源对于人口迁移和吸引人口的影响能力, 图2上海浦东地区几条交通线路的资源效能图 是以资源的空间位置为中心,具有方向和强度两方 Fig 2 The efficiency map of several main traffic lines in 面的属性.这种影响的显著程度被定义为资源的效 Pudong of Shanghai 能函数,它通常用来计算资源施加于某一点上的影 响程度,即当个体在空间某一点执行某一行为时,某 一资源施加在该点上的影响力,引入资源效能函数 ■3-6 ▣0-3 的定义有3个显著的好处:1)可以精确地描述资源 性质对人口迁移的影响;2)便于对物理性质差异很 大的资源在计算上进行一致性的处理:3)使得各类 资源综合影响力的叠加简易可行 X 根据资源物理尺寸与整个GS管辖区域面积的 (a)公园或绿地的效能图 1994-2009 China Academic Journal Electronic Publishing House.All rights reserved.http://www.cnki.net
2 城市公共设施分布的 GIS表达 2. 1 城市相关面貌布局的 GIS表示 城市是一个庞大而又复杂的复合结构. 所有自 然和人工的客体构成了一个本地的静态环境 ,这些 在我们对环境进行模拟时都要考虑到. GIS平台专 门表达这些空间位置相关的物体 ,根据属性和功能 把它们分成不同的类别 ,例如所有的学校按照坐标 定位于电子地图的教育图层 ,所有的高架路、地铁和 轻轨则属于交通图层. 很多 GIS的教材都讨论了怎 样设计和建造一个图层 ,这里略去. 本文的目的是设计一套系统的方法来预测和检 验由于人口数量的改变 ,环境的改变和经济的发展 而引起城市面积扩展在不同方面的效果. 实验的结 果应该对投资者和管理者有一些借鉴意义. 在本研 究目标下需要考虑的主要因素都是对人口迁移有显 著影响的因素 ,包括区域面积、人口密度、自然环境、 住宅数量与分布、就业岗位数量与分布、交通设施的 里程与分布、教育机构的分布、各类服务设施的数量 与分布、城市功能分区的布局等. 所有这些因素都可 以显性地表示在 GIS系统中. 2. 2 各种资源效能函数的定义 影响人口迁移的因素有很多 ,如道路网络、住房 数量、就业岗位数量、生态环境、污染程度、教育设施 分布、生活服务设施分布等 ,它们都可被视为地理信 息系统中管理着的各类资源. 但是值得关注的是这 些资源在影响人口迁移的能力方面是不同的 ,或者 说怎样使这些影响可以计算和量测. 作者发现这类 影响能力可以用向量的方向性来表示 ,具体来说就 是某种资源对于人口迁移和吸引人口的影响能力 , 是以资源的空间位置为中心 ,具有方向和强度两方 面的属性. 这种影响的显著程度被定义为资源的效 能函数 ,它通常用来计算资源施加于某一点上的影 响程度 ,即当个体在空间某一点执行某一行为时 ,某 一资源施加在该点上的影响力. 引入资源效能函数 的定义有 3个显著的好处 : 1)可以精确地描述资源 性质对人口迁移的影响 ; 2)便于对物理性质差异很 大的资源在计算上进行一致性的处理 ; 3)使得各类 资源综合影响力的叠加简易可行. 根据资源物理尺寸与整个 GIS管辖区域面积的 对比 ,可以根据资源所占用的空间形状将它们分为 4类 :一是点状资源 ,如银行、邮局、商店等 ;二是线 状资源 ,如公路、地铁、河流等 ;三是面状资源 ,如自 然风景区、工业区、农业区等 ;四是立体状的资源 ,如 空气污染 (虽然它是一种坏的资源 )等. 各类资源通 过恰当定义的效能函数来体现各自影响力的辐射范 围和强度. 如前所述 ,资源根据其对人口迁移的正面影响 和负面影响的不同 ,可将取值分别设为正数和负数. 现在以上海浦东新区为例 ,图 2是几条道路的效能 函数量化图. 一条道路的负载能力和一个点靠近道 路的程度是计算该道路在该点的效能值的参数 ,在 图 2中有一条高速路 ,一条地铁和一条世界上首例 投入商业运营的磁悬浮线路 ,它们的效能曲面很不 一样. 图 3是由包含一个被黄浦江隔断的面状资源 (公园 )、若干交通资源、就业岗位资源 (大片的办公 区 )、若干点状资源 (银行、邮局等 )叠加所形成的复 杂曲面 ,可见在此区域内是非常适合找一份工作的. 图 2 上海浦东地区几条交通线路的资源效能图 Fig. 2 The efficiency map of several main traffic lines in Pudong of Shanghai ( a)公园或绿地的效能图 ·46· 智 能 系 统 学 报 第 4卷
第1期 危辉,等:一种基于MAS和GS平台的城市人口变迁模拟仿真方法 。47 图中包括点状资源、线状资源和面状资源(由矩形 ■1-2 标记). ▣0-1 E (b)点状服务设施的效能图 ■5-10 ▣0-5 10 0 图4上海浦东地区一些资源的分布图 X Fig 4 The distribution of a part of resources used in (c)地铁线的效能图 com ing smulation experment ■1-2 3模拟系统的Multi-agent系统设计 口0-1 城市的多种元素构成了一个动态的系统.系统 中的个体既相对独立又有一定的相关性,整个城市 状态的变化是其中的个体和环境之间复杂的相互作 用的结果,所以构造不同类型的agent来为个体和 及其行为建模是一个好的选择.由于Multi-agent系 (d)就业岗位的效能图 统并不是对物理世界的完整重复,仅是一个理论上 的抽象,有一些事实被忽略了,这会给通过计算机系 ▣6-8 ▣4-6 统进行模拟带来一些困难.所以在将构造Multi-a 口2-4 Y■0-2 ent系统的过程中必须注意以下几个问题:1)可编 程性,2)可并发性;3)环境数据和agent状态数据的 时序一致性;4)存储空间压力;5)仿真误差控制;6) X 调度控制模块在概念层次和CU时间片分配层次 (e)各种资源复合的效能图 上的公平性.基于以上讨论,接下来设计一个用于城 图3上海浦东陆家嘴几种资源的符合效能图 市发展实验的新的Muti-agent系统 Fig 3 A combined efficiency map by several types of re- 31 agent代表的个体 sources in Lujiazui of Shanghai Pudong 进行用于城市发展模拟的Multi-agent系统设计 在模拟城市人▣变化或其他类型的城市演变动 碰到的首要问题是agent应该被指代为什么呢?毕 态过程中,所有资源,无论属于什么种类,被形式化 竞有许多可供选择的个体,如独立的家庭、公司等, 为一个向量,形如空间位置,(点状饯状面状位 一个最平常的选择是把上面罗列的行为独立个体分 体状),尺寸,效能函数解析定义效能空间映射位 别设计成agent,只是它们的类型不同,数量各异.这 图,生效时间,失效时间}.所有这些向量是资源简 样设计在理论上没有任何问题.但毕竞所有的agent 明的索引,它们组成一个按资源生效时间排序的列 和agent所生存的环境都是由程序来构造的一个虚 表.显然该列表是可扩展的,并且由GS平台中嵌入 拟世界,由CU的计算和存贮容量来维持,那么同 的一个专门模块来管理,同时该模块也负责唤醒和 时处于活跃状态的agent-一定受到前述两项资源能 撤销资源的效能函数.对于城市发展模拟来说,在合 力的限制.就当前的问题而言,agent的数量远超过 适的时间启动和停止如此多的资源是非常关键的. CU的数量,因此无论是用单CU的计算机、或是 图4是上海浦东新区的资源分布图,不过它只展示 多线程方式、或是并行计算机进行模拟,其并发性误 了一部分接下来人口迁移模拟实验要用到的资源. 差或调度公平性问题都是不可忽视的.例如一个序 1994-2009 China Academic Journal Electronic Publishing House.All rights reserved.http://www.cnki.net
( b)点状服务设施的效能图 ( c)地铁线的效能图 ( d)就业岗位的效能图 ( e)各种资源复合的效能图 图 3 上海浦东陆家嘴几种资源的符合效能图 Fig. 3 A combined efficiency map by several types of re2 sources in Lujiazui of Shanghai Pudong 在模拟城市人口变化或其他类型的城市演变动 态过程中 ,所有资源 ,无论属于什么种类 ,被形式化 为一个向量 ,形如 {空间位置 , (点状 /线状 /面状 /立 体状 ) ,尺寸 ,效能函数解析定义 /效能空间映射位 图 ,生效时间 ,失效时间 }. 所有这些向量是资源简 明的索引 ,它们组成一个按资源生效时间排序的列 表. 显然该列表是可扩展的 ,并且由 GIS平台中嵌入 的一个专门模块来管理 ,同时该模块也负责唤醒和 撤销资源的效能函数. 对于城市发展模拟来说 ,在合 适的时间启动和停止如此多的资源是非常关键的. 图 4是上海浦东新区的资源分布图 ,不过它只展示 了一部分接下来人口迁移模拟实验要用到的资源. 图中包括点状资源、线状资源和面状资源 (由矩形 标记 ). 图 4 上海浦东地区一些资源的分布图 Fig. 4 The distribution of a part of resources used in coming simulation experiment 3 模拟系统的 Multi2agent系统设计 城市的多种元素构成了一个动态的系统. 系统 中的个体既相对独立又有一定的相关性 ,整个城市 状态的变化是其中的个体和环境之间复杂的相互作 用的结果 ,所以构造不同类型的 agent来为个体和 及其行为建模是一个好的选择. 由于 Multi2agent系 统并不是对物理世界的完整重复 ,仅是一个理论上 的抽象 ,有一些事实被忽略了 ,这会给通过计算机系 统进行模拟带来一些困难. 所以在将构造 Multi2a2 gent系统的过程中必须注意以下几个问题 : 1)可编 程性 ; 2)可并发性 ; 3)环境数据和 agent状态数据的 时序一致性 ; 4)存储空间压力 ; 5)仿真误差控制 ; 6) 调度控制模块在概念层次和 CPU时间片分配层次 上的公平性. 基于以上讨论 ,接下来设计一个用于城 市发展实验的新的 Multi2agent系统. 3. 1 agent代表的个体 进行用于城市发展模拟的 Multi2agent系统设计 碰到的首要问题是 agent应该被指代为什么呢 ? 毕 竟有许多可供选择的个体 ,如独立的家庭、公司等. 一个最平常的选择是把上面罗列的行为独立个体分 别设计成 agent,只是它们的类型不同 ,数量各异. 这 样设计在理论上没有任何问题. 但毕竟所有的 agent 和 agent所生存的环境都是由程序来构造的一个虚 拟世界 ,由 CPU的计算和存贮容量来维持 ,那么同 时处于活跃状态的 agent一定受到前述两项资源能 力的限制. 就当前的问题而言 , agent的数量远超过 CPU的数量 ,因此无论是用单 CPU的计算机、或是 多线程方式、或是并行计算机进行模拟 ,其并发性误 差或调度公平性问题都是不可忽视的. 例如一个序 第 1期 危 辉 ,等 :一种基于 MAS和 GIS平台的城市人口变迁模拟仿真方法 ·47·
·48* 智能系统学报 第4卷 号靠前的agent总是被先调度到,它代表的是一个 由一个函数组成,则这个系统的状态描述可表示为 家庭,那么它就有可能优先抢占环境中的某些就业 S()=fX,), 岗位资源.另外一个困难的问题在于不同agent在 S2()=五XS11-△1),S(1-△5,, 属性与行为方面的差异程度.虽然从agent模板来 S3()=5X,S4(1-△5),, 看大量的agent是相似的,但这种相似仅限于结构 S4()=方X,S1(t-△4,0, 框架方面.例如,任何家庭都有家庭成员数量和结构 S()=5X,S3(1-△53),S(1-△54, 这样两项,但由于成员数量和组成结构的不同而导 其中:X是由参数组成的向量,△是和间的观 致在行为决策方面的不同是巨大的,如此大量个体 察延迟.假设图5中的agen4完成无(X,t)=2x+ 性差异给程序设计带来很大的困难.进一步来看,单 2 t agent完成i(XS,(t-△1),)=x+S,(t- 个家庭或单个公司对城市演变的影响是非常有限 1)+1那么它们的理想状态变化轨迹如图6和图7 的,单个或少量家庭的迁入或迁出对某一地区影响 不显著,迁移原因也不相同.所有这些孤立的事件并 所示. 不重要,有统计意义的结果才是有价值的.第3个困 难是agent)应该由一个控制模块按照不同的时间间 隔统一调度.agent的行为的发生频率是不同的,有 些活动像使用交通设施每天都发生,然而像投资行 为却几个月都很难发生一次.并且服务设施agent 图55个agent间的制约关系 总是被动地回应家庭agent的要求来提供服务,它 Fig 5 The constraint relatonships among five agents 们与其他类型的agent如家庭agenti在行为重复间 隔方面的区别是它们的间隔很短,甚至每分钟都要 做出回应服务要求的行为,比如服务agent恰好是 40r 一家超市.不同类型agentl的这种行为频率的差异 30 必将使agent控制模块的设计成本成倍增加. 20 1& 其中最主要的是用Multi-agents对时间敏感型 10 1014 过程进行仿真时带来的困难.为实现模拟的有效性 6 6 1014182 而必须解决的问题中最核心的问题是:并发问题 (准确模拟真实物理过程中行为的时态相关性)与 图6agen4的状态轨迹 不一致的数据环境一致性与时效性问题).这从细 Fig 6 The status track of agent 节上来看包括:行为模拟、环境模拟、agents间的协 作与竞争、规模可扩展性、同步性、领域知识如何体 现、不确定性、事件发生概率的模拟等 150 每个agent的行为所导致的状态可以用一系列 100 19 的状态函数表示,比如对第个agent,它是一个描述 50 10 agent不同方面动态特征的集合: 1122334455667788991 fSg()=f,,,xn,S,Smp刊, j=1,以 图7 agent的状态轨迹 其中:为状态描述函数,它不一定是可解析的,可 Fig 7 The status track of agent 能是一个观察或经验表格;x,为影响状态的参数,包 理论上讲不能期望计算机中CU的数量与 括agent自身内部与环境参数两部分;t为时间:S, agen数量能够相等,因此往往通过用一个线程对应 为对该agentl此刻状态有直接影响的第k个agent的 一个agent的软件模拟的方法来进行整个过程的仿 第4个状态,它本身是的函数, 真.这就导致临界区的出现,各agent行为间的因果 可见,整个Multi-agents系统行为的复杂性就取 联系会给临界区的访问控制带来很大的困难.因为 决于状态函数在时态相关性方面的交迭程度.考虑 所有agent并非如真实物理系统那样并发执行(且 到实际情况下总有相互观察上的时延,对于图5所 无须同步控制量),而是被分配在不同的时间片内 示的一个系统,假设每个agent的状态函数集合只 执行,存在某些agent提前,同时另一些agent滞后 1994-2009 China Academic Journal Electronic Publishing House.All rights reserved.http://www.cnki.net
号靠前的 agent总是被先调度到 ,它代表的是一个 家庭 ,那么它就有可能优先抢占环境中的某些就业 岗位资源. 另外一个困难的问题在于不同 agent在 属性与行为方面的差异程度. 虽然从 agent模板来 看大量的 agent是相似的 ,但这种相似仅限于结构 框架方面. 例如 ,任何家庭都有家庭成员数量和结构 这样两项 ,但由于成员数量和组成结构的不同而导 致在行为决策方面的不同是巨大的 ,如此大量个体 性差异给程序设计带来很大的困难. 进一步来看 ,单 个家庭或单个公司对城市演变的影响是非常有限 的 ,单个或少量家庭的迁入或迁出对某一地区影响 不显著 ,迁移原因也不相同. 所有这些孤立的事件并 不重要 ,有统计意义的结果才是有价值的. 第 3个困 难是 agent应该由一个控制模块按照不同的时间间 隔统一调度. agent的行为的发生频率是不同的 ,有 些活动像使用交通设施每天都发生 ,然而像投资行 为却几个月都很难发生一次. 并且服务设施 agent 总是被动地回应家庭 agent的要求来提供服务 ,它 们与其他类型的 agent如家庭 agent在行为重复间 隔方面的区别是它们的间隔很短 ,甚至每分钟都要 做出回应服务要求的行为 ,比如服务 agent恰好是 一家超市. 不同类型 agent的这种行为频率的差异 必将使 agent控制模块的设计成本成倍增加. 其中最主要的是用 Multi2agents对时间敏感型 过程进行仿真时带来的困难. 为实现模拟的有效性 而必须解决的问题中最核心的问题是 :并发问题 (准确模拟真实物理过程中行为的时态相关性 )与 不一致的数据 (环境一致性与时效性问题 ). 这从细 节上来看包括 :行为模拟、环境模拟、agents间的协 作与竞争、规模可扩展性、同步性、领域知识如何体 现、不确定性、事件发生概率的模拟等. 每个 agent的行为所导致的状态可以用一系列 的状态函数表示 ,比如对第 i个 agent,它是一个描述 agent不同方面动态特征的集合 : { Sij ( t) = fij ( x1 , x2 , …, xn , Sk l1 , …, Sm l r , t) , j = 1, …, u}. 其中 : fij为状态描述函数 ,它不一定是可解析的 ,可 能是一个观察或经验表格; xi 为影响状态的参数 ,包 括 agent自身内部与环境参数两部分; t为时间; Sk l r 为对该 agent此刻状态有直接影响的第 k个 agent的 第 lr个状态 ,它本身是 t的函数. 可见 ,整个 Multi2agents系统行为的复杂性就取 决于状态函数在时态相关性方面的交迭程度. 考虑 到实际情况下总有相互观察上的时延 ,对于图 5所 示的一个系统 ,假设每个 agent的状态函数集合只 由一个函数组成 ,则这个系统的状态描述可表示为 S1 ( t) = f1 (X, t) , S2 ( t) = f2 (X, S1 ( t - △t21 ) , S5 ( t - △t25 ) , t) , S3 ( t) = f3 (X, S4 ( t - △t34 ) , t) , S4 ( t) = f4 (X, S1 ( t - △t41 ) , t) , S5 ( t) = f5 (X, S3 ( t - △t53 ) , S4 ( t - △t54 ) , t). 其中 : X是由参数组成的向量 , △tij是 i和 j间的观 察延迟. 假设图 5中的 agent1 完成 f1 ( X, t) = 2x + 2 t, agent4 完成 f4 ( X, S1 ( t - △t41 ) , t) = x 2 + S1 ( t - 1) + t,那么它们的理想状态变化轨迹如图 6和图 7 所示. 图 5 5个 agent间的制约关系 Fig. 5 The constraint relationship s among five agents 图 6 agent1 的状态轨迹 Fig. 6 The status track of agent1 图 7 agent4 的状态轨迹 Fig. 7 The status track of agent4 理论上讲不能期望计算机中 CPU 的数量与 agen数t 量能够相等 ,因此往往通过用一个线程对应 一个 agent的软件模拟的方法来进行整个过程的仿 真. 这就导致临界区的出现 ,各 agent行为间的因果 联系会给临界区的访问控制带来很大的困难. 因为 所有 agent并非如真实物理系统那样并发执行 (且 无须同步控制量 ) ,而是被分配在不同的时间片内 执行 ,存在某些 agent提前 ,同时另一些 agent滞后 ·48· 智 能 系 统 学 报 第 4卷
第1期 危辉,等:一种基于MAS和GS平台的城市人口变迁模拟仿真方法 ·49。 的情况.假设模拟程序以时间为控制变量(概念时 行的估算带有很大的主观性,况且孤立事件的结果 间,非CPU时间),那么(X,S,(1-△1),)= 对全局的影响是可忽略不计的.相反,以地块为a x2+S,(t-l)+中的S:(t-l)是agent观察agent gent的设计,是以整个地区的人口总量来计算其资 所得,对应到程序中为一临界内存区.如果代表 源需求的,这使得需求量总能达到一定的基数,这具 agent的线程比较复杂,状态更新一次需要在3个 有统计上的稳定性 CPU时间片内才能完成,而agent的线程只要一个 3)agent行为模式刻画的可信程度得以提高, CU时间片就能完成,那么实际结果是agent访问 如果以家庭或企业这样的粒度来构造agent,那么为 临界区的频率就太高了.agent得到的轨迹就如 了使得个体的差异性得以充分的表达,必然会使a° 图8所示,与图7相比发生了显著的变化,尤其是从 ent的属性与行为变得复杂和冗长.相反,按照地块 局部范围来看,不但自身内部有累积误差,而且 划分来定义agent使得无论在属性抽象还是行为抽 agent的误差还会波及到agent、agent和agent 象上都可以大为简化,因为在宏观意义下只有集体 的属性和行为,它们都是一些统计量和基于统计量 150 的计算, 100 4)大大减轻了仿真系统在调度公平性、环境致 密性、临界资源竞争方面的压力.以地块粒度为基本 50 18 单元的Multi-agent系统从根本上改变了以家庭和企 0 业粒度为基本单元的Multi--agent系统在规模和相互 112233445566778899 作用方式方面的面貌,由agent间相互作用的频度 所引发的困难自然得到了缓解 图8程序模拟的agent的状态轨迹 32地块agent的属性和行为设计 Fig 8 The status track of agent smulated by 对地块agenti进行详细的设计,包括属性和行 computer program 造成以上欠同步问题的原因在于各个agent行 为两部分.选择那些对人口迁移有显著影响的因素 为的复杂程度不同:其仿真模型在CPU上的执行时 进行量化描述,包括地块的面积、住宅总面积、人口 间也就不同:而操作系统给每个线程所分配的时间 密度、就业岗位的数量、土地被农业工业交通绿 片是一样的,因此就有对临界区数据存取时态混乱 化协公等不同用途分别占用的比例、交通里程数、 的局面出现 基础设施的可用程度、各类服务设施的数量、生态环 综上所述,在城市演化模型中以家庭、公司等细 境状况等,这些都是统计量.如果以家庭为单位来定 粒度个体为agent指代的对象在计算实现上是困难 义agent,.那么此时agent的属性必然是成员结构、收 的.因此,把agenti设计为地块,它可以包含若干个 入、住宅面积、住宅位置、就业状况、工作或就学地 街区.处于该地块区域范围内的所有人口、住宅区、 点、受教育程度等,这些都不是统计量.然而一个城 农田、就业岗位、自然资源等都由这个agent掌控. 市中所有家庭在各项指标类型上必然存在一些分 因此这样的agent是一个尺度比较宏观的集合,由 布,为了满足这些分布,在生成家庭agent个体时就 于其中的人口和各类资源都达到一定的数量,所以 必须刻意控制,由于分布存在某种程度上的相关性, 可以从较为宏观的角度来度量agent行为的后果 加上需要设定属性值的agent数量还很多,所以必 以地块区域为agent的设计可以带来以下便利: 然会进一步加大生成agent时控制的难度.一个城 I)agent的总量得到了有效的控制.以上海浦东 市的发展是一个在时间和空间上都有积累的宏观过 新区为例,它常住人口170万,家庭数量在60万左 程,所以选择一个地区为Multi--agent系统的最小组 右,还有大量就业人口,以及超过1万家的各类企业 成部分,使得人们可以采用对多数个体的长期行为 或服务机构,不可想象对等设计相同的agent数量.而 有稳定和确定性影响的统计量作为agent的属性定 以地块为agent的设计,那么按照浦东新区的 义.例如某整个地区所有家庭收入的平均水平和平 509km,几百个agent就足够了,仿真压力大大减轻. 均居住状况的关联程度是显然的 2)agent对真实过程模拟的客观程度得以提高. 真正有意义的是形如“限多人同时上班使交通 例如,在以家庭为agent的设计中,单个家庭agent 变得拥挤”这样的事件,单个孤立家庭的上班行为 在一天之内需要使用多少道路资源、多少公众服务 和行为被实施的过程并不重要.如果以一个地块上 资源等存在极大的个体性差异,任何就孤立事件进 所有家庭为集合来考查其整体行为时,那么行为的 1994-2009 China Academic Journal Electronic Publishing House.All rights reserved.http://www.cnki.net
的情况. 假设模拟程序以时间 t为控制变量 (概念时 间 ,非 CPU 时间 ) ,那么 f4 ( X, S1 ( t - △t41 ) , t) = x 2 + S1 ( t - 1) + t中的 S1 ( t - 1)是 agent4 观察 agent1 所得 ,对应到程序中为一临界内存区. 如果代表 agent1的线程比较复杂 ,状态更新一次需要在 3个 CPU时间片内才能完成 ,而 agent4 的线程只要一个 CPU时间片就能完成 ,那么实际结果是 agent4 访问 临界区的频率就太高了. agent4 得到的轨迹就如 图 8所示 ,与图 7相比发生了显著的变化 ,尤其是从 局部范围来看 ,不但自身内部有累积误差 ,而且 agent4的误差还会波及到 agent2、agent3 和 agent5 . 图 8 程序模拟的 agent4 的状态轨迹 Fig. 8 The status track of agent4 simulated by computer p rogram 造成以上欠同步问题的原因在于各个 agent行 为的复杂程度不同 ;其仿真模型在 CPU上的执行时 间也就不同 ;而操作系统给每个线程所分配的时间 片是一样的 ,因此就有对临界区数据存取时态混乱 的局面出现. 综上所述 ,在城市演化模型中以家庭、公司等细 粒度个体为 agent指代的对象在计算实现上是困难 的. 因此 ,把 agent设计为地块 ,它可以包含若干个 街区. 处于该地块区域范围内的所有人口、住宅区、 农田、就业岗位、自然资源等都由这个 agent掌控. 因此这样的 agent是一个尺度比较宏观的集合 ,由 于其中的人口和各类资源都达到一定的数量 ,所以 可以从较为宏观的角度来度量 agent行为的后果. 以地块区域为 agent的设计可以带来以下便利 : 1) agent的总量得到了有效的控制. 以上海浦东 新区为例 ,它常住人口 170万 ,家庭数量在 60万左 右 ,还有大量就业人口 ,以及超过 1万家的各类企业 或服务机构 ,不可想象对等设计相同的 agent数量. 而 以 地 块 为 agent 的 设 计 , 那 么 按 照 浦 东 新 区 的 509 km 2 ,几百个 agent就足够了 ,仿真压力大大减轻. 2) agent对真实过程模拟的客观程度得以提高. 例如 ,在以家庭为 agent的设计中 ,单个家庭 agent 在一天之内需要使用多少道路资源、多少公众服务 资源等存在极大的个体性差异 ,任何就孤立事件进 行的估算带有很大的主观性 ,况且孤立事件的结果 对全局的影响是可忽略不计的. 相反 ,以地块为 a2 gent的设计 ,是以整个地区的人口总量来计算其资 源需求的 ,这使得需求量总能达到一定的基数 ,这具 有统计上的稳定性. 3) agent行为模式刻画的可信程度得以提高. 如果以家庭或企业这样的粒度来构造 agent,那么为 了使得个体的差异性得以充分的表达 ,必然会使 a2 gent的属性与行为变得复杂和冗长. 相反 ,按照地块 划分来定义 agent使得无论在属性抽象还是行为抽 象上都可以大为简化 ,因为在宏观意义下只有集体 的属性和行为 ,它们都是一些统计量和基于统计量 的计算. 4) 大大减轻了仿真系统在调度公平性、环境致 密性、临界资源竞争方面的压力. 以地块粒度为基本 单元的 Multi2agent系统从根本上改变了以家庭和企 业粒度为基本单元的 Multi2agent系统在规模和相互 作用方式方面的面貌 ,由 agent间相互作用的频度 所引发的困难自然得到了缓解. 3. 2 地块 agent的属性和行为设计 对地块 agent进行详细的设计 ,包括属性和行 为两部分. 选择那些对人口迁移有显著影响的因素 进行量化描述 ,包括地块的面积、住宅总面积、人口 密度、就业岗位的数量、土地被农业 /工业 /交通 /绿 化 /办公等不同用途分别占用的比例、交通里程数、 基础设施的可用程度、各类服务设施的数量、生态环 境状况等 ,这些都是统计量. 如果以家庭为单位来定 义 agent,那么此时 agent的属性必然是成员结构、收 入、住宅面积、住宅位置、就业状况、工作或就学地 点、受教育程度等 ,这些都不是统计量. 然而一个城 市中所有家庭在各项指标类型上必然存在一些分 布 ,为了满足这些分布 ,在生成家庭 agent个体时就 必须刻意控制 ,由于分布存在某种程度上的相关性 , 加上需要设定属性值的 agent数量还很多 ,所以必 然会进一步加大生成 agent时控制的难度. 一个城 市的发展是一个在时间和空间上都有积累的宏观过 程 ,所以选择一个地区为 Multi2agent系统的最小组 成部分 ,使得人们可以采用对多数个体的长期行为 有稳定和确定性影响的统计量作为 agent的属性定 义. 例如某整个地区所有家庭收入的平均水平和平 均居住状况的关联程度是显然的. 真正有意义的是形如“很多人同时上班使交通 变得拥挤 ”这样的事件 ,单个孤立家庭的上班行为 和行为被实施的过程并不重要. 如果以一个地块上 所有家庭为集合来考查其整体行为时 ,那么行为的 第 1期 危 辉 ,等 :一种基于 MAS和 GIS平台的城市人口变迁模拟仿真方法 ·49·
·50 智能系统学报 第4卷 类型就只能是诸如现在的人口总量对这一地区生 设计便于在城市实际运行中寻求参考依据, 活服务设施总量增减的影响等预测、诱导因素或 从面向对象设计的观点来看,所有agent都是 总体结果的评价行为.它们往往是地块内与地块间 独立的对象,因此面向对象设计中的概念和系统设 的,那些对人口变化有影响的因素的在时间和空间 计原型在这里都是非常有用的.代表一个地块agent 范围内的累计效果.这样的行为在设计上有3个巨 的属性和行为的定义见表1所示,其中某些重要行 大的便利:一是行为模式是计算性的,比较单一和可 为用函数的形式列出来了 操作的:二是完全避免了琐碎过程的模拟:三是行为 表1 agent的属性和行为定义 Table 1 The defn ition of agent's attributes and behaviors agent的属性 agent的行为 int d Initialize () char code; ReadDataF romOneRecord(); int bbock [MAX BLOCKS N AGENT]; UpdateData InA gentRecord(); int b num; Bbck(ntx,inty,intx,int乃,int,inth,int为,nt为,intx4, int efficiency_function [MAX ] inty); int e f num; CalculateSquare(); double square; CalculateGroundRatio int tme) double residential ground; W hatRoleAgentPlay(); double business_ground ResourceStatistic(): double greenpark ground, HowManyPopulatiorM ightResidentHere(); double office building_ground; HowManyPopulatiorM ighW orkHere () double agricultural ground; PopulatonAccumulaton(); double industrial ground, SelecOneA gentRandom ly(BOOL new lop or not): double traffic length; GetEffic iencyFunctionsA vailableNow int tme): int public service; Effic iencyFunctonsBelongingToA gents(); int educaton: W riteA gentintoDatabase () int sport entertaimment ReadA IB locksF romDatabase(): double other ground; ResidentsF indW orkingP lace(int agent id); bng tooms resource; EmployeesF indResidentalPlace int agent id); bng jobs resource; ResourceApp lying InAgenOneDayL ife int agent id); int working_distribute [MAX_AGENTS ] SorA gentsB yComparativeModemDegree(); int residential distribute [MAX AGENTS ] SomeA gentsSelDeve lopment(); int residential population, EvaluateSelf orth () int working population; OnDefineEfficiencyFunction(); double fitness for residence; OrDefineA gent(); double fitness for work; OnRoadEfficiencyFunctionsAcquision(); OnA gentsAcquisionResource(); OnPointEfficiencyFunctionsAcquison(); OnPlaneEfficiencyFunctonsAcquision(): 在这个agent的定义中,通过某些行为计算这 企业行为的综合性后果,对于单次行为的动机和完 个agent范围内的多种资源,来估计在城市中agent 成过程无法进行全面地跟踪,同时这样的细节追求 的角色和它能承受的人口数量等等.很明显,这些行 对大尺度宏观事件的考察也没有意义,所以在上一 为都是基于统计数字的 节中为agenti设计的行为都是关于宏观统计操作 33 agent行为中的随机过程分析 的.例如一个地块agent的行为可能是确定在一个 一个社会观察者所能观察到的是很多个家庭或 时间段内新增加的人口,如“在以后3年内对该区 1994-2009 China Academic Journal Electronic Publishing House.All rights reserved.http://www.cnki.net
类型就只能是诸如“现在的人口总量对这一地区生 活服务设施总量增减的影响 ”等预测、诱导因素或 总体结果的评价行为. 它们往往是地块内与地块间 的 ,那些对人口变化有影响的因素的在时间和空间 范围内的累计效果. 这样的行为在设计上有 3个巨 大的便利 :一是行为模式是计算性的 ,比较单一和可 操作的;二是完全避免了琐碎过程的模拟;三是行为 设计便于在城市实际运行中寻求参考依据. 从面向对象设计的观点来看 ,所有 agent都是 独立的对象 ,因此面向对象设计中的概念和系统设 计原型在这里都是非常有用的. 代表一个地块 agent 的属性和行为的定义见表 1所示 ,其中某些重要行 为用函数的形式列出来了. 表 1 agent的属性和行为定义 Table 1 The defin ition of agen t’s a ttr ibutes and behav iors agent的属性 agent的行为 int id; char code; int block[MAX_BLOCKS_ IN_AGENT]; int b_num; int efficiency_function[MAX ]; int e_f_num; double square; double residential_ground; double business_ground; double greenpark_ground; double office_building_ground; double agricultural_ground; double industrial_ground; double traffic_length; int public_service; int education; int sport_entertainment; double other_ground; long room s_resource; long jobs_resource; int working_distribute[MAX_AGENTS]; int residential_distribute[MAX_AGENTS]; int residential_population; int working_population; double fitness_for_residence; double fitness_for_work; Initialize () ; ReadDataFromOneRecord () ; UpdateData InAgentRecord () ; InBlock ( int x , int y, int x1 , int y1 , int x2 , int y2 , int x3 , int y3 , int x4 , int y4 ) ; CalculateSquare () ; CalculateGroundRatio ( int time) ; W hatRoleAgentPlay() ; ResourceStatistic () ; HowManyPopulationM ightResidentHere () ; HowManyPopulationM ightWorkHere () ; PopulationAccumulation () ; SelectOneAgentRandom ly(BOOL new_loop_or_not) ; GetEfficiencyFunctionsAvailableNow ( int time) ; EfficiencyFunctionsBelongingToAgents() ; W riteAgentIntoDatabase () ; ReadA llBlocksFromDatabase () ; ResidentsFindWorkingPlace ( int agent_id) ; Emp loyeesFindResidentalPlace ( int agent_id) ; ResourceApp lyingInAgentOneDayL ife ( int agent_id) ; SortAgentsByComparativeModernDegree () ; SomeAgentsSelfDevelopment() ; EvaluateSelfWorth () ; OnDefineEfficiencyFunction () ; OnDefineAgent() ; OnRoadEfficiencyFunctionsAcquision () ; OnAgentsAcquisionResource () ; OnPointEfficiencyFunctionsAcquision () ; OnPlaneEfficiencyFunctionsAcquision () ; 在这个 agent的定义中 ,通过某些行为计算这 个 agent范围内的多种资源 ,来估计在城市中 agent 的角色和它能承受的人口数量等等. 很明显 ,这些行 为都是基于统计数字的. 3. 3 agent行为中的随机过程分析 一个社会观察者所能观察到的是很多个家庭或 企业行为的综合性后果 ,对于单次行为的动机和完 成过程无法进行全面地跟踪 ,同时这样的细节追求 对大尺度宏观事件的考察也没有意义 ,所以在上一 节中为 agent设计的行为都是关于宏观统计操作 的. 例如一个地块 agent的行为可能是确定在一个 时间段内新增加的人口 ,如“在以后 3年内对该区 ·50· 智 能 系 统 学 报 第 4卷
第1期 危辉,等:一种基于MAS和GS平台的城市人口变迁模拟仿真方法 ·51· 域住房的需求量会是多少”这是一个涉及概率的 所以在第1天迁移人口的总数是一个随机变 问题.从数学的观点来看,城市区域的扩展是一个非 量,比如说D(),而在AGENT-A的决策行为中真正 常复杂的随机过程,这个过程观察者从不同的方面 起作用的是D()期望.在第t天正好到AGENT-A 看可以由几个不同的概率分布来解释.比如,为了某 来的人形成了一个人口集合F=a,I0N()>0&N(=0: N()的平均值入是一个参数,很显然同城市中所有 c 家庭的数量比起来,入的值非常之小.另外用p表示 1 一个人正好进入AGENT-A的范围的概率,考虑到 1) AGENT-A的面积同整个城市的大面积相比只是很 D(9 N(9-D(9 小的一个部分,可以知道这个概率的值是非常小的. 考虑这些是很合理的,目前的情况显示了泊松 0≤D()≤N() (Poisson)分布的特征,也就是说随机变量N()的 概率是 那么D()的期望应为E(D())=∑D(刊。, N()! Dr0-0 其中常数C是可能迁移到AGENT-A的最大人口 并不是所有到AGENT-A去看情况的人最后都 会在那里住下来,更多的情况下这些人中的多数会 数现在可以知道集合p={A,,n 对AGENT-A的某些方面不满意从而放弃这个地方 0≤<1中的绝大多数元素的值为零或者接近 零,不过由于城市中人口的众多导致了所有可能的 的.一个人是否决定要住在这个地方是有一定概率 组合数目的巨大性,要计算D()的期望还是非常困 的,这个概率极大程度上依赖于此人的内部因素和 难的.根据泊松概率曲线的特点,在区间-3入,3入] AGENT-A及其周边地区的外部环境,这一点是不能 中,只有尖顶部分不近似为零,所以可以通过把有效 被忽略的.在理论上存在一个实数集p仙=(, 区间限制在一个小范围内来加速对前面所说的公式 ,A,0≤n<1,这个序列表示想在A- 的计算 GNTA居住的人的概率.如何计算这个概率应该 现在可以获取随机变量D()的概率分布了,之 服从下面这个常识,有需求和支付能力就会买或租 C 公寓,满足于现在的生活水平就不会去买或租公寓. 后就可以很容易得计算它的期望∑D(Wp0g, D(0 用这个公式 看起来ED())乘以天数就可以得到可能迁移的 n=a"·dg 人口总数,但是这是不合理的,因为序列P= {n,,在不断改变,也就是说现在和以 来近似这个概率,其中:"是一个用来定义A 前的迁移事件会毫无疑问地影响其他人迁移到此地 GNTA的状态的在综合指数;d,表示需求程度;a, 的可能性,不管是积极地影响还是消极地影响.这个 表示支付能力;S表示对当前生活状态的满意程度: 趋势是正效应在AGENT-A兴起的时候开始起作 a是系数,实际上这个系数的值可以由经验得到.一 用,同时随着AGENT-A越来越成熟,正效应一点一 般情况下,P的个数是非常少的,只有很有限的一 点地消退直到负效应出现.这种趋势是对整个P, 部分人有着不能被忽略的搬家愿望,这一点可以通 序列的一个描述,而不只是对其中某个单一元素的 过调整系数来达到.当人们的状态或AGENT-A的 描述.下面这个公式就是被设计成用来表示这种概 状态改变时,序列p=1n,,p, 率变化的。 0≤p”<1也会相应地改变 1994-2009 China Academic Journal Electronic Publishing House.All rights reserved.http://www.cnki.net
域住房的需求量会是多少 ”,这是一个涉及概率的 问题. 从数学的观点来看 ,城市区域的扩展是一个非 常复杂的随机过程 ,这个过程观察者从不同的方面 看可以由几个不同的概率分布来解释. 比如 ,为了某 种原因要搬家的家庭的概率分布是什么 ,或者每天 去超级市场买东西的顾客数量的概率分布是什么等 等. 所以基于地块设计的 agent在其行为的实现上 大量依赖统计学的计算. 下面以住房需求量为例 ,来 精确描述一个行为的实现过程. 假设 AGENT2A 是一个地块 agent,它的一个行 为需要计算住房需求. 随机变量 N ( t)表示有意向搬 家并且会在第 t ( t = 0, 1, 2…)天去 AGENT2A 调查 情况的人口总数. 这些人的到达是相互独立的. N ( t)的平均值 λ是一个参数 ,很显然同城市中所有 家庭的数量比起来 ,λ的值非常之小. 另外用 p表示 一个人正好进入 AGENT2A 的范围的概率 ,考虑到 AGENT2A的面积同整个城市的大面积相比只是很 小的一个部分 ,可以知道这个概率的值是非常小的. 考虑这些是很合理的 , 目前的情况显示了泊松 (Poisson)分布的特征 ,也就是说随机变量 N ( t) 的 概率是 e -λλN ( t) N ( t) ! . 并不是所有到 AGENT2A去看情况的人最后都 会在那里住下来 ,更多的情况下这些人中的多数会 对 AGENT2A的某些方面不满意从而放弃这个地方 的. 一个人是否决定要住在这个地方是有一定概率 的 ,这个概率极大程度上依赖于此人的内部因素和 AGENT2A 及其周边地区的外部环境 ,这一点是不能 被忽略的. 在理论上存在一个实数集 P (A) = { p (A) 1 , p (A) 2 , …, p (A) n , 0 ≤p (A) i N ( t) > 0&N ( t) = 0; ∑ n N ( t) =1 { e -λλN ( t) N ( t) ! ·∑ CN ( t) n k =1 1 C N ( t) n ∑ C D ( t) | Fk | i =1 1 C D ( t) | Fk | [ ∏ D ( t) j∈P (A) F + k p (A) F j k ∏ N ( t) - D ( t) j∈P (A) F - k (1 - p (A) F j k ) ]}, 0 ≤D ( t) ≤N ( t). (1) 那么 D ( t)的期望应为 E (D ( t) ) = ∑ C D ( t) =0 D ( t) pD ( t) , 其中常数 C 是可能迁移到 AGENT2A 的最大人口 数. 现在可以知道集合 P (A) = { p ( k) 1 , p ( k) 2 , …, p ( k) n , 0≤p ( k) i < 1}中的绝大多数元素的值为零或者接近 零 ,不过由于城市中人口的众多导致了所有可能的 组合数目的巨大性 ,要计算 D ( t)的期望还是非常困 难的. 根据泊松概率曲线的特点 ,在区间 [ 23λ, 3λ] 中 ,只有尖顶部分不近似为零 ,所以可以通过把有效 区间限制在一个小范围内来加速对前面所说的公式 的计算. 现在可以获取随机变量 D ( t)的概率分布了 ,之 后就可以很容易得计算它的期望 ∑ C D ( t) =0 D ( t) p(D ( t) ) . 看起来 E (D ( t) )乘以天数就可以得到可能迁移的 人口总数 , 但是这是不合理的 , 因为序列 P (A) = { p ( k) 1 , p ( k) 2 , …, p ( k) n }在不断改变 ,也就是说现在和以 前的迁移事件会毫无疑问地影响其他人迁移到此地 的可能性 ,不管是积极地影响还是消极地影响. 这个 趋势是正效应在 AGENT2A 兴起的时候开始起作 用 ,同时随着 AGENT2A越来越成熟 ,正效应一点一 点地消退直到负效应出现. 这种趋势是对整个 P (A) 序列的一个描述 ,而不只是对其中某个单一元素的 描述. 下面这个公式就是被设计成用来表示这种概 率变化的. 第 1期 危 辉 ,等 :一种基于 MAS和 GIS平台的城市人口变迁模拟仿真方法 ·51·
·52 智能系统学报 第4卷 州=I elTo-e(To-0 效应就开始起作用了.1的值的选择原则是它不会 eo”+eo9 超过AGENT-A的整个发展跨度的20%. r)modN 2) 因此,随着事件的流逝,许多人要搬到这里的可 N 能性也在不断地变多或变少,最后就会形成这样的 式(2中:”是p的一个元素或是在时间的概 一个概率分布序列,p,,p,p,… 率,这个概率的变动可以用一个双曲正切函数来调 :它们中的任何一个都有一个概率,表示当天最有 整:r(·)是一个随机数产生过程:N是一个常数,用 可能搬过来的人口数量.这可以用表2来表示 来控制一次有多少概率被改变的比例.。是一个表 示正效应能持续多少时间的参数,这个时间过后,负 表2迁入人口数量的数学期望 Table 2 The ma thematical expectation of popultion movng n p p pw P pu E(D()) ED2)) … E(D(0) E(D (t+1)) E(D(m)) 取请求消息并把相应的回应消息放入队列」 因此迁移人口的总数是C ED()),其 R/A 源agent D 目标agnet D消息内容 中T,表示天数 1字节 4字节 4字节 16字节 34 MuIti-agent系统在由GS表示的环境中的运行 另一个重要问题是当把众多的agent)放入一个 图9消息格式 GS平台中相互作用时,如何调度和管理它们.在现 Fig 9 Message mat 作者的模拟系统是一个开放系统,Multi-agent 实世界中,所有这些agent所代表的对象的运行完 系统的规模保证了许多新的agent,,agent的新属性 全是并行的:但是它们的抽象模型在算法中是一些 和新行为以及新的空间材料能被加入到系统模型 数据结构,只能被动地等待被激发.所以就需要一些 中,从而使模拟系统从一个简单的模型慢慢变成一 控制模块来调度它们.所有的agent都被安排在一 个精心的模型.演化的可能性是Multi-agent系统的 个对象数组中,并用它们的D进行排序.它们之间 一个关键的优点,它对模拟一个不断发展的社会是 存在着广泛的合作,因为各个地块agent虽然模式 非常有用的 相同,但各自发挥的功效随着属性的差异而不同.比 35地块agent角色演化 如有的地块agent更多地表现为工业属性,而另外 在前文中已经叙述了地块agent根据所占有资 的地块agent更多地表现为农业属性.一个地块a 源的类型和数量的不同,而扮演不同的角色.如一个 gent需要其他地块agent的许多协助来完成自己的 主要以耕地、牧场为主要土地利用方式的agent将 使命,比如自己的若干常住人口在其他agent内就 扮演农业角色,这意味着它在提供就业岗位和优美 业,自己的就业人口需要在其他agenth内居住,需要 自然景致方面将有所贡献,但现代化的农业能提供 使用其他agentp内的交通、服务设施等.所以合作是 的就业岗位数量是比较少的.可见不同的agent将 agent行为中的一个重要方面,它包括既消费由其他 扮演多种角色,由于agent间广泛存在的协作关系 agent提供的服务,又提供服务给其他的agent在当 这些角色的重要程度决定了该agent存在的价值 前项目中有意义的是服务的类型和数量,而不是它 所以,一个agent存在的合理性由它能够为整个系 的实现.考虑到这一点,可以通过消息传递机制来实 统的良性发展提供的价值所体现 现合作,并使用消息机制来实现提交请求和回应答 在agent协作的形式中很重要的一种是角色互 复.消息格式包括4个部分,图9给出了它们的意义 和长度.第一个RA部分表明这是一个请求消息还 补,例如两个相邻的地块agent,如果一个承担有公 园的职责,另外一个承担有居住区的职责,那么它们 是回复消息.第二和第三个部分分别表明了这条消 的毗邻将大大增加各自的价值.当然,除了协作之外 息来自哪个agentl以及要给哪个agent agentl间也存在竞争,例如两个地块agent都希望强 定义了消息格式以后,基于消息传递机制的 化自己在住房资源方面的占有率,但若都成为以居 Multi-agent系统的运行如图l0所示.不同agent之 住区提供者为主要角色的agent将使得住房数量供 间的相互作用是这样来实现的,把请求消息放入一 大于求,反而削弱各自在整个系统中的地位, 个消息队列中然后等待消息回应,同时另一方面获 1994-2009 China Academic Journal Electronic Publishing House.All rights reserved. http://www.cnki.net
p (A) t+1 = p (A) t (1 + e ( T0 - t) - e - ( T0 - t) e ( T0 - t) + e - ( T0 - t) · r(·) mod N N ) (2) 式 (2)中 : p (A) t 是 P (A)的一个元素或是在时间 t的概 率 ,这个概率的变动可以用一个双曲正切函数来调 整; r(·)是一个随机数产生过程; N 是一个常数 ,用 来控制一次有多少概率被改变的比例. T0 是一个表 示正效应能持续多少时间的参数 ,这个时间过后 ,负 效应就开始起作用了. T0 的值的选择原则是它不会 超过 AGENT2A的整个发展跨度的 20%. 因此 ,随着事件的流逝 ,许多人要搬到这里的可 能性也在不断地变多或变少 ,最后就会形成这样的 一个概率分布序列 , p (A) 1 , p ( k) 2 , …, p ( k) t , p ( k) t + 1 , …, p ( k) m , …. 它们中的任何一个都有一个概率 ,表示当天最有 可能搬过来的人口数量. 这可以用表 2来表示. 表 2 迁入人口数量的数学期望 Table 2 The ma thema tica l expecta tion of popula tion m ov ing in P (A) 1 P (A) 2 … P (A) t P (A) t + 1 … P (A) m … E (D (1) ) E (D (2) ) … E (D ( t) ) E (D ( t + 1) ) … E (D (m ) ) … 因此迁移人口的总数是 C = ∑ TD t =1 E (D ( t) ) ,其 中 TD 表示天数. 3. 4 Multi2agent系统在由 GIS表示的环境中的运行 另一个重要问题是当把众多的 agent放入一个 GIS平台中相互作用时 ,如何调度和管理它们. 在现 实世界中 ,所有这些 agent所代表的对象的运行完 全是并行的 ;但是它们的抽象模型在算法中是一些 数据结构 ,只能被动地等待被激发. 所以就需要一些 控制模块来调度它们. 所有的 agent都被安排在一 个对象数组中 ,并用它们的 ID进行排序. 它们之间 存在着广泛的合作 ,因为各个地块 agent虽然模式 相同 ,但各自发挥的功效随着属性的差异而不同. 比 如有的地块 agent更多地表现为工业属性 ,而另外 的地块 agent更多地表现为农业属性. 一个地块 a2 gent需要其他地块 agent的许多协助来完成自己的 使命 ,比如自己的若干常住人口在其他 agent内就 业 ,自己的就业人口需要在其他 agent内居住 ,需要 使用其他 agent内的交通、服务设施等. 所以合作是 agent行为中的一个重要方面 ,它包括既消费由其他 agent提供的服务 ,又提供服务给其他的 agent. 在当 前项目中有意义的是服务的类型和数量 ,而不是它 的实现. 考虑到这一点 ,可以通过消息传递机制来实 现合作 ,并使用消息机制来实现提交请求和回应答 复. 消息格式包括 4个部分 ,图 9给出了它们的意义 和长度. 第一个 R /A部分表明这是一个请求消息还 是回复消息. 第二和第三个部分分别表明了这条消 息来自哪个 agent以及要给哪个 agent. 定义了消息格式以后 ,基于消息传递机制的 Multi2agent系统的运行如图 10所示. 不同 agent之 间的相互作用是这样来实现的 ,把请求消息放入一 个消息队列中然后等待消息回应 ,同时另一方面获 取请求消息并把相应的回应消息放入队列. R /A 源 agent ID 目标 agnet ID 消息内容 1字节 4字节 4字节 16字节 图 9 消息格式 Fig. 9 Message format 作者的模拟系统是一个开放系统 , Multi2agent 系统的规模保证了许多新的 agent, agent的新属性 和新行为以及新的空间材料能被加入到系统模型 中 ,从而使模拟系统从一个简单的模型慢慢变成一 个精心的模型. 演化的可能性是 Multi2agent系统的 一个关键的优点 ,它对模拟一个不断发展的社会是 非常有用的. 3. 5 地块 agent角色演化 在前文中已经叙述了地块 agent根据所占有资 源的类型和数量的不同 ,而扮演不同的角色. 如一个 主要以耕地、牧场为主要土地利用方式的 agent将 扮演农业角色 ,这意味着它在提供就业岗位和优美 自然景致方面将有所贡献 ,但现代化的农业能提供 的就业岗位数量是比较少的. 可见不同的 agent将 扮演多种角色 ,由于 agent间广泛存在的协作关系 , 这些角色的重要程度决定了该 agent存在的价值. 所以 ,一个 agent存在的合理性由它能够为整个系 统的良性发展提供的价值所体现. 在 agent协作的形式中很重要的一种是角色互 补 ,例如两个相邻的地块 agent,如果一个承担有公 园的职责 ,另外一个承担有居住区的职责 ,那么它们 的毗邻将大大增加各自的价值. 当然 ,除了协作之外 agent间也存在竞争 ,例如两个地块 agent都希望强 化自己在住房资源方面的占有率 ,但若都成为以居 住区提供者为主要角色的 agent将使得住房数量供 大于求 ,反而削弱各自在整个系统中的地位. ·52· 智 能 系 统 学 报 第 4卷
第1期 危辉,等:一种基于MAS和GS平台的城市人口变迁模拟仿真方法 ·53 agents控制模块 F6 agents序列1 循环控制 12 I3 14 请求 agents序列2 消息池 响、 循环控制 agents序列n S2 数据交换 GIS 图10 agenti调度与消息传递机制 Fig 10 The schedule of agents and message transn ission mechanis 由于城市是不断发展的,对应于地块agent就是 以看作是两个空间参照物 它们的价值体现会发生变化,这是agent协作与竞争 并存的必然结果.所以,各地块agent的角色是进化 1n1990 的,或说地块agent在占有的空间位置和土地功能方 面存在分裂、合并、消亡的可能.分裂的原则是在一个 agenth内的土地占用性质或功能被集中化或单纯化, 且存在明显的功能分界,那么可以沿着功能分界线分 裂成两个或几个面积稍小的地块agent合并的原则 是如果毗邻的两个或几个地块agent具有相同或相似 的功能定位,那么它们可以合并成为面积更大的一个 1n2000 地块agent消亡的原则是如果该地块agent为整个系 统服务的价值很低,即其他agent几乎不需要该agent 的协助,那么该agent作为功能独立的个体可以取消, 其所占有的土地由其他agent接管.根据地块agent 属性定义中的若干标示自身功能定位的项和若干关 于服务提供能力的项,上述地块agent的分裂、合并与 消亡操作可以方便地实现 图11浦东地区1990年和2000年的对比 Fig 11 A contrast of Pudong District in 1990 and 2000 4实验和结果分析 respectively 到2000年底,上海常住居民的人口已经达到了 作者开发了一个基于GS平台、Muli-agent系 1321.63万,平均人口密度为2084人/m2,而在市 统、agent演化和随机过程分析的模拟系统,来研究 区这个数字是2897.旧城区改造、外来就业人口数 在不同领域的不同因素的影响下,城市区域是如何 量大、制造业快速发展也是促使人口分布发生巨大 扩展的.因为人口分布是判断城市区域扩展的最重 变化的原因.现在以浦东作例,图11是两张分别拍 要的依据之一,所以选取了同人口相关的数据作为 摄于1990年和2000年的照片,通过它们的对比,可 实验数据展示」 以看到城市发展的显著变化.由黑框围绕起来的两 41地块agent中角色的变化的模拟 片区域是同一个地方,在黑框角落里的两个尖顶可 图12是上海浦东地区主要区域.在其中标有主 1994-2009 China Academic Journal Electronic Publishing House.All rights reserved. http://www.cnki.net
图 10 agent调度与消息传递机制 Fig. 10 The schedule of agents and message transmission mechanism 由于城市是不断发展的 ,对应于地块 agent就是 它们的价值体现会发生变化 ,这是 agent协作与竞争 并存的必然结果. 所以 ,各地块 agent的角色是进化 的 ,或说地块 agent在占有的空间位置和土地功能方 面存在分裂、合并、消亡的可能. 分裂的原则是在一个 agent内的土地占用性质或功能被集中化或单纯化 , 且存在明显的功能分界 ,那么可以沿着功能分界线分 裂成两个或几个面积稍小的地块 agent. 合并的原则 是如果毗邻的两个或几个地块 agent具有相同或相似 的功能定位 ,那么它们可以合并成为面积更大的一个 地块 agent. 消亡的原则是如果该地块 agent为整个系 统服务的价值很低 ,即其他 agent几乎不需要该 agent 的协助 ,那么该 agent作为功能独立的个体可以取消 , 其所占有的土地由其他 agent接管. 根据地块 agent 属性定义中的若干标示自身功能定位的项和若干关 于服务提供能力的项 ,上述地块 agent的分裂、合并与 消亡操作可以方便地实现. 4 实验和结果分析 到 2000年底 ,上海常住居民的人口已经达到了 1 321. 63万 ,平均人口密度为 2 084人 /km 2 ,而在市 区这个数字是 2 897. 旧城区改造、外来就业人口数 量大、制造业快速发展也是促使人口分布发生巨大 变化的原因. 现在以浦东作例 ,图 11是两张分别拍 摄于 1990年和 2000年的照片 ,通过它们的对比 ,可 以看到城市发展的显著变化. 由黑框围绕起来的两 片区域是同一个地方 ,在黑框角落里的两个尖顶可 以看作是两个空间参照物. 图 11 浦东地区 1990年和 2000年的对比 Fig. 11 A contrast of Pudong D istrict in 1990 and 2000 respectively 作者开发了一个基于 GIS平台、Multi2agent系 统、agent演化和随机过程分析的模拟系统 ,来研究 在不同领域的不同因素的影响下 ,城市区域是如何 扩展的. 因为人口分布是判断城市区域扩展的最重 要的依据之一 ,所以选取了同人口相关的数据作为 实验数据展示. 4. 1 地块 agent中角色的变化的模拟 图 12是上海浦东地区主要区域. 在其中标有主 第 1期 危 辉 ,等 :一种基于 MAS和 GIS平台的城市人口变迁模拟仿真方法 ·53·