Skip to content

chen-fo/MultiModelRLWrapper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MultiModelRLWrapper

基于 Ray RLlib 的多模型强化学习框架,支持混合动作空间(离散 + 连续)的 PPO 算法实现。

✨ 特性

  • 🎯 混合动作空间支持 - 同时处理离散动作(模型选择)和连续动作(参数调优)
  • 🔧 自定义 Gymnasium 环境 - 提供多种可扩展的自定义环境实现
  • 🌉 Bridge Server - FastAPI 桥接服务,支持与外部仿真系统实时通信
  • 🚀 Ray 分布式训练 - 利用 Ray Tune 进行超参数搜索和分布式训练

📁 项目结构

MultiModelRLWrapper/
├── lib/
│   └── real_env.py          # 核心仿真环境(MissileEnv)
├── src/
│   ├── agents/
│   │   ├── ppo.py           # HybridActionPPO 模块
│   │   ├── ppo1.py          # HybridPPOModule 实现
│   │   └── ppo2.py          # 简化 PPO 训练脚本
│   ├── env/
│   │   ├── corridorEnv.py   # 走廊寻宝环境
│   │   └── MixedActionEnv.py # 混合动作环境封装
│   ├── test/
│   │   ├── rllib_train.py   # RLlib 训练脚本
│   │   └── rllib_eval.py    # 模型评估脚本
│   └── until/
│       ├── bridge_server.py # FastAPI 桥接服务
│       └── net_type.py      # 网络类型定义
└── exp/                      # 实验输出和检查点

🛠️ 安装

# 安装依赖
pip install -r requirements.txt

依赖项

  • Python >= 3.8
  • Ray[rllib] >= 2.0
  • PyTorch >= 2.0
  • Gymnasium
  • FastAPI
  • NumPy

🚀 快速开始

1. 训练 PPO 模型

cd src
python test/rllib_train.py

2. 使用混合动作空间训练

python agents/ppo1.py

3. 启动 Bridge Server(可选)

用于连接外部仿真系统:

uvicorn src.until.bridge_server:app --host 0.0.0.0 --port 8001

📖 核心概念

混合动作空间

本项目支持同时包含离散和连续动作的混合动作空间:

action_space = Dict({
    "model_selection": Discrete(n),           # 离散:选择模型
    "time_selection": Box(low=0, high=T)      # 连续:时间参数
})

自定义环境

所有环境均遵循 Gymnasium API:

from env.MixedActionEnv import MixedActionEnv

env = MixedActionEnv(config={})
obs, info = env.reset()
obs, reward, terminated, truncated, info = env.step(action)

📝 License

MIT License

🤝 贡献

欢迎提交 Issue 和 Pull Request!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages