即使设置了条件,所有海龟仍在 NetLogo 中交配

问题描述 投票:0回答:1

编辑:我解决了这个问题。问题是我在创建女性时设置了 Adult = true 。

我是 NetLogo 新手,遇到了一些问题,在互联网上找不到答案。

我已经建立了雄性和雌性居住的殖民地。男性的大小恒定为 10,女性的大小由随机正态分布设置。我只希望体型 >= 10 的雌性能够交配。然而,当我运行该模型时,所有雌性(甚至小于 10 号的雌性)都在交配。如果能指出代码中的错误,将不胜感激。下面是我的代码。为了节省您的时间,我只粘贴相关部分。另外,请注意,模型构建仍在进行中......

colonies-own [Avg-primary-sex-ratios Adult-sex-ratios colony-size]
males-own [Sperm-sex-ratios body-size home-colony num-of-children adult? genotype]
females-own [primary-sex-ratios mating-status? body-size home-colony num-of-exes num-of-children adult?] 

to make-females
ask colonies
[hatch-females round ((initial-colony-size * 90) / 100)
[
set shape "spider"
set color yellow
set home-colony myself
set size 0.8]
]
ask females
[
set body-size mean (list 6 (random-normal 10 2) 14)
set num-of-exes 0
set num-of-children 0
set adult? True
set mating-status? False
]
end

to-report initial-colony-size
report mean (list 20 (random-normal 60 5) 120)
end

to go
make-male-adults
make-female-adults
make-sperm
mate-with-an-adult-female
tick
end


to make-male-adults
ask males
[
if body-size >= 10 [set adult? True]
]
end

to make-female-adults
ask females
[
if body-size >= 10 [set adult? True]
]
end

to make-sperm ; males make a range of sperm-sex ratios ranging from 50:50 to 100:0 female:male sperm
ask males
[if adult?
[set sperm-sex-ratios mean (list (random-float 101)) ]
if sperm-sex-ratios <= 50 [set color black]
if sperm-sex-ratios > 50 and sperm-sex-ratios <= 70 [set color violet]
if sperm-sex-ratios > 70 [set color orange]
]
end

to mate-with-an-adult-female
ask males
[
if adult? 
[
ask females
[
if adult? and num-of-exes <= 4
[
set mating-status? True
set num-of-exes num-of-exes + 1
set color white]
]
]
]
end

我只希望那些通过一定条件的雌性海龟可以交配。但是,所有雌性海龟都在交配


netlogo agent-based-modeling
1个回答
0
投票

我解决了这个问题。问题是我在设置海龟时创建雌性时设置了 Adult = true。

© www.soinside.com 2019 - 2024. All rights reserved.