在重構HFS時,必須兼顧工件的停留時間與設備投入等多個方麵。本書認為設備空閑時間與工件平均流程時間的加權均值不失為一種較好兼顧上述幾個方麵的目標函數。即:通過確定各階段並行機的數量,一方麵使設備空閑時間盡量少,充分發揮生產係統投資的效益;另一方麵,使工件盡快通過生產係統,縮短工件的加工周期。
GA算法的求解過程通常就是染色體適應值的最小化工程。對於簡單的最小化問題,可以直接將目標函數變成適應值函數;如為求最大值問題,也可將其轉換為求最小值問題。譬如,欲求個體X的目標值適應值c(X)的最大值,可將其轉化為f(X)=R-c(X)或e-ac(X),其中R為一足夠大正數,a>0,則其變成求極小值問題。
由於本節所研究問題需要目標函數極小化,為了便於實現編碼空間與解空間的轉換,令上述目標函數為GA算法染色體的適應值,其值為:
fitness=α×tidle+(1-α)×1NNj=1C(M,j)(4.4)
式中:α--加權係數;
tidle--設備空閑時間,tidle=max(C(i,j))×Mi=1mi-Mi=1Nj=1p(i,j)。
其中,C(i,j)--工件j在i階段的加工完成時間,i∈{1,2,…,M},j∈{1,2,…,N};
mi--i階段並行機數,i∈{1,2,…,M};
p(i,j)--工件j在i階段設備上加工時間。
交叉操作
按一定交叉概率選取父代染色體,采用多段交叉法進行交叉,即在1~(N+1)×M範圍內按升序產生偶數個整數,將其兩兩配對,將每對數字在兩個父代染色體上對應的基因位之間的基因進行交叉。對於一個具有4個階段的HFS,用於加工2個工件,交叉操作的一個例子如下:兩個父代染色體分別為A,B,在其中任選對應的若幹組基因進行交叉後得到兩個子代染色體a,b。
A=[22513112161131811116]
B=[11417215281161411613]
a=[11413112281161811116]
b=[22517215161131411613]
交叉操作後,染色體中的部分基因可能不滿足式(4.3),應調整mi值使式(4.3)成立。對於上述例子,第二階段對應的染色體a的基因為12、28,對應的染色體b的基因為15、16。因此,將染色體a的第二階段並行機數(m2)改為2,將染色體b的m2改為1。上述子代染色體a,b分別變為:
a=[11413212281161811116]
b=[22517115161131411613]
變異操作
按一定變異概率選取父代染色體,采用單親染色體任意兩個實數基因互換的方法進行變異操作。例如,父代染色體A=[22513112161131811116],將其任意兩個實數基因進行互換,得到子代染色體a=[21613112251131811116]。同理,子代染色體應滿足式(4.3)的要求,則其變為a=[11613212251131811116]。