您当前所在位置: 主页 > 新闻动态 > 通知公告

启发式优化算法中,如何使之避免陷入局部最优解?

发布时间:2024-04-29 04:13|栏目: 通知公告 |浏览次数:
启发式优化算法,比如蚁群算法,粒子群算法,遗传算法等。目前知道的有引入混沌机制,类似于遗传算法里的变异吧。请问还有没有什么好的方式? 使用自定义启发式算法,让混合整数模型 (MIP)求解更快 在本次讲座中,您可以了解到: 哪些模型可以从自定义混合整数( MIP )启发式算法中受益,并了解如何构建您自己的自定义的混合整数( MIP )启发式算法,通过实际案例说明利用模型结构和 MIP 树中松弛解值,构建不同整数启发式算法。 演示文稿下载地址: github.com/Gurobi/pres-

问题描述:

步骤一:

原始数据为X1, X2 和Y

根据logistic回归进行二分类。

拟合数据模型为

z=w_{1}\	imes  x_1+ w_{1}\	imes  x_1

y=\\frac{1}{1+e^{-z}}

结果显示:

损失函数虽然显示收敛,但我认为步骤一拟合的结果不理想。所以我将数据进行了升维,

原始数据变更为:

x_{1}, x_{2},x_{1}^{2}, x_{2}^{2}

当前拟合的数据模型为

z=w_{1}\	imes x_{1}+ w_{2}\	imes x_{2}+ w_{3}\	imes x_{1}^{2}+ w_{4}\	imes x_{2}^{2}

y=\\frac{1}{1+e^{-z}}

结果显示:

其中绿色线是回归的结果,红色的线是手动画的期望回归的结果。我发现随着初始位置的选择不同,导致回归曲线呈现不一样的状态。但无论怎么调整初始位置,曲线始终向左下弯曲,所以我认为一方面可能是局部最优和全局最优的问题,另一个也可能是模型选择的问题,比如对于二次函数而言,只需要调整二次项正负即可更改开口方向,但优化过程中系数会自动调整正负,所以应该不是需要手动改模型中符号的问题。以上困惑,恳请各位大佬帮忙查看一下,问题所在。

启发式算法(Heuristic Algorithm)是一种在解决问题时通过启发式规则来选择下一步操作的算法。它通常用于解决NP-hard问题,这些问题的精确算法在复杂度上是不可行的。

例如,贪心算法是一种常见的启发式算法,它在每一步都选择当前最优的选择。比如在寻找最短路径问题中,贪心算法每一步都选择当前离终点最近的节点。

另一个例子是A*搜索算法, 主要用于解决在地图中从起点到终点的最短路径问题,它通过评估每个点到终点的预估距离来指导搜索,每次选择最小f(n)=g(n) + h(n) 的节点作为下一步搜索的节点。

A*启发式算法的代码示例如下:
def a_star(graph, start, end):
# 创建一个字典来存储每个节点到终点的距离
distances={node: float(‘infinity’) for node in graph}
distances[start]=0

# 创建一个字典来存储每个节点的前驱
previous={node: None for node in graph}

# 创建一个优先队列来存储节点
queue=PriorityQueue()
queue.put((0, start))

# 开始遍历
while not queue.

转载说明:本文部分内容引用自文档管理软件https://www.teamdoc.cn/archives/2929,转载请提供出处




路径规划是移动机器人导航规划中的一个十分重要且关键的研究课题。

移动的机器人总是在动态、复杂和不可控的环境中工作,比如对核电站的检查和变电站的检查。然而,复杂的动态工作环境要求移动的机器人能够调整其运动路线,以自主完成任务。使机器人能够实现自主移动的最关键因素之一是路径规划。

移动机器人路径规划技术,就是机器人在遵循一些优化指标(比如时间最短、路程最优和能耗最低等)前提下,在运行环境中规划出从起始点到目标点不发生碰撞的最优路径

目前,移动的机器人路径规划的三大难题是环境建模、算法收敛速度和易陷入局部最优解。其中环境建模可以通过2D的栅格地图解决;而收敛速度和避免局部最优则涉及优化算法的设计或其他算法集成

路径规划方法可以分为以下2种:

经典方法(如A*、Dijkstra算法),这类方法求解速度较快,但若存在多个最小值时,其不能保证得到最优解。

元启发式方法(即依托各类新型优化算法),此类方法简单灵活,能够跳出局部最优,受到许多学者的青睐。

本文作者将通过经典、元启发式算法求解机器人路径规划,并引入作者的原创改进算法进行对比分析

00 文章目录

1 环境建模

2 优化算法

3 实验结果

4 源码获取?

01 环境建模

本文将移动机器人的环境设置为二维平面空间,使用栅格法建立环境模型。栅格法是地图建模中的一种经典方法,能直观地表达环境空间信息且信息数据易存储。在栅格地图中,障碍物的位置和大小是已知的,并且障碍物的大小和位置在机器人的运动过程中不会改变。

下图展示了2个二维栅格环境





分别表征了简单和复杂的工作环境栅格地图中,障碍物栅格为深色区域,可行栅格为浅色区域,每个栅格的8 个直接相邻的栅格为可直接通行栅格,机器人可在其中的可行栅格中根据一定规则选取下一前行栅格,相邻栅格间的距离用栅格中点之间的欧几里得距离表示。



[图:张军,张婷,于士坤.应用蚁群算法的全局路径规划改进[J].新乡学院学报,2023,40(06):25-28+51.]

假设机器人从起始点总共经过 M 步到达目标点,则目标函数为移动机器人的无碰路径长度 L,并使其长度达到最短:



式中,d(m)为欧式距离。

02 优化算法

本文中作者采用

经典算法:A*

启发式算法:WOA、PSO、GWO以及作者的原创改进算法AAMCWOA。

其具体原理这里不再阐述。

显著提升!| (WOA)融合模拟退火和自适应变异的混沌鲸鱼优化算法应用于函数寻优

超详细 | 鲸鱼优化算法原理及其实现(Matlab/Python)

超详细 | 灰狼优化算法原理及其实现(Matlab)

03 实验结果

在简单栅格地图中,运行程序结果如下:



其路径长度及运行时间如下:



在复杂栅格地图中,运行程序结果如下:



其路径长度及运行时间如下:

可以看到通过启发式算法较之经典方法进行路径规划,能有效跳出局部最优,但其计算复杂度较大

04 源码获取

1.经典的A*算法应用于栅格路径规划获取:

见简介

其文件如下:




2.A*、GWO、WOA、PSO算法应用于栅格(简单/复杂)路径规划获取:

见简介

支持主程序一键运行,能够生成各算法运行结果(路径长度、运行时间)的excel表格




3.A*、GWO、WOA、PSO、AAMCWOA算法应用于栅格(简单/复杂)路径规划获取:

见简介

支持主程序一键运行,能够生成各算法运行结果(路径长度、运行时间)的excel表格




另:如果有伙伴有待解决的优化问题(各种领域都可),可以发我,我会选择性的更新利用优化算法解决这些问题的文章。

如果这篇文章对你有帮助或启发,可以点击右下角的赞/在看 (?_)?(不点也行)


足球队训练算法(Football team training algorithm, FTTA)是一种新型的元启发式算法(智能优化算法),灵感来自高水平足球训练班中球员的行为。该成果由Zhirui Tian等人于2024年发表在SCI人工智能一区顶刊Expert Systems With Applications 上。

由于发表时间较短,谷歌学术上还没人引用!你先用,你就是创新!

足球团队训练算法(FTTA)是通过模拟高水平足球训练课上球员的行为来实现的。通常,足球训练课分为三个部分:集体训练、小组训练和个人额外训练。具体行为和公式如下:

训练开始时,球员们将在教练的指导下进行集体训练,教练将首先通过一系列测试(体能功能)让球员们了解自己的水平。然后球员们会根据自己的水平制定自己的集体训练计划。我们将玩家分为四种不同类型:追随者、发现者、思考者和波动者。在每次迭代中,玩家都会随机更改自己的类型。(1)追随者追随者是当前最佳玩家的狂热追随者,他在每个维度上都朝着最佳玩家努力,希望达到当前最佳玩家水平,但由于力量的限制,往往每个维度都只能随机移动到最佳玩家。方程式如下:

其中当前最佳玩家被定义为Fkbest,其中k是迭代次数,Fkbestj是其在维度j上的值;当前玩家定义为Fki;i是其玩家数量,Fkij是其在维度j上的值,Fkijnew是玩家在训练后在维度j的状态。

(2)发现者

发现者比追随者更理性。他们不仅看到了最好的球员,也看到了最差的球员,所以他们不仅朝着最好的球员努力,而且尽最大努力避免成为最糟糕的球员。方程式如下:

其中当前最差的玩家被定义为Fkworst,k是迭代次数,其中FkWorstj是其在维度j中的值。Fkijnew是玩家在训练后在维度j上的状态。

(3)思考者

思考者比他们面前的人更警觉,他们直接看到了最好的玩家和最差的玩家之间的差距,并努力达到每个维度的差距,方程如下:

在维度j中,FkBestj-FkWorstj是当前最佳玩家和最差玩家之间的差向量,k是迭代次数。(4)波动者波动性拒绝向任何人学习,他们自己训练,所以状态会有一定的波动。当然,随着训练次数的增加(迭代次数)。玩家状态的波动会越来越小,我们将玩家状态的变化定义如下:

其中,t(k)是一个具有t分布的随机数,其自由度为当前迭代次数,随着自由度的增加,t分布接近中间值(0)的概率越来越高,两端的分布逐渐减小,将越来越接近正态分布。因此,随着迭代次数的增加,波动程度会越来越小,并逐渐从全局搜索变为局部搜索。

该阶段原理解释图如下:

集体训练结束后,足球训练过程已进入小组训练阶段,教练根据球员的特点将球员分为四类(每个维度都是一个特征值):前锋、中场、后卫和守门员。在分组训练中,我们使用MGEM自适应聚类方法(MixGaussEM),通过聚类方法模拟教练员的行为,并根据其自身特点将人群分为四类。具体的分类形式如下:

作者设置了一个阈值:团队人数(Teamnumber?2),这是每组中的最小人数。作者假设,如果组的数量小于这个值,则无法实施组训练。一旦发生这种情况,教练们将进行第二次分组,采用均匀随机分组的策略,将球员随机均匀地分为四组。

教练完成分组后,球员将与小组中的其他球员进行学习或交流。我们将群体训练定义为三种状态:最优学习、随机学习和随机交流。我们将学习概率定义为pstudy,通信概率为pcomm,玩家将在每次迭代中随机选择状态。

(1)最优学习

在每个维度中,玩家都有一定的概率直接学习小组中最好的玩家的能力值。公式定义如下:

其中Fk-teaml-Best是组l中最好的玩家,k是迭代次数,teaml代表组l,Fk-teaml-Best-j是组l的最好玩家的j维,Fk-teaml-ij-new是玩家在最优学习后在j维中的状态。

(2)随机学习

在每个维度中,玩家都有一定的概率直接学习组中任意随机玩家的能力值。公式定义如下:

其中Fk-teaml-Random是组l中的随机玩家,k是迭代次数,teaml表示组l,Fk-teaml-Random-j是组l的随机玩家的j维,Fk-teaml-ij-new是随机学习后玩家在j维中的状态。

(3)随机交流

在训练中,学习只是其中的一部分,而两个球员之间的交流对于能力的提高更为重要。在每个维度中,玩家都有一定的概率与小组中的任何玩家进行交流。当rand?pcomm时,公式定义如下:

其中Fk,teamlRandom是l组中的一个随机玩家,k是迭代次数,teaml-代表l组,Fk,TEAmlRandom,j是l组随机玩家的j维,两个玩家在j维中交换了他们的能力。Randn是一个正态分布的随机数,乘以(1+Randn)表示两个玩家对他人能力的理解。

当rand>pcomm时,公式定义如下:

(4)随机误差

我们假设,在小组训练过程中,有一定的概率会出现错误,即他们不小心学会了他人其他维度的内容。出现这种情况的可能性很低,但这是真实和客观的。我们将错误概率定义为perror。

该阶段原理解释图如下:

小组训练结束后,有必要重新计算新的体能值,并用更好的体能值代替较差的体能值来更新球员的状态。更新后,教练会选择最好的球员,让他练习,让他变得更好,这样他才能更好地带动他人的训练状态,训练公式如下:

柯西和高斯联合变异用于描述个人额外训练,k是迭代次数。之所以选择高斯柯西分布,是因为在训练的早期阶段,每个人的水平通常都不高,所以最好的球员获得更大提升的概率更大,此时柯西分布函数占据了很大的比例,可以有效地为球员提供大范围的提升,这有利于全球搜索。随着迭代次数的增加,玩家能力的提升变得越来越困难,此时高斯分布占比较大的比例,玩家的晋升范围逐渐减小,更有利于局部搜索。

为了使大家更好的理解,这边给出算法流程和伪代码,非常清晰!

如果实在看不懂,不用担心,可以看下代码,再结合上文公式理解就一目了然了!

原文作者采用CEC2005和CEC2020两组测试函数对算法进行评价,并用于优化变分模分解(VMD),以提高数据去噪效果,从而提出了一种新的基于FTTA的混合风速预测系统。

这边为了方便大家对比与理解,采用23个标准测试函数,即CEC2005,并与近年来非常火热的蜣螂优化算法DBO进行对比,这边展示5个测试函数的图~

可以看到,FTTA的效果还是非常不错的!性能极佳,在大部分函数上都超过了最近非常火热的蜣螂优化算法,收敛速度也非常快,大家应用到各类预测、优化问题中是一个非常好的选择~

[1]Tian Z, Gai M. Football team training algorithm: A novel sport-inspired meta-heuristic optimization algorithm for global optimization[J]. Expert Systems with Applications, 2024, 245: 123088.

如果需要获得图中的完整测试代码,可查看链接:

2024年新算法-足球队训练优化算法(FTTA)-公式原理详解与性能测评 Matlab代码免费获取

也可后台回复个人需求定制FTTA优化模型(看到秒回):

1.回归/时序/分类预测类:SVM、LSSVM、ELM、KELM、HKELM、DELM、RELM、DHKELM、RF、LSTM、BiLSTM、GRU、BiGRU、PNN、CNN、BP、XGBoost、TCN、BiTCN、ESN等等均可~

2.组合预测类:CNN/TCN/BiTCN/DBN/Adaboost结合SVM/RVM/ELM/LSTM/BiLSTM/GRU/BiGRU/Attention机制类等均可(可任意搭配非常新颖)~

3.分解类:EMD、EEMD、VMD、REMD、FEEMD、CEEMDAN、ICEEMDAN、SVMD等分解模型均可~

4.其他:机器人路径规划、无人机三维路径规划、DBSCAN聚类、VRPTW路径优化、微电网优化、无线传感器覆盖优化、故障诊断等等均可~

5.原创改进优化算法(适合需要创新的同学):2024年的FTTA、NRBO、CPO、WOA等任意优化算法均可,保证测试函数效果!

更多代码链接:

更多代码链接

Copyright © 2002-2021 九游会官方新闻发布中心 版权所有 Powered by EyouCms
电话:020-88888888 地址:广东省广州市番禺经济开发区 备案号:额ICP备31231234号
网站地图 

平台注册入口