当前位置: 首页 > article >正文

基于A2C与超启发式的航天器星载自主任务规划算法-笔记


1. Actor-Critic 模块

  • 主要文件AC.py, PolicyNet.py, ValueNet.py
  • 作用:该模块实现了 A2C(Advantage Actor-Critic)强化学习算法。其中,ActorCritic 类是核心,它同时管理策略网络(Actor)和价值网络(Critic)。
  • 逻辑
    • 策略网络(PolicyNet) 负责根据当前状态预测采取不同动作的概率。
    • 价值网络(ValueNet) 负责评估当前状态的价值,帮助强化学习决策。
    • AC.py 文件负责整合这两个网络,通过与环境交互不断更新策略和价值网络。
  • 核心功能
    • take_action 方法:根据当前状态选择最优动作。
    • update 方法:基于获得的经验(状态、动作、奖励等)来更新 Actor 和 Critic 的参数。
  • 输出:模型的动作选择以及不断优化的策略和价值评估。

2. 环境交互模块(env 文件夹)

  • 主要文件step.py
  • 作用:定义强化学习环境的 step 函数,环境与算法通过该函数进行交互。
  • 逻辑
    • 根据动作选择优化算法(PSO、GWO、SCA 等),并根据算法的结果更新环境状态。
    • 每次迭代都会计算奖励,并更新状态。
    • done 标志 表示任务是否完成,通常在达到特定条件时标记任务完成。
  • 核心功能
    • 动作对应不同的优化算法,每个动作都会触发相应的算法执行并返回新的状态、奖励等信息。
    • 奖励的计算基于适应度函数,优化解的适应度越好,奖励越高。

3. 优化算法模块(Algorithm 文件夹)

  • 主要文件PSO.py, GWO.py, SCA.py, FA.py, TSA.py, WDO.py
  • 作用:实现不同的启发式优化算法,这些算法被 A2C 算法选择作为动作的一部分,用于优化问题的解。
  • 逻辑
    • 各种优化算法模拟不同的自然现象或生物行为,如粒子群、灰狼、风驱动等,帮助在解空间中寻找最优解。
    • 每个优化算法都通过特定的规则调整群体个体的位置或参数,以逼近全局最优解。
  • 核心功能
    • 通过各自算法(如 PSO 的粒子位置更新,GWO 的狼群追猎等)来不断优化解,找到适应度最高的解。
    • 最终返回优化后的最优解和适应度。

4. 训练模块(train.py)

  • 作用:训练整个模型,结合 A2C 强化学习和优化算法,持续迭代以找到最优解。
  • 逻辑
    • 初始化时使用多个优化算法生成初始解,通过并行运行这些算法来加速训练过程。
    • A2C 算法通过策略网络选择动作(即使用哪种优化算法),然后通过 step 函数执行动作。
    • 每次迭代更新策略网络和价值网络的参数,并记录训练过程中的奖励和适应度值。
  • 核心功能
    • 多进程并行优化算法,提升计算效率。
    • 通过 SummaryWriter 记录日志,便于后续的可视化分析。

5. 工具类模块(utils 文件夹)

  • 主要文件massCalculation.py, move.py, calculate_total_distance.py, 等
  • 作用:存放各种辅助工具函数,如个体位置更新、距离计算、数据处理等。
  • 逻辑
    • 工具类函数被算法和主逻辑调用,提供底层支持。
    • 例如:calculate_total_distance.py 计算旅行商问题(TSP)中的路径总距离,move.py 更新个体的位置和速度。
  • 核心功能
    • 提供优化算法的基础计算工具,如距离计算、位置更新等。

6. 测试模块(test 文件夹)

  • 主要文件test1.py, test2ac.py, study.py
  • 作用:测试不同算法的性能,并结合 A2C 算法进行验证。
  • 逻辑
    • 通过调用不同优化算法解决旅行商问题(TSP)等优化问题,评估算法的性能。
    • 结合 A2C 算法的测试,评估强化学习与优化算法的结合效果。
  • 核心功能
    • 输出测试结果,如最优路径、适应度值,并可视化结果。

7. 日志与模型存储模块(log 和 runs 文件夹)

  • 作用:存储训练过程中的日志、模型参数、训练检查点等。
  • 逻辑
    • log 文件夹 记录了训练过程中的损失值、适应度值等信息,帮助监控模型训练效果。
    • runs 文件夹 存储模型检查点,允许训练中断后恢复模型,也用于 TensorBoard 可视化。


  • 1、初始阶段

    • 当模型初始开始训练时,策略网络还没有经验,它可能会根据初始化的策略随机选择某个动作(即选择某个优化算法)执行。例如,可能随机选择 PSO 或 GWO。
  • 2、执行动作(优化算法)

    • 一旦策略网络选择了某个优化算法作为动作,系统就会执行该算法。这时,优化算法会在解空间中寻找解并返回其适应度值。
    • 比如,如果选择了 PSO,则会调用 PSO.py 中的粒子群算法来优化问题。
  • 3、环境反馈

    • 每次执行一个优化算法后,系统会通过 环境交互模块(step.py) 得到当前状态的反馈,也就是通过适应度函数获得一个奖励值,并返回更新后的状态。
  • 4、策略更新

    • 策略网络(Actor) 根据每次选择动作的反馈信息(奖励和状态),不断学习和调整自己的参数,逐渐倾向于选择带来更高奖励的动作。
    • 同时,价值网络(Critic) 也会通过评估当前状态的价值,帮助策略网络更好地做出决策。
  • 5、迭代训练

    • 随着训练的不断进行,策略网络会越来越倾向于选择那些带来高奖励的优化算法。这并不是执行所有算法后再对比选择,而是通过逐步学习策略,越来越准确地预测哪个动作(优化算法)最适合当前状态。


http://www.kler.cn/a/313909.html

相关文章:

  • 使用CubeMX一键配置Freertos
  • Stored procedures in PostgreSQL
  • VSCode可以安装最新版,并且可以对应Node 12和npm 6
  • 学习方法——看差的书籍
  • FPGA实现以太网(二)、初始化和配置PHY芯片
  • Springboot应用的端口配置方法解析与优先级详解
  • 大数据新视界 --大数据大厂之JavaScript在大数据前端展示中的精彩应用
  • Vue 修饰符 | 指令 区别
  • C/C++笔记
  • python基础题练习
  • leetcode 605.种花问题
  • 青岛特某电新能源有限公司-充电业务流程及数据交互规范-集控前置-精简版V1.0
  • Debian 12上安装google chrome
  • 前端vue-自己封装组件并使用三步走
  • k8s pod网络故障注入,命令行实现
  • 功能强大的任务 / 项目管理工具GoodTask for Mac
  • Redis 集群搭建教程
  • leetcode刷题(71-75)
  • ATMEGA328P芯片引脚介绍
  • 如何配置ssh key 到gitlab, 实现git push
  • 京东商品属性的详细api数据解析:颜色、尺寸与材质
  • 《深度学习》PyTorch框架 优化器、激活函数讲解
  • OpenHarmony(鸿蒙南向开发)——标准系统方案之瑞芯微RK3568移植案例(下)
  • 鸿蒙搭配前端开发:应用端与WEB端交互
  • 安卓数据存储——SQLite
  • VM16安装macOS11