遺傳演算法原理
『壹』 怎麼用遺傳演算法理論優化測試用例
明公開了一種基於遺傳演算法的測試用例優化方法,其特徵在於:採用遺傳演算法所存在的思想,通過優化選擇 測試用例,用最小的代價達到最大的覆蓋率,找到測試用例選取的有效解決策略,該方法主要包括:編碼策略和適應度函數以及測試用例群體選擇,遺傳
『貳』 遺傳演算法原理與應用實例的介紹
《遺傳演算法原理與應用實例》主要結合應用實例系統討論、介紹遺傳演算法原理及其應用,主要內容包括:遺傳演算法的基本原理和數學機理、解決連續問題優化的遺傳演算法和分布式遺傳演算法、遺傳演算法的實現技術、遺傳演算法應用實例,並給出了兩個典型的遺傳演算法源程序。《遺傳演算法原理與應用實例》在詳細介紹遺傳演算法理論與方法的同時,還給_出了基於遺傳演算法的費托合成反應動力學模型參數優化的詳細設計應用。
『叄』 遺傳演算法——理論·應用與軟體實現
遺傳演算法——理論、應用與軟體實現
王小平、曹立明著
西安交通大學出版社
有一份PDF的,掃描版,不算很清晰,
需要的讀者話可以聯系:[email protected] ···
『肆』 什麼是遺傳演算法
遺傳演算法(Genetic Algorithm)是一類借鑒生物界的進化規律(適者生存,優勝劣汰遺傳機制)演化而來的隨機化搜索方法。它是由美國的J.Holland教授1975年首先提出,其主要特點是直接對結構對象進行操作,不存在求導和函數連續性的限定;具有內在的隱並行性和更好的全局尋優能力;採用概率化的尋優方法,能自動獲取和指導優化的搜索空間,自適應地調整搜索方向,不需要確定的規則。遺傳演算法的這些性質,已被人們廣泛地應用於組合優化、機器學習、信號處理、自適應控制和人工生命等領域。它是現代有關智能計算中的關鍵技術。
對於一個求函數最大值的優化問題(求函數最小值也類同),一般可以描述為下列數學規劃模型:
遺傳演算法式中x為決策
變數,式2-1為目標函數式,式2-2、2-3為約束條件,U是基本空間,R是U的子集。滿足約束條件的解X稱為可行解,集合R表示所有滿足約束條件的解所組成的集合,稱為可行解集合。
遺傳演算法的基本運算過程如下:
a)初始化:設置進化代數計數器t=0,設置最大進化代數T,隨機生成M個個體作為初始群體P(0)。
b)個體評價:計算群體P(t)中各個個體的適應度。
c)選擇運算:將選擇運算元作用於群體。選擇的目的是把優化的個體直接遺傳到下一代或通過配對交叉產生新的個體再遺傳到下一代。選擇操作是建立在群體中個體的適應度評估基礎上的。
d)交叉運算:將交叉運算元作用於群體。所謂交叉是指把兩個父代個體的部分結構加以替換重組而生成新個體的操作。遺傳演算法中起核心作用的就是交叉運算元。
e)變異運算:將變異運算元作用於群體。即是對群體中的個體串的某些基因座上的基因值作變動。
群體P(t)經過選擇、交叉、變異運算之後得到下一代群體P(t 1)。
f)終止條件判斷:若t=T,則以進化過程中所得到的具有最大適應度個體作為最優解輸出,終止計算。
遺傳演算法是從代表問題可能潛在的解集的一個種群(population)開始的,而一個種群則由經過基因(gene)編碼的一定數目的個體(indivial)組成。每個個體實際上是染色體(chromosome)帶有特徵的實體。染色體作為遺傳物質的主要載體,即多個基因的集合,其內部表現(即基因型)是某種基因組合,它決定了個體的形狀的外部表現,如黑頭發的特徵是由染色體中控制這一特徵的某種基因組合決定的。因此,在一開始需要實現從表現型到基因型的映射即編碼工作。由於仿照基因編碼的工作很復雜,我們往往進行簡化,如二進制編碼,初代種群產生之後,按照適者生存和優勝劣汰的原理,逐代(generation)演化產生出越來越好的近似解,在每一代,根據問題域中個體的適應度(fitness)大小選擇(selection)個體,並藉助於自然遺傳學的遺傳運算元(genetic operators)進行組合交叉(crossover)和變異(mutation),產生出代表新的解集的種群。這個過程將導致種群像自然進化一樣的後生代種群比前代更加適應於環境,末代種群中的最優個體經過解碼(decoding),可以作為問題近似最優解。
『伍』 遺傳演算法路徑規劃是什麼原理
遺傳演算法有相當大的引用。遺傳演算法在游戲中應用的現狀在遺傳編碼時, 一般將瓦片的坐標作為基因進行實數編碼, 染色體的第一個基因為起點坐標, 最後一個基因為終點坐標, 中間的基因為路徑經過的每一個瓦片的坐標。在生成染色體時, 由起點出發, 隨機選擇當前結點的鄰居節點中的可通過節點, 將其坐標加入染色體, 依此循環, 直到找到目標點為止, 生成了一條染色體。重復上述操作, 直到達到指定的種群規模。遺傳演算法的優點:1、遺傳演算法是以決策變數的編碼作為運算對象,可以直接對集合、序列、矩陣、樹、圖等結構對象進行操作。這樣的方式一方面有助於模擬生物的基因、染色體和遺傳進化的過程,方便遺傳操作運算元的運用。另一方面也使得遺傳演算法具有廣泛的應用領域,如函數優化、生產調度、自動控制、圖像處理、機器學習、數據挖掘等領域。2、遺傳演算法直接以目標函數值作為搜索信息。它僅僅使用適應度函數值來度量個體的優良程度,不涉及目標函數值求導求微分的過程。因為在現實中很多目標函數是很難求導的,甚至是不存在導數的,所以這一點也使得遺傳演算法顯示出高度的優越性。3、遺傳演算法具有群體搜索的特性。它的搜索過程是從一個具有多個個體的初始群體P(0)開始的,一方面可以有效地避免搜索一些不必搜索的點。另一方面由於傳統的單點搜索方法在對多峰分布的搜索空間進行搜索時很容易陷入局部某個單峰的極值點,而遺傳演算法的群體搜索特性卻可以避免這樣的問題,因而可以體現出遺傳演算法的並行化和較好的全局搜索性。4、遺傳演算法基於概率規則,而不是確定性規則。這使得搜索更為靈活,參數對其搜索效果的影響也盡可能的小。5、遺傳演算法具有可擴展性,易於與其他技術混合使用。以上幾點便是遺傳演算法作為優化演算法所具備的優點。遺傳演算法的缺點:遺傳演算法在進行編碼時容易出現不規范不準確的問題。
『陸』 遺傳演算法 什麼是染色體的可行性
1.2 遺傳演算法的原理 遺傳演算法GA把問題的解表示成「染色體」,在演算法中也即是以二進制編碼的串。並且,在執行遺傳演算法之前,給出一群「染色體」,也即是假設解。然後,把這些假設解置於問題的「環境」中,並按適者生存的原則,從中選擇出較適應環境的
『柒』 遺傳演算法和強化學習最大的的區別是什麼
有監督的學習、無監督的學習和強化學習。 強化學習採用的是邊獲得樣例邊學習的方式,在獲得樣例之後更新自己的模型,利用當前的模型來指導下一步的行動,下一步的行動獲得回報之後再更新模型
遺傳演算法的原理 遺傳演算法GA把問題的解表示成「染色體」,在演算法中也即是以二進制編碼的串。並且,在執行遺傳演算法之前,給出一群「染色體」,也即是假設解。然後,把這些假設解置於問題的「環境」中,並按適者生存的原則
『捌』 Visio怎樣繪制遺傳演算法原理圖
在文本工具旁有個「繪圖工具」----點選裡面的鉛筆工具(ctrl+4),按住shift,可以畫出圓弧。(需要練習一下,因為很容易畫出直線。個人經驗是按住shift,滑鼠快速滑出圓弧後,再調整圓弧大小。)
『玖』 求分享 遺傳演算法——理論、應用與軟體實現與遺傳演算法原理及應用這兩本電子書,謝謝
您也給我發一下吧,謝謝!郵箱:[email protected]
『拾』 非線性解析反演與遺傳演算法的結合反演方法
周輝
(青島海洋大學海洋地球科學學院,青島266003)
何樵登
(長春地質學院地球物理系,長春130026)
摘要各向異性介質參數反演通常為非線性優化問題。非線性反演方法可以分為兩大類:隨機搜索方法,如Monte Carlo法、模擬退火和遺傳演算法及基於非線性最小平方理論的非線性解析反演方法。遺傳演算法能尋找到全局最優解,但它為一種較費時的方法。非線性解析反演方法能給出一個與初始模型有關的局部最優解。然而,這種方法具有較快的收斂速度。遺傳演算法與非線性解析反演方法相結合的反演方法利用這兩種反演方法的優點而克服其缺點。因此,結合反演方法既能快速收斂,又能尋找到全局最優解。如何合理地將遺傳演算法和非線性解析反演方法結合是十分重要的。本文提出一種結合方案,即在連續若干次遺傳演算法迭代後作一次非線性解析反演。理論算例表明結合反演方法具有上述特點。
關鍵詞遺傳演算法非線性解析反演非線性結合反演各向異性介質
1引言
遺傳演算法為隨機搜索類方法之一,它以概率論為理論基礎,用於求解多極值復雜優化問題[9]。遺傳演算法不要求已知模型空間中後驗概率密度的形狀並能廣泛搜索模型空間。遺傳演算法模擬自然選擇和遺傳規律,並遵循適者生存的原則。
遺傳演算法由Holland在1975年提出[4]。Berg首先將遺傳演算法應用於地球物理優化問題[1]。Stoffa等系統地研究了種群大小、交叉概率、選擇概率和變異概率對多參數優化問題收斂性和收斂速度的影響[11]。Sen等討論了在選擇概率中引入溫度參數的作用並提出一些退火方案[10]。周輝等則研究了目標函數與收斂速度和解的精度的關系[16]。
基於最小平方優化理論的非線性反演方法是兩大類反演方法之一。當給定的初始模型位於目標函數全局最優解所在的峰谷附近時,這種下降類方法能給出正確解而與初始模型位置無關。下降類演算法研究得較深入,應用較廣。
Tarantola提出一種基於廣義最小二乘法的多維多偏移距聲波地震波形解釋的一般性非線性地震波形反演方法[12]。隨後,Tarantola將該理論推廣於各向同性介質的彈性波反演[13]。Gauthier等用理論數據驗證了Tarantola提出的方法的正確性[2]。稍後,Tarantola研究非線性解析法反射波彈性反演的策略,指出以縱橫波的波阻抗和密度作為反演參數,才盡可能使反演參數之間相互獨立[14]。Pan用τ—P變換研究層狀聲學介質中平面波地震記錄非線性解析反演的理論和可行性[6]。為了更多地利用地震數據中的信息,包括VSP資料中反射和轉換信息,Mora作了一些工作[5]。當僅用反射數據時反演主要解決引起反射的P波和S波的波阻抗突變。當利用轉換數據時,則能分辨大尺度的P波和S波速度變化。Sambridge等改進了修改模型的方法[8]。在子空間中,可同時得到P波、S波波阻抗和密度。周輝等將非線性梯度反演方法推廣於多維、多道、多分量任意彈性各向異性介質參數的反演[17]。
非線性解析反演方法和遺傳演算法結合的反演方法利用非線性解析反演和遺傳演算法的優點,克服它們的缺點。因此,結合反演方法不僅能搜索到全局最優解,而且能較快地收斂。Porsani等在遺傳演算法和廣義線性反演方法相結合方面作了一些研究[7]。
本文討論各向異性介質的非線性解析反演方法和遺傳演算法與非線性解析反演方法相結合的結合反演方法[17]。對於遺傳演算法讀者可參考遺傳演算法的相關文獻[3,9~11]。
2各向異性介質參數非線性解析反演方法
2.1共軛梯度法
反演的目的是利用地面或井中測得的位移場ui(xr,t)求取地下介質密度分布ρ(x)和彈性參數分布Cijkl(x)。ρ(x)、Cijkl(x)稱為模型參數。x為研究介質中或邊界上任一點,x=(x1,x2,x3),xr為接收點。反演的目標是使目標函數
岩石圈構造和深部作用
取極小值。其中Cd、Cm分別為數據(波場)和模型參數的協方差運算元。m0為先驗模型參數,m為反演過程中求得的模型參數。由於模型參數有多個,故用向量表示。ucal為給定m的波動方程正演記錄,uobs為觀測波場,上角標t表示轉置。地震記錄u和模型參數m之間的函數關系為
岩石圈構造和深部作用
g為非線性運算元,(2)式為波動方程的運算元形式。記第n次迭代時的模型參數為mn,則有
岩石圈構造和深部作用
及共軛梯度法的迭代公式[15]
岩石圈構造和深部作用
其中Gn為g對mn的Frechet導數,ηn為一常數,可由多種方法計算[5,8]。
梯度
式(4)為梯度反演方法的基本公式。當該公式中的每一量都已知時,迭代就可進行。在這些變數中,最關鍵的是梯度向量。
2.2目標函數
在最小二乘理論中,權函數是協方差運算元逆的核。假設數據集中的誤差是不相關的,它僅取決於時間或源和接收器的位置,那麼有[14]
岩石圈構造和深部作用
其中σ為數據的均方差。
2.3各向異性介質中的彈性波動方程
令fi(x,t;xs)是第s次激發的內體力密度,Ti(x,t;xs)是地球表面S的應力矢量分量,ni(x)是表面的單位法向分量。那麼與第s次激發相應的位移由以下微分方程組給出[15]
岩石圈構造和深部作用
2.4梯度向量
式(4)中梯度向量的分量為[17]
岩石圈構造和深部作用
其中,T為地震記錄的長度,
岩石圈構造和深部作用
其中,t∈[T,0],
3結合反演方法
3.1遺傳演算法和非線性解析反演方法的優缺點
遺傳演算法是利用概率論來求解多極值復雜優化問題的一種隨機搜索方法,由一組隨機選取的模型開始,不需要更多的先驗信息,廣泛而有效地對模型空間的最優部分采樣。盡管遺傳演算法是基於自然選擇、遺傳規律,搜索模型空間的最優部分而求得最優解,但它是一種計算量很大的方法。由於地震模型空間大,用全局最優化方法估計各向異性介質參數的地震波形反演十分費時。
目標函數的梯度信息是非線性解析反演方法修改模型參數的依據,它能給出一個接近初始模型的一個局部最優解。如果初始模型選擇得合適,即當初始模型處在全局最優解所在的目標函數低谷時,非線性解析反演方法能收斂於全局最優解。然而,恰好給出一個接近全局最優解的初始模型的概率是非常小的,尤其對沒有模型參數的任何先驗信息的情況。但應強調的是,非線性解析反演方法具有較快的收斂速度。
發揮非線性解析反演方法快速收斂和遺傳演算法能搜索到全局最優解的優點,而克服前者僅能尋找到局部最優解和後者運算量大的缺點是很有意義的。非線性解析反演方法和遺傳演算法相結合的反演方法可達到上述目的。在結合反演方法中,遺傳演算法的作用是提供接近全局最優解的模型,非線性解析反演的作用是盡快求出全局最優解。因此,結合反演方法具有搜索到全局最優解的能力和比遺傳演算法收斂速度快的特點。
3.2結合方案
遺傳演算法在優化過程中連續不斷地搜索整個模型空間。在每次迭代結束後,得到一個本代的最優模型。根據遺傳演算法的數學原理[3],最優模型的數量在下一代中得以增加,同時經交叉和變異作用又有新的模型產生。在下一代種群中,最優模型可能與前一代的相同,也有可能劣於前一代的最優模型。所有這些最優模型可能在目標函數的同一低谷處,也有可能在其它低谷處。遺傳演算法尋找最優模型要經過多次迭代才能確定一個極值。遺傳演算法的隨機性導致遺傳演算法是一種費時的方法。然而正是遺傳演算法的這種隨機性保證了它能搜索到全局最優解。
如果將每次遺傳演算法迭代的最優解作為非線性解析反演的初始模型,非線性解析反演可以找出與初始模型毗鄰的局部最優解。由於非線性解析反演是一種確定性的方法,它按目標函數的梯度方向修改模型,所以非線性解析反演方法只需幾次迭代即可收斂。非線性解析反演求得的解是否為全局最優解,非線性解析反演方法本身是無法得以保證的。只有當遺傳演算法提供接近全局最優解的初始模型時,非線性解析方法反演才能收斂到全局最優解。
結合反演方法中遺傳演算法和非線性解析反演方法的匹配方式是十分重要的。非線性解析反演方法得到接近遺傳演算法提供的初始模型的局部最優解後,在以後若干代中因遺傳演算法的隨機性而使其最優解與該局部最優解相同。如果每次遺傳演算法迭代後作非線性解析反演,那麼結合反演的結果在幾代內都是相同的。顯然其中的一些非線性解析反演是沒有必要的。因此,結合方式應為在連續多次遺傳演算法迭代後作一次非線性解析反演,然後將非線性解析反演的結果作為下一代種群中的一個母本模型。圖1為結合反演的框圖。
圖1結合反演框圖
4算例
為了驗證結合反演方法的優越性,對一維多層橫向各向同性介質參數的反演理論實例作了分析。
圖2是目標函數值與迭代次數的關系圖。在該結合反演算例中每次遺傳演算法迭代後就作一次非線性解析反演迭代。結合反演的誤差在開始幾次迭代中下降很快,尤其在前3次。結合反演方法在第10次迭代達到的較小誤差,遺傳演算法在第42次迭代才達到。結合反演的誤差比遺傳演算法的跳躍得嚴重。這是因為非線性解析反演得到的模型在遺傳演算法中作為母代參加繁衍。這個模型因遺傳演算法的隨機性常常被新的模型替代。這兩個模型可能位於目標函數兩個不同的低谷中,因此非線性解析反演的結果不同。
盡管結合反演的目標函數有些振盪,但也存在連續幾次迭代目標函數幾乎不變的現象。這意味著這幾次迭代的最優模型是很接近的。在這種情況下非線性解析反演不能提供較大的改進。所以,此時的非線性解析反演是沒有必要的,否則只能增加計算量。
圖2結合反演(實線)和遺傳演算法(虛線)的誤差與迭代次數的關系
結合反演中每次遺傳演算法迭代後作一次非線性解析反演迭代
圖3是另一個例子。在該結合反演例子中,每五次遺傳演算法迭代作一次非線性解析反演。在這里遺傳演算法佔主要地位。此時結合反演的誤差函數明顯比遺傳演算法的小。結合反演的誤差在第5次迭代末突然下降,並在第10次迭代時的小誤差,遺傳演算法在42代才達到。遺傳演算法始終沒有到達結合反演的最小誤差。結合反演的誤差在後期迭代過程中平穩下降,這是遺傳演算法佔主導地位的原因。
從該例可知,若遺傳演算法與非線性解析反演方法比較合理地結合,結合反演方法比遺傳演算法具有快得多的收斂速度。
5結論
非線性結合反演方法揚遺傳演算法和非線性解析反演方法之長,抑其之短,它是一種具有較快收斂速度的全局反演方法。
在結合反演中遺傳演算法和非線性解析反演方法的結合方式是重要的。從算例可得出,五次遺傳演算法迭代後作一次非線性解析反演的結合反演的效果明顯優於每次遺傳演算法迭代後都作非線性解析反演的結合反演的效果。但是在結合反演中連續作多少次遺傳演算法迭代及連續迭代次數在整個迭代過程中的可變性還有待於進一步研究。
圖3結合反演(實線)和遺傳演算法(虛線)的誤差與迭代次數的關系
結合反演中每五次遺傳演算法迭代後作一次非線性解析反演迭代
在結合反演中遺傳演算法的作用是提供接近全局最優解的初始模型。結合反演的運算速度主要取決於遺傳演算法的運算速度。均勻設計理論可以應用於遺傳演算法以加快隨機搜索的速度。
與遺傳演算法相同,其它隨機搜索方法也可用來與非線性解析反演方法形成結合反演方法。
參考文獻
[1]E.Berg.Simple convergent genetic algorithm for inversion of multiparameter data.SEG60 Expanded Abstracts,1990,Ⅱ,1126~1128.
[2]O.Gauthier,J.Virieux and A.Tarantola.Two-dimensional nonlinear inversion of seismic waveforms:Numerical results.Geophysics,1986,51,1387~1403.
[3]D.E.Goldberg.Genetic Algorithms in Search,Optimiztion,and Machine Learning.Addison-Wesley,Reading,MA,1989.
[4]J.H.Holland.Adaptation in Natural and Artifical Systems.The University of Michigan Press,Ann Arbor,1975.
[5]P.Mora.2D elastic inversion of multi-offset seismic data.Geophysics,1988,52,2031~2050.
[6]G.S.Pan,R.A.Phinney,and R.I.Odom.Full-waveform inversion of plane-wave seismograms in stratified acoustic media:Theory and feasibility.Geophysics,1988,53,21~31.
[7]M.J.Porsani,P.L.Stoffa,M.K.Sen,et al..A combined Genetic and linear inversion algorithm for seismic wave-form inversion.SEG63 Expanded Abstracts,1993,692~695.
[8]M.S.Sambridge,A.Tatantola and Kennet.An alternative strategy for nonlinear inversion of seismic waveforms.Geophysical Prospecting,1991,39,723~736.
[9]M.Sambridge,and G.Drijkoningen.Genetic algorithms in seismic waveform inversion.Geophys.J.Int.,1992,109,323~342.
[10]M.K.Sen,P.L.Stoffa.Rapid sampling of model space using genetic algorithms:examples from seismic waveform inversion.Geophys.J.Int.,1992,109,323~342.
[11]P.L.Stoffa,M.K.Sen.Nonlinear multiparametre optimization using genetic algorithms:Inversion of plane-wave seismograms.Geophysics,1991,56,1794~1810.
[12]A.Tarantola.Inversion of seismic reflection data in the acoustic approximation.Geophysics,1984(a),49,1259~1266.
[13]A.Tarantola.The seismic reflection inverse problem.In:F.Santosa,Y.-H.Pao,W.W.System,and C.Holland Eds.Inverse problems of acoustic and elastic waves.Soc.Instr.Appl.Math.,1984(b),104~181.
[14]A.Tarantola.A strategy for nonlinear elastic inversion of seismic reflection data.Geophysics,1986,51,1893~1903.
[15]A.Tarantola.Inverse problem theory:Methods for data fitting and model parameter estimation.Elsevier Science Publ.Co.Inc.,1987.
[16]周輝,何樵登.遺傳演算法在各向異性介質參數反演中的應用.長春地質學院學報,1995,25,增刊1,62~67.
[17]周輝.各向異性介質波動方程正演及其非線性反演方法研究.長春地質學院博士論文,1995.