人们早期在研究系统演化的动力学特征时,由于符号积分的知识及其成功应用的经验,使用微分方程模型进行描述常常成为人们的首选。然而,对于大多数与实际动力学系统相关的问题,其微分方程模型很难或者根本得不到解析,比如对第五章的演化博弈方程的求解,有时候只能放弃符号计算,去做一些数值逼近。使用计算机对动力学系统进行模拟或仿真,往往会将微分方程强行截断变换到离散空间和离散时间域内,这时我们会发现自己常常处在一个两难的选择:一方面要建立一个基于全局的连续的微分方程模型;另一方面为了计算不得不舍弃很多微分方程本身固有的特性。同时微分方程也难以描述系统演化模式的多样性、随机性、不确定性和对初始状态的敏感性等复杂系统的特征,而且微分方程不可能具有可视化的再现系统微观动态演化特性的能力,无法令人观察系统微观演化过程。为了解决上述问题,在定量和定性的研究基础上,还要进一步对生态工业园区的聚集演化和调控分析进行定量和定性相结合的研究,我们在一直不断地探求其他新的解决方法。基于多主体的计算机系统仿真为复杂自适应性系统的研究提供了新的思路,让我们眼前顿时一亮,使得我们对生态工业园区演化和调控的研究得以继续深入下去。
Santa fe研究所(Santa Fe Institute)成立于1984年,在许多著名科学家的支持下,第一次研讨会于1984年在美国新墨西哥州的首府桑塔菲市举行。这次会议以经济为主题,参加者不但有以诺贝尔经济学奖得主阿罗(Kenneth Arrow)为首的许多经济学家,而且有许多物理学家,包括诺贝尔物理学奖得主盖尔曼(Murray Gell-Mann)和安德森(Philip W.Anderson)。这次成功的交流使与会者十分兴奋,并且一致同意按此方向走下去。这就是Santa fe研究所的诞生。它是一个独立的非营利的研究所,靠申请各种基金来支持跨学科的研究工作。在20世纪末,它被评为全美国最优秀的十个研究所之一。Santa fe研究所编印了许多出版物,除了几十种专著之外,它还出版杂志《复杂性》(Complexity)。为了加快交流,Santa fe研究所还编发内部交流的工作论文(Working Papers),每年有一百篇左右,不但印成单份散发,而且放在网站上。这一措施大大加速了该领域的交流。复杂适应系统(CAS)理论就是在这样一个环境中孕育和诞生的。
从1994年开始,为了研究定量和定性相结合的分析问题和解决问题的方法,基于复杂性科学理论,Santa fe研究所开展了一个研究项目,开发了一个工具集来帮助科学家们分析和解决这些复杂自适应系统问题。它是一个通用软件平台,“可用于生物、生态、文化和人类学、计算机科学和工业、政治科学、地理、国防等方面”,这个模拟仿真工具集叫做Swarm,在Swarm中没有对模型和模型要素之间的交互做任何约束,所以Swarm几乎可以模拟任何物理系统、经济系统或社会系统。这个工具集一出现就引起了广大经济学家的关注,并应用它建立和完成了很多经济模型,比如经济学家Charlotte Bruun和Francesco Luna所做的《SWARM人工经济中周期性内生增长模型》、Marco CORAZZA的《垄断市场中供给造假的非线性随机动态模型》、林福仁的《应用SWARM仿真分散装配供应链中定单履行过程》、Chiristoph Schlueter-Landon等的《在线供应链仿真模型》、Luigi Mittone和Paolo Pateli的《逃税过程中的效仿行为仿真模型》及Massimo Daniele Sapienza的《对银行中介研究的一种实验方法:银行网络仿真》等模型。
目前,Swarm已经脱离了圣塔菲,由Swarm的专门组织SDG(Swarm Development Group)进行管理(www.swarm.org),这是一款自由软件,其源代码是开放的,通过参加swarm.org的邮件列表成员,Swarm的使用者之间可以方便地进行自由交流,实现研究成果共享。全世界科学家都可以在(ftp://ftp.swarm.org/pub/swarm/binaries/w32/cygwin/setup.exe)上进行软件的免费下载和安装。它是一种支持“自底向上”(Bottom-up)面向对象的建模工具,在Swarm中将模型涉及的参与者看做一个个主体,首先描述各种主体细节,包括其属性、行为、对信息的评价、期望、学习过程和决策等,然后构建各类不同主体间的交互关系,通过一个时间计划表(Time Schedule)让系统中Agent动起来。它是一个数据结构,定义各类主体的非连续事件的发生执行顺序,主体将按照Schedule中定义的时间顺序来执行相应的方法。同时Swarm还提供一些输入/输出的界面接口(Observer),以便对系统模拟情况进行观察。组成Swarm模型的模拟部件之间也可以存在嵌套关系,这是通过一个被称为“Swarm”的对象来实现的,一个“Swarm”是一些主体的集合以及这些主体行为的时间计划表,Swarm代表了整个模型,包括主体及其在时间上的表现,它提供了一整套工具和一个驱动模拟的内核。研究人员可以根据需要自由定制Swarm中的多种对象,对系统在感兴趣的领域内建模,Swarm实际上就是一个面向对象的类库,用户可以通过调用这些类库简化模拟工作,通过在自己的程序中引入Swarm类建模。Swarm类是用Objective C语言编写的类库集,是一种面向对象的C语言的子集,图形用户界面用TCL/TK编写,这是一种用于编写窗口小部件的脚本语言。Swarm最初是为支持X Windows系统的Unix操作系统开发的。1995年发布了第一个Beta版。1997年1月发布了Swarm 1.0版本,该版本能在Solaris和Linux操作系统上运行;随后经过较小的修改,该版本能在DEC Alpha平台和Unix操作系统上运行;1998年4月Swarm 1.1版本发布,由于其引入了Cygnus Win32包,使其能在Microsoft Windows95/98/NT上运行;1999年年底,发布了支持Java语言的Swarm 2.0和2.0.1版本。这样,Swarm可以同时支持Objective-C和Java编程,使其越来越利于众多非计算机专业研究人员的使用,因此应用日益广泛。到2005年1月,Swarm已经发展到了2.2版。目前,Swarm Development Group(SDG)的首要任务是将Swarm进一步通用化,使之支持更多操作系统,并能采用更多的计算机语言进行编程。
本书采用的是Swarm 2.2版,因为Swarm最早以Objective C编程,以后移植到Java上。开始使用Java进行编程,但发现Java环境下Swarm有些类库还是存在着一些问题,虽然Java具有跨平台使用范围更广等优点,经过斟酌还是决定放弃Java,先以Objective C进行编程仿真,待以后软件成熟时再移植到java上。
由于Swarm是一款开放软件,很多类库并没有说明,为了便于以后Swarm的使用者进行开发利用,有必要对Swarm进行一个简单的介绍。Swarm的建模思想,就是让一系列独立的Agent通过独立事件进行交互,帮助研究由多个体组成的复杂适应行为。Swarm建有许多可重用的类库,通过这些类库可以支持模拟实验的分析、显示和控制,用户可以使用Swarm提供的类库构建定量和定性相结合的模拟系统,使系统中的主体和元素通过离散事件进行交互。一般情况下,Swarm编程具有三层基本结构:a.Observer Swarm;b.Model Swarm;c.Individual Agent。其中第一、第二层次的程序结构大体相似,都具有创建对象(Build Objects)、创建行为(Build Actions)等方法,而第三层是对个体Agent进行描述建模。在使用Swarm建模编程时需完成三个主要部分,即Observer Swarm、Model Swarm和Individual Agent等,其中Observer Swarm是目标模型观察和测量的窗口(也可以采用将实验数据记录在文件中的方式——Batch Swarm),并激活下层Swarm—Model Swarm;而Model Swarm激活Individual Agent,并完成创建对象、定义其行为时间表以及向Observer Swarm提供其所需的数据和信息等工作;Individual Agent完成对个体属性、规则等的描述。值得指出的是,在构建目标系统的时候,往往还需要建立各个主体专门的“生活”环境(Environment)。
Objective C中类的定义包括两个文件——接口和实现。这里接口指的是用来声明所定义类的超类、它的实例变量和它所实现的方法。而实现则是提供了每一个在接口中定义的方法的代码。在Objective C中这两个文件分别以.h(接口)和.m(实现)为扩展名,比如Comp.h和Comp.m。
Objective C版的Swarm 2.2可以到SDG(Swarm Development Group)专门的FTP网址(ftp://ftp.swarm.org/pub/swarm/binaries/w32/ cygwin/setup.exe)进行点击下载。Swarm 2.2的安装也十分简单,下载后直接安装基本上只需稍加设置,通过GNU Objective C和X windows支持运行,其源码遵守GNU许可,直接运行可以在Windows上的一个模拟Linix的窗口中,其间可以用Linix命令进行操作。
这里仅列出一些运行Swarm常用的Linix命令:
ls 列当前文件或者文件夹目录;
cd 打开/返回路径;
cat 列示文件内容;
make 编译;
./执行运行程序。
Swarm 2.2仅提供了一些类库,没有任何编辑平台,对具体Objective C编程来说需要一个程序编辑器,支持Objective C的编辑器并不是很多,我们用的是Notepad++,这是一款可以对很多程序语言进行编辑的通用编辑器,使用起来比较方便,它对所支持的语言有一定的语法检查功能。除此而外,还有Eltraedit和SDG推荐的Emacs等,虽然在这些编辑器中没有提供可以直接编译和运行Objective C程序的功能,但都提供了对Objective C等语言的语法检验功能。Swarm的许多代码都基于后期联编原则,也就是说消息选中的目标对象的类不到程序最后运行时刻就无法得知其对错,这是在编写Swarm仿真程序时遭遇的一个最大困难了。
实现一个Swarm仿真应用一般有以下6个基本步骤:
(1)继承系统提供的Agent类,实现一个Agent类。如生态工业园区中的企业、银行、政府等。
(2)继承系统提供的AgentSpace类,实现一个具体的AgentSpace类,并将多个Agent对象加入到AgentSpace之中,如果希望该空间是可探测的,必须实现可探测接口。
(3)继承系统提供的ValueSpace类,实现一个具体的ValueSpace类,比如用IntValueSpace表示事物在空间的分布,如果希望该空间是可探测的,必须是实现可探测接口。
(4)重复步骤(2)、(3),实现所需的各种Space,如可能需要障碍物空间、工业剩余物分布空间,另一种Agent构成的AgentSpace。
(5)继承系统提供的World类,并将各种Space对象加入到World之中。
(6)在仿真的主函数Main中创建World对象。
程序结构可以由图6.1表示:
图6.1 Swarm程序结构示意图
一般来说,在一个Swarm程序中,有Main、Observer、World,以及不同类的Agent的个体描述和相应的批描述Batch及其空间定义Space等文件。
Swarm的基本建模思想是通过一系列独立的“主体”之间的独立事件相互作用进行模拟,考察和研究系统的行为和演化规律,Swarm的模拟基本单位是主体,一个个主体就像是舞台上的一个个演员,各自扮演着自己特定的角色。它们是在一定的环境产生动作并影响自身和其他主体行为的一个实体,模拟中包括主体的属性、主体运行规则以及主体间若干组交互的方式和方法。系统理论认为,一个系统就是一个组织起来的整体,从内部看,组成系统的各个角色是以一定的结构相互联系起来的,从外部看,系统应该被视为一个整体,可以作为更大系统的一个子系统,Swarm恰恰可以完成这样一个功能。根据第三章第二节中对生态工业园区逻辑模型的描述,在走访了浙江省衢州巨化工业园区以及研究了贵糖和鲁北化工的产业生态模式以后,对其中的具体情况进行了抽象和提炼。我们以Swarm的方式给出模型的属性,在具体系统实施开发中可以将政府和银行的属性要求都设计成环境变量,省去了一些主体,重点研究工业剩余物、企业和订单的关系。
在进行建模前,我们先进行假设:
(1)生态经济群落中的企业具有有限理性的特征,即产业实体不可避免地会出现逻辑或者决策判断方面的失误,企业Agent自私自利的考虑可能会使本企业远离最优得益方案。
(2)由于上下游企业各自独立进行生产决策,因此可以把“企业之间生态剩余物交换”问题理解成双方进行决策、反复进行的静态博弈。
(3)本研究中的工业剩余物交换网主要指剩余物的外循环方式(与其他企业建立生态链接),而不包括自循环模式(企业将自己的工业剩余物处理再收回)。
(4)假设在整个运行环境里有两类Agent:企业Agent和订单Agent,企业派出的信息员外出寻找订单和其他合作企业,而其他影响因子比如银行利率、管理层面对剩余物吸纳和排放奖励和惩罚措施等,我们都把它们当成了环境变量(公共变量)处理。
(5)在企业生产能力和订单品种之间、上家排放的剩余物和下家接受的剩余物之间有一定的差异,在克服这种差异时,我们采取了匹配度的概念,也就是说企业生产能力和订单品种之间、上家排放的剩余物和下家接受的剩余物之间可以不完全一致,但是要达到一定的匹配度,而匹配度的倒数正好是两种物质的转换成本。
(6)在实际的生态园区产生过程中,有物质、能量、水和信息的交换和梯级使用等,在这里我们将它们统一为企业间的剩余物的链接交换,以后具体运用模型时可以分开分析或者通过归一化解决。
借鉴丹麦卡伦堡生态工业园区的说法(它们将工业共生定义为企业之间相互利用工业剩余物的合作关系),根据我国贵糖生态园区和鲁北化工生态园区以及浙江巨化工业园区的具体运作模式,我们将生态工业园区的剩余物交换行为描述如下:
在现实中,回收利用的原料或废料中的物质含量是一个关键因素,因为回收利用的价值随可回收物质含量的多寡以及回收难度而定。如果回收资源中的物质含量太低(或者回收难度太高),收集的成本就会增加,而高含量资源的回收利用就能够使企业有利可图。吸纳剩余物和剩余物排放的匹配关系很难做到完全一致,一个企业或工厂产生的剩余物往往仅含有一定成分的有用组分,可以成为另一个企业或工厂的原材料,在考虑每个企业以及订单剩余物吸纳能力和剩余物排放时,我们将剩余物吸纳能力和剩余物排放设计成一串二进制代码来表示,用它来表示其化学或者物理性质的匹配关系,定义每位的权数,以区别和反映它们相互转换的难易程度(成本)。比如10010110和11010110,分别表示一种可以吸纳的剩余物和一种排放的剩余物,假设这8位的各自权重为0.1、0.107、0.114、0.121、0.128、0.135、0.142、0.15,于是上面两个排放和吸纳剩余物的相似匹配度可以计算为:1×0.1+1×0.114+1×0.121+1×0.128+1×0.135+1×0.142+1×0.15=0.893(即对两个二进制数进行“异或”操作,所得结果每位乘以权重),这个数字表示它们之间可以互相转换的可能性。在这里,我们假设它们之间的转换成本为其倒数,即:1÷0.893=1.12,这样可以模拟实际的剩余物吸纳能力和剩余物排放之间的不能完全匹配的情况。企业在寻找订单的时候,可能企业找到的订单会要求企业自身必须调整一下其生产线或者工艺,但是如果调整太多则企业无法接受该订单,于是也有一个生产类型和订单品种的匹配问题,我们定义这个匹配度的要求为90%以上。至于订单的允许接受其他剩余物吸纳能力的程度,我们定义了相似度,在某一个范围内(比如0~80%内)则认为可以使用,这时才考虑接受这个由其他企业排放的剩余物。
在整个仿真环境中考虑两种Agent的情况:企业Agent和订单Agent,一开始的时候,企业Agent有其自己给定的坐标,分布在一个区域Space内,这些企业Agent的信息将事先存放在一个数据库文件中,这个文件中将注明企业为现有企业、待选企业、淘汰企业,一开始区域中仅有现有企业,待选企业将随机变成现有企业,一旦企业被淘汰,淘汰企业不参加演化。根据实际情况这些企业既可以是剩余物排放企业也可以是剩余物吸纳或者回收企业,或者集二者为一体而兼有之。然后根据市场情况向区域Space投放订单,市场好,意味着可以大量投放,市场不好,投放量小,根据实际情况这些企业只能接受某些类型订单,所有这些类型的订单事先已经给定,存放在一个文件中,所投放的订单在这个文件中随机查找,投放位置随机,并不是每个订单都有企业会接受。
定义企业和订单的属性为(表6.1企业和订单属性表):
表6.1 企业和订单属性表
下面我们对环境的属性进行描述和定义:
(一)奖、惩政策
本模型考虑了危险废弃物的排放问题,将剩余物按其毒性分成四类:剧毒、次毒、一般、无毒等,按不同的毒性分别予以不同的排放费用惩治或者治理奖励。由于对排放的各种剩余物的奖惩措施的不同,对剩余物来说,可以设计十位二进制表示其名称代码,前2位表示大类,后8位表示具体名称(11:剧毒,10:次毒,01:一般,00:无毒),如[1010101010]表示次毒剩余物10101010。假设奖励政策为:r1,r2,r3,r4,惩罚政策为:p1,p2,p3,p4。
(二)利率
定义银行利率为r,在具体运行时,这个r可以在60%~120%之间浮动(利率可以在这个范围内进行一定的调整)。
(三)订单投放密度
根据实际情况,一个工业园区所能接受的订单种类是有限的,于是订单投放在指定的几种订单中产生,但是投放量和投放密度可以调整。
(四)银行获贷概率
取得银行贷款的可能性,因为不是每次申请都能得到贷款,它在30%~60%浮动,可以设计一个赌轮,定义其概率。这个概率也可以由外部输入进行调整。
(五)模型运行区域Space
Swarm演化二维窗口的大小,可以由一个Lsize×Lsize的格点空间(默认值为100×100),空间的边界条件是周期的,即Agent从环境的某一边迈出格点空间,它将从相对的边重新进入空间。每个格点可以有企业Agent或者订单Agent,两类Agent可以重复。
(六)企业主体的行为规则
企业Agent一旦被激活,它将存在于指定位置上,不进行任何移动,初始时企业有一定的生产品种、生产能力、坐标、剩余物吸纳的品名、需排放剩余物名、颜色和固定成本,这时企业标志为“现有”,其他属性如剩余物吸纳能力数量和需排放剩余物数量的初始值为“0”,这时企业开始派出其信息员找寻订单和进行剩余物交换的伙伴。
在这里我们可以定义,所有主体均生存在一个网格环境中,记为L。网格的大小为Lsize×Lsize,其中Lsize是整数。每一个主体可以存在于一个格点上,标记处于第i行,第j列的主体为Lij;i,j=1,2,3,…,Lsize,则主体的邻域为:
1.企业信息员规则
企业以派出“信息员”的形式来实现找寻订单以及合作企业,派出的信息员在单位时间走一步,它将不停地随机移动,信息员有一定的视野,它根据企业的生产能力来寻找订单,并与其他企业进行合作博弈结成合作伙伴。
图6.2 扩展Moore模型走法
借鉴元胞自动机中Moore模型,我们采用扩展的Moore模型为信息员的视野,按生产能力的大小分大、中、小三类企业(在设计的时候对生产能力定义一个范围,以区分大、中、小三类企业)。如图6.2中黑色的为信息员所在位置,里面一圈内的黑色的位置为小企业信息员的视野,中间一圈内的9个位置为中企业信息员的视野,最外面24个位置为一个大型企业信息员可能看到的范围,由于视野的加大显然捕获订单的能力加强。信息员在移动时,可能会有以下几种情况:
(1)遇到没有被其他企业获取的订单。找到有订单的地方立即进行匹配,订单品种和生产能力品种相匹配,匹配度和利润成正比,因为订单品种和生产能力品种都为一串二进制代码,定义位数为8位,假设定义这8位的各自权重为:0.1,0.107,0.114,0.121,0.128,0.135,0.142,0.15,计算所得的匹配度低会影响企业利润,因为每一个企业都有其自己最适合生产的订单,并不是所有订单都适合企业,如果匹配度在企业认为合理的范围(比如80%以上),表示企业愿意接受该订单,再判断生产能力是否满足订单(即要求生产能力数量×匹配度>订单量),如果生产能力不能满足订单量,这时企业需进行银行贷款操作,如果能贷到款(可以利用轮盘设定贷到款的概率为30%~60%之间可调),需要计算银行利息=(订单量-生产能力)×利率×订单周期,这里假设企业仅向银行申请缺口的资金。如果有一个条件不满足,企业则放弃该订单,信息员继续随机找寻。如果能够接受该订单,则在本企业主体中记录订单(x,y)、订单量、剩余物吸纳能力、剩余物、订单收入率,计算企业剩余物吸纳能力和订单剩余物的吸纳能力的匹配度。
当接下了订单,将进行以下操作:①对订单进行标记,以免其他企业再次获得;②企业的剩余物吸纳能力=企业原来的剩余物吸纳能力量+订单剩余物吸纳能力量×吸纳能力匹配度(由于接受了订单,企业吸纳剩余物的能力增强,与原来的吸纳能力进行约当);③企业的需排放的剩余物量=原来的剩余物量+订单剩余物量×(企业和订单之间的)需排放剩余物匹配度;(这时订单需要排放一些剩余物,和企业原来的剩余物进行约当);④重新计算企业的生产能力,这时的生产能力=原来的生产能力-订单量(由于接受了订单,生产能力需要对付这些订单,暂时减少生产能力)。
由于企业吸纳和排放的剩余物不同,类似熟人模型,每个企业在自己的熟人客户关系表(CRM)分别存有对自己最合适的剩余物接受单位和剩余物排放单位,于是分别对吸纳和排放进行操作。企业为了获取综合利用剩余物而获得的奖励,它先在CRM中查找是否有以前匹配的对本企业提供剩余物的供应商(剩余物提供者坐标、匹配度,企业存储了3个供应商的信息,按匹配度排序),如果有,先找到匹配度最高的第一个供应商,如果它有足够的剩余物,则减少该供应商的剩余物,为了简化计算本书中的匹配度(等同于约当率),于是可以同时按约当量减少自己的剩余物吸纳能力,但是如果第一个供应商已经不能提供了(其剩余物=0),则找寻匹配度次高的第二家、第三家。然后分析是否有接受本企业剩余物的别家企业,类似地,企业为了避免在排放剩余物时所受到的惩罚,它将尽力找寻其排放的剩余物的下家,先在CRM中查找与本企业排放的剩余物最为匹配的第一家接受企业,看其是否有能力接受本企业提供所有剩余物,如果有,则减少本企业的排放和那家企业的约当吸纳能力,否则寻找第二家、第三家。这是一个寻求剩余物排放和吸纳最佳匹配企业的过程。
具体操作为:如果能在CRM表中找到对本企业订单的剩余物吸纳和排放的企业,记录订单信息(订单位置、订单周期、订单剩余物吸纳能力、订单剩余物),进行如下操作:
①对于有其他企业接受本企业排放的剩余物情况:
A.本企业需排放的剩余物量=本企业需排放的剩余物量-其他企业接受的剩余物能力×匹配度
B.对方企业接受的剩余物能力=对方接受的剩余物能力-本企业需排放的剩余物量÷匹配度
C.对方企业生产能力=对方生产能力+本企业需排放的剩余物量÷匹配度×对方企业剩余物接受奖励率
②对于本企业找到可以接受其他企业排放的剩余物的情况:
A.本企业剩余物吸纳能力量=本企业的剩余物吸纳能力量-接受对方的剩余物量×匹配度(约当成本企业剩余物吸纳能力的量)
B.对方企业需排放的剩余物量=对方企业需排放的剩余物量-本企业的剩余物吸纳能力量÷匹配度
C.本企业生产能力=本企业生产能力+本企业吸纳的剩余物吸纳量×本企业剩余物接受奖励率
这是一个双向的行为,对所涉及的吸纳和排放两方面分别进行奖励或者惩罚处理。
(2)当遇到其他企业时,就要进行一番博弈行为,我们应用熟人模型理论进行这个处理过程。
借鉴熟人模型理论,企业首先和自己的熟人进行交易,所以先看该企业是否在自己的熟人客户关系表(CRM表)中,如果在,不做处理。如果不在,这时要分别考虑这个企业是否可以列入最佳的三个剩余物供应商和剩余物接受的下家,根据自己企业剩余物吸纳能力的需求,看对方企业是否有满足自己的剩余物,如果有(匹配度在80%以上),计算CRM表中的企业和这个企业的剩余物和剩余物吸纳能力的匹配度(按名称),如果该企业高于CRM中的企业则挤出表中最低的企业,CRM表中分别只留下三个匹配度最佳的剩余物供应商和剩余物接受下家。这是一个寻优过程,除了匹配度,在具体试验中可以通过福利函数的方式考虑添加更多规则,加入博弈矩阵,使得从经济上和生态上更加合理,从而找寻到最佳匹配企业,将为下次订单使用。
(3)遇到其他信息员的情况,暂不考虑。
(4)其他情况,视同空的栅格。
2.新生规则
根据文件中已经存储的待选企业样本,随机从待选企业中向仿真区投放新的企业参加演化,从而产生企业主体。
应该事先定义一些适合本区域企业的订单(订单种类有限),订单主体的数量将根据需要产生,其分布随机。
3.淘汰规则
企业有三个状态:现有、待选和淘汰。淘汰标志为2时,按规则活动(初始设为2);为0时,可以从外界定义其淘汰;当其标志为“1”时为待选状态,在具体设计时我们以该标志区分是否活动企业以便编程。
生产能力小于或等于0(或者设生产能力连续在5个周期段内≤0)。
对于订单:
订单中的订单量被占领,即已被企业信息员获得,订单将被标记不能获取,同时自动消失,企业在处理订单的时候会变颜色,加工结束时恢复。
(七)企业主体的特性规则
在每个时间段中,如果无论是否有正在进行的订单,企业都要担负固定成本,即:生产能力=生产能力-固定成本;如果有正在进行的订单,则对其获得的每个订单(x,y),计算其订单周期为:
订单周期=订单周期-1(1为一个时间段,比如信息员在视野范围巡视并选择走一步的时间)
企业Agent判断自己所拥有的订单是否结束,如果结束(某(x,y)订单周期=0),则需要对该订单进行结算:
企业利润=(x,y)订单量×订单收入率×订单和生产能力的匹配度-剩余物量×排放费率-银行利息(如果有的话)(这里认为没有被其他企业接受的剩余物将全部排放到大自然并接受处罚)
生产能力=生产能力+订单量+利润(订单完成,恢复生产能力)
企业的剩余物吸纳能力=企业剩余物吸纳能力-订单剩余物吸纳能力×匹配度(这个数为正数)(减少了由于订单产生的剩余物吸纳能力)
企业剩余物量=企业剩余物量-订单剩余物量×匹配度(订单完成,剩余物排放自然减少)
为了简化模型,我们在程序中假设每个企业最多可以同时接受10个订单。
生态工业园区的企业可以定义为comp(company),这里有两个文件comp.h和comp.m,在comp.h中定义了企业的属性。
比如comp.h(片段)以Swarm的Objective C描述为:
//先导入swarm的接口以及需要调用的类
// 信息员所在坐标
// 信息员需要的空间尺寸
// 企业类型1小企业 2中型企业 3大型企业
// 企业活动标志2现有、1待选、0淘汰
// 接获订单类型
// 排放的剩余物类型
// 固定资产
// 企业初始生产能力因子
// 最多三个上家
// 最多三个下家
// 企业状态 0未生产3生产中
// 已接的订单量
// 每个企业的唯一编号
由于订单和企业都在同一个区域,企业可以认为是固定的而信息员在走动,而订单将随机出现在分析区域中,在程序设计的时候借鉴了“层”的概念,具体实现体现在我们所定义的两个grid(compWorld和foodWorld)中,针对订单和企业使用不同的层来显示和描述。由于篇幅所限程序不一一列举。
Swarm是一系列对象的集合,程序员可以把这些对象作为积木,搭到自己的程序中去。Swarm仿真一般从一个主体集合开始,每个主体可看做是大量个体(实例)中的一个原型(类),这些个体共同组成模型世界,通过这些主体的相互博弈和联系进行演化。我们可以从Swarm库中选取各种对象添加到模型中来构建一个可运行的仿真。
一般来说,基于个体的Swarm仿真模型可以包括四个部分。
(1)进程控制:开始、暂停、单步执行、重新开始、保存、退出。
(2)参数控制:系统的初始化参数与个体的参数,可以通过暂停来重新设置系统参数,并重新启动运行。系统要能够动态显示内部状态,并动态地更新内部状态。
(3)数据分析:用曲线或直线图动态描述某变量在系统运行过程中随时间或随变量变化的情况。
(4)图形显示:用二维或三维的图形显示系统的运行。系统的运行状态很直观,并提供良好的人机交互功能。
Swarm具有管理对象的创建,分析对象、跟踪对象集合的类,栅格和光栅,一个使我们能以OOP模式管理模型事件的库,以及大量的图形用户界面(GUI)类,其中包括光栅图像和曲线图。
在Swarm中,一些主要类库的说明如下:
Defobj Swarm库中类层次的根。它定义了创建对象的基本方法,同时提供一组类,它们能够存档(序列化)对象实例和按照不同数据格式创建实例。
Objectbase定义了两个基本类——Swarm Object和Swarm。前者用于生成子类主体,这类主体通过GUI可探测到,程序内部也可见到;后者用于派生子类对象,这些对象负责管理所有主体的创建和析构,并控制仿真中事件的执行。
Activity允许程序员创建数据结构。这些数据结构用于调度仿真过程中事件和更新GUI。模型中的事件和用户界面可定义在独立的调度表中,然后合并成一个统一的整体。
Collection用于管理集合类,如数组、链表或带有辅助键(散列:hash)的映射。这些类中的方法允许用户向集合中的所有成员发送消息、添加或删除成员、对集合进行排序和混序、在集合上循环或者检索某一个成员。
Space定义了允许我们从离散的二维空间中存储、读取数据或对象的类,还提供了把算法应用于空间数据、从文件读取数据和处理用户界面事件的类。
Gui用于创建光栅图像、曲线图、直方图的类,还可用于为用户界面创建窗口部件,应用GUI进行人机对话。
Analysis提供了便于创建时间序列数据曲线图和直方图的“包裹”类。同时,在进行仿真时,自动完成收集信息、动态更新曲线图或直方图输出的任务。
Random是一个面向对象的库,其内容包括随机数发生器和基于伪随机数流的统计分布。它实现了许多产生伪随机数和诸如均匀分布、γ分布、β分布和高斯分布等主要统计分布的算法。用户可显示设置、保存随机数发生器的状态以便重复仿真过程。
Simtools提供了从ASCII文件中加载对象,以及把对象保存到ASCII文件的工具,还提供了在OOP框架下,从文件中读取字符串和数字,或者把它们打印到文件的类。
ObjectLoader与InFile,从文件中读取参数,这两个类被用于使对象实例化,或者根据包含在ASCII文件中的信息设置参数。
如果查看一个存放Objective C SWARM代码的文件目录,就会看到如ObserverSwarm.h与ObserverSwarm.m等成对的文件。“h”文件就是接口文件(通常称为头文件),而“m”文件则称为实现文件。下面给出一些主要程序的结构片段。
在我们的仿真程序中有企业主体:comp.h和comp.m,订单主体:work.h和work.m,模型swarm:ModelSwarm.h和ModelSwarm..m,观察员Swram:ObserverSwarm.h和ObserverSwarm.m,程序入口:main.m,由于订单空间和企业空间可以合为一体,我们用FoodSpace.h和FoodSpace.m表示。
我们可以在Comp.scm属性文件中增加属性的缺省值,反映在仿真界面上如图6.3所示。
图6.3 仿真初始参数(可调)
生态工业园区系统是一个复杂的有机系统,由于参与者及相互联系的多样性和复杂性,政府试图通过政策来“创造”或“设计”这样一个复杂系统几乎是不可能的。因此,在生态工业园区的成长过程中,政府的角色应该是间接参与者而非主导者。人为刻意创造的生态工业园区成本高、风险大,往往很容易失败,而且一旦失败,整个园区和区域经济将遭受破坏性的打击。这样的例子在我国不是没有先例和教训,比如以前的“衢州沈家生态工业园区”就是活生生的例子。在分析研究中,本书认为政府在建设生态工业园区中需要处理好一些事情:首先做好已经存在的生态园区的识别工作,由于已经出现生态园区的雏形,表明它初步通过了市场的检验,在此基础上再去规划,可以使生态工业园区成长的阻力和风险降到最小。规划新的生态工业园区时,要尽可能地考虑风险,积极准备应急方案,一旦某个节点失效,可以立即从其他备选方案中立刻联结好断开了的网络。
丹麦的卡伦堡生态工业共生系统就是在企业自发的剩余物交换过程中发展起来的,并非有人刻意地进行规划,开始谁也没有总体网络规划的思想,对每个入园企业来讲只是出于经济利益上的交易行为,是利益的追求使它们走到了一起。卡伦堡生态工业园区已经成为世界上很多国家在研究生态工业园区中的经典案例,但是卡伦堡的成长却经历了25年的时间,高速的经济发展使我们没有必要再重复前人走过的弯路,我们的仿真就是试图找寻一种生态工业的捷径,在计算机模拟上实现最佳的上下家匹配路径,当然这个匹配可以是物质、能量、水、信息和设施等等,仿真结果可以成为企业绿色路线的行动指南,也是对政府今后进行政策规制的依据。
在完成模型的实施以后,我们得到了图6.4的生态工业园区演化仿真演示观察窗口:
图6.4 生态工业园区演化仿真模型
从演化模型中可以看到有一些移动着的大的框、小的框和一些移动的点,这些表示为大企业、中企业和小企业,企业在没有订单生产的时候呈现灰色,一旦接到订单并进行生产订单时企业呈蓝色。企业会因为损益其大小可以互相转变,大企业接不到订单由于其固定成本的损耗而变成中企业,小企业也可能因为接到订单收益增加变成中企业甚至大企业。而窗口中那些不移动的绿色的点就是订单,订单随机在窗口产生,被企业捕捉到以后,订单消失,当然订单长期无人捕捉,自己也会消失,表示企业的机会稍纵即逝。企业的移动实际上是企业信息员的移动。同时我们在另一个窗口(如图6.5)中可以看出工业剩余物的链接情况,括号中为企业标识,前面三项表示该企业可以从前面三个企业中接受剩余物即剩余物上家,后面三项为其所排放的剩余物接受下家。
图6.5 企业基于剩余物的链接情况
在此,我们的仿真模型仅仅关注了工业剩余物的交换,具体在使用这个模型时可以修改模型的目标函数,根据一些生态环境指标和生态网络指标,如:废气减排率、废水减排率、固体废弃物减排率、工业废物综合利用率、水资源重复利用率、能源重复利用率、原材料重复利用率及基础设施的共享率等等,在具体实现仿真时逐步加入到模型中,可以使模型更加完善。
图6.6 演化时剩余物总排放量随着时间下调并达到稳定
需要说明的是,我们在这个模型中没有考虑反向订单的问题,也就是说还会有订单选企业的情况,这需要在以后的研究中逐步深入。
对于我们研究的虚拟生态工业园区的工业剩余物交换来说,企业不存在搬迁问题,我们暂时没有单独考虑工业剩余物交换的物流成本,当然我们也可以用两个企业坐标(x1,y1)和(x2,y2)的海明距离作为其物流成本,但是在我们这个模型中意义不大,为了提高运算的速度,已经通过剩余物的匹配度将物流成本包含在里面了。模型考虑了剩余物不完全匹配的问题,在找到更好的合作伙伴之前,进行剩余物匹配的时候优先考虑“熟人”(以前交易过并有好的合作的伙伴),通过这样的熟人模型建立起来的企业之间的相互连接关系比较符合现实情况。
由于剩余物并不是企业生产的主要目的,其产量取决于主要产品的产量,在企业总产值中所占的比重不大,我们在订单中考虑剩余物将随着主要产品产量的变动而变动,订单为随机产生,剩余物的品种和产量依附于订单主要产品的品种和产量。
为了研究生态工业园区系统灵活适应不确定条件的能力,需要探讨对系统的柔性调控,分析模型计算或者演化柔性的大小,考察这个柔性是如何获得的,以及如何通过改进其中部分参量来获得更大的柔性。在推进生态工业发展,建立生态工业园及生态工业网络的过程中如何更好地构筑企业生态共生体、构筑生态产业链、提高生态工业园及生态工业网络中企业的竞争能力、提高生态工业园、生态工业网络的稳定性,已成为生态工业发展面临的主要问题。
约翰·霍兰在《隐秩序——适应性造就复杂性》一书中就已经指出,我们研究复杂适应系统最大的希望就是能够找到一般的复杂适应系统的杠杆。当面临关键问题的时候,只要决策者轻轻撬动这个杠杆,系统就会发生一连串的因果反应从而导致系统的整体进化以达到决策目的的实现。约翰·霍兰曾经用免疫系统为例来说明这个杠杆原理,人体免疫系统就是一个复杂适应系统,看似人类无法干预它的运转,然而人们却发现了种牛痘可以撬动人体免疫系统的杠杆,使得免疫系统能够自发地生成对天花的免疫力,这个种牛痘的方法就是我们找到的人体免疫系统的杠杆。那么针对生态工业系统、剩余物交换体系、计算机复杂系统、网络复杂系统是不是也存在着这样的“杠杆”呢?这种研究确实是非常有意义的。
在现在的市场经济体制下,市场在社会资源配置中具有基础性作用。不难知道目前大多数企业从其自身效益出发肆意侵占社会成本,使得自己的私人经济行为给社会造成极大的额外成本,这就是经济学所研究的负外部性问题,外部性使市场机制失效,造成市场失灵,因而需要政府管制介入管理。经济学家詹姆士·米德认为:当市场机制不能很好地解决由于个人利益和社会利益的对立所引起的重要社会问题的时候,比如环境污染、资源枯竭、人口爆炸等等,政府需要采取干预和控制措施是很必要的,只有这样才能解决相应的问题[248]。对准备入园的企业来说,进行工业剩余物交换也许可能是一种无奈之举,如果直接排放可能要遭受来自政府管理层面的制裁,自己治理又要花费一大笔开销,我们讨论建立这种生态工业园区实现剩余物的交换,是一种解决企业个人利益和社会利益冲突对立问题的方法,通过调整这些外部环境的参量,达到一个使得私人成本和社会成本相对平衡的状态,从经济学角度刺激私人的正外部性,或者在许多场合下由政府从事或者引导正外部性活动。政府管制的制裁力度不够或者太过都有可能造成对虚拟生态工业园区的影响,惩罚调控力度不够,企业可能选择直接排放而不努力寻求剩余物处理下家,但是制裁力度过大可能致使企业搬迁或者破产而对整个社会或者区域经济造成影响。我们在这里讨论的环境参量,比如政府对工业剩余物吸收和排放的奖励和惩罚力度、银行对生态工业企业收紧或者放开银根等等,都可以认为是一个个的外部杠杆。这一节我们通过仿真演化分析,尝试撬动或者微调这些杠杆,就像种牛痘可以撬动人体免疫系统的杠杆那样,使得这些杠杆能够推动剩余物排放和吸纳行为的相互配对,把政府的一些规范行为当做效益函数,使得企业在政府管制的调控下通过对剩余物相互吸收循环,自愿纳入到一个对整个社会排放量最小的虚拟生态工业园区中。
模型中,我们将银行的利率、企业从银行获贷概率、管理层奖惩政策等因素进行考虑,并将这些因素设置成我们所研究系统的外部环境参量。
通过对现行体制的调查得知,银行对其基本贷款利率可以在60%~120%之间浮动。调研结果又得知,银行处于对其自身利润的追求,在实际操作过程中由于对生态项目并不十分看好,往往实行利率上浮政策。在模型中我们可以看出,随着贷款利率的上升,企业因为没有办法获得利润而不愿意贷款,由于固定费用的开支,导致企业的存活数在减少(如图6.7和图6.8)。同样由于企业的每次贷款申请并不一定会得到满足,银行对放贷情况有银根紧缩和放开时的情形,即银行对申请贷款的放贷可能性降低或者提高,有些类似贷款利率的下降或者上升的情况,这与实际情况十分吻合。
图6.7 银行利率上浮企业数减少
图6.8 利率下降中小企业发展成大企业
演化的时候管理层还可以通过输入界面的调控,对使用吸收剩余物企业的奖励额度和直接排放剩余物企业的惩罚力度进行微调,对这个问题我们在模型中设计得比较详细,将剩余物按其毒性分成了四类:剧毒、次毒、一般、无毒。对每类工业剩余物的接受使用的奖励及其排放的惩罚都有所区别,以更加贴近现实情况。一般我们主要控制剧毒和次毒物质的排放,观察系统演化走向,当对企业的剩余物利用的奖励增大时,激发了上下家的剩余物交换的主动性,排放企业会积极寻找剩余物接受的下家,当然它自己也会尽可能地积极接受剩余物以获得政府的奖励,但是效果并没有想象得快。
在我们建立模型的时候,都已经假设企业都具有努力相互使用剩余物的主观能动性,也说明产业生态化知识的普及教育的重要性,产业生态建设并不是仅靠物质奖励就可以做到的,深入人心的生态工业宣传和教育,以及产业生态文化的普及十分必要,这确实是一个对整个民族和产业体系的可持续发展思想发生潜移默化影响的有力举措。
运行模型时我们逐渐调整提高管理层对剩余物排放惩罚力度,但是我们发现惩罚力度过大会招致很多企业由于连续亏损而破产淘汰,如图6.9所示。由于我们已经假设企业都具备了追求生态工业的主观能动性,都会主动积极地找寻其剩余物的链接单位,但如果实在找不到,随着高额的排放罚款或者庇古税(排污权交易费)和管理费的支出,企业经营门槛高了,由于成本原因企业数会较少,整个社会经济有可能因此而减慢或者衰退,但是对整个环境的排放污染却会大大地减少。作者认为这个减慢或者衰退对经济的超高速发展未必一定就是坏事,可以把它具体应用于宏观调控,宏观调控的目的本来就是在经济发展太快的时候刹刹车,发展不够快时加加油,于是认为加强对环境剩余物排放的管理是宏观调控的一个重要杠杆。
图6.9 当政策对排放惩罚力度增加时企业数量剧减
很显然,如果企业为了减少污染治理成本,在生产过程中将所产生的剩余物直接排放,肯定会造成环境的污染,而国家社会从人民生活健康出发要治理这个污染就会产生社会成本,私人生产成本的降低和社会成本的增加,这种现象就是经济学讨论的外部性问题。外部性是由马歇尔在其《经济学原理》中首先提出的(当时被称为“外部经济”),后来,庇古在其《福利经济学》中对其加以充实和完善,最终形成外部性理论。在针对解决各种环境的外部性问题上,政府可能会设计众多政策举措,总的来说有三类,即行政法规政策、经济政策和利用市场调节的政策,通过这三个方面协同构建出一个政府管制的政策体系。首先,行政法规政策是世界各国最常见也是最基本的政府管制措施,政府所采取的行政措施必须以一定的法规为依据,在大多数的时候行政法规政策被看成一体,比如在控制由环境污染引起的负外部性的基本政策手段就是制定排污标准,它是由有关政府管制部门制定并颁发强制实施的每一项污染源特定污染物排放的最高限度。由于自然界对污染物有一定的吸收能力,当排放的污染物小于一定阈值的时候,自然界可以把污染物吸收并转化成无害物。比如污水排入江河或者流入湿地可以被稀释、降解、吸收,也就是说在制定政策之前可以利用仿真模型分析出特定污染物排放的最高限度,同时也给演化模型留下可以排放的余地,尽可能避免或者减小负外部性。其次,政府在设计和运用经济政策解决环境外部性问题时常采用税收和补贴的手段。征收污染税的政策思路最早时由英国经济学家阿瑟·庇古(Athur C.Pigou)提出,他在1920年出版的《福利经济学》(The Economics of Welfare)一书中就指出,政府应当根据污染所造成的负外部性对排放者征税,用税收来弥补私人成本与社会成本的差价,减少负外部性。所以征收污染税也成为“庇古税”,其目的就是使得负外部性问题内部化,通过税收形式让排放者承担外部成本。除了对排放企业征收污染税以外,政府还应该对那些能够产生正外部性的行为主体进行一定的补贴,比如对污染物吸收的企业提供补贴,鼓励吸纳排放物的企业能够尽可能多地吸纳其他企业的排放物,这个问题已经在我们的模型中给予了充分的体现。最后,就是利用市场调节政策的问题。诺贝尔经济学奖获得者科斯在1960年发表了《社会成本问题》一书,他主张通过明确产权关系以解决外部性问题,外部性会导致市场失灵,造成对环境的污染,对此,单独依靠政府干预或者单独靠市场机制都难以达到相应的效果,只有将政府干预和市场调节机制结合起来才能有效地解决外部性问题,控制环境污染。可以将环境看做属于政府所有的一种特殊商品,政府将环境污染物分割成一定标准的单位,然后在市场上公开标价出售一定数量的污染权,实行污染权交易,每一份污染权允许其购买者可排放一个单位的污染物,当然要保证在特定区域内所出售的污染物能够足以被政府自己建立的污染物吸收企业或者其他相关吸纳污染物的企业完全吸纳,保证该区域的环境质量,政府鼓励产生外部性的污染者和吸纳者之间对污染权进行交易。实践中,早在20世纪70年代,美国等经济发达国家就较为广泛地运用排污权交易解决环境污染问题了。
对超标准排污者的经济处罚在中国环境保护实践上被称为“排污收费制度”(或“征收排污费制度”),《中华人民共和国环境保护法》(1989年)第二十八条明文规定:排放污染物超过国家或者地方规定的污染物排放标准的企事业单位,依照国家规定缴纳超标排污费,并负责治理。但是实际上我国目前执行的排污收费制度尚存在着较多问题:①排污费标准偏低,环境污染成本的外部化不能实现内部化,污染者缺乏积极性去寻求环境经济法律手段的帮助。有资料显示,目前污染企业所交的超标准排污费只相当于污染治理费用的10%~15%,客观上鼓励了那些宁愿缴纳排污费也不积极治理污染的企业。②我国现行的排污收费制度除了对于水污染有另行规定外,只对超标排污进行收费。这种超标排污收费制度,实质上是计划经济体制下以资源分配、无偿使用为主要特征的产品经济在环境保护领域的具体体现,这在很大程度上加剧了资源浪费和环境污染。③我国规定对于同一排污口含有两种或两种以上的污染物时,仅对其中排污量最大的污染物进行收费,造成现实中污染企业寻租,仅仅针对被收费的污染物进行处理,而忽视其他污染物的治理,于是造成河水泛黑。④目前的排污费返还方式只是一种简单的转换,返还的资金大多数被用作生产发展资金,只有少数真正用于污染治理,背离了排污收费制度的设计目的。
行政法规政策具有强制性,见效快,但是政府制定和实施排污标准却很难。经济政策以征收税收或者提供补贴为杠杆,可以促进企业的外部成本内部化,但是税收和补贴力度是多少困扰着政策制定者,搞得不好,会出现企业向政府寻租,下级政府向上级政府寻租。虽然理论上利用市场经济政策可以发挥市场调节机制的作用,但是环境资源产权如何界定却是一个相当令人头痛的问题。而研究中所提出的通过系统仿真的解决方法,恰恰能够对政策事先进行仿真模拟,对所提出的经济学理论和思想进行实验,通过分析实验结果对政策进行定量的预期。
对工业剩余物的交换,政府管制利用其行政法规和奖惩政策法规功不可没,但市场调节这只“无形的手”还是在发挥着巨大的作用。研究中发现三种政策的结合使用往往可以事半功倍,“看得见的手”和“看不见的手”结合使用可以发挥更大的作用。根据具体情况运行演化模型,针对不同的环境污染和剩余物的类型对三种方法有所侧重,剩余物品交换在国外发达国家盛行的最初原因是经济利益的驱动。在美国经济生活中,这种广泛利用剩余物的现象已经涌现出来,这种自由匹配的市场运作机制在以剩余物交换和参与交换的主体自身效益的指引下不断进行着,交换双方可以在剩余物的大市场中找到自身可以接受的匹配对象。
在生态工业园区的企业有可能会因为经营不善倒闭,或者有更好的投资环境而迁徙离开生态工业园区,遇到这种情况管理者的问题就是如何尽快恢复整个生态工业剩余物食物链,如果最佳的链断了,那么有没有次佳的呢?找寻次佳不利,是否可以通过再招募一个相应的候选企业进行“补网”,如果有企业申请加入生态工业园区,是否就能答应他这个加盟请求,这个企业加盟以后对整个园区会带来什么影响等。这都是我们这一节要进行分析的问题。
在生态工业共生企业之间总是有一种竞争和合作的相互关系,竞争地位的失衡可能会破坏剩余物交换双方的平等交流与协作,生态工业园区系统得以维持的一个重要因素就是参与各方竞争地位的平衡。然而随着生态共生,双方技术、资源、能力的交换与更新,有可能导致一方的竞争地位上升,而另一方的竞争优势衰退,竞争地位的平衡格局逐渐被打破,强大的一方往往视对方为累赘,从而造成彼此间沟通与合作的困难,使生态工业园区系统面临分裂的危险。产生关系风险的另一个源头是生态工业园区系统中收益不完全对称,从而阻碍企业间的平等合作。合作建立在合作双方有相匹配并可以交换的剩余物,合作的必要条件是公平的分配机制,体现为工业剩余物交换价格的公平、协议或者条约中地位的公平以及合作成员之间的相互尊重等。当网络中存在不公平行为(经济学上叫做“搭便车”)时,虽然可能在短时间内不会产生大的影响,但从长远的角度来说,这不利于网络的稳定性,最终会造成合作的破裂。当系统由于某种原因偏离了平衡点后,按照系统科学的知识,正反馈机制使系统进一步偏离平衡点,使系统愈加不稳定,而负反馈机制可以使系统回到平衡点,使系统趋于稳定。所以加强系统的负反馈机制,可以保持生态工业园区系统稳定性。
在之前的仿真中,为了分析演化过程,先对企业采取了在一定比例内按照一定规模进行随机生成,这样可以方便地产生大量的企业,有助于观察生态工业园区系统的整体演化路径。为了更加仔细地研究园区中个体的演化规律,对问题进行更加微观(中观)的分析,在以下的仿真中所有的企业按我们采取事先给定的某个属性进行演化,并在系统中安排一些企业,事先在程序里设定这些企业的属性值,让它们代表真实世界中特定的某一些企业,然后根据设定的规则进行演化,看一看到时候究竟会发生什么情况。
为了便于分析,我们以两种方式令模型中的某个节点消除:首先找一个看似比较关键的节点,移除它并观察可能的演化运行情况;再移除一个任意的节点,看演化会向什么方向进行。
在丹麦卡伦堡生态工业园区的实际运作中,我们可以知道,一个区域的企业要形成一个剩余物交换链需要花费很长的时间,一旦一个节点被淘汰出局,又要有很长时间进行演化才能集结成一个新的剩余物交换链,而通过计算机预先模拟仿真可以大大缩短这个集结时间,大大提高集结效率,这正是我们进行经济系统仿真的迷人之处。试想如果真的在现实生活中让它们进行演化,还不知道下次这个链在何年何月生成呢,而我们的仿真结果却可以在很短的时间内提供一个比较合理的备用方案,成为一个新的产业生态路径指南。
比如美国的Brownville虚拟型生态工业园区,它就是在原有成员的基础上,增加新成员来担当工业生态系统食物网的“补网”角色,如引入的热电站、废油、废溶剂回收厂等。
这里我们在演化程序中设计了n个(n=6)企业为这样的保留企业,规定它们一定在网内,将它们放在comp.scm文件中。我们可以任意对模型中的这n个企业进行加减,为了保证系统的开放性,在模型运行时,我们制定了m(m=10)个候选企业,一旦时机成熟,这m个企业将会随时参加演化,见图6.10。
通过修改程序,我们可以加进一个节点观察其是否能融入生态链的情况,这样可以考察这个企业是否能够进园,能否融入原来的产业生态链,以及它的进入会引起什么样的反应,对整体的经济效益和生态排放的影响。
图6.10 有指定企业参加演化的情况
在运行演化仿真程序后可以发现,园区内企业之间关系越是复杂、组织结构越是多样化,则演化成一个剩余物食物链网的速度越快,说明整个生态产业剩余物食物链越是容易达到稳定。
在丹麦卡伦堡生态园区的具体实践中,人们认识到排放量(包括排放内容的质量)的变化对整个园区的稳定可能是致命的,我们可以通过演化仿真研究剩余物排放量的变化对整个园区的影响,分析这个影响的严重程度。另外,和外部市场直接相关联的就是订单量的多寡,如果企业可以得到充分的订单,或者说企业得到订单的可能性大,那么园区中的大多数企业会茁壮成长,中小企业都变成了大企业,这时的企业之间的剩余物链接相对比较稳定。当然我们同时也要考察在市场环境较差的时候,演化向什么方向转化,由于市场萎缩,企业没有足够的订单或者所得到的订单与企业的生产能力差异太大,企业没法组织生产,没有生产的企业也就很难形成规模的剩余物链接,同时企业由于得不到订单,大企业变成了小企业,小企业则无法存活,我们在整个环境里可以看出因找不到订单而导致破产的企业越来越多,剩下来存活的企业越来越少,这与真实世界十分吻合,因为在真实世界中外部市场会由于种种原因经常发生变化,这就需要我们时刻对产业生态园区做好最好和最坏的打算,避免盲目乐观和盲目悲观。
图6.11 市场好(订单多)的情况
图6.12 市场不好(订单较少)的情况
这是一个描述在企业本身因素变化时,让整个系统继续演化,看是否会产生涌现现象的过程。由于在剩余物交换过程中,很少有剩余物可以不用任何加工正好拿来使用,于是在模型中设置了匹配度这个指标,它既可以描述上下游企业排放和接受的工业剩余物的含量上的匹配度,还能够描述具体排放的工业剩余物和下游企业所需要的工业原料之间的转化成本,比如铁矿石可以提炼钢铁,但是由于具体铁矿石中铁的含量不同,可能转换成本也不同,也可能因为上游企业排放剩余物含量的变化而导致下游处理成本激增,而使其不得不放弃使用,从而使得整个园区的排放增加,由于我们的模型是通过匹配度进行匹配的,不能相互转换的物质的匹配度等于零,于是其倒数转换成本就变成无穷大。在ModelSwarm.h模型中我们设置了匹配类型范围和匹配度,通过在一定范围内调节这个匹配度,达到观察演化的目的。
ModelSwarm.h对匹配类型范围和匹配度定义的片段:
//排放的剩余物匹配类型上限
float outTypeMax;
//排放的剩余物匹配类型下限
float outTypeMin;
//单个企业的订单或剩余物匹配度
float foodMatch;
现在给出匹配度要求高和匹配度要求不高的两种情况的演化,见图6.13和图6.14。
图6.13 匹配度要求高(80%的匹配)的情况
图6.14 匹配度要求不高(60%的匹配)的情况
可以看出当匹配度要求不高时生态食物链容易形成,在实际情况中可能这个条件就不太容易达到,因为在真实世界的实际链接过程中匹配度往往是一个常定值,而且要求比较高,如果剩余物含量不能匹配,就只能向外排放,绝不能再给下家使用,即便一定要使用,接受剩余物的企业可能需要增加设备,以稳定上家提供的剩余物的品质,确认上家提供的剩余物是本企业需要的原材料,丹麦卡伦堡的运行实践已经证明了这一点。例如:1995年,卡伦堡生态园区中葛普洛(Gygroe)石膏板厂在常规分析过程中发现石膏中含有大量的钒,这种金属的存在,可能会降低动物的抗外界压力、毒素及致癌物的能力,当元素钒在人体内的累积达一定浓度时,将对人体产生毒副作用,如果过量甚至致死。后来调查员发现是因为阿斯内斯(Asnaes)火力发电厂使用的一种价格低廉的燃料——奥利姆松石油,调查员在其中发现了钒,使得石膏里也出现了钒,最后阿斯内斯火力发电厂只好改进了设备和原料,防止钒在石膏中的污染。
企业如果擅自改变其原材料或者工艺,可能会改变其排放剩余物的内容,如果找不到接受的下家,只能向外排放,向外排放剩余物势必造成企业的排放费用,影响企业的收入;同时,原来接受方的企业由于没有了以前的剩余物供应,还要从其他地方重新购买原材料,这可能会增加成本,对上下两家企业都不是好事。所以剩余物排放的企业在调整其所排放剩余物的成分含量时一定要慎而又慎,如果有变化除非接受方愿意接受或者有办法处理,要么自己投入设备预先处理剩余物以达到接受方的要求,否则只有向外排放并缴纳排污费或者接受处罚了。政府对剩余物处理的目标不是为了消灭污染,而是要确定最小的污染排放量,并以此作为制定排污标准的重要依据,如果园区的总排放超出了污染排放的限度,园区就要考虑停止接纳新的可能有排放企图的企业,而着重向园区引进剩余物吸纳企业,以减少园区的总排放,对环境污染进行总量控制。
一个企业或工厂产生的剩余物往往仅含某些有用组份,只有这些组份可以成为另一个企业或工厂的原材料,经过剩余物交换就是通过合法的手段进行剩余物质的转移,交换中的剩余物质对于下游企业来说是难得的原材料,但对于其他企业或个人来说有可能就只是无用的废物,如果找不到下游企业,企业本身又没有能力自行处理,那也只能缴纳污染税或者购买排污交易权进行排放,交由社会其他单位进行处理了。在进行实际管理政策的制订中,政府需要制订排污标准,它是由有关环境保护部门制定并依法强制实施的每一污染源特定污染物排放的最高限度,通常这个剩余物的排放标准和制度惩罚相联系,凡是超过排污标准的企业或者个人将受到惩罚,它要保证企业或者个人向社会排放的剩余物为最小(在一个可以控制的范围内)。
产业系统中,在物质、能量和信息上相互依赖、相互传递的不同行业和企业之间,能否形成实际上的生态链接关系,如上游企业将生产后的废弃物可以事先进行一些无害化或者其他预处理,形成下游企业的可用原料来源,甚至为了形成剩余物交换网人为地设置一个这样的中间处理机构,对上游排放的剩余物进行处理变成原材料交给下游企业,起到承上启下的作用。需要说明的是,我们的模型主要考虑的是剩余物的外循环方式(与其他企业建立生态链接),而不包括自循环模式(企业将自己的工业剩余物处理再收回或者处理),企业出于避免政府或者园区管理者对排放的惩罚或者获取使用上游企业剩余物的奖励,愿意优先购买来自上游企业废弃物经无害化处理后形成的原料,所以在研究生态链接关系的紧密程度时,应该归因于双方对自身经济利益的考虑,针对彼此行为相机选择策略。
出于宏观或者中观控制的需要,政府管制的决策管理层可以尝试着对系统的所有外部环境变量进行微调,分析在各种外部环境变量组合下生态工业园区系统的演化趋势,在社会效益、生态效益和经济效益等多个目标的驱使下,引导各路产业实体朝着预想的方向演化,让生态工业园区系统的合作各方以及组建生态园区的管理方均能获得其参加这个集群的最大经济收益和社会效果,通过信息系统仿真,观察其吸引、集结、兼并、收购、解散和终结现象,分析生态共生链演化到什么时候趋于基本稳定,并以此作为管理生态工业园区系统的科学指南,在不同的演化时段进行不同的政策规范和指导,避免政策的盲目性和行政决策失误。
中国生态产业和生态工业园区系统在发展建设过程中已经暴露出了许多问题:企业参与生态工业剩余物交换实践时缺乏主动性;生态工业实践相关政策法规缺乏完整系统性;生态工业体系科学构建缺乏实践经验、技术支持不足;相当多的生态工业园区盲目上马,选址不科学;生态工业园区建设缺少专业的景观生态规划;各类工业园区一拥而上,科技水平低;甚至个别生态工业和生态工业园区有名无实,完全是打着生态的概念在炒作;缺乏可持续的剩余物交换系统,生态工业剩余物交换网络的生存难以维持。实际上生态工业系统在国外发达国家盛行的最初原因是经济利益的驱动,剩余物的交换可以提高企业的竞争力,廉价的工业剩余物已经变成了人们竞相争夺的目标。借鉴国外在建设产业工业园区系统中的经验,必须要进一步完善和建立制定相关环境奖励和惩罚的政府管制政策,我们在此特别建议:第一,为了满足系统稳定性、开放性的要求,鼓励企业发展剩余物处理的核心技术,把生态工业园区系统建立在一个开放的、比较大的区域范围内,对区域的产业生态共生通过价值链重新谋划,政策的覆盖面需要囊括整个区域,比如虚拟生态产业园区的建立等。第二,需要建立一个区域的生态工业园区系统的网络信息中心,通过对该区域所有剩余物排放和吸纳信息的收集、组织、处理、调配,使得区域内的产业实体能够共享园区资源和剩余物的供、求以及潜在的供求市场信息资源,制定生态工业园区系统的招商评价体系和项目投资分析,进行各种定性和定量的指标测试,辅以决策者的经验,对申请加入企业和投资项目的经济、生态和社会价值进行测评,建立一个剩余物排放和回收市场的撮合运作机制,保持共生体空间组织和剩余物联系的高效性,进行日常数据处理,并对可能的污染故障或者事故进行预警预控。第三,由于生态工业园区系统中的共生成员组成关系具有复杂性、多样性和创新性,相互间的联系十分紧密,如果其中有某个企业的剩余物供求量或者质量发生变化可能会导致整个园区系统组织的崩溃,生态工业园区体系内部在经济上也可能存在不合理的现象,同时区域内的中小企业的生产量和对剩余物的吸收量比较小,也可能会被排除在园区之外,生态工业园区系统会随着环境的变化动态地调整自己的结构,可能随着某个市场机遇的出现而产生,又可能随着环境的变化而分崩离析,存在一个形成、发展、分化瓦解的生命周期过程。于是应用一个复杂动态的演化模型描述一个生态工业园区系统的协同机制十分必要,建立网络中企业之间的相互信任体系,对其动态演化规律进行观察并及时调整影响系统稳定性的政策层面的变量因素,让系统时刻处于一个帕累托最优状态。第四,加强生态工业园区系统的自修复能力,园区生态体系在遭受外部干扰时可能会出现不同程度的损坏,针对这种损坏,为了让系统尽快得到恢复,需要政府“看得见的手”和市场“看不见的手”两手齐抓共管,政府应该对企业天生的趋利行为因势利导,向着生态工业引导企业的经营和发展方向,既不能惩罚得让排放剩余物的企业都没有了生路,也不能让企业觉得直接排放比治理更合算。在新政策出台之前应先设计模型,并预先进行演化仿真模拟,预期未来政策的效果,杜绝仅凭经验拍拍脑袋武断决定或者盲目管理,拍脑袋决策的失败教训已经屡见不鲜了。第五,生态工业园区系统的建立需要一个高科技的技术支撑,剩余物的交换使用和绿色物流建立在一个生态环保技术的基础上,也需要资金的支持和保障,建立和完善一个由企业、大学、研究机构、中介、金融和政府间形成互动的机制,彼此进行交换关键信息知识,促进技术改进或者变革,组成一个基于生态工业关联体系。第六,需要社会舆论和宣传来引导人们的价值取向,让企业明白经营不单单是为了追求经济利益,社会的每一个单元主体——企业或者公民——都有着它(他)的社会责任,每个单元主体都肩负着生态环保的社会责任。实际上,目前人们对价值的追求已经远远超过一般经济意义上的内涵,生活的价值观开始发生变化,如今人们已经从以前的“活下来”(吃得饱、穿得暖)和“活得好”(小康生活),发展到如今的“健康长寿”(在一个碧水蓝天的环境里健康快乐地过着小康生活),体现在价值观中的有经济、生态和社会等多种因素,生态产业共生将是产业聚集和联结产业链的又一个发展方向。
我们在本章的研究中,对生态工业园区系统进行了系统分析,按照定性和定量相结合的方法,抽象出了系统的仿真模型,并且在Swarm平台上实现了仿真软件,之后运用仿真软件进行了一系列的仿真实验,对有关工业生态链接在机制形成和演化方面进行了研究,由于在设计时考虑了大量可调整的相关属性,每次对这些属性中的任意一个或者几个进行调整都可以带来不同的调控结果,另外Swarm面向对象设计还可以让用户自行为对象添加属性,在对模型结构没有很大的改动时,加入和减少属性相对还是比较容易的,对属性的不同角度的关注和倾斜,就是对生态工业园区系统的调控研究,可以分析不同的研究重点,这也是我们选择Swarm进行仿真的一个主要原因。
我国已经处于工业化的中期阶段,所以必须实现产业生态化,早日跻身世界经济之林。国内外形势的变化使我们不可能采取一种像发达国家那样的工业化过程,我们所经历的时间必须大大少于发达国家所经历的时间,所应达到的效果至少应该和发达国家工业化所取得的成果相当。由于技术、经济发展等方面的原因,在工业化过程中不可避免地会产生各种各样的污染,这些污染如果不加以治理就会影响到人类社会的生存和发展。我们在实现“压缩型工业化”的过程中必须遵循可持续发展原则,在发展中重视环境保护,实现工业剩余物的相互消化利用,在高速发展工业化的时候注重生活环境的治理。
人类已经进入信息时代,信息化已渗透到社会的每一个角落,一项影响社会系统的决策如果事先在人工社会试验室中反复试验并进行充分的论证,将会给实际的决策带来更大的可靠度,并极大地减少由于政策失误所带来的风险,我们进行仿真、进行柔性调控实验正是从这个目的出发,实验分别从生态工业食物链外部和内部要素的调整进行了演化分析,从中了解某些要素的改变(微调)对整体的影响情况,以减少制定政策或者进行决策时的盲目行为,这是我们本项研究对社会发展和促进生态产业建设的最大愿望之一。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。