關(guān)鍵詞:爬山算法、模擬退火算法、蒙特卡洛思想、貪心、Greedy策略、Metropolis準(zhǔn)則
上古法師張忒柱的故事
爬山算法
爬山算法是一種簡(jiǎn)單的貪心搜索算法,該算法每次從當(dāng)前解的臨近解空間中選擇一個(gè)最優(yōu)解作為當(dāng)前解,直到達(dá)到一個(gè)局部最優(yōu)解。
說(shuō):法師張忒柱想去看風(fēng)景,法師張忒柱捏碎了個(gè)傳送卷軸,隨機(jī)傳送到一個(gè)某世界的某地方,通過(guò)他的“天眼通”法術(shù)找到了半徑X距離的最高點(diǎn)位置的小山坡看風(fēng)景。但是這座山不一定是珠穆朗瑪峰。這就是爬山算法,它不能保證局部最優(yōu)值就是全局最優(yōu)值。
這時(shí),法師張忒柱喝酒有點(diǎn)上頭,覺(jué)得看的不過(guò)癮,欲窮千里目怎么辦?
問(wèn)題是法師張忒柱不知道這個(gè)世界哪里最高怎么辦?三個(gè)辦法:
一:?jiǎn)柸?br>
二:修煉“天眼通”法術(shù)到最高層,半徑可覆蓋整個(gè)世界
三:找個(gè)相對(duì)最優(yōu)解
一:?jiǎn)柸耍◣煆堖X(jué)得不行,目前法力最高的就是他了估計(jì)其他法師也不知道,而且還沒(méi)有定向傳送陣。
二:修煉“天眼通”法術(shù)需要元嬰期法力,目前他金丹期,花費(fèi)時(shí)間太長(zhǎng),成本太大。
三:找個(gè)相對(duì)最優(yōu)解:
于是法師張忒柱捏碎回城券,首先購(gòu)買了100張隨機(jī)券準(zhǔn)備模擬探索,基于第一次爬山數(shù)據(jù)作為初始值,開(kāi)始開(kāi)發(fā)記錄半徑最高值海拔,終于經(jīng)過(guò)法師張忒柱納入部分偏差不大的數(shù)據(jù)的掐指一算,確定了“四姑娘山”是最高山。這就是模擬退火算法是通過(guò)賦予搜索過(guò)程一種時(shí)變且最終趨于零的概率突跳性,從而可有效避免陷入局部極小并最終趨于全局最優(yōu)的串行結(jié)構(gòu)的優(yōu)化算法。
貪心的法師張忒柱不知不覺(jué)中就用到,,蒙特卡洛思想、Greedy策略-貪心(開(kāi)發(fā)(exploit)和探索(explore))、Metropolis準(zhǔn)則
蒙特卡洛思想
為了求解數(shù)學(xué)、物理、工程技術(shù)以及管理等方面的問(wèn)題 ,首先建立一個(gè)概率模型或隨機(jī)過(guò)程,使它們的參數(shù),如概率分布或數(shù)學(xué)期望等問(wèn)題的解;然后通過(guò)對(duì)模型或過(guò)程的觀察或抽樣試驗(yàn)來(lái)計(jì)算所求參數(shù)的統(tǒng)計(jì)特征,并用算術(shù)平均值作為所求解的近似值
Greedy策略-? ? 貪心算法:是一種在每一步選擇中都采取在當(dāng)前狀態(tài)下最好或最優(yōu)(即最有利)的選擇,從而希望導(dǎo)致結(jié)果是最好或最優(yōu)的算法
步驟1:從某個(gè)初始解出發(fā);
步驟2:采用迭代的過(guò)程,當(dāng)可以向目標(biāo)前進(jìn)一步時(shí),就根據(jù)局部最優(yōu)策略,得到一部分解,縮小問(wèn)題規(guī)模;
步驟3:將所有解綜合起來(lái)。
Metropolis準(zhǔn)則
Metropolis 算法又叫 Metropolis 抽樣,是模擬退火算法的基礎(chǔ),在早期的科學(xué)計(jì)算中蒙特卡洛方法(Monte Carlo)是對(duì)大量原子在給定溫度下的平衡態(tài)的隨機(jī)模擬,當(dāng)蒙特卡洛算法計(jì)算量偏大。
1953 年,Metropolis 提出重要性采樣,即以概率來(lái)接受新?tīng)顟B(tài),而不是使用完全確定的規(guī)則,稱為 Metropolis 準(zhǔn)則,可以顯著減小計(jì)算量。
模擬退火算法
迭代求解策略的一種隨機(jī)尋優(yōu)算法,其出發(fā)點(diǎn)是基于物理中固體物質(zhì)的退火過(guò)程與一般組合優(yōu)化問(wèn)題之間的相似性。
模擬退火算法的模型
1模擬退火算法可以分解為解空間、目標(biāo)函數(shù)和初始解三部分。
2模擬退火的基本思想:
(1) 初始化:初始溫度T(充分大),初始解狀態(tài)S(是算法迭代的起點(diǎn)),每個(gè)T值的迭代次數(shù)L
(2) 對(duì)k=1, …, L做第(3)至第6步:
(3) 產(chǎn)生新解S′
(4) 計(jì)算增量ΔT=C(S′)-C(S),其中C(S)為評(píng)價(jià)函數(shù)
(5) 若ΔT<0則接受S′作為新的當(dāng)前解,否則以概率exp(-ΔT/T)接受S′作為新的當(dāng)前解.
(6) 如果滿足終止條件則輸出當(dāng)前解作為最優(yōu)解,結(jié)束程序。
終止條件通常取為連續(xù)若干個(gè)新解都沒(méi)有被接受時(shí)終止算法。
(7) T逐漸減少,且T->0,然后轉(zhuǎn)第2步。
流程.png
參考:「百度文庫(kù)」「百度百科」「博客園-模擬退火算法- ranjiewen」