將選擇、交叉、變異、進化等遺傳操作應用於第一階段染色體。為了滿足流水線中工件加工順序不可顛倒的約束條件,後續階段染色體隻能應用符合變異規則的變異操作。
對第一階段染色體進行選擇操作時,選取適應值優於平均值的總染色體中的第一階段染色體用於交叉操作,以期保持優質基因片段,盡快收斂。本書研究的目標為加工流程時間的極小化,因此取總染色體的適應值為加工流程時間Cmax。為了提高搜索效率,本書提出自適應交叉操作方法,取每一代適應值在平均值以下的總染色體之第一階段染色體,按動態概率采用輪盤賭方式選擇後進行交叉操作。交叉概率隨參與交叉操作的染色體數量而變化,當選擇得到的染色體數較少時,交叉概率為較大值,以保證足夠數量的染色體參與交叉操作;反之也然,以達到保證染色體數量的條件下提高運算速度的目的。交叉概率按式(4.2)計算。
每兩個父代第一階段染色體(因本書中所說的遺傳隻在第一階段發生,故下麵提及的父代染色體均指第一階段)在隨機點處進行交叉操作及合法化處理[108],得到兩個子代第一階段染色體(同理,下麵提及的子代染色體也均指第一階段)。變異操作按常規方法進行,即在每一代所有第一階段染色體中按一定概率pc選擇染色體進行變異,以突破局部搜索領域,避免早熟。采用自然數編碼染色體的變異可以采用單親染色體基因交換的方法實現。
按概率隨機選取一父代染色體並隨機選取該染色體中兩個交換位置,將這兩個位置的基因交換,即得到其子代染色體。計算上述經過交叉或變異操作後子代染色體及其相關後續階段染色體構成的總染色體的適應值,若其小於與父代染色體對應的總染色體的適應值,則用子代染色體取代父代染色體,使第一階段染色體種群進化。後續階段染色體隻進行符合變異規則的變異操作。在由i-1階段所得到染色體中的隨機位置加入v個“虛基因”,采用單親染色體多次基因交換的方法,相互交換的基因隻能在染色體的相鄰Li個基因位內進行;每個基因最多進行一次交換。該變異規則既可調整工件在各階段交叉流水線上的分配與排列,又可保證染色體的合法性,避免了對同一基因進行多次交換而產生非法染色體,即代表後續工件的基因交換到了代表先行工件的基因之前,而違反了各階段流水線工件加工順序不可顛倒的約束條件。
對於任意的第i段流水線,其對應的第i階段染色體以交叉編碼規則進行分解並去除“虛基因”後,得到Li條反映該階段工件排列情況的實基因染色體片段集Si={si1,si2,…,siLi}。以上述第二階段染色體135400200為例,在其隨意位置加入3個“虛基因”,得到染色體103500400200。設CFS第二階段有3條流水線交叉,第二階段染色體的操作如取染色體的適應值為其所代表加工順序的流程時間,即
fit=max(Cij)(i=1,2,…,mk;j=1,2,…,n)(4.6)
式中:Cij為j工件在i設備上加工完成時間。Cij的計算如下:對於第一階段流水線,設其設備數為m1,以流水線A為例進行說明,設其對應的反映流水線A第一階段上加工的工件號及其順序的實基因染色體片段為S1A,染色體片段長度為n1A。則有
Ci,s1A(1)=ik=1pk,s1A(1)(i=1,2,…,m1;A∈1,2,…,L)
C1,s1A(j)=jk=1p1,s1A(k)(j=1,2,…,n1A)
Ci,s1A(j)=max(Ci-1,s1A(j),Ci,s1A(j-1))+pi,s1A(j)