人類(lèi)的智慧,機(jī)器的智能 | 智能優(yōu)化算法概述

圖圖已經(jīng)為大家推送過(guò)了遺傳算法、粒子群算法和模擬算法等經(jīng)典算法(見(jiàn)個(gè)人主頁(yè)介紹), 但還沒(méi)有就這個(gè)領(lǐng)域做系統(tǒng)的概述。 今天,就來(lái)為大家總體介紹一下智能優(yōu)化算法。
1 什么是智能優(yōu)化算法
智能優(yōu)化算法,與其字面意思一樣,就是利用"智能"進(jìn)行優(yōu)化的算法。受到人類(lèi)智能、生物群體社會(huì)性或自然現(xiàn)象規(guī)律的啟發(fā),人類(lèi)發(fā)明了很多算法來(lái)解決任務(wù)分配、生產(chǎn)調(diào)度等復(fù)雜優(yōu)化問(wèn)題——這便是智能優(yōu)化算法。要了解這個(gè)領(lǐng)域,我們首先需要理解一些概念。

智能
智能(Intelligence):我們常常提到“智能”兩個(gè)字,但智能的準(zhǔn)確定義究竟是什么呢?在不同領(lǐng)域,“智能”有著不同的解釋?zhuān)鶕?jù)維基百科的資料,通常來(lái)說(shuō):
智能指感知信息并將其化為知識(shí)自適應(yīng)地應(yīng)用于環(huán)境中的能力。
優(yōu)化
優(yōu)化(optimization):智能優(yōu)化算法的提出是為了解決優(yōu)化問(wèn)題,優(yōu)化即在滿(mǎn)足一定條件的前提下,基于某種標(biāo)準(zhǔn)從可選集合中選擇最佳元素或方案,使得某個(gè)或多個(gè)功能指標(biāo)達(dá)到最優(yōu)的過(guò)程。
啟發(fā)式算法
啟發(fā)式算法(Heuristic Algorithm):群智能算法一般都是啟發(fā)式算法,即通過(guò)模擬和利用自然界中生物體的行為或自然現(xiàn)象的原理,采用經(jīng)驗(yàn)的方法解決優(yōu)化問(wèn)題的算法。
2 為什么要研究智能優(yōu)化算法
在電子、通信、計(jì)算機(jī)、自動(dòng)化、機(jī)器人、經(jīng)濟(jì)學(xué)和管理學(xué)等眾多學(xué)科中,不斷出現(xiàn)許多復(fù)雜的組合優(yōu)化問(wèn)題,面對(duì)這些大型優(yōu)化問(wèn)題,傳統(tǒng)的優(yōu)化方法(如牛頓法、單純形法等)需要遍歷整個(gè)搜索空間,無(wú)法在短時(shí)間內(nèi)完成搜索,且容易產(chǎn)生搜索的“組合爆炸”。鑒于實(shí)際工程問(wèn)題的復(fù)雜性、非線(xiàn)性、約束性以及建模困難等諸多難點(diǎn),尋找高效的優(yōu)化算法成為相關(guān)學(xué)科的重要研究?jī)?nèi)容,智能優(yōu)化算法也就隨之得到了廣泛的研究。
3 仔細(xì)聊聊智能優(yōu)化算法
3.1 智能優(yōu)化算法的原理是什么
傳統(tǒng)的優(yōu)化算法大多數(shù)是基于梯度下降的算法:


而智能優(yōu)化算法的優(yōu)化過(guò)程一般不涉及到梯度下降,通常采用直接搜索、隨機(jī)搜索。例如在粒子群算法中粒子位置的更新:


3.2 智能優(yōu)化算法的分類(lèi)有哪些
一般來(lái)說(shuō),智能優(yōu)化算法可以分為四大類(lèi)
進(jìn)化類(lèi)算法(Evolutionary Algorithms):由生物進(jìn)化機(jī)制啟發(fā)得到,包含交叉、變異、選擇等操作,典型代表為遺傳算法(Genetic Algorithm)和差分進(jìn)化算法(Differential Evolution)。
群智能類(lèi)算法(Swarm-based Algorithms):通過(guò)使用單個(gè)生物個(gè)體作為搜索代理來(lái)模仿生物集群的集體行為,典型代表為蟻群算法(Ant Colony Optimization)、粒子群算法(Particle Swarm Optimization)和人工蜂群算法(Artificial Bee Colony Optimization)。
物理法則類(lèi)算法(Physics-based Algorithms):由物理法則啟發(fā)得到,將客觀(guān)規(guī)律轉(zhuǎn)化為算法流程,典型代表為模擬退火算法(Simulated Annealing)和引力搜索算法(Gravitational Search Algorithm)。
其他類(lèi)算法(Others):由自然現(xiàn)象、數(shù)學(xué)原理、人造活動(dòng)等啟發(fā)得到,例如禁忌搜索(Tabu Search )、和聲搜索(Harmony Search )、免疫算法(Immune Algorithm)。
3.3 還有哪些新的智能優(yōu)化算法
除了上述具有代表性的典型算法,近年來(lái)也有很多新的智能優(yōu)化算法被陸續(xù)提出,小編在這里對(duì)一些具有代表性的算法進(jìn)行了整理:
進(jìn)化類(lèi)算法:基于分解的進(jìn)化算法(Evolutionary Algorithm Based on Decomposition,2007)、生物地理學(xué)優(yōu)化(Biogeography-based Optimization,2008)。
群智能類(lèi)算法:布谷鳥(niǎo)搜索(Cuckoo Search,2009)、蝙蝠算法(Bat Inspired Algorithm,2010)、灰狼優(yōu)化(Grey Wolf Optimizer,2014)、蜻蜓算法(Dragonfly Algorithm,2016)、烏鴉搜索算法(Crow Search Algorithm,2016)、鯨魚(yú)優(yōu)化算法(Whale Optimization Algorithm,2016)、蝗蟲(chóng)優(yōu)化算法(Grasshopper Optimization Algorithm,2017)、蝴蝶優(yōu)化算法(Butterfly Optimization Algorithm,2018)、郊狼優(yōu)化算法(Coyote Optimization Algorithm,2018)、帝王蝶優(yōu)化(Monarch Butterfly Optimization,2019)、哈里斯鷹優(yōu)化(Harris Hawk Optimization,2019)、黑寡婦優(yōu)化算法(Black Widow Optimization Algorithm,2020)。
物理法則類(lèi)算法:收費(fèi)系統(tǒng)搜索(Charged System Search,2010)、中心力優(yōu)化(Central Force Optimization,2011)、曲線(xiàn)空間優(yōu)化(Curved Space Optimization,2012)、黑洞搜索算法(Black Hole Algorithm,2013)、熱交換優(yōu)化(Thermal Exchange Optimization,2017)、超新星優(yōu)化(Supernova Optimizer,2018)。
其他算法:煙花算法(Fireworks Algorithm,2010)、頭腦風(fēng)暴算法(Brain Storm Optimization Algorithm,2011)、回溯搜索算法(Backtracking Search Optimization Algorithm,2013)、正弦余弦算法(Sine–cosine Algorithm,2016)、排隊(duì)搜索算法(Queuing Search Algorithm,2018)、均衡優(yōu)化(Equilibrium Optimizer,2019)。
總體來(lái)說(shuō),群智能類(lèi)算法在新型智能優(yōu)化算法里面占據(jù)了絕對(duì)多數(shù),是研究新型智能優(yōu)化算法的主流。
3.4 智能優(yōu)化算法的新研究在關(guān)注什么?
對(duì)于新型智能優(yōu)化算法所使用的方法、針對(duì)的領(lǐng)域以及改進(jìn)的聚焦點(diǎn),小編也做了簡(jiǎn)單的統(tǒng)計(jì),具體方法為:
檢索工具——Web of Science
檢索方式——By title
關(guān)鍵詞——xx + optimization algorithm
結(jié)果如下圖所示:

當(dāng)然,最多的一類(lèi)還是將智能優(yōu)化算法應(yīng)用在具體領(lǐng)域,但由于無(wú)法檢索到具體數(shù)據(jù),在此就不再列出啦。
3.5 幾個(gè)有趣的智能優(yōu)化算法
在研究智能優(yōu)化算法的過(guò)程中,小編也發(fā)現(xiàn)了一些名字很有趣的算法,在這里跟大家分享一下: - 帝國(guó)主義競(jìng)爭(zhēng)算法,Imperialist Competitive Algorithm,2007 - 陰陽(yáng)對(duì)優(yōu)化,Yin-Yang-pair Optimization,2016 - 多元宇宙算法,Multi-Verse Optimizer,2016 - 最有價(jià)值運(yùn)動(dòng)員(MVP)算法,Most Valuable Player Algorithm,2017
別看這些算法的名字都很好玩,但背后都是有高質(zhì)量SCI論文支撐的。如果大家對(duì)這些奇奇怪怪又可可愛(ài)愛(ài)的算法感興趣,請(qǐng)關(guān)注個(gè)人主頁(yè)的平臺(tái)介紹。
4 如何原創(chuàng)智能優(yōu)化算法
說(shuō)了這么多別人提出的算法,你是不是已經(jīng)摩拳擦掌、躍躍欲試,準(zhǔn)備提出自己專(zhuān)屬的新型智能優(yōu)化算法呢?小編這就根據(jù)自己的經(jīng)驗(yàn),以烏鴉搜索算法為例,為大家總結(jié)一下提出新算法的一般流程。
首先看看基礎(chǔ)的烏鴉搜索算法
主函數(shù)
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
(完整代碼見(jiàn)文末)
下面看看我們?cè)撊绾螛?gòu)造原創(chuàng)的優(yōu)化算法
1 idea
首先,你要有一個(gè)點(diǎn)子,制定專(zhuān)屬的算法方案,重點(diǎn)是要確定算法中個(gè)體的迭代公式。(小編提供幾個(gè)大膽的思路:資本主義滅亡算法,追求美女/帥哥算法,精準(zhǔn)核打擊算法......)
例如,在烏鴉搜索算法中,作者將烏鴉藏食和偷取其他烏鴉食物這一現(xiàn)象,抽象為下列公式:

2 測(cè)試算例
之后,你要選擇一些合適的測(cè)試算例。其中,數(shù)值算例可以選擇Sphere、Ackley、Schaffer等經(jīng)典的單峰、多峰和固定維度數(shù)值測(cè)試函數(shù),也可以選擇CEC會(huì)議上提出來(lái)的復(fù)雜測(cè)試算例,而工程算例則可以選擇焊接梁設(shè)計(jì)、減速器設(shè)計(jì)、壓力容器設(shè)計(jì)等經(jīng)典工程優(yōu)化設(shè)計(jì)問(wèn)題。(文末有CEC2020單目標(biāo)測(cè)試集的獲取方式)
數(shù)值算例以Ackley函數(shù)為例,其公式為:

其中D為問(wèn)題維度,即優(yōu)化變量的個(gè)數(shù)。函數(shù)圖像如下圖所示:

工程算例的典型案例為焊接梁設(shè)計(jì)
將工程問(wèn)題抽象為數(shù)學(xué)問(wèn)題,表達(dá)式為:



3 參數(shù)調(diào)整
確定測(cè)試算例后,你需要在上面進(jìn)行一系列的調(diào)整測(cè)試,來(lái)確定自己所提出算法中的最佳參數(shù)方案(如果你的方案中沒(méi)有需要調(diào)整的超參數(shù),那就跳過(guò)這一步?。?/p>
在烏鴉搜索算法中,可調(diào)參數(shù)有兩個(gè),即意識(shí)概率AP和飛行長(zhǎng)度f(wàn)l,不同的參數(shù)值對(duì)算法性能有較大的影響,下圖就展示了fl對(duì)于烏鴉搜索算法中個(gè)體搜索能力的影響:

通過(guò)一系列測(cè)試,原作者將其設(shè)定為AP=0.1, fl=2。

4 對(duì)照算法
確定好了參數(shù),之后你就需要找來(lái)一些對(duì)照算法,在之前確定的算例上測(cè)試你的算法和其他算法到底誰(shuí)更好一些,并分析出算法好的話(huà)好在哪里。一般來(lái)說(shuō),對(duì)照算法應(yīng)該覆蓋上述四類(lèi),以及經(jīng)典算法和最新算法,數(shù)量的話(huà),越多越好! 通常,測(cè)試內(nèi)容應(yīng)包含:
算法迭代曲線(xiàn)
算法多次優(yōu)化結(jié)果的平均值
算法多次優(yōu)化結(jié)果的標(biāo)準(zhǔn)差
統(tǒng)計(jì)學(xué)假設(shè)檢驗(yàn)


5 算法誕生
如果經(jīng)過(guò)測(cè)試,你的算法比其他算法效果要好,那么恭喜你,你的專(zhuān)屬算法誕生啦!想一個(gè)炫酷的名字,然后寫(xiě)一篇文章或者專(zhuān)利吧!

參考文獻(xiàn)列表
http://dx.doi.org/10.1016/j.compstruc.2016.03.001;
https://doi.org/10.1007/s00521-019-04530-0
單目標(biāo)測(cè)試集:https://wwi.lanzous.com/iuoG1lqmewf
全文結(jié)束
作者:WWJ | 編輯:圖圖
獲取文中烏鴉算法完整代碼/參考文檔:請(qǐng)查看個(gè)人主頁(yè)資料中留下的平臺(tái)