Netlogo,优先搜索哪个代理

Netlogo,优先搜索哪个代理,netlogo,Netlogo,我有一个模型,它包括两种类型的代理—救援代理和人口代理。该模型基本上是一个搜索和救援模型,其中有大量节点通过链接连接。救援代理将首先搜索要救援的代理,然后从一个节点移动到另一个节点,直到到达人口代理。 假设我的人口代理拥有一个名为伤害水平的变量,取值为1、2或3。我希望我的救援人员首先救援受伤的人口特工-2级或3级。不管是哪一个。下一步进入伤害等级1。 我编写代码的方式是,如果我的2级和3级伤害的人口代理计数变为0。开始搜索伤情等级为1的特工。但问题是,当我的受伤级别为2或3的总体代理接近0(左

我有一个模型,它包括两种类型的代理—救援代理和人口代理。该模型基本上是一个搜索和救援模型,其中有大量节点通过链接连接。救援代理将首先搜索要救援的代理,然后从一个节点移动到另一个节点,直到到达人口代理。 假设我的人口代理拥有一个名为伤害水平的变量,取值为1、2或3。我希望我的救援人员首先救援受伤的人口特工-2级或3级。不管是哪一个。下一步进入伤害等级1。 我编写代码的方式是,如果我的2级和3级伤害的人口代理计数变为0。开始搜索伤情等级为1的特工。但问题是,当我的受伤级别为2或3的总体代理接近0(左1或左2)时,我的一些救援代理将保持在同一节点上,而不寻找受伤级别为1的代理,直到所有受伤级别为2或3的代理都获救。 例如,如果有2名救援人员,1名pop人员受伤等级为3级,2名pop人员受伤等级为1级。其中一名救援人员将前往受伤3的pop人员处。但另一个将留在同一节点,直到所有受伤3的pop代理获救,然后他将开始转到受伤1。
请注意,每个救援代理只针对一个人口代理,以确保他们不会前往同一个人。 如果救援代理不在同一节点等待,直到伤害2和伤害3的数量达到0,是否有办法解决此问题?还是更好的解决方法 谢谢

breed[rescue-agents rescue-agent]
breed[pop-agents pop-agent]
pop-agents-own [injury]
rescue-agents-own [target-pop-agent]

...
to go
...
;search agent

to find-agents
let pop-ij1 pop-agents with [injury = 1]
let pop-ij2 pop-agents with [injury = 2]
let pop-ij3 pop-agents with [injury = 3]
let Pop-ij2&3 pop-agents with [injury = 2 or injury = 3]

if target-pop-agent = nobody[
ifelse (count pop-ij2 = 0 and count pop-ij3 = 0)
[set target-pop-agent min-one-of (pop-ij1) in-radius 30 with [not 
targeted?][distance myself]]
[set target-pop-agent min-one-of (pop-ij2&3) in-radius 30 with [not 
targeted?][distance myself]]
]
...
end