Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Netlogo 网络扩散模型中三节点间条件流的编码_Netlogo - Fatal编程技术网

Netlogo 网络扩散模型中三节点间条件流的编码

Netlogo 网络扩散模型中三节点间条件流的编码,netlogo,Netlogo,我想在netlogo中的节点之间创建条件流。使用扩散模型中的代码,我试图设置,如果海龟1的值大于x(例如1),海龟1的电流将停止流入海龟2。非常感谢您的帮助 这是我目前拥有的代码 `directed-link-breed [active-links active-link] undirected-link-breed [inactive-links inactive-link] turtles-own [ val new-val ] ; a node's past and current qu

我想在netlogo中的节点之间创建条件流。使用扩散模型中的代码,我试图设置,如果海龟1的值大于x(例如1),海龟1的电流将停止流入海龟2。非常感谢您的帮助

这是我目前拥有的代码

`directed-link-breed [active-links active-link]
undirected-link-breed [inactive-links inactive-link]

turtles-own [ val new-val ] ; a node's past and current quantity, represented as size
links-own [ current-flow ]  ; the amount of quantity that has passed through a link
                            ; in a given step

globals [
  total-val                 ; total quantity in the system
  max-val                   ; maximum quantity held by a single node in the system
  max-flow                  ; maximum quantity that has passed through a link in the system
  mean-flow                 ; average quantity that is passing through an arbitrary
                            ; link in the system
]

;;;;;;;;;;;;;;;;;;;;;;;;
;;; Setup Procedures ;;;
;;;;;;;;;;;;;;;;;;;;;;;;

to setup
  clear-all
   set-default-shape turtles "circle"

  create-turtles 3 [set color blue]

  ask turtle 0 [setxy -11 16]
  ask turtle 1 [setxy -12 8]
  ask turtle 2 [setxy -9 12]


 ask turtle 0 [
    set val 1
    create-active-link-to turtle 2
    [set current-flow 1]
  ]



  ask turtle 1 [
    set val 1
    create-active-link-to turtle 2
  [set current-flow 1]
]

 ask turtle 2 [
    set val 1
    create-active-link-to turtle 0
  [set current-flow 1]
]

 ask turtle 2[
    set val 1
    create-active-link-to turtle 1
  [set current-flow 1]
]

  update-globals
  update-visuals
  reset-ticks
end

;;;;;;;;;;;;;;;;;;;;;;;
;;; Main Procedure  ;;;
;;;;;;;;;;;;;;;;;;;;;;;

to go
  ask turtles [ set new-val 0 ]
  ask turtles [
    let recipients out-active-link-neighbors
    ifelse any? recipients [
      let val-to-keep val * (1 - diffusion-rate / 100)
      ; we keep some amount of our value from one turn to the next
      set new-val new-val + val-to-keep
      ; What we don't keep for ourselves, we divide evenly among our out-link-neighbors.
      let val-increment ((val - val-to-keep) / count recipients)
      ask recipients [
        set new-val new-val + val-increment
        ask in-active-link-from myself [ set current-flow val-increment ]
      ]
    ] [
      set new-val new-val + val
    ]
  ]
  ask turtles [ set val new-val ]

  update-globals
  update-visuals
  tick
end



;;;;;;;;;;;;;;;;;;;;;;;
;;;     Updates     ;;;
;;;;;;;;;;;;;;;;;;;;;;;

to update-globals
  set total-val sum [ val ] of turtles
  set max-val max [ val ] of turtles
  if any? active-links [
    set max-flow max [current-flow] of active-links
    set mean-flow mean [current-flow] of active-links
  ]
end

to update-visuals
  ask turtles [ update-node-appearance ]
  ask active-links [ update-link-appearance ]
end

to update-node-appearance ; node procedure
  ; scale the size to be between 0.1 and 5.0
  set size 0.1 + 5 * sqrt (val / total-val)
end

to update-link-appearance ; link procedure
  ; scale color to be brighter when more value is flowing through it
  set color scale-color gray (current-flow / (2 * mean-flow + 0.00001)) -0.4 1
end
`

你是特别指那些海龟数字(因此2在某种程度上负责1和3之间的流动)还是你在问一个关于
if
语句的更一般的问题?此外,没有海龟3,它们的编号为0、1和2。谢谢你的回复。事实上,海龟是01和2。在这个例子中,我想设置它,如果turtle 1的值进入turtle 2,那么从turtle 0到turtle 2的流停止。我尝试了一个“隐藏链接”函数来模拟这一点,但我的if语句似乎不正确。
hide-turtle
只是使链接不可见。如果将来不需要流,可以执行类似于
If。。。。询问链接海龟0海龟1[死亡]
。你真的需要向我们展示相关的代码,而不是没有代码的模型。例如,您说您尝试了隐藏海龟,但在上面的代码中我看不到。您好,您提出的if语句使问题得到解决,我解决了问题。我是netlogo的新手,因此,语法仍然具有挑战性。下面是包含if语句的代码行<代码>询问海龟2[if total val>1[询问海龟0的链接[die]]]感谢您的帮助您是指那些海龟编号(因此2在某种程度上负责1和3之间的流动)还是您询问的是关于
if
语句的更一般的问题?此外,没有海龟3,它们的编号为0、1和2。谢谢你的回复。事实上,海龟是01和2。在这个例子中,我想设置它,如果turtle 1的值进入turtle 2,那么从turtle 0到turtle 2的流停止。我尝试了一个“隐藏链接”函数来模拟这一点,但我的if语句似乎不正确。
hide-turtle
只是使链接不可见。如果将来不需要流,可以执行类似于
If。。。。询问链接海龟0海龟1[死亡]
。你真的需要向我们展示相关的代码,而不是没有代码的模型。例如,您说您尝试了隐藏海龟,但在上面的代码中我看不到。您好,您提出的if语句使问题得到解决,我解决了问题。我是netlogo的新手,因此,语法仍然具有挑战性。下面是包含if语句的代码行<代码>询问海龟2[如果总价值>1[询问海龟0的链接[死亡]]]感谢您的帮助