欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

針對(duì)多目標(biāo)柔性作業(yè)車(chē)間調(diào)度問(wèn)題的含救濟(jì)算子的混合遺傳算法的制作方法

文檔序號(hào):11063789閱讀:590來(lái)源:國(guó)知局
針對(duì)多目標(biāo)柔性作業(yè)車(chē)間調(diào)度問(wèn)題的含救濟(jì)算子的混合遺傳算法的制造方法與工藝

本發(fā)明用于制訂多目標(biāo)柔性作業(yè)車(chē)間調(diào)度的生產(chǎn)調(diào)度計(jì)劃。



背景技術(shù):

柔性作業(yè)車(chē)間調(diào)度問(wèn)題是傳統(tǒng)作業(yè)車(chē)間調(diào)度問(wèn)題的一般化。不同于傳統(tǒng)作業(yè)車(chē)間調(diào)度問(wèn)題中每個(gè)工序只能在唯一一臺(tái)機(jī)器上加工的特點(diǎn),柔性作業(yè)車(chē)間調(diào)度問(wèn)題中的每個(gè)工序通常能夠在多臺(tái)機(jī)器上加工,問(wèn)題因此變得更加復(fù)雜,是一個(gè)NP困難問(wèn)題。而實(shí)際生產(chǎn)環(huán)境中通常又會(huì)有多個(gè)目標(biāo),將問(wèn)題變得更加復(fù)雜。以遺傳搜索和鄰域搜索組合的混合遺傳算法已經(jīng)被廣泛運(yùn)用于這類(lèi)問(wèn)題的求解,這種組合使算法同時(shí)具備了全局搜索能力和局部搜索能力。然而,算法對(duì)每個(gè)得到的解的利用仍有待提高。



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

本算法是針對(duì)多目標(biāo)柔性作業(yè)車(chē)間調(diào)度的混合遺傳算法,通過(guò)對(duì)混合遺傳算法的改進(jìn)使算法對(duì)每個(gè)得到的解利用率大大提高。本算法對(duì)混合遺傳算法的改進(jìn)主要包括以下方面:

本算法對(duì)傳統(tǒng)遺傳局部搜索算法的改進(jìn)主要包括以下方面:第一,多目標(biāo)柔性作業(yè)車(chē)間調(diào)度方案的編碼方式的復(fù)雜性;第二,可行的解(調(diào)度方案)在經(jīng)過(guò)交叉、變異操作后可能產(chǎn)生不可行的解(調(diào)度方案);第三,局部搜索可能作用于局部最優(yōu)解,會(huì)產(chǎn)生無(wú)意義的搜索過(guò)程;第四,搜索過(guò)的解可能被重復(fù)搜索;第五,以加權(quán)法解決多目標(biāo)問(wèn)題時(shí)各目標(biāo)函數(shù)的加權(quán)值不易確定;第六,一個(gè)解的鄰域解數(shù)量非常多,占用計(jì)算時(shí)間過(guò)多;第七,已經(jīng)產(chǎn)生的優(yōu)良解(調(diào)度方案)可能在之后的迭代過(guò)程中被遺失。

本發(fā)明解決其技術(shù)問(wèn)題所采用的技術(shù)方案是:第一,采用一種新的編碼方式;第二,采用一種專(zhuān)門(mén)用于本編碼方式的交叉算子和突變算子;第三,采用一種通過(guò)各目標(biāo)的相對(duì)重要性為各目標(biāo)函數(shù)賦加權(quán)值;第四,對(duì)每個(gè)解同時(shí)進(jìn)行遺傳搜索和局部搜索;第五,在對(duì)每個(gè)解進(jìn)行遺傳搜索與局部搜索的同時(shí),對(duì)劣解執(zhí)行救濟(jì)算子;第六,在局部搜索中,只隨機(jī)選取每個(gè)當(dāng)前解的部分鄰域解進(jìn)行檢測(cè);第七,設(shè)置精英組保存搜索過(guò)程中發(fā)現(xiàn)的非支配解。

本發(fā)明的有益效果:第一,簡(jiǎn)化了編碼過(guò)程;第二,避免了可行的解(調(diào)度方案)經(jīng)交叉和突變后出現(xiàn)不可行的解(調(diào)度方案);第三,使各目標(biāo)函數(shù)加權(quán)值更加符合實(shí)際生產(chǎn)情況;第四,對(duì)每個(gè)得到的解的利用率提高;第五,救濟(jì)算子使劣解也得到了充分的利用;第六,避免了局部搜索占用過(guò)多的計(jì)算時(shí)間;第七,避免了非支配解的遺失。

附圖說(shuō)明

下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明型進(jìn)一步說(shuō)明。

圖1是柔性作業(yè)車(chē)間調(diào)度的示例圖。

圖2是編碼結(jié)構(gòu)的示意圖。

圖3是機(jī)器選擇部分編碼方式的示例圖。

圖4是工序序列部分編碼方式的示例圖。

圖5是解碼過(guò)程的示例圖。

圖6是非支配解的示意圖。

圖7是救濟(jì)算子的示例圖。

圖8目標(biāo)函數(shù)相對(duì)重要性的示例圖。

圖9是兩點(diǎn)交叉算子示意圖。

圖10是基于工序編碼交叉算子的示例圖。

圖11是機(jī)器選擇部分編碼的突變算子的示例圖。

圖12是工序序列部分編碼的突變算子的示例圖。

圖13是含救濟(jì)算子的混合遺傳算法的流程的示意圖

圖14是算法詳細(xì)流程的示意圖。

具體實(shí)施方式

一、柔性作業(yè)車(chē)間調(diào)度問(wèn)題

在傳統(tǒng)的作業(yè)車(chē)間調(diào)度問(wèn)題中,每個(gè)工序只能在唯一一臺(tái)機(jī)器上加工。而對(duì)于柔性作業(yè)車(chē)間調(diào)度問(wèn)題而言,每個(gè)工序能夠在多臺(tái)機(jī)器上加工,這從圖1的示例中可以看出(圖1中的“-”表示該機(jī)器無(wú)法加工此工序)。這種改變使問(wèn)題模型更加符合實(shí)際的生產(chǎn)情境,但同時(shí)也加大了問(wèn)題的復(fù)雜性。

二、生產(chǎn)信息的表示

1.n個(gè)工件:J1,J2,…,Jn。

2.m臺(tái)機(jī)器:M1,M2,…,Mm。

3.工件Ji的第j道工序:Oij

4.工序集W:將J1-Jn上的工序依次排列,

W={w1,w2,…},

(1)

“w”的下標(biāo)為工序集中每個(gè)工序的編號(hào),從1開(kāi)始依次編號(hào)。

5.工件集中工序wi在第j臺(tái)機(jī)器的加工時(shí)間:tij。

6.工序的機(jī)器集Mij:可加工工序Oij的機(jī)器的集合

Mij={m1,m2,…},

(2)

“m”的下標(biāo)為機(jī)器集中每臺(tái)機(jī)器的編號(hào),從1開(kāi)始依次編號(hào)。

7.全部工件的全部加工時(shí)間T:

每一行依次表示工序集(式(1))中的工序,每一列以此表示機(jī)器集(式(2))中的機(jī)器。如果工序i無(wú)法在機(jī)器j上加工,則tij=-1。

三、編碼方式

如圖2所示的編碼結(jié)構(gòu),本編碼方式對(duì)每個(gè)解的編碼分為兩個(gè)部分,分別為機(jī)器選擇部分和工序序列部分。

1.機(jī)器選擇部分的編碼

如圖3所示的編碼示例(生產(chǎn)信息對(duì)應(yīng)圖1),編碼的每一位依次對(duì)應(yīng)工序集(式(1))上的工序,編碼的每一位的值為加工該工序的機(jī)器在機(jī)器集(式(2))中的編號(hào)。

2.工序序列部分的編碼

如圖4所示的編碼示例(生產(chǎn)信息對(duì)應(yīng)圖1),每個(gè)工件的每個(gè)工序都用此工件的編號(hào)表示,以同一編碼值出現(xiàn)的順序依次表示每個(gè)工件的各 工序,編碼的順序表示各工序的加工順序。

3.解碼過(guò)程

如圖5所示的解碼示例(生產(chǎn)信息對(duì)應(yīng)圖1),首先將工序序列部分的工序依次在機(jī)器選組部分找到加工機(jī)器,然后將這些工序依次加入對(duì)應(yīng)機(jī)器,即可得到生產(chǎn)調(diào)度方案。

四、非支配解

對(duì)于最大化n個(gè)目標(biāo)函數(shù)f1(x),f2(x),…,fn(x),當(dāng)兩個(gè)解x、y滿(mǎn)足:

則稱(chēng)解y支配解x。

如果一個(gè)解不被多目標(biāo)優(yōu)化問(wèn)題的任何其他解支配,那么這個(gè)解被稱(chēng)為一個(gè)非支配解。

對(duì)于兩目標(biāo)優(yōu)化問(wèn)題(最大化目標(biāo)函數(shù))的非支配解可以被圖6形象地描述出來(lái)。

五、精英組

通過(guò)將每一代中的非支配解加入精英組,并在每一代更新精英組(即刪掉加入新的解后精英組中不再是非支配解的解)。

六、救濟(jì)算子

救濟(jì)算子是一種優(yōu)化劣解的算子。

救濟(jì)空間用來(lái)存儲(chǔ)種群中的優(yōu)良個(gè)體的共有序列。

如圖7所示的示例(生產(chǎn)信息對(duì)應(yīng)圖1),救濟(jì)算子的執(zhí)行過(guò)程如下:

1.選擇工件

隨機(jī)選擇一個(gè)工件。

2.確定救濟(jì)空間

對(duì)于機(jī)器選擇部分,從最優(yōu)解將被選擇工件的工序所使用的加工機(jī)器編號(hào)提取;對(duì)于工序序列部分,從最優(yōu)解中將被選擇工件的工序的位置提取。將提取到的信息記入救濟(jì)空間。

3.優(yōu)化劣解

對(duì)于劣解的機(jī)器選擇部分,將被選擇工件的工序所使用的加工機(jī)器的編號(hào)更換為救濟(jì)空間中的機(jī)器編號(hào);對(duì)于劣解的工序序列部分,將被選擇工件的工序先加入對(duì)應(yīng)位置,再將其他工件的工序按照原有的相對(duì)位置加入供需序列部分的空位。

七、通過(guò)相對(duì)重要性的權(quán)值確定法

實(shí)際生產(chǎn)中,各目標(biāo)函數(shù)間的相對(duì)重要性通常由生產(chǎn)者根據(jù)實(shí)際情況得出。加權(quán)法解決多目標(biāo)(f1(x),f2(x),…,fn(x))問(wèn)題時(shí),適應(yīng)度函數(shù)為

f(x)=w1f1(x)+w2f2(x)+…+wnfn(x), (6)

其中

wi≥0,i=1,2,…,n, (7)

w1+w2+…+wn=1. (8)

以如圖8所示的三個(gè)目標(biāo)函數(shù)的相對(duì)重要性示例為例,加權(quán)值的確定方法

如下:

1.將相對(duì)重要性表(圖8)轉(zhuǎn)化為矩陣:

2.對(duì)得到的矩陣的各列進(jìn)行標(biāo)準(zhǔn)化(即對(duì)每列分別乘以一個(gè)數(shù),使各列的和為1):

3.對(duì)各列標(biāo)準(zhǔn)化后的矩陣的各行進(jìn)行標(biāo)準(zhǔn)化(即先將每行求和,再對(duì)每行分別乘以一個(gè)數(shù),使各行的和為1):

4.對(duì)行標(biāo)準(zhǔn)化后的矩陣的每行依次表示三個(gè)目標(biāo)函數(shù)的加權(quán)值,即f1、f2、f3的加權(quán)值分別為w1=0.578、w2=0.302、w3=0.120。

八、兩點(diǎn)交叉算子

在本算法中,兩點(diǎn)交叉算子被用于編碼機(jī)器選擇部分的交叉。

如圖9所示,兩點(diǎn)交叉算子的步驟為:

1.隨機(jī)選擇編碼中兩個(gè)不同的位置。

2.交換兩個(gè)位置點(diǎn)之間的部分。

九、基于工序編碼交叉算子

在本算法中,基于工序編碼交叉算子被用于編碼的工序序列部分的交叉。

如圖10的示例所示,基于工序編碼交叉算子的步驟為:

1.隨機(jī)地從工件中產(chǎn)生兩個(gè)子工件集Js1和Js2

2.把父代1中屬于Js1的元素復(fù)制入子代1中的相同位置,把父代2中屬于Js2的元素復(fù)制入子代2中的相同位置。

3.把父代2中除Js2所含元素以外的其他元素按順序填入子代1的空位置,把父代1中除Js1所含元素以外的其他元素按順序填入子代2的空位置。

十、機(jī)器選擇部分的突變算子

如圖11的示例所示,機(jī)器選擇部分的突變算子為:

1.在機(jī)器選擇部分隨機(jī)選擇一個(gè)位置。

2.從該位置對(duì)應(yīng)工序的機(jī)器集中隨機(jī)選擇一臺(tái)機(jī)器(的編號(hào))替換當(dāng)前機(jī)器(的編號(hào))。

十一、工序序列部分的突變算子

如圖12的示例所示,工序序列部分的突變算子為:

1.在工序序列部分隨機(jī)選擇兩個(gè)位置。

2.交換這兩個(gè)位置對(duì)應(yīng)的值(工序)。

十二、只檢測(cè)部分鄰域解的局部搜索算法

預(yù)先指定鄰域解檢測(cè)個(gè)數(shù)k。

那么,對(duì)于當(dāng)前解的局部搜索過(guò)程如下:

1.隨機(jī)選擇當(dāng)前解的一個(gè)鄰域解。

2.如果此鄰域解比當(dāng)前解更優(yōu),則鄰域解作為新的當(dāng)前解替換原來(lái)的當(dāng)前解,并返回本步驟1;否則執(zhí)行下一步。

3.如果已經(jīng)檢測(cè)了當(dāng)前解的k個(gè)鄰域解,即當(dāng)前解被檢測(cè)的k個(gè)鄰域解中沒(méi)有更優(yōu)的解,則程序結(jié)束;否則返回本步驟1。

十三、輪盤(pán)賭選擇法

預(yù)先制定要選擇的解的個(gè)數(shù)為n。

輪盤(pán)賭選擇法的過(guò)程如下:

1.計(jì)算每個(gè)個(gè)體(xi)被遺傳到下一代的概率P(xi):

其中N為待選擇種群的種群規(guī)模。

2.計(jì)算每個(gè)個(gè)體(xi)的積累概率qi

3.在[0,1]之間產(chǎn)生一個(gè)隨機(jī)數(shù)r。

4.如果r<q1,則個(gè)體x1被選擇;如果qk-1<r≤qk,則選擇個(gè)體xk

5.對(duì)本步驟3、步驟4重復(fù)n次。

十四、含救濟(jì)算子的混合遺傳算法

如圖13,假設(shè)種群規(guī)模為Npop,含救濟(jì)算子的混合遺傳算法的執(zhí)行步驟為:

1.更新救濟(jì)空間,即隨機(jī)選擇一個(gè)工件,在救濟(jì)空間中記錄最優(yōu)解中與該工件有關(guān)的信息。

2.隨機(jī)選擇Npop/2個(gè)個(gè)體,進(jìn)行遺傳搜索(交叉、突變)。

3.(與2同時(shí)進(jìn)行)隨機(jī)選擇Npop/2個(gè)個(gè)體,進(jìn)行遺傳搜索(交叉、突變)。

4.(與2同時(shí)進(jìn)行)選擇適應(yīng)度最差的Npop/2個(gè)個(gè)體,執(zhí)行救濟(jì)算子。

5.將通過(guò)本步驟2、步驟3、步驟4產(chǎn)生的解合并,從中選擇Npop個(gè)解進(jìn)入下一代。

十五、算法詳細(xì)流程如下

如圖14。

設(shè)種群規(guī)模為Npop;突變概率為Pm;局部搜索中對(duì)每個(gè)當(dāng)前解檢測(cè)k個(gè)鄰域解;算法迭代的終止條件為已經(jīng)迭代了n次。

步驟一—初始化種群

1.根據(jù)生產(chǎn)信息分別產(chǎn)生全部工件的工序集W(式(1))和全部工序的機(jī)器集Mij(式(2))。

2.按照工序集中工序的順序,依次從相應(yīng)工序的機(jī)器集中隨機(jī)選擇一臺(tái)機(jī)器,以機(jī)器集中的編號(hào)組成機(jī)器選擇部分的編碼。

3.根據(jù)每個(gè)工件的工序數(shù)產(chǎn)生相應(yīng)個(gè)數(shù)的數(shù)值為工件編號(hào)的數(shù),并將這些數(shù)隨機(jī)排列組成工序序列部分的編碼。

4.機(jī)器選擇部分的編碼在前,工序序列部分的編碼在后,將它們組合。

5.返回本步驟2,直至已經(jīng)產(chǎn)生Npop個(gè)解。

步驟二—更新精英組

1.將當(dāng)前種群中的非支配解復(fù)制入精英組。

2.檢測(cè)精英組中的解,將被其他解所支配的解從精英組中刪除。

步驟三——更新救濟(jì)空間

1.選擇工件

隨機(jī)選擇一個(gè)工件。

2.確定救濟(jì)空間

對(duì)于機(jī)器選擇部分,從最優(yōu)解將被選擇工件的工序所使用的加工機(jī)器編號(hào)提取;對(duì)于工序序列部分,從最優(yōu)解中將被選擇工件的工序的位置提取。將提取到的信息記入救濟(jì)空間。

步驟四—計(jì)算適應(yīng)度函數(shù)值

1.根據(jù)生產(chǎn)者給出的相對(duì)重要性關(guān)系,通過(guò)式(9)、式(10)、式(11)確定各目標(biāo)函數(shù)的加權(quán)值。

2.通過(guò)式(6)計(jì)算每個(gè)解的適應(yīng)度函數(shù)值。

步驟五——遺傳搜索

1.隨機(jī)選擇Npop/2個(gè)個(gè)體。

2.交叉

隨機(jī)將被選擇的解兩兩一組作為一對(duì)父代解。

對(duì)每個(gè)解的機(jī)器選擇部分使用如圖9所示的兩點(diǎn)交叉算子進(jìn)行交叉,對(duì)每個(gè)解的工序序列部分采用如圖10所示的基于工序編碼交叉算子進(jìn)行交叉。

3.根據(jù)突變概率Pm計(jì)算進(jìn)行交叉的解的數(shù)目,并隨機(jī)選出相應(yīng)數(shù)目的解。對(duì)每個(gè)解的機(jī)器選擇部分和工序序列部分分別采用如圖11所示的突變算子和如圖12所示的突變算子進(jìn)行突變。

步驟六—局部搜索(與步驟五同時(shí)進(jìn)行)

(對(duì)每個(gè)解)

1.隨機(jī)選擇當(dāng)前解的一個(gè)鄰域解,鄰域解通過(guò)遺傳搜索中的突變算子產(chǎn)生。

2.如果鄰域解優(yōu)于當(dāng)前解,則以鄰域解作為當(dāng)前解替換原當(dāng)前解,返回本步驟1;否則,執(zhí)行下一步。

3.如果已經(jīng)檢測(cè)了當(dāng)前解的k個(gè)鄰域解,則局部搜索結(jié)束,當(dāng)前解即為局部搜索的結(jié)果;否則,返回本步驟1。

步驟七——救濟(jì)算子(與步驟五同時(shí)進(jìn)行)

1.獲取步驟三得到的救濟(jì)空間中的信息,包括被選擇的工件及其加工機(jī)器和工序位置。

2.選擇適應(yīng)度最差的Npop/2個(gè)個(gè)體。

3.對(duì)于劣解的機(jī)器選擇部分,將被選擇工件的工序所使用的加工機(jī)器的編號(hào)更換為救濟(jì)空間中的機(jī)器編號(hào);對(duì)于劣解的工序序列部分,將被選擇工件的工序先加入對(duì)應(yīng)位置,再將其他工件的工序按照原有的相對(duì)位置加入供需序列部分的空位。

步驟七—選擇

采用輪盤(pán)賭選擇法選擇:

1.通過(guò)式(12)計(jì)算每個(gè)個(gè)體(xi)被遺傳到下一代的概率P(xi)。

2.通過(guò)式(13)計(jì)算每個(gè)個(gè)體(xi)的積累概率qi

3.在[0,1]之間產(chǎn)生一個(gè)隨機(jī)數(shù)r。

4.如果r<q1,則個(gè)體x1被選擇;如果qk-1<r≤qk,則選擇個(gè)體xk。

5.對(duì)3、4重復(fù)Npop次,以選擇到Npop個(gè)個(gè)體。

步驟八—迭代

1.如果算法已經(jīng)迭代了指定次數(shù),則執(zhí)行下一步驟(更新精英組);否則,返回步驟二。

步驟十一—更新精英組

1.將當(dāng)前種群中的非支配解復(fù)制入精英組。

2.檢測(cè)精英組中的解,將被其他解所支配的解從精英組中刪除。

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
巴林右旗| 商洛市| 乡宁县| 井研县| 乌拉特后旗| 新竹市| 乐亭县| 柳河县| 肇源县| 德钦县| 阿克苏市| 黄大仙区| 宁河县| 重庆市| 酒泉市| 阜新| 新干县| 凯里市| 民丰县| 柳林县| 鹿泉市| 白银市| 曲水县| 洪泽县| 将乐县| 神池县| 安顺市| 宁安市| 安岳县| 平江县| 泸西县| 新源县| 南昌市| 勐海县| 叶城县| 苍梧县| 宜阳县| 云霄县| 河东区| 凉山| 通化县|