上述編碼方法舉例如下:兩台並行機1、2加工4個工件,則一條可行染色體為A=[25132216],其表示工件2,4在設備1加工,且工件2先加工;工件1,3在設備2加工,且工件3先加工。其對應的作業計劃如圖4.2所示,該作業計劃又直接對應ACO算法的一種路徑。由此即可建立GA算法染色體與ACO算法路徑之間的聯係。

進行交叉操作時,在適應值優於種群平均適應值的染色體中用動態交叉概率選擇,一方麵保留優質基因,另一方麵保持參與交叉操作染色體數的穩定。每代種群中,優於平均適應值的染色體數可能發生變化,為了使每代參與交叉的染色體數保持基本穩定,以維護遺傳基因的延續性,用動態交叉概率按輪盤賭方法對上述染色體進行二次選擇,動態交叉概率取值為:

交叉概率隨參與交叉操作的染色體數量而變化,當選擇得到的染色體數較少時,交叉概率為較大值,以保證足夠數量的染色體參與交叉操作;反之亦然,以達到保證染色體數量的條件下提高運算速度的目的。經過動態交叉概率的選擇,參與交叉的染色體數基本維持為σ·kT。這一選擇原則符合遺傳生物學原理。當生物種群數量減少時,其繁殖能力得以自然提高以保證繁衍;當種群數量增加時,其繁殖能力自然下降以減少環境壓力。進行變異操作時,在整個種群中按變異概率選擇染色體。若交叉和變異後得到子代染色體的適應值優於父代染色體,則用子代染色體取代父代染色體,使種群進化。

對後麵的其他作業計劃問題,GA算法選擇與進化也采用與IPM問題一樣的方法,本書在後麵不再贅述。

交叉操作采用多段交叉法進行。對選定的一對父代染色體,在1~n範圍內按升序產生偶數個整數,將其兩兩配對,將每對數字在兩個父代染色體上對應的基因位之間的基因進行交叉。對於一個具有2台並行機用於加工4個工件的IPMP問題,染色體交叉操作的一個例子如下:兩個父代染色體為A,B,在其中任選對應的兩組基因進行交叉後得到兩個子代染色體a,b。

變異操作采用單親染色體任意兩對實數基因互換的方法進行。按一定變異概率選取父代染色體,任意選定兩個基因交換,即得到子代染色體。例如,父代染色體為A=[25132216],將其任意兩個實數基因進行互換,得到子代染色體a=[16132225]。

對於所研究的IPFSP問題,應用ACO算法時螞蟻在各節點的allowedk確定如下:在起點N,每個螞蟻的allowedk中有對應工件數的n條路徑。按輪盤賭方法選擇其中一條路徑,那麼該螞蟻對應工件進入的設備也相應確定。

螞蟻尋徑過程中需將節點之間的雙向連接弧明確為指入連接弧和指出連接弧,指入連接弧表示螞蟻從其他節點尋徑至該節點;指出連接弧則反之。當螞蟻尋徑至上述節點中的某一個時,該節點處的allowedk將包含指向這些節點中該螞蟻未經曆節點的路徑。當螞蟻完成對某節點尋徑後,該節點將隻存在指入連接弧和指出連接弧各一個。在滿足運算結束條件前,螞蟻將進行新一代尋徑,即n個螞蟻再次從起點N出發時,所有節點的allowedk清零。