Economic Simulations in Swarm:Agent - Based Modelling and Object Oriented Programming
光盘
作者: (意)弗兰西斯·路纳(Francesco Luna),(意)本尼迪克特·史蒂芬森(Benedikt Stefansson)著;景体华等译
出版社:社会科学文献出版社,2004
简介:
[书摘:]显然,若一个计算机程序是可计算的,它是某一类型的算法,并且接受Church论题,于是就有了一个可以仿真的图灵机。由此看来,运用一台计算机就可以使一位经济学家自然地成为一名熟悉可计算理论的专家。但是,情况井非如此,往往计算机中执行的模型是构建于理论之上的模型,并不一定符合可计算性原则。由于仿真结果要受到一些“习惯的”行为规则的约束,即特殊功能的限制。在这种情况下,比如当处理一个柯布-道格拉斯函数时,基于理性偏好排序的效用函数,其一般的优良性与通用性就丧失了。
现实的经济模型是一种隐喻。应该说,只要这些模型能成功地引导我们的行为就是有用的。正因为如此,我们认为,这些隐喻是怎么获得的应该不是主要的问题,一个研究者研究经济现象时应该有完全的自由。然而,我们也知道,必须考虑政策所作用的不同历史和地理状况的制度特性,因此,我们不得不精心地设计政策标准。
当然,这个问题带有两面性。一方面,我们不知道由不可计算的理论模型得到的可计算模型,能否取得结果,尽管这些不可计算的理论模型可以引用原理来证明其正确性,甚至可以用作反对不同观点的论据。另一方面,设计出的理论模型原则上是可计算的,其“自然地”将生成可计算模型,但是问题在于,这些模型是否一定会得到一些实质性收获(偏离逻辑一致性)呢?
十分明显,计算机在经济学领域的应用已经被普遍认可,就如在其他领域一样,这是必然的趋势。一些人会认为,一个使用计算机的经济学家不足以称自己是精通可计算理论的经济学家。我们的期望是,计算机技术的应用,可以引发对计算机科学的最基本的兴趣。我们诚请经济学家研究可计算性理论。这样一来,就可以使得经济模型与完成模型的工具取得数学上的一致性。
现在,我们开始创建一个总体,也就是包含多于两个智能体的模型。要特别说明的是,我们将创建一个使用简单的进化算法(EA),来描述由不同种类囚犯组成的种群演化模型。囚犯将同对手进行四次重复IPD,对手是从总体中随机选择的。每次竞争中,获得较高盈利的囚犯将以较高的概率把他的策略传递给他的后代。这种选择压力,加上特殊的竞争程序将使得一些策略在总体中获得大量的支持者。
模型将由两个“循环”组成,外层循环将在智能体的各代总体上进行迭代,内层循环以随机顺序进行一个智能体同另一个智能体的匹配。每一对智能体完成前面部分所开发的IPD博弈后,胜者,也就是获得较高盈利的智能体将被克隆,然后插入到新一代中。通过给参数selectionPressure设置一个小于1的值,失败者也将按照确定概率被克隆。比赛结束后,老一代被抹去,新一代开始进行博弈。
这个模型仅运行外层循环,一个新类GenerationSwarm将运行内层循环。因而我们把模型中run方法的绝大部分代码移植到新种群中。
在进化版IPD中,我们需要一个简单的方法来克隆智能体。既然博弈者需要复制的惟一特性就是策略,那么把博弈者分成两部分,是有意义的:一个对象与环境交互,并获得盈利,另一代表着策略的对象可从一个智能体被复制到另一个智能体。
因此,我们把描述策略的代码从Prisoner类移到名叫Strategy的新类中。策略实例变成了Prisoner的一个实例变量,博弈者仅需要给策略发送一个消息,就可以查询他的对手下一步可能采取的行动。实际上,如果我们创建n个Prisoner实例,而且在每新一代中它们都会被n个新对象替换,那么,我们仅仅需要为每个假定存在于总体的不同策略类型创建一个Strategy实例即可。这里,只需简单地把实例变量策略值设置为与父代相同,博弈者就可以继承它们祖先的策略。
在ModelSwarm的buildObject:方法里,我们创建了第一代智能体和GenerationSwarm的第一个实例。
7.1ObjectLoader和InFile:用文件设置参数
在本例中,我们将要用到的Swarm库的一个新的特性,是它可以从简单文本文件中读取实例变量的能力。这个实例变量是用类实例设置的。这个特性由simtools库中名为Objectloadr的
类提供。ObjectLoader是库中许多类中惟一能够从文件、甚至从不同进程或者通信连接中读取数据,为编程者提供用具体例子说明对象实例的类。其他的实现,相对比较复杂。在这些例子中我们使用IbjectLoader,因为,它基于一种很简单的文件格式,容易解释和理解。
在列表8显示的代码中,我们在两种情况下使用了Object-Loader。首先我们读取仿真参数,这些参数是ModelSwarm的实例变量,是使用ObjectLoader的load:fromFileNamed:方法从文件中读取的。请注意我们不需要创建类的实例,仅需调用类本身。这是所谓的“类方法”的一个例子,可以直接被调用而无须创建类实例。
为了开发基于智能体的实验,我们引入如下一般假设(GH):在经济环境中活动着的一个智能体,必须以一种连贯的方式开发和调整自己的评估能力,这包括①为获得一个明确效果该智能体必须做什么;②如何预测该智能体自身行为的效果。当智能体与其他智能体相互影响时,同样如此。除了这种内在一致性(IC),智能体还可以开发其他特性,例如参照外部环境(例如按照某种规则)或其他智能体(例如模仿它们)采取行动(按照外部建议,EPs)或估计效果(按照外部目标,EOs)的能力。这些附加特性对在实验过程中更好地调整智能体是十分有用的。
为了应用这一假设(GH),我们在这里运用人工神经网络。我们发现,这一假设也可以应用到其他的算法和工具中,重现经验一学习一一致性一行为的循环,无论是否使用神经网络都是如此。
这里做一些介绍性的一般注释:在应用这一假设(GH)的所有情况下,把智能体的输出分类为行为和效果,一直被用来作为初始选择。这样可以:①阐明智能体的角色;②显示模型的合
理性和效果;③避免关于经济理性最优行为预先解释的必要性(Beltratti等人,1996)。
经济行为,无论是简单的还是复杂的,似乎都可以直接作为比,EPs和EOs的副产品。对于外部观察者来说,我们的人工适应性主体(AAAs)是按一定目的和计划操作的。很清楚,经济行为不具有这样的象征性实体,它是观察者抽象的。在这里,我们想到的相似之处是,对现实世界智能体行为的观察与分析也会遇到相同的问题。而且,对于一个外部观察者来说,AAAs似乎
总是一个具有最大化行为的合理性范例。
复杂性在智能体外部可以更容易看到,从它们的交互作用、适应和学习的框架中涌现出的复杂性,通常比智能体内部要多。同样地,理性(以及奥林匹克的理性)都可以作为环境约束和
智能体有限能力的副产品,在智能体外部找到。就像最优化也可以作为交互和约束的剧产品,作为智能体意向的外部涌现一样。
主要的问题是:智能体的行为,显然是有目标的,即增加或减少某种东西,但却不能由此认为,所有的注意力都要关注从智能体内部搜寻复杂性,而且不能犹豫。根据我们的假设,以及由此产生的交叉目标方法(CT),可以说,我们的工作,是从生命技术边缘向有限理性下的理性AAAs的人工世界开拓:从他们的交互作用中,复杂性、优化行为,以及奥林匹克的理性都可以涌现出来,但要在智能体外部进行。
无论从理论的还是从实验的角度看,逃税在微观经济学文献中,一直是一个被广泛研究的课题。对逃税的理论研究起始于AllinghamandSandmo(1972)的一篇创新论文。他们将逃税问题视为是一个基于laVonNeumannMorgentstern理论框架内的预期效用最大化分析。实验方面也做了大量的工作,主要集中在对理论结果的验证和对行为假设的讨论方面。
Allingham和Sandmo的模型很快招致来自于理论的和经验方面的批评。该模型最主要的理论缺陷在于,由于两种相反符号操作的效应——一个正收入效应和一个负的替代效应,使得对税率提高后所产生的影响的评估是不确定的。这个缺陷由Yitzhaki(1974)加以解决,他修改了Allingham和Sandmo模型的假设,将制裁与未付税款联系起来,而不与未申报收入相、联系。
Yitzhaki也指出,如果要保留厌恶风险这一假设的话,那么,已申报收人的变化将会慢于应征税的收入。这意味着高收入群体为了避税,将趋向于向税率较低的区域流动。
Yitzhaki所作的修正,并不能平息对Allingham和Sandmo模型众多批评,其富人逃的税要比穷人少的结论,甚至招致了更多的批评。总之,尽管Yitzhaki和其他学者(如Srivansan,1973)对上述模型进行了修改,但是许多缺陷依然没有得到解决。
从我们的观点看,这场讨论最有趣的地方,是对纳税人的行为选择中,对心理动机所扮演角色的分析的各种批评。Allingham-Sandmo和Yitzhaki使用的一个新古典模型结构的隐含假设是,逃税决定是一个功利预算的一部分,因此是由纳税人的偏好结构决定的。众所周知,新古典方法不研究偏好,将其视为是预先给定的。微观经济理论关于心理机制的这种明显忽视,迄
今受到广泛的批评,这些批评主要以经验为依据,涉及该理论的众多方面和假设,而智能体的偏好正是由心理机制及最优化行为的假设所形成的。纳税人理论毫不例外地受到来自心理、动机、经验方面的广泛批评。