【问题标题】:NetLogo asking turtles to hatch based on total number of turtles created during setupNetLogo 根据设置期间创建的海龟总数要求海龟孵化
【发布时间】:2014-01-25 00:45:26
【问题描述】:

我已经设置了一个 NetLogo 模型,以根据补丁的“猎物丰富”值为每个补丁创建猎物。具体来说,创建的猎物数量基于平均“猎物丰富”的泊松过程。丰富的猎物来自我使用 GIS 扩展导入到 NetLogo 的 ASCII 文件。现在我想告诉个体猎物在猎物总数低于设置时的总数(或初始总数的某个比例)时进行繁殖。我可以告诉猎物在低于某个数字(即numLargePrey < (18900))时进行繁殖,但我不知道如何根据设置时的总数告诉猎物进行繁殖(每次模型设置时都会略有变化)泊松过程)。我已经复制了到目前为止的内容。任何有关如何解决此障碍的建议将不胜感激。

to setup
ca
clear-all-plots
clear-output
clear-turtles
clear-drawing   
set prey-abund-dataset gis:load-dataset "data_gis/prey_total.asc"
ask patches with [ prey-abund > 0 ] [sprout-preys random-poisson (prey-abund) 
                                   [set age random 6120
                                    set size 1
                                    set color yellow
                                    set shape "cow"
                                    set status "alive"
                                    set numLargePrey (numLargePrey + 1) ]]
reset-ticks
end

to go
tick
reproducePrey
end

to reproducePrey
ask preys [ ifelse numLargePrey < (18900) 
[if hunger-prey < 60 [ if (age = 1080) or  (age = 1850) or  (age = 2555); or (age = 3285) or  (age = 4015) 
[let littersizeLarge random growthRateLarge 
repeat littersizeLarge [hatch 1 [set age 0
                                 set numLargePrey (numLargePrey + 1)]]]]
][stop]]
end

【问题讨论】:

    标签: netlogo


    【解决方案1】:

    如果我理解正确,您只需将设置时的猎物数量存储在全局变量中。

    您可以在程序顶部这样声明它:

    globals [ initial-number-of-preys ]
    

    然后,在您的 setup 过程结束时,输入:

    set initial-number-of-preys count preys
    

    您可以稍后根据此变量检查当前的猎物数量,例如:

    if count preys < initial-number-of-preys
    

    (或类似的东西)

    【讨论】:

    • 就是这么简单!谢谢。
    猜你喜欢
    • 1970-01-01
    • 2016-03-11
    • 2014-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多