NetLogo:使用代理拥有



>我有这样的零售网标模型

retails-own [
  volum
  diskon
  ]

我想将 volum 和 diskon 的值分配给两个不同的零售店,到目前为止,我只能像这样用随机数分配它

ask retails
  [
   set diskon random 5
   set volum random 20
  ]

如何为不同的零售分配特定值?以及如何从代理调用卷和磁盘的值。到目前为止,我不能称之为,见下文。谢谢

to create-shortest-path
    let i 0
    let tempar dijkstra (item 0 retailhouse) (item 1 retailhouse)
    let final_route item 0 tempar
    let total_distance item 1 tempar
    set buat total_distance
    if buat < 20
    [ 
      ask retails
      [ if diskon < 5   
        [set volum volum * (1 + diskon / 100) ] ;;THIS PART, how can I call volum value from a specific agent
      ]
    ]
end

如果只有少量这些值,则可以手动分配一个值。例如ask turtle 0 [ set diskon 25 ] .如果有许多值,则应考虑使用文件导入函数(有关示例,请查看模型库的代码部分)。

同样,您可以通过使用 ... [ diskon ] of turtle 0 来调用特定代理的值。

请注意,这依赖于who数字,这通常是一件非常糟糕的事情,因为它们是按照创建 turtles(代理)的顺序自动分配的,因此如果您稍后在代码前面创建更多代理,代码将中断。如果您只有几个代理并且永远不会改变,这没关系,但您可能希望添加另一个变量来标记不同的代理。

最新更新