-
當(dāng)前位置:首頁 > 創(chuàng)意學(xué)院 > 技術(shù) > 專題列表 > 正文
隨機(jī)優(yōu)化算法有哪些(隨機(jī)優(yōu)化算法有哪些方法)
大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關(guān)于隨機(jī)優(yōu)化算法有哪些的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。
開始之前先推薦一個非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計劃、工作報告、論文、代碼、作文、做題和對話答疑等等
只需要輸入關(guān)鍵詞,就能返回你想要的內(nèi)容,越精準(zhǔn),寫出的就越詳細(xì),有微信小程序端、在線網(wǎng)頁版、PC客戶端
官網(wǎng):https://ai.de1919.com。
創(chuàng)意嶺作為行業(yè)內(nèi)優(yōu)秀的企業(yè),服務(wù)客戶遍布全球各地,如需了解SEO相關(guān)業(yè)務(wù)請撥打電話175-8598-2043,或添加微信:1454722008
本文目錄:
一、優(yōu)化算法筆記(六)遺傳算法
遺傳算法(Genetic Algorithms,GA)是一種模擬自然中生物的遺傳、進(jìn)化以適應(yīng)環(huán)境的智能算法。由于其算法流程簡單,參數(shù)較少優(yōu)化速度較快,效果較好,在圖像處理、函數(shù)優(yōu)化、信號處理、模式識別等領(lǐng)域有著廣泛的應(yīng)用。
在遺傳算法(GA)中,每一個待求問題的候選解被抽象成為種群中一個個體的基因。種群中個體基因的好壞由表示個體基因的候選解在待求問題中的所的得值來評判。種群中的個體通過與其他個體交叉產(chǎn)生下一代,每一代中個體均只進(jìn)行一次交叉。兩個進(jìn)行交叉的個體有一定幾率交換一個或者多個對應(yīng)位的基因來產(chǎn)生新的后代。每個后代都有一定的概率發(fā)生變異。發(fā)生變異的個體的某一位或某幾位基因會變異成其他值。最終將以個體的適應(yīng)度值為概率選取個體保留至下一代。
遺傳算法啟發(fā)于生物的繁殖與dna的重組,本次的主角選什么呢?還是根據(jù)大家熟悉的孟德爾遺傳規(guī)律選豌豆吧,選動物的話又會有人疑車,還是植物比較好,本次的主角就是它了。
遺傳算法包含三個操作(算子):交叉,變異和選擇操作。下面我們將詳細(xì)介紹這三個操作。
大多數(shù)生物的遺傳信息都儲存在DNA,一種雙螺旋結(jié)構(gòu)的復(fù)雜有機(jī)化合物。其含氮堿基為腺嘌呤、鳥嘌呤、胞嘧啶及胸腺嘧啶。
表格中表示了一個有10個基因的個體,它們每一個基因的值為0或者1。
生物的有性生殖一般伴隨著基因的重組。遺傳算法中父輩和母輩個體產(chǎn)生子代個體的過程稱為交叉。
表中給出了兩個豌豆的基因,它們均有10個等位基因(即編號相同的基因)。
遺傳算法的交叉過程會在兩個個體中隨機(jī)選擇1位或者n位基因進(jìn)行交叉,即這兩個個體交換等位基因。
如,A豌豆和B豌豆在第6位基因上進(jìn)行交叉,則其結(jié)果如下
當(dāng)兩個個體交叉的等位基因相同時,交叉過程也有可能沒有產(chǎn)生新的個體,如交叉A豌豆和B豌豆的第2位基因時,交叉操作并沒有產(chǎn)生新的基因。
一般的會給群體設(shè)定一個交叉率,crossRate,表示會在群體中選取一定比例的個體進(jìn)行交叉,交叉率相對較大,一般取值為0.8。
基因的變異是生物進(jìn)化的一個主要因素。
遺傳算法中變異操作相對簡單,只需要將一個隨機(jī)位基因的值修改就行了,因為其值只為0或1,那么當(dāng)基因為0時,變異操作會將其值設(shè)為1,當(dāng)基因值為1時,變異操作會將其值設(shè)為0。
上圖表示了A豌豆第3位基因變異后的基因編碼。
與交叉率相似,變異操作也有變異率,alterRate,但是變異率會遠(yuǎn)低于交叉率,否則會產(chǎn)生大量的隨機(jī)基因。一般變異率為0.05。
選擇操作是遺傳算法中的一個關(guān)鍵操作,它的主要作用就是根據(jù)一定的策略隨機(jī)選擇個體保留至下一代。適應(yīng)度越優(yōu)的個體被保留至下一代的概率越大。
實現(xiàn)上,我們經(jīng)常使用“輪盤賭”來隨機(jī)選擇保留下哪個個體。
假設(shè)有4個豌豆A、B、C、D,它們的適應(yīng)度值如下:
適應(yīng)度值越大越好,則它們組成的輪盤如下圖:
但由于輪盤賭選擇是一個隨機(jī)選擇過程,A、B、C、D進(jìn)行輪盤賭選擇后產(chǎn)生的下一代也有可能出現(xiàn)A、A、A、A的情況,即雖然有些個體的適應(yīng)度值不好,但是運氣不錯,也被選擇留到了下一代。
遺產(chǎn)算法的三個主要操作介紹完了,下面我們來看看遺傳算法的總體流程:
前面我們說了遺傳算法的流程及各個操作,那么對于實際的問題我們應(yīng)該如何將其編碼為基因呢?
對于計算機(jī)來所所有的數(shù)據(jù)都使用二進(jìn)制數(shù)據(jù)進(jìn)行存放,如float類型和double類型的數(shù)據(jù)。
float類型的數(shù)據(jù)將保存為32位的二進(jìn)制數(shù)據(jù):1bit(符號位) 8bits(指數(shù)位) 23bits(尾數(shù)位)
如-1.234567f,表示為二進(jìn)制位10111111100111100000011001001011
Double類型的數(shù)據(jù)將保存為64位的二進(jìn)制數(shù)據(jù):1bit(符號位) 11bits(指數(shù)位) 53bits(尾數(shù)位)
如-1.234567d,表示為二進(jìn)制為1011111111110011110000001100100101010011100110111000100010000111
可以看出同樣的數(shù)值不同的精度在計算機(jī)中存儲的內(nèi)容也不相同。之前的適應(yīng)度函數(shù) ,由于有兩個double類型的參數(shù),故其進(jìn)行遺傳算法基因編碼時,將有128位基因。
雖然基因數(shù)較多,但好在每個基因都是0或者1,交叉及變異操作非常簡單。
相比二進(jìn)制編碼,十進(jìn)制編碼的基因長度更短,適應(yīng)度函數(shù) 有兩個輸入?yún)?shù),那么一個個體就有2個基因,但其交叉、變異操作相對復(fù)雜。
交叉操作
方案1:將一個基因作為一個整體,交換兩個個體的等位基因。
交換前
交換第1位基因后
方案2:將兩個個體的等位基因作為一個整體,使其和不變,但是值隨機(jī)
交換前
交換第1位基因后
假設(shè)A、B豌豆的第一位基因的和為40,即 ,第一位基因的取值范圍為0-30,那么A、B豌豆的第一位基因的取值范圍為[10,30],即 為[0,30]的隨機(jī)數(shù), 。
變異操作,將隨機(jī)的一位基因設(shè)置為該基因取值范圍內(nèi)的隨機(jī)數(shù)即可。
這個過程說起來簡單但其實現(xiàn)并不容易。
我們要將它們的值映射到一個軸上才能進(jìn)行隨機(jī)選擇,畢竟我們無法去繪制一個輪盤來模擬這個過程
如圖,將ABCD根據(jù)其值按順序排列,取[0,10]內(nèi)的隨機(jī)數(shù)r,若r在[0,1]內(nèi)則選擇A,在(1,3]內(nèi)則選擇B,在(3,6]內(nèi)則選擇C,在(6,10]則選擇D。
當(dāng)然這仍然會有問題,即當(dāng)D>>A、B、C時,假如它們的值分布如下
那么顯然,選D的概率明顯大于其他,根據(jù)輪盤賭的選擇,下一代極有可能全是D的后代有沒有辦法均衡一下呢?
首先我想到了一個函數(shù),
不要問我為什么我不知道什么是神經(jīng)什么網(wǎng)絡(luò)的,什么softmax、cnn統(tǒng)統(tǒng)沒聽說過。
這樣一來,它們之間的差距沒有之前那么大了,只要個體適應(yīng)度值在均值以上那么它被保留至下一代的概率會相對較大,當(dāng)然這樣縮小了個體之間的差距,對真正優(yōu)秀的個體來說不太公平,相對應(yīng),我們可以在每次選擇過程中保留當(dāng)前的最優(yōu)個體到下一代,不用參與輪盤賭這個殘酷的淘汰過程。
最令人高興的環(huán)節(jié)到了,又可以愉快的湊字?jǐn)?shù)了。
由于遺傳算法的收斂速度實在是太慢,區(qū)區(qū)50代,幾乎得不到好的結(jié)果,so我們把它的最大迭代次數(shù)放寬到200代。
使用二進(jìn)制編碼來進(jìn)行求解
參數(shù)如下:
求解過程如上圖,可以看出基因收斂的很快,在接近20代時就圖中就只剩一個點了,之后的點大概是根據(jù)變異操作產(chǎn)生。看一下最后的結(jié)果。
可以看出最好的結(jié)果已經(jīng)得到了最優(yōu)解,但是10次實驗的最差值和平均值都差的令人發(fā)指。為什么會這樣呢?
問題出在二進(jìn)制編碼上,由于double類型的編碼有11位指數(shù)位和52位小數(shù)位,這會導(dǎo)致交叉、變異操作選到指數(shù)位和小數(shù)位的概率不均衡,在小數(shù)位上的修改對結(jié)果的影響太小而對指數(shù)為的修改對結(jié)果的影響太大,
如-1.234567d,表示為二進(jìn)制為1011111111110011110000001100100101010011100110111000100010000111
對指數(shù)為第5位進(jìn)行變異操作后的結(jié)果為-2.8744502924382686E-10,而對小數(shù)位第5為進(jìn)行變異操作后的結(jié)果為-1.218942??梢钥闯鲞@兩部分對數(shù)值結(jié)果的影響太不均衡,得出較好的結(jié)果時大概率是指數(shù)位與解非常相近,否則很難得出好的結(jié)果,就像上面的最差值和均值一樣。
所以使用上面的二進(jìn)制編碼不是一個好的基因編碼方式,因此在下面的實驗中,將使用十進(jìn)制來進(jìn)行試驗。
使用:十進(jìn)制編碼來進(jìn)行求解
參數(shù)如下:
我們可以看到直到40代時,所有的個體才收束到一點,但隨后仍不斷的新的個體出現(xiàn)。我們發(fā)現(xiàn)再后面的新粒子總是在同一水平線或者豎直線上,因為交叉操作直接交換了兩個個體的基因,那么他們會相互交換x坐標(biāo)或者y坐標(biāo),導(dǎo)致新個體看起來像在一條直線上。
我們來看看這次的結(jié)果。
這次最優(yōu)值沒有得到最優(yōu)解,但是最差值沒有二進(jìn)制那么差,雖然也不容樂觀。使用交換基因的方式來進(jìn)行交叉操作的搜索能力不足,加之輪盤賭的選擇會有很大概率選擇最優(yōu)個體,個體總出現(xiàn)在矩形的邊上。
下面我們先改變輪盤賭的選擇策略,使用上面的sigmod函數(shù)方案,并且保留最優(yōu)個體至下一代。
使用:十進(jìn)制編碼來進(jìn)行求解
參數(shù)如下:
看圖好像跟之前的沒什么區(qū)別,讓我們們看看最終的結(jié)果:
可以看出,最優(yōu)值沒有什么變化,但是最差值和平均值有了較大的提升,說明該輪盤賭方案使算法的魯棒性有了較大的提升。在每次保留最優(yōu)個體的情況下,對于其他的個體的選擇概率相對平均,sigmod函數(shù)使得即使適應(yīng)度函數(shù)值相差不太大的個體被選到的概率相近,增加了基因的多樣性。
使用:十進(jìn)制編碼來進(jìn)行求解,改變交叉方案,保持兩個個體等位基因和不變的情況下隨機(jī)賦值。
參數(shù)如下:
上圖可以看出該方案與之前有明顯的不同,在整個過程中,個體始終遍布整個搜索空間,雖然新產(chǎn)生的個體大多還是集中在一個十字架型的位置上,但其他位置的個體比之前的方案要多。
看看結(jié)果,
這次的結(jié)果明顯好于之前的所有方案,但仍可以看出,十進(jìn)制的遺傳算法的精度不高,只能找到最優(yōu)解的附近,也有可能是算法的收斂速度實在太慢,還沒有收斂到最優(yōu)解。
遺傳算法的探究到此也告一段落,在研究遺傳算法時總有一種力不從心的感覺,問題可能在于遺傳算法只提出了一個大致的核心思想,其他的實現(xiàn)細(xì)節(jié)都需要自己去思考,而每個人的思維都不一樣,一萬個人能寫出一萬種遺傳算法,其實不僅是遺傳算法,后面的很多算法都是如此。
為什么沒有對遺傳算法的參數(shù)進(jìn)行調(diào)優(yōu),因為遺傳算法的參數(shù)過于簡單,對結(jié)果的影響的可解釋性較強(qiáng),意義明顯,實驗的意義不大。
遺傳算法由于是模仿了生物的進(jìn)化過程,因此我感覺它的求解速度非常的慢,而且進(jìn)化出來的結(jié)果不一定是最適應(yīng)環(huán)境的,就像人的闌尾、視網(wǎng)膜結(jié)構(gòu)等,雖然不是最佳的選擇但是也被保留到了今天。生物的進(jìn)化的隨機(jī)性較大,要不是恐龍的滅絕,也不會有人類的統(tǒng)治,要不是人類有兩只手,每只手有5根手指,也不會產(chǎn)生10進(jìn)制。
以下指標(biāo)純屬個人yy,僅供參考
目錄
上一篇 優(yōu)化算法筆記(五)粒子群算法(3)
下一篇 優(yōu)化算法筆記(七)差分進(jìn)化算法
優(yōu)化算法matlab實現(xiàn)(六)遺傳算法matlab實現(xiàn)
二、程序員必須掌握哪些算法
一.基本算法:
枚舉. (poj1753,poj2965)
貪心(poj1328,poj2109,poj2586)
遞歸和分治法.
遞推.
構(gòu)造法.(poj3295)
模擬法.(poj1068,poj2632,poj1573,poj2993,poj2996)
二.圖算法:
圖的深度優(yōu)先遍歷和廣度優(yōu)先遍歷.
最短路徑算法(dijkstra,bellman-ford,floyd,heap+dijkstra)
(poj1860,poj3259,poj1062,poj2253,poj1125,poj2240)
最小生成樹算法(prim,kruskal)
(poj1789,poj2485,poj1258,poj3026)
拓?fù)渑判?(poj1094)
二分圖的最大匹配 (匈牙利算法) (poj3041,poj3020)
最大流的增廣路算法(KM算法). (poj1459,poj3436)
三.數(shù)據(jù)結(jié)構(gòu).
串 (poj1035,poj3080,poj1936)
排序(快排、歸并排(與逆序數(shù)有關(guān))、堆排) (poj2388,poj2299)
簡單并查集的應(yīng)用.
哈希表和二分查找等高效查找法(數(shù)的Hash,串的Hash)
(poj3349,poj3274,POJ2151,poj1840,poj2002,poj2503)
哈夫曼樹(poj3253)
堆
trie樹(靜態(tài)建樹、動態(tài)建樹) (poj2513)
四.簡單搜索
深度優(yōu)先搜索 (poj2488,poj3083,poj3009,poj1321,poj2251)
廣度優(yōu)先搜索(poj3278,poj1426,poj3126,poj3087.poj3414)
簡單搜索技巧和剪枝(poj2531,poj1416,poj2676,1129)
五.動態(tài)規(guī)劃
背包問題. (poj1837,poj1276)
型如下表的簡單DP(可參考lrj的書 page149):
E[j]=opt{D+w(i,j)} (poj3267,poj1836,poj1260,poj2533)
E[i,j]=opt{D[i-1,j]+xi,D[i,j-1]+yj,D[i-1][j-1]+zij} (最長公共子序列) (poj3176,poj1080,poj1159)
C[i,j]=w[i,j]+opt{C[i,k-1]+C[k,j]}.(最優(yōu)二分檢索樹問題)
六.數(shù)學(xué)
組合數(shù)學(xué):
1.加法原理和乘法原理.
2.排列組合.
3.遞推關(guān)系.
(POJ3252,poj1850,poj1019,poj1942)
數(shù)論.
1.素數(shù)與整除問題
2.進(jìn)制位.
3.同余模運算.
(poj2635, poj3292,poj1845,poj2115)
計算方法.
1.二分法求解單調(diào)函數(shù)相關(guān)知識.(poj3273,poj3258,poj1905,poj3122)
七.計算幾何學(xué).
幾何公式.
叉積和點積的運用(如線段相交的判定,點到線段的距離等). (poj2031,poj1039)
多邊型的簡單算法(求面積)和相關(guān)判定(點在多邊型內(nèi),多邊型是否相交)
(poj1408,poj1584)
凸包. (poj2187,poj1113)
中級(校賽壓軸及省賽中等難度):
一.基本算法:
C++的標(biāo)準(zhǔn)模版庫的應(yīng)用. (poj3096,poj3007)
較為復(fù)雜的模擬題的訓(xùn)練(poj3393,poj1472,poj3371,poj1027,poj2706)
二.圖算法:
差分約束系統(tǒng)的建立和求解. (poj1201,poj2983)
最小費用最大流(poj2516,poj2516,poj2195)
雙連通分量(poj2942)
強(qiáng)連通分支及其縮點.(poj2186)
圖的割邊和割點(poj3352)
最小割模型、網(wǎng)絡(luò)流規(guī)約(poj3308)
三.數(shù)據(jù)結(jié)構(gòu).
線段樹. (poj2528,poj2828,poj2777,poj2886,poj2750)
靜態(tài)二叉檢索樹. (poj2482,poj2352)
樹狀樹組(poj1195,poj3321)
RMQ. (poj3264,poj3368)
并查集的高級應(yīng)用. (poj1703,2492)
KMP算法. (poj1961,poj2406)
四.搜索
最優(yōu)化剪枝和可行性剪枝
搜索的技巧和優(yōu)化 (poj3411,poj1724)
記憶化搜索(poj3373,poj1691)
五.動態(tài)規(guī)劃
較為復(fù)雜的動態(tài)規(guī)劃(如動態(tài)規(guī)劃解特別的旅行商TSP問題等)
(poj1191,poj1054,poj3280,poj2029,poj2948,poj1925,poj3034)
記錄狀態(tài)的動態(tài)規(guī)劃. (POJ3254,poj2411,poj1185)
樹型動態(tài)規(guī)劃(poj2057,poj1947,poj2486,poj3140)
六.數(shù)學(xué)
組合數(shù)學(xué):
1.容斥原理.
2.抽屜原理.
3.置換群與Polya定理(poj1286,poj2409,poj3270,poj1026).
4.遞推關(guān)系和母函數(shù).
數(shù)學(xué).
1.高斯消元法(poj2947,poj1487, poj2065,poj1166,poj1222)
2.概率問題. (poj3071,poj3440)
3.GCD、擴(kuò)展的歐幾里德(中國剩余定理) (poj3101)
計算方法.
1.0/1分?jǐn)?shù)規(guī)劃. (poj2976)
2.三分法求解單峰(單谷)的極值.
3.矩陣法(poj3150,poj3422,poj3070)
4.迭代逼近(poj3301)
隨機(jī)化算法(poj3318,poj2454)
雜題(poj1870,poj3296,poj3286,poj1095)
七.計算幾何學(xué).
坐標(biāo)離散化.
掃描線算法(例如求矩形的面積和周長并,常和線段樹或堆一起使用)
(poj1765,poj1177,poj1151,poj3277,poj2280,poj3004)
多邊形的內(nèi)核(半平面交)(poj3130,poj3335)
幾何工具的綜合應(yīng)用.(poj1819,poj1066,poj2043,poj3227,poj2165,poj3429)
高級(regional中等難度):
一.基本算法要求:
代碼快速寫成,精簡但不失風(fēng)格
(poj2525,poj1684,poj1421,poj1048,poj2050,poj3306)
保證正確性和高效性. poj3434
二.圖算法:
度限制最小生成樹和第K最短路. (poj1639)
最短路,最小生成樹,二分圖,最大流問題的相關(guān)理論(主要是模型建立和求解)
(poj3155, poj2112,poj1966,poj3281,poj1087,poj2289,poj3216,poj2446
最優(yōu)比率生成樹. (poj2728)
最小樹形圖(poj3164)
次小生成樹.
無向圖、有向圖的最小環(huán)
三.數(shù)據(jù)結(jié)構(gòu).
trie圖的建立和應(yīng)用. (poj2778)
LCA和RMQ問題(LCA(最近公共祖先問題) 有離線算法(并查集+dfs) 和 在線算法(RMQ+dfs)).(poj1330)
雙端隊列和它的應(yīng)用(維護(hù)一個單調(diào)的隊列,常常在動態(tài)規(guī)劃中起到優(yōu)化狀態(tài)轉(zhuǎn)移的目的). (poj2823)
左偏樹(可合并堆).
后綴樹(非常有用的數(shù)據(jù)結(jié)構(gòu),也是賽區(qū)考題的熱點).(poj3415,poj3294)
四.搜索
較麻煩的搜索題目訓(xùn)練(poj1069,poj3322,poj1475,poj1924,poj2049,poj3426)
廣搜的狀態(tài)優(yōu)化:利用M進(jìn)制數(shù)存儲狀態(tài)、轉(zhuǎn)化為串用hash表判重、按位壓縮存儲狀態(tài)、雙向廣搜、A*算法. (poj1768,poj1184,poj1872,poj1324,poj2046,poj1482)
深搜的優(yōu)化:盡量用位運算、一定要加剪枝、函數(shù)參數(shù)盡可能少、層數(shù)不易過大、可以考慮雙向搜索或者是輪換搜索、IDA*算法. (poj3131,poj2870,poj2286)
五.動態(tài)規(guī)劃
需要用數(shù)據(jù)結(jié)構(gòu)優(yōu)化的動態(tài)規(guī)劃.(poj2754,poj3378,poj3017)
四邊形不等式理論.
較難的狀態(tài)DP(poj3133)
六.數(shù)學(xué)
組合數(shù)學(xué).
1.MoBius反演(poj2888,poj2154)
2.偏序關(guān)系理論.
博奕論.
1.極大極小過程(poj3317,poj1085)
2.Nim問題.
七.計算幾何學(xué).
半平面求交(poj3384,poj2540)
可視圖的建立(poj2966)
點集最小圓覆蓋.
對踵點(poj2079)
三、有關(guān)啟發(fā)式算法(Heuristic Algorithm)的一些總結(jié)
節(jié)選自維基百科:
啟發(fā)法 ( heuristics ,源自古希臘語的εὑρίσκω,又譯作:策略法、助發(fā)現(xiàn)法、啟發(fā)力、捷思法)是指 依據(jù)有限的知識 (或“不完整的信息”)在短時間內(nèi)找到問題解決方案的一種技術(shù)。
它是一種依據(jù) 關(guān)于系統(tǒng)的有限認(rèn)知 和 假說 從而得到關(guān)于此系統(tǒng)的結(jié)論的分析行為。由此得到的解決方案有可能會偏離最佳方案。通過與最佳方案的對比,可以確保啟發(fā)法的質(zhì)量。
計算機(jī)科學(xué)的兩大基礎(chǔ)目標(biāo),就是 發(fā)現(xiàn)可證明其運行效率良好 且可 得最佳解或次佳解 的算法。
而啟發(fā)式算法則 試圖一次提供一個或全部目標(biāo) 。例如它常能發(fā)現(xiàn)很不錯的解, 但也沒辦法證明它不會得到較壞的解 ; 它通常可在合理時間解出答案,但也沒辦法知道它是否每次都可以這樣的速度求解。
有時候人們會發(fā)現(xiàn)在某些特殊情況下,啟發(fā)式算法會得到很壞的答案或效率極差, 然而造成那些特殊情況的數(shù)據(jù)結(jié)構(gòu),也許永遠(yuǎn)不會在現(xiàn)實世界出現(xiàn) 。
因此現(xiàn)實世界中啟發(fā)式算法很常用來解決問題。啟發(fā)式算法處理許多實際問題時通常可以在合理時間內(nèi)得到不錯的答案。
有一類的 通用啟發(fā)式策略稱為元啟發(fā)式算法(metaheuristic) ,通常使用隨機(jī)數(shù)搜索技巧。他們可以應(yīng)用在非常廣泛的問題上,但不能保證效率。
節(jié)選自百度百科:
啟發(fā)式算法可以這樣定義:一個 基于直觀或經(jīng)驗構(gòu)造 的算法, 在 可接受的花費(指計算時間和空間)下給出待解決組合優(yōu)化問題每一個實例的一個可行解 , 該可行解與最優(yōu)解的偏離程度一般不能被預(yù)計。 現(xiàn)階段,啟發(fā)式算法以仿自然體算法為主,主要有蟻群算法、模擬退火法、神經(jīng)網(wǎng)絡(luò)等。
目前比較通用的啟發(fā)式算法一般有模擬退火算法(SA)、遺傳算法(GA)、蟻群算法(ACO)。
模擬退火算法(Simulated Annealing, SA)的思想借鑒于固體的退火原理,當(dāng)固體的溫度很高的時候,內(nèi)能比較大,固體的內(nèi)部粒子處于快速無序運動,當(dāng)溫度慢慢降低的過程中,固體的內(nèi)能減小,粒子的慢慢趨于有序,最終,當(dāng)固體處于常溫時,內(nèi)能達(dá)到最小,此時,粒子最為穩(wěn)定。模擬退火算法便是基于這樣的原理設(shè)計而成。
求解給定函數(shù)的最小值:其中,0<=x<=100,給定任意y的值,求解x為多少的時候,F(xiàn)(x)最???
遺傳算法(Genetic Algorithm, GA)起源于對生物系統(tǒng)所進(jìn)行的計算機(jī)模擬研究。它是模仿自然界生物進(jìn)化機(jī)制發(fā)展起來的隨機(jī)全局搜索和優(yōu)化方法,借鑒了達(dá)爾文的進(jìn)化論和孟德爾的遺傳學(xué)說。其本質(zhì)是一種 高效、并行、全局搜索 的方法,能在搜索過程中自動獲取和積累有關(guān)搜索空間的知識,并 自適應(yīng) 地控制搜索過程以求得最佳解。
給定一組五個基因,每一個基因可以保存一個二進(jìn)制值 0 或 1。這里的適應(yīng)度是基因組中 1 的數(shù)量。如果基因組內(nèi)共有五個 1,則該個體適應(yīng)度達(dá)到最大值。如果基因組內(nèi)沒有 1,那么個體的適應(yīng)度達(dá)到最小值。該遺傳算法希望 最大化適應(yīng)度 ,并提供適應(yīng)度達(dá)到最大的個體所組成的群體。
想象有一只螞蟻找到了食物,那么它就需要將這個食物待會螞蟻穴。對于這只螞蟻來說,它并不知道應(yīng)該怎么回到螞蟻穴。
這只螞蟻有可能會隨機(jī)選擇一條路線,這條路可能路程比較遠(yuǎn),但是這只螞蟻在這條路上留下了記號(一種化學(xué)物質(zhì),信息素)。如果這只螞蟻繼續(xù)不停地搬運食物的時候,有其它許多螞蟻一起搬運的話,它們總會有運氣好的時候走到更快返回螞蟻穴的路線。當(dāng)螞蟻選擇的路線越優(yōu),相同時間內(nèi)螞蟻往返的次數(shù)就會越多,這樣就在這條路上留下了更多的信息素。
這時候,螞蟻們就會選擇一些路徑上信息素越濃的,這些路徑就是較優(yōu)的路徑。當(dāng)螞蟻們不斷重復(fù)這個過程,螞蟻們就會更多地向更濃的信息素的路徑上偏移,這樣最終會確定一條路徑,這條路徑就是最優(yōu)路徑。
四、最小二乘法、回歸分析法、灰色預(yù)測法、決策論、神經(jīng)網(wǎng)絡(luò)等5個算法的使用范圍及優(yōu)缺點是什么?
最小二乘法:通過最小化誤差的平方和尋找數(shù)據(jù)的最佳函數(shù)匹配。利用最小二乘法可以簡便地求得未知的數(shù)據(jù),并使得這些求得的數(shù)據(jù)與實際數(shù)據(jù)之間誤差的平方和為最小。最小二乘法還可用于曲線擬合。其他一些優(yōu)化問題也可通過最小化能量或最大化熵用最小二乘法來表達(dá)。優(yōu)點:實現(xiàn)簡單,計算簡單。缺點:不能擬合非線性數(shù)據(jù).
回歸分析法:指的是確定兩種或兩種以上變量間相互依賴的定量關(guān)系的一種統(tǒng)計分析方法。在大數(shù)據(jù)分析中,回歸分析是一種預(yù)測性的建模技術(shù),它研究的是因變量(目標(biāo))和自變量(預(yù)測器)之間的關(guān)系。這種技術(shù)通常用于預(yù)測分析,時間序列模型以及發(fā)現(xiàn)變量之間的因果關(guān)系。優(yōu)點:在分析多因素模型時,更加簡單和方便,不僅可以預(yù)測并求出函數(shù),還可以自己對結(jié)果進(jìn)行殘差的檢驗,檢驗?zāi)P偷木?。缺點:回歸方程式只是一種推測,這影響了因子的多樣性和某些因子的不可測性,使得回歸分析在某些情況下受到限制。
灰色預(yù)測法:
色預(yù)測法是一種對含有不確定因素的系統(tǒng)進(jìn)行預(yù)測的方法 。它通過鑒別系統(tǒng)因素之間發(fā)展趨勢的相異程度,即進(jìn)行關(guān)聯(lián)分析,并對原始數(shù)據(jù)進(jìn)行生成處理來尋找系統(tǒng)變動的規(guī)律,生成有較強(qiáng)規(guī)律性的數(shù)據(jù)序列,然后建立相應(yīng)的微分方程模型,從而預(yù)測事物未來發(fā)展趨勢的狀況。它用等時間距離觀測到的反應(yīng)預(yù)測對象特征的一系列數(shù)量值構(gòu)造灰色預(yù)測模型,預(yù)測未來某一時刻的特征量,或者達(dá)到某一特征量的時間。優(yōu)點:對于不確定因素的復(fù)雜系統(tǒng)預(yù)測效果較好,且所需樣本數(shù)據(jù)較小。缺點:基于指數(shù)率的預(yù)測沒有考慮系統(tǒng)的隨機(jī)性,中長期預(yù)測精度較差。
決策樹:在已知各種情況發(fā)生概率的基礎(chǔ)上,通過構(gòu)成決策樹來求取凈現(xiàn)值的期望值大于等于零的概率,評價項目風(fēng)險,判斷其可行性的決策分析方法,是直觀運用概率分析的一種圖解法。由于這種決策分支畫成圖形很像一棵樹的枝干,故稱決策樹。在機(jī)器學(xué)習(xí)中,決策樹是一個預(yù)測模型,他代表的是對象屬性與對象值之間的一種映射關(guān)系。優(yōu)點:能夠處理不相關(guān)的特征;在相對短的時間內(nèi)能夠?qū)Υ笮蛿?shù)據(jù)源做出可行且效果良好的分析;計算簡單,易于理解,可解釋性強(qiáng);比較適合處理有缺失屬性的樣本。缺點:忽略了數(shù)據(jù)之間的相關(guān)性;容易發(fā)生過擬合(隨機(jī)森林可以很大程度上減少過擬合);在決策樹當(dāng)中,對于各類別樣本數(shù)量不一致的數(shù)據(jù),信息增益的結(jié)果偏向于那些具有更多數(shù)值的特征。
神經(jīng)網(wǎng)絡(luò):優(yōu)點:分類的準(zhǔn)確度高;并行分布處理能力強(qiáng),分布存儲及學(xué)習(xí)能力強(qiáng),對噪聲神經(jīng)有較強(qiáng)的魯棒性和容錯能力,能充分逼近復(fù)雜的非線性關(guān)系;具備聯(lián)想記憶的功能。缺點:神經(jīng)網(wǎng)絡(luò)需要大量的參數(shù),如網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)、權(quán)值和閾值的初始值;不能觀察之間的學(xué)習(xí)過程,輸出結(jié)果難以解釋,會影響到結(jié)果的可信度和可接受程度;學(xué)習(xí)時間過長,甚至可能達(dá)不到學(xué)習(xí)的目的。
以上就是關(guān)于隨機(jī)優(yōu)化算法有哪些相關(guān)問題的回答。希望能幫到你,如有更多相關(guān)問題,您也可以聯(lián)系我們的客服進(jìn)行咨詢,客服也會為您講解更多精彩的知識和內(nèi)容。
推薦閱讀:
chatrandom隨機(jī)匹配聊天網(wǎng)頁版(隨機(jī)匹配在線聊天)
繪畫隨機(jī)生成關(guān)鍵詞(繪畫隨機(jī)生成關(guān)鍵詞app)
隨機(jī)關(guān)鍵詞生成器在線(隨機(jī)關(guān)鍵詞生成器在線制作)
網(wǎng)頁文件怎么導(dǎo)出pdf(網(wǎng)頁文件怎么導(dǎo)出pdf就損壞)