日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

[置顶] 基于遗传算法求解车辆路径问题

發(fā)布時(shí)間:2024/8/26 综合教程 37 生活家
生活随笔 收集整理的這篇文章主要介紹了 [置顶] 基于遗传算法求解车辆路径问题 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

今天整理了一下以前寫過的一個(gè)遺傳算法求解車輛路徑問題的程序(C#寫的),發(fā)上來和大家分享一下,有誤的地方還請(qǐng)各位指點(diǎn)。

1、車輛路徑問題:

車輛路徑問題可以描述為:在一個(gè)存在供求關(guān)系的系統(tǒng)中,有若干臺(tái)車輛、若干個(gè)配送中心和客戶,要求合理安排車輛的行車路線和出行時(shí)間,從而在給定的約束條件下,把客戶需求的貨物從配送中心送到客戶,把客戶供應(yīng)的貨物從客戶取到配送中心,并使目標(biāo)函數(shù)取得優(yōu)化。本文以最簡(jiǎn)單的無時(shí)限單向配送車輛路徑問題為例。

1.1、問題描述:

無時(shí)限單向配送車輛路徑問題,是指在制定配送路線時(shí)不考慮客戶對(duì)貨物送到(或取走)時(shí)間要求的純送貨(或純?nèi)∝洠┸囕v調(diào)度問題。無時(shí)限單向配送車輛路徑問題可以描述為:從某配送中心用多臺(tái)配送車輛向多個(gè)客戶送貨,每個(gè)客戶的位置和需求量一定,每臺(tái)配送車輛的載重量一定,其一次配送的最大行駛距離一定,要求合理安排車輛配送路線,使目標(biāo)函數(shù)得到優(yōu)化,并滿足以下條件:

①每條配送路徑上各客戶的需求量之和不超過配送車輛的載重量;

②每條配送路徑的長(zhǎng)度不超過配送車輛一次配送的最大行駛距離:

③每個(gè)客戶的需求必須滿足,且只能由一臺(tái)配送車輛送貨。

1.2、問題模型:

設(shè)配送中心有Κ臺(tái)配送車輛,每臺(tái)車輛的載重量為Qk,其一次配送的最大行駛距離為Dk,需要向L個(gè)客戶送貨,每個(gè)客戶的貨物需求量為qi,客戶i到j(luò)的運(yùn)距為dij,配送中心到各客戶的距離為d0j,再設(shè) 為第k臺(tái)車輛配送的客戶數(shù)(nk=O表示未使用第k臺(tái)車輛),用集合Rk表示第k條路徑,其中的元素Rki表示客戶Rki在路徑k中的順序?yàn)閕(不包括配送中心),令rk0=0表示配送中心,若以配送總里程最短為目標(biāo)函數(shù),則可建立如下無時(shí)限單向配送車輛路徑問題的數(shù)學(xué)模型:

上述模型中,式(1.1)為目標(biāo)函數(shù),即要求配送總里程(即各條配送路徑的長(zhǎng)度之和)最短;式(1.2)保證每條路徑上各客戶的貨物需求量之和不超過配送車輛的載重量;式(1.3)保證每條配送路徑的長(zhǎng)度不超過配送車輛一次配送的最大行駛距離;式(1.4)表明每條路徑上的客戶數(shù)不超過總客戶數(shù);式(1.5)表明每個(gè)客戶都得到配送服務(wù);式(1.6)表示每條路徑的客戶的組成;式(1.7)限制每個(gè)客戶僅能有一臺(tái)配送車輛送貨;式(1.8)表示當(dāng)?shù)趉輛車服務(wù)的客戶數(shù)≥1時(shí),說明該臺(tái)車參加了配送,則取sign(nk)=1,當(dāng)?shù)趉輛車服務(wù)的客戶數(shù)< 1時(shí),,表示未使用該臺(tái)車輛,則取sign(nk)=0。

2、遺傳算法:
遺傳算法(Genetic Algorithms )是基于生物進(jìn)化理論的原理發(fā)展起來的一種廣為應(yīng)用的、高效的隨機(jī)搜索與優(yōu)化的方法。其主要特點(diǎn)是群體搜索策略和群體中個(gè)體之間的信息交換,搜索不依賴于梯度信息。它是在70年代初期由美國(guó)密西根( Michigan )大學(xué)的霍蘭( Holland )教授發(fā)展起來的。1975年霍蘭教授發(fā)表了第一本比較系統(tǒng)論述遺傳算法的專著《自然系統(tǒng)與人工系統(tǒng)中的適應(yīng)性》(《 Adaptationin Natural and Artificial Systems 》)。遺傳算法最初被研究的出發(fā)點(diǎn)不是為專門解決最優(yōu)化問題而設(shè)計(jì)的,它與進(jìn)化策略、進(jìn)化規(guī)劃共同構(gòu)成了進(jìn)化算法的主要框架,都是為當(dāng)時(shí)人工智能的發(fā)展服務(wù)的。迄今為止,遺傳算法是進(jìn)化算法中最廣為人知的算法。

2.1、遺傳算法的實(shí)施步驟:
遺傳火算法的實(shí)施步驟如下(以目標(biāo)函數(shù)求最小為例)。
第一步:初始化 t←0進(jìn)化代數(shù)計(jì)數(shù)器;T是最大進(jìn)化代數(shù);隨機(jī)生成M個(gè)個(gè)體作為初始群體P(t);
第二步:個(gè)體評(píng)價(jià) 計(jì)算P(t)中各個(gè)個(gè)體的適應(yīng)度;
第三步:選擇運(yùn)算 將選擇算子作用于群體;
第四步:交叉運(yùn)算 將交叉算子作用于群體;
第五步:變異運(yùn)算 將變異算子作用于群體,并通過以上運(yùn)算得到下一代群體P(t + 1);
第六步:終止條件判斷 t≦T:t← t+1 轉(zhuǎn)到步驟2;t>T:終止 輸出解。

2.2、遺傳算法應(yīng)用步驟:
1)確定決策變量及各種約束條件,即個(gè)體的表現(xiàn)型X和問題的解空間;
2)建立優(yōu)化模型 (目標(biāo)函數(shù)最大OR 最小) 數(shù)學(xué)描述形式 量化方法;
3)染色體編碼方法;
4)解碼方法;
5)個(gè)體適應(yīng)度的量化評(píng)價(jià)方法 F(x)
6)設(shè)計(jì)遺傳算子;
7)確定有關(guān)運(yùn)行參數(shù)。

3、遺傳算法求解車輛路徑問題:

用遺傳算法求解配送車輛路徑問題時(shí),確定解的表示和解的評(píng)價(jià)方法是一項(xiàng)非常關(guān)鍵的基礎(chǔ)工作,因?yàn)樗鼘⒅苯記Q定算法實(shí)現(xiàn)的難易程度和算法性能的優(yōu)劣。

3.1、解的表示:
客戶直接排列的表示方法,這種表示方法是直接產(chǎn)生L個(gè)1~L間的互不重復(fù)的自然數(shù)的排列,該客戶排列就構(gòu)成一個(gè)解,并對(duì)應(yīng)一種配送路徑方案。按照無時(shí)限單向配送車輛優(yōu)化調(diào)度問題的約束條件,可依次將解的元素(客戶)劃入各臺(tái)車輛的配送路徑中。例如,對(duì)于一個(gè)用3臺(tái)車輛向9個(gè)客戶送貨的配送車輛優(yōu)化調(diào)度問題,設(shè)某解中的客戶排列為412876935,可用如下方法得到其對(duì)應(yīng)的配送路徑方案:首先將客戶4(解中的第1個(gè)客戶)作為第1臺(tái)配送車輛月艮務(wù)的第1個(gè)客戶,然后判斷能否滿足問題的約束條件,即客戶4的需求量是否超過第1臺(tái)車輛的最大載重量,且路徑0-4-0的總長(zhǎng)度是否超過第1臺(tái)車輛一次配送的最大行駛距離,設(shè)能夠滿足,這時(shí)可將客戶1(解中的第2個(gè)客戶)作為第1臺(tái)配送車輛服務(wù)的第2個(gè)客戶,然后判斷能否滿足問題的約束條件,即客戶4和1的需求量之和是否超過第1臺(tái)配送車輛的最大載重量,且路徑0-4-1-0的總長(zhǎng)度是否超過第1臺(tái)車輛一次配送的最大行駛距離,設(shè)仍能滿足,這時(shí)可將客戶2(解中的第3個(gè)客戶)作為第1臺(tái)配送車輛服務(wù)的第3個(gè)客戶,然后判斷能否滿足問題的約束條件,設(shè)仍能滿足,這時(shí)可將客戶8作為第1臺(tái)配送車輛服務(wù)的第4個(gè)客戶,設(shè)此時(shí)不能滿足問題的約束條件,這說明客戶8不能由第1臺(tái)配送車輛服務(wù),由此可得第1臺(tái)車輛的配送路徑為0-4-1-2-0;然后,將客戶8作為第2臺(tái)配送車輛服務(wù)的第1個(gè)客戶,若能滿足問題的約束條件,則可將客戶7作為第2臺(tái)配送車輛服務(wù)的第2個(gè)客戶,若仍能滿足問題的約束條件,則可將客戶6作為第2臺(tái)配送車輛服務(wù)的第3個(gè)客戶,若仍能滿足問題的約束條件,則可將客戶9作為第2臺(tái)配送車輛服務(wù)的第4個(gè)客戶,若此時(shí)不能滿足問題的約束條件,則說明客戶9不能由第2臺(tái)配送車輛服務(wù),由此可得第2臺(tái)車輛的配送路徑為0-8-7-6-0:仍按上述方法可將解中的其他客戶也依次加入到其他車輛的配送路徑中。采用這種表示方法,也可以得到配送路徑數(shù)小于車輛總臺(tái)數(shù)的配送路徑方案。若某個(gè)解中的排在最后的若干個(gè)客戶不能納入到車輛的配送路徑中,則說明該解為一個(gè)不可行解。與前述客戶與虛擬配送中心共同排列的表示方法相比,這種解的表示方法占用的計(jì)算機(jī)存儲(chǔ)量較少,表示也較為直觀,也容易產(chǎn)生可行解。

3.2、解的評(píng)價(jià):
用客戶直接排列表示方法產(chǎn)生的解所確定的配送路徑方案,能夠滿足每條配送路徑上各客戶需求量之和不超過配送車輛的最大載重量及每條配送路徑的長(zhǎng)度不超過車輛一次配送的最大行駛距離的約束條件,但不能保證所有的客戶全部都能得到配送服務(wù)。對(duì)于某個(gè)解,若全部客戶均能納入到車輛的配送路徑中,則取該配送路徑方案的不可行路徑數(shù)M=0,表示該解為一個(gè)可行解;若排在最后的若干個(gè)客戶不能納入到車輛的配送路徑中,則取該配送路徑方案的不可行路徑條數(shù)M=1,表示該解為一個(gè)不可行解,該配送路徑方案的目標(biāo)函數(shù)值為Z,并設(shè)對(duì)每條不可行路徑的懲罰權(quán)重為Pw,(該權(quán)重可根據(jù)目標(biāo)函數(shù)的取值范圍取一個(gè)相對(duì)較大的正數(shù)),則該解的評(píng)價(jià)值E可用公式(3.1)計(jì)算(E值越小,表示解的質(zhì)量越高)。這種解的評(píng)價(jià)方法,體現(xiàn)了用罰函數(shù)法處理約束條件的思想。

3.3、算法策略的確定:
(1)編碼方法:采用客戶直接排列的編碼方法。
(2)適應(yīng)度函數(shù):采用公式(3.2)作為適應(yīng)度評(píng)估函數(shù)。即首先對(duì)某個(gè)個(gè)體進(jìn)行解碼操作,得到該個(gè)體對(duì)應(yīng)的配送路徑方案的不可行路徑數(shù)M和目標(biāo)函數(shù)值Z,將M和Z代入公式即可計(jì)算出該個(gè)體的適應(yīng)度f。

(3)選擇策略:采用最佳個(gè)體保存與賭輪選擇相結(jié)合的選擇策略。其具體操作方法為:將每代群體中的N個(gè)個(gè)體按適應(yīng)度由大到小排列,排在第一位的個(gè)體性能最優(yōu),按照最佳個(gè)體保存選擇策略,將它復(fù)制一個(gè)直接進(jìn)入下一代,并排在第一位。下一代群體的另N-1個(gè)個(gè)體需要根據(jù)前代群體的N個(gè)個(gè)體的適應(yīng)度,采用賭輪選擇法產(chǎn)生。
(4)交叉算子:采用類OX交叉方法。在實(shí)際運(yùn)算中,交叉操作是以概率 ,發(fā)生的。
(5)變異算子:采用多次對(duì)換變異技術(shù)。在實(shí)際運(yùn)算中,變異操作是以概率 ,發(fā)生的,一旦變異操作發(fā)生,則用隨機(jī)方法產(chǎn)生交換次數(shù)J,對(duì)所需變異操作的個(gè)體的基因進(jìn)行J次對(duì)換(對(duì)換基因的位置也是隨機(jī)產(chǎn)生的)。
(6)終止準(zhǔn)則:采用進(jìn)化指定代數(shù)的終止準(zhǔn)則。

3.4、算法的結(jié)構(gòu):

{輸入無時(shí)限單向配送車輛路徑問題的已知條件:

輸入運(yùn)行參數(shù),如群體規(guī)模N,終止進(jìn)化代數(shù)T,交叉概率Pc,變異概率Pm,

執(zhí)行變異操作時(shí)的基因換位次數(shù)J,對(duì)不可行路徑的懲罰權(quán)重Pw等;

隨機(jī)產(chǎn)生初始化群體P(0),當(dāng)前進(jìn)化代數(shù)t=0;

計(jì)算P(0)中每個(gè)個(gè)體的適應(yīng)度;

while(t<指定進(jìn)化終止代數(shù)T)do

{將本代中適應(yīng)度最高的個(gè)體復(fù)制一個(gè),直接插入到新群體P(t+1)中;

根據(jù)本代個(gè)體的適應(yīng)度及賭輪選擇策略,計(jì)算群體內(nèi)每個(gè)個(gè)體的選擇概率Pi;

for(k=0;k<N;k=k+2)

{根據(jù)選擇概率Pi從P(t)中選擇兩個(gè)父體;

r=random[0,1];

if(r≤交叉概率Pc)對(duì)選擇的兩個(gè)個(gè)體用類OX法執(zhí)行交叉操作,并將

生成的兩后代插入到新群體P(t+1)中;

else

{r=random[0,1];

if(r≤變異概率Pm)對(duì)父代個(gè)體1執(zhí)行變異操作,并將變異后的個(gè)

體插入到新群體P(t+1)中;

else將父代個(gè)體1復(fù)制一個(gè),直接插入到新群體P(t+1)中;

r=random[0,1];

if(r≤變異概率Pm)對(duì)父代個(gè)體2執(zhí)行變異操作,并將變異后的個(gè)

體插入到新群體P(t+1)中;

else將父代個(gè)體2復(fù)制一個(gè),直接插入到新群體P(t+1)中;

}

}

計(jì)算P(t+1)中每個(gè)個(gè)體的適應(yīng)度;

t=t+1;

}

輸出計(jì)算結(jié)果,即最終解所對(duì)應(yīng)的配送路徑方案和目標(biāo)函數(shù)值;

}

3.5、運(yùn)行截圖:

附源碼下載:遺傳算法求解車輛路徑問題程序源碼(C#版)

http://blog.csdn.net/wangqiuyun/article/details/7664995

總結(jié)

以上是生活随笔為你收集整理的[置顶] 基于遗传算法求解车辆路径问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 黄色中文 | 福利国产视频 | 日韩在线激情 | 成人在线看片 | 欧洲成人一区二区三区 | 亚洲综合激情小说 | 69精品国产 | 91在线视频网址 | 久久久涩 | 日韩精品久久久久久免费 | 四虎在线免费 | 色久视频| 日本少妇b | 窝窝午夜视频 | 久久综合激的五月天 | a免费视频| 天天弄天天操 | 午夜精品区| 欧美精品久久久久性色 | 在线视频免费观看一区 | 国产av不卡一区 | 制服丝袜在线第一页 | 浪潮av网站 | 中文字幕在线视频日韩 | 亚洲综合成人网 | 香港三级日本三级三69 | 婷婷在线影院 | 黑丝啪啪 | 日本女优中文字幕 | 久久依人网| 欧美日韩精品区别 | 中文字幕网伦射乱中文 | 国产亚洲精品久久久久久打不开 | 一区二区三区欧美视频 | 中文字幕在线观看一区二区三区 | ts人妖另类精品视频系列 | 深夜视频在线观看免费 | 久久久久女人精品毛片九一 | 奇米二区 | 超碰97自拍| 男女羞羞在线观看 | 日皮视频免费观看 | 黑人干亚洲 | 丰满少妇在线观看资源站 | 日韩不卡av在线 | 亚洲天堂第一区 | 丰满熟妇人妻中文字幕 | 欧美午夜精品一区 | 亚洲欧美激情小说另类 | 给我看高清的视频在线观看 | 精品一区二区免费 | 在线观看免费人成视频 | 波多野结衣福利视频 | 欧美11一13sex性hd | www.在线播放 | 一区二区三区资源 | 一本色道久久综合 | 午夜肉伦伦 | 影音先锋亚洲成aⅴ人在 | 国产欧美日韩在线观看 | www色亚洲 | 久久夜靖品2区 | 国产91丝袜在线播放0 | xxxxhd欧美 | 深夜福利视频在线 | 少妇太爽了太深了太硬了 | 空姐吹箫视频大全 | 中文字幕日产乱码中 | 麻豆免费看片 | 好吊操妞| 欧美激情视频一区二区三区不卡 | 懂色一区二区二区av免费观看 | 美女少妇一区二区 | 成年人免费观看网站 | 久草加勒比 | 三级网站在线免费观看 | 国产午夜精品理论片在线 | 久久狠狠高潮亚洲精品 | 草草网址 | 亚洲综合精品国产 | 人人爽夜夜爽 | 老熟女毛茸茸浓毛 | 久久综合社区 | av一本二本 | 99精品在线免费观看 | 这里只有精品视频在线 | 91丨九色丨国产 | 中文在线a在线 | 黄色一级片在线播放 | 激情文学av | 性欢交69国产精品 | 成人一区二区三区在线 | 国产精品国产三级国产播12软件 | 丁香婷婷六月 | 男女免费毛片 | 女女互慰吃奶互揉调教捆绑 | 性色欲网站人妻丰满中文久久不卡 | 一级看片免费视频 | 国产一伦一伦一伦 |