亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Job—shop調(diào)度求解的廣義蟻群算法

        2017-04-08 21:31:08張宏國宮雪
        哈爾濱理工大學學報 2017年1期

        張宏國 宮雪

        摘要:針對蟻群算法求解Job-shop調(diào)度問題,該算法考慮到利用析取圖來描述工件加工關系給算法帶來的復雜度,提出了一種廣義蟻群算法。在綜合考慮設備和工序關系約束的前提下,將信息素更新機制運用到求解Job-shop調(diào)度問題中,從而提高解的質(zhì)量。為了提高搜索效率,根據(jù)蟻群算法的狀態(tài)轉移規(guī)則,對算法中參數(shù)的選擇進行了詳細的研究,設計了信息素更新策略。仿真實驗結果表明,廣義蟻群算法得到的解更接近最優(yōu)解,該算法的收斂速度明顯高于其他算法的收斂速度。

        關鍵詞:Job-shop調(diào)度問題;廣義蟻群算法;信息素更新機制

        中圖分類號:TP391 文獻標志碼:A 文章編號:1007-2683(2017)01-0091-05

        0 引言

        現(xiàn)代制造業(yè)的市場競爭日益激烈,生產(chǎn)調(diào)度是現(xiàn)代制造業(yè)面臨的重要問題,它的解決有利于提高企業(yè)的生產(chǎn)效率與經(jīng)濟。Job-shop調(diào)度問題(Job-shop scheduling problem,JSP)是生產(chǎn)調(diào)度中最基本的組合優(yōu)化問題,在滿足工藝路線、交貨期與資源利用等約束條件下,合理安排工藝加工時間、先后順序及使用資源,可以減小生產(chǎn)周期,減少庫存,獲得產(chǎn)品時間或成本的優(yōu)化。因此Job-shop調(diào)度問題的優(yōu)化求解具有重要的理論價值和實際意義,是學術界與工程界共同關注的熱點。

        目前求解Job-shop調(diào)度問題的主要方法是建立智能優(yōu)化算法,以禁忌搜索、模擬退火、遺傳算法為代表。蟻群算法具有正反饋、較強的魯棒性、全局性、普遍性、優(yōu)良的分布式并行計算機機制,易于與其他方法相結合等諸多優(yōu)點。近年來,很多學者將蟻群算法逐漸地應用于Job-shop調(diào)度求解中。文提出了一種自適應蟻群算法(AACA),自適應地初始化信息素并限定其大小范圍以得到優(yōu)解。文提出了最大最小蟻群算法,對信息素進行限制防止算法陷入局部最優(yōu)。文提出了混合算法,將蟻群算法和遺傳算法相結合的ACSGA算法,充分利用它們的特性。

        但上述文獻都是采用傳統(tǒng)蟻群算法中析取圖的方式對工件加工關系進行描述的。雖然析取圖是用來描述路徑關系比較好的視圖形式,但是車間生產(chǎn)中各工件之間的加工關系不同于旅行商問題(TSP)中的路徑選擇。特別是對于加工規(guī)模較大的Job-shop調(diào)度問題,每增加一個機器,析取圖就會增加條邊,則形成的析取圖結構會十分復雜,使得算法的復雜度增加,收斂速度變慢,影響解的質(zhì)量。

        本文提出一種廣義蟻群算法,將其用于Job-shop調(diào)度求解中。該算法利用一次調(diào)度就是螞蟻的一次爬行的思想,擺脫傳統(tǒng)的析取圖方式,把信息素更新機制應用到Job-shop調(diào)度問題中,這樣能有效的簡化算法復雜度,提高算法的收斂速度,優(yōu)化解的質(zhì)量。將信息素機制合理的應用在每一道工序上,在滿足約束條件和解的合法性的前提下,越早完成加工的工序和同一工件優(yōu)先進行加工的工序上殘留的信息素濃度越高。

        1 Job-shop調(diào)度問題分析

        1.1 問題描述

        n個工件在m臺機器上加工,每個工件有m道工序,加工時間已知,要求總完工時間最小。針對Job-shop調(diào)度問題的具體約束條件如下:

        1)同一時刻同一臺機器只能加工一個工序;

        2)前一道工序加工完畢后才能加工下一道工序;

        3)每個工序在可用機器上的加工時間不同且已經(jīng)確定;

        4)允許工件在工序間等待,也允許機器在工件未到達前閑置;

        5)工序一旦開始,不允許中斷。

        1.2 問題建模

        關于Job-shop調(diào)度問題,作如下定義:1)n:工件數(shù)目;

        2)m:機器數(shù)目;

        3)工件集J={J1,J2,…,Jn},1≤i≤n;

        4)機器集M={M1,M2,…,Mm},1≤k≤m;

        5)工序集Oi={Oi,1,Oi,2,…,Oi,m},其中Oi,j表示工件i的第j道工序;

        6)Mi,j表示Oi,j占用的機器,Mi,j∈M;

        7)Ti,j表示第i個工件第j道工序的加工時間;

        8)Si,j表示第i個工件第j道工序的開始時間;

        9)Ci,j表示第i個工件第j道工序的完工時間,Ci,j=Si,j+Ti,j。

        因為工件完工要求所有工序加工完畢,并且每道工序開始加工時,它的緊前工序必須加工完畢,所以工件加工完畢的時間為各設備完工的最大時間值。因此在給定約束條件的前提下,調(diào)度的最短時間值是所求的結果,其數(shù)學描述為:

        (1)

        (2)

        (3)

        在上面式子中,式(1)表示目標函數(shù),調(diào)度的整體完工時間最短。式(2)表示對于同一工件i來說,工序j+1的開始加工時間,一定會大于其緊前工序j的開始加工時間與連續(xù)加工時間之和。式(3)表示對于同一設備來說,同一設備在同一時刻只能加工一道工序。

        2 Job-shop調(diào)度求解的廣義蟻群算法

        2.1 廣義蟻群算法的總體思想

        蟻群算法是一種基于反饋機制和并行機制的模擬進化算法,在大規(guī)模的調(diào)度問題中有其固有的優(yōu)勢,但也容易出現(xiàn)搜索時間過長導致局部優(yōu)解。傳統(tǒng)的蟻群算法用析取圖來求解JSP問題,析取圖被描述為一個有向圖,更直觀的展現(xiàn)便于分析。但對于規(guī)模大的JSP問題會加劇蟻群算法的缺陷,因需要優(yōu)化的問題規(guī)模變大,那么得到相應的解就會增加迭代次數(shù),增加了相應的計算時問,進而影響解的質(zhì)量和算法的收斂速度。

        廣義蟻群算法利用每一次的調(diào)度需要螞蟻爬行一次的思想,尋找的最優(yōu)路徑就是螞蟻爬行所走的最短路徑。運用廣義蟻群算法求解時,一只螞蟻從一個工件的第一道工序開始爬行,根據(jù)轉移狀態(tài)規(guī)則對可調(diào)度的工序進行選擇。將選擇的工序標記為已操作工序,計算概率繼續(xù)選擇接下來要調(diào)度的工序,直到每臺機器未調(diào)度的工序集為空為止,即完成一次調(diào)度。

        每次調(diào)度之后更新信息素,信息素的改變直接影響工序轉移概率的計算結果,因此信息素的更新要與工序的優(yōu)先級緊密聯(lián)系。針對蟻群算法的特點,對信息素更新機制進行改進,以便更快找到工序在各機器上加工的一組優(yōu)先序列。

        2.2 信息素更新機制

        1)狀態(tài)轉移規(guī)則

        螞蟻根據(jù)信息素的濃度和工序問的啟發(fā)式信息,在其可選尚未調(diào)度的集合中選擇接下來的目標工序。選擇工序的時候需要判斷各工序在機器上的加工概率,狀態(tài)轉移概率公式如下:

        (4)從式(4)可看出,狀態(tài)轉移概率主要根據(jù)t時刻工序i轉移到工序j上的信息素濃度τij(t)以及工序i到工序j的啟發(fā)式信息ηij(t)。其中,α和β是兩個參數(shù),分別表示信息素的影響力和啟發(fā)式信息的相對重要性,AS表示可選尚未調(diào)度的集合。

        2)信息素計算公式

        在求解Job-shop調(diào)度問題時,螞蟻在遍歷過程中留下信息素,路徑上的信息素濃度隨著螞蟻每次遍歷進行更新。信息素濃度的強弱引導著后面的螞蟻對工序的選擇,某個路徑上螞蟻遍歷的次數(shù)越多,信息素濃度越大,后來者選擇該路徑遍歷的概率就越大。當螞蟻所走的路徑越短即調(diào)度結果越優(yōu)時,該路徑的信息素濃度越大。

        信息素更新機制是工件加工排序中的重中之重,因此本文對信息素的更新公式進行優(yōu)化,會著重突出信息素的作用和影響,削弱啟發(fā)式信息的重要性。信息素濃度的變化受工序節(jié)點開始時間以及局部目標函數(shù)完成時間的影響,根據(jù)這一原則區(qū)分工序的優(yōu)先級,優(yōu)先安排信息素濃度大的工序。

        在一次遍歷工序中,螞蟻遍歷工序的完成時間越早,信息素濃度越大。其次,開始時間越早的工序,信息素濃度越大,越優(yōu)先安排。在傳統(tǒng)的信息素公式中,由于開始時間和完成時間都與信息素的大小有直接影響,所以在信息素濃度相同的情況下,確定不了工序的優(yōu)先順序。因此對計算信息素濃度的公式加以完善,這樣會更快得到較優(yōu)的加工序列。計算信息素的公式如下:

        (5)

        通過式(5)對信息素濃度的賦值,保證了越早完成加工的工件對應的工序上信息素濃度越大,并且同一工件的前道工序獲得的信息素濃度比后道工序獲得的信息素濃度大。

        3)公式參數(shù)的分析

        為了避免信息素過小而影響解的計算,故在式(5)的分母上加上系數(shù)γ以保證解的合理性公式,γ為信息素放大系數(shù),取經(jīng)驗值γ=∑Tij。同時為了保證工序的選擇不會因為開始時間而淹沒完工時間的影響,故在式(5)的分子中的完成時間上乘上一個常數(shù)z,適當擴大完工時間對信息素的影響,z為調(diào)整信息素濃度系數(shù),z取經(jīng)驗值。在算法的具體實行時通常取z=n,這樣通過對公式參數(shù)的設置更有效的保證了對調(diào)度周期的優(yōu)化。

        4)信息素更新方式

        螞蟻完成一次調(diào)度后,更新當前路徑上的各工序信息素濃度,更新方式如下:

        (6)

        (7)式(6)中,△τkij(t,t+1)表示第k只螞蟻在(t,t+1)時刻從工序i移動到工序j這一過程的信息素增量。式(7)表示信息素的更新方式,其中ρ表示信息素揮發(fā)系數(shù),信息素會隨著時間不斷揮發(fā),ρ∈(0,1)。

        2.3 算法步驟

        符號表示:AS為可調(diào)度的工序集合,CS為完成調(diào)度的工序集合,GS為未調(diào)度的工序集合,IS為正在調(diào)度的工序集合。

        步驟1:初始化AS={Oi1|i=1…n},CS=φ,GS={Oij|i=1…n,j=1…m},IS=φ。

        步驟2:初始化螞蟻數(shù)目n,參數(shù)α,β,ρ,機器Mij的可用時刻為MTmij以及當前時刻STij

        步驟3:當調(diào)度解多次不再優(yōu)化時,算法停止,輸出結果。否則重置并轉到步驟1。

        步驟4:一共有k=1~n只螞蟻,當初始時刻t=0時,分別放在各工件的第一道工序O,1上,更新當前時刻STij=STk,1,各機器可用時刻MTmij=Tk,1,更新集合AS=AS-{Ok,1},GS=GS-{Ok,1},IS=IS+{Ok,1}。

        步驟5:對于m個機器,如果機器可用時刻MTmij≤Tk,1,則機器空閑,進行下一個工序的選擇。如果AS中只有一個可調(diào)度工序,則直接將此工序放人IS;如果存在多個可調(diào)度工序,根據(jù)式(7)計算轉移概率,按輪盤賭的方式選擇接下來要加工的工序Oij;如果不存在直接跳過,轉步驟7。

        步驟6:當螞蟻移動到所選工序Oij時,AS=AS-{Oij},GS=GS-{Oij},IS=IS+{Oij}。Oij完成調(diào)度之后,CS=CS+{Oij},當前時刻STij=STk,1+Tij,將接下來要調(diào)度的工序Oi,j+1放入AS中。

        步驟7:判斷GS是否為空。如果GS=φ,說明螞蟻遍歷所有工序,完成了一次調(diào)度,執(zhí)行步驟8;否則,轉步驟4。

        步驟8:螞蟻完成一次調(diào)度后,記下調(diào)度序列,對該螞蟻當前路徑各工序信息素濃度進行更新。

        步驟9:比較前后兩只螞蟻爬行所用的完成時間,選擇完成時間短的。每次調(diào)度后都選出較優(yōu)的調(diào)度序列,對目標函數(shù)值進行更新并記錄調(diào)度序列。

        步驟10:直到所有螞蟻都完成尋優(yōu),得到最優(yōu)的完工時間及調(diào)度序列。

        3 仿真實驗

        3.1 實例驗證

        根據(jù)上述理論,針對所描述的廣義蟻群算法進行模擬仿真實驗,并做出分析與評價,驗證算法的可行性。應用實例是6個待加工工件(J1,J2,…,J6)在6臺機器(M1,M2,…,M6)上加工的典型Job-shop調(diào)度問題。

        1)參數(shù)確定:α=2,β=3,ρ=0.5;

        2)實例中加工機器對應的加工工序如表1所示,加工時間如表2所示。

        表2的加工時間與表1中的加工工序對應著,根據(jù)廣義蟻群算法得到最優(yōu)調(diào)度序列,用6行6列的S矩陣表示。矩陣的每一行代表一個加工機器,矩陣的每一列表示工序的由開始到最后的加工順序。例如一行一列的(1,2)代表在M1上首先加工的是O12,第二行第二列的(4.1)代表在M2上第二個加工的是O41,依此類推。

        為了更直觀的看出機器的加工狀態(tài),根據(jù)S矩陣繪制甘特圖如圖1所示。圖中每個實線方塊代表一個加工工序Oij,方塊的長度代表此工序在此臺機器上的加工時間,方塊外的空白之處代表機器的空閑時間。從甘特圖可看出完成時間是55,也是已知的最優(yōu)解,該算例證明了廣義蟻群算法的可行性和有效性。

        3.2 算法評價

        用廣義蟻群算法求解Job-shop調(diào)度問題的5個經(jīng)典算例,采用Matlab軟件進行編程仿真。仿真結果與其他算法得到的結果進行對比,其他算法的結果由文獻給出,如表3所示。由表可知,與遺傳算法、傳統(tǒng)蟻群算法相比,廣義蟻群算法的結果更接近最優(yōu)解,可見達到了優(yōu)化的目的。

        收斂曲線對比:圖2中縱坐標表示目標函數(shù)值,橫坐標表示循環(huán)次數(shù),黑色曲線是本文提出的廣義蟻群算法的收斂曲線,紅色曲線是基本蟻群算法的收斂曲線,藍色曲線是遺傳算法的收斂曲線。從圖中可以看出本文的算法更優(yōu),不僅收斂的速度快而且得到的目標函數(shù)值更貼近最優(yōu)解。

        4 結論

        根據(jù)蟻群算法求解Job-shop調(diào)度問題,考慮到用析取圖求解規(guī)模較大的調(diào)度問題時會非常復雜,而且缺少對蟻群算法并行特性的體現(xiàn)。本文從算法的調(diào)度方式、信息素的更新機制方面進行改進,提出了廣義蟻群算法。通過應用實例進行試驗,檢驗了該算法對實際問題的有效性,與傳統(tǒng)蟻群算法,遺傳算法進行對比,結果表明本文提出的廣義蟻群算法獲得的解更接近最優(yōu)解,而且算法的收斂速度更快,這說明本文求解Job-shop調(diào)度問題的方法更有效。

        (編輯:關毅)

        伊人久久一区二区三区无码| 欧美精品videosse精子| 欧美亚洲色综久久精品国产| 亚洲av日韩综合一区久热| 一进一出一爽又粗又大| 久久久久无码国产精品不卡| 青草青草久热精品视频国产4| 在线看不卡的国产视频| 青青草视频在线观看精品在线| 欧美伦费免费全部午夜最新 | 亚洲成av人片在线观看麦芽| 亚洲伊人久久一次| 色噜噜精品一区二区三区 | 鲁丝一区鲁丝二区鲁丝三区| 美国黄色av一区二区| 国产精品白丝久久av网站| 久久人人爽人人爽人人片亞洲| 国产精品反差婊在线观看| 国产精品国产传播国产三级| 亚洲精品美女久久777777| 无码夜色一区二区三区| 亚洲阿v天堂网2021| 国产色婷亚洲99精品av网站| 国产精品亚洲а∨无码播放| 亚洲av综合av国产av| 日韩中文网| 亚洲男女视频一区二区| 一本色道无码不卡在线观看| 国产精品美女一区二区三区| A亚洲VA欧美VA国产综合| 美女免费观看一区二区三区| 日韩精品一区二区午夜成人版 | 精品一区二区三区在线观看l| 桃色一区一区三区蜜桃视频| 激烈的性高湖波多野结衣 | 亚洲欧美一区二区三区| 国产网站视频| 人妻中文字幕一区二区三区| 欧美老妇交乱视频在线观看| 国产色诱视频在线观看| 中文字幕精品一区二区日本|