Я работаю над проектом, в котором пытаюсь внедрить Q-learning в C # (в частности, в Unity).У меня есть машина, которая должна проехать по дорожке сетки, как показано на рисунке: Пример - где зеленый - это цель (+ награда), серый и вне сетки - препятствия (-награда), а синий - машина.Я смотрел на несколько примеров / руководств о том, как реализовать это (в основном псевдокод), но они, кажется, знают заранее определенную сетку для работы (сетку вознаграждений), которую я не уверен, как реализовать вмой сценарий.
Идея состоит в том, что моя машина имеет три состояния и действия:
- Состояния: движение по левой полосе движения, движение по центральной полосе движения, движение по правой полосе движения
- Действия: Переместить один вверх и влево, переместить один вверх и вправо, переместить один вверх
Я пытаюсь следовать этому: http://mnemstudio.org/path-finding-q-learning-tutorial.htm и адаптировать это в моей системе - ноЯ не вижу, как сделать адаптацию.Разве это не потребовало бы, чтобы моя Q-матрица была намного больше, поскольку каждая ячейка была бы отдельным состоянием?Допустим, моя дорожка длиной 16 ячеек с 3 дорожками, значит ли это, что я должен иметь сетку из 48 состояний * 3 действия?
Редактировать: чтобы упростить свой пост, я понимаю, как я борюсь с тем, какчтобы связать мою среду и мою Q-матрицу, чтобы я мог изменять свои значения q-матрицы в зависимости от поведения моего агента в моей системе.