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

一種改進文化基因算法求解多目標(biāo)柔性作業(yè)車間調(diào)度問題的制作方法

文檔序號:11063901閱讀:680來源:國知局
一種改進文化基因算法求解多目標(biāo)柔性作業(yè)車間調(diào)度問題的制造方法與工藝

本發(fā)明涉及作業(yè)車間調(diào)度技術(shù)領(lǐng)域,具體地涉及用算法求解多目標(biāo)柔性作業(yè)車間調(diào)度問題。



背景技術(shù):

在制造業(yè)中,生產(chǎn)調(diào)度問題種類繁多、方法多樣,其中,作業(yè)車間調(diào)度問題(JSP)是最基本、最重要的機器調(diào)度問題,同時也是最困難的NP—hard問題。柔性作業(yè)車間調(diào)度問題(FJSP)是JSP的擴展,它允許每個工序在給定的幾臺機器上加工,而不是一個機器。目前,對FJSP的研究已取得了一定的進展,各種啟發(fā)式算法,進化算法等,應(yīng)用到該領(lǐng)域。不乏有遺傳算法(GA)、粒子群算法(PSO)、局部搜索算法、模擬退火算法、蟻群算法等。這些算法雖有好的性能,但也有缺陷。比如:遺傳算法雖能通過種群間的相互作用,保持已經(jīng)搜索到的信息,這是基于單個個體搜索過程的優(yōu)化方法所無法比擬的。但是,遺傳算法也存在著計算速度較慢、過早收斂等問題。局部搜索算法是解決優(yōu)化問題的有效方法,但面臨迭代次數(shù)過多,消耗時間過長的問題。



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

針對上述不足之處,本發(fā)明要解決的技術(shù)問題是提供一種既有全局搜索能力也有局部搜索能力的算法,即改進的文化基因算法求解柔性作業(yè)車間調(diào)度問題。

本發(fā)明的目的是:提高算法的求解速度與質(zhì)量。

本發(fā)明為實現(xiàn)上述目的,所采用的技術(shù)方案是:一種改進文化基因算法求解柔性作業(yè)車間調(diào)度問題。該技術(shù)方案包括以下步驟:

步驟1:對種群規(guī)模POP_SIZE、最大迭代次數(shù)Gm、交叉和變異次數(shù)N、變異概率Pm等參數(shù)進行初始化;

步驟2:隨機生成POP_SIZE個個體作為初始種群,計算每個個體的適應(yīng)度。設(shè)置迭代次數(shù)t=0,并設(shè)置當(dāng)前種群Pt=P0;

步驟3:對Pt進行適應(yīng)度排序,得到其中的非支配個體集合Pnodom,并將非支配個體數(shù)Snodom設(shè)置為Pnodom中的元素個數(shù);

步驟4:將Pnodom中的個體直接拷貝到下一代種群Pt+1,設(shè)置Pt+1的個體個數(shù)n=Snodom;

步驟5:在Pt中隨機選擇一對個體:父代1和父代2;

步驟6:如果父代1、父代2的所有目標(biāo)函數(shù)值都相等,則轉(zhuǎn)步驟8;否則,執(zhí)行下一步驟;

步驟7:分別以概率Pm對父代1、父代2進行變異,然后對父代1、父代2執(zhí)行N次交叉操作產(chǎn)生包含有2N個元素的子代個體集合ChildPop對ChildPop進行適應(yīng)度排序,在其Pareto前端集合中隨機選擇一個個體進入新種群Pt+1,設(shè)置Pt+1的個體個數(shù)n=n+1;

步驟8:如果n<POP_SIZE,轉(zhuǎn)步驟5;否則,執(zhí)行下一步驟;

步驟9:對種群Pt+1中的每個個體執(zhí)行爬山法局部搜索,并用所得的局部最

優(yōu)解替換原個體;

步驟10:將Pt+1和Pt合并,選擇最好的POP_SIZE個個體組成新的Pt+1;

步驟11:如果迭代次數(shù)t>Gm,則算法結(jié)束;否則,更新種群Pt=Pt+1,并設(shè)置迭代次數(shù)t=t+1,然后轉(zhuǎn)步驟3。

本發(fā)明的有益效果是:該改進文化基因算法吸收了進化算法和局部搜索算法的優(yōu)點,不僅具有很強的全局搜索能力,同時,每次交叉和變異后均進行局部搜索,通過優(yōu)化種群分布,及早剔出不良個體,進而減少迭代次數(shù),加快算法的求解速度。這樣既保證了較高的收斂性能,又能獲得高質(zhì)量的解。

該算法文化基因算法采用與進化算法相似的框架與操作流程,并在此基礎(chǔ)上通過局部鄰域搜索使每次迭代的所有個體都達到局部最優(yōu)。進化搜索進行種群的全局廣度搜索,局部搜索進行個體的局部深度搜索。文化基因算法充分吸收進化算法和局部搜索算法的優(yōu)點,它不僅具有很強的全局搜索能力。同時,每次交叉和變異后均進行局部搜索,通過優(yōu)化種群分布,及早剔出不良個體,進而減少迭代次數(shù),加快算法的求解速度。這樣既保證了較高的收斂性能,又能獲得高質(zhì)量的解,從而使文化基因算法的搜索效率在某些問題領(lǐng)域比傳統(tǒng)進化算法要快幾個數(shù)量級。

附圖說明:

圖1表示本算法的詳細(xì)流程圖

圖2表示一個3*3的可行調(diào)度方案示例圖

圖3表示該算法的SPX交叉示例圖

圖4表示本算法的插入變異示例圖

圖5表示本算法的替換變異示例圖

具體實施方式:

該文化基因算法對于求解多目標(biāo)柔性作業(yè)車間調(diào)度問題有很好的實用性,該算法采用與進化算法相似的框架與操作流程,并在此基礎(chǔ)上通過局部鄰域搜索使每次迭代的所有個體都達到局部最優(yōu)。進化搜索進行種群的全局廣度搜索,局部搜索進行個體的局部深度搜索。

下面結(jié)合附圖和實施例,對本發(fā)明進一步的描述:

一、多目標(biāo)柔性作業(yè)車間調(diào)度問題,結(jié)合圖2

FJSP的描述如下:一個加工系統(tǒng)有m臺不同的機器M={Mj|j=1,2,...,m},要加工n個工件J={Ji|i=1,2,...,n}令Ki表示工件的總工序數(shù),Oik表示工件Ji的第k道工序k=1,2,...,Ki,所有工件的總工序數(shù)為Pikj表示工序Oik在機器Mj上的加工時間,工件的加工順序是預(yù)先確定的,工件Ji的每道工序Oik可以在mik臺不同的機器上加工mik=Mik,Mik為M中能加工Oik的機器集合。調(diào)度的目標(biāo)就是確定每個機器各個工件的加工順序和每個工序的開工時間,以使得某個指標(biāo)最優(yōu)。

為了簡化問題,作出如下假設(shè):所有設(shè)備在t=0時刻都是可用的,所有工件在t=0時刻釋放,每一臺設(shè)備在同一時刻只能加工一道工序,一道工序一旦開始加工不允許中斷,每一個工件的工序順序是預(yù)定的不能修改,忽略設(shè)備的設(shè)置時間和工序之間的轉(zhuǎn)換時間。

二、算法的關(guān)鍵步驟說明

1、個體編碼和適應(yīng)度計算,結(jié)合圖2

算法采用基于工序的編碼表示調(diào)度問題的解。對經(jīng)過進化操作產(chǎn)生的每個子代個體都將其解碼為活動調(diào)度,計算出需要優(yōu)化的多個適應(yīng)度函數(shù)值。在局部搜索過程中,也將每個鄰域解解碼為活動調(diào)度來計算適應(yīng)度函數(shù)值。局部搜索結(jié)束后,將選中的活動調(diào)度轉(zhuǎn)化為基于工序的編碼,用新個體的編碼和適應(yīng)度替換原有個體的編碼和適應(yīng)度。

2、交叉操作,結(jié)合圖3

該算法采用集合分割交叉(Set-Partition Crossover,SPX)方法,執(zhí)行交叉操作,該方法的過程如下:

(1)將工件集合{1,2,...n}隨機分成兩個非空集合J1和J2。

(2)設(shè)置子代個體的當(dāng)前元素小標(biāo)為1,如果第一個父代的第一個元素屬于J1,則子代個體的當(dāng)前元素賦值為第一個父代個體的第一個元素,且當(dāng)前元素下標(biāo)加1。

(3)如果第二個父代個體的第一個元素屬于J2,則子代個體的當(dāng)前元素下標(biāo)加1,以此類推,直到子代個體的所有元素均賦值。

(4)交換兩個非空集合J1和J2中的元素,重復(fù)以上步驟可以得到另一個子代個體。

為了更清楚的描述本發(fā)明的SPX交叉,結(jié)合圖3,描述如下:將工件集合{1,2,3}分為兩個子集合J1={2},J2={1,3}。第一個父代個體[112313223]第一個基因不屬于J1,不執(zhí)行操作;第二個父代個體[221233113]第一個基因不屬于J2,不執(zhí)行操作;同樣兩個父代個體的第二個基因也都不屬于對應(yīng)的工件集合,不執(zhí)行操作。接下來第一個個體的第三個基因2屬于J1,將其填入子代個體,并將子代個體下標(biāo)加1為2;第二個個體的第三個基因1屬于J2,將其填入子代個體,并將子代個體下標(biāo)加1為3;以此類推,可得到子代個體[213321213]。交換J1和J2包含的元素,執(zhí)行類似的操作可得到第二個子代個體[121232133]。

本發(fā)明的SPX交叉較其他交叉方法的好處在于本交叉操作不是單純地將父代個體的特征繼承下來,而在繼承父代特征的同時,發(fā)生了變異,也就是交叉方法中隱藏著變異行為。

3、變異操作

為了實現(xiàn)對調(diào)度空間的廣泛搜索,本算法以相等的概率Pm從插入變異和替換變異兩種方法中隨機選擇一種對種群中的個體進行變異。

(1)插入變異,結(jié)合圖4:在父代個體中隨機選取一個基因,將其插入到另一個隨機選取的基因之前。如圖4的3*3調(diào)度問題的個體[112313223],假設(shè)隨機選擇的兩個基因分別為第三個基因位上的2和第八個基因位上的2,則執(zhí)行插入變異后的個體為[112231323]。

(2)替換變異,結(jié)合圖5:在父代個體中,隨機選一段基因串,然后將其插入到一個隨機選取的基因之前。如圖53*3調(diào)度問題的個體[112313223],假設(shè)隨機選擇的基因串是由第五個基因位至第八個基因位上的基因組成的[1322],隨機選中的另一個基因位第三個基因位上的基因2,則執(zhí)行替換變異后的個體為[11322233]。

4、爬山法局部搜索

由于爬山法只選擇比當(dāng)前解好的鄰域解,容易陷入局部最優(yōu),而常用的迭代局部搜索,禁忌搜索,變鄰域搜索法等雖能夠跳出局部最優(yōu),得到更好的解,但迭代次數(shù)較多,消耗時間較長。于是本算法采用爬山法進行局部搜索,克服了這些問題,既能夠跳出局部最優(yōu)得到更好的解,也能夠減少計算時間。

本算法的爬山法局部搜索過程如下:

對于優(yōu)化問題的一個解s,鄰域是指對s實施一個操作M后能夠得到的解的集合。用N(s)表示s的鄰域,則:N(s)={s'|s'=M(s)}。步驟如下:

(1)選定一個當(dāng)前解s;

(2)按照鄰域結(jié)構(gòu)定義生成s的一個鄰域解集合N(s);

(3)將N(s)中比s質(zhì)量差的解刪除得到改善解集合N(s)′;

(4)計算N(s)'中解的個數(shù)|N(s)'|;

(5)如果|N(s)'|不等于零,則從N(s)'中按照一定控制策略選擇一個替換s,轉(zhuǎn)本步驟2;否則轉(zhuǎn)本步驟6

(6)算法結(jié)束。

本算法采用此爬山法進行局部搜索之后,對所有鄰域解集合進行非劣排序,在其Pareto前端集合中隨機選擇一個個體替換當(dāng)前解。

上述結(jié)合附圖只是對該算法的描述,并不因此限定本發(fā)明,本發(fā)明的保護范圍依據(jù)權(quán)利要求書的內(nèi)容確定。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1