寻找最近的代理商
Finding the closest agent
我想找到最近的代理,例如,如果我有两个品种狐狸和兔子。如何为每只狐狸找到最近的兔子。我想出了以下代码,它在列表中存储了从每只狐狸到特定半径内的兔子子集的距离。
我想知道是否有更好的and/or更简单的方法来制作这个 netlogo?
breed [rabbits rabbit]
breed [foxes fox]
foxes-own [closest-rabbit]
to setup
clear-all
create-rabbits 10
create-foxes 2
ask rabbits[
setxy random-xcor random-ycor
set color white
]
ask foxes[
setxy random-xcor random-ycor
set color orange
]
end
to go
ask foxes[
let rabbits-in-range rabbits in-radius 10
let dist-list []
let rabbit-list []
ask rabbits-in-range[
set dist-list lput distance myself dist-list
set rabbit-list lput self rabbit-list
let min-dist-idx position (min dist-list) dist-list
set closest-rabbit item min-dist-idx rabbit-list
]
]
end
你试过这样的东西吗?
ask turtles [ show min-one-of other turtles [distance myself] ]
更一般的形式
ask <agent_set> [ <function> min-one-of <agent_set> [distance myself] ]
你的情况是 ask foxes [ set closest-rabbit min-one-of rabbits [distance myself] ]
breed [rabbits rabbit]
breed [foxes fox]
foxes-own [closest-rabbit]
to setup
clear-all
create-rabbits 10
create-foxes 2
ask rabbits[
setxy random-xcor random-ycor
set color white
]
ask foxes[
setxy random-xcor random-ycor
set color orange
]
end
to go
ask foxes[
show min-one-of rabbits [distance myself]
set closest-rabbit min-one-of rabbits [distance myself]
face closest-rabbit
]
end
您还可以查看其他相关问题
Minimum distance between turtles
我想找到最近的代理,例如,如果我有两个品种狐狸和兔子。如何为每只狐狸找到最近的兔子。我想出了以下代码,它在列表中存储了从每只狐狸到特定半径内的兔子子集的距离。
我想知道是否有更好的and/or更简单的方法来制作这个 netlogo?
breed [rabbits rabbit]
breed [foxes fox]
foxes-own [closest-rabbit]
to setup
clear-all
create-rabbits 10
create-foxes 2
ask rabbits[
setxy random-xcor random-ycor
set color white
]
ask foxes[
setxy random-xcor random-ycor
set color orange
]
end
to go
ask foxes[
let rabbits-in-range rabbits in-radius 10
let dist-list []
let rabbit-list []
ask rabbits-in-range[
set dist-list lput distance myself dist-list
set rabbit-list lput self rabbit-list
let min-dist-idx position (min dist-list) dist-list
set closest-rabbit item min-dist-idx rabbit-list
]
]
end
你试过这样的东西吗?
ask turtles [ show min-one-of other turtles [distance myself] ]
更一般的形式
ask <agent_set> [ <function> min-one-of <agent_set> [distance myself] ]
你的情况是 ask foxes [ set closest-rabbit min-one-of rabbits [distance myself] ]
breed [rabbits rabbit]
breed [foxes fox]
foxes-own [closest-rabbit]
to setup
clear-all
create-rabbits 10
create-foxes 2
ask rabbits[
setxy random-xcor random-ycor
set color white
]
ask foxes[
setxy random-xcor random-ycor
set color orange
]
end
to go
ask foxes[
show min-one-of rabbits [distance myself]
set closest-rabbit min-one-of rabbits [distance myself]
face closest-rabbit
]
end
您还可以查看其他相关问题
Minimum distance between turtles