一種針對大規模柔性作業車間調度的集成搜索方法
【技術領域】
[0001] 本發明涉及計算機應用及生產調度技術領域,特別是關于一種針對大規模柔性作 業車間調度的集成搜索方法。
【背景技術】
[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… 表示優化問 題的一個解;
[0005]
[0006] 步驟3)由當前處于HM的m組解產生一個新解[x/x/…^/ ],對于每個決策變量x/ 具體產生的規則有如下3條:記憶庫選擇、音調調整和隨機選擇。首先產生一個在[0,1]之間 均勻分布的隨機數rand(),如果rand()小于HMCRa/由記憶庫選擇規則產生,否則由隨 機選擇規則產生。其次,一個決策變量x/如果由記憶庫規則產生,則還需要以PAR的概率經 過音調調整。記憶庫選擇、音調調整的規則分別如公式(2)、公式(3)和公式(4)所示:
[0007] %' =碎,其中 ειΕ(1,2,···,πι) (2)
[0008] x/=x/土rand( ) Xbw (3)
[0009] Xi7 =LBi+rand( ) X (UBi-LBi) (4)
[0010] 式中,UBi和LBi分別為第i個決策變量的上下界范圍,a是指解Xi的第i個決策變量, bw是算法參數指帶寬。
[0011 ]步驟4)更新HM。如果新產生的解向量[x/ X;/…Xr/ ]優于HM中最壞的解,則用當前 新解替換HM中這個最壞的解。
[0012] 步驟5)重復步驟3)和步驟4)直至達到指定的迭代次數。
[0013] 近幾年來,和聲搜索算法作為一種全局優化方法被廣泛應用于求解組合優化問 題,在旅行商問題、管道鋪設問題、公交車路徑優化問題等重要組合優化問題中都得到了成 功的應用。在和聲搜索的發展過程中,出現了許多變種。受粒子群算法中的群體智能思想的 啟發,Omran和Mahdavi提出了 一個全局最優和聲搜索算法(gHS),該算法對基本和聲搜索算 法的音調調整規則做了改變。假設HM中的最優解為:
[0014]
[0015]則音調調整規則為:
[0016] x/ = 其中,k為1至η之間的隨機整數(5)
[0017] Ling Wang等人考慮到更好地保留最優解的結構,將音調調整規則進一步修改為: [0018]
[0019] LNS(大鄰域搜索)是一種結合約束規劃和局部搜索以求解優化問題的強大技術。 典型的局部搜索只在當前解的基礎上做小的改變,如在調度解中移動一兩個操作。但是LNS 與之不同,LNS選擇問題變量的子集來對問題進行松弛,因此它有可能在當前解基礎上做較 大的改動。在LNS中,首先選擇松弛的變量,然后重新分配這些變量的值,同時保持其它變量 的值不變,這個步驟稱之為破壞。該步驟之后,通過重新優化未分配值的變量以尋找更優的 解,該步驟稱之為構建。破壞和構建這兩個步驟在LNS中迭代執行,直到終止條件滿足。如圖 1所示,LNS的主要思想是通過破壞操作,原始的問題被約簡了,然后在約簡的問題上運行約 束規劃,能夠有效克服約束規劃在探索大的搜索空間上存在的能力不足問題。
[0020] HHS(Hybrid Harmony Search,HHS混合和聲搜索)是基于進化計算的方法,它的優 勢在于可以很快產生優質的解,然而在解決大規模問題時探索開發能力不足,算法執行到 一定程度時,即使再進一步增加迭代次數,所得結果也不會進一步改進;LNS是基于約束規 劃的方法,它的優勢在于具有很強的搜索開發(爬山)能力,但是缺點在于搜索性能依賴于 初始解,且搜索開發能力隨問題規模的增大急劇遞減。
【發明內容】
[0021] 針對上述問題,本發明的目的是提供一種能夠有效解決大規模柔性作業車間調度 問題的集成搜索方法。
[0022] 為實現上述目的,本發明采取以下技術方案:一種針對大規模柔性作業車間調度 的集成搜索方法,其特征在于包括以下步驟:1)定義某個要解決FJSP的解向量;2)將混合和 聲搜索中的解向量轉換為FJSP可行解的編碼;3)采用混合和聲搜索算法進行和聲搜索,即 首先隨機初始化若干解向量,設定最大迭代次數,每代通過混合和聲搜索算子產生一個新 的解向量;4)將混合和聲搜索的解向量轉化為FJSP問題的調度解,根據設置的領域進行局 部搜索,并將局部搜索得到的改善后的調度解再轉化為解向量,利用這個解向量替換局部 搜索前的解向量,繼續和聲搜索的搜索過程得到最優解;5)將基于混合和聲搜索算法所找 到的最優解作為大領域搜索算法的初始解,采用大領域搜索算法繼續進行搜索,直到滿足 終止條件,得到最新調度解即完工時間。
[0023] 進一步,所述步驟1)定義某個要解決FJSS的解向量,具體為:解向量表示為 毛=|^丨,1丨,"\;^},11表示維數量,每一維的變量范圍都是[-1,1],解向量的維數11是所求 解FJSS調度問題操作數目總和的兩倍,其中,解向量的前半部分丨:表示所有 操作的機器選擇信息,后半部分{</2+1, </2+2,…4 ;(表示所有操作的排序信息。
[0024] 進一步,所述步驟2)將和聲搜索中的解向量轉換為FJSS可行解的編碼,轉換算法 對于機器選擇部分和操作排序部分分別采用不同的轉換策略,具體為:2.1)在機器選擇部 分,具體做法:首先將[_1,1]內的實數線性變換映射到[l,m]內的實數,然后再取最接近的 整數,對任意X e [ -1,1 ],所對應的[1,m]內的整數z為:
[0025]
[0026]其中,round()為取一個實數最接近的整數,特殊情況是當m= 1時,對任意1£[-1,1 ],z = 1; 2.2)在操作排序部分,使用基于LPV規則的轉換方法。
[0027] 進一步,所述步驟5)將基于和聲搜索算法所找到的最優解作為大領域搜索算法的 初始解,采用大領域搜索算法繼續進行搜索,直到終止條件滿足,得到的解為完工時間的調 度,具體過程為:5.1)建立基于約束的模型;5.2)破壞步驟,即對當前解進行擾動,在后續構 建步驟中生成新的更優解;5.3)構建步驟,即利用約束規劃搜索在當前解的基礎上形成新 的調度解。
[0028] 本發明由于采取以上技術方案,其具有以下優點:1、本發明針對以完工時間為優 化目標的FJSP集成了兩個算法,即混合和聲搜索和大鄰域搜索,HHS是一種具有模因演算法 風范的演化算法,而LNS則是一種典型的基于約束的方法,為了形成一個更加有效的搜索機 制,本發明首先運行HHS,然后運行LNS進一步改進HHS所得到的最終解,在運行LNS之前,該 集成搜索方法還利用HHS所得到的精英解