本發(fā)明涉及作業(yè)車間調(diào)度領(lǐng)域。
背景技術(shù):
柔性流水車間調(diào)度問題(Flexible Flow Shop Scheduling Problem,F(xiàn)FSP)是大量實際生產(chǎn)線調(diào)度問題最常用的簡化模型,是一類重要的組合優(yōu)化問題,已經(jīng)成為先進制造技術(shù)實踐的關(guān)鍵。FFSP已經(jīng)被證明是一個NP難問題,是學(xué)術(shù)界與工程界共同關(guān)注的課題。因此,對FFSP的研究具有重要的理論意義和應(yīng)用價值。
目前求解FFSP的主要方法有遺傳算法、粒子群算法、免疫克隆選擇算法#蟻群算法等,有方法采用構(gòu)造型啟發(fā)方式算法產(chǎn)生初始種群,并結(jié)合遺傳算法進行全局搜索;還有采用遺傳算法對柔性流水車間調(diào)度問題進行求解和采用粒子群優(yōu)化算法針對混合約束柔性流水車間調(diào)度問題進行了求解;采用隨機生成所有工序順序和機器的順序的方法擴大初始解的空間,主要解決了機器選擇結(jié)果依賴于工。但是沒有考慮機器選擇對排序調(diào)度結(jié)果的影響。
FFSP可以描述為:待加工的工件集合J={J1,J2,...Ji,...Jn},(n為工件的個數(shù),i∈[1,n]),機器集合為M={M1,M2,...Mj,...Mm}(j∈[1,m]),其中λ表示工序數(shù),Sj表示第j道工序上總機器數(shù),m為機器數(shù)量。每個工件需要在m個并行的調(diào)度子系統(tǒng)中(m臺機器上)選擇一個進行加工,且滿足如下的約束條件:
1)每個工件可以在不同的機器上加工;
2)每個工件一旦開始加工就不能中斷;
3)每臺機器Mj同時只能加工一個工件Ji,每個工件Ji同時只能被一臺機器Mj加工;
4)工件的準(zhǔn)備時間和移動時間包含在加工時間內(nèi);
5)允許工序之間存在等待,允許機器在工件未到達時閑置。
FFSP的優(yōu)化目標(biāo)是要找出這個工件的一個加工順序,使其總完工時間最小。下面給出計算工件總完工時間的計算方法:
式中:
為第i臺機器上最后完工工件的完工時間;Cmax為最后完工工件的完工時間,即排序的總時間。FFSP的優(yōu)化性能指標(biāo)為總加工費用的值最小,調(diào)度的目標(biāo)是求解n個任務(wù)的最優(yōu)加工順序,使總完工時間Cmax最小,為達到上述需求,本發(fā)明提供了一種改進的柔性流水車間調(diào)度問題的求解算法。
技術(shù)實現(xiàn)要素:
針對上述文獻研究成果存在的不足,本發(fā)明提供了一種改進的柔性流水車間調(diào)度問題的求解算法。
為了解決上述不足,本發(fā)明是通過以下技術(shù)方案實現(xiàn)的:
步驟1:FSSP算法定義和流程
步驟2::重新定義粒子速度和位置的相關(guān)算子,通過分析初始機器選擇與調(diào)度總完工時間的關(guān)系,首次提出一種基于NEH算法的最短用時分解策略算法
步驟3:引入編碼矩陣和解碼矩陣來表示工件、機器以及調(diào)度之間的關(guān)系
步驟4:利用改進離散粒子群算法進行全局優(yōu)化
本發(fā)明有益效果是:
本算法的優(yōu)勢在于提高了粒子種群初始解的質(zhì)量,縮短粒子找到最優(yōu)解的時間;同時采用呈指數(shù)遞減的慣性權(quán)重方式,有效地避免粒子早熟收斂,增強了粒子前期的全局搜索能力。
附圖說明
附圖1 FFSP的整體框架
附圖2求解FFSP的算法流程
具體實施方式
步驟1:FSSP算法定義和流程,其具體描述如下:
步驟1.1)FSSP算法定義
1)置換序列:粒子的位置為X,置換序列(i,j)的操作位交換X中第i個元素和第j個元素。
2)加法算子把后一個速度的置換序列加入到前一個速度或位置的置換序列列表的末尾。例如:假設(shè)那么
3)減法算子減法操作為粒子的全局最優(yōu)解減去粒子的個體位置或者粒子個體最優(yōu)解位置減去粒子個體位置,結(jié)果為置換序列。例如:假設(shè)A=(3,1,2,4,5,6),B=(1,2,4,3,6,5),由于A(1)=B(4)=3,第一個交換序列就為(1,4),也就是說減法結(jié)果第一個位置上為4,以此類推,那么
4)乘法算子乘法操作為慣性權(quán)重ω(ω∈R)乘速度和學(xué)習(xí)因子c1、c2(c2∈R)乘速度,運算的結(jié)果分別是以ω、c1、c2為概率保留粒子的速度。
步驟1.2)FFSP算法流程
包括粒子種群規(guī)模,慣性權(quán)重因子ω,學(xué)習(xí)因子c1、c2,工件數(shù)量n,機器數(shù)量m,存儲工件加工矩陣JobNumber,工件關(guān)聯(lián)陣JobRJob,工件總加工時間Totaltime,最大迭代次數(shù)T
步驟2:重新定義粒子速度和位置的相關(guān)算子,通過分析初始機器選擇與調(diào)度總完工時間的關(guān)系,首次提出一種基于NEH算法的最短用時分解策略算法,其具體計算過程如下:
FFSP調(diào)度完工時間的大小取決于工件選擇的加工機器和機器上工序的加工順序,因此提高粒子種群初始解的質(zhì)量尤為重要。提高初始解的質(zhì)量可以縮短求解FSSP的時間和增強粒子尋找最優(yōu)解的性能。按照工件在機器上總加工時間對工件進行降序排列,再依次取出工件進行迭代插入操作。這里,最短用時分解策略思想:將工件在機器上總加工時間按照每道工序進行分解,根據(jù)各個工件在每道工序上的總時間進行降序排列,按照每道工序的總時間與鄰近度進行對比并排序,直至對所有工件降序排序完成。其中,鄰近度定義如下:
Pro=min ETCR(i,j)(i∈{1,2,...,SubTask},j∈{1,2,...,M}
表示兩道工序加工時間之間的接近程度,鄰近度越小表明越接近。最短用時分解策略算法步驟:
步驟2.1)設(shè)置優(yōu)先級別列表S={1,2,...,M},其中p為工序數(shù),sumpi為第i道工序的機器個數(shù),M為總機器的個數(shù);同時設(shè)置工序數(shù)的副本pcopy,令pcopy=p;設(shè)置鄰近度Pro;計數(shù)器t=1;優(yōu)先級的設(shè)置m=M;
步驟2.2)在第pcopy道工序中,按照工件在機器上加工的總時間,對工件進行降序排列,得到排列序列seq;
步驟2.3)根據(jù)seq設(shè)置優(yōu)先級列表S:對seq中第t和t+1兩道工序,比較數(shù)值之差,如果大于Pro,則較大數(shù)的優(yōu)先級就設(shè)置為m,然后設(shè)置m=m-1;否則,比較該兩道工序的前一道工序,直至得到比較結(jié)果;
步驟2.4)判斷t是否等于M:如果是,則第t道工序的優(yōu)先級設(shè)置為最低1,轉(zhuǎn)步驟5;否則,轉(zhuǎn)步驟3;
步驟2.5)輸出優(yōu)先級列表S;
步驟2.6)根據(jù)規(guī)則S動態(tài)隨機生成機器鏈。
步驟3:引入編碼矩陣和解碼矩陣來表示工件、機器以及調(diào)度之間的關(guān)系,其具體計算過程如下:
步驟3.1粒子的編碼和解碼
粒子的編碼方式既影響粒子的搜索能力,又影響種群的多樣性。本方法編碼方式采用采用間接編碼,編碼長度為其中JNi表示第i個工件的工序數(shù)量。這種編碼方式的好處是一個編碼方案對應(yīng)著一個調(diào)度策略。編碼用向量ECJ(P)表示,其中P表示工序數(shù);解碼矩陣用DCJ(M,J,P,N)表示,其中M表示機器集合,J表示任務(wù)集合,P表示工序集合,B表示加工相對應(yīng)機器的工件數(shù)量。當(dāng)m=3,J=3時,粒子ECJ=(2,3,3,1,1,1,3,2,2,2,)即為一種可行的編碼策略。ECJ(1)=2表示第1個工件的第1道工序在機器2上加工,ECJ(4)=1表示第2個工件的第1到工序在機器1上加工,以此類推。給定粒子編碼方案后,需要進行解碼操作:將在對應(yīng)機器加工的全部子任務(wù)劃分出來,并結(jié)合工件關(guān)聯(lián)矩陣JobSubJob,將其解碼的結(jié)果儲存進解碼矩陣?yán)铩?/p>
步驟4:利用改進離散粒子群算法進行全局優(yōu)化,其具體過程如下:
通過慣性權(quán)重調(diào)整來進行全局優(yōu)化。
慣性權(quán)重ω是算法中一個很重要的參數(shù),它平衡了粒子的全局搜索能力和局部探索能力。較大的慣性權(quán)重能增強粒子全局的搜索能力,而較小的慣性權(quán)重能提高粒子的局部探索能力。為了能使算法在初期進行較全面的搜索,采用呈指數(shù)遞減的慣性權(quán)重計算公式,如下式所示:
α=ωmax-ωmin
式中:ωmax和ωmin為慣性權(quán)重的最大值和最小值,Iter為當(dāng)前迭代次數(shù),maxIter為最大迭代次數(shù)。