亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種求解并行機(jī)作業(yè)車(chē)間調(diào)度的混合啟發(fā)式轉(zhuǎn)移瓶頸算法的制作方法

文檔序號(hào):11063792閱讀:2789來(lái)源:國(guó)知局
一種求解并行機(jī)作業(yè)車(chē)間調(diào)度的混合啟發(fā)式轉(zhuǎn)移瓶頸算法的制造方法與工藝

本發(fā)明涉及計(jì)算機(jī)執(zhí)行制造系統(tǒng)領(lǐng)域,具體來(lái)說(shuō)就是通過(guò)算法解決作業(yè)車(chē)間

調(diào)度的組合優(yōu)化問(wèn)題。



背景技術(shù):

調(diào)度指給任務(wù)分配有限的資源,以優(yōu)化目標(biāo)函數(shù)。在調(diào)度領(lǐng)域,作業(yè)車(chē)間調(diào)度問(wèn)題(Job-Shop Scheduling Problem,JSP)被認(rèn)為是最難的組合優(yōu)化問(wèn)題之一,是復(fù)雜的設(shè)備制造系統(tǒng)和柔性制造系統(tǒng)領(lǐng)域中研究的重要課題。解決這個(gè)問(wèn)題具有重要意義,因?yàn)榧词垢纳埔稽c(diǎn)效率也可能帶來(lái)顯著經(jīng)濟(jì)回報(bào)。

JSP是NP-hard問(wèn)題。JSP的高度復(fù)雜性使得它難以在大多數(shù)情況下用合理時(shí)間找到最優(yōu)解。許多啟發(fā)式算法被提出用于解決JSP,包括基于優(yōu)先權(quán)調(diào)度規(guī)則的算法、局部搜索算法、移動(dòng)瓶頸算法、模擬退火算法和禁忌搜索算法。此外,仿生技術(shù)如粒子群算法、人工蜂群算法,也被廣泛用于尋找調(diào)度問(wèn)題的最少總完工時(shí)間。

各種針對(duì)JSP的重要方法都有其局限性:(1)轉(zhuǎn)移瓶頸算法:可能導(dǎo)致不可行解(2)禁忌搜索算法:不同問(wèn)題規(guī)模,單一搜索策略不會(huì)產(chǎn)生最優(yōu)解;(3)針對(duì)多目標(biāo)的柔性作業(yè)車(chē)間調(diào)度問(wèn)題的粒子群算法:對(duì)于大數(shù)據(jù)集,不產(chǎn)生最優(yōu)解;(4)并行化技術(shù)解決作業(yè)車(chē)間調(diào)度問(wèn)題:需實(shí)現(xiàn)令牌方法,如果令牌丟失或令牌生成失敗,則算法將失效;(5)多GPU集群執(zhí)行分布式禁忌搜索算法:僅適用于柔性作業(yè)車(chē)間調(diào)度問(wèn)題,不適用于并行機(jī)作業(yè)車(chē)間調(diào)度問(wèn)題。



技術(shù)實(shí)現(xiàn)要素:

針對(duì)現(xiàn)有技術(shù)中存在的上述不足之處,本發(fā)明結(jié)合轉(zhuǎn)移瓶頸算法(Shifting Bottleneck Procedure,SBP)和啟發(fā)式禁忌搜索方法,提出了一種混合轉(zhuǎn)移瓶頸算法(Hybrid Shifting Bottleneck Procedure,HSBP),并進(jìn)一步利用GPU實(shí)現(xiàn)了并行禁忌搜索算法。減少了找到最優(yōu)解的計(jì)算時(shí)間。

本發(fā)明的目的則是克服現(xiàn)有技術(shù)中存在的:轉(zhuǎn)移瓶頸算法可能導(dǎo)致不可行解;搜索空間將產(chǎn)生近似解,而不是精確解;隨著問(wèn)題規(guī)模的擴(kuò)大,搜索時(shí)間顯著提高的問(wèn)題。

本發(fā)明為實(shí)現(xiàn)上述目的所采用的技術(shù)方案是:一種求解并行機(jī)作業(yè)車(chē)間調(diào)度的混合啟發(fā)式轉(zhuǎn)移瓶頸算法,該算法包括以下步驟:

步驟1:設(shè)置已排序的機(jī)器集初始化JSP,建立相應(yīng)的PDG,PDG包含所有的合取弧,不包含析取弧

步驟2:對(duì)所有未排序的機(jī)器使用拓?fù)渑判蛩惴?分解并行機(jī)JSP的PDG為一組SMS或者PMS子問(wèn)題。

步驟3:求解每個(gè)SMS和PMS子問(wèn)題,使用改進(jìn)的Carlier算法求解SMS問(wèn)題,使用Jackson算法求解PMS子問(wèn)題。

步驟4:確定瓶頸機(jī)k,根據(jù)步驟3的結(jié)果確定瓶頸機(jī)k上的工件工序。更新M0=M0∪{k},更新PDG。

步驟5:對(duì)當(dāng)前的PDG重新排序和優(yōu)化。重新調(diào)度步驟四的瓶頸機(jī)k,使用基于GPU的禁忌搜索算法對(duì)PDG進(jìn)行優(yōu)化。

步驟6:重復(fù)步驟2至步驟5直到所有機(jī)器都被調(diào)度為止。

本發(fā)明的有益效果是:1.轉(zhuǎn)移瓶頸算法可能導(dǎo)致不可行解,而混合轉(zhuǎn)移瓶頸算法克服了這一缺點(diǎn);2.避免了搜索結(jié)果不穩(wěn)定,能找到最優(yōu)解;3.減少了找到最優(yōu)解的計(jì)算時(shí)間。且隨著JSP問(wèn)題規(guī)模的擴(kuò)大,加速效果更明顯。

附圖說(shuō)明

圖1:表示該混合算法詳細(xì)流程圖。

圖2:表示一個(gè)4*3的JSP實(shí)例的合取弧圖。

圖3:表示一個(gè)4*3JSP實(shí)例的DG模型圖。

圖4:表示該混合算法中禁忌搜索算法的框架圖。

具體實(shí)施方式

為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下,結(jié)合附圖對(duì)本發(fā)明進(jìn)行詳細(xì)說(shuō)明。

一、JSP調(diào)度問(wèn)題

JSP是一個(gè)機(jī)器調(diào)度和優(yōu)化問(wèn)題。JSP的特征:包括N個(gè)工件M臺(tái)機(jī)器的有限集;每個(gè)工件包含一條工序鏈;每臺(tái)機(jī)器同一時(shí)刻最多處理一個(gè)工序;每個(gè)工序需要在給定機(jī)器上不間斷處理一段時(shí)間;目標(biāo)是找到加工總時(shí)間最短的調(diào)度方案。

析取圖(Disjunctive Graph,DG)模型可用于表示JSP,圖G={V,C∪D}表示的一個(gè)示例如圖2所示。DG模型的描述:DG模型中有n個(gè)工件,m臺(tái)同樣類型的機(jī)器;從1到N標(biāo)記節(jié)點(diǎn),N表示DG中總工序數(shù)量;弧(i,j)鏈接節(jié)點(diǎn)i和節(jié)點(diǎn)j,表示工序i必須在工序j之前加工;每條弧對(duì)應(yīng)著工序i的加工時(shí)間。在析取圖中,V表示工件的工序,C指工序之間加工的先后約束的合取弧集,D指每對(duì)工序必須在相同機(jī)器上加工的析取弧集。

JSP實(shí)例(n=3,m=4)的DG模型圖,結(jié)合圖3。其中,析取弧用虛線表示,合取弧用實(shí)線表示。虛線表示相同機(jī)器上工件可能的順序,而實(shí)線表示每個(gè)工件的工序順序。析取圖中從虛擬開(kāi)始節(jié)點(diǎn)到虛擬終止節(jié)點(diǎn)的最長(zhǎng)路徑長(zhǎng)度等于調(diào)度的總完工時(shí)間。

二、并行機(jī)作業(yè)車(chē)間調(diào)度的框架

轉(zhuǎn)移瓶頸算法(Shifting Bottleneck Procedure,SBP)是解決JSP的最佳方法之一,但原始的SBP不能處理并行機(jī)。通過(guò)嵌入元啟發(fā)式思想,SBP將更高效。首先,建立一個(gè)局部析取圖(partial disjunctive graph,PDG),PDG中定向析取弧鏈接排好序的機(jī)器,無(wú)向析取弧鏈接未排好序的機(jī)器。針對(duì)給定的PDG,并行機(jī)作業(yè)車(chē)間調(diào)度可以分解為一組不同釋放時(shí)間的單機(jī)調(diào)度SMS(single-machine scheduling)或者并行機(jī)調(diào)度PMS(parallel-machine scheduling)子問(wèn)題。分解后生成的SMS和PMS子問(wèn)題的數(shù)量等于PDG中未排序的單臺(tái)機(jī)器和并行機(jī)的數(shù)量。

三、本發(fā)明對(duì)原有SBP進(jìn)行了四項(xiàng)改進(jìn)來(lái)解決并行機(jī)作業(yè)車(chē)間調(diào)度問(wèn)題:

(1)拓?fù)渑判蛩惴ǎ悍殖蒘MS和PMS子問(wèn)題。

(2)Carlier算法:求解SMS子問(wèn)題

(3)Jackson算法:求解PMS子問(wèn)題

(4)啟發(fā)式算法:并行機(jī)禁忌搜索

四、所述的拓?fù)渑判蛩惴ㄊ怯脕?lái)分解并行機(jī)作業(yè)車(chē)間調(diào)度為一組SMS或者PMS子問(wèn)題,其步驟如下:拓?fù)渑判蛩惴ú襟E:

(1)對(duì)PDG進(jìn)行拓?fù)渑判?,并得到拓?fù)湫蛄?/p>

(2)確定序列中的每一工序的釋放和交貨時(shí)間

(3)對(duì)涉及的機(jī)器分組工序

五、所述的Carlier算法是解決步驟2中拓?fù)渑判蛩惴ǖ玫降腟MS子問(wèn)題,它在可選的工件上充分利用Schrage算法,首先加工具有最高交貨時(shí)間的工件。

本發(fā)明對(duì)Schrage算法的改進(jìn):考慮滿足一定條件的長(zhǎng)尾工件。設(shè)ri為釋放時(shí)間,qi為交貨時(shí)間,pi為處理時(shí)間:

在Schrage算法中,(1)如果ri<rj且qi>qj,工件i先于工件j加工在邏輯上是正確的。(2)如果ri<rj且qi<qj,則工件i和工件j誰(shuí)先加工存在歧義,事實(shí)證明在這種情況下,工件j先于工件i加工的必要條件是qj-qi>m且pi>m,其中m=rj-t,t=max{c,ri},c為工件i加工之前的工件的完工時(shí)間。

本發(fā)明改進(jìn)的Carlier算法其步驟為:

(1)對(duì)當(dāng)前SMS實(shí)例應(yīng)用Schrage算法,保存Schrage調(diào)度得到的結(jié)果;

(2)如果存在干擾工件w滿足qw<qc,則干擾工件w在關(guān)鍵集之后加工,然后返回本步驟1;

(3)根據(jù)保存的結(jié)果,選擇最小總完工時(shí)間的最佳Schrage調(diào)度。

六、所述Jackson算法是解決并行機(jī)調(diào)度PMS子問(wèn)題。一個(gè)PMS問(wèn)題定義為一組n個(gè)獨(dú)立的單工序工件在機(jī)器的l個(gè)并行單元上調(diào)度,工件的每一工序可以在任意可選的單元調(diào)度。目標(biāo)是得到每一工件的完工交貨時(shí)間最小的調(diào)度。

本發(fā)明的Jackson算法的步驟為:

(1)在所有未被調(diào)度的工件上選擇具有最高交貨時(shí)間的工件A;

(2)調(diào)度工件A到具有最小可用時(shí)間的第l個(gè)并行機(jī)上。

七、所述的基于GPU的禁忌搜索算法,結(jié)合圖4,是一種并行元啟發(fā)式算法,本發(fā)明為了用更少的時(shí)間得到最優(yōu)解,用并行編程實(shí)現(xiàn)了禁忌搜索算法,多個(gè)CPU通過(guò)互相發(fā)送和接收解的策略來(lái)協(xié)作。這種方法增加了找到全局最優(yōu)值的概率,使多個(gè)禁忌搜索算法在多個(gè)CPU上同時(shí)執(zhí)行,利用GPU的多核架構(gòu),這些搜索算法的計(jì)算速度將得到提高。

本發(fā)明基于GPU的禁忌搜索算法的步驟如下:一個(gè)agent首先運(yùn)行禁忌搜索算法,然后通過(guò)發(fā)送和接收解與其他agent進(jìn)行交互。每個(gè)agent都擁有一個(gè)精英集合,集合中的每個(gè)元素是一個(gè)高質(zhì)量的解,是當(dāng)前agent找到的最好的一些解。一個(gè)精英集合使agent能夠跟蹤高質(zhì)量的解,這些解要么是自己發(fā)現(xiàn)的,要么是在通信過(guò)程中從其他agent得到的。

上述結(jié)合附圖對(duì)本發(fā)明的實(shí)施例作了詳細(xì)描述,應(yīng)該理解上述只是示例性的,因此,本發(fā)明的保護(hù)范圍應(yīng)當(dāng)由所附的權(quán)利要求書(shū)的內(nèi)容確定。

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1