遗传算法在JobShop中的应用研究(part1: 绪论)
?1. 什么是JobShop問題
一個JobShop問題可以用一個表格來刻畫,例如下面的表格:
| ? | ?θ(1,1) | θ(1,2)? | θ(2,1)? | ?θ(2,2) |
| ?r (i,j) | ?1 | ?2 | ?2 | ?1 |
| ?D (i,j) | ?3 | ?2 | ?5 | ?1 |
θ表示工序,例如,?θ(1,1)就表示第1個工件的第1道工序。
r (i,j)表示機器編號,例如,r(1,1)=1,表示第一個工件的第一道工序的加工機器號為1。
D (i,j) 表示加工時間,例如,D(1,1)=3,表示第一個工件的第一道工序的加工需要3個單位的時間。
?
?JobShop問題的一個解可以用一個加權(quán)有向無環(huán)圖來表示,請看下面的一個有向無環(huán)圖:
???? 這個加權(quán)有向無環(huán)圖就代表上述JobShop問題的一個解,我們可以看到每個工序作為圖中的一個節(jié)點出現(xiàn),權(quán)重就是這個節(jié)點對應(yīng)的加工時間。工序之間的先后順序用箭頭表示,在這里需要注意的是:除了同一個工件下面的工序之間有先后順序外,同一臺機器上加工的工序也要串行。另外,我們增加了兩個虛節(jié)點,分別為 θI 和?θF,表示開始和結(jié)束。從θI有箭頭指向每個工件的第一道工序,從每個工件的最后一道工序出發(fā)用箭頭指向?θF。虛節(jié)點的加工時間為0。
??? 一個有向無環(huán)圖中有若干條從θI到θF的路徑,在這些路徑中我們找出那條路徑上所有節(jié)點的權(quán)重相加最大的那一條,這個最大的權(quán)重和就是這個解對應(yīng)的makespan,即所有工件加工完畢所需的時間。
注意:所有工件都完成的總時間(Makespan)不是3+2+5+1=11,而是上面那個有向完全圖中所有能從開始節(jié)點到達結(jié)束節(jié)點的全體路徑中那條所需時間最長的路徑花費的時間,即7.下面是另外兩個有向圖,即另外兩個解的例子:
?
?
?
?
?2. 遺傳算法與JobShop
遺傳算法是一種隨機搜索算法,它主要分為六大功能模塊:編碼、交叉、變異、解碼、評價、選擇。整個算法的流程如下:
?
?
編碼:
????? 我們利用工件號的排列來表示工序的先后順序,例如:1212這個排列中第一個1代表第一個工件的第一道工序,第二個1代表第一個工件的第二道工序,第一個2代表第二個工件的第一道工序,第二個2代表第2個工件的第二道工序。可見,1212這個排列可以完全體現(xiàn)出上面的有向無環(huán)圖中體現(xiàn)的節(jié)點先后順序。
??? 需要說明的是一個有向無環(huán)圖可能對應(yīng)多個工件號的排列方式,例如,1212,2121,1221,2112都對應(yīng)上面的有向無環(huán)圖。
??? 在遺傳算法中首先做的就是編碼,即隨機生成若干個工件號的排列,這些個隨機生成的排列構(gòu)成的集合被稱為種群,每個排列被稱為染色體。
?
?如圖所示,種群大小為4,該種群中包含4條染色體,分別為2211,1212,1122,2121。請思考為什么1111為非法染色體?
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/zhaogeatdlnu/p/5668271.html
總結(jié)
以上是生活随笔為你收集整理的遗传算法在JobShop中的应用研究(part1: 绪论)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 编辑距离及最小编辑距离算法(转)----
- 下一篇: 什么是堆栈?