繁体   English   中英

Netlogo-每个补丁有多个乌龟

[英]Netlogo - more than one turtle per patch

我想在Netlogo中编程单元划分。 我设法对它进行编程,以使单元有可能分裂。 这产生了特定的随机函数,我不会打扰您。

但是,为了使它尽可能真实,我不希望多个单元位于同一补丁上。 我设法通过让一些细胞死亡来进行编程,如果它们在附近找不到空的补丁。 但是这会影响随机功能,因为死亡的细胞多于应该死亡的细胞。

一些帮助将不胜感激。

我的澄清代码:

to mitosis 

ask stemcells [
if random-float (2 * r * lambda) < 2 * r * lambda [
ifelse random-float 1. < probability
[ hatch 1 [

let free-neighbor one-of neighbors with [not any? turtles-here]
ifelse free-neighbor != nobody [
move-to free-neighbor]
[ die] ]
set breed stemcells
] [ die ] ] ]

看来您的问题在开始时就有:

if random-float (2 * r * lambda) < 2 * r * lambda

由于任何数字x的随机浮点数总是要报告0-x的数字。

这将使random-float (x) < x始终是一个真实的语句。

我遵循代码逻辑的方式是,您要根据“概率”询问每个干细胞是否要划分。

填充代码看起来不错,我将其拔出并正确测试:找到邻居补丁或死亡。

但是,如果您的干细胞决定不分裂,那么对我来说就像进入第二个[die]。 这是您的问题所在:“因为死亡的细胞多于应该死亡的细胞”吗?

另外,不需要“设置品种”,因为询问中的舱口将始终创建品种干细胞。


从您最近的评论中添加了此内容:

“如果可能的话,我希望他们移动并为阴影线的单元格让路”……除了您的代码正在对阴影线起作用,因此,实际上,新阴影线的干细胞是在移动,而不是原始的。 如果那很重要。

我测试了整个代码行,而不是仅仅抽出过度拥挤的部分,看看这是否有帮助。 您将需要按钮来设置,进行有丝分裂,并需要一个输出窗口来查看消息。 我在代码中的注释包括原始应答者对if语句的原始发现。


    breed [stemcells stemcell]

    globals [
      r
      lambda
      probability
      ]


    to setup
      clear-all
      set r 0.5544
      set lambda 1.233
      set probability .85
      create-stemcells 1
      end

    to mitosis 
      ask stemcells [
        if random-float (2 * r * lambda) < 2 * r * lambda [   ;; this is superfluous, always true
          ifelse random-float 1. < probability [
         hatch 1 [
          let free-neighbor one-of neighbors with [not any? turtles-here]
          ifelse free-neighbor != nobody [
            move-to free-neighbor
            ]
          [; this die is executed if there is no free space in the neighborhood
            output-show " Dead because of no free space in neighborhood"
            die
            ]
          ]
        ;set breed stemcells        ;; not necessary in an ask of stemcells
        ] 
          [;this die is executed if probablity compares to random-float and the hatch is not done
        output-show " Dead because did not hatch"
        die
        ]
          ] 
        ]
      e

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM