一種基于混合和聲搜索的柔性作業車間調度方法
【技術領域】
[0001] 本發明屬于計算機應用及生產調度技術領域,涉及半導體生產、汽車裝配、紡織等 工業生產中所涉及的關鍵調度問題,即柔性作業車間調度問題(Flexible Job Shop Scheduling,FJSS),特別是關于一種基于混合和聲搜索的柔性作業車間調度方法。
【背景技術】
[0002] 音樂演奏中,樂師們憑借自己的記憶,通過反復調整樂隊中各樂器的音調,最終達 到一個美妙的和聲狀態,韓國學者Geem ZW等人受這一現象的啟發,提出了和聲搜索算法。 將樂器i(i = l,2,-_,n)類比于優化問題中的第i個變量,各樂器的音調類比于各變量的值, 各樂器音調的和聲&(」=1,2,一,!11)類比于優化問題的第」組解向量,音樂的評價效果類比 于目標函數。基本的和聲搜索算法產生m組初始解(和聲)放入和聲記憶庫(Harmony Memory,HM),以概率HMCR在HM內搜索新的變量,以概率1-HMCR在HM外變量允許的范圍中搜 索;然后算法以概率PAR對新的變量產生局部擾動;判斷新解的目標函數是否屬于HM內的最 差解,若是,則替換之;然后不斷迭代直至滿足停止準則。基于和聲搜索算法的主要參數有 和聲記憶庫大小m,記憶庫保留概率(Harmony Memory Considering Rate,HMCR)和聲調解 率(Pitch Adjusting Rate,PAR),其中算法參數的設置影響算法收斂效率和收斂速度,基 本的和聲搜索過程為:
[0003 ]步驟1)初始化參數記憶庫大小m、記憶庫保留概率HMCR、和聲調解率PAR、擾動系數 bw,算法迭代次數NI;
[0004] 步驟2)隨機產生m組初始解放入HM,其中HM矩陣的行向量|χ?4…X〗]表示優化問 題的一個解;
[0005]
[0006] 步驟3)由當前處于ΗΜ的m組解產生一個新解[χ/Χ2' -Χγ/ ],對于每個決策變量x/ 具體產生的規則有如下3條:記憶庫選擇、音調調整和隨機選擇。首先產生一個在[0,1]之間 均勻分布的隨機數rand(),如果rand()小于HMCR,x/由記憶庫選擇規則產生,否則由隨機 選擇規則產生。其次,一個決策變量x/如果由記憶庫規則產生,則還需要以PAR的概率經過 音調調整。記憶庫選擇、音調調整的規則分別如公式(2)、公式(3)和公式(4)所示:
[0007] 尤/ = <,其中 ειΕ(1,2,···,πι) (2)
[0008] χ/=χ/土rand( ) Xbw (3)
[0009] x/=LBi+rand( ) X (UBi-LBi) (4)
[0010] 式中,UBi和LBi分別為第i個決策變量的上下界范圍,a是指解Xi的第i個決策變量, bw是算法參數指帶寬。
[0011] 步驟4)更新HM。如果新產生的解向量[x/ X2'…Xr/]優于HM中最壞的解,貝lj用當 前新解替換HM中這個最壞的解。
[0012] 步驟5)重復步驟3)和步驟4)直至達到指定的迭代次數。
[0013] 近幾年來,和聲搜索算法作為一種全局優化方法被廣泛應用于求解組合優化問 題,在旅行商問題、管道鋪設問題、公交車路徑優化問題等重要組合優化問題中都得到了成 功的應用。在和聲搜索的發展過程中,出現了許多變種。受粒子群算法中的群體智能思想的 啟發,Omran和Mahdavi提出了 一個全局最優和聲搜索算法(gHS),該算法對基本和聲搜索算 法的音調調整規則做了改變。假設HM中的最優解為:
[0014]
[0015]則音調調整規則為:
[0016] 々=gesi,其中,k為1至η之間的隨機整數(5)
[0017] Ling Wang等人考慮到更好地保留最優解的結構,將音調調整規則進一步修改為:
[0018] = xfest (6)
[0019] 但是上面所描述幾種和聲搜索算法都不能直接應用于求解FJSS問題,因為和聲搜 索的算子操作都是基于實數編碼的,算法原始的目的是用于求解連續優化問題,而FJSS是 一個離散優化的問題,和聲搜索在搜索過程中往往存在容易陷入局部極優的問題。
【發明內容】
[0020] 針對上述問題,本發明的目的是提供一種能夠增強和聲搜索的局部搜索能力的基 于混合和聲搜索的柔性作業車間調度方法。
[0021] 為實現上述目的,本發明采取以下技術方案:一種基于混合和聲搜索的柔性作業 車間調度方法,其特征在于包括以下內容:1)定義某個要解決FJSS的解向量;2)將和聲搜索 中的解向量轉換為FJSS可行解的編碼;3)采用和聲搜索算法框架進行和聲搜索,即首先隨 機初始化若干解向量,設定最大迭代次數,每代通過和聲搜索算子產生一個新的解向量;4) 將新的解向量解轉換相應的調度解,調度解采用析取圖進行表示;5)產生新的調度解后,基 于析取圖以某個概率執行所提出的基于公共關鍵操作的局部搜索,通過局部搜索對析取圖 進行調整,得到改進的調度解,然后再將改進的調度解轉換為解向量,采用局部搜索后得到 的解向量替代局部搜索前的解向量,繼續執行下一代和聲搜索;6)搜索執行完成后,將最優 的解向量進行解碼得到最終FJSS的調度解。
[0022] 進一步,所述步驟1)定義某個要解決FJSS的解向量,具體為:解向量表示為 & = {x丨η表示維數量,每一維的變量范圍都是[-1,1],解向量的維數η是所求 解FJSS調度問題操作數目總和的兩倍,其中,解向量的前半部分…,</2j表示所有 操作的機器選擇信息,后半部分{j4/2+1,j4/2+2,…表示所有操作的排序信息。
[0023] 進一步,所述步驟2)將和聲搜索中的解向量轉換為FJSS可行解的編碼,轉換算法 對于機器選擇部分和操作排序部分分別采用不同的轉換策略,具體為:(1)在機器選擇部 分,具體做法:首先將[_1,1]內的實數線性變換映射到[l,m]內的實數,然后再取最接近的 整數,對任意X e [ -1,1 ],所對應的[1,m]內的整數z為:
[0024]
[0025] 其中,roundO為取一個實數最接近的整數,特殊情況是當m=l時,對任意xe [-1, 1 ],z = 1; (2)在操作排序部分,使用基于LPV規則的轉換方法。
[0026] 本發明由于采取以上技術方案,其具有以下優點:1、本發明和聲采用實數向量表 示,向量大小為所有的操作總數的兩倍,該向量分為大小相等的兩個部分,前半部分表示機 器選擇,后半部分表示操作排序,可以實現該實數向量與FJSS可行解編碼之間的相互轉換, 使和聲搜索能夠直接應用于柔性作業車間調度問題。2、本發明是在和聲搜索產生新解步驟 之后嵌入局部搜索算子,并將局部搜索算法得到的新解轉換為解向量,然后替換局部搜索 前的解向量,利用得到的新的解向量繼續和聲搜索過程,因此本發明提出的基于公共關鍵 操作的局部搜索方法,增強了和聲搜索的局部搜索能力,能夠在全局搜索和局部搜索之間 達到平衡,綜上所述,本發明可以廣泛應用在對中等規模的柔性作業車間系統進行有效的 調度中。
【附圖說明】
[0027] 圖1是本發明的FJSS可行解編碼結構示意圖;
[0028] 圖2是本發明的FJSS可行解編碼示意圖;
[0029] 圖3是本發明的操作排序部分轉換示意圖;
[0030] 圖4是本發明的FJSS問題析取圖模型;
[0031 ]圖5是本發明的動態展現子系統操作流程圖。
【具體實施方式】
[0032] 以下結合附圖來對本發明進行詳細的描繪。然而應當理解,附圖的提供僅為了更 好地理解本發明,它們不應該理解成對本發明的限制。
[0033] 柔性作業車間調度問題(Flexible Job Shop Scheduling,FJSS)涉及到兩個調度 決策:機器選擇(Machine Selection,MS)和操作排序(Operation Sequence,0S)。如圖 1 所 示,一個可行解的遺傳編碼可以由機器選擇部分MS和操作排序部分0S這兩部分組成。
[0034] 表1 FJSS調度問題實例
[0035]
[0036] 機器選擇部分長度有L位,其中L為所求解FJSS問題所對應的操作總數目。每位用 整數表示,依次按照工件和工件內操作的順序進行排列,每個整數表示當前操作選擇的加 工機器在可選機器集中的順序編號,并不是對應的機器號。以表1所示的FJSS問題為例,機 器選擇部分依次是工件1和工件2的所有操作,操作On有5臺機器可以選擇,對應的3表示可 選機器集中第3臺機器,即在機器M 3上加工。同理操作012有兩臺機器M#PM4可以選擇,圖2中 對應的2表示在機器M4上加工。
[0037]在操作排序部分,當操作的加工機器確定后,對操作的排序類似一般的JSP問題。 本部分采用Gen提出的基于操作的編碼方式進行編碼,編碼位數也為L。每一位用工件號直 接編碼,工