本發明涉及車間調度技術領域。
背景技術:
作業車間調度問題(Job-shop Scheduling Problem)是許多實際生產調度問題的簡化模型,具有廣泛的應用背景,譬如生產制造、交通規則、郵電通信、大規模集成電路設計等問題。作為一類滿足任務配置和順序約束要求的分配問題,JSP已被證明是一個典型的NP_hard問題,它的求解難度遠遠大于流水線調度問題。針對解決作業車間調度問題的算法一直是學術界和工程界共同關注的重要課題。
制造業的競爭日趨激烈,企業正朝著有不同完工時間和產品要求的多類型、小批量、大批量的生產模式。如何利用現有資源,滿足加工任務所需各種約束,使所有任務能盡量按時完成,即如何有效地解決JSP問題,成為一個十分現實和緊迫的問題。高效的調度算法不可以大大提高生產效率和資源利用率,從而增強企業的競爭能力,因此對JSP的研究有非常重要的理論和現實意義。
現有的很多算法被提出,用來解決作業車間調度問題,但僅僅是解決最底層的作業車間調度問題,沒有考慮到實際生產過程中存在的工件庫存問題,不能直接判斷是否有空間可以容納工件,是否有空位用來放置正在生產中的工件從而不打亂各工件加工順序;且現有的算法沒有考慮到訂單周期的約束條件。
技術實現要素:
針對現有技術存在的上述不足,本發明要解決的技術問題是采用一種解決車間生產問題的改進排產算法。
本發明的目的是克服現有技術中存在的:實際生產過程中存在的工件庫存(空位放置)問題,以及訂單周期問題。
本發明為實現上述目的所采用的技術方案是:一種解決車間生產問題的改進排產算法,該算法的步驟如下:
步驟1:編碼:采用基于工序的編碼規則編碼;
步驟2:設置工件優先級階數La;
步驟3:設置工件優先級序列P(哪個工件屬于哪個優先級);
步驟4:若某一優先級的工件數量不為空,則執行改進同級排產算法;否則優先級+1,其改進的同級排產算法步驟如下:
步驟4.1選擇最初最優解:按照改進布谷鳥搜索算法選擇最初最優解;
步驟4.2判斷當前最優解是否滿足試裝條件,若滿足,則執行試裝操作;否則轉步驟4.3;
步驟4.3是否有空間放置該工件,是轉步驟4.4,否則轉步驟4.1;
步驟4.4判斷當前所選工件(當前最優解)即將執行的工序是否滿足資源充足的條件,若滿足,轉步驟4.5,否則轉步驟4.1;
步驟4.5確定最優解,輸出最優解,執行加工操作;
步驟4.6循環,直到滿足終止條件。
本發明的有益效果是:
1、本算法不僅解決了資源合理利用調度問題,還考慮了訂單周期的約束條件,使算法解更加精確、具有實用性。
2、本算法解決了實際生產過程中存在的正在生產中的工件庫存(空位放置)問題,直接判斷是否有空間可以容納工件,避免放置工件的空位被占滿,從而保證工件加工順序不被打亂,各工件按正常流程進行加工,算法精確度高。
3、給出了復雜的工件試裝的解決辦法,高效實用。
附圖說明
圖1表示該改進的同級排產算法流程圖
圖2表示該算法的框架示意圖
圖3表示改進布谷鳥搜索算法的基本流程圖
圖4表示試裝過程實施例
圖5表示復雜的工件組合問題實施例
具體實施方式:
以下結合附圖1到5,對本發明詳細描述。
一、所述實際生產過程中試裝過程結合圖4實施例,描述如下:若干個小工價試裝成一個比較大的工價,這個大工件才進行它的工序加工,當加工到一定程度(沒有完成它的所有工序),需要把它拆開,它的小零部件工件繼續回去加工該工價還沒加工的工序,待達到一定條件以后,又組裝工價,然后繼續加工該工件所需后續工序。依次道理循環操作,直到滿足終止條件。其實施例結合圖4如下:工件3由工件1和工價2組裝而成,工件1有5個工序需要加工,工價2有9個工序需要加工。首先加工工件1到第5個工序,加工工件2到第4個工序,把工件1和工件2組裝起來(此過程在機械生產過程中稱為試裝)得到工件3;然后加工工件3到第2個工序,拆分工件3;接下來加工工件1的第6,第7個工序,加工工件2的第5,第6,第7個工序,完成了以后,又把工件1和工件2組裝起來得到工件3;然后加工工件3的第3,第4,第5道工序,完成了以后,拆分;工件1所有工序已經完成,這時加工工件2的第8,第9道工序,完成了以后,把工件1和工件組裝起來得到工件3。這時整個加工過程完成。
二、所述復雜的工件組合問題結合圖5實施例,描述如下:實際生產過程中,存在多個部件組合而成新的部件,這個新的部件1又可能還會跟其他工件組合成新的部件2,新的部件2又可能需要加工,再跟新的部件3組裝成一個工件,如此循環。
三、所述步驟1的具體描述如下:采用基于工序的編碼規則編碼,即染色體由w×n×m個基因組成,他們表示一個工序的排列,在這個工序排列中每個工件號最多出現m次,其染色體是由一個二維空間點(x,y)表示,即第x個訂單的第y個工件。例如,3×4×3(訂單×階數×工件×機器)的實例,染色體序列為(1,1)(1,2)(2,1)(1,1)(3,1)(3,1)(3,3)(3,2)(1,2)(1,2)(1,1)(1,4)。那么,它對應的工件加工序列為:
(J1,1,1,J1,2,1,J2,1,1,J1,1,2,J3,1,1,J3,1,2,J3,3,1,J3,2,1,J1,2,1,J1,2,2,J1,1,3,J1,4,1)
其中,Jti,j表示第t個訂單的第i個工件的第j道工序,j表示工件i出現的次數。因此,上面例子的染色體序列表達的意思是先加工順序為:第1個訂單的第1個工件的第1道工序,加工第1個訂單第2個工件的第1道工序,在加工第2個訂單第1個工件的第1道工序,加工第1個訂單第1個工件的第2道工序,以此類推,最后加工第1個訂單第4個工件的第1道工序。因此在解碼時就可以按照工件的出現順序轉化為一個調度方案。
二、所述步驟4.2試裝操作的執行具體如下:
執行試裝,如果試裝成功,需要返回加工后續工序,直接返回到需要加工的后續加工工序點;如果試裝不成功,則由人工判斷,返回需要加工的工序點進行加工;如果試裝成功,試裝組合而成的工件需要跟其他工件試裝,就試裝,直到滿足拆分條件再拆分進行后續加工。
三、所述步驟4.3是否有空間放置工件的判斷方法:
作出假設條件:假設每個訂單沒有延期取貨的情況;
具體步驟:
步驟4.3.1:初始化成品庫存容量C;
步驟4.3.2:計算工件平均體積:
步驟4.3.3:每排出一個工件,調出它的體積Vi。
步驟4.3.4:設置滿庫存警報條件:如果滿足下式,則發出庫存已滿
警報:其中k是目前庫存工件的數量。
四、所述步驟4.4判斷出工件所需資源是否充足的判定規則如下:
設置資源庫存池:
判定規則:
If(庫存池存在所需設備&&庫存該設備數量>=所需該設備數量&&庫存池存在所需工具&&庫存該工具數量>=所需該工具數量&&庫存池存在所需工種工人&&庫存該工人數量>=所需該工人數量)滿足資源充足條件;
Else不滿足資源充足條件。
五、所述步驟4.1改進的布谷鳥搜索算法:
步驟1:初始化算法基本參數:設置鳥窩個數(工件數量)n,宿主發現外來鳥蛋的概率Pa(作業搶占概率),以及最大迭代次數MaxT或搜索精度ε。
步驟2:初始化鳥窩位置(工件加工完成時間):根據加工時間長短呈上升趨勢排列。
步驟3:計算目標函數值:按照編碼規則將鳥窩位置(完成時間)轉換為工序排列,計算各鳥窩位置對應的目標函數值,并獲得當前最優鳥窩位置。具體實現為:
目標函數:
f(T)=min max1≤o≤w{max1≤k≤m{max1≤i≤nToik}} (1)
約束條件:
Toik-poik+M(1-aoihk)≥Toih
(o=1,2,...,w;i=1,2,...,n;h,k=1,2,...,m)
(2)
Tojk-Toik+M(1-xoijk)≥poik
(i,j=1,2,...,n;o=1,2,...,w;k=1,2,...,m)
(3)
Toik≥0(o=1,2,...,w;i=1,2,...,n;k=1,2,...,m)
(4)
xoijk=0或1(i,j=1,2,...,n;o=1,2,...,w;k=1,2,...,m)
(5)
其中,式(1)表示目標函數,即完成時間(Makespan);式(2)表示工藝約束條件決定的每個工件的操作的先后順序;式(3)表示加工每個工件的每臺機器的先后順序;式(4)表示完工時間變量約束條件;式(5)表示變量可能的取值大小。上述公式中所涉及的符號定義含義如下:Toik和poik分別為第o個訂單(或階數)中的第i個工件在機器k上的完成時間點和加工時間長度;M是一個足夠大的整數;aoihk和xoijk分別為指示系數和指示變量,其含義為:
式(6)表示第o個訂單的所有工件最大完成時間小于訂單周期To的時間約束。
步驟4:更新鳥窩位置:開始迭代,保留上代最優鳥窩位置不變,更新鳥窩位置(即全局搜索),從而隨機產生下一代鳥窩,并評估位置更新后每個鳥窩的目標函數值,記錄當前最優鳥窩位置。具體實施方案如下數學公式所示:
其中,表示第i只布谷鳥在第t代的鳥窩位置(在車間調度問題中用Coik表示),α是步長大小參數,一般取α=0.1。參數S是隨機游動的步長,計算公式如下:
S=u+α·σ
(10)
其中,
在局部搜索時對每一鳥窩位置按條件進行更新:用一個隨機數Ra作為鳥窩主人發現外來鳥蛋的概率并與Pa進行比較,若Ra>Pa,則隨機改變鳥窩位置,否則保持原來位置不變,并計算位置移動后每個鳥窩的目標函數值,記錄當前最優鳥窩位置。用如下0-1規劃模型表示:
步驟5:更新最優函數值:比較本次迭代和上一次迭代鳥窩位置的最優值,如果新的最優值小于原最優值,則把新的最優值賦予當前最優鳥窩位置的目標函數值。
步驟6:當到達最大搜索次數或滿足搜索精度時轉入步驟7,否則,轉3進行下一次搜索。
步驟7:輸出最優調度值和對應的調度方案(染色體序列)。
上述本發明的實施例只是為了解釋本發明內容,并不限定本發明的保護范圍,其保護范圍由權利要求書的內容確定。