创建具有多个路径和连续链接的节点网络

时间:2019-07-09 06:54:33

标签: netlogo

我设法创建了一组节点并将其链接。但是,大多数情况下,生成的节点不会彼此形成连续的链接。我的意思是,例如,如果生成了8个节点(N1,N2,N3,N4,N5,N6,N7,N8)。 连接可能是N1-N3-N5, 另一组N2-N4-N6-N8-N7。我希望两组都具有某种连接,即N5-N7。因此,如果我要运行一个nw扩展功能,例如nw:turtles-on-path-to,我不会得到一个错误消息,说它可以找到从N3到N8的路径。 理想情况下,我还想将某些节点连接到多个节点,例如N2-N4,N2-N6,N2-N5。 有什么想法怎么做?预先感谢

breed [nodes node]
create-nodes 30[
set color blue
set size 1.5
set shape"circle"
]
ask nodes [create-link-with one-of other nodes]

repeat 500 [layout-spring nodes link 0.2 5 1]
ask nodes [setxy 0.95 * xcor * 0.95 ycor]

1 个答案:

答案 0 :(得分:1)

您的基本问题是您没有足够的边缘。您有N个带有N个节点的边(因为要求每个节点添加一个边)。您只需要N-1条边即可创建一条链,因此只有一个备用条可以创建额外的连接。

一旦边缘足够多,就可以进行某种形式的重新布线,以检查是否存在多个组件(nw:weak-component-clusters),如果存在,可以在一个群集中随机选择的节点之间创建一条边缘以在另一个群集中随机选择的节点(如果要保持相同的边缘总数,请删除随机边缘)。继续这样做(while,直到只有一个组件为止。