Netlogo代码框架:意见形成过程和Replicator Dynamics / ESS

时间:2018-07-27 13:24:08

标签: netlogo game-theory

我有一个关于建模游戏理论框架的相对特定的问题。 老实说,我不太精通Netlogo编程,并从YouTube视频获得了基本代码设置。

但是为了扩展我的本科学位论文所使用的框架,我想模拟非平衡动力学并观察发生了什么:

首先我为我的学士论文考虑的模型:

一个人可以在两个代表公众舆论的选择之间选择一个,而另一个代表任何其他相反的看法。 因此策略空间或多或少地由S =(A,B)给出 根据选择相同策略A或B的人口份额,个人将获得回报 所以收益fct。 U(A)= x * a给出x代表公众舆论A的意思;份额和任何正数代表与我的朋友/邻居等具有相同意见或看法的一致性或有效性。

但是代理人有一个基本的倾向,就是不同意公众舆论所给出的指数i。 这意味着如果我们假设(为简单起见)假设所有代理在从0到1的代理之间平均分配,则从1的角度看,从本质上讲,接近1的代理会更不满意,而接近0的代理对内在观点更满意。 >

所以收益fct。对于B的意见是由U(B)=(1-x) a + i b给出的,其中i作为刚才提到的索引,b再次为任何正数,从而为“遵循”它们的基本形式提供了额外的效用性格

在我的学士论文中,我提出了一个均衡分析,您可以看到,即使只有一小部分人在寻求B的意见,也可能导致连锁反应,从而使公众的意见发生变化。当然取决于选择的变量值。

所以我现在模拟的想法如下: 收益取决于我想在进化游戏《理论/复制者动力学》中探讨的人口比例,并观察会发生什么。我认为2x2的回报矩阵在对角线上有1或任何其他正数,其他为0(在最近的Code中仍然是3x3矩阵)。

但是我该如何模拟在0到1的区间上平均分布的业务代表,然后将其索引插入到收益矩阵中呢?

我知道这听起来很懒,但是有人可以设置必要的代码行吗?这对我的研究将是巨大的帮助。

我希望它是可以理解的,并且我对您的提示,改进建议和批评家非常感兴趣。

非常感谢!

最好的问候, 拉斐尔

globals [
  colors; all the colors/actions
  payments
  old-red-count
  old-green-count
  old-blue-count
]

to setup
  ca
  set colors [red green blue]
  set payments [
  [1 0 0]
  [0 1 0]
  [0 0 1]
  ]
  ask patches [set pcolor white]
  create-turtles num-turtles [
  set color one-of colors
  setxy random-pxcor random-pycor
  ]
reset-ticks
end
to-report payoff [a b]
  set a position a colors
  set b position b colors
  report item b (item a payments)
end

to-report u [action]
  let result 0
  foreach colors [
      let theta count turtles with [color = ?] / count turtles
      set result result + (theta * payoff action ? )
      ]
  report result
end

to go
  tick
  let current-population-count map [count turtles with [color = ?] ] colors      
  let new-population-count (map [?1 * (1 + u ?2)] current-population-count colors) 
  set new-population-count map [num-turtles * ? / sum new-population-count] new-population-count        
  ask turtles [die]
  (foreach new-population-count colors [
     create-turtles ?1 [
       set color ?2
       setxy random-pxcor random-pycor
     ]  
 ])
end

0 个答案:

没有答案