人类的智慧,机器的智能 | 智能优化算法概述
- 发表时间:2024-08-12
- 来源:网络
- 人气:
图图已经为大家推送过了遗传算法、粒子群算法和模拟算法等经典算法(见个人主页介绍), 但还没有就这个领域做系统的概述。 今天,就来为大家总体介绍一下智能优化算法
。
智能优化算法,与其字面意思一样,就是利用"智能
"进行优化的算法。受到人类智能、生物群体社会性或自然现象规律的启发,人类发明了很多算法来解决任务分配、生产调度等复杂优化问题——这便是智能优化算法。要了解这个领域,我们首先需要理解一些概念。
智能(Intelligence):我们常常提到“智能”两个字,但智能的准确定义究竟是什么呢?在不同领域,“智能”有着不同的解释,根据维基百科的资料,通常来说:
智能指感知信息并将其化为知识自适应地应用于环境中的能力。
优化(optimization):智能优化算法的提出是为了解决优化问题,优化即在满足一定条件的前提下,基于某种标准从可选集合中选择最佳元素或方案,使得某个或多个功能指标达到最优的过程。
启发式算法(Heuristic Algorithm):群智能算法一般都是启发式算法,即通过模拟和利用自然界中生物体的行为或自然现象的原理,采用经验的方法解决优化问题的算法。
在电子、通信、计算机、自动化、机器人、经济学和管理学等众多学科中,不断出现许多复杂的组合优化问题,面对这些大型优化问题,传统的优化方法(如牛顿法
、单纯形法
等)需要遍历整个搜索空间,无法在短时间内完成搜索,且容易产生搜索的“组合爆炸”。鉴于实际工程问题的复杂性、非线性、约束性以及建模困难等诸多难点,寻找高效的优化算法成为相关学科的重要研究内容,智能优化算法也就随之得到了广泛的研究。
传统的优化算法大多数是基于梯度下降的算法:
而智能优化算法的优化过程一般不涉及到梯度下降,通常采用直接搜索
、随机搜索
。例如在粒子群算法中粒子位置的更新:
一般来说,智能优化算法可以分为四大类
- 进化类算法(Evolutionary Algorithms):由生物进化机制启发得到,包含交叉、变异、选择等操作,典型代表为
遗传算法
(Genetic Algorithm)和差分进化算法
(Differential Evolution)。
- 群智能类算法(Swarm-based Algorithms):通过使用单个生物个体作为搜索代理来模仿生物集群的集体行为,典型代表为
蚁群算法
(Ant Colony Optimization)、粒子群算法
(Particle Swarm Optimization)和人工蜂群算法
(Artificial Bee Colony Optimization)。
- 物理法则类算法(Physics-based Algorithms):由物理法则启发得到,将客观规律转化为算法流程,典型代表为
模拟退火算法
(Simulated Annealing)和引力搜索算法
(Gravitational Search Algorithm)。
- 其他类算法(Others):由自然现象、数学原理、人造活动等启发得到,例如
禁忌搜索
(Tabu Search )、和声搜索
(Harmony Search )、免疫算法
(Immune Algorithm)。
除了上述具有代表性的典型算法,近年来也有很多新的智能优化算法被陆续提出,小编在这里对一些具有代表性的算法进行了整理:
- 进化类算法:基于分解的进化算法(Evolutionary Algorithm Based on Decomposition,2007)、生物地理学优化(Biogeography-based Optimization,2008)。
- 群智能类算法:布谷鸟搜索(Cuckoo Search,2009)、蝙蝠算法(Bat Inspired Algorithm,2010)、灰狼优化(Grey Wolf Optimizer,2014)、蜻蜓算法(Dragonfly Algorithm,2016)、乌鸦搜索算法(Crow Search Algorithm,2016)、鲸鱼优化算法(Whale Optimization Algorithm,2016)、蝗虫优化算法(Grasshopper Optimization Algorithm,2017)、蝴蝶优化算法(Butterfly Optimization Algorithm,2018)、郊狼优化算法(Coyote Optimization Algorithm,2018)、帝王蝶优化(Monarch Butterfly Optimization,2019)、哈里斯鹰优化(Harris Hawk Optimization,2019)、黑寡妇优化算法(Black Widow Optimization Algorithm,2020)。
- 物理法则类算法:收费系统搜索(Charged System Search,2010)、中心力优化(Central Force Optimization,2011)、曲线空间优化(Curved Space Optimization,2012)、黑洞搜索算法(Black Hole Algorithm,2013)、热交换优化(Thermal Exchange Optimization,2017)、超新星优化(Supernova Optimizer,2018)。
- 其他算法:烟花算法(Fireworks Algorithm,2010)、头脑风暴算法(Brain Storm Optimization Algorithm,2011)、回溯搜索算法(Backtracking Search Optimization Algorithm,2013)、正弦余弦算法(Sine–cosine Algorithm,2016)、排队搜索算法(Queuing Search Algorithm,2018)、均衡优化(Equilibrium Optimizer,2019)。
总体来说,群智能类算法在新型智能优化算法里面占据了绝对多数,是研究新型智能优化算法的主流。
对于新型智能优化算法所使用的方法、针对的领域以及改进的聚焦点,小编也做了简单的统计,具体方法为:
- 检索工具——Web of Science
- 检索方式——By title
- 关键词——xx + optimization algorithm
结果如下图所示:
当然,最多的一类还是将智能优化算法应用在具体领域,但由于无法检索到具体数据,在此就不再列出啦。
在研究智能优化算法的过程中,小编也发现了一些名字很有趣的算法,在这里跟大家分享一下: - 帝国主义竞争算法,Imperialist Competitive Algorithm,2007 - 阴阳对优化,Yin-Yang-pair Optimization,2016 - 多元宇宙算法,Multi-Verse Optimizer,2016 - 最有价值运动员(MVP)算法,Most Valuable Player Algorithm,2017
别看这些算法的名字都很好玩,但背后都是有高质量SCI论文支撑的。如果大家对这些奇奇怪怪又可可爱爱的算法感兴趣,请关注个人主页的平台介绍。
说了这么多别人提出的算法,你是不是已经摩拳擦掌、跃跃欲试,准备提出自己专属的新型智能优化算法呢?小编这就根据自己的经验,以乌鸦搜索算法
为例,为大家总结一下提出新算法的一般流程。
首先看看基础的乌鸦搜索算法
主函数
format long; clear all; clc;
%% Parameter setting-------------------------------------------------------------------------------------------------
pop=50; % Population number
Max_i=500; % The maximum number of iterations
F_name='F3'; % Test function name,F1,F2,F3
%% Get function information-----------------------------------------------------------------------------------------
[lb,ub,F_obj,dim]=Test_Functions(F_name);
lb_v=lb.*ones( 1,dim ); % Boundary vector
ub_v=ub.*ones( 1,dim );
%% Initialization
for j=1 : pop
x_0( j, : )=lb_v + (ub_v - lb_v) .* rand( 1, dim );
fit_0(j )=F_obj(x_0(j, : ) ) ;
end
%% Call algorithm-----------------------------------------------------------------------------------------------------
[CSA_fMin,CSA_bestX,CSA_curve]=CSA(pop,Max_i,lb_v,ub_v,dim,F_obj,x_0,fit_0);
%% Draw iterative image----------------------------------------------------------------------------------------------
iter=[ 1:Max_i ];
% maker_idx=1:Max_i/10:(Max_i);
plot( iter,CSA_curve,'-s','Color',[71/255,120/255,185/255],'LineWidth',3,'MarkerSize',8,'MarkerFaceColor','w' )
hold on;
set(gca,'fontsize',20,'fontname','Times','FontWeight','bold');
title(strcat(F_name,' Objective space'),'fontsize',20,'fontname','Times','FontWeight','bold')
xlabel('Iteration')
ylabel('Best fitness obtained so far')
axis tight
(完整代码见文末)
下面看看我们该如何构造原创的优化算法
首先,你要有一个点子,制定专属的算法方案,重点是要确定算法中个体的迭代公式。(小编提供几个大胆的思路:资本主义灭亡算法,追求美女/帅哥算法,精准核打击算法......)
例如,在乌鸦搜索算法中,作者将乌鸦藏食和偷取其他乌鸦食物这一现象,抽象为下列公式:
之后,你要选择一些合适的测试算例。其中,数值算例可以选择Sphere、Ackley、Schaffer等经典的单峰、多峰和固定维度数值测试函数,也可以选择CEC会议
上提出来的复杂测试算例,而工程算例则可以选择焊接梁设计、减速器设计、压力容器设计等经典工程优化设计问题。(文末有CEC2020单目标测试集的获取方式)
数值算例以Ackley函数
为例,其公式为:
其中D
为问题维度,即优化变量的个数。函数图像如下图所示:
工程算例的典型案例为焊接梁设计
将工程问题抽象为数学问题,表达式为:
确定测试算例后,你需要在上面进行一系列的调整测试,来确定自己所提出算法中的最佳参数方案(如果你的方案中没有需要调整的超参数,那就跳过这一步!)
在乌鸦搜索算法中,可调参数有两个,即意识概率AP
和飞行长度fl
,不同的参数值对算法性能有较大的影响,下图就展示了fl
对于乌鸦搜索算法中个体搜索能力的影响:
通过一系列测试,原作者将其设定为AP=0.1, fl=2。
确定好了参数,之后你就需要找来一些对照算法,在之前确定的算例上测试你的算法和其他算法到底谁更好一些,并分析出算法好的话好在哪里。一般来说,对照算法应该覆盖上述四类,以及经典算法和最新算法,数量的话,越多越好! 通常,测试内容应包含:
- 算法迭代曲线
- 算法多次优化结果的平均值
- 算法多次优化结果的标准差
- 统计学假设检验
如果经过测试,你的算法比其他算法效果要好,那么恭喜你,你的专属算法诞生啦!想一个炫酷的名字,然后写一篇文章或者专利吧!
- http://dx.doi.org/10.1016/j.compstruc.2016.03.001;
- https://doi.org/10.1007/s00521-019-04530-0
- 单目标测试集:https://wwi.lanzous.com/iuoG1lqmewf
全文结束
作者:WWJ | 编辑:图图
- 获取文中乌鸦算法完整代码/参考文档:请查看个人主页平台
- 2024-09-09NBA中国官方网站_11
- 2024-09-09抖音去水印在线提取|抖音视频解析网址入口
- 2024-09-09抖音小店里面的商品怎么显示在抖音主页?
- 2024-09-09JVM-性能调优——内存优化
- 2024-09-09英语新课标学习心得体会
- 2024-09-09中办国办印发《关于构建优质均衡的基本公共教育服务体系的意见》
- 2024-09-09白嫖拳头账号注册,免费手游加速器推荐
- 2024-09-09optimization
- 2024-09-09seo关键词优化是什么意思(seo关键字是什么意思)
- 2024-09-09java 开发精准优化 if…else ,干掉,过多,烂代码
- 2024-09-09浙江乐清:持续优化营商环境 激活高质量发展“强磁场”
- 2024-09-09餐饮店怎么入住抖音小程序?如何获得小程序?
- 2024-09-09《NBA全场集锦》【回放】2024NBA全明星技巧挑战赛中文解说回放
- 2024-09-09上海国际学校哪家好?两个月真实感受。
- 2024-09-09抖音作品被官方删除的原因,作品为什么会被官方删除?
- 2024-09-0911月24日篮网vs猛龙数据统计-虎扑NBA原创报道
- 产品中心标题一
用于生产保险粉,磺胺二甲基嘧啶安乃近,己内酰胺等以及氯仿,苯丙砜和苯甲醛的净化。照相工业用作定影剂的配料。香料工业用于生产香草醛。用作酿造工业防腐剂,橡胶凝固剂和
- 产品中心标题二
用于生产保险粉,磺胺二甲基嘧啶安乃近,己内酰胺等以及氯仿,苯丙砜和苯甲醛的净化。照相工业用作定影剂的配料。香料工业用于生产香草醛。用作酿造工业防腐剂,橡胶凝固剂和
- 产品中心标题九
岗亭,英文名字为Watch House,字面理解就是岗哨工作的小房子。在车场管理中,岗亭常常也称之为收费亭,是停车场管理人员收取停车费的工作场所,除此以外还可用作小区保安门卫值
- 产品中心标题八
岗亭,英文名字为Watch House,字面理解就是岗哨工作的小房子。在车场管理中,岗亭常常也称之为收费亭,是停车场管理人员收取停车费的工作场所,除此以外还可用作小区保安门卫值