GA算法的關鍵操作一般包括:遺傳編碼、適應值選擇、算法參數的選取和遺傳算子的設計等[109~111]。

(一)遺傳編碼方案及其性能分析

編碼問題是設計GA算法的首要和關鍵問題。GA算法的編碼技術必須考慮“染色體”的合法性、可行性、有效性以及對問題空間表征的完全性。不管針對什麼模型,如果要應用GA算法解決,其關鍵的一步就在於如何實現遺傳編碼。通常評價遺傳編碼的性能指標一般包括:

1.染色體的Lamarkian特性

該特性考慮在所設計的編碼技術下,染色體的優勢基因是否可通過一般遺傳操作傳到後代種群。後代在遺傳操作之後,如果可以有效繼承父代的優勢基因,則稱該編碼具有Lamarkian特性;如果後代不能從父代繼承任何有用信息,則稱該編碼不具有Lamarkian特性;如果後代繼承的片段中隻有部分與父代相同,則稱該編碼具有半Lamarkian特性。

2.解碼的複雜性

一個染色體編碼通過解碼過程得到問題的一個可行調度。解碼的複雜性可以分為四個類別:0類、1類、2類和3類。將不需要解碼的相應編碼歸為0類複雜性;將通過簡單映射關係實現解碼的相應編碼歸為1類複雜性;將通過簡單啟發式方法才能實現解碼的相應編碼歸為2類複雜性;將隻有通過複雜啟發式方法才能實現的相應編碼歸為3類複雜性。

3.編碼的空間特性

編碼必須考慮碼的可行性、所表征空間的完全性和冗餘性。編碼的可行性可分為兩類:僅包含可行解的空間和可包含非法解的空間。編碼的完全性也可分為兩類:僅表征部分調度空間和可表征整個調度空間。就編碼的冗餘性而言,有的編碼使碼和調度一一對應,則其沒有冗餘;而有的則是一到多或多到一的關係,則有冗餘。

4.存儲量需求

算法的複雜度分為時間複雜度和空間複雜度。GA算法的時間複雜度主要由算法迭代代數和解碼過程的時間複雜度決定,空間複雜度則主要體現在染色體所占的內存空間大小和種群大小的選取上。

下麵對車間生產作業計劃問題(n工件、m階段)的若幹編碼方式及其性質進行歸納:

(1)基於操作的編碼。該方法是將每個染色體由n×m個代表操作的基因組成,是所有操作的一個排列,其中各工件號均出現m次。該編碼方式的特點可歸納為:半Lamarkian性、一類解碼複雜性、任意基因串的置換排列均能表示可行調度及n×m標準長度。

(2)基於工件的編碼。該方法中染色體由包含n個工件的列表組成,每個調度根據工件的順序來構造。對於一個給定的工件順序,列表中的第一個工件的所有工序將被首先調度,然後考慮列表中的後一個工件的工序。該編碼方式的特點可歸納為:Lamarkian性、一類解碼複雜性、任意工件的置換排列均能表示可行調度,但僅能表征部分解空間,不能保證全局最優解的存在性及編碼長度小於標準長度。

(3)基於先後表的編碼。該方法是將每個染色體由分別對應於m台不同機器的m個子串構成,各個子串是一個長度為n的符號串,用於表示一種優先表,各符號表示相應機器上的加工操作。該編碼方式的特點可歸納為:半Lamarkian性、二類解碼複雜性、各狀態均能表示可行調度,但難以用遺傳操作實行進化及碼長為標準長度。

(4)基於工件對關係的編碼。該方法中的調度由二元矩陣表示,矩陣決定相應機器上工件對的優先關係。該編碼方式的特點可歸納為:半Lamarkian性、一類解碼複雜性、存在較大的冗餘、必須考慮合法性及碼長大於標準長度。這種編碼目前應用較少,也是所有編碼方法中最複雜的一種。

(5)基於優先規則的編碼。該方法是將每個染色體由一個長度為n×m的優先分配規則序列構成,每個基因即為一種優先調度規則。算法的優化結果是一個滿意的規則序列,然後依次用這些優先規則產生或修改調度方案。該編碼方式的特點可歸納為:Lamarkian性、二類解碼複雜性、能保證調度的可行性及碼長為標準長度。

(6)基於析取圖的編碼。該方法是將每個染色體用一個長度為n×m的0~1字符串來表示,該染色體(由各弧的操作順序組成)作為優先決策,以決定同台機器上發生操作衝突時各操作的順序。該編碼方式的特點可歸納為:半Lamarkian性、三類解碼複雜性、能保證調度的可行性及碼長為標準長度。

(7)基於完成時間的編碼。利用各操作完成時間的有序表來表示染色體。該編碼方式的特點可歸納為:不具有Lamarkian性;0類解碼複雜性,即無需解碼過程;必須考慮狀態的合法性,且需要設計特殊的遺傳操作及碼長為標準長度。