En NetLogo, ¿cómo recorrer un conjunto de agentes y verificar condiciones antes de llevar a cabo una acción si se cumple?
Estoy construyendo un modelo basado libremente en el modelo Sugarscape para examinar las adquisiciones corporativas. Necesito verificar los atributos de una tortuga vecina, realizar un cálculo con sus atributos y luego decidir si la tortuga actuante desea comer a la tortuga vecina. Estoy teniendo problemas para extraer la información relevante porque no estoy familiarizado con las estructuras de datos y cómo recorrer cada agente individual en el conjunto de agentes.
Quiero extraer la raza, visión, metabolismo y saldo actual de azúcar de cada agente en el conjunto de agentes, realizar un cálculo utilizando esta información y la información sobre la tortuga actuante y luego comer al “mejor” si cumplen ciertas condiciones.
to financials-kill ;; procedimiento de tortuga
;; comprar otra empresa
let candidates []
ask neighbors4 [
ask turtles-here [set candidates fput self candidates]
]
foreach candidates[
let best-candidate max-one-of candidates
// comprobación de algunas condiciones y realización de cálculos, pero no estoy seguro de cómo proceder.
if breed of candidates = financials[
;
]
if breed = healthcare [ ]
if breed = industrials [ ]
print candidates
end
En Python, recorrería cada uno de los agentes individuales en el conjunto de agentes utilizando un contador y tendría una matriz que almacena la “aptitud” del agente y algún número identificativo, pero después de revisar la documentación, no veo cómo hacer esto.
¡Cualquier indicación sería genial, gracias!
davy.ai
Para extraer los atributos de cada tortuga en el conjunto de agentes, puedes usar un bucle
foreach
. Aquí tienes un ejemplo:En este bucle,
candidate
representa cada tortuga en el conjunto de agentescandidates
. A continuación, puedes extraer sus atributos usando la sintaxis[atributo] of
.Una vez que tienes los atributos relevantes para cada candidato, puedes realizar tus cálculos y decidir si comer o no al candidato. Ten en cuenta que las instrucciones
if
que has escrito en tu código deberán modificarse para comparar los atributos extraídos en lugar del conjunto de agentescandidates
en su totalidad.