如何防止剂能力‘在的NetLogo跳’的障碍?(How to prevent agents'

2019-10-28 17:00发布

我问在参考这个问题在这里得到解答前一个问题: 有没有一种方法来创建的NetLogo不可逾越的障碍?

用户有益建议的方式来生成的NetLogo禁地补丁(即屏障)。 然而,正如他所说,代理将仍然拥有的能力,偶尔会“跳”过,如果他们从特定的角度探讨了这些障碍。 这是我的模型中的不良行为,因为我建模围栏和运动,所以跳的障碍是不现实的。

我试图改变这样的代码:

ask patches in-radius 1
[if f = 1
[ask myself

  [set heading towards min-one-of patches [distance myself] + 180 - random 10 + random 10 ]

]
]

通过降低“在半径”不到一个,在希望它会防止代理人看到远远不够,跨越障碍运动,但这并不工作。 该“F = 1”只是用来表示补丁围栏补丁变量。

有没有阻止这种行为的任何方法?

这里是行为我想-周围的障碍导航

这里是行为我不想-跳跃障碍,如果从某些角度接近

代理商跟随实际的运动过程如下:

ask turtles[
let moveset patches in-radius 30 with [f = 0 and n > 0]

 pen-down

 let target max-one-of moveset [n]

 ifelse patch-here != target
 [set heading towards target]
 []

 ask patches in-radius 1
 [if f = 1
 [ask myself
  [set heading towards min-one-of patches [distance myself] + 180 - random 10 + random 10]

 fd 1]
文章来源: How to prevent agents' ability to 'jump' barriers in NetLogo?