幾種優化算法

隨機搜索

利用隨機數求極小點而求得函數近似的最優解方法變量允許的變化區間,不斷隨機地而不是有傾向性產生隨機點,並計算其約束函數和目標函數的值,對滿足約束條件的點,逐個比較其目標函數的值,將壞的點拋棄,保留好的點,最後便得到最優解的近似解。這種方法是建立在概率論的基礎上,所取隨機點越多,則得到最優解的概率也就越大。由於大多數計算機程序庫中有隨機數發生器,所以應用這種方法是很方便的。但是其計算精度較差、效率較低。隨機搜索一般用於粗選普查。常用的方法有隨機跳躍法,隨機走步法等。

http://baike.baidu.com/view/1587541.htm


Hill Clibming

It is an iterative algorithm that starts with an arbitrary solution to a problem, then attempts to find a better solution by incrementally changing a single element of the solution. If the change produces a better solution, an incremental change is made to the new solution, repeating until no further improvements can be found.

The relative simplicity of the algorithm makes it a popular first choice amongst optimizing algorithms.

Hill climbing can often produce a better result than other algorithms when the amount of time available to perform a search is limited, such as with real-time systems. It is an anytime algorithm: it can return a valid solution even if it's interrupted at any time before it ends.


It’s clear that simply moving down the slope will not necessarily lead to the best solution overall. The final solution will be a local minimum, a solution
better than those around it but not the best overall. The best overall is called the global minimum, which is what optimization algorithms are ultimately supposed to find. One approach to this dilemma is called random-restart hill climbing, where the hill climbing algorithm is run several times with random starting points in the hope that one of them will be close to the global minimum.


模擬退火


退火Annealing)在冶金學材料工程中,是一種改變材料微結構且進而改變如硬度強度等機械性質的熱處理

過程爲將金屬加溫到某個高於再結晶溫度的一點並維持此溫度一段時間,再將其緩慢冷卻。退火的功用在於恢復因冷加工而降低的性質,增加柔軟性、延性韌性,並釋放內部殘留應力、以及產生特定的顯微結構。退火過程中,多以原子或晶格空位的移動釋放內部殘留應力,透過這些原子重組的過程來消除金屬或陶瓷中的差排,然而這項改變動也讓金屬中的差排更易移動,增加了它們的延性。


模擬退火算法(Simulated Annealing,SA)最早的思想是由N. Metropolis[1]等人於1953年提出。1983 年,S. Kirkpatrick 等成功地將退火思想引入到組合優化領域。它是基於Monte-Carlo迭代求解策略的一種隨機尋優算法,其出發點是基於物理中固體物質的退火過程與一般組合優化問題之間的相似性。模擬退火算法從某一較高初溫出發,伴隨溫度參數的不斷下降,結合概率突跳特性在解空間中隨機尋找目標函數的全局最優解,即在局部最優解能概率性地跳出並最終趨於全局最優。模擬退火算法是一種通用的優化算法,理論上算法具有概率的全局優化性能,目前已在工程中得到了廣泛應用,諸如VLSI、生產調度、控制工程、機器學習、神經網絡、信號處理等領域。


http://baike.baidu.com/view/18185.htm


模擬退火算法來源於固體退火原理,將固體加溫至充分高,再讓其徐徐冷卻,加溫時,固體內部粒子隨溫升變爲無序狀,內能增大,而徐徐冷卻時粒子漸趨有序,在每個溫度都達到平衡態,最後在常溫時達到基態,內能減爲最小。根據Metropolis準則,粒子在溫度T時趨於平衡的概率爲e-ΔE/(kT),其中E爲溫度T時的內能,ΔE爲其改變量,k爲Boltzmann常數。用固體退火模擬組合優化問題,將內能E模擬爲目標函數值f,溫度T演化成控制參數t,即得到解組合優化問題的模擬退火算法:由初始解i和控制參數初值t開始,對當前解重複“產生新解→計算目標函數差→接受或捨棄”的迭代,並逐步衰減t值,算法終止時的當前解即爲所得近似最優解,這是基於蒙特卡羅迭代求解法的一種啓發式隨機搜索過程。退火過程由冷卻進度表(Cooling Schedule)控制,包括控制參數的初值t及其衰減因子Δt、每個t值時的迭代次數L和停止條件S。

模擬退火算法的模型

1模擬退火算法可以分解爲解空間目標函數和初始解三部分。
2模擬退火的基本思想:
(1) 初始化:初始溫度T(充分大),初始解狀態S(是算法迭代的起點),每個T值的迭代次數L
(2) 對k=1,……,L做第(3)至第6步:
(3) 產生新解S′
(4) 計算增量Δt′=C(S′)-C(S),其中C(S)爲評價函數
(5) 若Δt′<0則接受S′作爲新的當前解,否則以概率exp(-Δt′/T)接受S′作爲新的當前解.
(6) 如果滿足終止條件則輸出當前解作爲最優解,結束程序。
終止條件通常取爲連續若干個新解都沒有被接受時終止算法。
(7) T逐漸減少,且T->0,然後轉第2步。

模擬退火算法的步驟

模擬退火算法新解的產生和接受可分爲如下四個步驟:
第一步是由一個產生函數從當前解產生一個位於解空間的新解;爲便於後續的計算和接受,減少算法耗時,通常選擇由當前新解經過簡單地變換即可產生新解的方法,如對構成新解的全部或部分元素進行置換、互換等,注意到產生新解的變換方法決定了當前新解的鄰域結構,因而對冷卻進度表的選取有一定的影響。
第二步是計算與新解所對應的目標函數差。因爲目標函數差僅由變換部分產生,所以目標函數差的計算最好按增量計算。事實表明,對大多數應用而言,這是計算目標函數差的最快方法。
第三步是判斷新解是否被接受,判斷的依據是一個接受準則,最常用的接受準則是Metropolis準則: 若Δt′<0則接受S′作爲新的當前解S,否則以概率exp(-Δt′/T)接受S′作爲新的當前解S。
第四步是當新解被確定接受時,用新解代替當前解,這隻需將當前解中對應於產生新解時的變換部分予以實現,同時修正目標函數值即可。此時,當前解實現了一次迭代。可在此基礎上開始下一輪試驗。而當新解被判定爲捨棄時,則在原當前解的基礎上繼續下一輪試驗。
模擬退火算法與初始值無關,算法求得的解與初始解狀態S(是算法迭代的起點)無關;模擬退火算法具有漸近收斂性,已在理論上被證明是一種以概率l 收斂於全局最優解的全局優化算法;模擬退火算法具有並行性。

Genetic Algorithm

得的解與初始解狀態S(是算法迭代的起點)無關;模擬退火算法具有漸近收斂性,已在理論上被證明是一種以概率l 收斂於全局最優解的全局優化算法;模擬退火算法具有並行性。


These work by initially creating a set of random solutions known as the
population. At each step of the optimization, the cost function for the entire population
is calculated to get a ranked list of solutions.


SolutionCost
[7, 5, 2, 3, 1, 6, 1, 6, 7, 1, 0, 3] 4394
[7, 2, 2, 2, 3, 3, 2, 3, 5, 2, 0, 8] 4661

[0, 4, 0, 3, 8, 8, 4, 4, 8, 5, 6, 1] 7845
[5, 8, 0, 2, 8, 8, 8, 2, 1, 6, 6, 8] 8088




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章