Netlogo 网络优先依恋

Netlogo 网络优先依恋,netlogo,Netlogo,我正在尝试使用NetLogo为它们创建一些节点和一些函数。我的代码中的节点具有接受率。该标准表明,节点在给出链接后,会降低其链接接受率。模型中的每个新节点(最后一个海龟)都会检查旧节点和前5个节点的接受率,检查它们的程度(计算我的链接数),然后链接到它 我对此过程有一个问题:节点无法检查前5个节点的级别。代码如下: to make-edge if connection-strategy = "progressive" [ ask turtles [ if sum [count my-links]

我正在尝试使用NetLogo为它们创建一些节点和一些函数。我的代码中的节点具有接受率。该标准表明,节点在给出链接后,会降低其链接接受率。模型中的每个新节点(最后一个海龟)都会检查旧节点和前5个节点的接受率,检查它们的程度(计算我的链接数),然后链接到它

我对此过程有一个问题:节点无法检查前5个节点的级别。代码如下:

to make-edge
if connection-strategy = "progressive" [
ask turtles [
if sum [count my-links] of turtles >= 1  [ set acceptance-rate 1 ]
if count my-links >= 10 [ set acceptance-rate 0.8]
if count my-links >= 20 [ set acceptance-rate 0.6]
if count my-links >= 30 [ set acceptance-rate 0.4]
if count my-links >= 40 [ set acceptance-rate 0.2] ]

ask last-turtle [
let top-5 sort-on [ count my-in-links ] max-n-of 5 turtles [ count my-in-links ]
show-results top-5 "Top five turtles using max-n-of:"
let sorted-turtles sort-on [ count my-in-links ] turtles
set top-5 n-of 5 sorted-turtles 
if (random-float 1 < acceptance-rate) and (random-float 1 <= prob-of-linkage)  [
create-link-from top-5  [  set color green ]
move-to top-5
fd 1] ] ]

 if connection-strategy = "indifferent" [    
 ask last-turtle [
 let candidate one-of turtles with [ count my-links > 0 ]
 if  (random-float 1 <= prob-of-linkage)  [
 set candidate one-of turtles with [ (count my-links) > 0]
 create-link-from candidate [  set color green ]
 move-to candidate
 fd 1
 ]]]

 end
 to show-results [ turtle-list title ]
 print title
 foreach turtle-list [ t -> ask t [ show count my-in-links ] ]
 end
制作边缘
如果连接策略=“渐进式”[
问海龟[
如果海龟总数[计算我的链接数]大于等于1[设置接受率1]
如果计数我的链接>=10[设置接受率0.8]
如果计数我的链接>=20[设置接受率0.6]
如果计数我的链接>=30[设置接受率0.4]
如果计数我的链接>=40[设置接受率0.2]]
问最后一只乌龟[
让前5名按[count my in links]排序,最多5只海龟[count my in links]
显示结果top-5“使用max-n-of的前五名海龟:”
让已排序的海龟根据[计算我的链接]海龟进行排序
设置5只分类海龟中的前5只
if(随机浮动1<接受率)和(随机浮动10]
if(随机浮点1 0)
从候选对象创建链接[设置绿色]
转到候选人
fd 1
]]]
结束
显示结果的步骤[海龟列表标题]
印刷品标题
foreach海龟列表[t->ask t[show count my in links]]
结束

谢谢

我正在猜测你所说的“节点无法检查前5名的级别”是什么意思。我想你的意思是,正在识别正确的节点(级别最高的节点),但接受率没有达到你预期的效果

这是一个更清晰的代码版本,删除了不相关的
连接策略=“冷漠”
代码块,并缩进显示了代码块结构

to make-edge
  if connection-strategy = "progressive"
  [ ask turtles
    [ if sum [count my-links] of turtles >= 1  [ set acceptance-rate 1 ]
      if count my-links >= 10 [ set acceptance-rate 0.8]
      if count my-links >= 20 [ set acceptance-rate 0.6]
      if count my-links >= 30 [ set acceptance-rate 0.4]
      if count my-links >= 40 [ set acceptance-rate 0.2]
    ]

    ask last-turtle
    [ let top-5 sort-on [ count my-in-links ] max-n-of 5 turtles [ count my-in-links ]
      show-results top-5 "Top five turtles using max-n-of:"
      let sorted-turtles sort-on [ count my-in-links ] turtles
      set top-5 n-of 5 sorted-turtles
      if (random-float 1 < acceptance-rate) and (random-float 1 <= prob-of-linkage)
      [ create-link-from top-5 [ set color green ]
        move-to top-5
        fd 1
      ]
    ]
  ]

end

to show-results [ turtle-list title ]
  print title
  foreach turtle-list [ t -> ask t [ show count my-in-links ] ]
end
制作边缘
如果连接策略=“渐进式”
[问海龟
[如果海龟总数[计算我的链接数]大于等于1[设置接受率1]
如果计数我的链接>=10[设置接受率0.8]
如果计数我的链接>=20[设置接受率0.6]
如果计数我的链接>=30[设置接受率0.4]
如果计数我的链接>=40[设置接受率0.2]
]
问最后一只乌龟
[让前5名排序[计算我的链接数]最多5只海龟[计算我的链接数]
显示结果top-5“使用max-n-of的前五名海龟:”
让已排序的海龟根据[计算我的链接]海龟进行排序
设置5只分类海龟中的前5只
if(随机浮动1<接受率)和(随机浮动1询问t[显示链接中的计数])
结束
你还没有告诉我们最后一只乌龟是什么。但是,看看这段代码,我怀疑你的问题在于:

  if (random-float 1 < acceptance-rate) and (random-float 1 <= prob-of-linkage)
  [ create-link-from top-5 [ set color green ]
if(随机浮动1<接受率)和(随机浮动1