Связи NetLogo
Материал из Letopisi.Ru — «Время вернуться домой»
(Различия между версиями)
(→Команды связям) |
|||
Строка 39: | Строка 39: | ||
*** ask turtle 0 [ create-link-to turtle 1 ] ask turtle 1 [ show in-link-from turtle 0 ] | *** ask turtle 0 [ create-link-to turtle 1 ] ask turtle 1 [ show in-link-from turtle 0 ] | ||
*is-directed-link? если связь направленная, возвращает true (иначе возвращает false) | *is-directed-link? если связь направленная, возвращает true (иначе возвращает false) | ||
− | *is-link? | + | *is-link? если это связь, возвращает true |
*is-link-set? | *is-link-set? | ||
*is-undirected-link? | *is-undirected-link? | ||
− | |||
− | |||
*<breed>-neighbor? | *<breed>-neighbor? | ||
*<breed>-neighbors | *<breed>-neighbors | ||
Строка 53: | Строка 51: | ||
*link-neighbor? | *link-neighbor? | ||
*link | *link | ||
− | *links | + | *links обращение ко всем связям |
+ | ** ask links [ask both-ends [ask neighbors [set pcolor 5] ] ] | ||
+ | ** ask links with [link-length > 3 ] [ask both-ends [ask neighbors [set pcolor 15] ] ] | ||
*links-own | *links-own | ||
*<link-breeds>-own | *<link-breeds>-own |
Версия 12:41, 23 марта 2009
Связи в NetLogo такие же агенты как черепахи NetLogo и пятна NetLogo. Связь всегда связывает двух черепах (два узла). Если одна из черепах погибает, то погибает и связь. Связи бывают направленными и ненаправленными.
Ненаправленные связи создаются командами к черепахам - create-link-with или create-links-with. Например,
- ask turtle 0 [create-link-with turtle 1] - команда черепахе 0 создать связь с черепахой 1
- ask turtle 0 [create-links-with other turtles] команда черепахе 0 создать связи со всеми другими черепахами
- ask turtles [create-links-with other turtles] команда всем черепахам создать связи со всеми другими черепахами
Направленные связи:
- create-links-from или create-link-from направленная связь других агентов к данному агенту
- Например, ask turtle 0 [create-link-from other turtles]
- create-link-to или create-links-to направленная связь от данного агента к другому или другим
- ask turtle 0 [create-link-to other turtles]
Породы черепах NetLogo связываются такими же командами как и черепахи: create-<breed>-from, create-<breeds>-from, create-<breed>-to, create-<breeds>-to, create-<breed>-with, create-<breeds>-with
Специально для того, чтобы улучшить видимость сети из узлов и связей в NetLogo появились процедуры layout:
- layout-circle turtles radius - все черепашки выстраиваются по кругу заданного радиуса:
- layout-circle turtles with [color = red] 5 - все красные черепашки в круг с радиусом 5
- layout-radial
- layout-radial turtles links (turtle 0) - черепашки выстраиваются относительно корневого агента - если есть родительская черепаха
- layout-tutte turtle-set link-set radius
- layout-tutte (turtles with [count link-neighbors = 1]) links 12
Команды связям
- clear-links - уничтожить все связи
- both-ends
- ask link 0 1 [print both-ends]
- die - умереть
- hide-link - спрятать связь
- in-<breed>-neighbor?
- in-<breed>-neighbors
- in-<breed>-from
- in-link-neighbor?
- in-link-neighbors
- in-link-from
- Возвращает связь, которая связывает агента с данной черепахой. Например,
- ask turtle 0 [ create-link-to turtle 1 ] ask turtle 1 [ show in-link-from turtle 0 ]
- Возвращает связь, которая связывает агента с данной черепахой. Например,
- is-directed-link? если связь направленная, возвращает true (иначе возвращает false)
- is-link? если это связь, возвращает true
- is-link-set?
- is-undirected-link?
- <breed>-neighbor?
- <breed>-neighbors
- <breed>-with
- link-heading - направление связи
- ask link 0 1 [ print link-heading ]
- link-length
- ask link 2 1 [ print link-length ]
- link-neighbor?
- link
- links обращение ко всем связям
- ask links [ask both-ends [ask neighbors [set pcolor 5] ] ]
- ask links with [link-length > 3 ] [ask both-ends [ask neighbors [set pcolor 15] ] ]
- links-own
- <link-breeds>-own
- link-neighbors
- link-with
- my-<breeds>
- my-in-<breeds>
- my-in-links Возвращает все направленные ко мне связи
- Например, я хочу всех черепах, которые связаны с данной направленными к ней связями что-то сделать
- ask my-in-links [ask other-end [be_free]
- Например, я хочу всех черепах, которые связаны с данной направленными к ней связями что-то сделать
- my-links Возвращает все связи данного агента
- Например, ask my-link [die] - а что еще можно сказать связям?
- my-out-<breeds>
- my-out-links мои направленные исходящие связи
- no-links
- other-end команда от черепашки к связи или связям. Связь передает другому узлу команду к исполнение
- ask my-in-links [ask other-end [die]] или ask my-in-links [ask other-end [hatch]]
- out-<breed>-neighbor?