一種求解多目標(biāo)資源受限項(xiàng)目調(diào)度的有效方法
【專(zhuān)利摘要】本發(fā)明公開(kāi)了一種求解多目標(biāo)資源受限項(xiàng)目調(diào)度的有效方法,步驟包括:1)建立基于工期-成本優(yōu)化的多目標(biāo)資源受限項(xiàng)目調(diào)度數(shù)學(xué)模型;2)產(chǎn)生初始的可行調(diào)度序列;3)對(duì)調(diào)度序列進(jìn)行評(píng)價(jià);4)對(duì)調(diào)度序列進(jìn)行更新;5)構(gòu)造非支配解集操作;6)對(duì)外部歸檔集進(jìn)行維護(hù);7)更新迭代直至輸出最優(yōu)解集,即成。本發(fā)明的方法,每個(gè)智能體對(duì)應(yīng)調(diào)度問(wèn)題中的一個(gè)鏈表序列,對(duì)任務(wù)鏈表的調(diào)度序列和與其相對(duì)應(yīng)的執(zhí)行模式序列分別進(jìn)行編碼,采用串行方法進(jìn)行解碼操作,各鏈表序列之間通過(guò)競(jìng)爭(zhēng)、交叉、自學(xué)習(xí)實(shí)現(xiàn)進(jìn)化和更新;通過(guò)調(diào)整項(xiàng)目的調(diào)度計(jì)劃,在滿(mǎn)足時(shí)序約束和資源約束等的條件下,使得該控制周期內(nèi)的工期和成本達(dá)到綜合最優(yōu)。
【專(zhuān)利說(shuō)明】-種求解多目標(biāo)資源受限項(xiàng)目調(diào)度的有效方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于系統(tǒng)調(diào)度及控制【技術(shù)領(lǐng)域】,涉及一種求解多目標(biāo)資源受限項(xiàng)目調(diào)度的 有效方法。
【背景技術(shù)】
[0002] 資源受限項(xiàng)目調(diào)度問(wèn)題廣泛應(yīng)用于建筑工程、交通運(yùn)輸、軟件開(kāi)發(fā)、產(chǎn)品生產(chǎn)、電 力系統(tǒng)等調(diào)度領(lǐng)域,其難點(diǎn)是在滿(mǎn)足時(shí)序約束和資源約束的前提下,按照某種規(guī)則合理安 排項(xiàng)目的任務(wù),而在項(xiàng)目的執(zhí)行過(guò)程中又包含有多個(gè)模式,要求在成本資源最優(yōu)利用的同 時(shí)在多個(gè)相互沖突的目標(biāo)之間進(jìn)行權(quán)衡,找到各個(gè)目標(biāo)之間的最佳平衡點(diǎn),得到滿(mǎn)足項(xiàng)目 要求的一組最優(yōu)解集。因此綜合考慮項(xiàng)目工期和項(xiàng)目成本的多目標(biāo)資源受限項(xiàng)目調(diào)度的研 究,不僅具有重要的理論意義,而且是調(diào)度問(wèn)題的最現(xiàn)實(shí)的選擇,因此制定合理的調(diào)度計(jì)劃 是目前研究的重點(diǎn)。
[0003] 多智能體進(jìn)化算法作為智能優(yōu)化算法的一個(gè)分支,它是從智能體系統(tǒng)的角度出 發(fā),把進(jìn)化算法中的個(gè)體當(dāng)作一個(gè)有局部感知、競(jìng)爭(zhēng)協(xié)作和自學(xué)習(xí)能力的智能體,通過(guò)智能 體自身以及智能體之間的相互作用達(dá)到優(yōu)化全局的目的。由于多智能體的自主性、分布性、 協(xié)調(diào)性及自組織能力、學(xué)習(xí)能力和推理能力,使得它在解決實(shí)際問(wèn)題時(shí)具有較強(qiáng)的可靠性 和較高的求解效率,但目前多智能體進(jìn)化算法大多用于單目標(biāo)方面。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明的目的是提供一種求解多目標(biāo)資源受限項(xiàng)目調(diào)度的有效方法,解決了現(xiàn)有 調(diào)度方法在調(diào)度中工期與成本之間難以調(diào)節(jié),不易取得最佳效益的問(wèn)題。
[0005] 本發(fā)明所采用的技術(shù)方案是:一種求解多目標(biāo)資源受限項(xiàng)目調(diào)度的有效方法,按 照以下步驟實(shí)施:
[0006] 步驟1、建立基于工期-成本優(yōu)化的多目標(biāo)資源受限項(xiàng)目調(diào)度數(shù)學(xué)模型
[0007] 假設(shè)項(xiàng)目中的工作數(shù)為J,每個(gè)工作j之間有著前后的時(shí)序約束,則有j = 1,2, ...,J,記%是緊接著工作j之前的集合,&是緊接著工作j之后的集合;設(shè)定最大迭 代次數(shù)H,迭代次數(shù)初值h = 1,工作1是最早開(kāi)始的唯一一個(gè)工作,工作J是最晚完成的唯 一一個(gè)工作;項(xiàng)目中可更新資源種類(lèi)數(shù)為K,不可更新資源種類(lèi)數(shù)為N,k = 1,2, ... Κ,η = 1,2, . . . Ν,第k種可更新資源在各階段的總供給量為
【權(quán)利要求】
1. 一種求解多目標(biāo)資源受限項(xiàng)目調(diào)度的有效方法,其特點(diǎn)在于,按照以下步驟實(shí)施: 步驟1、建立基于工期-成本優(yōu)化的多目標(biāo)資源受限項(xiàng)目調(diào)度數(shù)學(xué)模型 假設(shè)項(xiàng)目中的工作數(shù)為J,每個(gè)工作j之間有著前后的時(shí)序約束,則有j = 1,2, ...,J, 記%是緊接著工作j之前的集合,&是緊接著工作j之后的集合;設(shè)定最大迭代次數(shù)H,迭 代次數(shù)初值h = 1,工作1是最早開(kāi)始的唯一一個(gè)工作,工作J是最晚完成的唯一一個(gè)工作; 項(xiàng)目中可更新資源種類(lèi)數(shù)為K,不可更新資源種類(lèi)數(shù)為N,k = 1,2,. . . Κ,η = 1,2,. . . N,第 k種可更新資源在各階段的總供給量為
,第η種不可更新資源總量為
;每個(gè)工作有多 種模式可供選擇,工作j需選擇%種模式之一進(jìn)行操作,且在運(yùn)行過(guò)程中不能中斷或更改; 工作j在第m種模式下運(yùn)行時(shí),m = 1,2,... Μ」,第k種可更新資源的需求量為
,第η種 不可更新資源的需求量為
運(yùn)行時(shí)間為djm,正在運(yùn)行的工作所用的資源總數(shù)不能超過(guò) 資源的總供給量,以上各量值取整數(shù), 據(jù)此創(chuàng)建模型如下:
(1) 式(1)為目標(biāo)之一,此目標(biāo)是最小化項(xiàng)目總工期的表達(dá)式,式中[EDT,LDT]為工作J的 最早和最晚完成時(shí)間段;t表示t階段,\1T是工作j在第一種模式下T階段的完成狀態(tài),若 完成則x jlT = 1,否則xjlT = 0 ;
(2) 式(2)為目標(biāo)之二,此目標(biāo)是最小化項(xiàng)目成本的表達(dá)式,式中%表示的是工作j的執(zhí) 行模式數(shù);是工作j在模式m下的花費(fèi);J是項(xiàng)目的所有工作數(shù);
(3) 式(3)表示每個(gè)工作在一種模式下只能實(shí)現(xiàn)一次,式中xjmt表示的是工作j在第m種 模式t階段時(shí)執(zhí)行的狀態(tài);[E~ LDJ表示的是工作j的最早和最晚完成時(shí)間段;
(4) 式(4)表示項(xiàng)目的緊前約束關(guān)系,ximt和x>t分別是工作i和工作j在第m種模式t階 段時(shí)的執(zhí)行狀態(tài);是工作j在第m種模式下的執(zhí)行時(shí)間;
(5) 式(5)是不等式約束,保證了各工作使用的可更新資源量不超過(guò)該階段的總供給量,
為第k種可更新資源的需求量,
為第k種可更新資源在各階段的總供給量,
為工 期上限;
(6) 式(6)是保證所有工作使用的不可更新資源量不能超過(guò)整個(gè)項(xiàng)目總的供給量,<,"為 第η種不可更新資源的需求量,K為第η種不可更新資源總量;
(7) 式(7)是模型中相關(guān)變量的取值范圍,\mt表示工作j在第m種模式下的完成狀態(tài),若 完成則有Xjmt = 1,否則Xjmt = 〇 ; 步驟2、產(chǎn)生初始的可行調(diào)度序列 項(xiàng)目中的每個(gè)工作由兩部分組成,即:
(8) 其中,
是第i個(gè)任務(wù)鏈表中滿(mǎn)足時(shí)序約束的調(diào)度序列,是項(xiàng)目中各 個(gè)工作的執(zhí)行順序表枸=mi,m2,. . .,nv Mi是該任務(wù)鏈表中各任務(wù)所對(duì)應(yīng)的模式序列,項(xiàng) 目中的模式序列與調(diào)度序列是一一對(duì)應(yīng)的,在執(zhí)行過(guò)程中隨機(jī)生成S所對(duì)應(yīng)的模式M,并保 證生成的模式數(shù)不大于該工作的總模式數(shù), 由時(shí)序約束確定工作j的緊前工作集h和緊后工作集,用鄰接矩陣G = 表 示工作間的緊前緊后關(guān)系,其中當(dāng)i e P」時(shí),gu = 1,否則gi」=〇 ; 初始化項(xiàng)目調(diào)度序列S和已執(zhí)行工作序號(hào)Sl = 1,令Job為空向量,k = 1,檢索存儲(chǔ) 鄰接矩陣的sh行,查找入度為1的工作集合,加入Job序列中,從Job中刪除具有最高優(yōu)先 權(quán)的一個(gè)工作序號(hào)u,并將該序號(hào)u賦給s h+1,同時(shí)鄰接矩陣中元素
減1,令k =k+1,若k〈J,則繼續(xù)計(jì)算,否則輸出S ; 步驟3、對(duì)調(diào)度序列進(jìn)行評(píng)價(jià) 根據(jù)項(xiàng)目生成的調(diào)度序列S和模式序列M,通過(guò)串行方案進(jìn)行解碼操作,令Tst表示項(xiàng) 目的開(kāi)始時(shí)間,
分別表示經(jīng)過(guò) 編碼得到的第i個(gè)鏈表中相對(duì)應(yīng)工作的開(kāi)始時(shí)間和成本,判斷工作在其執(zhí)行模式下是否存 在資源沖突,找到該鏈表的最早完成時(shí)間ti;r = maxltij+djj和所對(duì)應(yīng)的成本
; 步驟4、對(duì)調(diào)度序列進(jìn)行更新 采用多智能體進(jìn)化算法對(duì)調(diào)度序列進(jìn)行更新,通過(guò)與其鄰域中工作的競(jìng)爭(zhēng)、交叉、自學(xué) 習(xí)三種操作方式完成更新; 步驟5、構(gòu)造非支配解集操作; 步驟6、對(duì)外部歸檔集進(jìn)行維護(hù); 步驟7、更新迭代次數(shù)h = h+Ι,如果h < J,則繼續(xù)重復(fù)步驟2到步驟6,否則輸出 Pareto最優(yōu)解集,即成。
2.根據(jù)權(quán)利要求1所述的求解多目標(biāo)資源受限項(xiàng)目調(diào)度的有效方法,其特點(diǎn)在于,所 述的步驟4中,競(jìng)爭(zhēng)、交叉、自學(xué)習(xí)三種操作方式具體過(guò)程是: 4. 1)競(jìng)爭(zhēng)操作 假設(shè)第i個(gè)鏈表{SpMi}對(duì)應(yīng)的工期-成本為{tpcj,其鄰域內(nèi)最優(yōu)的工期-成本為
,則該鏈表繼續(xù)存活在網(wǎng)格中,否則將其移除網(wǎng)格,并用產(chǎn)生的新 鏈表{S' i,M' J代替,h e (〇, 1)是占據(jù)概率,具體過(guò)程為: St印 1:初始化{S'J,將{SdMJ 賦給{S'J,令k=l; Step2 :隨機(jī)產(chǎn)生u e (〇, 1),若u彡P(guān)Q,貝lj轉(zhuǎn)Step4,否則令k = k+1 ; St印3 :若k < J,則轉(zhuǎn)St印2,否則轉(zhuǎn)St印6 ; St印4:在(1,J)之間隨機(jī)選擇一個(gè)不等于k的整數(shù)r,交換九和jk得到S' p若S', 滿(mǎn)足緊前關(guān)系約束,轉(zhuǎn)St印5,否則恢復(fù),令k = k+1,轉(zhuǎn)St印3 ; St印5 :隨機(jī)改變某一工作j的模式,得到Μ' ρ檢查該模式下調(diào)度序列是否滿(mǎn)足資源 約束,若滿(mǎn)足,轉(zhuǎn)Step6,否則恢復(fù); Step6 :更新鏈表,計(jì)算對(duì)應(yīng)的工期-成本,得到新的序列; 4. 2)交叉操作 假設(shè)第i個(gè)鏈表序列以,MJ與其鄰域內(nèi)的鏈表進(jìn)行交叉操作,1彡i彡P(guān)opsize,參與 交叉的是{SF,MF}和{Sm,Mm},交叉之后分別生成{S D,MD}和{Ss,Ms},在(1,J)之間隨機(jī)產(chǎn)生 兩個(gè)整數(shù)A和r 2,具體操作過(guò)程為: 4. 2. 1)對(duì)調(diào)度序列進(jìn)行交叉 設(shè)交叉點(diǎn)為A,SD的前Γι個(gè)序列k = 1,2,. . .,Γι來(lái)源于SM,后J-ri個(gè)序列k = Γι+1,. . .,J來(lái)源于SF,且SD中已有的序列不再考慮,維持其余序列在SF中的相對(duì)位置不變, Ss的產(chǎn)生與此相反; 4. 2. 2)對(duì)模式序列進(jìn)行交叉 設(shè)交叉點(diǎn)為r2, MD的前r2個(gè)序列k = 1,2,. . .,r2來(lái)源于Mm,后J-r2個(gè)序列k = r2+l,. . .,J來(lái)源于MF,Ms的產(chǎn)生與此相反; 4. 3)自學(xué)習(xí)操作 自學(xué)習(xí)操作用來(lái)實(shí)現(xiàn)局部搜索操作,增加種群的多樣性,即在符合時(shí)序約束的限制下, 對(duì)鏈表中的某些工作進(jìn)行位置的置換,模式的更改,根據(jù)概率PS1進(jìn)行任務(wù)調(diào)度序列自學(xué)習(xí) 操作,根據(jù)概率P S2進(jìn)行任務(wù)模式序列自學(xué)習(xí)操作,具體過(guò)程為: Stepl隨機(jī)產(chǎn)生w e (〇, 1),若《 < PS1,轉(zhuǎn)Step2,對(duì)鏈表中的調(diào)度序列進(jìn)行自學(xué)習(xí)操 作;若w < PS2,轉(zhuǎn)Step3,對(duì)鏈表中的模式序列進(jìn)行自學(xué)習(xí)操作;否則,轉(zhuǎn)Step4 ; Step2在(1,J)之間隨機(jī)生成調(diào)度序列S的某一位置V,找到該位置的所有緊前節(jié)點(diǎn)在 調(diào)度序列中的最后位置^、以及所有緊后節(jié)點(diǎn)在調(diào)度序列中的最前位置u2,在最前位置和 最后位置之間隨機(jī)挑選一個(gè)位置u,把v插入到u處,得到新調(diào)度序列S'; Step3隨機(jī)改變?nèi)蝿?wù)j的模式,得到Μ',檢驗(yàn)該模式下的工作是否符合資源的約束,若 符合,轉(zhuǎn)St印4,否則重新生成一組模式; Step4更新鏈表序列,計(jì)算對(duì)應(yīng)的工期-成本。
3.根據(jù)權(quán)利要求1所述的求解多目標(biāo)資源受限項(xiàng)目調(diào)度的有效方法,其特點(diǎn)在于,所 述的步驟5中,采用以下方法來(lái)構(gòu)成Pareto解集,具體步驟為: 5. 1)將所有個(gè)體序號(hào)初始化為rank (a) = 1 ; 5. 2)對(duì)任意個(gè)體a, b, :
若兩者互不支配,個(gè)體a,b的序號(hào)不變; 5. 3)將序號(hào)為1的個(gè)體放入非支配解集中,形成當(dāng)代的Pareto解集。
4.根據(jù)權(quán)利要求1所述的求解多目標(biāo)資源受限項(xiàng)目調(diào)度的有效方法,其特點(diǎn)在于,所 述的步驟6中,利用對(duì)資源調(diào)度系統(tǒng)中相關(guān)信息的抽取、分析,結(jié)合多目標(biāo)多智能體進(jìn)化算 法,來(lái)實(shí)現(xiàn)調(diào)度序列的優(yōu)化;由于目標(biāo)為項(xiàng)目工期和項(xiàng)目成本同時(shí)最優(yōu),因此將每一次比較 工期和成本所獲得的非劣可行調(diào)度解存儲(chǔ)在外部歸檔集中,外部歸檔集除了對(duì)種群中的非 支配調(diào)度外的更新外,還結(jié)合了現(xiàn)有的擁擠距離法使得到的外部歸檔集更均勻,具體過(guò)程 是:把種群中的非支配可行調(diào)度的有功功率逐一放入外部歸檔集中,如果該可行調(diào)度的有 功功率被外部歸檔集中的可行調(diào)度的有功功率支配,則該可行調(diào)度的有功功率從歸檔集中 刪除,否則該可行調(diào)度的有功功率加入歸檔集;如果歸檔集中的可行調(diào)度的有功功率個(gè)數(shù) 小于最大容量,則不進(jìn)行刪除操作,否則計(jì)算當(dāng)前歸檔集中所有可行調(diào)度的有功功率的擁 擠距離,刪除擁擠距離最小的那個(gè)可行調(diào)度的有功功率使歸檔集中的可行調(diào)度始終保持在 小于等于最大容量的數(shù)目上。
【文檔編號(hào)】G06Q10/06GK104217293SQ201410449558
【公開(kāi)日】2014年12月17日 申請(qǐng)日期:2014年9月4日 優(yōu)先權(quán)日:2014年9月4日
【發(fā)明者】吳亞麗, 郭曉平, 薛芬 申請(qǐng)人:西安理工大學(xué)