我有一个调度问题,其中有插槽和客户。我正在尝试使用 Q-learning 解决问题,因此我制作了以下状态动作模型。
一个状态由当前槽位给出和一个动作在插槽由一位客户提供,. 在我的情况下,我没有任何与状态-动作对相关的奖励直到最后一个槽的终端状态。换句话说,对于所有,奖励为并且对于我可以计算给定的奖励.
在这种情况下,Q 表,, 将仅包含零,除了包含更新奖励的最后一行。
在这种情况下我还能应用 Q-learning 吗?如果我只使用最后一行,为什么我需要一个 Q 表?
我有一个调度问题,其中有插槽和客户。我正在尝试使用 Q-learning 解决问题,因此我制作了以下状态动作模型。
一个状态由当前槽位给出和一个动作在插槽由一位客户提供,. 在我的情况下,我没有任何与状态-动作对相关的奖励直到最后一个槽的终端状态。换句话说,对于所有,奖励为并且对于我可以计算给定的奖励.
在这种情况下,Q 表,, 将仅包含零,除了包含更新奖励的最后一行。
在这种情况下我还能应用 Q-learning 吗?如果我只使用最后一行,为什么我需要一个 Q 表?
在最后只有非零奖励并不少见。当奖励稀疏时,与一路上有很多不同的奖励相比,学习变得有点困难,但对于你的问题,总是达到目标状态,所以这应该不是问题。(稀疏奖励的真正问题是,如果代理可以进行大量探索而没有找到目标,那么它基本上不会收到任何反馈并且会随机行事,直到碰巧偶然发现非常罕见的奖励状态。)
我对您的问题更关心的是,最终奖励不仅取决于上次访问的状态,还取决于到目前为止所采取的行动链。这意味着,要使其成为适当的 MDP,您需要将动作链保持在状态中。所以,你的状态将是某种类型.
这种组合问题并不是 RL 真正擅长的。当状态和动作一起提供大量关于下一个状态的信息时,RL 真的很好。在这里,在您的表述中,下一个状态似乎与前一个动作无关。
与其将其视为 RL 问题,不如将其表示为具有相关奖励的动作序列,并将其视为组合优化问题。
如果通过,
我可以计算给定的奖励
你只是说你的游戏是确定性的,这绝对没问题。我觉得另一个答案假设您暗示您的最终奖励是某个顺序的问题。然而,RL 确实在具有不确定奖励的游戏中更加挣扎,直到最终状态,然而,这是完全正常的,但却是一个重大挑战。
在实现方面,只需在每场比赛结束时记录奖励,并仅在每个终端状态后执行一次训练步骤,将此奖励分配给该游戏中记录的每个转换。与其在给定数量的步骤之后更新您的目标网络,不如在一定数量的终端状态之后更新它。我建议以 20 款游戏作为更新目标网络频率的起点。