遺傳演算法思想
『壹』 如何通俗易懂地解釋遺傳演算法有什麼例子
相信遺傳演算法的官方定義你已經看過,就我個人理解
遺傳演算法的思想是物競天擇,優勝劣汰。
你可以理解為,當我們解某道數學題時,如果這個題太難我們沒法列公式算出正確答案,我們有時候也可以蒙答案去反過來看看是否滿足這道題提乾的要求,如果能滿足,說明我們蒙的答案是正確的。但是蒙對答案要試很多遍,每次隨機的去試數可能要試1000次才能蒙對。可是遺傳演算法可以讓我們科學的去蒙答案,每次蒙的答案都會比上一次蒙的更接近正確答案,這樣可能蒙十幾次我們就找到正確答案了。
希望我的回答對你理解GA有所幫助,望採納
『貳』 如何通俗易懂地解釋遺傳演算法
遺傳演算法,核心是達爾文優勝劣汰適者生存的進化理論的思想。
我們都知道一個種群,通過長時間的繁衍,種群的基因會向著更適應環境的趨勢進化,牛B個體的基因被保留,後代越來越多,適應能力低個體的基因被淘汰,後代越來越少。經過幾代的繁衍進化,留下來的少數個體,就是相對能力最強的個體了。
那麼在解決一些問題的時候,我們能不能學習這樣的思想,比如先隨機創造很多很多的解,然後找一個靠譜的評價體系,去篩選比較好的解,再用這些好的解像生小寶寶一樣生一堆可能更好的解,然後再篩再生,反復弄個幾代,得到的說不定就是近似最優解喲
說干就干,有一個經典組合問題叫「背包問題」,我們拿這種思路來試試
「背包問題(Knapsack Problem)是一種組合優化的NP完全問題。問題可以描述為:給定一組物品,每種物品都有自己的重量和價格,在限定的總重量內,我們如何選擇,才能使得物品的總價格最高。問題的名稱來源於如何選擇最合適的物品放置於給定背包中。」
這個問題的衍生簡化問題「0-1背包問題」 增加了限制條件:每件物品只有一件,可以選擇放或者不放,更適合我們來舉例
這樣的問題如果數量少,當然最好選擇窮舉法
比如一共3件商品,用0表示不取,1表示取,那麼就一共有
000 001 010
011 100 101
110 111
這樣方案,然後讓計算機去累加和,與重量上限比較,留下來的解里取最大即可。
『叄』 基本遺傳演算法介紹
遺傳演算法是群智能優化計算中應用最為廣泛、最為成功、最具代表性的智能優化方法。它是以達爾文的生物進化論和孟德爾的遺傳變異理論為基礎,模擬生物進化過程和機制,產生的一種群體導向隨機搜索技術和方法。
遺傳演算法的基本思想:首先根據待求解優化問題的目標函數構造一個適應度函數。然後,按照一定的規則生成經過基因編碼的初始群體,對群體進行評價、遺傳運算(交叉和變異)、選擇等操作。經過多次進化,獲得適應度最高的一個或幾個最優個體作為問題的最優解。
編碼是對問題的可行解的遺傳表示,是影響演算法執行效率的關鍵因素的之一。遺傳演算法中,一個解 稱為個體或染色體(chromosome),染色體由被稱為基因(gene)的離散單元組成,每個基因控制顏色體的一個或多個特性,通常採用固定長度的0-1二進制編碼,每個解對應一個唯一的二進制編碼串編碼空間中的二進制位串稱為基因型(genotype)。而實際所表示問題的解空間的對應點稱為表現型(phenotype)。
種群由個體構成,每個個體的染色體對應優化問題的一個初始解。
適應度函數是評價種群中個體對環境適應能力的唯一確定性指標,體現出「適者生存,優勝劣汰」這一自然選擇原則。
遺傳演算法在每次迭代過程中,在父代種群中採用某種選擇策略選擇出指定數目的哥特體提進行遺傳操作。最常用的選擇策略是正比選擇(proportional selection)策略。
在 交叉運算元中,通常由兩個被稱為父代(parent)的染色體組合,形成新的染色體,稱為子代(offspring)。父代是在種群中根據個體適應度進行選擇,因此適應度較高的染色體的基因更有可能被遺傳到下一代 。通過在迭代過程中不斷地應用交叉運算元,使優良個體的基因得以在種群中頻繁出現,最終使得整個種群收斂到一個最優解。
在染色體交叉之後產生的子代個體,其基因位可能以很小的概率發生轉變,這個過程稱為變異。變異是為了增強種群的多樣性,將搜索跳出局部最優解。
遺傳演算法的停止准則一般採用設定最大迭代次數或適應值函數評估次數,也可以是規定的搜索精度。
已Holland的基本GA為例介紹演算法等具體實現,具體的執行過程描述如下:
Step 1: 初始化 。隨機生成含有 個個體的初始種群 ,每個個體經過編碼對應著待求解優化問題的一個初始解。
Step 2: 計算適應值 。個體 ,由指定的適應度函數評價其適應環境的能力。不同的問題,適應度函數的構造方式也不同。對函數優化問題,通常取目標函數作為適應度函數。
Step 3: 選擇 。根據某種策略從當前種群中選擇出 個個體作為重新繁殖的下一代群體。選擇的依據通常是個體的適應度的高低,適應度高的個體相比適應度低的個體為下一代貢獻一個或多個後代的概率更大。選擇過程提現了達爾文「適者生存」原則。
Step 4: 遺傳操作 。在選出的 個個體中,以事件給定的雜交概率 任意選擇出兩個個體進行 交叉運算 ,產生兩個新的個體,重復此過程直到所有要求雜交的個體雜交完畢。根據預先設定的變異概率 在 個個體中選擇出若干個體,按一定的策略對選出的個體進行 變異運算 。
Step 5: 檢驗演算法等停止條件 。若滿足,則停止演算法的執行,將最優個體的染色體進行解碼得到所需要的最優解,否則轉到 Step 2 繼續進行迭代過程。
『肆』 遺傳演算法的中心思想
遺傳演算法是通過大量備選解的變換、迭代和變異,在解空間中並行動態地進行全局搜索的最優化方法,由於遺傳演算法具有比較完備的數學模型和理論,在解決很多NP—Hard問題上具有良好的性能。
遺傳演算法以一種群體中的所有個體為對象,並利用隨機化技術指導對一個被編碼的參數空間進行高效搜索。其中選擇、交叉和變異構成了遺傳演算法的遺傳操作,參數編碼、初始群體的設定、適應度函數的設計、遺傳操作設計、控制參數設定五個要素組成了遺傳演算法的核心內容。
(4)遺傳演算法思想擴展閱讀:
遺傳演算法注意事項:
用戶需要注意遺傳演算法的優化過程中種群基因的多樣性是保障避免陷入局部最優解的重要因素,如果目標函數優化結果過早收斂很可能就是因為種群的多樣性不足。
為了保證種群的多樣性,其中編碼、適應度函數設計尤為重要。
適應度的含義就是字面意思,這個個體是否可以適應環境也即是否滿足優化目標指標。因為後續需要根據適應度函數進行自然選擇,因此適應度函數和你的目標函數並不需要完全一樣。