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

基于改进粒子群优化的无人机最优能耗路径规划

目录

  • 1. Introduction
  • 2. Preliminaries
    • 2.1. Particle Swarm Optimization Algorithm
    • 2.2. Deep Deterministic Policy Gradient
    • 2.3. Calculation of the Total Output Power of the Quadcopter Battery
  • 3.OptimalEnergyConsumptionPathPlanningBasedonPSO-DDPG
    • 3.1.ProblemModelling
      • 3.1.1.EnvironmentalModel
      • 3.1.2. Basic PSO Design for Path Planning
    • 3.2. DDPG-Based Parameter Adaptation Method for PSO Algorithm
      • 3.2.1. State Space
      • 3.2.2.ActionSpace
      • 3.2.3.RewardFunction
    • 3.3.PSO-DDPGforPathPlanning
  • 4.SimulationAnalysisandDiscussion
    • 4.1. Experimental Environment
    • 4.2. Case 1: Comparative Analysis under the Different Initial Values of Parameters
    • 4.3. Case 2: Simulation Analysis in Different Terrain Environments
  • 5.Conclusions

笔记作者:
王海博,男,西安工程大学电子信息学院,2024级研究生,张宏伟人工智能课题组
研究方向:模式识别与人工智能
电子邮件:1137460680@qq.com

为了提高无人机在山地地形飞行作业时的能量效率,这篇文章提出了一种基于改进粒子群优化(PSO)算法的最优能量路径规划方法,通过合理的路径规划方法,有效降低无人机在飞行作业过程中的非必要能量消耗。首先,以无人机飞行过程中能量消耗最优为目标,设计了基于粒子群优化算法的三维路径规划方法。然后,针对经典粒子群算法全局搜索能力差、易受局部最优性影响等缺点,提出了一种基于深度确定性策略梯度(DDPG)的参数自适应算法。该方法通过监测粒子群解集的状态,动态调整粒子群算法的主要参数。

原文链接:https://www.mdpi.com/2071-1050/15/16/12101

1. Introduction

无人机(Unmanned aerial vehicle, UAVs)通过机载编程或无线电遥控机构进行控制,在火灾监控、目标跟踪、智能农业、灾害救援等领域得到了广泛的应用。无人机根据翼型分为旋翼无人机和固定翼无人机,旋翼无人机中以四旋翼无人机最为普遍。对四旋翼无人机的偏好源于其优势,如低成本,紧凑的尺寸和高机动性,使其在复杂的环境中运行。尽管有这些优势,四旋翼无人机执行任务的能力往往受到电池功耗的限制。因此,研究在不改变电池容量的情况下优化能量消耗的路径规划算法对于提高四旋翼无人机的航程和效率具有重要意义。
在过去的几年里,许多学者对通过在无人机上安装能量收集装置来延长电池储能寿命进行了研究,并取得了研究成果。
对于无人机来说,路径规划是一个不可或缺的方面,其目标是确定无人机的最佳飞行轨迹,确保其避开周围的任何障碍物和其他飞行器。路径规划技术对于在3D空间中描绘无人机的安全路线至关重要。传统的路径规划算法主要有A*算法、Dijkstra算法、Voronoi图、人工势场法等。这些算法需要预先加载地形环境信息,在地形环境复杂时存在计算量大、容易陷入局部最优的缺点。目前,许多专家使用启发式算法来优化路径规划,并取得了一些成果。需要注意的是,上述算法中参数的调优是在程序执行之前完成的,不能在执行过程中进行调整,因此,如果外部环境发生变化,则无法对算法进行调整,从而影响算法的性能。
鉴于此,本文在参数自适应算法中引入深度强化学习算法模型,提出了一种基于参数自适应的改进粒子群算法,并将其应用于山地地形下无人机的最优能量路径规划。本研究为无人机提供了一种可行的节能路径规划方法,以提高无人机在复杂地形环境下的任务执行效率。本文的主要贡献和创新点可以概括为以下几点:
(1)针对山地地形环境下无人机飞行路径不合理造成的能量浪费问题,提出了综合考虑无人机能耗、飞行成本、地形距离和地形碰撞约束的目标成本函数,将无人机最优耗能路径规划问题简化为基于粒子群算法的目标函数优化问题。
(2)为了解决PSO算法在求解复杂高维问题时容易陷入局部最优的缺点,该文提出一种基于DDPG模型的自适应参数控制方法,有效提高了PSO算法的全局收敛性。
本文其余部分的结构如下:第2节简要介绍了PSO算法的基本模型、DDPG深度强化学习模型以及本文讨论的四旋翼飞行器能耗功率的计算方法。第3节详细描述了所提出的PSODDPG算法及其在路径规划问题中的应用。第4节介绍了模拟实验环境以及与其他类似算法的比较分析。最后,第5部分给出了本文的结论。

2. Preliminaries

在本节中,介绍了一些基本的数学符号和算法模型。

2.1. Particle Swarm Optimization Algorithm

粒子群优化算法(Particle Swarm Optimization, PSO)是一种典型的群体智能优化算法,由Kennedy博士和Eberhart博士于1995年首次提出。粒子群算法将粒子的自我经验和社会经验相结合,以粒子的形式导出候选解。该优化方法在搜索空间中使用飞行粒子集合,并向有希望的区域移动,以获得全局最优解。
在经典的粒子群优化中,粒子的速度通常受其先前最佳位置和全局最佳粒子在群体中的位置的影响。为了描述粒子的状态,将第i个粒子的速度Vi和位置Xi定义为:
在这里插入图片描述
D表示粒子群搜索空间的维数,N表示粒子个数。随着搜索优化算法的运行,两个粒子的运动向量更新如下:
在这里插入图片描述
w为惯性权重,c1为认知加速度系数,c2为社会加速度系数,r1和r2为[0,1]内均匀分布的随机数,Vi(t)表示第t代第i个粒子的速度,pBesti为第i个粒子的个人最佳位置,gBest为群体最佳位置。

2.2. Deep Deterministic Policy Gradient

深度确定性策略梯度(Deep Deterministic Policy Gradient, DDPG)是深度强化学习算法(Deep reinforcement learning algorithm, DRL)的一种变体,它通过使用Actor网络解决了DQN算法在连续控制问题上的局限性。

如图为深度确定性策略梯度(DDPG)训练过程。
在这里插入图片描述

2.3. Calculation of the Total Output Power of the Quadcopter Battery

作为一种无人机,四轴飞行器通过四个电机调节其旋翼的旋转速度,从而管理其自身的方向和位置。地面坐标系(Oe, Xe,Ye, Ze)是基于Oe在地面上的某个位置建立的,机体坐标系(Ob, Xb,Yb, Zb)是基于四轴飞行器框架建立的。图2说明了地面坐标系、机体坐标系和四轴飞行器框架之间的关系。
在这里插入图片描述
假设四轴飞行器框架对称,质心与几何中心对齐,忽略外部阻力的影响,我们推导出四轴飞行器姿态动力学简化模型如下:
在这里插入图片描述
Ix、Iy 和 Iz 表示四旋翼机的惯性矩,Mx、My 和 Mz 表示四旋翼机姿态通道控制力矩。四旋翼机位置动力学的简化模型可以表述如下:
在这里插入图片描述
F为四轴飞行器的拉力,m为四轴飞行器的起飞重量,g为重力加速度。四轴飞行器姿态通道控制转矩M与电机转速wi的关系可表示为:
在这里插入图片描述
d表示四轴飞行器机身中心到某电机的距离,取0.4m, cT为螺旋桨的拉伸系数,取值为1.55 × 10−4,cM为螺旋桨的扭矩系数,取值为4.11 × 10−6。
四轴飞行器电池的总输出功率PT可以用下面的公式来确定。
在这里插入图片描述
其中,Umi、Imi、Re分别表示无人机电机的等效电压、等效电流和电枢内阻。每台电机的等效电压Um和等效电流Im按下式配置。
在这里插入图片描述
Um0为标称空载电压,Im0为标称空载电流,Kv0为电机KV值,M为电机负载转矩,N为电机转速。本文取Um0为22.2,取Im0为1.1,取Kv0为170。
N可由电机的角速度wi计算,M可由下式计算:
在这里插入图片描述
P为无人机当前工作环境下的空气密度,取值为1.293kg/m3; Dp为四轴飞行器螺旋桨直径,取值为0.508;Cm为总扭矩系数,取值为0.0031。在本研究的数值模拟实验中,相关参数生成于“https://flyeval.com(访问日期:2023年7月6日)”。

3.OptimalEnergyConsumptionPathPlanningBasedonPSO-DDPG

3.1.ProblemModelling

在本节中,我们设计了一种基于DDPG深度强化学习模型的自适应参数控制方法,并将该算法与粒子群算法相结合,提出了一种最优能耗无人机路径规划算法。

3.1.1.EnvironmentalModel

在三维飞行空间中,无人机路径规划的结果通常可以通过一组离散的航路点fp0, p1, p2,…来描述。第一个航路点p0为起点,最后一个航路点pn+1为目标点,PI的坐标为(xi, yi, zi)。在该算法中,每个路径点都被视为MOPSO算法中的一个粒子
。在有多架无人机参与任务的情况下,无人机的路由是根据它们在编队中的优先级确定的。为了防止飞行过程中频繁的角度变化影响飞行安全,利用三次b样条曲线平滑飞行路线。
无人机路径规划所必需的三维地图环境信息必须从地形模型中得到。有效的地形建模可以大大提高路径规划算法的精度。本文考虑障碍物、环境等因素,建立了以下山谷地形模型。
在这里插入图片描述
式中(xmi, ymi)为第i个峰的中心坐标;Hi是控制峰高的地形参数,xsi和ysi是峰沿x轴和y轴的衰减,控制峰的斜率,n表示峰的总数。3D地图内的无障碍区域可以视为路径规划问题的解空间。

3.1.2. Basic PSO Design for Path Planning

无人机路径规划的评价目标函数(适应度函数)包括能耗代价函数F1、距离代价函数F2和约束代价函数F3,适应度函数的数学表达式为:
在这里插入图片描述
能量代价函数F1可表示为:
在这里插入图片描述
式中,pi为样条插值后得到的第i个路径点得到的电池能耗功率,k1为能量成本因子,本算法中k1 = 1。距离成本函数F2可以表示为:
在这里插入图片描述
式中(xi, yi, zi)为规划路径的第I个路径点。K2为路径代价因子,在本算法中K2 = 1。约束代价函数F3可表示为:
在这里插入图片描述

3.2. DDPG-Based Parameter Adaptation Method for PSO Algorithm

3.2.1. State Space

状态空间作为Actor网络的输入,决定了算法的收敛速度。对于传统的深度强化学习方法,状态空间设计应满足以下条件:
所选择的状态应该与任务目标相关;所选择的状态应该与任务目标相关;选择的状态应该能够映射到相同的值范围。
根据上述原则,该算法的状态空间包含三个要素:种群的进化进程、种群的多样性和种群当前的优化能力。在粒子群优化中,迭代率是表示算法执行程度的参数。在算法开始时,该迭代进度为0%,逐渐增加,直到算法完成,此时迭代进度达到100%。迭代百分比的定义可以用下式表示:
在这里插入图片描述
Nnow为粒子群当前迭代次数,Nmax为粒子群最大迭代次数。
粒子群的多样性表示粒子群之间的变异程度,其公式如下:
在这里插入图片描述
式中M为群体中粒子的个数,qij为第i个粒子的第j个位置。其中,Qj为第JTH位蜂群的平均值,q Max j和q min j分别为第JTH位蜂群的最大值和最小值。
粒子群当前的优化能力,是反映粒子群相对于上一代进化程度的度量,由下式确定:
在这里插入图片描述
fgbest k (t)为时刻t选取的全局最优解的第k个适应度函数值。

3.2.2.ActionSpace

Action构成Actor网络的输出,用于为PSO优化算法的每次迭代产生参数。在本算法中,我们将连续动作a定义为一个数组(a1, a2, a3), w, c1, c2的值根据以下公式设计:
在这里插入图片描述其中wlast、c1last、c2last为前一轮PSO优化算法的参数。

3.2.3.RewardFunction

奖励函数的目的是计算“行动”在任务环境中获得的奖励。在该算法中,奖励函数是根据下面的方程设计的,从而推动粒子群算法向全局最优解发展:
在这里插入图片描述

3.3.PSO-DDPGforPathPlanning

在本节中,应用改进的粒子群算法来解决复杂地形环境下无人机的最优能耗路径规划问题。这个应用基于本研究提出的深度强化学习自适应参数模型。增强算法的实现与算法1中描述的框架保持一致,而算法的关键参数如表1所示。
在这里插入图片描述
在这里插入图片描述

4.SimulationAnalysisandDiscussion

4.1. Experimental Environment

本节首先概述任务场景设置和用于数值模拟的实验硬件配置。随后,分别对不同参数初始值和不同任务场景进行了数值模拟。通过对仿真结果的对比分析,证明了本文提出的PSO-DDPG算法与其他同类算法相比具有优越的性能。

4.2. Case 1: Comparative Analysis under the Different Initial Values of Parameters

为了评估本文提出的算法的性能,进行了两组数值模拟实验。这些模拟使用的环境模型是一个100 × 100 × 100的3D空间,障碍物使用3.1.1节中描述的山模型函数生成,如图3所示。
在这里插入图片描述
值得注意的是,本研究中的数值模拟是在Windows 10 64位系统上使用MATLAB R2021a仿真平台进行的。

4.3. Case 2: Simulation Analysis in Different Terrain Environments

为了评估算法在不同复杂地形环境下的性能,本小节根据障碍峰的数量设置了简单和复杂两种不同的地形场景。我们以经典PSO算法、人工蜂群算法(Artificial Bee Colony algorithm, ABC)和人工鱼群算法(Artificial Fish Swarm algorithm, AFSA)为参照组进行了数值模拟。各测试算法的参数设置如表2所示。
在这里插入图片描述
图6为简单地形环境下不同算法生成的最优飞行路径,图7为相同环境下不同算法得到的目标代价函数曲线。从图6和图7可以看出,在简单地形环境下,经典的PSO算法和ABC算法都属于局部优化,AFSA算法在全局收敛方面表现较好,但由于复杂度较高,收敛时间较长,本文提出的PSO- ddpg算法在整体性能上表现最优。
图8和图9为复杂地形环境下不同算法的苍蝇最优飞行路径和目标代价函数曲线。从图8和图9可以看出,经典的PSO和ABC算法随着地形环境中峰值数量的增加,局部最优问题加剧,而AFSA算法的收敛速度较慢的问题仍然存在。相反,本文提出的PSO-DDPG算法虽然收敛速度有所下降,但其综合性能在同类算法中仍然是最好的。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
表3和表4给出了四种算法的10次仿真结果和各算法与经典粒子群算法的优化比。对比表3和表4,经典PSO算法和ABC优化算法在简单地形和复杂地形环境下均表现出较差的全局收敛性,AFSA优化算法在简单地形下收敛性较好,但在复杂地形下全局收敛性受到影响。本文提出的PSO-DDPG算法在全局转换方面具有最优的性能。
在这里插入图片描述

5.Conclusions

本文提出了一种改进的粒子群优化路径规划算法,采用参数化自适应方法实现山谷地形环境下四旋翼飞行器的最优能耗路径规划。首先,将无人机最优能耗路径规划问题表述为具有碰撞威胁和面积限制约束的目标函数优化问题;利用经典粒子群算法对目标函数进行最优求解。其次,针对经典粒子群算法缺乏自适应性和易受局部最优影响的问题,引入了一种新的粒子群算法,深度确定性策略梯度(DDPG)模型。该模型在运行过程中自适应调整PSO算法中的三个参数w、c1和c2,从而提高了算法的搜索性能。与其他类似算法在三维环境下的数值模拟表明了本文算法的优越性能。与经典PSO算法相比,本文提出的PSO- ddpg算法在简单地形和多峰复杂地形下的优化率分别为7.5%和9.2%。
本研究以山地地形环境下无人机的最优能耗为目标,提出了一种无人机路径规划算法,并通过场景仿真验证了该算法的有效性及其相对同类算法的性能优势。然而,本研究并未考虑环境因素对无人机能耗的影响;例如,在风场中,强烈的阵风会导致无人机产生更大的能量消耗,这是由于无人机需要在风场中保持姿态稳定。在未来的工作中,我们将考虑这些因素对无人机能耗的影响,进一步完善无人机的能耗计算模型,并尝试将算法部署到真实的无人机中,为真实环境下的飞行作业提供有效的控制决策。

相关文章:

基于改进粒子群优化的无人机最优能耗路径规划

目录 1. Introduction2. Preliminaries2.1. Particle Swarm Optimization Algorithm2.2. Deep Deterministic Policy Gradient2.3. Calculation of the Total Output Power of the Quadcopter Battery 3.OptimalEnergyConsumptionPathPlanningBasedonPSO-DDPG3.1.ProblemModell…...

AI刷题-数列推进计算任务、数组中的幸运数问题

目录 一、数列推进计算任务 问题描述 测试样例 解题思路: 问题理解 数据结构选择 算法步骤 优化思路 最终代码: 运行结果: 二、数组中的幸运数问题 问题描述 测试样例 解题思路: 问题理解 数据结构选择 算法步…...

微服务的配置共享

1.什么是微服务的配置共享 微服务架构中,配置共享是一个重要环节,它有助于提升服务间的协同效率和数据一致性。以下是对微服务配置共享的详细阐述: 1.1.配置共享的概念 配置共享是指在微服务架构中,将某些通用或全局的配置信息…...

【计算机网络】窥探计网全貌:说说计算机网络体系结构?

标签难度考察频率综合题⭐⭐⭐60% 这个问题在计算机网络知识体系中是一个比较重要的问题,只有完整地了解计算机网络的体系结构才能清晰地认识网络的运行原理。 在回答这个问题时,笔者认为有几个比较重要的点: 首先一定要分清楚前置条件&am…...

【MySQL】DATEDIFF()函数使用

DATEDIFF 函数用于计算两个日期之间的差值,以天为单位 DATEDIFF 函数返回一个整数,表示 date1 和 date2 之间的天数。如果 date1 在 date2 之前,结果为负数;如果在 date2 之后,结果为正数;如果相等&#xf…...

计算机网络学习笔记

第1课 绪论、传输介质 【知识点回顾】 两种导线可以减小电磁干扰: 双绞线(分为非屏蔽双绞线、屏蔽双绞线)(RJ-45用)同轴电缆(短距离使用)网络通信的基本单位:位(bit&…...

Spring Boot性能提升的核武器,速度提升500%!

虚拟线程是 Java 21 引入的一个新特性,用于简化并发编程。它与传统的操作系统线程相比,具有显著的优势: 轻量级:虚拟线程由 JVM 管理,而非操作系统,因此它们的内存占用和创建成本远低于传统线程。理论上&am…...

zig 安装,Hello World 示例

1. 安装 Zig 首先,你需要在你的计算机上安装 Zig 编译器。你可以从 Zig 官方网站 下载适合你操作系统的版本。 安装完成后,你可以在终端中运行以下命令来检查 Zig 是否安装成功: zig version如果一切正常,它会显示 Zig 的版本信…...

【数据库系统概论】第5章 数据库完整性【!触发器】

目录 5.1数据库完整性概述 5.2 实体完整性 5.3 参照完整性 5.4 用户定义的完整性 属性上的约束 1. 列值非空(NOT NULL) 2. 列值唯一(UNIQUE) 3. 检查列值是否满足条件(CHECK) 元组上的约束 5.5 完…...

Linux中通过frp实现内网穿透

1、准备工作 准备一台公网服务器(云服务器),推荐阿里云或者腾讯云都可以 需要下载好frp安装包Linux端的和Windows端的安装包 网址:Releases fatedier/frp (github.com)https://github.com/fatedier/frp/releases 2、下载frp_0…...

Vscode辅助编码AI神器continue插件

案例效果 1、安装或者更新vscode 有些版本的vscode不支持continue,最好更新到最新版,也可以直接官网下载 https://code.visualstudio.com/Download 2、安装continue插件 搜索continue,还未安装的,右下脚有个Install,点击安装即可 <...

上海亚商投顾:沪指探底回升微涨 机器人概念股午后爆发

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 一.市场情绪 市场全天探底回升&#xff0c;沪指盘中跌超1.6%&#xff0c;创业板指一度跌逾3%&#xff0c;午后集体拉升翻红…...

LeetCode 3297.统计重新排列后包含另一个字符串的子字符串数目 I:滑动窗口

【LetMeFly】3297.统计重新排列后包含另一个字符串的子字符串数目 I&#xff1a;滑动窗口 力扣题目链接&#xff1a;https://leetcode.cn/problems/count-substrings-that-can-be-rearranged-to-contain-a-string-i/ 给你两个字符串 word1 和 word2 。 如果一个字符串 x 重新…...

ssm旅游攻略网站设计+jsp

系统包含&#xff1a;源码论文 所用技术&#xff1a;SpringBootVueSSMMybatisMysql 需要源码或者定制看文章最下面或看我的主页 目 录 目 录 III 1 绪论 1 1.1 研究背景 1 1.2 目的和意义 1 1.3 论文结构安排 2 2 相关技术 3 2.1 SSM框架介绍 3 2.2 B/S结构介绍 3 …...

前端学习-环境this对象以及回调函数(二十七)

目录 前言 目标 环境对象 作用 环境对象this是什么&#xff1f; 判断this指向的粗略规则是什么&#xff1f; 回调函数 目标 常见的使用场景 综合案例&#xff1a;Tab任务栏切换 总结 前言 男儿何不带吴钩&#xff0c;收取关山五十州 目标 能够分析判断函数运行在不…...

计算机网络-数据链路层(虚拟局域网VLAN)

2.6 虚拟局域 2.6.1 虚拟局域网概述 以太网交换机连接的各个网络同属于一个广播域&#xff0c;随着以太网的规模扩大&#xff0c;广播域也会相应的扩大&#xff0c;巨大的广播域会带来巨大的弊端。 广播风暴 难以治理 潜在的安全问题 TCP/IP协议下会进行广播的协议&#xff1a…...

Python贪心

贪心 贪心&#xff1a;把整体问题分解成多个步骤&#xff0c;在每个步骤都选取当前步骤的最优方案&#xff0c;直至所有步骤结束&#xff1b;每个步骤不会影响后续步骤核心性质&#xff1a;每次采用局部最优&#xff0c;最终结果就是全局最优如果题目满足上述核心性质&#xf…...

CSS 盒模型

盒模型 CSS盒模型是网页布局的核心概念之一&#xff0c;它描述了网页元素的物理结构和元素内容与周围元素之间的关系。根据W3C规范&#xff0c;每个HTML元素都被视为一个矩形盒子&#xff0c;这个盒子由以下四个部分组成&#xff1a; 内容区&#xff08;Content area&#xff…...

【linux】vi编辑文件及readonly文件修改读写权限方法

板端vi修改文件&#xff1a; 1、vi 文件路径 vi mnt/eol/config/oem_eol.xml2、按 i进入修改状态&#xff0c;此时可以修改配置文件 3、按 esc退出修改状态&#xff0c;并按"wq!保存 问题&#xff1a;readonly文件无法直接vi修改 方案&#xff1a; 1、mount -o remoun…...

Git使用笔记

Git 版本控制 一、Git 介绍二、Git 使用1. 安装及配置2. 使用方法3. Git 命令3. 历史版本回退4. 分支 (Branch) 三、远程仓库1. SSH公钥连接Gitee2. 推送到远程仓库 一、Git 介绍 常见版本控制软件&#xff1a;集中式&#xff08;CVS、SVN&#xff09;&#xff0c;分布式&#…...

mermaid大全(语法、流程图、时序图、甘特图、饼图、用户旅行图、类图)

⚠️ 有些网站的mermaid可能不完整&#xff0c;因此下面教程中可能有些语法是无效的。 &#x1f60a;亲测Typora软件均可以显示。 1. 介绍 Mermaid是一个基于JavaScript的图表绘制工具&#xff0c;它使用类似Markdown的语法来创建和修改各种类型的图表。以下是关于Mermaid的详…...

慧集通(DataLinkX)iPaaS集成平台-业务建模之业务对象(二)

3.UI模板 当我们选择一条已经建好的业务对象点击功能按钮【UI模板】进入该业务对象的UI显示配置界面。 右边填写的是UI模板的编码以及对应名称&#xff1b;菜单界面配置以业务对象UI模板编码获取显示界面。 3.1【列表-按钮】 展示的对应业务对象界面的功能按钮配置&#xff1…...

vue3+ts+element-plus 输入框el-input设置背景颜色

普通情况&#xff1a; 组件内容&#xff1a; <el-input v-model"applyBasicInfo.outerApplyId"/> 样式设置&#xff1a; ::v-deep .el-input__wrapper {background-color: pink; }// 也可以这样设置 ::v-deep(.el-input__wrapper) {background-color: pink…...

python迷宫寻宝 第6关 安全策略

地图&#xff1a; 1、体力不足去找终点&#xff0c;体力足则原地不动 import api## 判断是否需要离场的函数 # 体力足返回False&#xff0c;体力不足返回True def should_leave():# 拿到我离终点的距离e_row api.get.exit(what"row")e_col api.get.exit(what"…...

【计算机网络】lab7 TCP协议

&#x1f308; 个人主页&#xff1a;十二月的猫-CSDN博客 &#x1f525; 系列专栏&#xff1a; &#x1f3c0;计算机网络_十二月的猫的博客-CSDN博客 &#x1f4aa;&#x1f3fb; 十二月的寒冬阻挡不了春天的脚步&#xff0c;十二点的黑夜遮蔽不住黎明的曙光 目录 1. 实验目的…...

Monorepo设置:新手指南

Monorepo是一种项目代码管理方法&#xff0c;指在单个代码仓库中管理多个项目&#xff0c;有助于简化代码共享、版本控制、构建和部署的复杂性&#xff0c;并提供更好的可重用性和协作性。 简单理解&#xff1a;所有项目都在一个代码仓库中 &#x1f4e6;&#xff0c;但这并不意…...

HTTP 请求与响应的结构

一、引言 在当今数字化的时代&#xff0c;网络通信如同空气一般无处不在&#xff0c;而HTTP协议则是网络世界中最为重要的基石之一。当我们在浏览器中输入一个网址&#xff0c;轻松浏览网页、观看视频、下载文件或是进行在线购物等操作时&#xff0c;背后HTTP协议都在默默地发…...

计科高可用服务器架构实训(防火墙、双机热备,VRRP、MSTP、DHCP、OSPF)

一、项目介绍 需求分析&#xff1a; &#xff08;1&#xff09;总部和分部要求网络拓扑简单&#xff0c;方便维护&#xff0c;网络有扩展和冗余性&#xff1b; &#xff08;2&#xff09;总部分财务部&#xff0c;人事部&#xff0c;工程部&#xff0c;技术部&#xff0c;提供…...

Soildworks的学习【2025/1/12】

右键空白处&#xff0c;点击选项卡&#xff0c;即可看到所有已调用的选项卡&#xff1a; 点击机械小齿轮选项卡&#xff0c;选择文档属性&#xff0c;选择GB国标&#xff1a; 之后点击单位&#xff0c;选择MMGS毫米单位&#xff1a; 窗口右下角有MMGS&#xff0c;这里也可以选择…...

ORACLE-表空间和分区控制

--查询最后更新的统计信息时间 SELECT table_name, last_analyzed FROM dba_tables WHERE table_name 表名; --更新统计信息 -----按分区 BEGIN DBMS_STATS.GATHER_TABLE_STATS( ownname > XI_SF, -- 模式名称 tabname > 表名, -- 表名称 partnam…...

C# 与 Windows API 交互的“秘密武器”:结构体和联合体

一、引言 在 C# 的编程世界里&#xff0c;当我们想要深入挖掘 Windows 系统的底层功能&#xff0c;与 Windows API 打交道时&#xff0c;结构体和联合体就像是两把神奇的钥匙&#x1f511; 它们能够帮助我们精准地操控数据&#xff0c;实现一些高级且强大的功能。就好比搭建一…...

【数字化】华为-用变革的方法确保规划落地

导读&#xff1a;华为在数字化转型过程中&#xff0c;深刻认识到变革的必要性&#xff0c;并采用了一系列有效的方法确保转型规划的有效落地。华为认为&#xff0c;数字化转型不仅仅是技术层面的革新&#xff0c;更是企业运作模式、流程、组织、文化等深层次的变革。数字化转型…...

SpringData-Redis缓存

Spring Framework是领先的全堆栈Java/JEE应用程序框架。它提供了一个轻量级容器和一个通过使用依赖注入、AOP和可移植服务抽象实现的非侵入性编程模型。 NoSQL存储系统为传统RDBMS提供了一种横向可扩展性和速度的替代方案。就实现而言&#xff0c;键值存储代表NoSQL空间中最大…...

大语言模型兵马未动,数据准备粮草先行

​从OpenAI正式发布ChatGPT开始&#xff0c;大型语言模型&#xff08;LLM&#xff09;就变得风靡一时。对业界和吃瓜群众来说&#xff0c;这种技术最大的吸引力来自于理解、解释和生成人类语言的能力&#xff0c;毕竟这曾被认为是人类独有的技能。类似CoPilot这样的工具正在迅速…...

跳表和Mysql联合索引的最左原则和索引下推的优化

文章目录 跳表&#xff08;Skip List&#xff09;关键特性跳表的结构示意图跳表的查询效率为什么 MySQL 不使用跳表而使用 B 树&#xff1f;跳表的实际应用场景 总结 MySQL 联合索引的最左匹配原则最左匹配原则的规则示例&#xff1a;创建联合索引查询示例及索引使用情况设计联…...

Android切换语言不退出App

1.需求 实现用户选择语言&#xff08;未点击下一步&#xff09;&#xff0c;更新当前界面UI&#xff0c;点击下一步后&#xff0c;更新App的语言&#xff0c;并进行保存。 实现目标&#xff1a; 1.设置App的语言&#xff0c;本地进行保存 2.updateResources更新本地语言配置…...

Unity编程与游戏开发-编程与游戏开发的关系

游戏开发是一个复杂的多领域合作过程,涵盖了从创意构思到最终实现的多个方面。在这个过程中,技术、设计与美术三大核心要素相互交织,缺一不可。在游戏开发的过程中,Unity作为一款强大的跨平台游戏引擎,凭借其高效的开发工具和庞大的社区支持,成为了很多游戏开发者的首选工…...

【Git】问题汇总

在push的时候显示 protocol error: bad line length 8192 我在本地创建了一个gogs服务器&#xff0c;现在正在上传代码&#xff0c;但是出现了上述的这个问题。 解决方法 设置本地http.postBuffer&#xff08;待验证&#xff09; 方法一&#xff1a;全局配置 git config --g…...

搭建docker私有化仓库Harbor

Docker私有仓库概述 Docker私有仓库介绍 Docker私有仓库是个人、组织或企业内部用于存储和管理Docker镜像的存储库。Docker默认会有一个公共的仓库Docker Hub,而与Docker Hub不同,私有仓库是受限访问的,只有授权用户才能够上传、下载和管理其中的镜像。这种私有仓库可以部…...

修改sshd默认配置,提升安全

对于Linux服务器&#xff0c;特别是暴露在公网的服务器&#xff0c;会经常被人扫描、探测和攻击。包括通过ssh访问登录攻击。对此&#xff0c;对默认的sshd配置进行调整&#xff0c;提升安全。 下面以CentOS 7.9为例说明&#xff1a; 一、常见安全措施 以root用户编辑vim /e…...

formik 的使用

礼记有言&#xff1a;独学而无友&#xff0c;则孤陋而寡闻 让我们一起了解更多便捷方法&#xff0c;缩短开发时间去摸鱼&#xff0c;嘿嘿。 框架&#xff1a;react 在写表单的时候&#xff0c;我不太喜欢把验证写的很繁琐&#xff0c;这里讲介绍&#xff0c;验证表单的非常好用…...

【学习笔记】理解深度学习的基础:机器学习

1. 机器学习基础 1.1 机器学习的定义与重要性 定义&#xff1a;深度学习是机器学习的一种特定形式。为了深入理解深度学习&#xff0c;必须牢固掌握机器学习的基本原理。机器学习算法是一种能够从数据中学习的算法&#xff0c;通过经验E在任务T上提高性能度量P&#xff08;Mi…...

Docker 基础知识

背景 传统的linux的环境部署 命令多步骤多安装版本多使用docker的话,一个命令就可以全部搞定安装linux 之前安装过,所以直接使用的开罩进行复制的如果之前配置过静态地址,需要改成IPV4静态地址访问安装docker 参考连接:https://b11et3un53m.feishu.cn/wiki/Rfocw7ctXij2RBk…...

pyqt鸟瞰

QApplication‌是Qt框架中的一个类&#xff0c;专门用于管理基于QWidget的图形用户界面&#xff08;GUI&#xff09;应用程序的控制流和主要设置。QApplication类继承自QGuiApplication&#xff0c;提供了许多与GUI相关的功能&#xff0c;如窗口系统集成、事件处理等。 QAppli…...

Linux syslog 运行机制

Busybox的syslogd认识与使用 syslogd 的基本工作原理&#xff1a; syslogd 是一个系统日志守护进程&#xff0c;它接收来自各种进程和系统服务的日志消息&#xff0c;并根据配置将这些消息存储到不同的日志文件中。 syslogd日志记录器由两个守护进程&#xff08;klogd&#x…...

ZYNQ初识10(zynq_7010)UART通信实验

基于bi站正点原子讲解视频&#xff1a; 系统框图&#xff08;基于串口的数据回环&#xff09;如下&#xff1a; 以下&#xff0c;是串口接收端的波形图&#xff0c;系统时钟和波特率时钟不同&#xff0c;为异步时钟&#xff0c;&#xff0c;需要先延时两拍&#xff0c;将时钟同…...

day38 tcp 并发 ,linux下的IO模型----IO多路复用

TCP 并发 由于tcp协议只能实现一对一的通信模式。为了实现一对多&#xff0c;有以下的的处理方式 1. 多进程 开销大 效率低 2. 多线程 创建线程需要耗时 3. 线程池 多线程模型创建线程耗时问题&#xff0c;提前创建 4. IO多路复用 在不创建进程和线程的前提下&#xff0c;对…...

el-date-picker 禁用一个月前、一个月后(当天之后)的时间 datetimerange

文章目录 功能需求今天是 2025-01-09示例1示例2 代码 Vue2 功能需求 时间范围选择器&#xff0c;最大时间选择尺度为一个月。 今天是 2025-01-09 示例1 选择 2025-01-02 日 禁用未来日期&#xff08;2025-01-09之后日期&#xff09; 禁用上月2号&#xff08;31日之前&#…...

ES6的高阶语法特性

一、模板字符串的高级用法 1.1.模板字符串的嵌套 模板字符串的嵌套允许在一个模板字符串内部再嵌入一个或多个模板字符串。这种嵌套结构在处理复杂数据结构或生成具有层级关系的文本时非常有用。 1. 嵌套示例 假设我们有一个包含多个对象的数组&#xff0c;每个对象都有名称、…...

数据在内存的存储

数据类型介绍 前面我们已经学习了基本的内置类型&#xff1a; char //字符数据类型 1字节 打印%c short //短整型 2字节 打印%hd int //整形 4字节 打印%d long long int //长整型 4/8字节 打印%ld l…...