2014-01-24 54 views
3

在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)分配自己?

回答

1

我想我明白了。首先,我將homerange設置爲男性的屬性。然後,在設置時,set homerange patches in-radius (((sqrt ((random-normal-in-bounds HomerangeSizeMales 35.8 19 151 * 1000000)/ pi))/ 100) * 0.4)。然後,在移動程序中,使用sqrt (count homerange/pi)