在NetLogo中,我建立了一個模型,讓男性捕食者創建一個在一定範圍內變化的家域。我以前問如何做到這一點在stackoverflow上的幫助。NetLogo要求海龜移動相對於隨機大小的家庭範圍
Selecting values from bounded normal distribution in NetLogo
這偉大的工作。當捕食者在風景周圍移動時,我會要求捕食者檢查它是否超出其特定的家園範圍(因爲隨機過程,這些尺寸是不同的),並且如果是這樣的話,要面對家居範圍的中心my-base
。我可以讓捕食者檢查它是否位於具有特定半徑的圓周之外,但是,我無法要求捕食者檢測其在設置時創建的特定家域。我想我可以讓「家庭範圍」成爲捕食者的特徵,然後讓他們看看自己的家鄉範圍,但我又遇到了麻煩。有什麼建議麼?下面是我的設置和「隨機移動」過程的代碼片段。
to setup
ca
clear-all-plots
clear-output
clear-turtles
create-males 20
[
move-to one-of patches with [is-park?] ;inside a National Park
if any? males in-radius (((sqrt ((54.4 * 1000000)/ pi))/ 100) * 0.4) ;avoid other males
[move-to one-of patches with [is-park?] ]
set size 4
set shape "harimau"
set my-base patch-here
set homerange patches in-radius (((sqrt ((random-normal-in-bounds 54.4 35.8 19 151 * 1000000)/ pi))/ 100) * 0.4)
set numberofAdultMale (numberofAdultMale + 1)
]
reset-ticks
end
to-report random-normal-in-bounds [mid dev mmin mmax]
let result random-normal mid dev
if result < mmin or result > mmax
[report random-normal-in-bounds mid dev mmin mmax]
report result
end
to random-movement
if-else my-base != no-patches[if distance my-base > (((sqrt ((54.4 * 1000000)/ pi))/ 100) * 0.4) ;this checks within a certain radius but not within the specific home range of the male
[ face my-base]
]
[ ]
rt random 180
lt random 180
fd time-step * random-gamma((meansRandomMove * meansRandomMove)/((deltaRandomMove)^ 2)) (1/(((deltaRandomMove)^ 2)/meansRandomMove))
end
在上面的代碼中我有天敵基於預定義的活動範圍大小(((sqrt ((54.4 * 1000000)/ pi))/ 100) * 0.4)
分發自身。一個相關的問題是如何讓捕食者根據從隨機分佈創建的實際家庭範圍homerange patches in-radius (((sqrt ((random-normal-in-bounds 54.4 35.8 19 151 * 1000000)/ pi))/ 100) * 0.4)
分配自己?