基于需求驱动和OL-System的大规模城市建模
基于需求驱动和OL-System的大规模城市建模
黄友航 梁成 陈春华 陈学伟
scutparttimejob@126.com aliceliang@163.net musalan@msn.com suppermandog@sina.com
华南理工大学计算机科学与工程学院(510640)
图1. 衍变后期城市常系数τ=1.24,fractal d=2.13d效果图
摘要
伴随着虚拟现实、计算机真实感图形学和人工生命等领域的发展,建筑群的建模和模拟吸引了国内外不少学者的研究兴趣,本文探讨了一种通过模拟细胞为了自身发展主动改变环境的过程来模拟城市发展和演化,探讨了基于OL-System下的城市区域迭代细分方法,提出了两级道路样式城市框架,可以呈现城市的发展过程。
关键词:
需求驱动,寻路,OL-System,道路样式
引言
城市是人类文明的象征,是财富生产、积累、传播中心,工业革命后的城市化进程则是当今世界环境和发展问题的重要组成。研究城市化的动态发展过程有重要科研价值和实际价值,随着计算机三维技术大发展,真实感图形学和虚拟显示的迅速崛起,城市发展和衍变过程的三维表现已逐渐收到重视。本文提出了带有人工生命特征的基于GeoCA模型和OL-System文法的大规模城市建模与衍变方法。具有自繁衍、自组织、自敏感、自适应等特征。在我们的实验城市:兰州和武汉中,我们实现了从t=2.1e的小镇衍变到t=44.2e带有30000多建筑物的衍变,并以60FPS以上协同稳定地实时渲染。我们的方法的主要有以下优点:
l 统一表示城市发展中的各种影响因素。使用影响力灰度图来表示各种复杂的影响,反映了各种影响力的全局叠加作用。
l 由内在需求驱动发展,对城市发展的内在原因进行了建模,能够解释道路生成的根本原因—对降低成本的需求。
l 细胞受需求驱动,可以主动地改变环境来适应自身的发展。
l 引入基础道路样式。能够生成人工规划出的城市模型
衍变初期t=2.1e 衍变中期t=20.4e
衍变中后期t=29.3e 衍变后期t=44.2e
注:t为我们自行定义的衍变阶段时间单位,对应WorldExplorer设定的一段模拟时间
图2. OL-system文法下的城市衍变
虚拟城市的建模和仿真一直是国内外研究的热点,城市发展的普遍规律以及如何使虚拟的城市模拟出真实城市的发展过程,也是我们研究的重点。本文主要由以下几个方面组成:首先我们介绍了城市场景建模的大致流程。然后我们提出了一种基于需求驱动的城市生成方法,其中我们对城市发展的根本原因进行了探讨。鉴于以往的研究方向往往集中在环境对城市的单方面影响,我们引入了社区的发展与环境相互影响的模型。在各种道路样式生成的根本原因方面我们提出了一种新的道路生成规则。接下来为了表示城市中各个区域之间的相互影响。我们以影响力灰度图来表示区域之间复杂的影响。
城市常系数τ=1.24,fractal d=2.13
图3. 城市衍变后期线框图
1. 相关工作
模拟城市空间演化的模型很多, 如空间相互作用模型、系统动力学模型、元胞自动机等,其中空间相互作用模型由瑞典学者T.Hagerstrand于1953年在其论文“作为空间过程的创新扩散”中首次提出,最有代表性的是1966年R.A.Grain提出的格瑞-劳利模型,,是基于牛顿力学的物理模型,是一种静态的城市模型,无法模拟出城市的动态发展衍变;系统动力学模型最初由美国麻省理工学院的Jay W.Forrestr教授于1956年提出,可以分析复杂系统的机构和功能,但其基于大量平衡条件下建立的静态的微分偏微分方程模型,不能反映城市空间演化的时空动态变化。而元胞自动机模型是人工生命理论的一个重要分支,具有人工生命自组织、自繁衍、自敏感、自适应的特征,是基于离散的时间、空间和状态的建模方法,更适于城市这样一个离散的复杂系统。它具有以下几个特点:(1)同质性、齐性:即每个细胞都是整齐排布并遵循同样的规则。(2)空间离散:细胞是分布在离散的元胞空间上。(3)时间离散:系统演化是按照间隔的时间分步进行,区别于微分方程中的连续时间。(4)状态离散有限:细胞的状态只能取有限的几个离散值。(5)并行性:每个元胞的计算都是独立的,相互没有任何影响。(6)时空局部性:细胞的下一时刻的状态取决于临近区域细胞的状态,所以传递信息的速度是有限的。(7)维数高:每个细胞的状态都是这个动力学系统的变量,所以是一个维数高的系统。具有这些特征的元胞自动机模型能够模拟很多复杂系统,但在城市模拟方面传统的CA模型都是基于在邻域(交通、邻居细胞)的影响下细胞的演化过程,无法模拟出较远处的因素的影响,也没有考虑到城市发展中道路也受到细胞的影响,所以生成的道路网与细胞的发展不一致,无法模拟出道路的修建及拆迁的过程。
下面就几类当前常见的城市建模与衍变模拟以表格的作一对比:
静态结构模型 | 社会物理学模性 | 系统动力学模型 | 经济规划模型 | 基于CA 的模型 | |
建模原理 | 区位理论 运输成本论 工业/ 商业利润最大 | 牛顿社会物理学理论 统计分析理论 | 系统论 控制论 突变论 | 最优化理论 | 复杂系统论 宏观是微观行为 的总和 |
对时间的表达 | 不能/ 静态 | 不能/ 准动态 | 动态 | 静态 | 动态 |
对空间的表达 | 均质平原或忽略空间 | 粗略分区/均质体 | 粗略分区/ 无空间差异的均质体 | 均质体/ 宏观功能分区 | 完全表达空间个体及其相互作用 |
模拟主题 | 宏观结构 | 整体行为 | 整体行为 | 配置优化 | 微观个体行为和空间相互作用 |
复杂性 | 单一子系统 | 单一子系统/ 综合性模型 | 宏观综合系统 | 单一系统 | 时空复合系统 |
本文引入了CA模型中有关细胞发展的思想,提出了一套基于需求驱动的城市衍变策略。
2、大规模城市框架建模
下图为我们大规模城市场景建模的大致流程。我们根据特定的数据源或参数,完成整个城市的初始建模。
其中深色图框表示输入的数据和生成的数据
图4. 城市建模流程
我们的数据源于主要有以下一些:
l 数字地理数据
- 数字高程模型DEM
- 正射投影模型DOM
- 建筑物高度数据
l 社会统计学数据
- 人口密度数据
- 区域分布数据(住宅区、商业区、混合区)
- 常见城市道路样式
我们首先由地理源数据生成场景中的地形、水陆分布以及地表的植被,这些是城市发展的自然环境。在生成城市的基本框架时,我们根据具体情况设计了三种生成方案:1.基本道路样式2.用户手动绘制3.载入数据。生成的基本城市框架就作为城市衍变系统的输入。针对自然演化的城市和人工规划痕迹较明显的两种类型城市,我们探讨了人工生命自繁衍需求驱动模型下的城市衍变策略和OL-System文法下的城市衍变策略两种方案。
3、基于需求驱动的城市衍变
需求驱动是本文提出的一种概念,是基于对生物中的细胞在环境中由自身的需求驱动主动改变环境来适应自身发展的过程的模仿,来实现对城市发展等复杂模型的模拟。之所以要提出这个概念是因为首先本系统不同于以往的元胞模型和神经网络系统,前两者是通过元胞或神经元对输入信号的条件反射式的反馈来实现模型和环境的互动,而本文中提到的城市建模是基于细胞的需求驱动的,每个细胞都是有自身发展的需求,可以作出改变环境的行为,而不是对环境的机械反馈;生成城市时,是在细胞要求寻求资源的驱动下生成道路,所以生成的城市道路网是符合资源合理配置的要求的。下图是用于生成城市的细胞系统框架
图5. 需求驱动下的城市衍变框架
在框架中处于核心位置的是细胞,为了在计算机中表示的方便,在实现时我们将细胞的分布抽象为一张棋盘状的密度图,密度图中的每个细胞都对其它细胞有影响力作用,如果在分析每个细胞所收到的影响时都要遍历所有的细胞,将会需要很大的计算量,所以我们将每个细胞的影响力统计到一张总的影响力灰度图上,用来表示每种细胞对其它细胞的有利和不利作用,同类细胞的影响力是相互叠加在一张图上的。以工业区为例,每个类型为工业区的细胞都会对周围环境产生影响,其中提供就业是有利影响,而产生污染是不利影响,影响力以细胞为中心向外扩散衰减。而且,根据密度的和衰减系数的不同,不同细胞的不同影响波及的范围和大小都不同。因此,当某个工业区细胞产生变化时,就要修改相应的影响力图。
图6. 密度图、影响力图、道路图
影响力计算公式如下:
其中Icell为细胞影响力常数,Ievir为环境因素影响力常数,D为距离。其中,河流、山地等自然环境因素都对细胞有有利的影响,使得细胞在山水环绕的地方容易生长。下图表述了影响力范围的作用。居民区和工厂区之间的有利和不利作用综合发生作用使得两种区域有最佳发展范围。
左边的居民区和右边的工厂区由于互相的影响力的作用,产生了各自的最佳发展范围(密度最大的格子)
图7. 影响示意图
影响力对受体细胞的满足度会产生影响,满足度的大小决定了细胞是发展繁殖还是萎缩消失,因此影响力的在地理上的分布就是细胞发展适宜程度在地理上的分布。计算细胞的满足率S的公式如下:
其中k1,k2,k3为比例系数。Avan表示其他类型对该类型细胞有利影响,公式中对所有相关的有利影响累积求和。同理,disAvan为不利影响,公式中对所有相关的不利利影响累积求和。recRes为该细胞得到的资源量,needRes为该细胞的需要的资源量,Density为细胞的密度。
确定了满足率后要将满足率S与生存系数t1和繁殖系数t2(t1<t2)比较。当S<t1时,表示细胞的环境不适宜细胞生存,细胞产生衰退,密度减少;t1<=S<=t2时,细胞只增加自身的密度,并不向外扩张;当S>t2时,细胞本身密度增加,同时带动周围的密度增加,达到繁殖的效果。
每一种细胞除了受到影响力的作用,还有对资源的需求,当需要的资源大于提供的资源量时,细胞会去寻找资源,如居民区的资源为工业区(就业需求)和公共设施区(社会需求),而工业区的资源为居民区(员工需求)。细胞寻找资源时,有三种可能的路径:直接连接,沿公路,修路,模拟城市中人们出行的方式(寻找资源时细胞的位置并不改变,因为城市中的建筑物的位置是不改变的)。
在寻路过程中我们定义了寻路成本的概念,其中直接连接表示两个细胞相邻,故成本近似为零。沿公路的成本∝所走的公路长度,∝交通流量的平方,在交通拥堵的市中心成本极高。修路的成本是修建成本与收益的差,有可能是负成本,是负成本时就是最佳选择。修路价值成本计算公式如下:
其中Ka为被道路扩展的细胞影响力图中的有利作用;Na为受被扩展的影响力影响到的受益细胞总数;Cb为修路成本,和地形的坡度有关;Cd为拆除沿路建筑成本。
由于寻路时成本最低原则,新修建的道路会自然地连接上已有的道路来减少修建长度(图8)。由于坡度大的地形修路成本较高,所以山地中不会出现道路。而在城市发展出市中心时,由于中心地段的交通拥挤增加了细胞寻路时的成本,使得外围的社区要绕着市中心外圈修建环城道路,而市中心的细胞对外围资源的寻路就生成了星形的路线(图9)。对“同类”的寻路形成了居民区内的网格小路(图10)。如此生成的道路是城市有机的组成部分,对城市的发展有促进作用。
图8. 最小成本原则使得道路自然地连接在一起
图9. 中心高密度的城市在最小成本原则作用下的结果:星形道路
图10. 对临近的同类区域的寻路形成网格状道路
由此可见,细胞系统在道路建模方面是可以模拟各种道路样式的,因为使用的是同样的规则,基于需求驱动的方法模拟了道路生成的原因:即有连通的需求、最低的成本,所以是一种通用的方法。在城市道路生成的同时,以细胞来模拟的各种社区同时发展,并与街道相互作用影响:社区对街道的使用增加了街道的交通流量,从而加大了公路运输的成本,道路将细胞的影响力沿道路扩大,使得比较远的细胞之间能够相互影响,比如使得城市边缘的工厂可以在市区找到员工,而市中心的社区也能到很远的地方找到工作,从而促进了两个区域的发展。而在修路的收益大于成本时,会拆除掉沿路的建筑,使得社区地布局是动态变化的,能够反映出城市发展中的不断拆迁扩建的过程。所以说在细胞系统中社区和街道是同时发展,相互影响的,不同于先生成道路样式再填充社区的方法,细胞系统可以模拟出城市从一个聚落到一个有多个中心,有附属的乡镇,和齐全的市政设施的巨型城市的过程。
4 基于OL-system的城市衍变
基于需求驱动的城市建模方法可以生成依照规律衍变的城市,但还有很多城市是有着明显的人为规划痕迹的,所以我们还探讨了基于OL-System的城市衍变。在多次实验中,我们发现单纯的随机L-system迭代生成的城市在一定程度上会与真实城市有较大的差距。现实中的城市道路分布及样式在很大程度上受到交通及人口密度的影响,虽然我们可以近似地改变人口密度分布,使Open L-system文法生成符合实际的道路分布及样式,但是,并不是所有的道路都与人口分布密度有一定关系描述。例如,连接两个城市之间的道路,与周围人口关系的密切程度远不如其连接的两个城市人口密度关系的密切程度。因此,本文在随机L-system文法的基础上引入了真实区域样式,从而使随机生成的城市更趋真实。
一旦道路分布模型全部确定下来,整个城市就被分成了一个个小区域,把每个区域的中心点定义为区域建筑物的落点。对于每一个落点,都可以确定包围该区域的多边形,然后根据整个城市的繁荣程度近似地分布设定各个落点区域的建筑高度,以该高度为屋顶生成该区域的柱形建筑外形,即完成每一个落点区域的建筑物几何建模。
根据上述思想我们把本文提出的道路生成方法划分为四个步骤,如图11,各步骤的具体细节在下文将分别介绍。
图11. 城市模型建模与衍变设定流程
建模时,考虑到不同参数值的影响,首先需要区分这些因素究竟是属于图11中提及的属于全局的因素还是局部的因素。下面是一些常见因素的分类,对于这两类参数的不同影响将在本文后面部分详细讨论:
l 全局因素:道路样式、人口密度
l 局部因素:水陆分布、地形高程、街道交叉口
4.1种子分布与基础样式
在初始化时,我们首先确定几个人口稠密的地区,作为种子,然后以种子区域为中心向外部生成分支道路,生成的道路的样式可以完全随机,也可以根据周围环境的实际情况选择合理的基础道路样式。下图给出了我们用到的一些基础道路样式。
a光栅/棋格 b放射状/同心圆 c分支
图12. 基础道路样式
对于大部分的城市,可能只有一个或两个的人口高度密集的中心,那么我们就可以考虑定该地区为中心,选择图b的放射状的基础道路样式,也可以完全不采用样式,从该中心以随机角度及预定的半径参数直接生产大量放射状的干道,从中心向外部辐射式地生成主要分支干道,如果存在一个以上的人口密集区,则将一个密集区辐射范围扩大至另一个密集区。
有些城市存在3个或4个的人口高度密集的中心,那么我们可以考虑先建立几个大的干道连接几个人口稠密中心,这样就将城市分成几块大的区域,然后,我们再对大的区域进行简单的初试分割,即在大的干道上利用迭代生成几条分支道路像外延伸,这样就形成了图c的分支状基础道路样式。此外,还有些比较新兴的城市,城市的人口布局比较规则。如果城市中的人口高度密集的中心比较多或者比较规则,则可以考虑建立如图a的光栅/棋格状基础道路样式,利用一些水平线和垂直线将几个人口高度密集的中心贯穿起来。
根据上述步骤,我们就为城市建立了一个大致的道路模板。在此模板中,我们可以使用一种或多种基础道路样式,把城市中的人口密集区连接起来,并生成一些主要干道,将城市划分成几个大的区域,为城市确定一个基础的轮廓,使得城市可以进一步按照基本样式细化。
图13. 基于基础样式生成的城市道路大致轮廓
4.2 与真实城市相关的二级道路样式
然而如果仅仅采用基础样式与下文提及的随机OL-system文法生成的道路,在很大程度具有其分形自相似本质,与真实城市道路有一定差距。为了生成更接近于真实的城市道路,本文对于各基础样式再采用一些已知的真实城市道路样式作为二级样式模板,替代某些已经生成但与实际有较大差距的道路集,然后对道路集根据文法规则进行迭代,产生更多的子道路(分叉)集合。下表给出了本文涉及到的一些与真实城市很接近的规模化道路样式:
二级样式名称 | 基础样式 | 图例 |
纽约样式 | 格网井状 | |
巴黎样式 | 中心辐射 (干道较少) | |
伦敦样式 | 中心辐射 (内环为空, 干道较多) | |
北京样式 | 中心辐射 (典型的古城式,方形环路,由城中心向外辐射) | |
莫斯科样式 | 中心辐射 | |
柏林样式 | 中心辐射 | |
圣弗朗西斯科样式 | 高低起伏 (根据高程坡度走向) |
图14. 复杂道路形式
通过把多种样式组合使用,我们可以得到更复杂更逼真的城市道路分布。
4.3 基于OL-system文法的区域细节渐进
在生成了城市的大致主要道路干道之后,我们还需要生成各种分支道路,为了使生成的道路能够体现合理的分叉性,本文提出了基于OL-system文法的树型道路迭代生成方法。
Open L-system是一种基于一组产生法则的并行字符串重写算法。每条字符窜包含了一定数量的互相区别的模块,模块会被作为命令来解析。命令的参数保存在模块之中。当我们要写一套复杂的法则系统来创建一个道路区域时,有非常多的参数和条件要实现到L-system当中,很多法则必须重写。新产生的字符及其复杂度增长的很快。每实现一个新的制约条件,许多的法则就需要被重写。这使得可拓展性的实现变得非常困难。因此,文本提出的策略不在每次的生成中设置参数,而是让L-system在每次生成步骤中产生一个通用的模板,不仅可以方便的修改它的法则,而且可以生成时如果要对参数进行重新设置也无需重新生成法则
二级样式生成的道路 对已有道路分析得到的区域
图15.
在L-System基础上我们对区域进行空间剖分,生成的道路将区域逐渐细分。即新增一条道路,将原区域分割成两部分。
图16. 城市衍变框架
上图a是城市大致轮廓中的主干道所围的某一区域,每迭代一次,每条原有的道路就产生1到3个分支道路,随着迭代次数的增加,道路数量不断增加,直到道路密度达到设定的全局基准值,这样通过OL-system和空间剖分对区域添加细节,我们就基本上能够实现整个城市的完全随机生成。
4.4 基于自敏感L-system的局部调整
对于大部分城市来说,我们在大规模随机生成之后,为了使城市样式更好地满足我们的设计,我们需要对局部进行修正。本文通过自适应L-System文法实现该过程。首先检测本路段同其他路段的交叉点,如果发现了交叉点,将剪除该段路,然后生成十字路口。另外,如果系统发现了在给定的街道半径范围内有路段的末端存在,那么它也将修改参数,建立一个新的十字路口。
下面是文本涉及的局部调整的几条规则:
l 两条街道相交生成十字路口
l 路段末端接近十字路口延伸街道至十字路口
l 接近交叉点延伸街道产生交叉
结论
我们的城市生成和显示系统提出了由细胞需求驱动的城市发展模型,模拟了真实城市发展衍变的内在原理,而不仅仅是对城市形态的表面现象的模拟。在我们的模型中道路可以扩展细胞的影响力范围,区别于传统的元胞自动机的时空局部性的特点,将影响每个细胞发展的因素扩展到全局,不再受影响力半径的限制。同时这种设定改变了传统的将道路的影响力与细胞影响力相分离的做法,使道路成为传播影响力的载体而不是独立的影响因素。在道路生成方面,我们将每条道路的生成都看作细胞改变环境的智能行为,使得每一条道路的生成都具有其合理性。在系统的可扩展方面,我们将影响城市发展的各种因素都抽象为影响力图,只要增加不同的影响力参数就可以模拟天气,河流,政策等因素对城市发展的影响。
此外,考虑到现实中很多的城市在人为规划的影响下都有着自己独特的风格,比如一些中心对称的古城,所以在生成一些人为布局的城市样式时,我们引入了OL-System,可以按照我们设定的道路框架生成特定样式的城市雏形,然后在基于需求驱动的城市衍变模型下进行发展,使其在保持城市布局风格的前提下按照自然的规律发展,这样就可以生成既逼真又有特色的城市,从而更加接近真实世界。
参考文献
1. Nobuko kato & Tomoe okuno & Aya okano “An alife approach to modeling virtual cities” IEEE System , Man and Cybernet-ics 1998 1169-1174
2. Nobuko Kato ”Modeling Virtual Cities Using Genetic Algorithms”IEEE Midnight-Sun Workshop on Soft Computing Methods in Industrial Applications Kuusamo,Finland,June 16-18,1999
3. Yoav I H Parish & Pascal Muller “Procedural Modeling of Cities” ACM SIGGRAPH 2001,12-17
4. 周成虎&孙战利&谢一春”地理元胞自动机研究”科学出版社2001