#netlogo
#netlogo
Вопрос:
я пытаюсь создать модель с двумя наборами агентов. розничный торговец и клиентский набор. агенты по работе с клиентами должны получить доступ к цене ближайшего участника розничного набора и сравнить его цену со своей собственной предпочтительной ценой и совершить покупку, если предлагаемая розничным продавцом цена ниже предпочтительной цены. я попытался определить переменную price-здесь для клиентов, чтобы я мог передать значение 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
Ответ №1:
Это не тестировалось, поэтому может содержать синтаксические ошибки. Я думаю, вы хотите проверить цену только у ближайшего продавца, а затем купить, если цена достаточно низкая. Вам не нужно создавать ссылку только для получения информации, вам просто нужно указать агента с нужной информацией и использовать ее 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) Определите ближайшего продавца и присвоите этой черепахе переменную с именем «ближайший». (2) Узнайте цену у этого продавца. (3) Проведите сравнение, а затем примите меры.
Вы можете сделать это в одной строке. Это выглядело бы как:
to go
ask customers
[ if closest-price <= [price] of min-one-of retailers [ distance myself ]
[ ...