本發(fā)明涉及作業(yè)車(chē)間調(diào)度領(lǐng)域,具體地涉及用算法求解作業(yè)車(chē)間調(diào)度問(wèn)題。
背景技術(shù):
:作業(yè)車(chē)間調(diào)度問(wèn)題(Job-ShopSchedulingProblem,JSP)是制造執(zhí)行系統(tǒng)研究的核心和重點(diǎn)之一,它的研究不僅具有重大的現(xiàn)實(shí)意義,而且具有深遠(yuǎn)的理論意義。JSP就是根據(jù)產(chǎn)品制造需求合理分配資源,進(jìn)而達(dá)到合理利用產(chǎn)品制造資源、提高企業(yè)經(jīng)濟(jì)效益的目的。JSP是產(chǎn)品制造行業(yè)中共存的問(wèn)題,它與計(jì)算機(jī)集成制造系統(tǒng)(ComputerIntegratedManufacturingSystems,CIMS)的工廠(chǎng)管理、產(chǎn)品制造層次緊密相關(guān),是CIMS領(lǐng)域中研究的重要課題。JSP是一個(gè)典型的NP-hard問(wèn)題,它的研究必然會(huì)對(duì)NP問(wèn)題的研究起到有意義的影響。在過(guò)去的幾十年,各種算法被應(yīng)用來(lái)解決作業(yè)車(chē)間調(diào)度問(wèn)題。傳統(tǒng)的,一般都采用最優(yōu)化方法和近似方法來(lái)解決作業(yè)車(chē)間調(diào)度方案的自動(dòng)生成問(wèn)題。最優(yōu)化方法包括枚舉法和數(shù)學(xué)規(guī)劃技術(shù)。近似法通常使用分支定界法、優(yōu)先規(guī)則、啟發(fā)式方法、迭代局部搜索算法和進(jìn)化算法。粒子群算法(PSO)是一種智能算法,該算法最初是受到鳥(niǎo)群活動(dòng)規(guī)律的啟發(fā),利用群體對(duì)個(gè)體信息的共享使整個(gè)群體的運(yùn)動(dòng)在問(wèn)題求解空間中產(chǎn)生從無(wú)序到有序的演化過(guò)程,從而獲得最優(yōu)解。但是,粒子群算法對(duì)離散的優(yōu)化問(wèn)題處理不佳,且容易陷入局部最優(yōu)。技術(shù)實(shí)現(xiàn)要素:針對(duì)現(xiàn)有技術(shù)中存在的上述不足,本發(fā)明要解決的技術(shù)問(wèn)題是提供一種基于均值偏移算法和禁忌搜索算法的改進(jìn)粒子群算法。本發(fā)明的目的則是克服現(xiàn)有技術(shù)中存在的:粒子群算法容易陷入局部最優(yōu);粒子群算法僅對(duì)當(dāng)前粒子群信息進(jìn)行處理,沒(méi)有處理一些粒子信息變動(dòng)的異常情況;粒子群算法僅對(duì)當(dāng)前最優(yōu)解進(jìn)行擾動(dòng),縮小了搜索范圍的問(wèn)題。本發(fā)明為實(shí)現(xiàn)上述目的所采用的技術(shù)方案是:一種改進(jìn)的粒子群算法求解作業(yè)車(chē)間調(diào)度問(wèn)題,該算法的步驟如下:步驟1:初始化算法參數(shù):包括PSO粒子的數(shù)目、位置和速度等信息。步驟2:獲得初始最優(yōu)解:采用加權(quán)法平均法設(shè)置初始粒子的優(yōu)先級(jí),得到初始最優(yōu)解。步驟2.1:給每個(gè)粒子編號(hào);步驟2.2:統(tǒng)計(jì)所有粒子的速度的和,用每個(gè)粒子的速度除速度和,得到每個(gè)粒子的優(yōu)先權(quán)值;步驟2.3:按照優(yōu)先權(quán)大小決定粒子的先后順序,優(yōu)先權(quán)值大的工件優(yōu)先執(zhí)行。步驟3:獲得傳統(tǒng)當(dāng)前最優(yōu)解:用粒子群算法更新粒子信息,得到當(dāng)前傳統(tǒng)粒子群算法當(dāng)前最優(yōu)解。步驟4:預(yù)測(cè)當(dāng)前最優(yōu)解:加入一種改進(jìn)的均值偏移算法,用均值偏移算法在初始最優(yōu)解的基礎(chǔ)上對(duì)每個(gè)粒子的位置和整體位置進(jìn)行預(yù)測(cè)。步驟4.1:初始化粒子位置信息。步驟4.2:確定當(dāng)前粒子群中心。步驟4.3:計(jì)算粒子群權(quán)值矩陣。步驟4.4:計(jì)算粒子權(quán)值。步驟4.5:用高低點(diǎn)法預(yù)測(cè)下一步粒子的位置和速度。步驟4.6:計(jì)算相似函數(shù)。步驟4.7:計(jì)算均值偏移向量,由均值偏移向量確定粒子群最優(yōu)預(yù)測(cè)位置和速度。步驟4.8:循環(huán)執(zhí)行步驟4.2到步驟4.7,直到滿(mǎn)足退出條件。步驟5:初選當(dāng)前最優(yōu)解:用粒子群算法的評(píng)判標(biāo)準(zhǔn),將預(yù)測(cè)的最優(yōu)位置和速度與群體以往最好位置和速度做比較,將更好的位置信息作為當(dāng)前最好的位置信息。步驟6:確定當(dāng)前最優(yōu)解:執(zhí)行禁忌搜索算法,找到當(dāng)前最優(yōu)解。步驟6.1:給定一個(gè)當(dāng)前解和一種領(lǐng)域結(jié)構(gòu),然后在當(dāng)前領(lǐng)域結(jié)構(gòu)內(nèi)確定若干候選解。步驟6.2:若其最佳候選解對(duì)應(yīng)的目標(biāo)函數(shù)優(yōu)于已保留的最好解,則忽視其禁忌特性,用其代表當(dāng)前解和最好解,并將相應(yīng)的特性加入到禁忌表中,同時(shí)對(duì)禁忌表進(jìn)行修改;步驟6.3:若不存在上述候選解,則在候選解中選擇非禁忌的最好解作為新的當(dāng)前解,而無(wú)視它與當(dāng)前解的優(yōu)劣,同時(shí)將解的響應(yīng)特性加入禁忌表中,同時(shí)修改禁忌表;步驟6.4:循環(huán)步驟6.1到6.3,直到滿(mǎn)足停止準(zhǔn)則;步驟7:循環(huán)執(zhí)行步驟2到步驟6,直到達(dá)到停止條件。本發(fā)明的有益效果是:1.利用加權(quán)值的方式設(shè)置粒子優(yōu)先級(jí),避免了隨機(jī)產(chǎn)生初始解帶來(lái)的不確定性推理,減少盲目搜索時(shí)間。2.對(duì)均值偏移算法做一點(diǎn)改進(jìn),然后利用一種改進(jìn)的均值偏移算法對(duì)粒子位置信息預(yù)測(cè),降低了部分異常變動(dòng)粒子對(duì)整個(gè)算法的干擾。3.增加禁忌搜索算法避免搜索陷入局部最優(yōu);附圖說(shuō)明圖1為本發(fā)明的算法基本流程圖。圖2為改進(jìn)的均值偏移算法流程圖。圖3為禁忌搜索算法流程圖。圖4為基本粒子群算法流程圖。具體實(shí)施方式由于傳統(tǒng)的粒子群算法搜索速度快,效率高,算法簡(jiǎn)單,適合實(shí)時(shí)處理。但是對(duì)離散的優(yōu)化問(wèn)題處理不佳,容易陷入局部最優(yōu)。所以本算法為了解決這些問(wèn)題,首先,在傳統(tǒng)PSO隨機(jī)產(chǎn)生初始解的方法上進(jìn)行了改進(jìn):引進(jìn)加權(quán)平均法設(shè)置粒子的初始解;其次,對(duì)均值偏移算法做改進(jìn):運(yùn)用改進(jìn)的均值偏移算法對(duì)初始解進(jìn)行下一步狀態(tài)的預(yù)測(cè),將預(yù)測(cè)解與當(dāng)前最優(yōu)解做比較,將其中更好的解作為當(dāng)前最優(yōu)解,解決了粒子群算法中沒(méi)有考慮到的粒子信息異常變動(dòng)的情況;再次,引入禁忌搜索算法對(duì)粒子信息進(jìn)行進(jìn)一步更新,正好解決了粒子群算法容易陷入局部最優(yōu)的問(wèn)題。為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖1到4對(duì)本發(fā)明進(jìn)一步詳細(xì)說(shuō)明。一、作業(yè)車(chē)間調(diào)度一個(gè)JSP可以描述如下:假設(shè)存在n個(gè)作業(yè)需要在m臺(tái)機(jī)器上調(diào)度。首先確定每個(gè)工件的具體操作和給出每個(gè)序列的數(shù)據(jù)。本發(fā)明預(yù)先建立了一些假設(shè):(1)每個(gè)作業(yè)的處理序列已被確定;(2)各機(jī)器至多在同一時(shí)刻處理一個(gè)作業(yè),并且一旦開(kāi)始工作就不能被終止(3)作業(yè)相互獨(dú)立,即每個(gè)作業(yè)可以以任何順序進(jìn)行處理;(4)所有作業(yè)都是在時(shí)刻0開(kāi)始等待被處理。為了說(shuō)明本發(fā)明提出的解決JSP問(wèn)題的算法,設(shè)計(jì)了以下數(shù)學(xué)模型來(lái)展現(xiàn)其具體實(shí)現(xiàn)過(guò)程(表1為JSP模型符號(hào)定義):n作業(yè)數(shù)量m機(jī)器數(shù)量j作業(yè)索引p作業(yè)操作索引k機(jī)器索引l機(jī)器操作索引Mk第k臺(tái)機(jī)器Nj第j個(gè)作業(yè)Ojpkl第j個(gè)作業(yè)操作p/第k臺(tái)機(jī)器操作lSjpklOjpkl開(kāi)始時(shí)間CjpklOjpkl完成時(shí)間PjpklOjpkl處理時(shí)間Boperation相鄰操作緩沖時(shí)間表1(1)建立0-1規(guī)劃模型:(2)約束函數(shù):Sj(p+1)k(l+1)=Max(Cjpk'l',Cj'p'kl)(3)Pjpkl=Cjpkl-Sjpkl(4)Pjpkl≥0(5)Cjpkl≥Sjpkl(6)Sj(p+1)kl-Cjpk'l'=BjBj∈(0,∞)(7)Sjpk(l+1)-Cj'p'kl=BkBk∈(0,∞)(8)目標(biāo)函數(shù):MakeSpan=Min(Max(Cjpkl))(9)約束(1)和(2)總結(jié)了在所有情況下同一時(shí)刻機(jī)器數(shù)量以及處理作業(yè)滿(mǎn)足的限制。約束(3)意味著作業(yè)開(kāi)始操作之前有可能存在等待時(shí)間。在這種情況下,機(jī)器Mk上Nj的開(kāi)始時(shí)間不超過(guò)作業(yè)Nj的完成時(shí)間。約束(4)、(5)和(6)確保處理時(shí)間的準(zhǔn)確度。約束(7)和(8)表明,同一臺(tái)機(jī)器上兩個(gè)操作之間的等待時(shí)間可以是任何長(zhǎng)度。二、算法的關(guān)鍵步驟說(shuō)明假設(shè)在一個(gè)D維搜索空間和N個(gè)粒子組成的粒子群中尋找空間最優(yōu)解。每個(gè)粒子都有其獨(dú)特的速度和位置信息。在第t次迭代中,粒子的速度記為粒子的位置記為局部最佳位置和全局最佳位置分別記為和算法具體流程如圖1所示,結(jié)合圖1,以下是算法的具體實(shí)現(xiàn)過(guò)程和相應(yīng)算法模型。1、所述步驟2獲得初始最優(yōu)解:采用加權(quán)法平均法設(shè)置初始粒子的優(yōu)先級(jí),得到初始最優(yōu)解,加權(quán)平均法模型如下:(1)給每個(gè)粒子隨機(jī)編號(hào)。(2)計(jì)算粒子初始解的優(yōu)先級(jí):(3)獲得初始最優(yōu)解:按照優(yōu)先級(jí)大小進(jìn)行排序,然后按排好序的序列先后順序執(zhí)行作業(yè)。2、所述步驟3獲得傳統(tǒng)當(dāng)前最優(yōu)解,結(jié)合圖4,描述如下:在每一步中粒子根據(jù)下述公式更新:t代表迭代數(shù)量,ω,c1,c2是常量,影響最優(yōu)解的質(zhì)量和速度。r1,r2是(0,1)之間均勻分布的隨機(jī)數(shù)。終止迭代的標(biāo)準(zhǔn)由是否到達(dá)最大迭代次數(shù)或設(shè)計(jì)的Pg適應(yīng)度值決定。3、所述步驟4改進(jìn)的均值偏移算法,結(jié)合圖2,其各步驟的具體計(jì)算方式如下:(1)粒子的速度記為粒子的位置記為預(yù)測(cè)局部最佳位置和預(yù)測(cè)全局最佳位置分別記為和(2)確定當(dāng)前中心粒子:規(guī)定速度最密點(diǎn)為速度中心粒子,位置最密點(diǎn)為位置中心粒子,速度中心和位置中心分別記為和(3)計(jì)算權(quán)值矩陣:通過(guò)迭代的方式計(jì)算每個(gè)粒子到中心點(diǎn)的距離則權(quán)值函數(shù)wij=1-dij/h,其中,h=tmax,tmax為時(shí)間期限。歸一化系數(shù)(4)計(jì)算粒子權(quán)值:粒子權(quán)值直方圖是為了統(tǒng)計(jì)每個(gè)粒子點(diǎn)占的權(quán)重。具體計(jì)算過(guò)程如下:首先將車(chē)間生產(chǎn)調(diào)度空間抽象為RGB顏色空間,將RGB顏色空間量化為16×16×16的區(qū)間bins,然后通過(guò)式子T=256×r+16×g+b計(jì)算每個(gè)粒子紅色、綠色、藍(lán)色分量所占比重,再次由式子計(jì)算直方圖統(tǒng)計(jì)中粒子總的權(quán)重。最后將權(quán)重值歸一化既可以得到目標(biāo)權(quán)值。(5)利用高低點(diǎn)法來(lái)預(yù)測(cè)粒子速度和位置的走向:計(jì)算公式為:其中,b代表上一次迭代得到的位置信息參數(shù)依一定比率位置信息參數(shù)變動(dòng)的部分,即:(6)用上述(2)的方法確定預(yù)測(cè)粒子群中心點(diǎn)(7)計(jì)算相似函數(shù)值:本發(fā)明使用hattachyarya系數(shù)作為相似性函數(shù),其定義為:它的值在0—1之間。兩個(gè)模型的相似度跟的值成正比,即的值越大,表示兩個(gè)模型越相似,在JSP中則表示預(yù)測(cè)值與實(shí)際值越相近。(8)均值偏移向量的計(jì)算:目標(biāo)定位,就是尋找使得相似度函數(shù)值達(dá)到最大的點(diǎn)。從這前一幀的中心位置y0開(kāi)始尋找最優(yōu)匹配的目標(biāo)。相似度函數(shù)為:其中,令由此,可以得到:Mh,G(v)是目標(biāo)中心從起始點(diǎn)v0向v移動(dòng)的向量。(9)比較由高低點(diǎn)法和均值偏移向量預(yù)測(cè)出來(lái)的值,將更好的那組值作為最優(yōu)預(yù)測(cè)值。4、所述步驟5將預(yù)測(cè)的最優(yōu)位置和速度與群體以往最好位置和速度做比較,將更好的位置信息作為當(dāng)前最好的位置信息,具體表述為:如果預(yù)測(cè)的最優(yōu)解比原來(lái)的最優(yōu)解更好,則把預(yù)測(cè)的最優(yōu)解當(dāng)作最優(yōu)解;否則,最優(yōu)解不變。上述結(jié)合附圖只是對(duì)該算法的描述,并不因此限定本發(fā)明,本發(fā)明的保護(hù)范圍依據(jù)權(quán)利要求書(shū)的內(nèi)容確定。當(dāng)前第1頁(yè)1 2 3