本發(fā)明屬于供應(yīng)鏈領(lǐng)域,具體地說(shuō)是一種基于蟻群優(yōu)化的生產(chǎn)配送調(diào)度方法。
背景技術(shù):
在當(dāng)前市場(chǎng)環(huán)境下,制造型企業(yè)的核心競(jìng)爭(zhēng)力不再是簡(jiǎn)單的制造能力,而是供應(yīng)鏈運(yùn)作能力,制造企業(yè)需要將采購(gòu)、生產(chǎn)和配送環(huán)節(jié)進(jìn)行全局控制,將生產(chǎn)系統(tǒng)和物流系統(tǒng)進(jìn)行聯(lián)合優(yōu)化,才能獲得總體經(jīng)濟(jì)效益的最大化,提升企業(yè)的競(jìng)爭(zhēng)力。聯(lián)合調(diào)度便是一類面向供應(yīng)鏈的優(yōu)化方法,采用精確調(diào)度的范式,設(shè)計(jì)供應(yīng)鏈上各環(huán)節(jié)的聯(lián)合調(diào)度方案,實(shí)現(xiàn)企業(yè)總體經(jīng)濟(jì)效益的優(yōu)化,從而提升企業(yè)的服務(wù)水平。目前對(duì)聯(lián)合調(diào)度問(wèn)題的研究都集中在傳統(tǒng)生產(chǎn)模式下,在這類生產(chǎn)模式中,一臺(tái)設(shè)備可以同時(shí)處理一個(gè)作業(yè)或者一批固定數(shù)量的作業(yè),但在現(xiàn)實(shí)工業(yè)中,差異分批生產(chǎn)模式兼具這兩種生產(chǎn)模式的性質(zhì),且比這兩類更為復(fù)雜,應(yīng)用更廣泛。而且傳統(tǒng)的調(diào)度方法大多只一味地考慮如何降低生產(chǎn)成本,并沒(méi)有考慮如何使生產(chǎn)配送聯(lián)合調(diào)度的總成本最小,因此并不能適應(yīng)當(dāng)下的生產(chǎn)需求。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明是為了克服現(xiàn)有技術(shù)存在的不足之處,提供一種基于蟻群優(yōu)化的生產(chǎn)配送調(diào)度方法,以期能實(shí)現(xiàn)企業(yè)總體經(jīng)濟(jì)效益的優(yōu)化,從而能降低企業(yè)成本,提升企業(yè)的服務(wù)效率。本發(fā)明為解決技術(shù)問(wèn)題采用如下技術(shù)方案:本發(fā)明一種基于蟻群優(yōu)化的生產(chǎn)配送調(diào)度方法的特點(diǎn)是按如下步驟進(jìn)行:步驟1、假設(shè)存在n個(gè)批需要進(jìn)行生產(chǎn)和配送,生產(chǎn)各個(gè)批的設(shè)備容積記為B;配送各個(gè)批的車輛容積記為V;由所述n個(gè)批構(gòu)成一個(gè)批集合,記為U={b1,b2,…,bk,…,bn},bk表示第k個(gè)批;且將第k個(gè)批bk的尺寸記為Sk;將第k個(gè)批bk的生產(chǎn)時(shí)間記為Tk;將加入同一輛車中進(jìn)行配送的所有批記為一個(gè)組;1≤k≤n;步驟2、將所述批集合U中的尺寸相同的批分為一類,從而獲得a個(gè)分類;記為W={w1,w2,…,wz,…,wa},wz表示第z個(gè)分類;所述第z個(gè)分類wz中的批總數(shù)記為fz;步驟3、初始化蟻群算法的各個(gè)參數(shù),包括:m表示第m只螞蟻,并初始化m=1;M表示螞蟻總數(shù)、L表示迭代次數(shù),并初始化L=1;Lmax表示最大迭代次數(shù);步驟4、定義變量為l,并初始化l=1;定義第k個(gè)批bk的標(biāo)識(shí)符為flagk,并初始化flagk=0;步驟5、創(chuàng)建第L次迭代的第m只螞蟻的第l個(gè)組和與其對(duì)應(yīng)的第l個(gè)候選表并使得第L次迭代的第m只螞蟻能將所述n個(gè)批分配到不同個(gè)組中進(jìn)行配送;并第L次迭代的第m只螞蟻對(duì)所有批次完成分組所使用的車輛總數(shù)步驟6、將m+1賦值給m,并返回步驟5執(zhí)行,直到m=M為止,從而獲得第L次迭代的所有M只螞蟻對(duì)所有批次完成分組所使用的車輛總數(shù)集合步驟7、從所述車輛總數(shù)集合中選取最小值作為第L次迭代的局部最優(yōu)解,記為πL;步驟8、利用式(1)更新第L次迭代的第i個(gè)候選批bi′和第j個(gè)已加入到第l個(gè)組中的候選批bj′之間的信息素從而獲得第L+1次迭代的信息素式(1)中,ρ表示信息素的蒸發(fā)速率;mij(L)表示第L次迭代中第i個(gè)候選批bi′和第j個(gè)已加入到第l個(gè)組中的候選批bj′被分到同一組的次數(shù);并有:步驟9、利用式(3)和式(4)判斷是否滿足信息素濃度限定區(qū)間[τmin,τmax],若滿足,則保留第L+1次迭代的信息素并執(zhí)行步驟11;否則,執(zhí)行步驟10:式(3)和式(4)中,π*表示當(dāng)前已獲得的所有局部最優(yōu)解中的最小值;步驟10、若則將賦值給若則將賦值給步驟11;將L+1賦值給L,判斷L<Lmax是否成立,若成立,返回步驟4執(zhí)行,否則完成Lmax次迭代,并獲得全局最優(yōu)解πbest,即為L(zhǎng)max次迭代中的所有局部最優(yōu)解的最小值;以全局最優(yōu)解πbest所對(duì)應(yīng)的配送方案作為最優(yōu)配送方案;步驟12、將最優(yōu)配送方案中每一組中的批按照生產(chǎn)時(shí)間進(jìn)行降序排序,獲得的排序結(jié)果作為批生產(chǎn)的次序,從而獲得最優(yōu)生產(chǎn)和配送聯(lián)合調(diào)度方案。本發(fā)明所述的基于蟻群優(yōu)化的瓷器煅燒工藝的生產(chǎn)調(diào)度方法的特點(diǎn)也在于,所述步驟5中,第L次迭代的第m只螞蟻是按如下步驟將所述n個(gè)批分配到不同組中進(jìn)行配送:步驟5.1、定義變量f;步驟5.2、初始化z=1;步驟5.3、初始化f=1;步驟5.4、判斷所述第z個(gè)分類wz中選出第f個(gè)批的標(biāo)識(shí)符flagf是否為1;若為1,則表示第f個(gè)批已經(jīng)完成分組,并執(zhí)行步驟5.5;否則,將第z個(gè)分類wz中選出第f個(gè)批加入到所述第l個(gè)候選表中,并執(zhí)行步驟5.6;步驟5.5、將f+1賦值給f,并返回步驟5.4執(zhí)行,直到f=fz為止后,執(zhí)行步驟5.6;步驟5.6、將z+1賦值給z,并返回步驟5.3執(zhí)行;直到z=a為止后,從而獲得待更新的第l個(gè)候選表記所述待更新的第l個(gè)候選表中的候選批為{b1′,b2′,…,b′i,…,ba′};1≤i≤a;步驟5.7、從所述待更新的候選表中選擇尺寸最大的批bkey′作為關(guān)鍵批加入到所述第l個(gè)組并將關(guān)鍵批bkey′的標(biāo)識(shí)符flag′key置為1;然后從候選表中刪除關(guān)鍵批bkey′;步驟5.8、利用式(5)獲得第m只螞蟻將所述待更新的第l個(gè)候選表中第i個(gè)候選批bi′加入到第l個(gè)組的候選概率從而獲得第m只螞蟻將所有候選批加入到第l個(gè)組的候選概率集合式(5)中,α為信息素的權(quán)重,β為啟發(fā)式信息的權(quán)重;θil表示第i個(gè)候選批bi′能加入到第l個(gè)組中配送的期望度;ηil表示將第i個(gè)候選批bi′能加入到第l個(gè)組配送的啟發(fā)式信息;并有:式(6)中,τij表示第L次迭代的第i個(gè)候選批bi′和第j個(gè)已加入到第l個(gè)組中的候選批bj′之間的信息素,1≤i≠j≤a;Si表示第i個(gè)候選批b′i的尺寸;步驟5.9、從所述候選概率集合中選出最大候選概率所對(duì)應(yīng)的最大候選批,記為b′max;則所述最大候選批b′max的尺寸記為smax;步驟5.10、將所述最大候選批b′max加入到所述第l個(gè)組并將最大候選批b′max的標(biāo)識(shí)符flag′max置為1;步驟5.11、將所述車輛容積V減去所述最大候選批b′max的尺寸smax,獲得剩余車輛容積,記為步驟5.12、根據(jù)所述剩余車輛容積從所述待更新的第l個(gè)候選表中刪除尺寸大于所述剩余車輛容積的候選批;從而獲得更新的第l個(gè)候選表步驟5.13、獲得所述最大候選批b′max所對(duì)應(yīng)的分類,記為wmax;步驟5.14、判斷所述最大候選批b′max在所對(duì)應(yīng)的分類wmax中是否為第fz個(gè)批;若是,則從更新的第l個(gè)候選表中刪除所述最大候選批b′max;否則,從更新的第l個(gè)候選表中刪除所述最大候選批b′max,并將所述最大候選批b′max所對(duì)應(yīng)的分類wmax中第fmax+1個(gè)批加入到所述更新的第l個(gè)候選表中,從而獲得再次更新的第l個(gè)候選表步驟5.15、以所述再次更新的第l個(gè)候選表作為待更新的第l個(gè)候選表并返回步驟5.8順序執(zhí)行,直到待更新的第l個(gè)候選表為空為止,即將第L次迭代的第m只螞蟻的第l個(gè)組加滿;從而獲得第L次迭代的第m只螞蟻的第l個(gè)組的配送方案;步驟5.16、判斷n個(gè)批的標(biāo)識(shí)符是否都為1,若都為1,則表示完成第L次迭代的第m只螞蟻對(duì)所述n個(gè)批的分配;并將l賦值給否則,將l+1賦值給l,并返回步驟5順序執(zhí)行。與已有技術(shù)相比,本發(fā)明有益效果體現(xiàn)在:1、本發(fā)明在典型的差異分批制造模式下,研究制造企業(yè)的生產(chǎn)、配送兩階段聯(lián)合調(diào)度問(wèn)題,通過(guò)采用改進(jìn)的蟻群算法,在差異分批制造模式下,首先針對(duì)已分批的產(chǎn)品進(jìn)行分類,然后提出基于批尺寸分類的候選表,通過(guò)為每一個(gè)螞蟻建立候選表的方法,得出每一個(gè)螞蟻的分組方案;再利用信息素更新規(guī)則,更新信息素,實(shí)現(xiàn)了多次迭代,最終獲得最優(yōu)解;相比于的其它方法;蟻群算法在時(shí)間有效性和結(jié)果的優(yōu)化程度上,是一種性能更好的優(yōu)化制造跨度的近似算法;解決了現(xiàn)實(shí)工業(yè)中作業(yè)分批生產(chǎn)、分組配送的問(wèn)題,使得所獲得的最優(yōu)解實(shí)現(xiàn)了企業(yè)總體經(jīng)濟(jì)效益的優(yōu)化,降低了能耗,節(jié)省了成本,提升了企業(yè)的服務(wù)水平。2、本發(fā)明通過(guò)對(duì)每一次迭代得到的最優(yōu)解進(jìn)行信息素更新,解決了搜索過(guò)程過(guò)快的集中到這個(gè)解周圍的問(wèn)題;如果僅僅是對(duì)自第一次迭代以來(lái)得到的最優(yōu)解進(jìn)行更新,很可能導(dǎo)致算法收斂過(guò)早;而每一次迭代的最優(yōu)解在每一次迭代過(guò)后會(huì)有很大差異,所以更新每一次迭代的最優(yōu)解,能夠使更多解的信息素增強(qiáng),從而得到更加優(yōu)化的解。3.本發(fā)明采用候選表策略來(lái)尋找最優(yōu)解;在傳統(tǒng)的蟻群算法中,只要是體積小于車輛容積的作業(yè),都可以選進(jìn)候選表,所以可行解的數(shù)量龐大;但是在實(shí)際裝車過(guò)程中,很多批尺寸大小是一樣的,如果將體積大小相同的批歸為一類,批的類別數(shù)量絕對(duì)不會(huì)超過(guò)批的總數(shù)量,相同尺寸的瓷坯批越多,候選表的批個(gè)數(shù)越少,這樣就減少了可行解的數(shù)量,有效降低了求解時(shí)間。附圖說(shuō)明圖1為本發(fā)明生產(chǎn)配送跨度示意圖。具體實(shí)施方式本實(shí)施例中,一種基于蟻群優(yōu)化的生產(chǎn)配送調(diào)度方法,是針對(duì)體積和生產(chǎn)時(shí)間有差異的生產(chǎn)配送聯(lián)合調(diào)度問(wèn)題進(jìn)行建模,然后通過(guò)一種改進(jìn)蟻群算法進(jìn)行求解,從而得到一套生產(chǎn)配送調(diào)度的優(yōu)化方案,以此大大降低目標(biāo)位制造企業(yè)的總運(yùn)作成本,提高企業(yè)運(yùn)作效率;同時(shí)針對(duì)具體問(wèn)題,給出了實(shí)用的程序開(kāi)發(fā)方案,使企業(yè)能高效率的獲得適合其的最優(yōu)調(diào)度方案。具體的說(shuō),是按如下步驟進(jìn)行:步驟1、假設(shè)存在n個(gè)批需要進(jìn)行生產(chǎn)和配送,生產(chǎn)各個(gè)批的設(shè)備容積記為B;配送各個(gè)批的車輛容積記為V;由n個(gè)批構(gòu)成一個(gè)批集合,記為U={b1,b2,…,bk,…,bn},bk表示第k個(gè)批;且將第k個(gè)批bk的尺寸記為Sk;將第k個(gè)批bk的生產(chǎn)時(shí)間記為Tk;將加入同一輛車中進(jìn)行配送的所有批記為一個(gè)組;1≤k≤n;步驟2、將批集合U中的尺寸相同的批分為一類,從而獲得a個(gè)分類;記為W={w1,w2,…,wz,…,wa},wz表示第z個(gè)分類;第z個(gè)分類wz中的批總數(shù)記為fz;在傳統(tǒng)的蟻群算法中,只要是體積小于設(shè)備容量的作業(yè),都可以選進(jìn)候選表,所以可行解的數(shù)量龐大。但是在實(shí)際陶瓷煅燒過(guò)程中,很多陶瓷的體積大小是一樣的,如果將體積大小相同的瓷坯歸為一類,瓷坯的類別數(shù)量絕對(duì)不會(huì)超過(guò)瓷坯的總數(shù)量,相同尺寸的瓷坯越多,候選表的瓷坯個(gè)數(shù)越少,這樣就可以減少可行解的數(shù)量,能夠有效降低求解時(shí)間。步驟3、初始化蟻群算法的各個(gè)參數(shù),包括:m表示第m只螞蟻,并初始化m=1;M表示螞蟻總數(shù)、L表示迭代次數(shù),并初始化L=1;Lmax表示最大迭代次數(shù);步驟4、定義變量為l,并初始化l=1;定義第k個(gè)批bk的標(biāo)識(shí)符為flagk,并初始化flagk=0;步驟5、創(chuàng)建第L次迭代的第m只螞蟻的第l個(gè)組和與其對(duì)應(yīng)的第l個(gè)候選表并使得第L次迭代的第m只螞蟻能將n個(gè)批分配到不同個(gè)組中進(jìn)行配送;并第L次迭代的第m只螞蟻對(duì)所有批次完成分組所使用的車輛總數(shù)步驟5.1、定義變量f;步驟5.2、初始化z=1;步驟5.3、初始化f=1;步驟5.4、判斷第z個(gè)分類wz中選出第f個(gè)批的標(biāo)識(shí)符flagf是否為1;若為1,則表示第f個(gè)批已經(jīng)完成分組,并執(zhí)行步驟5.5;否則,將第z個(gè)分類wz中選出第f個(gè)批加入到第l個(gè)候選表中,并執(zhí)行步驟5.6;步驟5.5、將f+1賦值給f,并返回步驟5.4執(zhí)行,直到f=fz為止后,執(zhí)行步驟5.6;步驟5.6、將z+1賦值給z,并返回步驟5.3執(zhí)行;直到z=a為止后,從而獲得待更新的第l個(gè)候選表記待更新的第l個(gè)候選表中的候選批為{b1′,b2′,…,b′i,…,ba′};1≤i≤a;步驟5.7、從待更新的候選表中選擇尺寸最大的批bkey′作為關(guān)鍵批加入到第l個(gè)組并將關(guān)鍵批bkey′的標(biāo)識(shí)符flag′key置為1;然后從候選表中刪除關(guān)鍵批bkey′;步驟5.8、利用式(1)獲得第m只螞蟻將待更新的第l個(gè)候選表中第i個(gè)候選批bi′加入到第l個(gè)組的候選概率從而獲得第m只螞蟻將所有候選批加入到第l個(gè)組的候選概率集合式(1)中,α為信息素的權(quán)重,β為啟發(fā)式信息的權(quán)重;θil表示第i個(gè)候選批bi′能加入到第l個(gè)組中配送的期望度,信息素τij(L)表示第i個(gè)候選批bi′和第j個(gè)候選批bj′被安排在同一組中的期望度。由于批數(shù)目和作業(yè)所在組號(hào)不確定,因此不能直接使用信息素τij(L),故定義變量θil對(duì)信息素進(jìn)行間接利用;ηil表示將第i個(gè)候選批bi′能加入到第l個(gè)組配送的啟發(fā)式信息;并有:式(2)中,τij表示第L次迭代的第i個(gè)候選批bi′和第j個(gè)已加入到第l個(gè)組中的候選批bj′之間的信息素,1≤i≠j≤a;Si表示第i個(gè)候選批b′i的尺寸;步驟5.9、從候選概率集合中選出最大候選概率所對(duì)應(yīng)的最大候選批,記為b′max;則最大候選批b′max的尺寸記為smax;步驟5.10、將最大候選批b′max加入到第l個(gè)組并將最大候選批b′max的標(biāo)識(shí)符flag′max置為1;步驟5.11、將車輛容積V減去最大候選批b′max的尺寸smax,獲得剩余車輛容積,記為步驟5.12、根據(jù)剩余車輛容積從待更新的第l個(gè)候選表中刪除尺寸大于剩余車輛容積的候選批;從而獲得更新的第l個(gè)候選表步驟5.13、獲得最大候選批b′max所對(duì)應(yīng)的分類,記為wmax;步驟5.14、判斷最大候選批b′max在所對(duì)應(yīng)的分類wmax中是否為第fz個(gè)批;若是,則從更新的第l個(gè)候選表中刪除最大候選批b′max;否則,從更新的第l個(gè)候選表中刪除最大候選批b′max,并將最大候選批b′max所對(duì)應(yīng)的分類wmax中第fmax+1個(gè)批加入到更新的第l個(gè)候選表中,從而獲得再次更新的第l個(gè)候選表步驟5.15、以再次更新的第l個(gè)候選表作為待更新的第l個(gè)候選表并返回步驟5.8順序執(zhí)行,直到待更新的第l個(gè)候選表為空為止,即將第L次迭代的第m只螞蟻的第l個(gè)組加滿;從而獲得第L次迭代的第m只螞蟻的第l個(gè)組的配送方案;步驟5.16、判斷n個(gè)批的標(biāo)識(shí)符是否都為1,若都為1,則表示完成第L次迭代的第m只螞蟻對(duì)n個(gè)批的分配;并將l賦值給否則,將l+1賦值給l,并返回步驟5順序執(zhí)行。在更新的第l個(gè)候選表中,如果第i個(gè)候選批bi′和第j個(gè)候選批bj′滿足Si<Sj且SiTi>SjTj,選擇第i個(gè)候選批bi′加入當(dāng)前組比選擇第j個(gè)候選批bj′能減少更多的空閑空間,并且選擇第i個(gè)候選批bi′后當(dāng)前組的剩余容量更大,第l個(gè)候選表中可選批數(shù)也更多,故選擇第i個(gè)候選批bi′加入當(dāng)前組更優(yōu)。步驟6、將m+1賦值給m,并返回步驟5執(zhí)行,直到m=M為止,從而獲得第L次迭代的所有M只螞蟻對(duì)所有批次完成分組所使用的車輛總數(shù)集合步驟7、從車輛總數(shù)集合中選取最小值作為第L次迭代的局部最優(yōu)解,記為πL;步驟8、利用式(4)更新第L次迭代的第i個(gè)候選批bi′和第j個(gè)已加入到第l個(gè)組中的候選批bj′之間的信息素從而獲得第L+1次迭代的信息素式(4)中,ρ表示信息素的蒸發(fā)速率;mij(L)表示第L次迭代中第i個(gè)候選批bi′和第j個(gè)已加入到第l個(gè)組中的候選批bj′被分到同一組的次數(shù);并有:如果僅僅是對(duì)自第一次迭代以來(lái)得到的最優(yōu)解進(jìn)行更新,很可能導(dǎo)致搜索過(guò)程過(guò)快的集中到這個(gè)解周圍,使算法收斂過(guò)早;而每一次迭代的最優(yōu)解在每一次迭代過(guò)后會(huì)有很大差異,所以更新每一次迭代的最優(yōu)解,能夠使更多解的信息素增強(qiáng)。也可以采用輪換策略進(jìn)行更新,即對(duì)每一次迭代得到的最優(yōu)解進(jìn)行信息素更新,然后每經(jīng)過(guò)相應(yīng)次迭代,對(duì)自第一次以來(lái)得到的最優(yōu)解經(jīng)行一次信息素的更新。步驟9、利用式(6)和式(7)判斷是否滿足信息素濃度限定區(qū)間[τmin,τmax],若滿足,則保留第L+1次迭代的信息素并執(zhí)行步驟11;否則,執(zhí)行步驟10:式(6)和式(7)中,π*表示當(dāng)前已獲得的所有局部最優(yōu)解中的最小值;步驟10、若則將賦值給若則將賦值給蟻群算法將信息素的濃度限定在間,以減少可行解的信息素之間的差異。步驟11;將L+1賦值給L,判斷L<Lmax是否成立,若成立,返回步驟4執(zhí)行,否則完成Lmax次迭代,并獲得全局最優(yōu)解πbest,即為L(zhǎng)max次迭代中的所有局部最優(yōu)解的最小值;以全局最優(yōu)解πbest所對(duì)應(yīng)的配送方案作為最優(yōu)配送方案,分批和配送過(guò)程如圖1所示;步驟12、將最優(yōu)配送方案中每一組中的批按照生產(chǎn)時(shí)間進(jìn)行降序排序,獲得的排序結(jié)果作為批生產(chǎn)的次序,從而獲得最優(yōu)生產(chǎn)和配送聯(lián)合調(diào)度方案。