Я строю модель для системы добычи хищника, и я включаю небольшую базовую внутреннюю модель машинного обучения c в хищника.
У хищников есть 4 стратегии (переменная strat), в начале дня они выбирают strat, а в конце каждого дня проверяют, успешно ли они охотились с этим strat.
У меня есть другая переменная, которой владеют хищники, под названием best-strat, которую я хочу скопировать с последней успешной страты
мой код следующий
to recall-hunts
if ticks = 98 [ifelse hunt-today = 1 [set last-hunt "success"] [set last-hunt "failure"]]
end
to evaluate-hunt
if ticks = 99 [if last-hunt = "success" [set best-strat best-strat = strat]
if last-hunt != "success" [set strat one-of strategies]
stop]
end
to strategy
if ticks = 1 [ifelse best-strat = "NA" [set strat one-of strategies] [set strat strat = best-strat]]
stop
end
Я хочу хищник, чтобы оценить, хорошо ли они охотились с данной стратой, а затем выбрать страту, которая лучше всего работала для них ранее, если нет лучшей страты, то просто выберите случайную.
strat - это переменная, которая выбирает из списка стратегий ("strat1" "strat2" "strat3" "strat4")
все работает, кроме моего кода, для копирования текущего страта в лучший -Страт в конце дня, если охота была успешной. На данный момент он устанавливается на «ложь», поэтому что-то ломается, я думаю.
Пожалуйста, предложите любые рекомендации, которые помогут решить эту проблему.