«фиксированный» режим связи netlogo не поддерживает длину ссылки в графах со средним уровнем - PullRequest
0 голосов
/ 21 февраля 2019

Я пытаюсь создать сеть, которая движется в окружающей среде как «статическая» единица, т.е. ничего в симуляции не меняется, кроме положения и ориентации целого, положения и ориентации отдельных черепах относительно друг друга.фиксируется по их ссылкам.Черепахи связаны через ненаправленные ссылки, которые связаны и установлены в режим связи «исправлено».

Проблема в том, что в определенных ситуациях ссылки не могут оставаться фиксированными, и длина ссылок начинает меняться.Первоначально я заметил, что, когда средняя степень сети относительно низкая или сеть представляет собой полный граф, примитив связи работает.Однако, когда ссылки были созданы для создания графика, который умеренно связан, длина ссылок между черепахами начинает меняться.После дальнейших экспериментов я могу создать сеть с тем же количеством ссылок и черепах, но с разными конфигурациями, то есть структура сети различна, которая иногда поддерживает позиции и длины линий, но в других ситуациях это не удается сделать.

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

это создает сеть, которая перемещается как единое целое.

to setup
create-turtles 10
ask turtles [fd 2]

ask turtles [create-links-with other turtles [tie] ]

ask links [set tie-mode "fixed"]
reset-ticks 

create-turtles 10
ask turtles [fd 2]
ask turtles [create-links-with other turtles [tie] ]
ask links [set tie-mode "fixed"]
reset-ticks 
end

to go
ask turtles [lt 1 fd 1]
end

Это создает сеть, чьи ссылки все еще связаны и установлены в "фиксированный" режим связи, но меняются их ссылки.длины.Чем больше ссылок умирает, тем больше изменяется длина ссылки.

to setup
clear-all
create-turtles 10
ask turtles [fd 2]
ask turtles [create-links-with other turtles [tie] ]
ask links [set tie-mode "fixed"]
ask one-of links [die]
reset-ticks 
end

to go
ask turtles [lt 1 fd 1]
end

Вот дополнительный код, показывающий конкретный случай изменения длины ссылки.Пожалуйста, введите seed 659269695 при появлении запроса на кнопку «use-seed-from-user».Извиняюсь, если код неуклюжий, впервые используя random-seed.Кнопка «Длина печати» служит для подтверждения изменения длины.

;USE seed: 659269695

to use-new-seed
let my-seed new-seed            ;; generate a new seed
output-print word "Generated seed: " my-seed  ;; print it out
random-seed my-seed             ;; use the new seed
reset-ticks
end

;; Use a seed entered by the user
to use-seed-from-user
loop [
let my-seed user-input "Enter a random seed (an integer):"
carefully [ set my-seed read-from-string my-seed ] [ ]
ifelse is-number? my-seed and round my-seed = my-seed [
  random-seed my-seed ;; use the new seed
  output-print word "User-entered seed: " my-seed  ;; print it out
  reset-ticks
  stop
] [
  user-message "Please enter an integer."
]
]

end

to setup
clear-all
create-turtles 6 
ask turtles [
fd 5
set shape "circle"
set size 1
set color yellow
if count links < 7 [ask one-of turtles [create-link-with one-of other turtles 
[tie]]]]
reset-ticks
end

to go
ask turtles [lt 1 fd 1]
end

to print-lengths
print sort-by < [precision link-length 2] of links 
end

1 Ответ

0 голосов
/ 22 февраля 2019

Я немного пересмотрел ваш код, чтобы процедура go включала взлом ссылки.Я также избавился от явной настройки tie-mode, поскольку это делается путем установки ссылки на tie и добавления tick, чтобы я мог строить графики.Итак, код выглядит следующим образом:

to setup
  clear-all
  create-turtles 10 [fd 2]
  ask turtles [create-links-with other turtles [tie] ]
  reset-ticks 
end

to go
  ask one-of links [die]
  ask turtles [lt 1 fd 1]
  tick
end

Насколько я вижу, черепахи движутся как единое целое, пока не фрагментируются с потерей ссылок.

Я добавил монитор для mean [link-length] of links, о чем я думаю, вы спрашиваете, а также сюжет того же расчета.Да, это правда, что средняя длина ссылки изменяется, но помните, что ссылки не все одинаковой длины.Если умирает более длинная, средняя длина уменьшается, а если умирает более короткая, средняя увеличивается.Сюжет немного бродит, но в основном он плоский до фрагментации.

...