龟每进入10次滴答后,网络扩展邻域影响误差除以零

时间:2019-01-18 12:00:42

标签: netlogo divide-by-zero

我有一个模型,该模型具有连接一种代理的优先连接网络。他们应该根据自己拥有的一种财产[信任?]和邻居来相互影响。因此,如果有更多的邻居[信任? = true],他们也应该采用此属性。影响代码是这样设置的,并且可以在常规设置下工作:

to influence

  ; defines sexworkers-trust as the link to trusting sexworkers     
  let sexworkers-trust link-neighbors with [ trust? = true ]

  ; defines total-neighbors as the total link to neighbors    
  let total-neighbors link-neighbors

  ; if mistrusting sex workers are surrounded by more trusting neighbors, they are influenced and start trusting  

  if not trust? and random-float 1.0 <   (neighbors-influence * (count sexworkers-trust / count total-neighbors ) ) [
    set trust? true
    set color green   ]

end

此刻,我还有一个附加选项,即(如果设置为“ on”),每隔10个滴答声就会有一定数量的性工作者进入世界。它们也被添加到网络中。现在,以某种方式一旦打开该输入选项,仿真就会在一段时间后停止,并显示错误消息“被零除”。 下面是我的输入代码,也许那里有错误?

to enter

  ; creates 5 sex workers, randomly trusting/mistrusting  

  create-sexworkers 5 [

    setxy random-xcor random-ycor
    set trust? one-of [ true false ]
    if trust? = TRUE [ set color green ]
    if trust? = FALSE [ set color red ]
    set birth-tick ticks   ]

  ; asks trusting sex workers to create a link to one of the other trusting sex workers
  ask sexworkers with [ trust? = true ]
  [ create-link-with one-of other sexworkers with [ trust? = true ] ]

end

也通常信任吗? = true应该由变为绿色的性工作者表示,但输入代码也无法正确执行此操作,因为它们的属性似乎没有相应的颜色。 我可能不得不将其分为两个问题,但是我认为这与输入过程有关,然后又使影响过程崩溃。

非常感谢您!

1 个答案:

答案 0 :(得分:1)

您有一些订购问题。如果节点不包含任何link-neighbors,则链接集的总邻居将为空,并且您对可信比例的计算将产生除以零的误差。

这里没有足够的代码来给您完整的答案。但是我认为您只有信任的性工作者才能创建与其他信任的性工作者的链接,因此不信任的人没有链接,因此也没有链接邻居。