遺傳算法與MapReduce相結(jié)合的車(chē)輛調(diào)度方法
【專利摘要】本發(fā)明涉及一種遺傳算法與MapReduce相結(jié)合的車(chē)輛調(diào)度方法,對(duì)于采用m輛車(chē)配送n個(gè)客戶點(diǎn)的問(wèn)題,基于云計(jì)算中的MapReduce模型和遺傳算法,按如下步驟進(jìn)行車(chē)輛調(diào)度:(1)初始化種群;(2)利用Map函數(shù)計(jì)算個(gè)體適應(yīng)度;(3)利用Reduce函數(shù)進(jìn)行選擇、雜交、變異操作;(4)判斷算法是否達(dá)到設(shè)定的最大遺傳代數(shù),是則選出適應(yīng)度最高的染色體個(gè)體所對(duì)應(yīng)的路徑集合作為問(wèn)題的最優(yōu)解,否則返回步驟(2)。該方法運(yùn)行速度快,易于實(shí)現(xiàn),使用效果好。
【專利說(shuō)明】遺傳算法與MapReduce相結(jié)合的車(chē)輛調(diào)度方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及物流車(chē)輛調(diào)度【技術(shù)領(lǐng)域】,特別是一種遺傳算法與MapReduce相結(jié)合的車(chē)輛調(diào)度方法。
【背景技術(shù)】
[0002]車(chē)輛路徑問(wèn)題(Vehicle Routing Problems,VRP)是交通運(yùn)輸、物流配送的核心問(wèn)題,目的在于設(shè)計(jì)一套車(chē)輛行駛的路線,實(shí)現(xiàn)以最小的成本滿足各個(gè)客戶的配送要求。帶載重約束的車(chē)輛路徑問(wèn)題(Capacitated Vehicle Routing Problems,CVRP)是指從配送中心用多輛車(chē)向多個(gè)需求點(diǎn)(用戶)送貨,每個(gè)需求點(diǎn)的位置和需求量一定,每輛車(chē)的載重量一定,要求合理安排車(chē)輛路線,達(dá)到一定的目標(biāo)(如路程最短、費(fèi)用最少、時(shí)間盡量少、使用車(chē)輛數(shù)盡量少等),并滿足以下條件:每條配送路徑上需求點(diǎn)的需求量之和不超過(guò)車(chē)輛載重量;每條路徑的長(zhǎng)度不超過(guò)車(chē)輛一次配送的最大行駛距離;每個(gè)需求點(diǎn)必須且只能由一輛車(chē)送貨。
[0003]綜合過(guò)去的求解算法,可以分為精確算法與啟發(fā)式算法。精確算法在解決較大規(guī)模的車(chē)輛路徑問(wèn)題時(shí)相對(duì)費(fèi)力且難以實(shí)現(xiàn)。啟發(fā)式算法是求解問(wèn)題的主要方法,可以分為簡(jiǎn)單啟發(fā)式算法、兩階段啟發(fā)式算法、人工智能方法。遺傳算法和蟻群算法都屬于人工智能方法,且相比其他人工智能方法,二者只需要極少的初始化信息。但是,當(dāng)問(wèn)題規(guī)模較大時(shí),采用傳統(tǒng)的遺傳算法或蟻群算法求解問(wèn)題的速度會(huì)呈指數(shù)下降。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的目的在于克服現(xiàn)有技術(shù)的不足,提供一種遺傳算法與MapReduce相結(jié)合的車(chē)輛調(diào)度方法,該方法運(yùn)行速度快,易于實(shí)現(xiàn),使用效果好。
[0005]為實(shí)現(xiàn)上述目的,本發(fā)明的技術(shù)方案是:一種遺傳算法與MapReduce相結(jié)合的車(chē)輛調(diào)度方法,對(duì)于采用m輛車(chē)配送η個(gè)客戶點(diǎn)的問(wèn)題,基于云計(jì)算中的MapReduce模型和遺傳算法,按如下步驟進(jìn)行車(chē)輛調(diào)度:
(1)初始化種群:采用自然數(shù)U,2,一,η}對(duì)η個(gè)客戶點(diǎn)進(jìn)行對(duì)應(yīng)編碼,并隨機(jī)編成一條長(zhǎng)度為η、自然數(shù){1,2,...,η}前后順序隨機(jī)排列的染色體個(gè)體,然后根據(jù)載重約束在染色體個(gè)體中插入分隔符,所述載重約束為分隔符之間的所有編碼對(duì)應(yīng)的客戶點(diǎn)的配送量之和不大于車(chē)輛載重量;設(shè)種群規(guī)模為P,則通過(guò)上述方法隨機(jī)產(chǎn)生P個(gè)染色體個(gè)體,即形成規(guī)模為P的初始種群;
(2)計(jì)算個(gè)體適應(yīng)度:利用根據(jù)適應(yīng)度函數(shù)構(gòu)造的多個(gè)Map函數(shù),并行計(jì)算P個(gè)染色體個(gè)體的個(gè)體適應(yīng)度,并將結(jié)果輸出給Reduce函數(shù);
(3)進(jìn)行選擇、雜交、變異操作:利用根據(jù)選擇、雜交、變異算法構(gòu)造的Reduce函數(shù),將Map函數(shù)的輸出作為Reduce函數(shù)的輸入,利用Reduce函數(shù)將父代染色體中適應(yīng)度較高的個(gè)體選擇出來(lái)產(chǎn)生子代染色體,然后以一雜交概率隨機(jī)選擇子代染色體中一部分進(jìn)行雜交操作并將雜交后染色體個(gè)體添加到新種群中,以一變異概率隨機(jī)選擇子代染色體中另一部分進(jìn)行變異操作并將變異后染色體個(gè)體添加到新種群中,子代染色體中的剩余部分直接復(fù)制到新種群中,從而形成新種群并輸出;
(4)判斷算法是否達(dá)到設(shè)定的最大遺傳代數(shù),是則選出適應(yīng)度最高的染色體個(gè)體所對(duì)應(yīng)的路徑集合作為問(wèn)題的最優(yōu)解,否則返回步驟(2)。
[0006]步驟(3)中,Reduce函數(shù)采用輪盤(pán)賭算法進(jìn)行選擇操作:計(jì)算P個(gè)染色體個(gè)體的相對(duì)適應(yīng)度,以之作為概率,并按概率大小將[0,1]空間劃分成P份,然后再生成一個(gè)[0,1]范圍內(nèi)的隨機(jī)數(shù),落在哪個(gè)區(qū)域則選擇對(duì)應(yīng)的染色體個(gè)體;按上述方法重復(fù)P次,產(chǎn)生P個(gè)染色體個(gè)體,得到子代染色體。
[0007]步驟(3)中,Reduce函數(shù)按如下方法進(jìn)行雜交操作:隨機(jī)在一對(duì)染色體個(gè)體A、B中選擇一個(gè)交配區(qū)域,將個(gè)體B的交配區(qū)域加到個(gè)體A的前面,個(gè)體A的交配區(qū)域加到個(gè)體B的前面,然后分別刪除原個(gè)體中與交配區(qū)域相同的自然數(shù)并根據(jù)載重約束重新在染色體個(gè)體中插入分隔符,得到一對(duì)雜交后染色體個(gè)體C、D。
[0008]步驟(3)中,Reduce函數(shù)按如下方法進(jìn)行變異操作:隨機(jī)在染色體產(chǎn)生兩個(gè)基因位,將所述兩個(gè)基因位上的自然數(shù)進(jìn)行互換,然后根據(jù)載重約束重新在染色體個(gè)體中插入分隔符,得到變異后染色體個(gè)體。
[0009]相較于現(xiàn)有技術(shù),本發(fā)明的有益效果是在物流車(chē)輛調(diào)度問(wèn)題中引入了基于云計(jì)算中的MapReduce模型和遺傳算法,將算法并行化,不僅運(yùn)行速度快,而且MapReduce模型不同于MP1并行計(jì)算,MapReduce中如何分布處理對(duì)用戶是透明的,因此無(wú)需底層知識(shí),易于實(shí)現(xiàn),且提供了良好的節(jié)點(diǎn)失效時(shí)備份處理容錯(cuò)機(jī)制,具有很強(qiáng)的實(shí)用性和廣闊的應(yīng)用前景。
【專利附圖】
【附圖說(shuō)明】
[0010]圖1是本發(fā)明實(shí)施例的實(shí)現(xiàn)流程圖。
【具體實(shí)施方式】
[0011]本發(fā)明遺傳算法與MapReduce相結(jié)合的車(chē)輛調(diào)度方法,對(duì)于采用m輛車(chē)配送n個(gè)客戶點(diǎn)的問(wèn)題,基于云計(jì)算中的MapReduce模型和遺傳算法,如圖1所示,按如下步驟進(jìn)行車(chē)輛調(diào)度:
(1)初始化種群:采用自然數(shù){1,2,...,n}對(duì)n個(gè)客戶點(diǎn)進(jìn)行對(duì)應(yīng)編碼,并隨機(jī)編成一條長(zhǎng)度為n、自然數(shù){1,2,...,n}前后順序隨機(jī)排列的染色體個(gè)體,然后根據(jù)載重約束在染色體個(gè)體中插入分隔符0,所述載重約束為分隔符之間的所有編碼對(duì)應(yīng)的客戶點(diǎn)的配送量之和不大于車(chē)輛載重量;例如,對(duì)于一個(gè)有6個(gè)客戶點(diǎn),用2輛車(chē)輛完成配送任務(wù)的問(wèn)題,可用0 1 2 6 0 3 5 4 0這條染色體來(lái)表示一個(gè)配送路徑方案,這個(gè)配送路徑方案中包含兩條子路徑:0 1 2 6 0及0 3 5 4 0 ;設(shè)種群規(guī)模為P,則通過(guò)上述方法隨機(jī)產(chǎn)生P個(gè)染色體個(gè)體,即形成規(guī)模為P的初始種群。
[0012](2)計(jì)算個(gè)體適應(yīng)度:利用根據(jù)適應(yīng)度函數(shù)(根據(jù)路程最短、費(fèi)用最少、時(shí)間盡量少、使用車(chē)輛數(shù)盡量少等不同目標(biāo),可構(gòu)造不同的適應(yīng)度函數(shù))構(gòu)造的多個(gè)Map函數(shù),并行計(jì)算P個(gè)染色體個(gè)體的個(gè)體適應(yīng)度,并將結(jié)果輸出給Reduce函數(shù)。
[0013](3)進(jìn)行選擇、雜交、變異操作:利用根據(jù)選擇、雜交、變異算法構(gòu)造的Reduce函數(shù),將Map函數(shù)的輸出作為Reduce函數(shù)的輸入,利用Reduce函數(shù)將父代染色體中適應(yīng)度較高的個(gè)體選擇出來(lái)產(chǎn)生子代染色體,然后以一雜交概率隨機(jī)選擇子代染色體中一部分進(jìn)行雜交操作并將雜交后染色體個(gè)體添加到新種群中,以一變異概率隨機(jī)選擇子代染色體中另一部分進(jìn)行變異操作并將變異后染色體個(gè)體添加到新種群中,子代染色體中的剩余部分直接復(fù)制到新種群中,從而形成新種群并輸出。
[0014](4)判斷算法是否達(dá)到設(shè)定的最大遺傳代數(shù),是則選出適應(yīng)度最高的染色體個(gè)體所對(duì)應(yīng)的路徑集合作為問(wèn)題的最優(yōu)解,否則返回步驟(2)。
[0015]在一個(gè)單獨(dú)的MapReduce作業(yè)中,我們將計(jì)算個(gè)體適應(yīng)度的任務(wù)分配給許多Map函數(shù)來(lái)并行地執(zhí)行,然后再由一個(gè)Reduce函數(shù)負(fù)責(zé)收集Map的結(jié)果,然后完成遺傳操作中的其他工作,如選擇、交叉、變異。
[0016]每個(gè)Map函數(shù)都以并行獨(dú)立的方式執(zhí)行任務(wù)。每個(gè)Map函數(shù)的輸入都是一些鍵值對(duì)〈key,value〉。其中key為迭代的代數(shù),value為染色體即一個(gè)可行的解。然后從輸入中提取染色體,進(jìn)行適應(yīng)度評(píng)估,然后提交結(jié)果作為中間輸出。其結(jié)果是一個(gè)新的鍵值對(duì),其中的鍵仍然代表迭代代數(shù),值是一個(gè)由染色體和染色體對(duì)應(yīng)的適應(yīng)度組成的字符串。
[0017]然后將Map函數(shù)的輸出作為輸入,提取鍵值對(duì)中的染色體和其對(duì)應(yīng)的適應(yīng)度,然后按照上述選擇、交叉、變異的方法進(jìn)行余下的操作。最后的結(jié)果也是一些鍵值對(duì),其中的鍵為新的迭代代數(shù),值為新的染色體,將這些鍵值對(duì)存入Hadoop的文件系統(tǒng)HDFS中,可以作為下一次Map的輸入。如此循環(huán),直到滿足上述的終止條件。
[0018]步驟(3)中,Reduce函數(shù)采用輪盤(pán)賭算法進(jìn)行選擇操作:計(jì)算P個(gè)染色體個(gè)體的相對(duì)適應(yīng)度,以之作為概率,并按概率大小將[0,I]空間劃分成P份,然后再生成一個(gè)[0,I]范圍內(nèi)的隨機(jī)數(shù),落在哪個(gè)區(qū)域則選擇對(duì)應(yīng)的染色體個(gè)體;按上述方法重復(fù)P次,產(chǎn)生P個(gè)染色體個(gè)體,得到子代染色體。
[0019]步驟(3)中,Reduce函數(shù)按如下方法進(jìn)行雜交操作:隨機(jī)在一對(duì)染色體個(gè)體A、B中選擇一個(gè)交配區(qū)域,將個(gè)體B的交配區(qū)域加到個(gè)體A的前面,個(gè)體A的交配區(qū)域加到個(gè)體B的前面,然后分別刪除原個(gè)體中與交配區(qū)域相同的自然數(shù)并根據(jù)載重約束重新在染色體個(gè)體中插入分隔符,得到一對(duì)雜交后染色體個(gè)體C、D。例如,對(duì)于一對(duì)染色體個(gè)體A、B,A=O35062980471 0,B=O 83029540167 0,交配區(qū)域選定為 I I 之間,即A=O 3 5 O I 6 2 9 8 I O 4 7 I 0,B=O 8 3 O I 2 9 5 4 I O I 6 7 O。然后將 B 的交配區(qū)域加到A的前面,A的交配區(qū)域加到B的前面,刪除與交配區(qū)域中相同的自然數(shù)同時(shí)考慮載重約束,得到一對(duì)雜交后染色體個(gè)體C、D,即C=O 29540368071 O, D=O 62980354017 0。
[0020]步驟(3)中,Reduce函數(shù)按如下方法進(jìn)行變異操作:隨機(jī)在染色體產(chǎn)生兩個(gè)基因位,將所述兩個(gè)基因位上的自然數(shù)進(jìn)行互換,然后根據(jù)載重約束重新在染色體個(gè)體中插入分隔符,得到變異后染色體個(gè)體。
[0021]以上是本發(fā)明的較佳實(shí)施例,凡依本發(fā)明技術(shù)方案所作的改變,所產(chǎn)生的功能作用未超出本發(fā)明技術(shù)方案的范圍時(shí),均屬于本發(fā)明的保護(hù)范圍。
【權(quán)利要求】
1.一種遺傳算法與MapReduce相結(jié)合的車(chē)輛調(diào)度方法,其特征在于,對(duì)于采用m輛車(chē)配送η個(gè)客戶點(diǎn)的問(wèn)題,基于云計(jì)算中的MapReduce模型和遺傳算法,按如下步驟進(jìn)行車(chē)輛調(diào)度: (1)初始化種群:采用自然數(shù){1,2,...,η}對(duì)η個(gè)客戶點(diǎn)進(jìn)行對(duì)應(yīng)編碼,并隨機(jī)編成一條長(zhǎng)度為η、自然數(shù){1,2,...,η}前后順序隨機(jī)排列的染色體個(gè)體,然后根據(jù)載重約束在染色體個(gè)體中插入分隔符,所述載重約束為分隔符之間的所有編碼對(duì)應(yīng)的客戶點(diǎn)的配送量之和不大于車(chē)輛載重量;設(shè)種群規(guī)模為P,則通過(guò)上述方法隨機(jī)產(chǎn)生P個(gè)染色體個(gè)體,即形成規(guī)模為P的初始種群; (2)計(jì)算個(gè)體適應(yīng)度:利用根據(jù)適應(yīng)度函數(shù)構(gòu)造的多個(gè)Map函數(shù),并行計(jì)算P個(gè)染色體個(gè)體的個(gè)體適應(yīng)度,并將結(jié)果輸出給Reduce函數(shù); (3)進(jìn)行選擇、雜交、變異操作:利用根據(jù)選擇、雜交、變異算法構(gòu)造的Reduce函數(shù),將Map函數(shù)的輸出作為Reduce函數(shù)的輸入,利用Reduce函數(shù)將父代染色體中適應(yīng)度較高的個(gè)體選擇出來(lái)產(chǎn)生子代染色體,然后以一雜交概率隨機(jī)選擇子代染色體中一部分進(jìn)行雜交操作并將雜交后染色體個(gè)體添加到新種群中,以一變異概率隨機(jī)選擇子代染色體中另一部分進(jìn)行變異操作并將變異后染色體個(gè)體添加到新種群中,子代染色體中的剩余部分直接復(fù)制到新種群中,從而形成新種群并輸出; (4)判斷算法是否達(dá)到設(shè)定的最大遺傳代數(shù),是則選出適應(yīng)度最高的染色體個(gè)體所對(duì)應(yīng)的路徑集合作為問(wèn)題的最優(yōu)解,否則返回步驟(2)。
2.根據(jù)權(quán)利要求1所述的遺傳算法與MapReduce相結(jié)合的車(chē)輛調(diào)度方法,其特征在于,步驟(3)中,Reduce函數(shù)采用輪盤(pán)賭算法進(jìn)行選擇操作:計(jì)算P個(gè)染色體個(gè)體的相對(duì)適應(yīng)度,以之作為概率,并按概率大小將[O,I]空間劃分成P份,然后再生成一個(gè)[O,I]范圍內(nèi)的隨機(jī)數(shù),落在哪個(gè)區(qū)域則選擇對(duì)應(yīng)的染色體個(gè)體;按上述方法重復(fù)P次,產(chǎn)生P個(gè)染色體個(gè)體,得到子代染色體。
3.根據(jù)權(quán)利要求1所述的遺傳算法與MapReduce相結(jié)合的車(chē)輛調(diào)度方法,其特征在于,步驟(3)中,Reduce函數(shù)按如下方法進(jìn)行雜交操作:隨機(jī)在一對(duì)染色體個(gè)體A、B中選擇一個(gè)交配區(qū)域,將個(gè)體B的交配區(qū)域加到個(gè)體A的前面,個(gè)體A的交配區(qū)域加到個(gè)體B的前面,然后分別刪除原個(gè)體中與交配區(qū)域相同的自然數(shù)并根據(jù)載重約束重新在染色體個(gè)體中插入分隔符,得到一對(duì)雜交后染色體個(gè)體C、D。
4.根據(jù)權(quán)利要求1所述的遺傳算法與MapReduce相結(jié)合的車(chē)輛調(diào)度方法,其特征在于,步驟(3)中,Reduce函數(shù)按如下方法進(jìn)行變異操作:隨機(jī)在染色體產(chǎn)生兩個(gè)基因位,將所述兩個(gè)基因位上的自然數(shù)進(jìn)行互換,然后根據(jù)載重約束重新在染色體個(gè)體中插入分隔符,得到變異后染色體個(gè)體。
【文檔編號(hào)】G06Q10/06GK103440522SQ201310387759
【公開(kāi)日】2013年12月11日 申請(qǐng)日期:2013年8月31日 優(yōu)先權(quán)日:2013年8月31日
【發(fā)明者】鄭湘涵, 陳國(guó)龍, 陳李瑩 申請(qǐng)人:福州大學(xué)