海龟每 10 个刻度进入一次后,网络扩展邻域影响误差除以零

Network extension neighborhood influence error division by zero after turtles enter every 10 ticks

我有一个模型,该模型具有连接一种代理的优先依恋网络。他们应该基于他们拥有的 属性 [信任?] 和他们的邻居来相互影响。因此,如果更多的邻居[信任? = 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 ticks 就会有一定数量的性工作者进入这个世界。它们也被添加到网络中。现在,一旦启用此输入选项,模拟会在一段时间后停止并显示错误消息 "division by zero"。 下面是我的输入代码,可能那里有错误?

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 应该由性工作者变绿来指示,但不知何故输入代码也没有正确执行,它们似乎没有与其属性对应的颜色。 我可能不得不将其分为两个问题,但我认为这与进入过程有关,而进入过程又会导致影响过程崩溃。

非常感谢!

您有一些订购问题。如果一个节点没有任何 link-neighbors,那么 linkset total-neighbors 将是空的,你计算的可信比例将产生被零除的错误。

这里没有足够的代码来给你一个完整的答案。但我认为你只有信任的性工作者为其他信任的性工作者创造 links,所以不信任的性工作者没有 links,因此没有 link-邻居。