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

針對(duì)多目標(biāo)柔性作業(yè)車(chē)間調(diào)度的含禁忌表的遺傳與局部搜索算法的制作方法

文檔序號(hào):11063163閱讀:599來(lái)源:國(guó)知局
針對(duì)多目標(biāo)柔性作業(yè)車(chē)間調(diào)度的含禁忌表的遺傳與局部搜索算法的制造方法與工藝

本發(fā)明專(zhuān)利用于制訂多目標(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)題的一般化,由于該情境下每個(gè)工序能夠在多臺(tái)機(jī)器上加工,因此問(wèn)題的復(fù)雜性大大增加?,F(xiàn)實(shí)生產(chǎn)中,生產(chǎn)調(diào)度又往往要同時(shí)優(yōu)化多個(gè)目標(biāo),這無(wú)疑使問(wèn)題的復(fù)雜性進(jìn)一步加大。經(jīng)典的遺傳局部搜索算法被廣泛應(yīng)用于對(duì)于多目標(biāo)柔性作業(yè)車(chē)間調(diào)度問(wèn)題的求解,取得了不錯(cuò)的效果。然而,這種算法仍不夠簡(jiǎn)潔高效,包括以析取圖表示調(diào)度方案的方式。



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

本算法針對(duì)多目標(biāo)柔性作業(yè)車(chē)間調(diào)度的遺傳局部搜索算法,通過(guò)對(duì)編碼的改進(jìn)使算法更加簡(jiǎ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)用于本編碼方式的交叉算子和突變算子;第三,將局部最優(yōu)解記錄于禁忌表中,再次出現(xiàn)時(shí)直接進(jìn)行遺傳搜索;第四,將搜索過(guò)的鄰域解加入禁忌表,再次出現(xiàn)時(shí)直接進(jìn)行遺傳搜索;第五,采用隨機(jī)加權(quán)法為各目標(biāo)函數(shù)賦加權(quán)值;第六,在局部搜索中,只隨機(jī)選取每個(gè)當(dāng)前解的部分鄰域解進(jìn)行檢測(cè);第七,設(shè)置精英組保存搜索過(guò)程中發(fā)現(xiàn)的非支配解。

本發(fā)明的有益效果:第一,簡(jiǎn)化了編碼過(guò)程;第二,避免了可行的解(調(diào)度方案)經(jīng)交叉和突變后出現(xiàn)不可行的解(調(diào)度方案);第三,避免了對(duì)局部最優(yōu)解進(jìn)行無(wú)意義的局部搜索;第四,避免了對(duì)搜索過(guò)的鄰域解進(jìn)行重復(fù)的局部搜索;第五,確定各目標(biāo)函數(shù)加權(quán)值的過(guò)程變得十分簡(jiǎn)便;第六,避免了局部搜索占用過(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是遺傳搜索和局部搜索與本算法的比較圖。

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

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

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

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

圖12是含禁忌表的遺傳與局部搜索算法的流程的示意圖

圖13是算法詳細(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滿足:

則稱(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ī)加權(quán)法

對(duì)于多目標(biāo)問(wèn)題,我們采用隨機(jī)加權(quán)法為每個(gè)目標(biāo)函數(shù)賦予加權(quán)值,從而將多目標(biāo)問(wèn)題轉(zhuǎn)化為單目標(biāo)問(wèn)題。對(duì)于每個(gè)解,隨機(jī)加權(quán)法的加權(quán)值確定方式如下:

randomi為隨機(jī)產(chǎn)生的數(shù),wi滿足:

則每個(gè)解適應(yīng)度函數(shù)為:

七、禁忌表

禁忌表在禁忌搜索算法中被用于記錄局部搜索中已搜索過(guò)的解,以避免重復(fù)搜索,同時(shí)禁忌表會(huì)在局部搜索的每一次迭代后更新。本算法引入禁忌表,用它記錄局部搜索過(guò)程中搜索到的局部最優(yōu)解和搜索過(guò)的鄰域解。當(dāng)禁忌表中記錄的解再次出現(xiàn)在種群中時(shí),直接進(jìn)行遺傳搜索而不再進(jìn)行局部搜索。

八、遺傳組

本算法中設(shè)置遺傳組,用于暫時(shí)儲(chǔ)存將要進(jìn)行遺傳搜索的解。

九、遺傳算法和局部搜索與本算法的比較

如圖7,以最大化目標(biāo)函數(shù)為例。

1.局部搜索

如圖7-(a),局部搜索僅僅能夠搜索每個(gè)解周?chē)慕?,?duì)于處于“山頂”的點(diǎn)則無(wú)法繼續(xù)搜索更優(yōu)的點(diǎn),即陷入局部最優(yōu)。

2.遺傳算法

如圖7-(b),遺傳算法雖然能夠在全局進(jìn)行搜索,但是也可能無(wú)法快速抵達(dá)“山頂”。

3.本算法

如圖7-(c),本算法將局部搜索得到的局部最優(yōu)解加入禁忌表,再次出現(xiàn)時(shí)直接進(jìn)行遺傳搜索(本算法中禁忌表還被用于記錄局部搜索過(guò)程中搜索過(guò)的鄰域解,以避免重復(fù)搜索)。

十、只檢測(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。

此外,由于本算法對(duì)每個(gè)解的各目標(biāo)函數(shù)隨機(jī)加權(quán),因此每個(gè)當(dāng)前解都有自己獨(dú)特的局部搜索方向,從而使局部搜索方向多樣化。

十一、錦標(biāo)賽選擇法

預(yù)先指定錦標(biāo)賽選擇法每次選擇的個(gè)體數(shù)量n(n≤Npop)。

錦標(biāo)賽選擇法的步驟如下:

1.從種群中隨機(jī)選擇n個(gè)個(gè)體。

2.從選擇出的n個(gè)個(gè)體中選擇最優(yōu)的一個(gè)個(gè)體。

3.重復(fù)步驟1、步驟2,直至選擇到相應(yīng)個(gè)數(shù)的個(gè)體。

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

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

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

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

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

十三、基于工序編碼交叉算子

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

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

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

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

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

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

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

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

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

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

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

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

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

十六、含禁忌表的遺傳與局部搜索算法

如圖12,含禁忌表的遺傳與局部搜索算法的執(zhí)行步驟為:

1.將局部搜索過(guò)程中搜索到的局部最優(yōu)解和搜索過(guò)的鄰域解加入禁忌表。

2.在對(duì)每一代進(jìn)行搜索的過(guò)程中,對(duì)于禁忌表中出現(xiàn)的解直接加入遺傳組,不再進(jìn)行局部搜索。

3.對(duì)沒(méi)有在禁忌表中出現(xiàn)的解進(jìn)行局部搜索,將搜索到的局部最優(yōu)解加入遺傳組,同時(shí)將此局部最優(yōu)解和搜索過(guò)的鄰域解加入禁忌表(更新禁忌表)。

4.對(duì)遺傳組中的解進(jìn)行遺傳搜索。

5.如果滿足終止條件,即已經(jīng)檢測(cè)了指定個(gè)數(shù)的解,則算法結(jié)束;否則返回步驟1。

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

如圖13。

設(shè)種群規(guī)模為Npop;交叉概率為Pc;突變概率為Pm;局部搜索中對(duì)每個(gè)當(dāng)前解檢測(cè)k個(gè)鄰域解;對(duì)遺傳組的選擇采用錦標(biāo)賽選擇法,錦標(biāo)賽選擇法每一輪選擇的解的數(shù)目為n,n<Npop;算法迭代的終止條件為已經(jīng)檢測(cè)了num個(gè)解。

步驟一—初始化種群

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è)解。

步驟二—計(jì)算目標(biāo)函數(shù)值

1.計(jì)算每個(gè)解的目標(biāo)函數(shù)值。

步驟三—更新精英組

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

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

步驟四—計(jì)算適應(yīng)度函數(shù)值(對(duì)每個(gè)解)

1.通過(guò)式(6)確定各目標(biāo)函數(shù)的加權(quán)值。

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

步驟五—更新禁忌表

1.將當(dāng)前種群中在禁忌表出現(xiàn)的解加入遺傳組。

步驟六—局部搜索(對(duì)每個(gè)解)

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

2.將此鄰域解復(fù)制入禁忌表。

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

4.如果已經(jīng)檢測(cè)了當(dāng)前解的k個(gè)鄰域解,則執(zhí)行下一步;否則,返回本步驟1.

5.將檢測(cè)到的局部最優(yōu)解加入遺傳組。

步驟七—(對(duì)遺傳組)選擇

1.從遺傳組中隨機(jī)選擇n個(gè)個(gè)體。

2.根據(jù)適應(yīng)度函數(shù)值,從被選擇的n個(gè)個(gè)體中選擇最優(yōu)的一個(gè)個(gè)體。

3.返回本步驟1,直至選擇到目標(biāo)個(gè)數(shù)的個(gè)體。

步驟八—(對(duì)遺傳組)交叉

1.根據(jù)交叉概率Pc計(jì)算進(jìn)行交叉的解的數(shù)目,并隨機(jī)選出相應(yīng)數(shù)目的解。

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

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

步驟九—(對(duì)遺傳組)突變

1.根據(jù)突變概率Pm計(jì)算進(jìn)行交叉的解的數(shù)目,并隨機(jī)選出相應(yīng)數(shù)目的解。

2.對(duì)每個(gè)解的機(jī)器選擇部分和工序序列部分分別采用如圖10所示的突變算子和如圖11所示的突變算子進(jìn)行突變。

步驟十—迭代

1.如果算法已經(jīng)檢測(cè)了num個(gè)解,則執(zhí)行下一步驟(更新精英組);否則,返回步驟二(計(jì)算目標(biāo)函數(shù)值)。

步驟十一—更新精英組

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

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

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
资阳市| 曲阳县| 巴里| 富平县| 乳源| 南通市| 朔州市| 嵩明县| 保靖县| 确山县| 屯留县| 瑞丽市| 宿州市| 镇雄县| 彰化市| 南昌市| 噶尔县| 眉山市| 岑溪市| 栾川县| 密云县| 抚顺县| 依兰县| 额敏县| 平度市| 黎城县| 星子县| 贡觉县| 延边| 泰来县| 郴州市| 林芝县| 广宁县| 边坝县| 通榆县| 邢台县| 灵山县| 神农架林区| 祥云县| 平昌县| 禄劝|