進化演算法應用
1. 各種進化演算法有什麼異同
(差異進化演算法DE)是一種用於優化問題的啟發式演算法。本質上說,它是一種基於實數編碼的具有保優思想的貪婪遺傳演算法[1] 。同遺傳演算法一樣,差異進化演算法包含變異和交叉操作,但同時相較於遺傳演算法的選擇操作,差異進化演算法採用一對一的淘汰機制來更新種群。由於差異進化演算法在連續域優化問題的優勢已獲得廣泛應用,並引發進化演算法研究領域的熱潮。 差異進化演算法由Storn 以及Price [2]提出,演算法的原理採用對個體進行方向擾動,以達到對個體的函數值進行下降的目的,同其他進化演算法一樣,差異進化演算法不利用函數的梯度信息,因此對函數的可導性甚至連續性沒有要求,適用性很強。
2. 進化演算法中提出了那麼多的改進,究竟什麼演算法才能夠實際應用
IT行業中,研發中心開發的職業對演算法要求很高。演算法(Algorithm)是指解題方案的准確而完整的描述,是一系列解決問題的清晰指令,演算法代表著用系統的方法描述解決問題的策略機制。也就是說,能夠對一定規范的輸入,在有限時間內獲得所要求的輸出。如果一個演算法有缺陷,或不適合於某個問題,執行這個演算法將不會解決這個問題。不同的演算法可能用不同的時間、空間或效率來完成同樣的任務。一個演算法的優劣可以用空間復雜度與時間復雜度來衡量。演算法中的指令描述的是一個計算,當其運行時能從一個初始狀態和(可能為空的)初始輸入開始,經過一系列有限而清晰定義的狀態,最終產生輸出並停止於一個終態。一個狀態到另一個狀態的轉移不一定是確定的。隨機化演算法在內的一些演算法,包含了一些隨機輸入。
3. 內點懲罰函數法和外點懲罰函數法各有什麼特點
內點懲罰函數法特點:求解時的探索點始終保持在可行域內。
外點懲罰函數法特點:對初始點沒有要求,可以任意取定義域內任意一點。
懲罰函數可以分為外點法和內點法,其中外點法更通用,可解決約束為等式和不等式混合的情形,外點法對初始點也沒有要求,可以任意取定義域內任意一點。而內點法初始點必須為可行區內一點,在約束比較復雜時,這個選擇內點法的初始點是有難度的,並且內點法只能解決約束為不等式情形。
罰函數的應用
1、電機優化設計
在電機優化設計中應用廣義罰函數法優化方法,既可以避免罰函數內點法因罰因子取得不當而造成的尋優困難,又保留了尋優逼近邊界的優點,通過目標函數調整和罰函數的容差迭代,可以達到快速收斂的目的。同時,廣義罰函數優化方法,還具有邊界附近進一步搜索最優點的特性。在應用中,該方法是一種實用性很強而有效的內點尋優方法。
在機械領域,利用廣義罰函數優化方法編制的計算機尋優模塊與各類外點法或可行方案尋求方法結合,具有顯著的優化效果。
2、廣義指數因子預測
該模型實施的關鍵在於預報方程的變數選擇和系數估計,在線性回歸模型的擬合過程中引入罰函數能夠壓縮回歸方程系數估計,將方程中一部分自變數的系數壓縮為0,從而達到自變數選擇、降低誤差方差的目的,並保證預報方程的穩定性,從而提高預測精度。因此,應用罰函數方法來實現廣義指數因子預報方程的擬合是合理的。
4. 進化演算法的特點
進化計算是一種具有魯棒性的方法,能適應不同的環境不同的問題,而且在大多數情況下都能得到比較滿意的有效解。他對問題的整個參數空間給出一種編碼方案,而不是直接對問題的具體參數進行處理,不是從某個單一的初始點開始搜索,而是從一組初始點搜索。搜索中用到的是目標函數值的信息,可以不必用到目標函數的導數信息或與具體問題有關的特殊知識。因而進化演算法具有廣泛的應用性,高度的非線性,易修改性和可並行性。
此外,演算法本身也可以採用動態自適應技術,在進化過程中自動調整演算法控制參數和編碼精度,比如使用模糊自適應法 。 進化策略(ES)是在1965年由Rechenberg和Schwefel獨立提出的。
進化策略的一般演算法
(1) 問題為尋找實值n維矢量x,使得函數F(x): R→R取極值。不失一般性,設此程序為極小化過程。
(2) 從各維的可行范圍內隨機選取親本xi,i = 1, … , p的始值。初始試驗的分布一般是均勻分布。
(3) 通過對於x的每個分量增加零均值和預先選定的標准差的高斯隨機變數,從每個親本xi產生子代xi』。
(4) 通過將適應度F(xi)和F(xi』),i=1,…,P進行排序,選擇並決定那些矢量保留。具有最小適應度的P個矢量變成下一代的新親本。
進行新試驗,選擇具有最小方差的新子代,一直到獲得充分解,或者直到滿足某個終止條件。
在這個模型中,把試驗解的分量看做個體的行為特性,而不是沿染色體排列的基因。假設不管發生什麼遺傳變換,所造成各個個體行為的變化均遵循零均值和某個標准差的高斯分布。
由於基因多效性和多基因性,特定基因的改變可以影響許多表現型特徵。所以在創造新子系時,較為合適的是同時改變親本所有分量。
(1+1)—ES:
早期的進化策略的種群中只包含一個個體,並且只使用變異操作。在每一代中,變異後的個體與其父代進行比較,並選擇較好的一個,這種選擇策略被稱為(1+1)策略。
(1+1)—ES的缺點:
(1) 各維取定常的標推差使得程序收斂到最優解的速度很慢;
(2) 點到點搜索的脆弱本質使得程序在局部極值附近容易受停滯的影響(雖然此演算法表明可以漸近地收斂到全局最優點)。
(μ+λ)—ES:μ個親本製造λ個子代,所有解均參加生存競爭,選出最好的μ個作為下一代的親本。
(μ,λ)—ES:只有λ個子代參加生存競爭,在每代中μ個親本被完全取代。
1.個體的表示法:
每個解矢量不僅包括了n維試驗矢量x,而且還包括了擾動矢量σ,後者給出如何變異x以及它本身如何變異的指令。
2.變異:
設x為當前矢量。σ為對應於x每個維的方差矢量,於是新的解矢量x』,σ』可以這樣產生:
3.交叉:
4.選擇
在進化策略中,選擇是按完全確定的方式進行。(μ,λ)—ES是從λ個子代個體集中選擇μ(1<μ<λA=個最好的個體;(μ+λ)—ES是從父代和子代個體的並集中選擇μ個最好的個體。雖然(μ+λ)—ES保留最優的個體能保證性能單調提高,但這種策略不能處理變化的環境,因此,目前選用最多的還是(μ,λ)—ES。 進化規劃(EP)由Fogel在20世紀60年代提出。
1.表示法和適應值度量
進化規劃假設—個有界子空間 ,其中ui<vi。搜索區域被擴展到I=R,即個體為目標變數向量,a=x∈I,進化規劃把目標函數值通過比例變換到正值,同時加入某個隨機改變θ來得到適應值 ,其中δ是比例函數。
2.變異
可簡化為:
3.選擇
在P個父代個體每個經過一次變異產生P個子代後,進化規劃利用一種隨機q競爭選擇方法從父代和子代的集合中選擇P個個體,其中q>1是選擇演算法的參數。
5. 進化演算法的起源發展
進化計算包括遺傳演算法(Genetic Algorithms)、遺傳規劃(Genetic Programming)、進化策略(Evolution Strategies)和進化規劃(Evolution Programming)4種典型方法。第一類方法比較成熟,現已廣泛應用,進化策略和進化規劃在科研和實際問題中的應用也越來越廣泛。
遺傳演算法的主要基因操作是選種、交配和突變,而在進化規則、進化策略中,進化機制源於選種和突變。就適應度的角度來說遺傳演算法用於選擇優秀的父代(優秀的父代產生優秀的子代),而進化規則和進化策略則用於選擇子代(優秀的子代才能存在)。
遺傳演算法與遺傳規劃強調的是父代對子代的遺傳鏈,而進化規則和進化策略則著重於子代本身的行為特性,即行為鏈。
進化規則和進化策略一般都不採用編碼,省去了運作過程中的編碼—解碼手續更適用於連續優化問題,但因此也不能進行非數值優化。進化策略可以確定機制產生出用於繁殖的父代,而遺傳演算法和進化規則強調對個體適應度和概率的依賴。
此外,進化規則把編碼結構抽象為種群之間的相似,而進化策略抽象為個體之間的相似。進化策略和進化規則已應用於連續函數優化、模式識別、機器學習、神經網路訓練、系統辨識和智能控制的眾多領域
6. 多目標差分進化演算法
差分進化演算法(Differential Evolution, DE)是一種基於群體差異的啟發式隨機搜索演算法,該演算法是由R.Storn和K.Price為求解Chebyshev多項式而提出的。是一種用於最佳化問題的後設啟發式演算法。本質上說,它是一種基於實數編碼的具有保優思想的貪婪遺傳演算法。
將問題的求解表示成"染色體"的適者生存過程,通過"染色體"群的一代代不斷進化,包括復制、交叉和變異等操作,最終收斂到"最適應環境"的個體,從而求得問題的最優解或滿意解。
差分進化演算法類似遺傳演算法,包含變異,交叉操作,淘汰機制,而差分進化演算法與遺傳演算法不同之處,在於變異的部分是隨選兩個解成員變數的差異,經過伸縮後加入當前解成員的變數上,因此差分進化演算法無須使用概率分布產生下一代解成員。最優化方法分為傳統優化方法和啟發式優化方法兩大類。傳統的優化方法大多數都是利用目標函數的導數求解;而啟發式優化方法以仿生演算法為主,通過啟發式搜索策略實現求解優化。啟發式搜索演算法不要求目標函數連續、可微等信息,具有較好的全局尋優能力,成為最優化領域的研究熱點。
在人工智慧領域中,演化演算法是演化計算的一個分支。它是一種基於群體的元啟發式優化演算法,具有自適應、自搜索、自組織和隱並行性等特點。近年來,很多學者將演化演算法應用到優化領域中,取得了很大的成功,並已引起了人們的廣泛關注。越來越多的研究者加入到演化優化的研究之中,並對演化演算法作了許多改進,使其更適合各種優化問題。目前,演化演算法已廣泛應用於求解無約束函數優化、約束函數優化、組合優化、多目標優化等多種優化問題中。
7. 進化演算法的差分演算法
差分進化演算法(Differential Evolution, DE)是一種新興的進化計算技術,或稱為差分演化演算法、微分進化演算法、微分演化演算法、差異演化演算法。它是由Storn等人於1995年提出的,最初的設想是用於解決切比雪夫多項式問題,後來發現DE也是解決復雜優化問題的有效技術。DE與人工生命,特別是進化演算法有著極為特殊的聯系。
差分進化演算法是基於群體智能理論的優化演算法,通過群體內個體間的合作與競爭產生的群體智能指導優化搜索。但相比於進化演算法,DE保留了基於種群的全局搜索策略,採用實數編碼基於差分的簡單變異操作和一對一的競爭生存策略,降低了遺傳操作的復雜性。同時,DE特有的記憶能力使其可以動態跟蹤當前的搜索情況,以調整其搜索策略,具有較強的全局收斂能力和魯棒性,且不需要藉助問題的特徵信息,適於求解一些利用常規的數學規劃方法所無法求解的復雜環境中的優化問題。
差分進化演算法是一種基於群體進化的演算法,具有記憶個體最優解和種群內信息共享的特點,即通過種群內個體間的合作與競爭來實現對優化問題的求解,其本質是一種基於實數編碼的具有保優思想的貪婪遺傳演算法。
DE是一種用於優化問題的啟發式演算法。本質上說,它是一種基於實數編碼的具有保優思想的貪婪遺傳演算法 。同遺傳演算法一樣,DE包含變異和交叉操作,但同時相較於遺傳演算法的選擇操作,DE採用一對一的淘汰機制來更新種群。由於DE在連續域優化問題的優勢已獲得廣泛應用,並引發進化演算法研究領域的熱潮。
DE由Storn 以及Price提出,演算法的原理採用對個體進行方向擾動,以達到對個體的函數值進行下降的目的,同其他進化演算法一樣,DE不利用目標函數的梯度信息,因此對目標的可導性甚至連續性沒有要求,適用性很強。同時,演算法與粒子群優化有相通之處 ,但因為DE在一定程度上考慮了多變數間的相關性,因此相較於粒子群優化在變數耦合問題上有很大的優勢。演算法的實現參考實現代碼部分。
8. 在復雜的優化任務中,為什麼進化演算法可以保證比傳統的確定性優化方法更好的性能
摘要 進化演算法是模擬生物界的進化過程而產生的一種現代優化方法,作為一種有效的隨機搜索方法,在優化方法中具有獨特的優越性,有著非常重要的意義和及其廣泛的應用。傳統優化方法對目標函數解析性質要求較高,進化演算法不需要目標函數的導數信息,具有隱式並行性,所以常用於解決一些復雜的、大規模的、非線性、不可微的優化問題。 首先,對無約束優化問題,分別設計了產生初始種群的一個有效方法,並設計了一個新的雜交運算元和變異運算元,該雜交運算元具有局部搜索的部分功能,變異運算元確定了個體的變異方向,當個體以某個概率沿著該變異方向進行隨機擾動時,可能會產生更好的點。這種新的變異運算元不僅保證了演算法的全局搜索性而且充分考慮了目標函數的信息,避免了盲目性。使得針對無約束進化問題能迅速有效的找到全局最優點,減小運算代價。 其次,對於約束優化問題,本文在無約束優化問題變異運算元的基礎上,又設計了一種新的適用於約束問題的變異運算元,首先求出個體所受的合作用力,然後以某個概率接收該合力方向作為搜索方向。該變異運算元能有效地處理約束條件,使得進化後期種群中的個體幾乎都為可行點。同時為了拋棄部分不可行點,設計了一個新的適應度函數,其僅僅依賴於個體的不可行度和目標函數值。 再次,對約束優化問題,採用粒子群演算法對其進行進化求解;在此基礎上構造了兩個微粒群,一個以約束滿足為目標,另一個以原目標函數為目標,同時在每一個微粒的進化過程中引入一項反映另一微粒群最好微粒的信息。 最後,模擬結果驗證了本文所述方法的正確性與有效性。