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

一種自交叉遺傳算法解柔性作業(yè)車(chē)間調(diào)度問(wèn)題的制作方法

文檔序號(hào):11063176閱讀:1109來(lái)源:國(guó)知局
一種自交叉遺傳算法解柔性作業(yè)車(chē)間調(diào)度問(wèn)題的制造方法與工藝

本發(fā)明涉及作業(yè)車(chē)間調(diào)度領(lǐng)域,具體地涉及柔性作業(yè)車(chē)間調(diào)度領(lǐng)域。



背景技術(shù):

柔性作業(yè)車(chē)間調(diào)度是作業(yè)車(chē)間調(diào)度問(wèn)題的延伸,與作業(yè)車(chē)間調(diào)度問(wèn)題不同的是,柔性作業(yè)車(chē)間調(diào)度,對(duì)于一道工序可以有一組不同設(shè)備供選擇加工。柔性作業(yè)車(chē)間調(diào)度除了要解決工序的加工順序的問(wèn)題還要為每道工序選擇合適的設(shè)備。為了解決柔性作業(yè)車(chē)間調(diào)度問(wèn)題,提出了很多算法,比如遺傳算法。為了提高遺傳算法的性能,研究者相繼提出自適應(yīng)的遺傳算法和混合遺傳算法。自適應(yīng)的遺傳算法種群規(guī)模、交叉變異概率等遺傳參數(shù)在進(jìn)化過(guò)程中是動(dòng)態(tài)變化的;混合遺傳算法是遺傳算法與其他優(yōu)化算法如模擬退火算法、禁忌搜索、免疫算法等結(jié)合??偨Y(jié)遺傳算法的發(fā)展過(guò)程可以看出,研究者都主要專注于研究染色體的表示方式來(lái)避免不可行解和進(jìn)化策略來(lái)避免算法早熟,并且?guī)缀跛械慕徊娑际请p親遺傳,在兩條染色體上的交叉。



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

針對(duì)上述的不足之處,本發(fā)明提出了一種基于工序分配和設(shè)備選擇分別編碼的自交叉遺傳算法求解柔性作業(yè)車(chē)間調(diào)度問(wèn)題。這種新的交叉機(jī)制基于單親遺傳,更為簡(jiǎn)便,提高了子代解的可行性,省略了交叉操作之后的可行性驗(yàn)證過(guò)程。

本算法的目標(biāo)是:第一.解決遺傳算法交叉和變異過(guò)程中會(huì)產(chǎn)生不可行解的問(wèn)題;第二.解決遺傳算法的進(jìn)化過(guò)程越來(lái)越復(fù)雜的問(wèn)題。

本發(fā)明針對(duì)其技術(shù)問(wèn)題采用的技術(shù)方案是:第一.工序排序和設(shè)備選擇兩部分分別編碼;第二.工序部分基于工件號(hào)編碼,設(shè)備部分用概率表示選擇的設(shè)備;第三.采用基于單親遺傳的自交叉的交叉方式;第四.針對(duì)染色體兩段不同的部分采用兩種不同的變異算子。

該技術(shù)方案的實(shí)施步驟如下:

本發(fā)明的優(yōu)化目標(biāo)是最小化總完工時(shí)間:Cmax=max{Ci|i=1,…,n},設(shè)種群規(guī)模為N,最大迭代次數(shù)為n,交叉概率為Pc,變異概率為Pm

步驟1:初始化種群N

步驟1.1:采用基于工序和設(shè)備的雙重編碼方式,工序編碼部分按照工件號(hào)編碼,工件包含幾道工序該工件號(hào)出現(xiàn)幾次;設(shè)備編碼部分基于概率編碼,隨機(jī)產(chǎn)生0到1之間的兩位小數(shù)表示工序選擇設(shè)備的概率;

步驟1.2:采用隨機(jī)的方式初始化種群,重復(fù)以上工序和設(shè)備的編碼過(guò)程,產(chǎn)生指定種群 規(guī)模N的初始解

步驟2:計(jì)算染色體適應(yīng)度值,以總完工時(shí)間即第一個(gè)工件開(kāi)始加工到最后一個(gè)工件完工所需的時(shí)間作為為適應(yīng)度函數(shù)

步驟3:判斷是否達(dá)到最大迭代次數(shù)n,是則返回最優(yōu)調(diào)度方案,結(jié)束此程序,否則執(zhí)行下一步驟;

步驟4:根據(jù)交叉概率Pc執(zhí)行交叉,對(duì)工序部分作自交叉操作,設(shè)備部分與工序部分一起作相同的交叉變換;

步驟5:根據(jù)變異概率Pm執(zhí)行變異操作,對(duì)工序部分采用交換型的變異,設(shè)備部分采用插入型的變異

步驟6::計(jì)算子代解的適應(yīng)度,選擇子代解跟父代解的前N個(gè)個(gè)體作為下一次迭代的初始種群;

步驟7:返回步驟3,重復(fù)程序

本發(fā)明的有益效果是:第一.基于工件號(hào)和小數(shù)概率的編碼,保證了遺傳操作所產(chǎn)生的任意解都是可行的;第二.自交叉方式不需要使用特別復(fù)雜或者專門(mén)設(shè)計(jì)的交叉方式,便能使產(chǎn)生的所有解都是可行的;第三.采用兩種不同的變異算子,既保護(hù)了父代解中優(yōu)秀的基因,又保持了種群的多樣性。

附圖說(shuō)明

圖1表示本算法的流程圖。

圖2表示一個(gè)3*3的柔性作業(yè)車(chē)間調(diào)度問(wèn)題的示例。

圖3表示基于圖2所示問(wèn)題的一條染色體。

圖4表示圖3所示染色體解碼所得甘特圖。

圖5表示圖3所示染色體自交叉的過(guò)程。

圖6表示圖3所示染色體包含兩種變異算子的變異過(guò)程

具體實(shí)施方式

為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖和實(shí)施例對(duì)本發(fā)明進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解此處所描述的具體實(shí)施例僅僅用于解釋本發(fā)明并不用于限定本發(fā)明。

本發(fā)明針對(duì)目前遺傳算法求解柔性作業(yè)車(chē)間調(diào)度問(wèn)題存在的不足之處,對(duì)其編碼方式,交叉,變異做出了改進(jìn),優(yōu)化了遺傳算法的性能,能更好的運(yùn)用到實(shí)際車(chē)間調(diào)度中。

下面結(jié)合附圖進(jìn)一步描述此發(fā)明。

柔性作業(yè)車(chē)間調(diào)度問(wèn)題結(jié)合圖2一個(gè)3個(gè)工件3臺(tái)設(shè)備的柔性作業(yè)車(chē)間調(diào)度問(wèn)題實(shí)例(圖中“-”表示該設(shè)備不能加工到該工序)可以表述如下:n個(gè)獨(dú)立工件的集合J={J1,J2,…,Jn},m臺(tái)設(shè)備的集合M={M1,M2,…,Mm},工件Ji由ni個(gè)優(yōu)先約束的工序 序列組成,這些工序根據(jù)給定的序列一個(gè)接一個(gè)的加工。每一道工序Oi,j表示工件Ji的第j道工序,必須從給定的一個(gè)子集Mi,j∈M中選擇一臺(tái)設(shè)備加工。工序的加工時(shí)間由設(shè)備決定。pi,j,k表示Oi,j在設(shè)備Mk上的加工時(shí)間。調(diào)度安排包括兩個(gè)子問(wèn)題:分配每一道工序到一個(gè)合適的設(shè)備的路徑;確定所有設(shè)備上的工序序列的排序。

令Ci表示工件Ji的完工時(shí)間,優(yōu)化目標(biāo)是最小化總完工時(shí)間:Cmax=max{Ci|i=1,…,n}

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

一種自交叉遺傳算法解柔性作業(yè)車(chē)間調(diào)度問(wèn)題,該算法的詳細(xì)流程如下:

本發(fā)明的優(yōu)化目標(biāo)是最小化總完工時(shí)間:Cmax=max{Ci|i=1,…,n},設(shè)種群規(guī)模為N,最大迭代次數(shù)為n,交叉概率為Pc,變異概率為Pm

步驟1:初始化種群N

步驟1.1:采用基于工序和設(shè)備的雙重編碼方式,工序編碼部分按照工件號(hào)編碼,工件包含幾道工序該工件號(hào)出現(xiàn)幾次;設(shè)備編碼部分基于概率編碼,隨機(jī)產(chǎn)生0到1之間的兩位小數(shù)表示工序選擇設(shè)備的概率;

步驟1.2:采用隨機(jī)的方式初始化種群,重復(fù)以上工序和設(shè)備的編碼過(guò)程,產(chǎn)生指定種群規(guī)模N的初始解

步驟2:計(jì)算染色體適應(yīng)度值,以總完工時(shí)間即第一個(gè)工件開(kāi)始加工到最后一個(gè)工件完工所需的時(shí)間作為為適應(yīng)度函數(shù)

步驟3:判斷是否達(dá)到最大迭代次數(shù)n,是則返回最優(yōu)調(diào)度方案,結(jié)束此程序,否則執(zhí)行下一步驟;

步驟4:根據(jù)交叉概率Pc執(zhí)行交叉,對(duì)工序部分作自交叉操作,設(shè)備部分與工序部分一起作相同的交叉變換;

步驟5:根據(jù)變異概率Pm執(zhí)行變異操作,對(duì)工序部分采用交換型的變異,設(shè)備部分采用插入型的變異

步驟6::計(jì)算子代解的適應(yīng)度,選擇子代解跟父代解的前N個(gè)個(gè)體作為下一次迭代的初始種群;

步驟7:返回步驟3,重復(fù)程序

所述步驟1.1的編碼方式由于柔性作業(yè)車(chē)間調(diào)度問(wèn)題的編碼既要給出加工工序的先后順序,同時(shí)還需要為每個(gè)工序選擇加工機(jī)器,因此本發(fā)明采用基于工序和設(shè)備的雙重編碼方法。工序編碼部分按照工件號(hào)編碼,工件包含幾道工序該工件號(hào)出現(xiàn)幾次。比如圖2所示問(wèn)題為3個(gè)工件7道工序的問(wèn)題,編碼的染色體包含7個(gè)基因:1122233,其中1,2,3分別表示工件編號(hào),相同編號(hào)出現(xiàn)的位置表示工件的工序順序,比如第5個(gè)基因位的‘2’表示工件2的第2道工序,打亂這個(gè)順序即生產(chǎn)新的解。設(shè)備編碼部分基于概率編碼,隨機(jī)產(chǎn)生0到1之間的兩位小數(shù)表示工序選擇設(shè)備的概率。比如工序O1,2對(duì)應(yīng)的隨機(jī)數(shù)是0.53,參照給定的柔性作業(yè)車(chē)間調(diào)度問(wèn)題可用資源信息表,O1,2可以在設(shè)備2和設(shè)備3上加工,0.53在[0.50,1)之間,O1,2在設(shè)備3上加工。所以圖3表示圖2所示問(wèn)題的一條染色體。

所述步驟2在計(jì)算適應(yīng)度之前,先解碼染色體,根據(jù)加工時(shí)間來(lái)計(jì)算適應(yīng)度函數(shù)值。工序部分根據(jù)工序優(yōu)先約束解碼;設(shè)備部分是根據(jù)可用資源信息表所表示的設(shè)備來(lái)解碼的。解碼完成之后構(gòu)造一個(gè)甘特圖,以總完工時(shí)間即第一個(gè)工件開(kāi)始加工到最后一個(gè)工件完工所需的時(shí)間為適應(yīng)度函數(shù)??偼旯r(shí)間越小,適應(yīng)度越好。如圖3表示的染色體解碼表示的工序加工順序是O1,1,O2,1,O3,1,O3,2,O2,2,O1,2,O2,3;他們所選擇的設(shè)備分別為:M1,M3,M3,M1,M1,M3,M3,加工時(shí)間分別為1min,4min,3min,1min,1min,2min,2min。所得甘特圖如圖4。

所述步驟4自交叉操作是將單親遺傳算法(單親遺傳算法充分利用染色體自身的信息在一條染色體上完成相關(guān)的遺傳算子操作,搜索問(wèn)題的滿意解)相關(guān)遺傳操作引入到傳統(tǒng)的遺傳算法上,從而充分利用染色體自身的信息,挖掘有用信息最后實(shí)現(xiàn)優(yōu)化的目的。相比于已有的雙親遺傳算法,執(zhí)行更簡(jiǎn)單方便,不需要交叉之后校正染色體得到可行解。

所述步驟4自交叉操作對(duì)工序部分進(jìn)行自交叉操作,設(shè)備部分隨工序部分做相同的交叉變化,因?yàn)閮H同一件工序代表的基因變化會(huì)導(dǎo)致設(shè)備選擇的變化,這樣的操作保留了優(yōu)良父代解的基因。

所述步驟4對(duì)工序部分自交叉操作,步驟如下:

(1):從種群中選擇一個(gè)父代染色體

(2):隨機(jī)產(chǎn)生工序部分兩個(gè)交叉點(diǎn)

(3):交換兩個(gè)交叉點(diǎn)兩邊的基因塊

(4):重復(fù)步驟(1)-(3),直到產(chǎn)生指定數(shù)量的子代

自交叉結(jié)合圖6染色體自交叉過(guò)程可以描述如下:圖中染色體前后兩個(gè)部分即工序部分和設(shè)備部分均有兩個(gè)交叉點(diǎn),工序部分的交叉點(diǎn)為“3,3”在自交叉操作時(shí)交換這兩個(gè)點(diǎn)前后的基因位置,即,將“1,2”與“2,1,2”進(jìn)行前后位置交換即得到子代染色體。設(shè)備部分的自交叉方式與工序部分同理。

所述步驟5本發(fā)明采用兩種變異結(jié)構(gòu),工序部分采用交換型的變異,設(shè)備部分采用插入型的變異,這樣的變異保證了種群的多樣性。結(jié)合圖6變異過(guò)程,描述如下。

所述工序部分交換型變異,步驟如下:

(1)從種群中選擇一個(gè)染色體

(2)隨機(jī)選擇工序部分兩個(gè)基因位

(3)互換兩個(gè)基因位的值

(4)重復(fù)步驟(1)-(3),直到產(chǎn)生指定數(shù)量的子代

所述設(shè)備部分插入型變異操作,步驟如下:

(1)從種群中選擇一個(gè)染色體

(2)隨機(jī)選擇設(shè)備部分兩個(gè)基因位

(3)將選擇的兩個(gè)基因位中的一個(gè)從原染色體中刪除,插入到選擇的另一個(gè)基因之前。

(4)重復(fù)步驟(1)-(3),直到產(chǎn)生指定數(shù)量的子代。

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
崇礼县| 资中县| 修水县| 抚松县| 寿光市| 菏泽市| 莱州市| 嘉定区| 绥阳县| 唐山市| 汝南县| 鲜城| 宿松县| 彭泽县| 鞍山市| 丹阳市| 北宁市| 紫阳县| 白水县| 兰考县| 白山市| 班戈县| 宁津县| 准格尔旗| 萝北县| 财经| 南康市| 防城港市| 上杭县| 江门市| 延长县| 勐海县| 盐津县| 土默特右旗| 牙克石市| 泉州市| 德令哈市| 凤凰县| 比如县| 塘沽区| 高要市|