首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >netlogo绑定模式"fixed“无法在中等程度的图中保持链接长度

netlogo绑定模式"fixed“无法在中等程度的图中保持链接长度
EN

Stack Overflow用户
提问于 2019-02-22 02:47:20
回答 1查看 110关注 0票数 2

我正在尝试创建一个网络,它作为一个“静态”单元在环境中移动,即除了整体的位置和方向外,模拟中没有任何变化,单个海龟相对于其他海龟的位置和方向是由它们的链接固定的。海龟是通过无向链接连接在一起的,这些链接被捆绑在一起,并设置为“固定”模式。

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

如何让网络作为一个整体移动,无论网络是如何连接的,或者网络的配置是什么?参见下面的示例代码,我在最后添加了代码,您可以运行具有6个海龟和6个链接的网络的多个配置。要亲自查看问题,请尝试至少运行半打迭代。谢谢!

这产生了一个作为一个整体移动的网络。

代码语言:javascript
复制
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

这会产生一个网络,它的链路仍然是连接的,并被设置为“固定”的连接模式,但改变了它们的链路长度。被要求消亡的链接越多,链接长度变化就越大。

代码语言:javascript
复制
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

下面是显示链接长度更改的特定实例的附加代码。请在"use- seed -from-user“按钮提示时输入种子659269695。抱歉,如果代码笨重,第一次使用随机种子。"Print- lengths“按钮用于确认长度更改。

代码语言:javascript
复制
;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
EN

回答 1

Stack Overflow用户

发布于 2019-02-22 21:32:15

我稍微修改了您的代码,以便go过程包括断开链接。我还去掉了tie-mode的显式设置,因为这是通过将链接设置为tie并添加一个tick来完成的,这样我就可以绘图了。所以代码看起来像这样:

代码语言:javascript
复制
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添加了一个监视器,我想这就是您所问的,也是一个相同计算的图。是的,平均链路长度确实会发生变化,但请记住,链路的长度并不完全相同。如果较长的一个死亡,那么平均长度将减少,而如果较短的一个死亡,则平均长度将增加。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54814174

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档