3

我想实现一个强化学习连接四个代理。我不确定如何这样做以及它应该看起来如何。我熟悉强化学习的理论方面,但不知道应该如何实施。

应该怎么做?我应该使用 TD(lambda) 还是 Q-learning,MinMax 树是如何参与其中的?我的 Q 和 V 函数如何工作(行动质量和状态价值)。我如何给这些东西打分?我改进的基本政策是什么,我的模式是什么?另一件事是我应该如何保存状态或 statesXactions(取决于学习算法)。我应该使用神经网络吗?如果是,如何?

我正在使用 JAVA。

谢谢。

4

1 回答 1

2

这可能是一个比你想象的更困难的问题,原因如下:

游戏的动作空间是放置一块的列的选择。游戏的状态空间是一个 MxN 网格。每列最多包含分布在 2 个玩家之间的 M 个棋子。这意味着有 (2 M+1 -1) N个状态。对于标准的 6x7 板,这大约为 10 15。因此,您不能直接将强化学习应用于问题。状态值函数不是平滑的,所以朴素函数逼近是行不通的。

但并非全部丢失。一方面,您可以通过分离动作空间来简化问题。如果您分别考虑每列的值,则基于它旁边的两列,您将 N 减少到 3 并将状态空间大小减少到 10 6。现在,这是非常易于管理的。您可以创建一个数组来表示此值函数,并使用简单的 RL 算法(例如 SARSA)对其进行更新。

请注意,游戏的回报非常延迟,因此您可能希望使用资格跟踪来加速学习。

于 2012-01-19T01:57:16.297 回答