我正在尝试使用参数expansion rate
创建“Hierarchical”或“Tree”网络结构。首先,一个节点位于顶部,网络中的每个节点都连接到他下面的多个节点,等于expansion rate
。目前我的代码如下所示:
to wire-tree
clear-all
ask patches [ set pcolor white ]
create-nodes 1 [ ; create root node of tree
set shape "circle"
set color red
set branch 0
expand-network
rewire-branches
]
radial-layout
reset-ticks
end
to expand-network
if expansion-rate = 0 [ stop ]
while [count nodes < num-nodes] [
ask nodes with-max [branch] [
hatch expansion-rate [
create-edge-with myself
set branch branch + 1
]
]
]
end
网络当前具有正确的结构,但网络中的节点数超过了num-nodes
滑块选择的节点数。这是因为首先检查是否count nodes < num-nodes
之后执行最后一个填充。但是,我想要的是,最后一个节点孵化执行直到达到num-nodes
然后停止。因此,虽然最后一个层次结构之前的层次结构中的每个层次包含等于expansion rate
幂的节点数,但如果总体未正确划分,则最后一个层次可能少于此值。
我怎样才能做到这一点?
我需要海龟拥有的branch
变量,因为我后来想要以固定概率重新连接某些分支中的节点。可能稍后会发布一个问题;)
答案 0 :(得分:2)
将hatch expansion-rate
替换为hatch min expansion-rate (num-nodes - count nodes)
,以便创建至少两个数字 - 扩展速度和您仍需要的总数。