竞争与合作——动态博弈模拟


程序简介

  • 名 称: 竞争与合作——动态博弈模拟
  • 作 者: 盛昭瀚-Mathematica版本,Jake-Java版本
  • 源程序下载: pdcelluar.zip

程序说明

这是一个多个企业参与的竞争环境。每个格子(蓝色的或红色的)都是一个企业,它们在随机的游走着,并会与其它的格子相遇,当与其它的企业相遇的时候,他们就进行囚徒困境博弈,其中蓝色的格子表示采用合作的策略,红色的格子表示采用背叛的策略。根据博弈的规则,每个企业都会有一个盈利数表示收益。所有的企业都向学习它的邻居中盈利最多的企业的策略。你会看到,在这样的环境中,竞争或者合作会自发的演化。


操作说明

  • 点击开始按钮,模拟程序开始运行。格子会随机的游走,并不断向他们的环境学习。
  • 点击“单步运行”表示每次只进行一步,这方便我们的观察。
  • 选择不同的显示方法可以从不同的角度观察企业的运动,其中策略是观察整个合作与不合作策略的分布,id是跟踪每个企业,移动方向观察每个企业下一步将移动向何方。
  • 点击“设置”按钮可以更改一些程序的属性。点击“查看”可以观察系统总的时间-状态图,你会看到使用不同策略的企业在时间上的分布。


设置参数的说明

  • 世界的尺寸:程序中一共有多少方格,方格数越大运行越慢;
  • 企业的总比例:企业数占总的方格数的比例;
  • 合作者的比例:在企业中,初始时刻合作者占的比例;
  • 邻居类型:在两种邻居类型中选择一种,两种类型示意图如下:其中黑色的表示当前的方格,黄色的表示他的邻居。

800px

  • 刷新间隔:每次刷新世界演化几步。比如刷新间隔为2,则每走两步才刷新视图一次。
  • 博弈规则:确定当合作者与不合作者相遇的时候不合作者能够得到的收益数(>1)。

规则说明

个体:每个企业可以用一个三元组表示(s,m,d)。其中s为企业当前使用的规则,s只能取1(表示合作),2(表示不合作)两种状态。m表示与该企业的所有邻居分别进行囚徒困境博弈以后的总盈利。d表示随机选择的移动方向(在vonNerman类型中有上、下、左、右4个方向,Moore类型有上、下、左、右、左上、左下、右上、右下8个方向)。程序中黑色的区域表示空区域,没有被企业占领。如果某个企业已经占领了一个方格,则其它企业不能介入。


博弈规则: 每个企业都跟它的邻居进行囚徒困境博弈

囚徒困境博弈,博弈的矩阵如下表所示:

(企业1,企业2) 合作 不合作
合作 1,1 0,p
不合作 p,0 0,0

这个矩阵为简化了的囚徒困境博弈的形式。即,如果两个企业都采取合作的策略,那么它们各得1单位收益,如果一方合作另一方不合作, 那么合作的一方吃亏得益为0,不合作的一方占便宜,得益为p(>1);双方都不合作那么都不收益。

学习规则:每个企业在每次循环中都跟它周围的邻居中这次循环的收益最多的企业学习,把它的策略拷贝过来作为自己的。即如果四个邻居中收益最高的是背叛,那么这个企业下一个循环也选择背叛策略,如果收益最高的是合作,那么下一时刻,该企业也采取合作策略。

移动规则:每个企业在每次循环的时候都随机的选择一个方向,如果这个方向指向的方格为空,并且没有其他企业指向这个方格,那么下一时刻它就移动到那个格子中,否则它原地不动。

规则的运行:系统采用离散时间运行,每个周期内,所有的企业先按照自己的s取值也就是策略跟每个邻居都进行博弈确定它的收入m;然后每个企业开始在4个邻居中寻找最大的m对应的企业,学习它的策略作为下一周期的策略s';然后企业根据移动规则向它的临近方格移动。


集体涌现行为

根据多次系统运行规律观察,得到的几条规律如下:

  1. 系统最后的演化结果是依赖于初始分布的;
  2. 企业的总比例越大,合作者越容易存活,不合作者将趋于灭亡。相反,企业的比例越小,合作者越容易转变成不合作者;
  3. 相同的企业往往集中在某几个特定的区域;
  4. 系统演化的结果是对博弈规则敏感的,如果m数值设置的越大,则合作者越不容易占上风;
  5. 每个企业的邻居数越多,则合作策略越容易占上风;
  6. 不同的参数设置会导致不同的结果,一种情况是最后全是竞争的企业,一种情况是全是合作的企业,还有可能合作与竞争长时间共存,并且演化规则特别复杂。


对这现实经济环境中的指导意义

  1. 只有企业和企业之间建立起比较完善的交互体系的时候,合作的可能性才会增强。
  2. 同类之间连成一片可以抵御外来者的进攻。
  3. 囚徒困境博弈是一种竞争关系的博弈,企业和企业之间本质的关系是竞争的,但是合作却能在一定的条件下自发的演化出来。因此,竞争中的合作是一种多个个体相互学习适应过程中得到的。