Я реализовал алгоритм итерации значения для простого процесса принятия решения по методу Маркова Wikipedia в Python. Чтобы сохранить структуру (состояния, действия, переходы, награды) конкретного марковского процесса и перебрать его, я использовал следующие структуры данных:
-
словарь для состояний и действий, доступных для этих состояния:
SA = { 'state A': {' action 1', 'action 2', ..}, ...}
-
словарь для вероятностей перехода:
T = {('state A', 'action 1'): {'state B': probability}, ...}
-
для вознаграждений:
R = {('state A', 'action 1'): {'state B': reward}, ...}
.
Мой вопрос: правильно ли это? Каковы наиболее подходящие структуры данных (в Python) для MDP?