我已经在 Python 中实现了简单马尔可夫决策过程维基百科的值迭代算法。为了保持特定马尔可夫过程的结构(状态、动作、转换、奖励)并对其进行迭代,我使用了以下数据结构:
状态和可用于这些状态的操作的字典:
SA = { 'state A': {' action 1', 'action 2', ..}, ...}
转换概率字典:
T = {('state A', 'action 1'): {'state B': probability}, ...}
奖励字典:
R = {('state A', 'action 1'): {'state B': reward}, ...}
.
我的问题是:这是正确的方法吗?最适合 MDP 的数据结构(在 Python 中)是什么?