是的,您可以为此使用 RL。诀窍是在状态描述中包含奶酪的位置。因此,除了鼠标位置的多达 400 个状态外,您还拥有(非常粗略)40010可能的奶酪位置,这意味着你有40011共州。
因此,如果您想使用 RL,您将需要一些函数逼近 - 您可能会使用卷积神经网络进行训练,其中包含包含鼠标和奶酪位置的棋盘“图像”,以及用于选择动作的 DQN。
这样看来,鼠标试图在最短的时间内得到奶酪的游戏在表面上似乎比 Atari 游戏环境中的许多游戏简单得多,而 DQN 已被证明可以很好地解决许多游戏。
我可能会使用两个图像通道——一个用于鼠标定位,一个用于奶酪定位。如果有的话,第三个通道可能用于墙壁/障碍物。
或者是解决这个问题的唯一方法是使用像 A* 算法这样的算法?
A* 加上某种序列优化,如旅行商问题 (TSP) 求解器,如果您已经提出问题并要求您以任何您想要的方式解决它,那么它可能是最佳的。只需解决 11 个位置 - 鼠标启动加上 10 个奶酪位置 - 然后您可以在现代 CPU 上在几秒钟内暴力破解移动组合,因此该部分可能不会特别令人兴奋(而 TSP 求解器可以参与更多和有趣) .
RL 的有趣之处在于它将如何解决问题。RL 是一种学习算法 - 实施它的目的是了解机器获取解决方案所需的知识。虽然 A* 和组合优化器是您了解如何解决问题并根据更高级别的分析尽可能优化地解决问题的地方。A*/优化器解决方案比 RL 解决方案更健壮、编码更快、运行更快的可能性很高。
如果您只想解决手头的问题,那么这两种方法都没有本质上的错误。首先,这取决于您为什么要为这个问题烦恼的目标。
如果你真的想的话,你甚至可以结合 A* 和 RL。A* 找到路径,然后 RL 使用路径作为 CNN 输入的一部分来决定最佳序列。路线的 A* 分析可能会对 RL 阶段有很大帮助——将它们添加为一个或多个附加通道。