遺傳演算法的基本原理

2021-08-19 04:06:07 字數 1219 閱讀 5427

遺傳演算法是一種基於自然選擇和群體遺傳機理的搜尋演算法,它模擬了自然選擇和自然遺傳過程中的繁殖、雜交和突變現象.再利用遺傳演算法求解問題時,問題的每乙個可能解都被編碼成乙個「染色體」,即個體,若干個個體構成了群體(所有可能解).在遺傳演算法開始時,總是隨機的產生一些個體(即初始解),根據預定的目標函式對每乙個個體進行評估,給出乙個適應度值,基於此適應度值,選擇一些個體用來產生下一代,選擇操作體現了「適者生存」的原理,「好」的個體被用來產生下一代,「壞」的個體則被淘汰,然後選擇出來的個體,經過交叉和變異運算元進行再組合生成新的一代,這一代的個體由於繼承了上一代的一些優良性狀,因而在效能上要優於上一代,這樣逐步朝著最優解的方向進化.因此,遺傳演算法可以看成是乙個由可行解組成的群體初步進化的過程.

利用遺傳演算法求解問題時,首先要確定問題的目標函式和變數,然後對變數進行編碼,這樣做主要是因為在遺傳演算法中,問題的解是用數字串來表示的,而且遺傳運算元也是直接對串進行操作的.編碼方式可以分為二進位制編碼和實數編碼.若用二進位制編碼表示個體,則二進位制數轉化為十進位制數的解碼公式可以為:

其中(bi1,bi2,...bil),為某個個體的第i段,每段段長都為l,每個bik都是0或者1,ti和ri是第段分量xi的定義域的兩個端點.

遺傳操作是模擬生物基因的操作,他的任務就是根據個體適應度對其施加一定的操作,從而實現優勝劣汰的進化過程.從優化搜尋的角度來看,遺傳操作可以使問題的解逐代優化,逼近最優解,遺傳操作包括以下三個基本遺傳運算元:選擇、交叉、變異.選擇和交叉基本上完成了遺傳演算法的大部分搜尋功能,變異增加了遺傳演算法找到最優解的能力.

選擇是指從群體中選擇優良個體並淘汰劣質個體的操作.它建立在適應度評估的基礎上.適應度越大的個體,被選中上的可能性就越大,他的「子孫」在下一代中的個數就越多,選擇出來的個體就被放入配對庫中.目前常用的選擇方法有輪賭盤方法、最佳個體保留法、期望值法、排序選擇法、競爭法、線性標準化法.

交叉就是指把兩個父代個體的部分結構加以替換重組而生成新的個體的操作,交叉的目的是為了在下一代產生新的個體,通過交叉操作,遺傳演算法的搜尋能力得到了飛躍性的提高.交叉是遺傳演算法獲取優良個體的重要手段.交叉操作是按照一定的交叉概率在匹配庫中隨機的選取兩個個體進行的,交叉位置也是隨機的,交叉概率一般取得很大,為0.6~0.9.

變異就是以很小的變異概率pm隨機地改變種群中個體的某些基因的值,變異操作的基本過程是:產生乙個[0,1]之間的隨機數rand,如果rand0.5,遺傳演算法就退化為了隨機搜尋.

mysql的基本原理 Mysql 基本原理

mysql 基本原理 mysql是一種關聯式資料庫管理系統,關聯式資料庫將資料儲存在不同的表中,而不是將所有資料放在乙個大倉庫內,這樣就增加了速度並提高了靈活性 ysql是資料庫登入命令 uroot預設超級使用者登入 p 預設沒密碼 中寫密碼 mysqladmin uroot password 12...

跳蚤演算法 基本原理。

跳蚤演算法 基本原理。一 演算法的誕生及設計初衷。傳統教材中取得x個0 to n之間不重複隨機數的方法一般是這樣 x個不重複隨機數輸出到a 陣列 for i 1 to x dor int rnd n 1 c 確定r不包含在a 內 loop until c 將r新增到a next 由於r可能與a 內的...

RSA演算法基本原理

圖為 rsa公開金鑰演算法的發明人,從左到右ron rivest,adi shamir,leonard adleman.攝於1978年 素數是這樣的整數,它除了能表示為它自己和1的乘積以外,不能表示為任何其它兩個整數的乘積。例如,15 3 5,所以15不是素數 又如,12 6 2 4 3,所以12也...