У меня проблема с результатами, полученными при выполнении итерации значений, с числами, растущими до бесконечности, поэтому я предполагаю, что у меня есть проблема где-то в моей логике.
Изначально у меня есть сетка 10x10,некоторые плитки с наградой +10, некоторые с наградой -100, а некоторые с наградой 0. Нет терминальных состояний.Агент может выполнять 4 недетерминированных действия: двигаться вверх, вниз, влево и вправо.Вероятность движения в выбранном направлении составляет 80%, а перпендикулярно - 20%.
Мой процесс заключается в следующем:
- Для каждой плитки,вычислить значение лучшее действие из этой плитки
Например, чтобы вычислить значение перехода на север из данной плитки:
self.northVal = 0
self.northVal += (0.1 * grid[x-1][y])
self.northVal += (0.1 * grid[x+1][y])
self.northVal += (0.8 * grid[x][y+1])
- Для каждой плитки обновите ее значение следующим образом: начальная награда + (0,5 * значение лучшего хода для этой плитки)
- Проверьте, изменилась ли обновленная сетка со времени последнего цикла, иесли нет, остановите цикл, поскольку числа сошлись.
Буду признателен за любые указания!