我正在尝试创建一个包含两个智能体集的模型。一个零售商和一个客户集合。客户代理需要获得零售商集合中最接近成员的价格,并将其价格与自己的偏好价格进行比较,如果零售商提供的价格低于偏好价格,则进行购买。我尝试定义变量price -这里是为客户定义的,这样我就可以将最接近的零售商的价格值传递给客户并进行比较。我想知道应该使用什么语法来进行这种传递?我在这里创建了一个简单的模型,这样我就可以掌握这个过程的诀窍。
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
发布于 2020-09-04 20:29:03
这未经过测试,因此可能存在语法错误。我想你只需要查看最近的零售商的价格,如果价格足够低就购买。您不需要仅仅为了获取信息而创建链接,只需指定包含所需信息的代理并使用of
即可。所以你可以这样做:
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)进行比较,然后采取行动。
你可以在一行中完成它。这看起来像是:
to go
ask customers
[ if closest-price <= [price] of min-one-of retailers [ distance myself ]
[ ...
https://stackoverflow.com/questions/63739571
复制相似问题