如何在Netlogo的Predator-Prey模型中杀死/错过后产卵?

时间:2016-06-08 20:40:26

标签: netlogo

我正在Predator-Prey model工作,但我有一个独特的产卵机制,我正在努力工作。

这个想法是,当一只狼遇到绵羊时,绵羊有可能逃跑(我已经将这部分编入其中)。如果绵羊被杀死,则会创建 n 的羊羔数量。如果绵羊逃跑,则会创建 k 的羊羔数量。在 t 期后,羔羊成为猎物。 n,k t 都将是接口端的滑块。

我对基于代理的建模和Netlogo编码很陌生,所以任何建议都会非常感激。

这是狩猎的当前代码:

to catch-sheep  ;; wolf procedure
    let prey one-of sheep-here   
    if prey != nobody and random 100 < kill-probability 
        [ ask prey [ die ]

2 个答案:

答案 0 :(得分:0)

大概是k> n,所以你可以拥有所有成年绵羊hatch n只羔羊,然后是catch-sheep,然后让所有剩下的成年绵羊孵化k-n羔羊。这需要区分羔羊和成年人,因此您可能需要添加age属性。

但是,我怀疑你会想要切换到每个蜱虫孵化羔羊的概率,而不是每个蜱虫孵出的羔羊数量。

答案 1 :(得分:0)

使用您的代码添加一些代码,看看它是否适合您。

当一只羊被杀死时,会创建一个随机数量的新羊,在下面的代码中使用你的幻灯片变量而不是10。

我使用primitive function hatch完成所有工作。

to catch-sheep  ;; wolf procedure
    let prey one-of sheep-here   
    if prey != nobody and random 100 < kill-probability 
        [ ask prey [ die ] 
          ;;Here we create new sheeps upon prey death
          let rd-num random 10 ;; 1 to 10 sheeps will appear
          hatch-sheep rd-num [ set color blue
                              set xcor 9 ;; Initialize your new sheeps ]
        ]          

如果您有任何问题,请告诉我们!快乐的编码。