2015-06-15 3 views
1

Простой вопрос, но я полностью не в состоянии.Проблема с использованием-min

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

ask turtles [create-links-with one-of other turtles with-min [distance myself]] 

Может кто-то пожалуйста, мне точку в правильном направлении.

С уважением

Simon

ответ

1

Есть две проблемы.

Первый заключается в том, что create-links-with ошибочен, потому что one-of возвращает агент, а не агент. Вам нужно create-link-with.

Но главная проблема заключается в этой части:

other turtles with-min [...] 

NetLogo понимает это как other (turtles with-min [...]). Это сообщает пустой агент, потому что сама черепаха выигрывает конкурс with-min, потому что его расстояние равно нулю, тогда other устраняет эту черепаху, оставляя пустой агент.

Вместо этого вы должны написать:

(other turtles) with-min [...] 

Так с обоих исправлениях вместе, мы получаем:

ask turtles [ 
    create-link-with one-of (other turtles) with-min [distance myself] 
] 

Если вы хотите, это может быть дополнительно сокращен дальше, используя min-one-of вместо with-min, например:

ask turtles [ 
    create-link-with min-one-of other turtles [distance myself] 
] 

Я сделал несколько черепах и попробовал i т в Командном центре NetLogo, и я получил:

preview

+0

Высокий - спасибо Сет –

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