NetLogo-如何为代理提供内存

NetLogo-如何为代理提供内存,netlogo,Netlogo,这里我给你我的问题和我的代码 问题: 每个代理i附加到每个位置m(每个m有固定数量的食物,但有些更差,有些更好)一个分数U_im,该分数会随着时间的推移而更新。最初,分数设置为零。每次选择一个玩家访问资源时,他都会随机选择一个位置,否则他会按照迄今为止记录的最高分数顺序依次选择位置。 对于访问的每个职位,如果发现该职位被占用,则分数更新为U_im->U_im-c(成本) 如果它是免费的,你可以点击U_im->U_im+U_mi 如何创建此数组u_mi?(这节省了我到目前为止访问过的最好的资源(=

这里我给你我的问题和我的代码

问题: 每个代理i附加到每个位置m(每个m有固定数量的食物,但有些更差,有些更好)一个分数U_im,该分数会随着时间的推移而更新。最初,分数设置为零。每次选择一个玩家访问资源时,他都会随机选择一个位置,否则他会按照迄今为止记录的最高分数顺序依次选择位置。 对于访问的每个职位,如果发现该职位被占用,则分数更新为U_im->U_im-c(成本) 如果它是免费的,你可以点击U_im->U_im+U_mi

如何创建此数组u_mi?(这节省了我到目前为止访问过的最好的资源(=有更多食物的资源)

编辑//:好的,我做到了


如果有人需要这类代码,请随时与我联系:)

这是一天体验中令人印象深刻的代码

是的,作为一个nomads_自身变量的回报内存列表是我将如何做到的。但你必须同时保留头寸和收益,否则你将无法对它们进行排序。如果内存开始太慢,你可能需要限制内存(例如仅最后5个或最好的5个或类似),因为你基本上是要求每只海龟都保留一份所有补丁的列表

关于“什么都不做”的问题,如果没有任何可用位置,则您的
while
循环可能会被卡住。试着这样做(这可能更好,因为它只需选择一次):


注意:未测试

Ok,我在设置过程中设置了支付内存[]。然后“开始”就行了,但什么也没发生。。特工们仍然被限制在家里
to move-to-empty-one-of [locations]  ;; nomads procedure
  let candidates locations with [not any? nomads-here]
  if any? candidates [ move-to one-of candidates ]
end