首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何通过netlogo中的链接访问另一个代理变量值

如何通过netlogo中的链接访问另一个代理变量值
EN

Stack Overflow用户
提问于 2020-09-04 18:41:09
回答 1查看 55关注 0票数 1

我正在尝试创建一个包含两个智能体集的模型。一个零售商和一个客户集合。客户代理需要获得零售商集合中最接近成员的价格,并将其价格与自己的偏好价格进行比较,如果零售商提供的价格低于偏好价格,则进行购买。我尝试定义变量price -这里是为客户定义的,这样我就可以将最接近的零售商的价格值传递给客户并进行比较。我想知道应该使用什么语法来进行这种传递?我在这里创建了一个简单的模型,这样我就可以掌握这个过程的诀窍。

代码语言:javascript
运行
复制
breed [ retailers retailer]
breed [ customers customer]

directed-link-breed [info-links info-link]
directed-link-breed [purchase-links purchase-link]

retailers-own [
       price
       inventory
]


customers-own [
         price-here
         prefered-price
]


to setup
  
  create-retailers 10 [ setxy random-pxcor random-pycor
                        set color blue
                        set price random 10
                        set inventory 10
  ]

create-customers 20 [ setxy  random-pxcor random-pycor 
                      set color red
                      set prefered-price random 7 ]
end


to go
  
  foreach sort customers [x -> ask x[
    create-info-link-from  min-one-of retailers [ distance myself ]
  ]]
end
EN

回答 1

Stack Overflow用户

发布于 2020-09-04 20:29:03

这未经过测试,因此可能存在语法错误。我想你只需要查看最近的零售商的价格,如果价格足够低就购买。您不需要仅仅为了获取信息而创建链接,只需指定包含所需信息的代理并使用of即可。所以你可以这样做:

代码语言:javascript
运行
复制
to go
  ask customers
  [ let closest min-one-of retailers [ distance myself ]
    let closest-price [price] of closest
    if closest-price <= preferred-price
    [ ...

我将其构建为单独的行,这样您就可以看到发生了什么。(1)识别最近的零售商,并将该海龟赋值给名为“closest”的变量。(2)从零售商那里获取价格。(3)进行比较,然后采取行动。

你可以在一行中完成它。这看起来像是:

代码语言:javascript
运行
复制
to go
  ask customers
  [ if closest-price <= [price] of min-one-of retailers [ distance myself ]
    [ ...
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63739571

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档