【论文复现】基于维度狩猎学习的改进秃鹰搜索算法用于自动驾驶问题

embedded/2025/2/4 15:56:48/

目录

    • 1.摘要
    • 2.秃鹰搜索算法BES原理
    • 3.改进策略
    • 4.结果展示
    • 5.参考文献
    • 6.代码获取


在这里插入图片描述

1.摘要

由于道路曲率穿透和参数不确定性带来的侧向偏差,自动驾驶车辆控制器面临提供准确、快速响应及小幅超调等性能挑战。本文提出了一种基于维度狩猎学习(DLH)机制改进秃鹰搜索算法(IBES)。此外,通过基于Hermite-Biehler定理的频率域界限,优化模型预测控制(MPC)的调整,以适应AV速度和道路曲率的变化。

2.秃鹰搜索算法BES原理

【智能算法】秃鹰搜索算法(BES)原理及实现

3.改进策略

在秃鹰搜索(BES)算法中,秃鹰依靠先前所有解 P m e a n P_{mean} Pmean来构建新解,但这种方法导致收敛缓慢、容易陷入局部最优,并且早期失去多样性。为了解决这些问题,本文引入了一种基于维度学习的狩猎(DLH)策略,通过从邻近秃鹰的学习中更新每只秃鹰的位置。DLH策略为种群中每只秃鹰生成额外的候选解,并通过计算每只秃鹰当前位置与候选位置之间的欧几里得距离,以精细化搜索过程。
E i = ∥ P i – P i – B E S , n e w ∥ E_i=\|P_i–P_{i–BES,new}\| Ei=PiPiBES,new

根据欧几里得距离 E i E_i Ei,推导出每只秃鹰 P i P_i Pi的邻居 N i N_i Ni
N i = { P j ∣ D i ( P i , P j ) ≤ N i , P j ∈ P o p u l a t i o n } N_i= \begin{Bmatrix} P_j|D_i\left(P_i,P_j\right)\leq N_i,P_j\in Population \end{Bmatrix} Ni={PjDi(Pi,Pj)Ni,PjPopulation}

其中, D i D_i Di P i P_i Pi P j P_j Pj之间的欧几里得距离。通过邻居和随机选定的秃鹰学习得到的秃鹰 P i P_i Pi的新解决方案的每个维度将按照以下方式更新:
P i − D L H , n e w = P i + r a n d × ( P n − P r ) P_{i-DLH,new}=P_i+rand\times(P_n-P_r) PiDLH,new=Pi+rand×(PnPr)
贪心保留:
P i , n e w = { P i − B E S , n e w , i f f ( P i − B E S ) < f ( P i − D L H ) P i − D L H , n e w , \left.P_{i,new}=\left\{ \begin{array} {c}P_{i-BES,new},iff(P_{i-BES})<f(P_{i-DLH}) \\ P_{i-DLH,new}, \end{array}\right.\right. Pi,new={PiBES,new,iff(PiBES)<f(PiDLH)PiDLH,new,

流程图

在这里插入图片描述

4.结果展示

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.参考文献

[1] Elsisi M, Essa M E S M. Improved bald eagle search algorithm with dimension learning-based hunting for autonomous vehicle including vision dynamics[J]. Applied Intelligence, 2023, 53(10): 11997-12014.

6.代码获取


http://www.ppmy.cn/embedded/159507.html

相关文章

攻防世界 fileclude

代码审计 WRONG WAY! <?php include("flag.php"); highlight_file(__FILE__);//高亮显示文件的源代码 if(isset($_GET["file1"]) && isset($_GET["file2"]))//检查file1和file2参数是否存在 {$file1 $_GET["file1"];$fi…

【Pytorch和Keras】使用transformer库进行图像分类

目录 一、环境准备二、基于Pytorch的预训练模型1、准备数据集2、加载预训练模型3、 使用pytorch进行模型构建 三、基于keras的预训练模型四、模型测试五、参考 现在大多数的模型都会上传到huggface平台进行统一的管理&#xff0c;transformer库能关联到huggface中对应的模型&am…

C++类的初始化列表是怎么一回事?哪些东西必须放在初始化列表中进行初始化,原因是什么?

目录 01-C类的初始化列表的概要介绍语法为什么使用初始化列表&#xff1f;示例代码小结 02-初始化列表是写在构造函数的函数体之前的代码的**1. 结构分析****2. 示例&#xff1a;基类 成员变量****输出** **3. 初始化列表 vs 构造函数体****(1) 使用初始化列表****(2) 在构造函…

Java中的泛型及其用途是什么?

Java中的泛型&#xff08;Generics&#xff09;是Java语言在2004年引入的一项重要特性&#xff0c;用于增强代码的类型安全性和复用性。泛型允许程序员在定义类、接口或方法时指定类型参数&#xff0c;从而实现对不同数据类型的统一操作。本文将详细探讨Java泛型的概念、用途以…

Vue.js组件开发-实现左侧浮动菜单跟随页面滚动

使用 Vue 实现左侧浮动菜单跟随页面滚动 实现步骤 创建 Vue 项目&#xff1a;使用 Vue CLI 创建一个新的 Vue 项目。设计 HTML 结构&#xff1a;包含一个左侧浮动菜单和一个主要内容区域。编写 CSS 样式&#xff1a;设置菜单的初始样式和滚动时的样式。使用 Vue 的生命周期钩…

使用大语言模型在表格化网络安全数据中进行高效异常检测

论文链接 Efficient anomaly detection in tabular cybersecurity data using large language models 论文主要内容 这篇论文介绍了一种基于大语言模型&#xff08;LLMs&#xff09;的创新方法&#xff0c;用于表格网络安全数据中的异常检测&#xff0c;称为“基于引导式提示…

Linux:宏观搭建网络体系

一、计算机网络背景 1、独立模式&#xff1a;计算机之间相互独立 可是这样的话&#xff0c;如果我们想要做协作就必然需要交互数据&#xff0c;就必须得使用U盘进行拷贝&#xff0c;效率很低&#xff0c;所以我们需要网络互联&#xff0c;将计算机连向同一台服务器&#xff0c…

初入机器学习

写在前面 本专栏专门撰写深度学习相关的内容&#xff0c;防止自己遗忘&#xff0c;也为大家提供一些个人的思考 一切仅供参考 概念辨析 深度学习&#xff1a; 本质是建模&#xff0c;将训练得到的模型作为系统的一部分使用侧重于发现样本集中隐含的规律难点是认识并了解模型&…