我已经成功地创建了一组节点并将它们链接起来。然而,在大多数情况下,生成的节点并不相互之间形成连续的链接。我的意思是,例如,如果生成了8个节点(N1、N2、N3、N4、N5、N6、N7、N8)。连接可能是N1-N3-N5,以及另一组N2-N4-N6-N8-N7。我希望两个集合都有某种类型的连接,即N5-N7。因此,如果我运行一个nw扩展函数,比如nw: N8 -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]发布于 2019-07-09 15:46:48
你的基本问题是你没有足够的优势。您有N条边和N个节点(因为要求每个节点添加一条边)。您需要N-1个边来创建链,因此您只有一个备用边来创建额外的连接。
一旦有了足够的边,就可以进行某种重新连接,检查是否有多个组件(nw:weak-component-clusters),如果有,则在一个集群中的随机选择节点和另一个集群中的随机选择节点之间创建一条边(如果希望保持相同的边总数,则删除随机边)。继续这样做(while),直到你只有一个组件。
https://stackoverflow.com/questions/56946850
复制相似问题