Мне нужно рассчитать ближайшую черепаху ближайшего соседа в одном патче для всех черепах, ограниченных некоторыми свойствами. Код, который я написал, занимает много времени, и мне интересно, есть ли другой способ его оптимизации. Я определил имущество сосед в черепахе, чтобы сохранить ближайший сосед.Netlogo: Оптимизируйте вычисления соседа-черепахи внутри патча
to set_neighbor
ask patches [
ask turtles-here with [ life_stage = "STAGE1" ] [
set neighbor min-one-of other turtles-here with [ life_stage != "STAGE2" ] [ (distance myself) ]
]
]
end
Я попытался оптимизировать код, внеся следующие изменения, но в итоге у него появилось больше времени. Я предположил, что если я сохранил результаты запроса в переменной и позже использовал эту переменную, это было бы быстрее, чем выполнение самого запроса несколько раз.
to set_neighbor
ask patches [
let turt_temp turtles-here with [ life_stage != "STAGE2" ]
ask turtles-here with [ life_stage = "STAGE1" ] [
set neighbor min-one-of other turt_temp [ (distance myself) ]
]
]
end
Я бы очень признателен за любые указания по этому вопросу. Заранее спасибо.
'' '' необходимо для настоящей модели. В этом примере только спрашивают черепах stage1 и выбирают только черепахи stage2. – JenB
Проверка STAGE2 - это неравенство, а не равенство, поэтому оно включает черепахи STAGE1. Таким образом, «другое» необходимо. Хорошо подумать об этом, так как удаление ненужного «другого» ускорит все! –
Хороший момент - я не читал его достаточно внимательно. лучше пойти исправить свой ответ слишком – JenB