2017-02-19 2 views
1

У меня 2 агента, hub и .Netlogo: Выбор агента на основе множества условий

У индивидуумов есть своя переменная под названием значение.

Я хочу написать метод, позволяющий концентратору выбрать человека с наивысшим значением и не установил ссылку на концентратор, чтобы установить связь с ним.

До сих пор я использую max-one-of, что дает мне самое высокое значение значение -d индивидуальный первый раунд, но во втором раунде один и тот же индивидуум по-прежнему выбран, несмотря на то, что ссылка уже установлена ​​со ступицей ,

Я хотел бы спросить всех, как я могу получить личность, которая еще не была связана с центром, с наивысшим значением ?

спасибо!

ответ

1

Вам необходимо отфильтровать лицо с помощью with и link-neighbor?:

breed [ hubs hub ] 
breed [ individuals individual ] 
individuals-own [ value ] 

to setup 
    clear-all 
    create-hubs 1 
    create-individuals 10 [ 
    set value random 100 
    forward 5 
    ] 
    reset-ticks 
end 

to go 
    ask hubs [ 
    let candidates individuals with [ not link-neighbor? myself ] 
    if any? candidates [ 
     create-link-with max-one-of candidates [ value ] 
    ] 
    ] 
    tick 
end 
+0

Спасибо, это работает! Позвольте мне задать еще один вопрос: Каждый из этих ссылок имеет переменную с именем ** strength **, как я могу получить доступ к определенной ссылке на основе идентифицированного мною индивидуума, чтобы увеличить ее силу? спасибо. –

+0

Думаю, вам лучше открыть для этого отдельный вопрос. Вы также должны попытаться ознакомиться со всеми примитивами ссылок (http://ccl.northwestern.edu/netlogo/docs/dictionary.html#linkgroup) в NetLogo. Очень часто работа со ссылками - это просто поиск правильного примитива, чтобы делать то, что вы хотите сделать. –

Смежные вопросы