1. 程式人生 > >遺傳演算法的發展現狀與應用例項

遺傳演算法的發展現狀與應用例項


.
1  引言
近年來 ,遺傳演算法 (GA)的卓越效能引起人們的關注 .對於以往難以解決的函式優化問題 ,複雜的多目標規劃問題 ,工農業生產中的配管、配線問題 ,以及機器學習 ,圖象識別 ,人工神經網路的權係數調整和網路構造等問題 ,GA是最有效的方法之一 .雖然GA在許多優化問題中都有成功的應用 ,但其本身也存在一些不足 .例如區域性搜尋能力差、存在未成熟收斂和隨機漫遊等現象 ,從而導致演算法的收斂效能差 ,需要很長時間才能找到最優解 ,這些不足阻礙了遺傳演算法的推廣應用 .如何改善遺傳演算法的搜尋能力和提高演算法的收斂速度 ,使其更好地應用於實際問題的解決中 ,是各國學者一直探索的一個主要課題.之後世界範圍內掀起了關於遺傳演算法的研究與應用熱潮
2  遺傳演算法存在的問題及相應的改進措施
自然界早已顯示出了基因的強大威力 ,通過這種機制 ,一系列的具有智慧、自組織、自修整的器官產生了 .人們要在科學研究中效仿這些生物器官 ,那麼就必須瞭解基因、進化的概念 .GA就是這樣一種利用自然選擇和進化思想在高維空間中尋優的方法 ,它不一定能尋得最優點 ,但是它可以找到更優 點 ,這種思路與人類行為中成功的標準是很相似的 .例如不必要求一支軍隊是最優的 ,要戰勝對手只需它比對手更強即可 .因此 GA可能會暫時停留在某些非最優點上 ,直到變異發生使它躍居到另一個更優點上 . GA尋優過程的一個重要特點是它始終保持整個種群的進化 ,這樣即使某個體在某時刻喪失了有用的特徵 ,這種特徵也會被其他個體所保留並延續發展下去 .由於 GA僅需知道目標函式的資訊 ,而不需要其連續可微等要求 ,因而具有廣泛的適應性 .同時它又是一種採用啟發性知識的智慧搜尋演算法 ,所以往往能在搜尋空間高度複雜的問題上取得比以往演算法 (如梯度法 )更好的效果D. B. Fogel提出的進化即智慧的概念[1 0 ],雖然還沒有被普遍接受 ,但進化在人類生存進步過程中的重要性已可見一斑 ,因此遺傳演算法作為生物進化思想在工程計算中的一種體現 ,其前途是光明的 .目前 GA在工程優化、訊號處理、模式識別、管理決策、智慧系統設計和人工生命等領域的成功利用正說明了這一點 .
2. 1 編碼表示
   Holland在運用模式定理分析編碼機制時 ,建議使用二進位制編碼 ,但二進位制編碼不能直接反映問題的固有結構 ,精度不高 ,個體長度大 ,佔用計算機記憶體多 . Gray編碼是將二進位制編碼通過一個變換進行轉換得到的編碼 ,其目的就是克服 Hamming懸崖的缺點,動態編碼 (dynamic encoding)GA是當演算法收斂到某區域性最優時增加搜尋的精度 ,從而使得在全域性最優點附近可以進行更精確的搜尋 ,增加精度的辦法是在保持串長不變的前提下減小搜尋區域 .對於問題的變數是實向量的情形 ,可以直接採用實數進行編碼 ,這樣可以直接在解的表現型上進行遺傳操作 ,從而便於引入與問題領域相關的啟發式資訊以增加演算法的搜尋能力.複數編碼[5]的GA是為了描述和解決二維問題 ,基因用 x+yi 表示 ;其還可以推廣到多維問題的描述中 .多維實數編碼[6 ]GA,使無效交叉發生的可能性大大降低 ,同時其合理的編碼長度也有助於演算法在短時間內獲得高精度的全域性最優解 .在組合優化中 ,可以使用有序串編碼 ,例如在文獻 [7]中用自然數編碼巧妙地解決了VRP問題 .當問題的表示是樹和圖時 ,我們還可以使用結構式編碼
2. 2 適應度函式
適應度函式是用來區分群體中個體好壞的標準 ,是自然選擇的唯一標準 ,選擇的好壞直接影響演算法的優劣 .引入適應值調節和資源共享策略可以加快收斂速度和跳出區域性最優點 .對適應值進行調節就是通過變換改變原適應值間的比例關係 ,常用的比例變換有線性變換、乘冪變換和指數變換等 .對於一個問題具體採用什麼變換才能達到較優的效果 ,V. Kreinovich等在文獻 [8]中做了較詳細的討論 而在文獻 [9]中則是採用共享的技術 ,對子群的形成和穩定起了一定作用 ,文中主要用子群消失時間的近似形式估計 Sharing的界 .文獻 [1 0 ]中採用了依據搜尋進展可變的適應值函式 ,並應用於 CuttingProblem取得較好效果 .文獻 [1 1 ]中設計了自適應選取遺傳演算法的適應值函式的方法 ,該方法的計算量要比排序選擇操作的計算量小的多 ,而且有效的避免了演算法的非成熟收斂 .
2 . 3 選擇策略
  優勝劣汰的選擇機制使得適應值大的個體有較大的存活機會 ,不同的選擇策略對演算法效能有較大的影響 .輪盤賭法是使用最多的選擇策略 ,但這種策略可能會產生較大的抽樣誤差 ,於是對此提出了很多的改進方法 ,如繁殖池選擇[1 2 ],Boltzmann選擇[1 3 ]等等 .但是這幾種策略都是基於適應值比例的選擇 ,常常會出現早熟收斂現象和停滯現象 .為此又提出了非線性排名選擇[3 ],這種選擇不僅避免了上述問題 ,而且可以直接使用原始適應值進行排名選擇 ,而不需對適應值進行標準化 ;但這種選擇在群體規模很大時 ,其額外計算量 (如計算總體適應值和排序 )也相當可觀 ,甚至在進行並行實現時有時要帶來一些同步限制 .基於區域性競爭機制的選擇如 (λ+μ)選擇[1 4],它使雙親和後代有同樣的生存競爭機會在一定程度上避免了這些問題 .在 [1 5]中作者採用
了類似梯度的方式來選擇 ,不僅使較差的染色體比較好的染色體得到更大的改進 ,而且還不斷產生新的個體 ,從而不斷拓展了新的搜尋空間 . [1 6 ]中作者
引入了 Harvesting Strategies來分析遺傳演算法的效能 ,Harvesting Strategies是指在每一代交叉和突變後進行兩次乃至多次篩選作為下面的群體 .採用了 Disruptive Selection,它吸收了優等和劣等個體 ,實驗結果表明了兩極分化有可能更容易找到最優解 .為了提高種群的多樣性 ,提出一種基於免疫多樣性的選擇運算元[1 8],該選擇運算元依賴於串的稠密度和適應值 ,串的稠密度越大 ,其保留下來的可能性越小 ,具體事例證明改進演算法是有效的 .
2 . 4 控制引數
  控制引數一般有群體大小 ,交換概率 ,變異概率等 ,這些引數對遺傳演算法效能影響較大 .在標準的遺傳演算法中採用經驗進行估計 ,這將帶來很大的盲目性 ,而影響演算法的全域性最優性和收斂性 .目前許多學者意識到這些引數應該隨著遺傳進化而自適應變化 ,Davis提出自適應運算元概率方法 [1 9],即用自適應
機制把運算元概率與運算元產生的個體適應性結合 ,高適應性值被分配高運算元概率 . Whitley提出一種自適應突變策略與一對父串間的 Hamming距離成反比 [2 0 ],結果顯示能有效地保持基因的多樣性 .張良傑等通過引入 i位改進子空間概念 ,採用模糊推理技術來確定選取突變概率的一般性原則 [2 1 ].在文獻[2 2 ]中設計了一種群體規模可變的遺傳演算法 ,它提出每個個體應當有年齡及生命期的概念並淘汰年齡大於生命期的個體從而使遺傳演算法動態的控制了群體數目 ,這種方法可以找出一個接近最小代價的遺傳演算法 ,同時儘量將群體規模保持在現有水平 ,防止群體規模的指數級增長 ,以降低計算的開銷 .丁承明等提出利用正交試驗法去優化選取 GA控制引數 [2 3 ],這種方法利用正交試驗的均衡分散性使得通過較少的試驗次數就可搜尋絕大部分引數組合空間 ,而且還可以確定哪個引數對 GA結果影響最顯著 ,然後有針對性地進行精確搜尋 ,從而使得 GA引數問題得到圓滿解決 .為保證種群的有用多樣性 ,提出動態群法[2 4],即當迭代到一定代數 ,若目標函式的值相同 ,則現存種群中的較差的 N個染色體被隨機產生的 N個染色體代替 ,使進化過程中不斷有新個體引入 . [2 5]中用模糊規則對選擇概率和變異概率進行控制 ,線上改變其值 ,相應的算例表明 ,有較好的效能
2. 5 遺傳運算元
  基本遺傳演算法中採用單點交叉運算元和簡單的變異運算元 .它們操作比較簡單 ,計算量小 ,但是在使用過程中有很大的侷限性 ,例如 :由於單點交叉破壞模式的概率較小 ,至使搜尋到的模式數也較少 ,使演算法具有較低的搜尋能力 . Feng etal.對多維連續空間的GA的雜交多樣性進行了分析 ,通過建立相應的數學模型 ,Feng解釋了在多維連續空間和大規模群體中使用均勻雜交運算元[2 6 ]是如何探索新的解空間區域 .為了使得變異能夠根據解的質量自適應的調整搜尋區域 ,從而能較明顯地提高搜尋能力 ,提出自適應變異運算元[2 7].為了保護適應值較高的模式 ,提出自適應交叉和變異 [2 8],如果遇到適應值較高的模式 ,則通過隨機引入模式外的位而進行保護 .為了克服早熟 ,引入多種群 GA[2 9],不同種群賦以不同的控制引數 ,實現不同的搜尋目的 ,通過移民運算元聯絡各種群 ,通過人工選擇運算元儲存各種群每個進化代中的最優個體 .為了防止近親繁殖 ,擴大種群的多樣性 ,抑制超長個體的快速繁殖 ,引進近親繁殖運算元 ,兩個個體是否為近親可用基因片段的 Hamming距離來判斷 ,距離越大 ,則為近親的可能越小 ;為加強區域性搜尋能力 ,增加漂移運算元 ,將染色體各基因片段的後二分之一的基因分別按一定的概率做 1的隨機漂移 ,排位越後的基因漂移的概率越大 ,由此產生一定數量的新個體 ,用基因預選機制的小生境技術控制漂移方向 [3 0 ].因為格點法產生的點集能均勻地分佈於搜尋空間 ,並且佳點又是最好的格點 ,所以可以用數論中的佳點集理論設計交叉運算元[3 1 ],結果表明它的搜尋效果要比純隨機法好 ,而且有效的避免早熟現象 .基於生物免疫性提出的免疫運算元 [3 2 ],能夠明顯抑制進化過程中的退化現象 ,減輕 GA後期的波動 ,從而提高了搜尋效率和收斂速度 . [3 3 ]中提出的 SRM(self-reproduction)運算元增強了種群的多樣性 ,CM(crossove and mutation)運算元促進了有利變異的增加 ,從而使演算法大大節省了存貯空間和執行時間 .採用“尺度收縮”策略的混沌變異運算元 [3 4]能明顯的改善群體平均適應值 ,提高演算法的效能 ,是解決優化問題的有效方法 .
2 . 6 綜合方面
文獻 [3 5]中提出了可分解 /可拼接 GA編碼 ,並基於此編碼分別在種群層次和基因層次發展了動態變異和動態選擇操作 ,這種方法很大程度上避免了早熟問題 .增強型 GA[3 6 ]中 ,引入了幾個新運算元和新的種群遷移策略 ,並用其對模糊邏輯控制器進行設計 ,得到了便於理解的模糊集和模糊規則 .用小波分析中的多尺度分析對 GA中的染色體進行多尺度分解 ,這樣分解後的染色體的長度變短 ,基因交換、變異等遺傳操作更為徹底 ,有效的克服了基因丟失引起的早熟問題 [3 7].小生境技術不僅能夠保證群體中解的多樣性 ,而且具有很強的引導進化能力 ,所以小生境技術的引入 ,提高了 GA處理多峰函式優化問題的能力[3 8].將模擬退火過程引入遺傳演算法[3 9],在優選交叉和變異個體的過程中加入一定的“擾動”,以達到保持種群內位串的多樣性和位串之間的競爭機制 ,克服了演算法易陷於極小點的問題 ,使得搜尋沿著全域性最優方向進行 .廣義遺傳演算法[40 ],它以多點突變操作為主 ,以基因交叉操作為輔 ,實現了從一個區域性最優狀態到另一個區域性最優狀態的轉移 ,使演算法獲得全域性最優 .為了使 GA用於約束優化 ,提出一種非穩態罰函式 GA[41 ],非穩態罰函式是遺傳代數的函式 ,當代數增加時 ,罰函式也隨著增大 ,同時給GA帶來更多的選擇壓力 ,促使 GA找到可行解 .綜合遺傳演算法的全域性性和神經網路的並行快速性等特點 ,提出的遺傳神經網路演算法[42 ],可克服遺傳演算法最終進化至最優解較慢和神經網路易陷入區域性解的缺陷 ,具有較好的全域性性和收斂速度 .採用面向物件技術設計了面向物件遺傳演算法[43 ],這種方法改變了在傳統的 GA中各個函式之間只有引數的傳遞 ,而沒有程式碼的繼承性的狀況從概念上提高了軟體的可重用性 ,使用者可以更方便的設計和實現自己的編碼方案和遺傳運算元 .變異基遺傳演算法[44],採用變異運算元進行區域性優化搜尋 ,並利用隨機初始化技術使演算法在區域性搜尋能力提高的同時仍有可能尋找到全域性最優解 .貪婪遺傳演算法[45]用在二次分配問題中取得了較好的效果 ,在該演算法中引入了新的交叉運算元和移民運算元 ,保證了種群的多樣性 ;並且通過比賽競爭使得各種群得到進化 ,很好的解決了種群多樣性及對個別好個體偏愛之間的矛盾 .
3 遺傳演算法的發展動向 (GA' s developmen-tal trends)
GA在應用方面的豐碩成果 ,使人們對它的發展前景充滿信心 .其主要應用領域在於函式優化 (非線性 ,多模型 ,多目標等 ),機器人學 (移動機器人路徑規劃 ,關節機器人運動軌跡規劃 ,細胞機器人的結構優化等 ),控制 (瓦斯管道控制 ,防避導彈控制 ,機器人控制等 ),規劃 (生產規劃 ,並行機任務分配等 ),設計 (VLSI佈局 ,通訊網路設計 ,噴氣發動機設計等 ),組合優化 (TSP問題 ,揹包問題 ,圖分劃問題等 ),圖象處理 (模式識別 ,特徵提取 ,圖象恢復等 ),訊號處理 (濾波器設計等 ),人工生命 (生命的遺傳進化等 ).此外遺傳演算法的研究出現了幾個引人注目的新動向 :
3 . 1 基於遺傳演算法的機器學習
這一新的研究方向把遺傳演算法從歷史離散的搜
索空間的優化搜尋演算法擴充套件到具有獨特的規則生成功能的嶄新的機器學習演算法 .這一新的學習機制對於解決人工智慧中知識獲取和知識優化精煉的瓶頸難題帶來了希望 .遺傳演算法作為一種搜尋演算法從一開始就與機器學習有著密切聯絡 .分類器系統 CS-1是 GA的創立者 Holland教授等實現的第一個基於遺傳演算法的機器學習系統 .分類器系統在很多領域都得到了應用 .例如 ,分類器系統在學習式多機器人路徑規劃系統中得到的成功應用 ; Goldberg研究了用分類器系統來學習控制一個煤氣管道模擬系統 ;Wilson研究了一種用於協調可移動式視訊攝像機的感知—運動的分類器系統等 .分類器系統在基於遺傳演算法的機器學習研究中影響很大 ,但具體實現方法和要解決的具體問題有關 .基於遺傳演算法的概念學習是近幾年來機器學習領域的一個較為引人注目的研究方向 ,由於概念學習隱含的搜尋機制 ,使得遺傳演算法在概念學習中有用武之地 .目前也有一些嵌入領域知識的基於遺傳演算法的機器學習的研究 ,如將概念學習中特有的操作遺傳操作化 ,並顯示出一定的優點 .此外 ,學習分類系統的並行實現在基於遺傳演算法的機器學習研究中也佔有相當的分量 .
3 . 2 遺傳演算法與其他計算智慧方法的相互滲透和結合
遺傳演算法正日益和神經網路、模糊推理以及混沌理論等其他智慧計算方法相互滲透和結合 ,必能達到取長補短的作用 .近年來在這方面已經取得不少研究成果 ,並形成了“計算智慧”的研究領域 ,這對開拓 2 1世紀中新的智慧計算技術將具有重要的意義 . GA的出現使神經網路的訓練 (包括連線權係數的優化、網路空間結構的優化和網路的學習規則優化 )有了一個嶄新的面貌 ,目標函式既不要求連續 ,也不要求可微 ,僅要求該問題可計算 ,而且它的搜尋始終遍及整個解空間 ,因此容易得到全域性最優解 .GA與神經網路的結合正成功的被用於從時間序列的分析來進行財政預算 ,在這些系統中 ,訓練訊號是模糊的 ,資料是有噪聲的 ,一般很難正確的給出每個執行的定量評價 ,如採用 GA來學習 ,就能克服這個困難 ,顯著提高了系統的效能 . Muhlenbein分析了多層感知機網路的侷限性 ,並猜想下一代神經網路將會是遺傳神經網路 .遺傳演算法還可以用於學習模糊控制規則和隸屬度函式 ,從而更好地改善模糊系統的效能 .文獻 [46 ]中將模糊邏輯、神經網路和遺傳演算法三者有機的結合起來應用於溫室夏季溫溼度控制中 ,實驗結果表明得到了良好的控制效果 .混沌表現出的隨機性是系統內在的隨機性 ,被稱為偽隨機性 ,它在生物進化中起著重要的作用 ,是系統進化與資訊之源 .混沌與遺傳演算法的結合已有人進行過嘗試 ,如吳新餘等[47]採用多種混沌模型構造隨機開關 ,以此控制交叉操作以改進 GA的效能 .文獻 [3 4]中更加直接 ,採用混沌序列構造變異運算元 ,為遺傳演算法的實現開闢了新的途徑 .
3 . 3 並行處理的遺傳演算法
並行處理的遺傳演算法的研究不僅是遺傳演算法本身的發展 ,而且對於新一代智慧計算機體系結構的研究都是十分重要的 . GA在操作上具有高度的並行性 ,許多研究人員都正在探索在並行機上高效執行 GA的策略 .近幾年也發表了不少這方面的論文 ,研究表明 ,只要通過保持多個群體和恰當地控制群體間的相互作用來模擬並執行過程 ,即使不使用平行計算機 ,我們也能提高演算法的執行效率 .在並行GA的研究方面 ,一些並行 GA模型已經被人們在具體的並行機上執行了 ;並行 GA可分為兩類 :一類是粗粒度並行 GA,它主要開發群體間的並行性 ,如Cohoon分析了在平行計算機上解圖劃分問題的多群體 GA的效能 ;另一類是細粒度 GA,它主要開發一個群體中的並行性 ,如 Kosak將群體中的每個個體對映到一個連線機的處理單元上 ,並指出了這種方法對網路圖設計問題的有效性 .
3 . 4 遺傳演算法與人工生命的滲透
人工生命是用計算機、機械等人工媒體模擬或構造出的具有自然生物系統特有行為的人造系統 ,人工生命與遺傳演算法有著密切的關係 ,基於遺傳演算法的進化模型是研究人工生命現象的重要理論基礎 .雖然人工生命的研究尚處於啟蒙階段 ,但遺傳演算法已在其進化模型、學習模型、行為模型、自組織模型等方面顯示出了初步的應用能力 ,並且必將得到更為深入的應用和發展 .人工生命與遺傳演算法相輔相成 ,遺傳演算法為人工生命的研究提供了一個有效的工具 ,人工生命的研究也必將促進遺傳演算法的進一步發展 .
3 . 5 遺傳演算法與進化規則及進化策略的結合
遺傳演算法、進化規則及進化策略是演化計算的三個主要分支 ,這三種典型的進化演算法都以自然界中生物的進化過程為自適應全域性優化搜尋過程的借鑑物件 ,所以三者之間有較大的相似性 ;另一方面 ,這三種演算法又是從不完全相同的角度出發來模擬生物的進化過程 ,分別是依據不同的生物進化背景、不同的生物進化機制而開發出來的 ,所以三者之間也有一些差異 .隨著各種進化計算方法之間相互交流深入 ,以及對各種進化演算法機理研究的進展 ,要嚴格地區分它們既不可能 ,也沒有必要 .在進化計算領域內更重要的工作是生物進化機制 ,構造效能更加優良、適應面更加廣泛的進化演算法 .
4 結論
遺傳演算法作為一種非確定性的擬自然演算法 ,為複雜系統的優化提供了一種新的方法 ,並且經過實踐證明效果顯著 .儘管遺傳演算法在很多領域具有廣泛的應用價值 ,但它仍存在一些問題 ,各國學者一直在探索著對遺傳演算法的改進 ,以使遺傳演算法有更廣泛的應用領域 .
總之,遺傳演算法的未來是非常的美好的,只要我們對它們進行細緻的分析,對它的缺點加以改造,優點進行繼承,把它應用到我們的生產當中去,這樣在生產當中還可以對它的缺點進行完善.