java - 想实现一个强化学习连接四个agent

标签 java reinforcement-learning

我想实现一个强化学习连接四个代理。 我不确定该怎么做以及它应该是什么样子。我熟悉强化学习的理论方面,但不知道应该如何实现。

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

我正在使用 JAVA。

谢谢。

最佳答案

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

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

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

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

关于java - 想实现一个强化学习连接四个agent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8801136/

相关文章:

java - android studio_firebase_存储_获取下载网址

java - 反射 - 如何为其实例使用反射创建的 POJO 类设置值

reinforcement-learning - 如何在OpenAI的体育馆中注册自定义环境?

python - 观察意义 - OpenAI Gym

machine-learning - 强化学习文献中的 "soft"是什么意思?

python - OPenAI Gym Retro 错误 : "AttributeError: module ' gym. utils.seeding' 没有属性 'hash_seed'“

java - 使用 Linux 服务器的凭据连接到 AD

java - nifi自定义处理器中的 session 未关闭异常

java - 使用 OkHttp 时 Webapp 取消部署内存泄漏,是否误报?

optimization - 如何描述贝尔曼方程的最优策略 (pi*)?