優(yōu)化算法筆記(二)優(yōu)化算法的分類

1. 優(yōu)化算法的分類

(以下描述院究,均不是學(xué)術(shù)用語康愤,僅供大家快樂的閱讀)

1.1常見的優(yōu)化算法

在分類之前半开,我們先列舉一下常見的優(yōu)化算法(不然我們拿什么分類呢?)枢冤。
  1遺傳算法Genetic algorithm
  2粒子群優(yōu)化算法Particle Swarm Optimization
  3差分進(jìn)化算法Differential Evolution
  4人工蜂群算法Artificial Bee Colony
  5蟻群算法Ant Colony Optimization
  6人工魚群算法Artificial Fish Swarm Algorithm
  7杜鵑搜索算法Cuckoo Search
  8螢火蟲算法Firefly Algorithm
  9灰狼算法Grey Wolf Optimizer
  10鯨魚算法Whale Optimization Algorithm
  11群搜索算法Group search optimizer
  12混合蛙跳算法Shuffled Frog Leaping Algorithm
  13煙花算法fireworks algorithm
  14菌群優(yōu)化算法Bacterial Foraging Optimization
  以上優(yōu)化算法是我所接觸過的算法鸠姨,沒接觸過的算法不能隨便下結(jié)論,知之為知之淹真,不知為不知讶迁。其實(shí)到目前為止優(yōu)化算法可能已經(jīng)有幾百種了,我們不可能也不需要全面的了解所有的算法核蘸,而且優(yōu)化算法之間也有較大的共性巍糯,深入研究幾個之后再看其他優(yōu)化算法上手速度會灰常的快。
  優(yōu)化算法從提出到現(xiàn)在不過50-60年(遺傳算法1975年提出)客扎,雖種類繁多但大多較為相似鳞贷,不過這也很正常,比較香蕉和人的基因相似度也有50%-60%虐唠。當(dāng)然算法之間的相似度要比香蕉和人的相似度更大,畢竟人家都是優(yōu)化算法惰聂,有著相同的目標(biāo)疆偿,只是實(shí)現(xiàn)方式不同。就像條條大路通羅馬搓幌,我們可以走去杆故,可以坐汽車去,可以坐火車去溉愁,也可以坐飛機(jī)去处铛,不管使用何種方式,我們都在去往羅馬的路上拐揭,也不會說坐飛機(jī)去要比走去更好撤蟆,交通工具只是一個工具,最終的方案還是要看我們的選擇堂污。


1.2優(yōu)化算法的模型

上面列舉了一些常見的算法家肯,即使你一個都沒見過也沒關(guān)系,后面會對它們進(jìn)行詳細(xì)的介紹盟猖,但是對后面的分類可能會有些許影響讨衣,不過問題不大,就先當(dāng)總結(jié)看了式镐。
  再對優(yōu)化算法分類之前反镇,先介紹一下算法的模型,在筆記(一)中繪制了優(yōu)化算法的流程娘汞,不過那是個較為簡單的模型歹茶,此處的模型會更加復(fù)雜。上面說了優(yōu)化算法有較大的相似性,這些相似性主要體現(xiàn)在算法的運(yùn)行流程中辆亏。
  優(yōu)化算法的求解過程可以看做是一個群體的生存過程风秤。



  有一群原始人,他們要在野外中尋找食物扮叨,一個原始人是這個群體中的最小單元缤弦,他們的最終目標(biāo)是尋找這個環(huán)境中最容易獲取食物的位置,即最易存活下來的位置彻磁。每個原始人都去獨(dú)自尋找食物碍沐,他們每個人每天獲取食物的策略只有采集果實(shí)、制作陷阱或者守株待兔衷蜓,即在一天之中他們不會改變他們的位置累提。在下一天他們會根據(jù)自己的策略變更自己的位置。到了某一天他們又聚在了一起磁浇,選擇了他們到過的最容易獲取食物的位置定居斋陪。
  一群原始人=優(yōu)化算法中的種群、群體置吓;
  一個原始人=優(yōu)化算法中的個體无虚;
  一個原始人的位置=優(yōu)化算法中個體的位置、基因等屬性衍锚;
  原始人變更位置=優(yōu)化算法中總?cè)旱母虏僮鳎?br>   該位置獲取食物的難易程度=優(yōu)化算法中的適應(yīng)度函數(shù)友题;
  一天=優(yōu)化算法中的一個迭代;
  這群原始人最終的定居位置=優(yōu)化算法所得的解戴质。
  優(yōu)化算法的流程圖如下:


算法流程圖

1.3優(yōu)化算法的分類

對優(yōu)化算法分類得有個標(biāo)準(zhǔn)度宦,按照不同的標(biāo)準(zhǔn)分類也會得到不一樣的結(jié)果。首先說一下我所使用的分類標(biāo)準(zhǔn)(動態(tài)更新告匠,有了新的感悟再加):

  1. 算法的由來戈抄,即算法是模擬了某種動物的覓食、搜索過程后专,還是模擬了群體交配呛凶、繁衍的過程,亦或是模擬了人工行贪、物理過程漾稀。
  2. 算法的更新過程,上面的模型介紹了算法的抽象流程建瘫,使用更新過程分類即看算法中的個體按照什么方式來更新自己的位置崭捍。

1.3.1按照由來分類

按由來分類比較好理解,就是該算法受何種現(xiàn)象啟發(fā)而發(fā)明啰脚,本質(zhì)是對現(xiàn)象分類殷蛇。

算法 由來 類別
1遺傳算法 進(jìn)化論 人類理論
2粒子群優(yōu)化算法 鳥群覓食 生物生存
3差分進(jìn)化算法 進(jìn)化論 人類理論
4人工蜂群算法 蜜蜂覓食 生物生存
5蟻群算法 螞蟻覓食 生物生存
6人工魚群算法 魚群覓食 生物生存
7杜鵑搜索算法 杜鵑產(chǎn)卵 生物生存
8螢火蟲算法 螢火蟲求偶 生物生存
9灰狼算法 狼群覓食 生物生存
10鯨魚算法 鯨魚覓食 生物生存
11群搜索算法 生產(chǎn)消費(fèi)跟隨模型 人類理論
12混合蛙跳算法 青蛙覓食 生物生存
13煙花算法 煙花 物理現(xiàn)象
14菌群優(yōu)化算法 菌群生長 生物生存

可以看出算法根據(jù)由來可以大致分為有人類的理論創(chuàng)造而來实夹,向生物學(xué)習(xí)而來,受物理現(xiàn)象啟發(fā)粒梦。其中向生物學(xué)習(xí)而來的算法最多亮航,其他類別由于舉例有偏差,不是很準(zhǔn)確匀们,而且物理現(xiàn)象也經(jīng)過人類總結(jié)缴淋,有些與人類現(xiàn)象相交叉,但仍將其獨(dú)立出來泄朴。
類別分好了重抖,那么為什么要這么分類呢?



  當(dāng)然是因?yàn)橐獪愖謹(jǐn)?shù)啦祖灰,啊呸钟沛,當(dāng)然是為了更好的理解學(xué)習(xí)這些算法的原理及特點(diǎn)。
  向動物生存學(xué)習(xí)而來的算法一定是一種行之有效的方法局扶,能夠保證算法的效率和準(zhǔn)確性恨统,因?yàn)椋绻褂迷摬呗缘膭游餆o法存活到我們可以對其進(jìn)行研究三妈,我們也無法得知其生存策略延欠。(而這也是一種幸存者偏差,我們只能看到行之有效的策略沈跨,但并不是我們沒看到的策略都是垃圾,畢竟也發(fā)生過小行星撞地球這種小概率毀滅性事件兔综。講個冷笑話開cou心zhi一shu下:一只小恐龍對他的小伙伴說饿凛,好開心,我最喜歡的那顆星星越來越亮了(完)软驰。)但是由于生物的局限性涧窒,人們所創(chuàng)造出的算法也會有局限性:我們所熟知的生物都生存在三維空間,在這些環(huán)境中锭亏,影響生物生存的條件比較有限纠吴,反應(yīng)到算法中就是這些算法在解決較低維度的問題時效果很好,當(dāng)遇到超高維(維度>500)問題時慧瘤,結(jié)果可能不容樂觀戴已,沒做過實(shí)驗(yàn),我也不敢亂說锅减。



  受人類理論得出的算法糖儡,與在處理較高維問題時應(yīng)該會有著較好的結(jié)果,因?yàn)槿祟惖睦碚撝械木S度不受現(xiàn)實(shí)束縛怔匣,可能會有超高維的情況握联,比如基因的數(shù)量。但是能人類的理論都是在人類的理解范圍內(nèi),可能有些理論與人類認(rèn)知不符金闽,或者該理論其實(shí)是錯誤的纯露,只是大家都沒有發(fā)現(xiàn)。這就尷尬了代芜,從錯誤的理論上學(xué)習(xí)而來的東西埠褪,有較大的概率其實(shí)也是錯誤的。所有這類優(yōu)化算法能夠處理維度較高的問題蜒犯,但是很有可能得不出較好的結(jié)果组橄。
  最后實(shí)名diss一下由物理現(xiàn)象發(fā)展而來的算法。物理現(xiàn)象罚随,沒有任何智能玉工,其現(xiàn)象完全取決于觀測者,因果不明淘菩,為什么敢說能解決問題遵班,我也不清楚,可能只是想套用一下物理現(xiàn)象潮改,其實(shí)算法與現(xiàn)象關(guān)系不大狭郑,其他類別也大多如此(不小心把實(shí)話說出來了不會有事吧)。

1.3.2按照更新過程分類

按更新過程分類相對復(fù)雜一點(diǎn)汇在,主要是根據(jù)優(yōu)化算法流程中更新位置操作的方式來進(jìn)行分類翰萨。更新位置的操作按我的理解可大致分為兩類:1.跟隨最優(yōu)解;2.不跟隨最優(yōu)解糕殉。
  還是上面原始人的例子亩鬼,每天他有一次去往其他位置狩獵的機(jī)會,他們采用何種方式來決定今天自己應(yīng)該去哪里呢阿蝶?
如果他們的策略是“跟隨最優(yōu)解”雳锋,那么他們選取位置的方式就是按一定的策略向群體已知的最佳狩獵位置(歷史最佳)或者是當(dāng)前群體中的最佳狩獵位置(今天最佳)靠近,至于是直線跑過去還是蛇皮走位繞過去羡洁,這個要看他們?nèi)后w的策略玷过。當(dāng)然,他們的目的不是在最佳狩獵位置集合筑煮,他們的目的是在過去的途中看是否能發(fā)現(xiàn)更加好的狩獵位置辛蚊,去往已經(jīng)到過的狩獵地點(diǎn)再次狩獵是沒有意義的,因?yàn)槊總€位置獲取食物的難易程度是固定的真仲。有了目標(biāo)嚼隘,大家都會朝著目標(biāo)前進(jìn),總有一日袒餐,大家會在謀個位置附近相聚飞蛹,相聚雖好但不利于后續(xù)的覓食容易陷入局部最優(yōu)谤狡。
  什么是局部最優(yōu)呢?假設(shè)在當(dāng)前環(huán)境中有一“桃花源”卧檐,擁有上帝視角的我們知道這個地方就是最適合原始人們生存的墓懂,但是此地入口隱蔽“山有小口,仿佛若有光”霉囚、“初極狹捕仔,才通人∮蓿”揍很,是一個難以發(fā)現(xiàn)的地方麻裁。如果沒有任何一個原始人到達(dá)了這里,大家向著已知的最優(yōu)位置靠近時,也難以發(fā)現(xiàn)這個“桃源之地”膘融,而當(dāng)大家越聚越攏之后马昙,“桃源”被發(fā)現(xiàn)的可能性越來越低森爽。雖然原始人們得到了他們的解颅悉,但這并不是我們所求的“桃源”,他們聚集之后失去了尋求“桃源”的可能奠骄,這群原始人便陷入了局部最優(yōu)豆同。



  如果他們的策略是“不跟隨最優(yōu)解”,那么他們的策略是什么呢含鳞?我也不知道影锈,這個應(yīng)該他們自己決定。畢竟“是什么”比“不是什么”的范圍要小的多蝉绷⊙纪ⅲ總之不跟隨最優(yōu)解時,算法會有自己特定的步驟來更新個體的位置潜必,有可能是隨機(jī)在自己附近找,也有可能是隨機(jī)向別人學(xué)習(xí)沃但。不跟隨最優(yōu)解時磁滚,原始人們應(yīng)該不會快速聚集到某一處,這樣一來他們的選擇更具多樣性宵晚。
  按照更新過程對上面的算法分類結(jié)果如下

算法 類別
1遺傳算法 不跟隨最優(yōu)解
2粒子群優(yōu)化算法 跟隨最優(yōu)解
3差分進(jìn)化算法 不跟隨最優(yōu)解
4人工蜂群算法 跟隨最優(yōu)解
5蟻群算法 跟隨最優(yōu)解
6人工魚群算法 跟隨最優(yōu)解
7杜鵑搜索算法 跟隨最優(yōu)解
8螢火蟲算法 跟隨最優(yōu)解
9灰狼算法 跟隨最優(yōu)解
10鯨魚算法 跟隨最優(yōu)解
11群搜索算法 跟隨最優(yōu)解
12混合蛙跳算法 跟隨最優(yōu)解
13煙花算法 跟隨最優(yōu)解
14菌群優(yōu)化算法 跟隨最優(yōu)解

可以看出上面不跟隨最優(yōu)解的算法只有遺傳算法和差分進(jìn)化算法垂攘,他們的更新策略是與進(jìn)化和基因的重組有關(guān)。因此這些不跟隨最優(yōu)解的算法淤刃,他們大多依據(jù)進(jìn)化理論更新位置(基因)我把他們叫做進(jìn)化算法晒他,而那些跟隨群體最優(yōu)解的算法,他們則大多依賴群體的配合協(xié)作逸贾,我把這些算法叫做群智能算法陨仅。

1.4總結(jié)

目前我只總結(jié)了這兩種津滞,分類方法,如果你有更加優(yōu)秀的分類方法灼伤,我們可以交流一下:

進(jìn)化算法 群智能算法
人類理論 1遺傳算法
3差分進(jìn)化算法
11群搜索算法
生物生存 2粒子群優(yōu)化算法
4人工蜂群算法
5蟻群算
6人工魚群算法
7杜鵑搜索算法
8螢火蟲算法
9灰狼算法
10鯨魚算法
12混合蛙跳算法
14菌群優(yōu)化算法
物理現(xiàn)象 13煙花算法

目錄
上一篇 優(yōu)化算法筆記(一)優(yōu)化算法的介紹
下一篇 優(yōu)化算法筆記(三)粒子群算法(1)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
禁止轉(zhuǎn)載触徐,如需轉(zhuǎn)載請通過簡信或評論聯(lián)系作者。
  • 序言:七十年代末狐赡,一起剝皮案震驚了整個濱河市撞鹉,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌颖侄,老刑警劉巖鸟雏,帶你破解...
    沈念sama閱讀 207,248評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異览祖,居然都是意外死亡孝鹊,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評論 2 381
  • 文/潘曉璐 我一進(jìn)店門穴墅,熙熙樓的掌柜王于貴愁眉苦臉地迎上來惶室,“玉大人,你說我怎么就攤上這事玄货』食” “怎么了?”我有些...
    開封第一講書人閱讀 153,443評論 0 344
  • 文/不壞的土叔 我叫張陵松捉,是天一觀的道長夹界。 經(jīng)常有香客問我,道長隘世,這世上最難降的妖魔是什么可柿? 我笑而不...
    開封第一講書人閱讀 55,475評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮丙者,結(jié)果婚禮上复斥,老公的妹妹穿的比我還像新娘。我一直安慰自己械媒,他們只是感情好目锭,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,458評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著纷捞,像睡著了一般痢虹。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上主儡,一...
    開封第一講書人閱讀 49,185評論 1 284
  • 那天奖唯,我揣著相機(jī)與錄音,去河邊找鬼糜值。 笑死丰捷,一個胖子當(dāng)著我的面吹牛坯墨,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播瓢阴,決...
    沈念sama閱讀 38,451評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼畅蹂,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了荣恐?” 一聲冷哼從身側(cè)響起液斜,我...
    開封第一講書人閱讀 37,112評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎叠穆,沒想到半個月后少漆,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,609評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡硼被,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,083評論 2 325
  • 正文 我和宋清朗相戀三年示损,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片嚷硫。...
    茶點(diǎn)故事閱讀 38,163評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡检访,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出仔掸,到底是詐尸還是另有隱情脆贵,我是刑警寧澤,帶...
    沈念sama閱讀 33,803評論 4 323
  • 正文 年R本政府宣布起暮,位于F島的核電站卖氨,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏负懦。R本人自食惡果不足惜筒捺,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,357評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望纸厉。 院中可真熱鬧系吭,春花似錦、人聲如沸颗品。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽抛猫。三九已至蟆盹,卻和暖如春孩灯,著一層夾襖步出監(jiān)牢的瞬間闺金,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評論 1 261
  • 我被黑心中介騙來泰國打工峰档, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留败匹,地道東北人寨昙。 一個月前我還...
    沈念sama閱讀 45,636評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像掀亩,于是被迫代替她去往敵國和親舔哪。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,925評論 2 344