Hyperlink NETLOGO:创建具有精确链接数的网络

Hyperlink NETLOGO:创建具有精确链接数的网络,hyperlink,nodes,netlogo,Hyperlink,Nodes,Netlogo,我需要做的网络时,代理将与链接连接,我希望它使,以便将有确切的数量(变量)的链接从每个代理。例如,让我们假设我想要从每个代理到另一个代理的3个链接。不多也不少。我试图使用以下代码: let num-links (links * number) / 2 while [count links < num-links ] [ ask one-of turtles [ let choice (min-one-of (other turtles with [not link-neigh

我需要做的网络时,代理将与链接连接,我希望它使,以便将有确切的数量(变量)的链接从每个代理。例如,让我们假设我想要从每个代理到另一个代理的3个链接。不多也不少。我试图使用以下代码:

let num-links (links * number) / 2 
  while [count links < num-links ]
  [
ask one-of turtles
[
  let choice (min-one-of (other turtles with [not link-neighbor? myself])
               [distance myself])
  if choice != nobody [ create-link-with choice ]
]
]
let num links(links*number)/2
而[count links
其中“number”是节点的数量,“links”是我希望从每个代理获得的链接的数量——但不幸的是,这段代码工作正常,因此“links”实际上只是节点的平均程度。因此,如果我想要3个链接,我可以得到所有代理(除了示例2),其中3个链接来自它们,但其中一个只有1个链接,另一个只有5个链接(那么平均值是3)。有没有办法做到这一点

有没有办法做到这一点,使每个“链接”实际上是两个定向链接,一个从节点出发,一个到节点

还有最后一个问题。我想给这个链接一个变量,但我需要这样做,每个代理的这些变量之和正好是100(百分比)


有什么帮助吗?非常感谢。

以下是我如何为小型网络创建固定度网络(易于理解)


你试过使用创建链接吗?可能是King ink的副本:我试过了,但问题是它可以链接到已经有固定数量链接的代理。谢谢,我会尝试使用它。你知道如何在链接上获取变量,使一个节点的变量之和始终为100吗?请单独提问-so旨在构建一个问答数据库,以便有相同问题的人可以找到答案。这需要单独的问题和有意义的标题好吧,所以我试过了,但实际上不起作用。有时,所有节点都有相同数量的链接(比如说5个),但有时,有些节点的链接少于5个。我甚至有一个没有任何链接。这怎么可能?是的,sry,我的问题不好。我以前没有读过你答案的最后一句,因为节点是按随机顺序排列的。有时,这意味着最后一个被请求的节点仍然需要边,但只有它自己可以链接。您可以添加一个重新布线过程,这样,如果没有可用的节点,它会断开现有的链接,或者如果出现错误结果的概率很低(取决于节点数和目标度),那么如果发生故障,就从头开始重新创建。哦,我明白了。知道怎么做吗?我真的是一个新手程序员,我不知道,像一个具有固定节点度的网络这样简单的事情会变得如此困难。
to make-legal
  create-turtles 100 [setxy random-xcor random-ycor]
  let target-degree 5
  while [ min [ count my-links ] of turtles < target-degree ]
  [ ask links [die]
    makeNW-Lattice target-degree
  ]
end

to makeNW-Lattice [DD]
  ask turtles
  [ let needed DD - count my-links
    if needed > 0
    [ let candidates other turtles with [ count my-links < DD ]
      create-links-with n-of min (list needed count candidates) candidates
    ]
  ]
end
to setup
  let mins (list 0 0 0 0 0 0)
  repeat 100
  [ ask turtles [die]
    ask links [die]
    makeNW-lattice
    let this-min min [ count my-links ] of turtles
    set mins replace-item this-min mins (item this-min mins + 1)
  ]
  print mins
end