Как вставить R-таблицу из (15, 15) в (255 состояний, 4 действия) - PullRequest
0 голосов
/ 28 апреля 2019

Я настраиваю R-таблицу с (255 состояний, 4 действия).Как мне ввести его из R-таблицы (15, 15)?

Я создал R-таблицу (15, 15), но оказалось, что я должен сделать R-таблицу (225, 4) длядомашнее задание.

r_matrix = np.array([
[-1, -2, -3, -2, -3, -3, -4, -1, -4, -2, -1, -2, -3, -3, 500],
[-1, -3, -1, -2, -4, -1, -4, -1, -4, -2, -4, -2, -2, -2, -1],
[-4, -2, -1, -4, -2, -1, -2, -4, -2, -3, -2, -1, -2, -4, -4],
[-4, -2, -4, -1, -3, -2, -3, -2, -4, -2, -4, -1, -2, -4, -2],
[-4, -2, -2, -3, -2, -3, -1, -1, -4, -2, -1, -3, -4, -2, -4],
[-4, -3, -3, -4, -2, -3, -4, -2, -2, -1, -1, -2, -1, -2, -1],
[-2, -3, -2, -1, -1, -3, -2, -1, -4, -3, -1, -1, -2, -3, -3],
[-3, -1, -1, -4, -4, -3, -1, -2, -3, -1, -1, -4, -4, -3, -3],
[-3, -1, -4, -2, -3, -3, -1, -4, -4, -4, -2, -2, -2, -2, -1],
[-3, -4, -4, -2, -3, -4, -3, -3, -2, -2, -3, -4, -3, -4, -1],
[-3, -4, -1, -1, -1, -4, -4, -4, -4, -1, -2, -4, -2, -2, -1],
[-1, -3, -3, -3, -3, -3, -3, -3, -4, -1, -2, -4, -1, -2, -4],
[-2, -2, -1, -2, -2, -2, -4, -3, -1, -4, -1, -4, -2, -2, -2],
[-2, -1, -3, -1, -4, -4, -1, -3, -3, -1, -1, -2, -3, -4, -3],
[-2, -2, -1, -4, -4, -4, -2, -2, -3, -1, -2, -2, -1, -1, -3]
])

# Result (Up, Right, Down, Left)
r_matrix2 = np.array(
    [None, -2, -1, None],
    [None, -3, -3, -1],
    [None, -2, -1, -2],
    [None, -3, -2, -3],
    [None, -3, -4, -2],
    ...
)

Спасибо

1 Ответ

0 голосов
/ 29 апреля 2019

Чтобы узнать политику, которая максимизирует вознаграждение, вы, очевидно, хотите выполнить обратное распространение вознаграждения (или итерацию значения) для 225 вершин местоположения с (симметричной) степенью 4.

(Кстати, вы дважды упомянули 255где я думаю, что вы имели в виду 225.)

Произвольно определить bad как -1000;замените None значения этой наградой «отрицательная бесконечность».

В узле цели есть деталь моделирования, содержащая вознаграждение 500: убедитесь, что все четыре внешних ребра имеют вознаграждение bad, чтобы агент выиграл 'Не поддавайтесь искушению пойти туда, а затем следовать циклу, который позволяет бесконечно собирать награду 500.

диаметр

Вычислите диаметр своего графика мира сетки.При осмотре, тривиально, это Манхэттенское расстояние из 28, дважды 15 - 1. Для произвольных графиков вам может понадобиться алгоритм кратчайший путь , чтобы определить это.

init

Инициализировать значение всех нецелевых вершин местоположения в bad.

итерацию

Для v во всех вершинах местоположения, запомнить предыдущее значение val,Затем преследуйте внешние ребра в соседнем месте, найдите (обычно отрицательное) вознаграждение за прохождение ребра и сохраните обновленное значение v как max (val, val + reward), оцененное по всем четырем ребрам.

Интерпретация такова: если мы приземлимся в месте, имеющем значение val, мы уверены, что, следуя оптимальной политике, мы сможем набрать val бонусных баллов.

Это завершает итерацию.Повторите, для diameter итераций.После первого мы обновим только три значения до 497, 498 и 499. После второго будут обновлены как минимум еще пять значений и т. Д., Постепенно уменьшаясь до тех пор, пока не останется больше значений bad.

Обход

Теперь обход графика с начала до цели прост.По всем четырем внешним ребрам просто следуйте за ребром, ведущим к месту с наивысшим значением, и повторяйте его, пока не достигните цели.

...