天天看點

初識遺傳算法

遺傳算法的實作主要包含以下7個重要問題:

1、染色體的編碼

2、群體初始化

3、适應值評估

4、選擇種群

5、種群交配

6、種群變異

7、算法流程

下面分别簡單的介紹

1、染色體編碼

  解決問題解的表示就是染色體的編碼方式,編碼方式的選擇會對後面的操作造成重要影響,常用的比較簡單的編碼方法

有二進制編碼方法(Binary Representation)和浮點數編碼方法(Float Point Representation)

  采用随機數初始化的方法,對染色體的每一維變量進行初始化指派。

3、适應值評價

  評估函數用于評估各個染色體的适應值,進而區分優劣,評估函數常常根據問題的優化目标來确定。

4、選擇算子

  遺傳算法的傳統選擇算子的作用 是根據适應值函數的值從種群中選出優秀的個體, 包括輪盤賭選擇和錦标賽選擇。

5、交配算子

  交配算子是擷取新的優秀個體的重要手段,兩個父體通過交配操作交換各自優秀的基因,進而獲得更加優秀的個體。

交配算子有:部分比對交配、順序交配(OX交配)、循環交配和邊重組等。

6、變異算子

   變異操作發生在某個染色體的某個基因上,它将可變性引入群體中,增強了群體的多樣性,進而提供了從局部最優

中跳出來的一種手段。變異方法也是一個随機的、盲目的變異,是以需要使用比較小的變異機率(pm)來控制以避免造

成種群的破壞。經常使用的變異算子有“基于位置的變異”和“基于次序的變異”。

  step1:初始化規模為N的群體,其中染色體的每個基因的值采用随機數産生。目前進化代數g=0

  step2:采用評估函數對群體所有染色體進行評價,計算每個染色體的适應值,儲存适應值最大的染色體best。

  step3:采用合适的選擇算法對群體的染色體進行選擇操作,産生同規模的種群。

  step4:按給定的交配機率從種群中選擇染色體進行交配,沒有交配的染色體直接複制進入新的種群。

  step5:按給定的變異機率對新種群染色體的基因進行變異操作,變異後的染色體取代原有染色體進入新群體,未變異

的染色體直接進入新群體。

  step6:變異後的新種群取代原有群體,重新計算染色體的适應值,若群體最大适應值高于best的适應值,則群體最大

适應值對應的染色體替代best。

繼續閱讀