基于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.rhkb.cn/news/424954.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2-95 基于matlab的模板定位

基于matlab的模板定位。利用①相关匹配(Correlation Matching)、②基于Hausdorff距离匹配方法 及③考虑对场景图象距离变换(Distance Transform)的Hausdorff距离匹配方法,实现模板目标在场景图象中的定位。程序已调通,…

PMP--一模--解题--81-90

文章目录 4.整合管理81、 [单选] 一位先前不活跃的干系人参与程度突然增加,这种意外的参与导致了一些变更请求。项目经理应该做什么? 4.整合管理82、 [单选] 公司的新产品系列将在两个月内发布,95%的项目任务均已完成。但是,管理层…

开发一款通过蓝牙连接控制水电表的微信小程序

增强软硬件交互 为了更好的解决师生生活中的实际问题,开发蓝牙小程序加强了和校区硬件的交互。 比如通过蓝牙连接控制水电表,减少实体卡片的使用。添加人脸活体检测功能,提高本人认证效率,减少师生等待时间。 蓝牙水电控展示 蓝…

jdk相关介绍

JDK,全称Java Development Kit,是Java语言开发的基础工具包。它包含了Java运行时环境(JRE)以及用于开发Java应用程序的各种工具和库。JDK为Java程序员提供了编译、调试和运行Java应用程序所需的全部环境。 JDK的主要组成部分包括&…

瞳孔检测系统源码分享

瞳孔检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vision …

EMT-DAVT--基于子空间分布对齐和决策变量转移的多目标多任务优化

EMT-DAVT–基于子空间分布对齐和决策变量转移的多目标多任务优化 title: Multiobjective Multitasking Optimization With Subspace Distribution Alignment and Decision Variable Transfer author: Weifeng Gao, Jiangli Cheng, Maoguo Gong, Hong L…

Python酷库之旅-第三方库Pandas(118)

目录 一、用法精讲 521、pandas.DataFrame.drop_duplicates方法 521-1、语法 521-2、参数 521-3、功能 521-4、返回值 521-5、说明 521-6、用法 521-6-1、数据准备 521-6-2、代码示例 521-6-3、结果输出 522、pandas.DataFrame.duplicated方法 522-1、语法 522-2…

III 网络诈骗也玩区块链?加密货币的分类小知识!

大家好啊,我是豆小匠。 区块链第三期,这期拓展一下加密货币的话题。 如果要用加密货币来发工资,你希望用哪个? 你大概不会希望是比特币,比特币的波动性太高,可能刚发下来工资,亏损就超过了10%…

Java小区物业管理系统

技术架构: springboot mybatis thymeleaf Mysql5.7 有需要该项目的小伙伴可以添加我Q:598748873,备注:CSDN 功能描述: 控制台、数据库、楼栋管理、单元管理、房屋管理、车位管理、缴费类型、缴费管理、公告管理…

Linux下进程间的通信--共享内存

共享内存概述: 共享内存是进程间通信的一种方式,它允许两个或多个进程共享一个给定的存储区。共享内存是最快的一种IPC形式,因为它允许进程直接对内存进行读写操作,而不需要数据在进程之间复制。 共享内存是进程间通信&#xff…

Python基础语法(3)下

列表和元组 列表是什么,元组是什么 编程中,经常需要使用变量,来保存/表示数据。变量就是内存空间,用来表示或者存储数据。 如果代码中需要表示的数据个数比较少,我们直接创建多个变量即可。 num1 10 num2 20 num3…

2024.9.12(k8s环境搭建2)

一、接9.11 19、部署calico的pod 4. 查看容器和节点状态 异常处理: 出现Init:0/3,查看node节点 /var/log/messages是否有除网络异常之外的报错信息 三台机器执行:(更新版本) yum list kernel yum update kernel reb…

【ArcGIS】栅格计算器原理及案例介绍

ArcGIS:栅格计算器原理及案例介绍 栅格计算器(Raster Calculator)原理介绍案例案例1:计算栅格数据平均值 参考 栅格计算器(Raster Calculator)原理介绍 描述:在类似计算器的界面中,…

Linux进程概念(下)

前言 上文介绍了进程的基本概念,进程内核数据结构可执行程序,查看进程的方式ps 和/proc指令。 又熟悉常见的进程状态,状态修改的本质就是将PCB标志位更改,然后放到指定的队列中。 本文继续介绍进程的概念,将介绍进程…

网络安全学习(四)渗透工具msf

本文简要介绍metasploit framework,是一款渗透工具。官网地址:Metasploit | Penetration Testing Software, Pen Testing Security | Metasploit msf是一个框架,可以加载各种模块,这是它的最强大之处。 kali中有此工具。 点击即…

maya的重命名物体和材质工具(带ai过程)

对材质同样也有效 被AI干失业的卖衣服的小姐姐,开的士的小哥哥都可以再就业的易上手教程, 先看效果! 对物体命名也是,相当的美观 先提出需求我想在maya中批量重命名物体怎么办?AI给你弄个短代码 ,放进AI进…

音视频入门基础:AAC专题(5)——FFmpeg源码中,判断某文件是否为AAC裸流文件的实现

一、引言 通过FFmpeg命令: ./ffmpeg -i XXX.aac 可以判断出某个文件是否为AAC裸流文件: 所以FFmpeg是怎样判断出某个文件是否为AAC裸流文件呢?它内部其实是通过adts_aac_probe函数来判断的。从《FFmpeg源码:av_probe_input_for…

3. 进阶指南:自定义 Prompt 提升大模型解题能力

怎么判断 Prompt 的好坏,有什么问题有着标准答案么? 答:让大模型求解数学问题。 李宏毅老师的 HW4 正好提到了有关数学问题的 Prompt,所以我决定中间插一篇这样的文章。通过本文你将: 了解各种 Prompt 如何影响大型语言…

无人机飞手培训机构组建及市场分析

飞手培训机构是专门为培养无人机飞行员(飞手)而设立的教育机构。这些机构通过提供专业的培训课程,帮助学员掌握无人机飞行技术、了解相关法规、提升实战能力,并最终获得相关证书,以便在航拍摄影、农业植保、物流配送、…

图新地球-将地图上大量的地标点批量输出坐标到csv文件【kml转excel】

0.序 有很多用户需要在卫星影像、或者无人机航测影像、倾斜模型上去标记一些地物的位置(如电线杆塔、重点单位、下水盖等) 标记的位置最终又需要提交坐标文本文件给上级单位或者其他部门使用,甚至需要转为平面直角坐标。 本文的重点是通过of…