PDF格式的记忆效应

memory effect in PDG

我正在尝试用netlogo模拟一个PDG,研究配合下记忆的效果。我希望记忆是一个系数 m<1,它乘以当时的总收益加上累积的历史收益。我想研究记忆在合作模型中的作用,看看世界上有记忆和没有记忆的合作者的频率 提前谢谢你

globals [payoffs]
patches-own [payments]
to setup
clear-all
; green: cooperate, red: defect
ask patches [
set payments []
set pcolor green
ifelse ( random-float 1.0 < cooperative-probability) [
  set pcolor green
] [
   set pcolor red
  ]
;; cooperate: 0, defect 1
set payoffs [[3 0] [4 1]]
]
 reset-ticks
end

to-report get-payment [my-color her-color]
  let my-action ifelse-value (my-color = green) [0] [1]
  let her-action ifelse-value (her-color = green) [0] [1]
  report item her-action (item my-action payoffs)
end

to go
  ask patches [
    play
  ]
  ask patches [
    update
 ]
  tick
end

; returns the first x elements in l, or fewer.
to-report first-x [x l]
  let result []
  if (length l = 0) [report []]
  repeat x [
    set result lput (first l) result
    set l butfirst l
    if (length l = 0) [
      report result
    ]
  ]
 report result
 end

; patches methods
to play
  let chosen-one one-of neighbors
  set payments fput (get-payment pcolor [pcolor] of chosen-one) payments
end

to-report gain
  report sum first-x history-length payments
end

to update
  let chosen-one one-of neighbors
  if ([gain] of chosen-one > gain) [
    set pcolor [pcolor] of chosen-one
  ]
end

我对你的问题的解释是你想有一种方法来计算衰减的累积变量值(收益)。这样做的方法是存储变量的当前值,并在每次更新时用新收益的总和和旧累积收益的贴现值更新该值。这意味着,例如,过去两个报价的收益在累积中已经打了两次折扣。

这里以完整模型为例。我已将收益固定为每个滴答 5,因此您可以看到内存的影响。

globals [ memory ] ; how much to retain each tick
turtles-own [ payoff ]

to setup
  clear-all
  set memory 0.9
  create-turtles 1
  inspect one-of turtles
  reset-ticks
end

to go
  ask turtles
  [ let new-payoff 5
    set payoff new-payoff + memory * payoff
  ]
end

第一次报价后,收益为 5。第二次报价后,收益为 9.5 (=5+0.9*5)。第三次报价后,收益为 13.55(=5+0.9*9.5,也就是 5 + 0.9 * 5 + 0.9 * 0.9 * 5)