NetLogo要求海龟根据安装期间创建的海龟总数孵化

NetLogo要求海龟根据安装期间创建的海龟总数孵化,netlogo,Netlogo,我已经建立了一个NetLogo模型,根据补丁的“prey abund”值为每个补丁创建猎物动物。具体而言,创建的猎物数量基于泊松过程,平均“猎物数量”。prey abund来自我使用GIS扩展名导入NetLogo的ASCII文件。现在我想告诉单个猎物,当猎物的总数低于设置时的总数(或初始总数的某个比例)时,它们要繁殖。我可以告诉猎物在低于某个数字时繁殖(即,numLargePrey0][sprout捕食随机泊松(prey abund)的补丁 [随机设置年龄6120 1号套餐 设置颜色为黄色 定形

我已经建立了一个NetLogo模型,根据补丁的“prey abund”值为每个补丁创建猎物动物。具体而言,创建的猎物数量基于泊松过程,平均“猎物数量”。prey abund来自我使用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
设置
ca
清除所有情节
净输出
透明海龟
清晰的绘图
在数据集gis上设置猎物:加载数据集“data\u gis/prey\u total.asc”
询问[prey abund>0][sprout捕食随机泊松(prey abund)的补丁
[随机设置年龄6120
1号套餐
设置颜色为黄色
定形“奶牛”
将状态设置为“活动”
设置numLargePrey(numLargePrey+1)]]
重置滴答声
结束
外带
打上钩
复制副本
结束
复制
询问猎物[ifelse numLargePrey<(18900)
[如果饥饿猎物<60[如果(年龄=1080)或(年龄=1850)或(年龄=2555);或(年龄=3285)或(年龄=4015)
[让littersizeLarge随机增长Talarge
重复littersizeLarge[舱口1[设置年龄0
设置numLargePrey(numLargePrey+1)]]]
][停止]]
结束

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

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

globals [ initial-number-of-preys ]
然后,在
设置过程的末尾,放入:

set initial-number-of-preys count preys
然后你可以根据这个变量检查当前的猎物数量,比如:

if count preys < initial-number-of-preys
如果计数猎物<猎物的初始数量

(或类似的东西)

太简单了!谢谢