基于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、迭代训练:
- 随着训练的不断进行,策略网络会越来越倾向于选择那些带来高奖励的优化算法。这并不是执行所有算法后再对比选择,而是通过逐步学习策略,越来越准确地预测哪个动作(优化算法)最适合当前状态。
相关文章:

基于A2C与超启发式的航天器星载自主任务规划算法-笔记
1. Actor-Critic 模块 主要文件:AC.py, PolicyNet.py, ValueNet.py作用:该模块实现了 A2C(Advantage Actor-Critic)强化学习算法。其中,ActorCritic 类是核心,它同时管理策略网络(Actor&#x…...

[机器学习]决策树
1 决策树简介 2 信息熵 3 ID3决策树 3.1 决策树构建流程 3.2 决策树案例 4 C4.5决策树 5 CART决策树(分类&回归) 6 泰坦尼克号生存预测案例 import pandas as pd from sklearn.model_selection import train_test_split from sklearn.tree import …...

CentOS7更换阿里云yum更新源
目前CentOS内置的更新安装源经常报错无法更新,或者速度不够理想,这个时候更换国内的镜像源就是一个不错的选择。 备份内置更新源 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup 下载阿里云repo源(需要系统…...

算法参数对拥塞控制的影响
来看看参数对公平收敛的影响。仅假象一下就知道应该是个加权公平,但事实如何,还是要具体看一下。 首先看 aimd,标准的 reno 算法是每 round 之后 cwnd 加 1,但如果有些流加 1,有些流加 2,会如何࿱…...
Go websocket
Go 中的 gorilla/websocket 是一个常用且高效的 WebSocket 实现库,可以帮助你轻松地在 Web 应用中实现实时通信。学习 gorilla/websocket 的基本用法包括建立 WebSocket 连接、发送和接收消息、处理错误、以及在实际场景中的使用。以下是关于 gorilla/websocket 的学…...
C# 委托与事件 观察者模式
委托与事件是一种观察者模式。 什么是委托与事件 在c#中,委托类似于代理,也跟其它语言的函数指针、回调函数等相似,但委托是类型安全和可靠的。声明自定义委托时,加上delegate关键字,委托定义类似于接口。 事件是特殊…...
K8S - 用service account 登陆kubectl
刚安装好k8s时 我就可以用kubectl 在master server里管理k8s的资源。 这时我们是感觉不到 k8s的用户和权限管理存在的, 但是其实用户的配置都在kubeclt 的配置文件中 /etc/kubernetes/admin.conf 中 我们可以用下命令来查看当前正在用的帐号 rootk8s-master:~/.d…...
Redis 持久化机制详解
引言 Redis 是一款基于内存的高性能键值存储系统,为了在数据丢失时能快速恢复,Redis 提供了多种持久化机制。这些持久化机制可以将内存中的数据存储到磁盘上,确保即使系统重启或宕机后也能恢复数据。Redis 支持两种主要的持久化方式…...

小阿轩yx-案例:Zabbix监控kubernetes云原生环境
小阿轩yx-案例:Zabbix监控kubernetes云原生环境 前言 传统监控的本质 就是收集、分析和使用信息来观察一段时间内监控对象的运行进度,并且进行相应的决策管理的过程,监控侧重于观察特定指标。 随着云原生时代的到来 我们对监控的功能提出…...
量化交易的个人见解
程序化交易在国内兴起有些年数了,个人以为,程序化交易与量化投资的关系,在于两者侧重点有差别。程序化交易侧重于下单的动作是机器自动执行的,量化投资则侧重于投资分析的过程是通过一个量化模型来实现的,所以量化投资…...

Java集合(一)
目录 Java集合(一) 集合介绍 单列集合分类 Collection接口 创建Collection实现类对象 常用方法 迭代器 基本使用 迭代器的执行过程 迭代器底层原理 集合中的并发修改异常及原因分析 List接口 ArrayList类 介绍 常用方法 遍历集合 Array…...
车载软件架构 --- SOA设计与应用(下)
我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己,无利益不试图说服别人,是精神上的节…...

网络原理 IP协议与以太网协议
博主主页: 码农派大星. 数据结构专栏:Java数据结构 数据库专栏:MySQL数据库 JavaEE专栏:JavaEE 关注博主带你了解更多数据结构知识 目录 1.网络层 IP协议 1.IP协议格式 2.地址管理 2.1 IP地址 2.2 解决IP地址不够用的问题 2.3NAT网络地址转换 2.4网段划分 3.路由选择…...

k8s的安装
k8s的安装 1.创建主机,设置ip,hostname,关闭firewalld,selinux,NetworkManager 编号主机名称ip1k8s-master192.168.118.662k8s-node01192.168.118.773k8s-node02192.168.118.88 2.设置主机之间的ssh免密 [rootk8s-master ~]# ssh-keygen [rootk8s-ma…...

Qt中样式表常用的属性名称定义
Qt中,用好样式表,不但可以做出意想不到的酷炫效果,有时候也能减轻开发量,可能由于你不了解某些样式使用,想破脑袋通过代码实现的效果,反倒不如别人用样式,一两句样式脚本就搞定。 Qt中ÿ…...

React源码学习(一):如何学习React源码
本系列源码学习,是基于 v16.13.1,v17.x与v16.x区别并不太大! 一、如何正确的学习React源码? 找到Github,转到React仓库,fork / clone源码:React 查看Readme,在Documentation中有Cont…...

云计算服务的底层,虚拟化技术的实现原理
虚拟化技术: 一、 从cpu说起, intel和amd等cpu制造商 为了提高其cpu对 虚拟化程序的运算速度, 给cpu硬件里面 增加了指令集 VMLAUNCH, VMRESUME, VMEXIT, VMXOFF 这些指令集称为硬件辅助虚拟化技术的指令集。 ---------------------…...

大数据Flink(一百一十六):Flink SQL的时间属性
文章目录 Flink SQL的时间属性 一、Flink 三种时间属性简介 二、Flink 三种时间属性的应用场景 三、SQL 指定时间属性的两种方式 四、SQL 处理时间DDL定义 五、SQL 事件时间DDL定义 Flink SQL的时…...
Ansible自动化部署kubernetes集群
机器环境介绍 1.1. 机器信息介绍 IP hostname application CPU Memory 192.168.204.129 k8s-master01 etcd,kube-apiserver,kube-controller-manager,kube-scheduler,kubelet,kube-proxy,containerd 2C 4G 192.168.204.130 k8s-w…...

网络通信流程
目录 ♫IP地址 ♫子网掩码 ♫MAC地址 ♫相关设备 ♫ARP寻址 ♫网络通信流程 ♫IP地址 我们已经知道 IP 地址由网络号主机号组成,根据 IP 地址的不同可以有5钟划分网络号和主机号的方案: 其中,各类地址的表示范围是: 分类范围适用…...

网络六边形受到攻击
大家读完觉得有帮助记得关注和点赞!!! 抽象 现代智能交通系统 (ITS) 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 (…...

基于FPGA的PID算法学习———实现PID比例控制算法
基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容:参考网站: PID算法控制 PID即:Proportional(比例)、Integral(积分&…...
如何为服务器生成TLS证书
TLS(Transport Layer Security)证书是确保网络通信安全的重要手段,它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书,可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...
Device Mapper 机制
Device Mapper 机制详解 Device Mapper(简称 DM)是 Linux 内核中的一套通用块设备映射框架,为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程,并配以详细的…...

html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码
目录 一、👨🎓网站题目 二、✍️网站描述 三、📚网站介绍 四、🌐网站效果 五、🪓 代码实现 🧱HTML 六、🥇 如何让学习不再盲目 七、🎁更多干货 一、👨…...
管理学院权限管理系统开发总结
文章目录 🎓 管理学院权限管理系统开发总结 - 现代化Web应用实践之路📝 项目概述🏗️ 技术架构设计后端技术栈前端技术栈 💡 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 🗄️ 数据库设…...

云原生安全实战:API网关Kong的鉴权与限流详解
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、基础概念 1. API网关(API Gateway) API网关是微服务架构中的核心组件,负责统一管理所有API的流量入口。它像一座…...

Git 3天2K星标:Datawhale 的 Happy-LLM 项目介绍(附教程)
引言 在人工智能飞速发展的今天,大语言模型(Large Language Models, LLMs)已成为技术领域的焦点。从智能写作到代码生成,LLM 的应用场景不断扩展,深刻改变了我们的工作和生活方式。然而,理解这些模型的内部…...

淘宝扭蛋机小程序系统开发:打造互动性强的购物平台
淘宝扭蛋机小程序系统的开发,旨在打造一个互动性强的购物平台,让用户在购物的同时,能够享受到更多的乐趣和惊喜。 淘宝扭蛋机小程序系统拥有丰富的互动功能。用户可以通过虚拟摇杆操作扭蛋机,实现旋转、抽拉等动作,增…...
WebRTC从入门到实践 - 零基础教程
WebRTC从入门到实践 - 零基础教程 目录 WebRTC简介 基础概念 工作原理 开发环境搭建 基础实践 三个实战案例 常见问题解答 1. WebRTC简介 1.1 什么是WebRTC? WebRTC(Web Real-Time Communication)是一个支持网页浏览器进行实时语音…...