В последнее время я много читал о Процессах принятия решений Markov (с использованием итерации стоимости), но я просто не могу обойти их вокруг. Я нашел много ресурсов в Интернете/книгах, но все они используют математические формулы, которые слишком сложны для моих компетенций.
Поскольку это мой первый год в колледже, я обнаружил, что объяснения и формулы, представленные в Интернете, используют понятия/термины, которые слишком сложны для меня, и они предполагают, что читатель знает определенные вещи, которые я просто никогда не слышал.
Я хочу использовать его на двумерной сетке (заполненной стенами (недостижимыми), монетами (желательно) и врагами, которые перемещаются (чего следует избегать любой ценой)). Вся цель - собрать все монеты, не касаясь врагов, и я хочу создать ИИ для основного игрока, используя Марковский процесс принятия решений (MDP). Вот как это выглядит частично (обратите внимание, что связанный с игрой аспект здесь не так уж и опасен. Я просто очень хочу понять MDP в целом):
Из того, что я понимаю, грубое упрощение MDP заключается в том, что они могут создать сетку, которая имеет место, в каком направлении нам нужно идти (вид сетки "стрелок", указывающих, куда нам нужно идти, начиная с определенной позиции на сетке), чтобы достичь определенных целей и избежать определенных препятствий. Конкретно для моей ситуации это означало бы, что он позволяет игроку узнать, в каком направлении идти собирать монеты и избегать врагов.
Теперь, используя условия MDP, это будет означать, что он создает коллекцию состояний (сетку), которая содержит определенные политики (действие, которое нужно предпринять → вверх, вниз, вправо, влево) для определенного состояния (позиция на сетке). Политики определяются значениями "полезности" каждого состояния, которые сами вычисляются путем оценки того, как много будет выгодно в краткосрочной и долгосрочной перспективе.
Это правильно? Или я полностью ошибаюсь?
Мне бы хотелось узнать, что в моей ситуации представляют переменные из следующего уравнения:
(взято из книги "Искусственный интеллект - современный подход" от Рассела и Норвига)
Я знаю, что s
будет списком всех квадратов из сетки, a
будет конкретным действием (вверх/вниз/вправо/влево), но как насчет остальных?
Как будут реализованы функции вознаграждения и полезности?
Было бы здорово, если бы кто-то знал простую ссылку, которая показывает псевдокод, чтобы реализовать базовую версию со сходством с моей ситуацией очень медленно, потому что я даже не знаю, с чего начать.
Спасибо за ваше драгоценное время.
(Примечание: не стесняйтесь добавлять/удалять теги или рассказывать мне в комментариях, если я должен дать более подробную информацию о чем-то или что-то в этом роде.)