netlogo领带模式“固定”无法在中等级别的图中维持链接长度

时间:2019-02-21 18:47:20

标签: netlogo fixed tie

我正在尝试创建一个作为“静态”单元在环境中移动的网络,即模拟中的所有内容都不会改变,除了整体的位置和方向,各个海龟相对于彼此的位置和方向是由他们的链接固定。乌龟通过非定向链接进行连接,这些链接被绑定并设置为“固定”绑定模式。

问题是,在某些情况下,链接无法保持固定,并且链接长度开始改变。最初,我注意到,在平均网络度相对较低或网络是完整图形的情况下,tie原语起作用。但是,当创建链接以生成适度连接的图形时,乌龟之间的链接长度开始改变。经过进一步的实验,我可以创建一个具有相同数量的链接和乌龟但配置不同的网络,即网络结构不同,有时可以保持位置和链接长度,但在其他情况下则无法做到。

无论网络如何连接或网络的配置如何,如何使网络作为一个整体移动?参见下面的示例代码,我在代码末尾添加了代码,您可以在其中运行包含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

以下是显示链接长度更改的特定实例的其他代码。当“用户使用的种子”按钮提示时,请输入种子659269695。如果代码很笨拙,这是很抱歉的,这是第一次使用随机种子。 “打印长度”按钮用于确认长度是否更改。

;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 :(得分:2)

我稍微修改了您的代码,以便执行过程包括断开链接。我还摆脱了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添加了一个监视器,这是我想您要问的问题,也是同样计算的图表。是的,平均链接长度确实发生了变化,但是请记住,链接的长度并非全部相同。如果一个较长的人死亡,那么平均长度将减少,如果一个较短的人死亡,则平均长度将增加。情节会有所波动,但是直到破碎为止基本上是平坦的。