智能优化算法:基于驾驶训练的优化算法-附代码

news2024/11/16 4:26:54

智能优化算法:基于驾驶训练的优化算法

文章目录

  • 智能优化算法:基于驾驶训练的优化算法
    • 1. 基于驾驶训练优化算法
      • 1.1 初始化
      • 1.2 阶段一:驾驶教练培训(探索阶段)
      • 1.3 阶段二:学员学习(探索阶段)
      • 1.4 阶段三:个人练习(开发阶段)
    • 2.实验结果
    • 3.参考文献
    • 4.Matlab

摘要:基于驾驶训练的优化算法(Driving Training-Based Optimization (DTBO)),是于2022年提出的一种基于驾驶训练行为的优化算法,该算法通过模拟学习驾驶行为来进行寻优,具有寻优能力强,收敛速度快等特点

1. 基于驾驶训练优化算法

1.1 初始化

与其他优化算法类似,在寻优空间里随机初始化种群:
x i , j = l b j + r ⋅ ( u b j − l b j ) , (2) x_{i, j}=l b_j+r \cdot\left(u b_j-l b_j\right), \tag{2} xi,j=lbj+r(ubjlbj),(2)
其中 x i , j x_{i,j} xi,j为个体, l b j lb_j lbj为寻优下边界, u b j ub_j ubj为寻优上边界, r r r为[0,1]之间的随机数。

1.2 阶段一:驾驶教练培训(探索阶段)

DTBO更新的第一阶段是基于学习驾驶员对驾驶教练的选择,然后是所选教练对学习驾驶员的驾驶训练。在DTBO人群中,一部分最优秀的成员被视为驾驶教练,其余成员则被视为学习驾驶。选择驾驶教练并学习该教练的技能将导致人群成员在搜索空间中的不同区域移动。这将提高DTBO在全球搜索和发现最佳区域方面的勘探能力。因此,DTBO更新的这一阶段证明了该算法的探索能力。在每次迭代中,基于目标函数值的比较,选择DTBO的N个成员作为驾驶教练,如等式所示。(4)。
D I = [ D I 1 ⋮ D I i ⋮ D I N D I ] N D I × m = [ D I 11 ⋯ D I 1 j ⋯ D I 1 m ⋮ ⋱ ⋮ ⋱ ⋮ D I i 1 ⋯ D I i j ⋯ D I i m ⋮ ⋱ ⋮ ⋱ ⋮ D I N D I 1 ⋯ D I N D I j ⋯ D I N D I m ] N D I × m , (4) D I=\left[\begin{array}{c} D I_1 \\ \vdots \\ D I_i \\ \vdots \\ D I_{N_{D I}} \end{array}\right]_{N_{D I} \times m}=\left[\begin{array}{ccccc} D I_{11} & \cdots & D I_{1 j} & \cdots & D I_{1 m} \\ \vdots & \ddots & \vdots & \ddots & \vdots \\ D I_{i 1} & \cdots & D I_{i j} & \cdots & D I_{i m} \\ \vdots & \ddots & \vdots & \ddots & \vdots \\ D I_{N_{D I} 1} & \cdots & D I_{N_{D I j}} & \cdots & D I_{N_{D I} m} \end{array}\right]_{N_{D I} \times m},\tag{4} DI= DI1DIiDINDI NDI×m= DI11DIi1DINDI1DI1jDIijDINDIjDI1mDIimDINDIm NDI×m,(4)
其中 D I DI DI是教练集合, N D I N_{DI} NDI是教练的数量,其中 N D I = f l o o r ( 0.1 ∗ N ∗ ( 1 − t / T ) ) N_{DI}=floor(0.1*N*(1-t/T)) NDI=floor(0.1N(1t/T)) t t t是当前迭代次数, T T T是最大迭代次数。

该DTBO阶段的数学建模是这样的,即,首先,使用等式(5)计算每个成员的新位置。然后,根据等式(6),如果该新位置更优,则该新位置将取代先前位置
x i , j P 1 = { x i , j + r ⋅ ( D I k i , j − I ⋅ x i , j ) , F D I k i < F i ; x i , j + r ⋅ ( x i , j − D I k i , j ) ,  otherwise  , (5) x_{i, j}^{P_1}= \begin{cases}x_{i, j}+r \cdot\left(D I_{k_i, j}-I \cdot x_{i, j}\right), & F_{D I_{k_i}}<F_i ; \\ x_{i, j}+r \cdot\left(x_{i, j}-D I_{k_{i, j}}\right), & \text { otherwise },\end{cases} \tag{5} xi,jP1={xi,j+r(DIki,jIxi,j),xi,j+r(xi,jDIki,j),FDIki<Fi; otherwise ,(5)

X i = { X i P 1 , F i p 1 < F i X i ,  otherwise  (6) X_i= \begin{cases}X_i^{P_1}, & F_i^{p_1}<F_i \\ X_i, & \text { otherwise }\end{cases} \tag{6} Xi={XiP1,Xi,Fip1<Fi otherwise (6)

1.3 阶段二:学员学习(探索阶段)

DTBO更新的第二阶段是基于学习型驾驶员模仿教练,也就是说,学习型驾驶员试图对教练的所有动作和技能进行建模。这个过程将DTBO成员移动到搜索空间中的不同位置,从而增加了DTBO的探索能力。为了在数学上模拟这一概念,根据等式(7),基于每个成员与教练的线性组合来生成新的位置。如果这个新位置更优,则它将根据等式(8)替换先前的位置。
x i , j P 2 = P ⋅ x i , j + ( 1 − P ) ⋅ D I k i , j , (7) x_{i, j}^{P 2}=P \cdot x_{i, j}+(1-P) \cdot D I_{k_{i, j}}, \tag{7} xi,jP2=Pxi,j+(1P)DIki,j,(7)

X i = { X i P 2 , F i p 2 < F i X i ,  otherwise  (8) X_i= \begin{cases}X_i^{P 2}, & F_i^{p 2}<F_i \\ X_i, & \text { otherwise }\end{cases} \tag{8} Xi={XiP2,Xi,Fip2<Fi otherwise (8)

其中 P P P的计算如下:
P = 0.01 + 0.9 ( 1 − t T ) (9) P=0.01+0.9\left(1-\frac{t}{T}\right) \tag{9} P=0.01+0.9(1Tt)(9)

1.4 阶段三:个人练习(开发阶段)

DTBO更新的第三阶段基于每位学习驾驶者的个人实践,以提高驾驶技能。在这一阶段,每位学习型驾驶员都会努力接近自己的最佳技能。该阶段允许每个成员基于其当前位置的本地搜索来发现更好的位置。这个阶段展示了DTBO利用本地搜索的能力。对该DTBO阶段进行数学建模,使得首先根据等式(10)在每个种群成员附近生成随机位置。然后,根据等式(11),如果该位置更优,则该位置将取代先前的位置。
x i , j P 3 = x i , j + ( 1 − 2 r ) ⋅ R ⋅ ( 1 − t T ) ⋅ x i , j , (10) x_{i, j}^{P 3}=x_{i, j}+(1-2 r) \cdot R \cdot\left(1-\frac{t}{T}\right) \cdot x_{i, j}, \tag{10} xi,jP3=xi,j+(12r)R(1Tt)xi,j,(10)

X i = { X i P 3 , F i P 3 < F i X i ,  otherwise  (11) X_i= \begin{cases}X_i^{P 3}, & F_i^{P 3}<F_i \\ X_i, & \text { otherwise }\end{cases} \tag{11} Xi={XiP3,Xi,FiP3<Fi otherwise (11)

其中R是一个等于0.05的常量,r为[0,1]之间的随机数。

流程图如下:

在这里插入图片描述

2.实验结果

在这里插入图片描述

3.参考文献

[1] Dehghani, M., Trojovská, E. & Trojovský, P. A new human-based metaheuristic algorithm for solving optimization problems on the base of simulation of driving training process. Sci Rep 12, 9924 (2022). https://doi.org/10.1038/s41598-022-14225-7

4.Matlab

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/498126.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Jupyter notebook 如何设定默认的保存目录?

前言&#xff1a; 做智能车的时候&#xff0c;Jupter Notebook的默认保存在可怜的C盘&#xff0c;本来就很紧张的C肯定受不了&#xff0c;要改到别的地方&#xff0c;网上找了一些参考&#xff0c;说变更一下配置地址就可以了&#xff0c;照着做&#xff0c;99%的博客说&#x…

Linux驱动开发笔记(一):helloworld驱动源码编写、makefile编写以及驱动编译基本流程

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/130534343 红胖子网络科技博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬…

算法和算法竞赛的知识点

2023年5月7日&#xff0c;周日早上&#xff1a; 虽然今天早上我作出了改变学习算法方式的决定&#xff0c;但是知识点有哪些、具体该怎么做还没搞清楚&#xff0c;于是去刷题网站截图了它们的标签。 或许看相关书籍的知识点和题单也不错。 LeetCode的知识点 力扣 蓝桥杯的知识…

2023招商Fintech数据赛道rank33 赛后分享

赛题需求&#xff1a; 本次比赛为参赛选手提供了两个数据集&#xff0c;即训练数据集(train)和测试数据集(test_A榜/test_B榜)。参赛选手需要基于训练数据集&#xff0c;通过有效的特征提取&#xff0c;构建客户进取类产品配置发生时点预测模型,并将模型应用于测试数据集上,输出…

力扣sql中等篇练习(十六)

力扣sql中等篇练习(十六) 1 不同性别每日分数统计 1.1 题目内容 1.1.1 基本题目信息 1.1.2 示例输入输出 a 示例输入 b 示例输出 1.2 示例sql语句 # 分数是往后累加的 SELECT s2.gender,s2.day,sum(s1.score_points) total FROM Scores s1 CROSS JOIN Scores s2 ON s2.gen…

java创建多线程的方法

Java中是可以创建多个线程的&#xff0c;每个线程都有自己的名字和时间戳。下面我们来看看创建多个线程的方法。 创建多个线程&#xff0c;需要使用到 Thread类中的 create方法。需要注意的是&#xff0c;不是所有的线程都可以使用 create方法来创建&#xff0c;只有当这些线程…

目前可用的ChatGPT网站

本文意在整理可用gpt-3.5、gpt-4.0等网站。 本文主要是方便自己翻阅&#xff0c;如对您也有所帮助&#xff0c;不胜荣幸~ 文章目录 chatgpt.qdymys.cngpttalkchatgpt-cn.cobing.com总结 chatgpt.qdymys.cn 网址&#xff1a;https://chatgpt.qdymys.cn/限制&#xff1a;三小时只…

【新星计划-2023】TCP/IP协议讲解

相信大家在学习的过程中一定听到过TCP/IP这个协议&#xff0c;那么&#xff0c;TCP/IP协议是什么&#xff1f;为什么会有TCP/IP协议&#xff1f; 一、TCP/IP是什么&#xff1f; TCP/IP是用于计算机通信的一组协议&#xff0c;我们通常称它为TCP/IP协议族。它是70年代中期美国…

Spring Boot项目瘦身

目录 1&#xff0c;什么是瘦身&#xff1f;2&#xff0c;为什么要瘦身&#xff1f;3&#xff0c;如何瘦身&#xff1f;3.1&#xff0c;瘦身思路&#xff1a;3.2&#xff0c;瘦身方法 4&#xff0c;瘦身后运行 1&#xff0c;什么是瘦身&#xff1f; 瘦身&#xff1a;thinBody&a…

CSS进阶

01-复合选择器 定义&#xff1a;由两个或多个基础选择器&#xff0c;通过不同的方式组合而成。 作用&#xff1a;更准确、更高效的选择目标元素&#xff08;标签&#xff09;。 后代选择器 后代选择器&#xff1a;选中某元素的后代元素。 选择器写法&#xff1a;父选择器 …

Spring AOP续--织入

上篇讲到SpringAOP的一些用法以及概念&#xff0c;这里我们单独讲一下AOP中的“织入”。 我们知道&#xff0c;SpringAOP是基于动态代理实现的技术&#xff0c;而织入则是一个生成动态代理对象并且将切面和目标对象方法编织成为约定流程的过程。 对于通知&#xff0c;上篇文章…

数字化转型导师坚鹏:如何制定与实施企业数字化转型年度培训规划

如何制定与实施企业数字化转型年度培训规划 ——以推动企业数字化转型战略落地为核心&#xff0c;实现知行果合一 课程背景&#xff1a; 很多企业都在开展企业数字化转型培训工作&#xff0c;目前存在以下问题急需解决&#xff1a; 缺少针对性的企业数字化转型年度培训规划…

Python每日一练(20230507) 丑数I\II\III、超级丑数

目录 1. 丑数 Ugly Number I 2. 丑数 Ugly Number II 3. 丑数 Ugly Number III 4. 超级丑数 Super Ugly Number &#x1f31f; 每日一练刷题专栏 &#x1f31f; Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一练 专栏 1. 丑数 Ugly Number I …

JavaWeb——1.JavaWeb概述

这是我们javaweb的第一篇文章&#xff0c;首先我们来介绍一下什么是Javaweb JavaWeb&#xff1a;使用java语言完成服务器端程序开发 如下面这张图所示&#xff1a; 可能不太好理解&#xff0c;那么就用通俗的语言来解释一下。 任何的一个应用程序&#xff0c;首先它会有页面…

在 Python 中将秒转换为小时、分钟和秒

文章目录 在 Python 中使用数学计算将秒转换为小时、分钟和秒的自定义函数在 Python 中使用 divmod() 函数将秒转换为小时、分钟和秒在 Python 中使用 DateTime 模块将秒转换为小时、分钟和秒在 Python 中使用时间模块将秒转换为小时、分钟和秒 本篇文章将讨论使用 Python 中的…

Golang每日一练(leetDay0058) 比较版本号、分数转小数

目录 165. 比较版本号 Compare Version Numbers &#x1f31f;&#x1f31f; 166. 分数到小数 Fraction To Recurring Decimal &#x1f31f;&#x1f31f; &#x1f31f; 每日一练刷题专栏 &#x1f31f; Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 …

Python动态绘图详解

文章目录 示例FuncAnimation三维情况 示例 matplotlib中的animation提供了动态绘图功能&#xff0c;下面列举一个最简单的动态绘制三角函数的例子&#xff0c;来初步演示一下。 import numpy as np import matplotlib.pyplot as plt import matplotlib.animation as animatio…

深入理解Java虚拟机——垃圾收集器

1.前言 在前面我们已经说过了垃圾收集算法&#xff0c;那么现在我们要讲的垃圾收集器&#xff0c;实际上就是对垃圾收集算法的实践。 首先我们先看一张图&#xff0c;这张图可以帮助我们了解各款经典垃圾收集器之间的关系&#xff1a; 图中的垃圾收集器所在的区域代表了它是属…

学系统集成项目管理工程师(中项)系列18b_进度管理(下)

1. 制定进度计划 1.1. 分析活动顺序、持续时间、资源需求和进度制约因素&#xff0c;创建项目进度模型的过程 1.2. 输入 1.2.1. 进度管理计划 1.2.2. 活动清单 1.2.3. 活动属性 1.2.4. 项目进度网络图 1.2.5. 活动资源需求 1.2.6. 资源日历 1.2.7. 活动持续时间估算 …

Linux网络编程——套接字网络编程预备知识

0.关注博主有更多知识 操作系统入门知识合集 目录 1.理解IP地址和MAC地址 2.认识端口号 3.感性认识TCP协议和UDP协议 4.网络字节序 5.socket编程接口 1.理解IP地址和MAC地址 事实上在上一篇博客当中粗浅了介绍一个IP地址MAC地址&#xff0c;其中我们知道IP地址提供方向…