Skip to main content

单智能体强化学习 (SARL) 和多智能体强化学习 (MARL) 算法的实现。

项目描述

YuanRL 是一个存储库,提供单智能体强化学习 (SARL) 和多智能体强化学习 (MARL) 算法的 Python 实现。

安装

  • 从 PYPI 安装包:
pip install yuanrl -i https://pypi.org/simple/ 
  • 使用 git 获取存储库:
git clone https://github.com/Mingqi-Yuan/YuanRL.git
  • 运行以下命令以获取依赖项:
pip install -r requirements.txt

建筑学

我们考虑将 RL 算法分为几个部分:

  • apis:强化学习算法的主要框架;
  • nn:深度强化学习中网络的主干;
  • replayer:用于存储和采样经验的回放器;
  • 噪音:针对连续任务的可选噪音发生器。

实现

  • 单智能体 RL 算法
算法 类型 开/关策略 可用任务 纸 代码
深度 Q 学习 基于价值 政策外 离散的 [纸] [代码]
近端策略优化 基于策略 政策上 离散的 [纸] [代码]
信任区域策略优化 基于策略 政策上 离散的 [纸] [代码]
深度确定性策略梯度 基于策略 政策外 连续的 [纸] [代码]
软演员-评论家离散 基于策略 政策外 离散的 [纸] [代码]

注意这里的“可用任务”是指算法的实现版本,并不代表一个算法只能处理单一类型的任务。例如,PPO 不仅可以处理离散任务,还可以处理连续任务,但我们这里只实现离散版本。

  • 多智能体 RL 算法
算法 类型 开/关策略 可用任务 纸 代码
QMIX 基于价值 政策外 离散的 [纸] [代码]

例子

运行以下示例代码来训练 PPO 代理:

import logging
import torch
import gym
import sys
import os

logging.basicConfig(level=logging.DEBUG,
                    format='%(asctime)s [%(levelname)s] %(message)s',
                    stream=sys.stdout, datefmt='%H:%M:%S')
sys.path.append('..')

from yuanrl.sarl.apis.PPO import PPO

device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
env = gym.make('Acrobot-v1')
env.seed(0)
actor_kwargs = {'input_dim': env.observation_space.shape[0], 'output_dim': env.action_space.n}
critic_kwargs = {'input_dim': env.observation_space.shape[0], 'output_dim': 1}

agent = PPO(
    device=device,
    state_dim=env.observation_space.shape[0],
    action_dim=env.action_space.n,
    actor_kwargs=actor_kwargs,
    critic_kwargs=critic_kwargs,
    det=False,
    lr=1e-3
)

for game in range(1000):
    state = env.reset()
    episode_reward = 0
    while True:
        action = agent.decide(state)
        next_state, reward, done, info = env.step(action)
        # env.render()
        episode_reward += reward

        agent.learn(state, action, reward, next_state, done)

        if done:
            break

        state = next_state

    logging.info('Episode={}, Reward={}'.format(game + 1, episode_reward))

致谢

非常感谢肖志清博士撰写的优秀书籍和代码。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

yuanrl-0.0.6.tar.gz (13.5 kB 查看哈希)

已上传 source

内置分布

yuanrl-0.0.6-py3-none-any.whl (22.8 kB 查看哈希)

已上传 py3