В настоящее время у меня есть модель со многими параметрами, и один из них - разведение оленей однолетних оленей по определенным критериям.Расстояние, которое рассеивает каждый самец, определяется по логарифмически нормальному распределению.Вот что у меня есть:
to move-dispersing-maleyearlings
ask maleyearlings [
let chance-disperse random-float 1.001
if chance-disperse < .62 [ ;;average dispersal rates in Long et. al paper
let mu 7.5
let sigma 6.1
let beta ln (1 + (sigma * sigma) / (mu * mu))
let S (sqrt beta)
let M (ln mu) - (beta / 2)
let new-distance exp (random-normal M S)
while [any? other turtles-here and dispersal-distance < new-distance]
[right random 360
fd 1
set dispersal-distance dispersal-distance + 1]]]
end
Так что в этом коде должно быть рассеяно 62% оленя-годовалого оленя, и они разойдутся на расстоянии «нового расстояния».Если я правильно понимаю цикл «пока», они будут двигаться, пока не достигнут своего «нового расстояния» и не приземлятся на незанятом участке.
Но теперь вместо этого я хочу, чтобы каждый олень-однолетникразогнать их соответствующее «новое расстояние», но если они приземляются на занятом патче, я хочу, чтобы они затем переместились к ближайшему незанятому патчу.Если патч, в который они попадают после перемещения «новой дистанции», не занят, тогда они останутся в этом патче.
Есть идеи, как это сделать?Спасибо за вашу помощь!