【发布时间】:2018-06-05 12:00:57
【问题描述】:
在我的模型中,海龟有两种性别,而雄性有两种潜在的策略。女性计算设定半径内的男性数量。
我希望女性根据两种男性策略的相对频率来衡量从男性组中选择的概率(无需替换)。
我已经有了从男性中选择概率的代码(matingPoolProbAnad 和 matingPoolProbRes),但我不知道如何实现它,尽管 rnd 扩展似乎是要走的路,特别是 @ 987654324@。
这由三件事复杂化:(1) 雄性可以与不止一名雌性交配,但 (2) 只能与给定的雌性交配一次,(3) 雌性最多只能与五名雄性交配。
to count-mates ; ask the females to count the number of males in a 10 patch radius & then
; determine the frequency of the resident males in their patch
ask turtles with [sex = "female"]
[
if any? turtles with [sex = "male"] in-radius 10
[ set potentialMates turtles with [sex = "male"] in-radius 10
ifelse any? potentialMates with [anadromousM = 1]
[ set FA count potentialMates with [anadromousM = 1] / count potentialMates ]
[ set FA 0]
ifelse any? potentialMates with [anadromousM = 0]
[ set FR count potentialMates with [anadromousM = 0] / count potentialMates ]
[ set FR 0]
]
]
end
to mating-pool-prob ; negative frequency dependency which is based on the number of male
; resident turtles
ask turtles with [sex = "female"]
[
ifelse (FA = 1) and (FR = 0)[
set matingPoolProbAnad 1
set matingPoolProbRes 0
]
[ifelse (FA > 0) and (FR < 1)
[
set matingPoolProbRes exp(a - b * (FR - c ))/(1 + exp(a - b * (FR - c)))
set matingPoolProbAnad 1 - matingPoolProbRes
]
[
set matingPoolProbAnad 0
set matingPoolProbRes 1
]
]
]
end
【问题讨论】:
-
交配池概率块返回 2 个值(加到 1)。我认为每只雌性乌龟都是根据自己的交配池中的值计算这些值的想法是否正确?在那种情况下,我认为您不需要加权随机选择 - 加权随机选择是根据某些属性的值在海龟之间进行选择(例如,更富有的人有更多的机会)。我想你只想说“给我 20% 的机会选择 A 类型之一”
-
另外,你的约束是否会改变选择 A 或 R 的概率,或者你想计算离开所有海龟的概率,然后在选择时应用约束?
-
感谢您的 cmets。你是对的,女性在 10 块半径内查看并计算每种男性策略类型的频率。我用它来计算 mate-pool-prob 中的值。所以你会建议一个随机浮动或类似的让女性选择男性?关于第二点,你的意思是一旦女性开始选择,概率应该改变吗?那将是理想的。
标签: netlogo