本章探討如何運用Wu et al., (2011)所提到的新表達法,結合本研究所建構的 粒子群演算法,來求解製造單元排程問題。本章主要分成表達法設計與解讀和粒 子群演算法求解方法兩個部分。
3.1 研究問題
本研究探討在粒子群演算法下,新表達法(Snew)是否優於舊表達法(Sold )。
3.2 表達法設計與解讀
本節分成舊(Sold )與新(Snew)表達法兩部分,並說明各自設計理念與解讀方 法。
3.2.1 舊表達法(Sold )
設計理念:由圖3.1可以看出舊表達法分成1+Family個部分。最前面的部分是設計 用來表達機台上加工工件族的順序。後面的部分則是分別表達每個工件族內工件 的加工順序。
圖 3.1 舊表達法
解讀方法:先解讀第一部分,得到工件族加工順序為F3F2F1。接著解讀F3的 工件加工順序是J5J6,F2的是J4J3,F1的是J2J1。所以經由舊表達法最後 得到J5J6J2J1J4J3的加工順序。
3.2.2 新表達法(Snew)
設計理念:由圖3.2可以看出新表達法只有一個部分,但是卻包含了工件所屬工件 族的資訊。
圖 3.2 新表達法
解讀方法:新表達法解讀分成兩個部分,先決定工件族的加工順序,再決定工件 族內工件的加工順序。首先解讀到J5屬於F3,接著解讀到J2屬於F2,最後是J4 屬於F1。再將工件依得到的工件族加工序解讀,由F3得到J5J6,F2得到J2J1,
由F1得到J4J3。最後再將其串起來得到J5J6J2J1J4J3。
3.3 粒子群演算法求解方法
3.3.1 新表達法結合粒子群演算法(PSO-Snew)求解流程與步驟
Step1:設定粒子的相關參數:包括最小位置𝑥𝑚𝑖𝑛與最大位置𝑥𝑚𝑎𝑥, 最小速率𝑣𝑚𝑖𝑛, 最大速率 𝑣𝑚𝑎𝑥, 𝑟1與𝑟2皆為服從均勻分配0~1之間的亂數,加速係數𝑐1與𝑐2。 Step2:藉由公式(1)與(2)隨機產生 k 個具有 d 維空間的粒子,初始位置以𝑥𝑖𝑑0 及速 度𝑣𝑖𝑑0表示。粒子的數目 k 通常是所需加工工件數目的兩倍,d 維空間取決於工件 數目。由這些粒子所組成的群體,稱為粒子群體。此時為初始世代 t=0。
𝑥𝑖𝑑0 = 𝑥𝑚𝑖𝑛+ (𝑥𝑚𝑎𝑥 − 𝑥𝑚𝑖𝑛) ∗ 𝑟1 (1) 𝑣𝑖𝑑0 = 𝑣𝑚𝑖𝑛+ (𝑣𝑚𝑎𝑥− 𝑣𝑚𝑖𝑛) ∗ 𝑟2 (2)
由 公 式 (1) 與 (2) 可 以 求 出 各 粒 子 的 位 置 與 速 度 , 如 表 3.1 。𝑥𝑖𝑑代 表
表 3.1 粒子的位置與速度
Step3:將各粒子的位置轉換成工件的加工順序。由表 3.1 可以得到最小𝑥𝑖𝑑是 0.2,
其所對應的維度是 5,就將其解讀成工件 5 優先加工。第二小的𝑥𝑖𝑑是 0.9,其所 對應的維度是 2,所以第二個加工的是工件 2。以此類推如圖 3.3,可以得到加工 順序為 J5J2J4J1J6J3。又因為新型表達法的設計,可以得到 J1 與 J2 屬於 Family1,J3 與 J4 屬於 Family2,J5 與 J6 屬於 Family3。並由新型表達法的 解讀可以得到 J5J6J2J1J4J3 的最終加工順序。
圖 3.3 粒子位置對應到的加工順序
Step4:藉由上一步驟可以得到最終加工順序,求出每個粒子之適應值。在世代 t=0 時,粒子 i 的適應值儲存為𝑝𝑏𝑒𝑠𝑡𝑖,代表粒子 i 目前的最佳適應值。同時,也將 粒子 i 所在的位置儲存為𝑝𝑖𝑑,代表粒子 i 目前的最佳位置。當下一世代時,若目 前的粒子適應值優於𝑝𝑏𝑒𝑠𝑡𝑖,則粒子之適應值取代𝑝𝑏𝑒𝑠𝑡𝑖,粒子目前的位置取代
p 。 id
Step5: 在世代 t=0 時,從所有 k 個粒子選出最佳的𝑝𝑏𝑒𝑠𝑡𝑖儲存為 gbest,代表所有 粒子目前的最佳適應值。同時,也將此粒子所在的位置儲存為𝑝𝑔𝑑,代表所有粒 子目前的最佳位置。等下一世代時,一樣從所有 k 個粒子選出最佳的𝑝𝑏𝑒𝑠𝑡𝑖,再 與目前群體最佳值 gbest 做比較,若粒子的pbest𝑖適應值優於 gbest,則粒子之適 應值取代 gbest,粒子之位置取代𝑝𝑔𝑑。
Step6:由公式(3)與(4)將每個粒子的位置與速度更新,尋找出下個世代新的位置及 新的速度。
𝑣𝑖𝑑𝑡 = 𝑣𝑖𝑑𝑡−1+ 𝑐1𝑟1(𝑝𝑖𝑑𝑡−1− 𝑥𝑖𝑑𝑡−1) + 𝑐2𝑟2(𝑝𝑔𝑑𝑡−1− 𝑥𝑖𝑑𝑡−1) (3) 𝑥𝑖𝑑𝑡 = 𝑥𝑖𝑑𝑡−1+𝑣𝑖𝑑𝑡 (4) Step7:若演算世代數 t 達到要求即停止,否則回到步驟 2,t= t+1。
圖 3.4 表達法結合粒子群演算法流程圖
3.3.2 舊表達法結合粒子群演算法(PSO-Sold)求解流程與步驟
舊表達法結合粒子群演算法(PSO-Sold)其求解方法與PSO-Snew幾乎一樣,
除了在Step3需要創造1+Family個空間,從而得到機台上加工工件族的順序與每 個工件族內工件的加工順序。
圖 3.5 舊表達法結合粒子群演算法空間產生示意圖
由圖3.5所示,此時粒子群演算法需要創造A、B、C、D四個空間。A空間可 以求得機台上工件族的加工順序,B、C、D三個空間則是要分別求個工件族裡工 件的加工順序。尤其是到了C空間,雖然也是兩個維度,但為了解讀需求必須要 轉成3、4。D空間也是一樣,維度的解讀必須要從之前工件族所有的工件數開始。
還需要注意的是由4個空間所組成的一個加工順序,若遇到更好的適應值時4個空 間的最佳位置要一起更新。