遺傳算法的實作主要包含以下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。