遺傳算法(Genetic Algorithms, GA)是一種隨機優化算法,用於解決結構複雜的優化問題。遺傳算法模仿天然界中生物的進化過程,即適者生存,不適者淘汰的過程。其過程以下:算法
(1) 隨機生成一些個體(Individual),構成一個種羣(Population),對每個解進行評估,得到它的適應度函數值(Fitness Value),此過程叫作初始化種羣(Initializing);函數
(2) 按照必定的規則進行隨機選擇,如輪盤賭或者其餘方法,目的是使得適應度函數值高的個體被選中的機率大,反之被選中的機率小,此過程叫作選擇(Selection),沒被選中的個體丟棄再也不被考慮;優化
(3) 從選擇之後的種羣中,按照必定的機率隨機選擇必定的個體,配對進行基因的交換,目的是把兩個個體中的優秀基因集中到一個個體,有可能生成更加優秀的個體,這個過程叫作交叉(Crossover);spa
(4) 對種羣中的個體,按照必定的機率隨機選擇必定的個體,使其部分基因發生隨機改變,目的是有可能隨機生成更加優秀的個體,這個過程叫作變異(Mutation);it
(5) 對通過選擇、交叉、變異後的全部個體,計算適應度函數值,回到第2步,開始下一代(Generation)循環。io
循環的次數根據必定的條件判斷,如設定的代數,或者連續多少代適應度函數值沒有被提升。循環