蟻群算法在車輛路徑優(yōu)化中的應(yīng)用畢業(yè)設(shè)計(jì)論文_第1頁
蟻群算法在車輛路徑優(yōu)化中的應(yīng)用畢業(yè)設(shè)計(jì)論文_第2頁
蟻群算法在車輛路徑優(yōu)化中的應(yīng)用畢業(yè)設(shè)計(jì)論文_第3頁
蟻群算法在車輛路徑優(yōu)化中的應(yīng)用畢業(yè)設(shè)計(jì)論文_第4頁
蟻群算法在車輛路徑優(yōu)化中的應(yīng)用畢業(yè)設(shè)計(jì)論文_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、 畢 業(yè) 設(shè) 計(jì)(論 文)題目:蟻群算法在車輛路徑優(yōu)化中的應(yīng)用姓 名 學(xué) 號(hào) 0910312134 所在學(xué)院 湖北工業(yè)大學(xué) 專業(yè)班級(jí) 09計(jì)職1班 指導(dǎo)教師 日 期 2013 年 5 月 8 日 摘 要許多實(shí)際工程問題可以抽象為相應(yīng)的組合優(yōu)化問題,tsp問題是作為所有組合優(yōu)化問題的范例而存在的,它已成為并將繼續(xù)成為測試組合優(yōu)化新算法的標(biāo)準(zhǔn)問題。從理論上講,使用窮舉法可以求解出tsp問題的最優(yōu)解;但是對(duì)現(xiàn)有的計(jì)算機(jī)來說,讓它在如此龐大的搜索空間中尋求最優(yōu)解,幾乎是不可能的。所以,各種求tsp問題近似解的算法應(yīng)運(yùn)而生了,本文所描述的蟻群算法(ac)也在其中。目前已出現(xiàn)了很多的啟發(fā)式算法,而蟻群算法

2、作為一種新型的啟發(fā)式算法,已成功地應(yīng)用于求解tsp問題。螞蟻通過分泌信息素來加強(qiáng)較好路徑上信息素的濃度,同時(shí)按照路徑上的信息素濃度來選擇下一步的路徑:好的路徑將會(huì)被越來越多的螞蟻選擇,因此更多的信息素將會(huì)覆蓋較好的路徑;最終所有的螞蟻都集中到了好的路徑上。螞蟻的這種基于信息素的正反饋原理正是整個(gè)算法的關(guān)鍵所在。本文介紹了基本蟻群算法概念、原理及蟻群算法的特點(diǎn),再根據(jù)蟻群算法的缺點(diǎn)做出了優(yōu)化。采用輪盤賭選擇代替了基本框架中通過啟發(fā)式函數(shù)和信息素選擇路徑,改進(jìn)蟻群算法的信息素傳遞參數(shù),讓整個(gè)算法更快速的找到最優(yōu)解。其次,采用最大最小優(yōu)化系統(tǒng)限制最大值和最小值,讓整個(gè)系統(tǒng)更快收斂,得到最優(yōu)解。關(guān)鍵字

3、:蟻群算法,tsp問題,啟發(fā)式函數(shù),輪盤算法,最大最小優(yōu)化abstractmany practical engineering problems can be abstracted as corresponding combinatorial optimization problem, tsp problem is an example of all as a combinatorial optimization problem, it has become and will continue to be a new combinatorial optimization algorithm o

4、f standard test problems. in theory, using the exhaustion method can solve the tsp problem optimal solution; but for the existing computer, let it in such a large search space to seek the optimal solution, it is almost impossible. so, all kinds of algorithm arises at the historic moment, the approxi

5、mate solution of the tsp problem described in this paper, ant colony algorithm (ac) is among them. has appeared a lot of heuristic algorithm and ant colony algorithm as a kind of new heuristic algorithm, has been successfully used in solving tsp problems. ant secretion by pheromones to strengthen th

6、e good path pheromone concentration, at the same time according to the path to choose the next path pheromone concentration: good paths will be more and more ants to choose, so that more information will cover good path; eventually all the ants on a good path. this positive feedback based on the phe

7、romone of ant principle is the key to the whole algorithm. this paper introduces the basic concept of ant colony algorithm, principle and characteristics of ant colony algorithm, according to the disadvantages of ant colony algorithm optimization. adopting roulette selection instead of the basic fra

8、mework by heuristic function and choose path pheromone, pheromone passing parameters of improved ant colony algorithm, make the whole algorithm find the optimal solution more quickly. second, limiting the maximum and the minimum maximum minimum optimization system, make the whole system faster conve

9、rgence and the optimal solution is obtained. keywords: ant colony algorithm, the tsp problem, a heuristic function, roulette algorithm, maximum_minimum optimization目錄摘 要2abstract3第1章 緒論61.1 研究目的和意義61.2 國內(nèi)外研究現(xiàn)狀71.2.1 國外研究現(xiàn)狀71.2.2 國內(nèi)研究現(xiàn)狀81.3 本文研究內(nèi)容9(1) 基本蟻群算法9(2) 蟻群算法的優(yōu)化9(3) 蟻群算法在tsp問題中的應(yīng)用91.4 開發(fā)環(huán)境與工具

10、91.5 論文的組織結(jié)構(gòu)10第2章蟻群算法102.1 蟻群算法簡介102.2 蟻群算法的原理112.2.1 螞蟻覓食規(guī)則122.2.2 螞蟻移動(dòng)規(guī)則122.2.3 螞蟻避障規(guī)則122.2.4 螞蟻撒信息素規(guī)則122.3 蟻群算法的特點(diǎn)及優(yōu)缺點(diǎn)132.3.1 蟻群算法的特點(diǎn)132.3.2 蟻群算法的優(yōu)點(diǎn)142.3.3 蟻群算法的缺點(diǎn)142.5 蟻群算法的核心函數(shù)15(1)初始化15(2)選擇下一個(gè)城市,返回城市編號(hào)15(3)更新環(huán)境信息素17(4)檢查終止條件18(5)輸出最優(yōu)值182.6 蟻群算法的參數(shù)分析192.6.1 螞蟻數(shù)量n_ant_count192.6.2 啟發(fā)因子192.6.3 期

11、望啟發(fā)因子202.6.4 信息素?fù)]發(fā)度202.6.5 總信息量(dbq)21第3章改進(jìn)的蟻群算法213.1 輪盤賭選擇223.1.1 輪盤賭選擇基本思想223.1.2 輪盤賭選擇工作過程223.2 max_min aco243.2.1 max_min算法的框架結(jié)構(gòu)243.2.2 max_min 算法流程圖26第4章蟻群算法在車輛路徑問題中的應(yīng)用284.1 車輛路徑問題簡介284.1.1 車輛路徑問題定義284.1.2 車輛路徑問題分類294.2 車輛路徑問題的求解算法294.2.1 精確算法294.2.2 啟發(fā)式算法304.3 蟻群算法解決車輛路徑問題314.4 數(shù)值實(shí)驗(yàn)結(jié)果及分析334.4.

12、1 輪盤賭選擇優(yōu)化前后數(shù)據(jù)對(duì)比334.4.2 max_min算法改進(jìn)前后數(shù)據(jù)對(duì)比34第5章總結(jié)與展望36參考文獻(xiàn)36第1章 緒論 tsp問題是一種特殊的車輛路徑問題,是作為所有組合優(yōu)化問題的范例而存在的,它已成為并將繼續(xù)成為測試組合優(yōu)化新算法的標(biāo)準(zhǔn)問題。傳統(tǒng)解法對(duì)小搜索空間的tsp問題適用,而且有的算法獲得精確解的性質(zhì)也正是人們所期望的。于是,許多求tsp問題近似解的新算法應(yīng)運(yùn)而生,啟發(fā)式算法便是其中之一。而蟻群算法(ac)是由意大利學(xué)者macro dorigo等人在20世紀(jì)90年代提出來的1,它是繼模擬退火算法、遺傳算法、禁忌搜索算法、人工神經(jīng)網(wǎng)絡(luò)算法等之后的一種新型的啟發(fā)式算法,已成功地應(yīng)

13、用于求解tsp問題。蟻群算法在解決tsp問題時(shí)具有許多優(yōu)良性質(zhì),但也存在著兩個(gè)主要的缺陷:收斂速度較慢,并且容易出現(xiàn)停滯。為此,不少研究者提出了一些優(yōu)化策略及改進(jìn),如:蟻群系統(tǒng)算法acs(也稱蟻群優(yōu)化算法aco)、最大最小蟻群系統(tǒng)算法mmas等;這些改進(jìn)在一定程度上提高了算法的有效性,但效果并不明顯。如何進(jìn)一步地對(duì)算法進(jìn)行優(yōu)化,即優(yōu)化策略的研究,也正是當(dāng)前蟻群算法研究的最大的熱點(diǎn)。另外,人們也注意到:改進(jìn)后的蟻群算法在解決大型的tsp問題時(shí),關(guān)鍵參數(shù)的設(shè)置和信息素的更新將花費(fèi)很長的時(shí)間。而由于蟻群算法中螞蟻的個(gè)體行為具有內(nèi)在的并行性,因此可以考慮將算法進(jìn)行分布式并行處理來縮短算法的運(yùn)行時(shí)間。如

14、何進(jìn)行并行處理,亦即并行策略的研究,是目前蟻群算法研究的又一個(gè)熱點(diǎn)。1.1 研究目的和意義物流是供應(yīng)鏈中最重要的組成部分,是商品從生產(chǎn)者經(jīng)過各流通環(huán)節(jié)最終到達(dá)消費(fèi)者手中的過程。物流業(yè)這是專門從事物流活動(dòng)的行業(yè),從企業(yè)銷售成本和商品價(jià)格組成角度考察,物流業(yè)蘊(yùn)藏著巨大的商機(jī)。物流業(yè)被譽(yù)為經(jīng)濟(jì)發(fā)展動(dòng)脈的“加速器”和商業(yè)結(jié)果演變的“潤滑劑”,現(xiàn)代企業(yè)的“第三利潤源泉”。通過提高物流管理水平和效率,降低物流成本,可以為企業(yè)及社會(huì)帶來可觀的經(jīng)濟(jì)效益,改善國民經(jīng)濟(jì)運(yùn)行效率,提高國際競爭力。因此,國家和各地政府紛紛定制了各種有利于物流發(fā)展的政策和計(jì)劃。在國家“十一五規(guī)劃”中講“大力發(fā)展現(xiàn)代物流”作為今后重點(diǎn)發(fā)

15、展的領(lǐng)域,明確提出“十一五”結(jié)束即2010年,全社會(huì)物流成本要比2004年的計(jì)策上下降23個(gè)百分點(diǎn)。合理使用優(yōu)化運(yùn)輸路線,降低企業(yè)物流成本,是物流管理的很重要內(nèi)容。針對(duì)物流管理中對(duì)運(yùn)輸車輛路徑優(yōu)化調(diào)配的要求,1959年由dantzig和ramser首先提出了車輛路徑問題的數(shù)學(xué)模型。車輛路徑問題已經(jīng)是近幾十年來運(yùn)籌學(xué)、應(yīng)用數(shù)學(xué)、網(wǎng)絡(luò)分析、計(jì)算機(jī)應(yīng)用及交通運(yùn)輸?shù)葘W(xué)科研究一個(gè)熱點(diǎn)問題,并且在通訊、身長、國防、生物計(jì)算機(jī)應(yīng)用等領(lǐng)域得到了廣泛的應(yīng)用。1.2 國內(nèi)外研究現(xiàn)狀車輛路徑問題的研究有著現(xiàn)實(shí)的經(jīng)濟(jì)意義和學(xué)術(shù)意義。自從vrp被dantzig和ramser于1959年提出之后,很快就引起了運(yùn)籌學(xué)、應(yīng)用

16、數(shù)學(xué)、物流科學(xué)、計(jì)算機(jī)科學(xué)等各個(gè)學(xué)科專家學(xué)者與運(yùn)輸計(jì)劃制定者和管理者的極大重視,成為運(yùn)籌學(xué)與組合優(yōu)化領(lǐng)域的前沿問題和研究熱點(diǎn)。許多學(xué)者對(duì)該問題進(jìn)行了大量的理論研究及實(shí)驗(yàn)分析,目前己經(jīng)產(chǎn)生出多種成熟的算法,取得了令人矚目的成果,為后人的繼續(xù)研究提供了極高的參考價(jià)值。1.2.1 國外研究現(xiàn)狀1962年,balinski等人首先提出vrp的集分割,直接考慮可行解集合,在此基礎(chǔ)上進(jìn)行優(yōu)化,建立了最簡單的vrp模型。1971年,eilon提出將動(dòng)態(tài)規(guī)劃法用于固定車輛數(shù)的vrp,通過遞歸方法求解。1974年,wren gillett等人提出掃描算法,將該算法應(yīng)用于車輛調(diào)度問題,并和當(dāng)時(shí)其它算法進(jìn)行了比較,

17、證明該算法所求得的解較優(yōu)于其它方法。1981年,christofides等人提出了k度中心樹和相關(guān)算法,對(duì)固定車輛數(shù)m的m-tsp進(jìn)行了進(jìn)行k度中心樹松弛。后來,m.l.fishe對(duì)這種方法做了進(jìn)一步改進(jìn),可求解有134個(gè)客戶的vrp。1991年,gendreau等人將禁忌搜索方法應(yīng)用于vrp,它是比較好的啟發(fā)式算法,可以成功地應(yīng)用于許多經(jīng)典的vrp。1996年,j.lawrence將遺傳算法用于vrp的研究,有效的求解出帶時(shí)間窗限制的vrp。1.2.2 國內(nèi)研究現(xiàn)狀在我國,有關(guān)車輛路徑問題的研究是在20世紀(jì)90年代以后才逐漸興起的,比國外相對(duì)落后。隨著顧客需求的變化,運(yùn)輸車輛的調(diào)度顯得日益重

18、要。近年來,我國理論界逐漸開始關(guān)注車輛路徑問題的研究,并已取得初步成果。蟻群算法、啟發(fā)式算法以及一些混合算法被學(xué)者們廣泛的利用,代表了較近的研究思想。啟發(fā)式算法作為一種逐次逼近的算法,雖然不一定得到最優(yōu)解,但是可以高效率地得到具有較高精度的解,而且也易于考慮各種實(shí)際問題,因此,現(xiàn)已成為解決vrp問題的重要方法。與傳統(tǒng)的啟發(fā)式算法相比,近年來所采用的一些新的啟發(fā)式算法,通過對(duì)啟發(fā)式規(guī)則和搜索方式的改進(jìn),在求解多節(jié)點(diǎn)、多約束的vrp問題上可以獲得較快的收斂速度和較高質(zhì)量的全局解。浙江大學(xué)蔡延光等人運(yùn)用模擬退火算法和遺傳算法求解多重車輛調(diào)度問題,并將其集成為智能算法庫,作為設(shè)計(jì)智能運(yùn)輸調(diào)度系統(tǒng)的依據(jù)

19、。鞍山鋼鐵學(xué)院李大衛(wèi)和東北大學(xué)姜大力等分別針對(duì)有時(shí)間窗和無時(shí)間窗約束下的車輛路徑問題用基因編碼遺傳算法求解,結(jié)果在較快速度下得到了近優(yōu)解。崔雪麗、馬良和范炳全等人基于近年來出現(xiàn)的新型智能優(yōu)化思想:人工螞蟻系統(tǒng)給出了一種可快速求解vrp的螞蟻搜索算法。通過定義基本的人工螞蟻狀態(tài)轉(zhuǎn)移概,并結(jié)合局部搜索策略,用迭代次數(shù)控制算法的運(yùn)行時(shí)間,從而使該方法具有使用意義和可操作性。經(jīng)一系列數(shù)據(jù)測試和驗(yàn)證,與若干已有的經(jīng)典算法相比較,獲得了較好的結(jié)果。楊善林人等提出一種基于蟻群優(yōu)化的混合算法來解決vrp。首先提出一種aco 算子,然后加入局部搜索機(jī)制并使用基于問題的特定啟發(fā)信息節(jié)約量來改進(jìn)算法。尹小峰等針對(duì)了

20、蟻群算法存在的過早收斂問題引入節(jié)省量以及車輛載重利用率兩種啟發(fā)式信息對(duì)蟻群算法加以改進(jìn),并加入2.opt方法對(duì)問題求解進(jìn)行局部優(yōu)化,計(jì)算機(jī)仿真結(jié)果表明,這種混合蟻群算法對(duì)求解車輛路徑問題有較好的改進(jìn)效果。1.3 本文研究內(nèi)容本文的研究內(nèi)容可以概括為三部分:蟻群算法的基礎(chǔ)性理論、蟻群算法的優(yōu)化以及蟻群算法在tsp問題中的應(yīng)用:(1) 基本蟻群算法了解基本蟻群算法的概念、原理以及代碼如何實(shí)現(xiàn)。(2) 蟻群算法的優(yōu)化根據(jù)蟻群算法的基本原理做出優(yōu)化,避免蟻群算法的缺點(diǎn),在迭代次數(shù)盡量少,迭代結(jié)果盡量趨近最優(yōu)解的情況下做出優(yōu)化。本文主要講解輪盤算法和max_min算法在蟻群算法中的優(yōu)化。(3) 蟻群算法

21、在tsp問題中的應(yīng)用利用蟻群算法的特點(diǎn)以及蟻群算法的優(yōu)化應(yīng)用到tsp問題中。1.4 開發(fā)環(huán)境與工具計(jì)算機(jī):hp probook 4416s系統(tǒng):microft windows xp professinal 版本2002 service pack3內(nèi)存:2g開發(fā)語言:c+運(yùn)行環(huán)境:microsoft visual c+ 6.01.5 論文的組織結(jié)構(gòu)第一章 緒論 主要是講解本課題研究內(nèi)容、目的和意義,國內(nèi)外對(duì)蟻群算法的研究現(xiàn)狀以及本系統(tǒng)開發(fā)環(huán)境的介紹;第二章 蟻群算法 主要是介紹什么是蟻群算法,蟻群算法的原理和思想以及蟻群算法的優(yōu)缺點(diǎn);第三章 改進(jìn)的蟻群算法 主要是講解在基本蟻群算法的基礎(chǔ)上對(duì)蟻群

22、算法做出優(yōu)化(本文采用了輪盤選擇和max-min兩種優(yōu)化方式)第四章 蟻群算法在車輛路徑問題中的應(yīng)用第五章 總結(jié)與展望第2章蟻群算法2.1 蟻群算法簡介蟻群算法(ant colony optimization, aco),又稱螞蟻算法,是一種用來在圖中尋找優(yōu)化路徑的機(jī)率型算法。它由marco dorigo于1992年在他的博士論文中提出,其靈感來源于螞蟻在尋找食物過程中發(fā)現(xiàn)路徑的行為。蟻群算法是一種模擬進(jìn)化算法,初步的研究表明該算法具有許多優(yōu)良的性質(zhì)。針對(duì)pid控制器參數(shù)優(yōu)化設(shè)計(jì)問題,將蟻群算法設(shè)計(jì)的結(jié)果與遺傳算法設(shè)計(jì)的結(jié)果進(jìn)行了比較,數(shù)值仿真結(jié)果表明,蟻群算法具有一種新的模擬進(jìn)化優(yōu)化方法的有

23、效性和應(yīng)用價(jià)值。蟻群算法(ant clony optimization, aco)是一種群智能算法,它是由一群無智能或有輕微智能的個(gè)體(agent)通過相互協(xié)作而表現(xiàn)出智能行為,從而為求解復(fù)雜問題提供了一個(gè)新的可能性。蟻群算法是一種仿生學(xué)算法,是由自然界中螞蟻覓食的行為而啟發(fā)的。在自然界中,螞蟻覓食過程中,蟻群總能夠按照尋找到一條從蟻巢和食物源的最優(yōu)路徑。圖(1)顯示了這樣一個(gè)覓食的過程。圖(1)螞蟻覓食在圖1(a)中,有一群螞蟻,假如a是蟻巢,e是食物源(反之亦然)。這群螞蟻將沿著蟻巢和食物源之間的直線路徑行駛。假如在a和e之間突然出現(xiàn)了一個(gè)障 礙物(圖1(b),那么,在b點(diǎn)(或d點(diǎn))的螞蟻

24、將要做出決策,到底是向左行駛還是向右行駛?由于一開始路上沒有前面螞蟻留下的信息素 (pheromone),螞蟻朝著兩個(gè)方向行進(jìn)的概率是相等的。但是當(dāng)有螞蟻?zhàn)哌^時(shí),它將會(huì)在它行進(jìn)的路上釋放出信息素,并且這種信息素會(huì)議一定的速率散 發(fā)掉。信息素是螞蟻之間交流的工具之一。它后面的螞蟻通過路上信息素的濃度,做出決策,往左還是往右。很明顯,沿著短邊的的路徑上信息素將會(huì)越來越濃(圖 1(c),從而吸引了越來越多的螞蟻沿著這條路徑行駛。2.2 蟻群算法的原理設(shè)想,如果我們要為螞蟻設(shè)計(jì)一個(gè)人工智能的程序,那么這個(gè)程序要多么復(fù)雜呢?首先,你要讓螞蟻能夠避開障礙物,就必 須根據(jù)適當(dāng)?shù)牡匦谓o它編進(jìn)指令讓他們能夠巧妙

25、的避開障礙物,其次,要讓螞蟻找到食物,就需要讓他們遍歷空間上的所有點(diǎn);再次,如果要讓螞蟻找到最短的路 徑,那么需要計(jì)算所有可能的路徑并且比較它們的大小,而且更重要的是,你要小心翼翼的編程,因?yàn)槌绦虻腻e(cuò)誤也許會(huì)讓你前功盡棄。這是多么不可思議的程序! 太復(fù)雜了,恐怕沒人能夠完成這樣繁瑣冗余的程序。然而,事實(shí)并沒有你想得那么復(fù)雜,上面這個(gè)程序每個(gè)螞蟻的核心程序編碼不過100多行!為什么這么簡單的程序會(huì)讓螞 蟻干這樣復(fù)雜的事情?答案是:簡單規(guī)則的涌現(xiàn)。事實(shí)上,每只螞蟻并不是像我們想象的需要知道整個(gè)世界的信息,他們其實(shí)只關(guān)心很小范圍內(nèi)的眼前信息,而且根 據(jù)這些局部信息利用幾條簡單的規(guī)則進(jìn)行決策,這樣,在

26、蟻群這個(gè)集體里,復(fù)雜性的行為就會(huì)凸現(xiàn)出來。這就是人工生命、復(fù)雜性科學(xué)解釋的規(guī)律!那么,這些簡單規(guī)則是什么呢?2.2.1 螞蟻覓食規(guī)則在每只螞蟻能感知的范圍內(nèi)尋找是否有食物,如果有就直接過去。否則看是否有信息素,并且比較在能感知的范圍內(nèi)哪一點(diǎn)的信息素最多,這樣,它就朝信息素多的地 方走,并且每只螞蟻都會(huì)以小概率犯錯(cuò)誤,從而并不是往信息素最多的點(diǎn)移動(dòng)。螞蟻找窩的規(guī)則和上面一樣,只不過它對(duì)窩的信息素做出反應(yīng),而對(duì)食物信息素沒反應(yīng)。2.2.2 螞蟻移動(dòng)規(guī)則每只螞蟻都朝向信息素最多的方向移,并且,當(dāng)周圍沒有信息素指引的時(shí)候,螞蟻會(huì)按照自己原來運(yùn)動(dòng)的方向慣性的運(yùn)動(dòng)下去,并且,在運(yùn)動(dòng)的方向有一個(gè)隨機(jī)的小的擾

27、動(dòng)。為了防止螞蟻原地轉(zhuǎn)圈,它會(huì)記住剛才走過了哪些點(diǎn),如果發(fā)現(xiàn)要走的下一點(diǎn)已經(jīng)在之前走過了,它就會(huì)盡量避開。2.2.3 螞蟻避障規(guī)則如果螞蟻要移動(dòng)的方向有障礙物擋住,它會(huì)隨機(jī)的選擇另一個(gè)方向,并且有信息素指引的話,它會(huì)按照覓食的規(guī)則行為。2.2.4 螞蟻撒信息素規(guī)則每只螞蟻在剛找到食物或者窩的時(shí)候撒發(fā)的信息素最多,并隨著它走遠(yuǎn)的距離,播撒的信息素越來越少。根據(jù)這幾條規(guī)則,螞蟻之間并沒有直接的關(guān)系,但是每只螞蟻都和環(huán)境發(fā)生交互,而通過信息素這個(gè)紐帶,實(shí)際上把各個(gè)螞蟻之間關(guān)聯(lián)起來了。比如,當(dāng)一只螞蟻找到了食物,它并沒有直接告訴其它螞蟻這兒有食物,而是向環(huán)境播撒信息素,當(dāng)其它的螞蟻經(jīng)過它附近的時(shí)候,就

28、會(huì)感覺到信息素的存在,進(jìn)而根據(jù)信息素的指引找到了食物。2.3 蟻群算法的特點(diǎn)及優(yōu)缺點(diǎn)2.3.1 蟻群算法的特點(diǎn)(1)蟻群算法是一種自組織的算法在系統(tǒng)論中,自組織和它組織是組織的兩個(gè)基本分類,其區(qū)別在于組織力或組織指令是來自于系統(tǒng)的內(nèi)部還是來自于系統(tǒng)的外部,來自于系統(tǒng)內(nèi)部的是自組織,來自于系統(tǒng)外部的是他組織。如果系統(tǒng)在獲得空間的、時(shí)間的或者功能結(jié)構(gòu)的過程中,沒有外界的特定干預(yù),我們便說系統(tǒng)是自組織的。在抽象意義上講,自組織就是在沒有外界作用下使得系統(tǒng)熵增加的過程(即是系統(tǒng)從無序到有序的變化過程)。蟻群算法充分體現(xiàn)了這個(gè)過程,以螞蟻群體優(yōu)化為例子說明。當(dāng)算法開始的初期,單個(gè)的人工螞蟻無序的尋找解,

29、算法經(jīng)過一段時(shí)間的演化,人工螞蟻間通過信息激素的作 用,自發(fā)的越來越趨向于尋找到接近最優(yōu)解的一些解,這就是一個(gè)無序到有序的過程。(2)蟻群算法是一種本質(zhì)上并行的算法每只螞蟻搜索的過程彼此獨(dú)立,僅通過信息激素進(jìn)行通信。所以蟻群算法則可以看作是一個(gè)分布式的多agent系統(tǒng),它在問題空間的多點(diǎn)同時(shí)開始進(jìn)行獨(dú)立的解搜索,不僅增加了算法的可靠性,也使得算法具有較強(qiáng)的全局搜索能力。(3)蟻群算法是一種正反饋的算法從真實(shí)螞蟻的覓食過程中我們不難看出,螞蟻能夠最終找到最短路徑,直接依賴于最短 路徑上信息激素的堆積,而信息激素的堆積卻是一個(gè)正反饋的過程。對(duì)蟻群算法來說,初始時(shí)刻在環(huán)境中存在完全相同的信息激素,給

30、予系統(tǒng)一個(gè)微小擾動(dòng),使得各 個(gè)邊上的軌跡濃度不相同,螞蟻構(gòu)造的解就存在了優(yōu)劣,算法采用的反饋方式是在較優(yōu)的解經(jīng)過的路徑留下更多的信息激素,而更多的信息激素又吸引了更多的螞 蟻,這個(gè)正反饋的過程使得初始的不同得到不斷的擴(kuò)大,同時(shí)又引導(dǎo)整個(gè)系統(tǒng)向最優(yōu)解的方向進(jìn)化。因此,正反饋是螞蟻算法的重要特征,它使得算法演化過程得以進(jìn)行。(4)蟻群算法具有較強(qiáng)的魯棒性相對(duì)于其它算法,蟻群算法對(duì)初始路線要求不高,即蟻群算法的求解結(jié)果不依賴子初始路線的選擇,而且在搜索過程中不需要進(jìn)行人工的調(diào)整。其次,蟻群算法的參數(shù)數(shù)目少,設(shè)置簡單,易于蟻群算法應(yīng)用到其它組合優(yōu)化問題的求解。2.3.2 蟻群算法的優(yōu)點(diǎn)蟻群算法的成果運(yùn)

31、用激起了人們的極大興趣,并吸引了一批研究人員從事蟻群算法的研究。研究表明,蟻群算法是一種有效的隨機(jī)搜素算法,具有如下優(yōu)點(diǎn):(1)較強(qiáng)的魯棒性:無中心控制,不會(huì)由于某一個(gè)或者某幾個(gè)個(gè)體的故障而影響整個(gè)問題的求解;(2)本質(zhì)并行性:蟻群在問題空間的多點(diǎn)不同時(shí)開始進(jìn)行獨(dú)立的解搜素,增強(qiáng)了算法的全局搜素能力;(3)正反饋性:蟻群算法能夠最終找到最短路徑,直接依賴于最短路徑上的信息素的堆積,而信息素的堆積就是一個(gè)正反饋的過程;(4)易于與其他方法結(jié)合:蟻群算法很容易與多種啟發(fā)式算法結(jié)合,以改善算法的性能。(5)自組織性:算法初期,單個(gè)的人工螞蟻無序地尋找解,經(jīng)過一段時(shí)間的煙花,螞蟻間通過信息素的作用,自

32、發(fā)地越來越趨向于尋找到接近最優(yōu)解的一些解,是個(gè)從無序到有序的過程;2.3.3 蟻群算法的缺點(diǎn)雖然蟻群算法有許多優(yōu)點(diǎn),但同時(shí)也存在一些缺陷,如:(1)與其他方法相比,該算法一般需要較長的搜索時(shí)間,計(jì)算量較大,蟻群算法的復(fù)雜度可以反映這一點(diǎn);(2)該方法容易出現(xiàn)停滯現(xiàn)象(stagnation behaviour),即搜索進(jìn)行到一定程度后,所有個(gè)體所發(fā)現(xiàn)的解完全一致,不能對(duì)解空間進(jìn)一步進(jìn)行搜索,不利于發(fā)現(xiàn)更好的解。2.5 蟻群算法的核心函數(shù)(1)初始化將所有城市設(shè)置為沒有去過,清空螞蟻?zhàn)哌^的路徑編號(hào)(置0),螞蟻?zhàn)哌^長度設(shè)置0,并隨機(jī)選取一個(gè)出發(fā)點(diǎn),以及標(biāo)識(shí)改點(diǎn)走過。void cant:init()

33、for (int i=0;in_city_count;i+)m_nallowedcityi=1; /設(shè)置全部城市為沒有去過m_npathi=0; /螞蟻?zhàn)叩穆窂饺吭O(shè)置為0/螞蟻?zhàn)哌^的路徑長度設(shè)置為0m_dbpathlength=0.0; /隨機(jī)選擇一個(gè)出發(fā)城市m_ncurcityno=rnd(0,n_city_count);/設(shè)置出發(fā)城市m_npath0=m_ncurcityno;/標(biāo)識(shí)出發(fā)城市為已經(jīng)去過了m_nallowedcitym_ncurcityno=0; /已經(jīng)去過的城市數(shù)量設(shè)置為1m_nmovedcitycount=1; (2)選擇下一個(gè)城市,返回城市編號(hào)int cant:cho

34、osenextcity()int nselectedcity=-1; /返回結(jié)果,先暫時(shí)把其設(shè)置為-1/計(jì)算當(dāng)前城市和沒去過的城市之間的信息素總和double dbtotal=0.0;double probn_city_count; / 保存城市被選中的概率for (int i=0;in_city_count;i+)if (m_nallowedcityi = 1) /城市沒去過probi=pow(g_trialm_ncurcitynoi,alpha)*pow(1.0/g_distancem_ncurcitynoi,beta); /該城市和當(dāng)前城市間的信息素dbtotal=dbtotal+pro

35、bi; /累加信息素,得到總和elseprobi=0.0;/直接選擇概率最大的點(diǎn)double temp_max=-1;for(int ii=0;iin_city_count;ii+)if(temp_maxprobii)temp_max=probii;nselectedcity=ii;if (nselectedcity = -1)for (int i=0;in_city_count;i+)if (m_nallowedcityi = 1) /城市沒去過nselectedcity=i;break;/返回結(jié)果return nselectedcity;(3)更新環(huán)境信息素/更新環(huán)境信息素,基本算法/*v

36、oid ctsp:updatetrial()/臨時(shí)保存信息素double dbtemparyn_city_countn_city_count;memset(dbtempary,0,sizeof(dbtempary); /先全部設(shè)置為0/計(jì)算新增加的信息素,保存到臨時(shí)數(shù)組里int m=0;int n=0;for (int i=0;in_ant_count;i+) /計(jì)算每只螞蟻留下的信息素for (int j=1;jn_city_count;j+)m=m_cantaryi.m_npathj;n=m_cantaryi.m_npathj-1;dbtemparynm=dbtemparynm+dbq/m

37、_cantaryi.m_dbpathlength;dbtemparymn=dbtemparynm;/最后城市和開始城市之間的信息素n=m_cantaryi.m_npath0;dbtemparynm=dbtemparynm+dbq/m_cantaryi.m_dbpathlength;dbtemparymn=dbtemparynm;/更新環(huán)境信息素for (i=0;in_city_count;i+)for (int j=0;jn_city_count;j+)g_trialij=g_trialij*rou+dbtemparyij; /最新的環(huán)境信息素 = 留存的信息素 + 新留下的信息素(4)檢查終

38、止條件如果達(dá)到最大迭代次數(shù),算法終止,輸出最終最優(yōu)解;否則,執(zhí)行(5),輸出當(dāng)前迭代最優(yōu)解,重新初始化所有的螞蟻的路徑矩陣所有元素初始化為0,禁忌表表清空,允許表表中加入所有的城市節(jié)點(diǎn)。隨機(jī)選擇它們的起始位置(也可以人工指定)。在路徑矩陣中加入起始節(jié)點(diǎn),允許表中去掉該起始節(jié)點(diǎn),重復(fù)執(zhí)行(2),(3),(4)步。(5)輸出最優(yōu)值每次迭代結(jié)束,輸出當(dāng)前迭代編號(hào)以及本次迭代中最優(yōu)解螞蟻的路徑長度。2.6 蟻群算法的參數(shù)分析 從蟻群算法的模型中可以看出,蟻群算法的參數(shù)空間龐大,合適的參數(shù)組合能夠過有全局收喲能力和較快的瘦臉術(shù)的,不合適的參數(shù)組合則會(huì)使得算法收斂較慢或者達(dá)到局部最優(yōu)解。然而,目前對(duì)各參數(shù)

39、該如何選擇也沒有嚴(yán)格的理論依據(jù),只是根據(jù)經(jīng)驗(yàn)和實(shí)驗(yàn)來選取合適的參數(shù)值。基于此,國內(nèi)外許多研究人員在蟻群算法的參數(shù)分析和優(yōu)化組合方面做了大量的工作。對(duì)、n_ant_count(n_ant_count,螞蟻數(shù)量)等參數(shù)的選擇進(jìn)行了初步研究;2.6.1 螞蟻數(shù)量n_ant_count螞蟻算法是通過多個(gè)候選解組成的群體進(jìn)化過程來搜索最優(yōu)解,所以螞蟻的數(shù)目n_ant_count對(duì)一群算法有一定的影響。n_ant_count大,會(huì)提高蟻群算法的全局搜索能力和穩(wěn)定性,但數(shù)量過大會(huì)導(dǎo)致大量曾被搜索過的路徑上的信息素變化趨于平均,信息正反饋?zhàn)饔脺p弱,隨機(jī)性增強(qiáng),收斂速度減慢。反之,n_ant_count小,會(huì)使

40、從來未被搜索到的解上的信息素減小到接近于0,全局搜索的隨機(jī)性減弱,雖然收斂速度加快,但是會(huì)使算法的全局性能降低,穩(wěn)定性變差,出現(xiàn)過早停滯現(xiàn)象。經(jīng)大量的仿真試驗(yàn)獲得:當(dāng)n_ant_count屬于【0.6*n_city_count,09*n_city_count】時(shí)(n_city_count為城市數(shù)量),蟻群算法的全局收斂性和收斂速度都比較好。 2.6.2 啟發(fā)因子啟發(fā)銀子是表示螞蟻在運(yùn)動(dòng)過程中所積累的信息素在知道蟻群搜索中的相對(duì)重要程度,其大小反映了螞蟻在路徑搜索中隨機(jī)因素作用強(qiáng)弱。越大,螞蟻選擇以前走過的路徑可能性就越大,實(shí)現(xiàn)自催化過程,但搜索的隨機(jī)性減弱;越小,易使蟻群算法過早陷入局部最優(yōu)。

41、而已有研究證明:對(duì)于小規(guī)模的tsp問題,在蟻群算法的三種模型中=1時(shí),解的質(zhì)量和穩(wěn)定性都是最好的。2.6.3 期望啟發(fā)因子期望啟發(fā)因子是表示能見度相對(duì)重要程度的參數(shù)。的大小反映了螞蟻在路徑搜索過程中確定性因素作用的強(qiáng)弱。而已有研究表明:過小,講導(dǎo)致螞蟻群體陷入純粹的隨機(jī)搜索,在此情況下很難找到最優(yōu)解;過大,螞蟻在局部點(diǎn)上選擇局部最短路徑的可能性越大,雖然加快了收斂速度,但減弱了隨機(jī)性,易陷入局部最優(yōu)。對(duì)于tsp問題,不同城市規(guī)模,的具體取值各有不同。一般【2,5,8】時(shí),算法的綜合性比較好。2.6.4 信息素?fù)]發(fā)度在蟻群算法中,人工螞蟻是具有人類記憶功能的,隨著時(shí)間的推移,以前留下的信息將要逐

42、漸消失。如前所述,在算法模型中,參數(shù)表示信息素?fù)]發(fā)度,其大小直接關(guān)系到蟻群算法的全局搜索能力及其收斂速度;1-信息素殘留印子,反映了螞蟻個(gè)體之間相互影響的強(qiáng)弱。研究表明:在其它參數(shù)相同的情況下,信息素?fù)]發(fā)度的大小對(duì)一群算法的收斂性影響非常大,與循環(huán)次數(shù)近似成反比關(guān)系。當(dāng)極小時(shí),路徑上殘留信息占主導(dǎo)地位,信息正反饋?zhàn)饔孟鄬?duì)較弱,手術(shù)的隨機(jī)性增強(qiáng),因而蟻群算法的收斂速度很慢。若較大時(shí),正反饋?zhàn)饔谜贾鲗?dǎo)地位,搜素的隨機(jī)性減弱,導(dǎo)致收斂速度快,但易陷入局部最優(yōu)狀態(tài)。對(duì)于tsp問題,不同的問題規(guī)模,的曲子也不盡相同。一般來說,【0.1,0.5】時(shí),性能的算法較好。2.6.5 總信息量(dbq)總信息量d

43、bq為螞蟻循環(huán)一周時(shí)釋放在所經(jīng)路徑上的信息素總量,在基本一群算法中他是一個(gè)產(chǎn)量。一般的理解是:總信息量dbq越大,則在螞蟻已經(jīng)走過的路徑上信息素的累積越快,可以加強(qiáng)蟻群搜素時(shí)的正反饋性能,有助于算法的快速收斂。dbq過小,則信息素濃度增長太慢,正反饋信息太少,使算法難以收斂。研究表明:在蟻周模型中,由于tsp的規(guī)模不同,路徑長度各不相同,如果讀不通的tsp使用相同的dbq值,則信息素總量更新尺度是不同的,最終修改信息素的程度存在很大不穩(wěn)定性。dbq的取值應(yīng)與說處理的tsp的規(guī)模相對(duì)應(yīng),確保信息素總量更新在可控制范圍內(nèi)。在小規(guī)模tsp問題中,dbq=100是大多數(shù)研究學(xué)者認(rèn)為所公認(rèn)的較好值。第3

44、章改進(jìn)的蟻群算法(1)采用輪盤賭選擇代替了基本框架中通過啟發(fā)式函數(shù)和信息素選擇路徑,改進(jìn)蟻群算法的信息素傳遞參數(shù),讓整個(gè)算法更快速的找到最優(yōu)解。(2)最大最小優(yōu)化主要作了如下改進(jìn): a:每次迭代結(jié)束后,只有最優(yōu)解所屬路徑上的信息被更新,從而更好地利用了歷史信息; b:為了避免算法過早收斂于并非全局最優(yōu)的解,將各條路徑可能的外激素濃度限制于【t_min,t_max】,超出這個(gè)范圍的值被強(qiáng)制設(shè)為t_min或者是t_max,可以有效的避免某條路徑上的信息量遠(yuǎn)大于其余路徑,使得所有螞蟻都集中到同一條路徑上,從而使算法不再擴(kuò)散; c:初始時(shí)刻,各條路徑上外激素的其實(shí)濃度設(shè)為t_max,在算法的初始時(shí)刻,

45、p(0p 0.0) /總的信息素值大于0dbtemp=rnd(0.0,dbtotal); /取一個(gè)隨機(jī)數(shù)for (int i=0;in_city_count;i+)if (m_nallowedcityi = 1) /城市沒去過dbtemp=dbtemp-probi; /這個(gè)操作相當(dāng)于轉(zhuǎn)動(dòng)輪盤if (dbtemp = max,,則設(shè)置ij= max;如果ij= min,則設(shè)置ij=min;max和min的值可以分別由以下公式得到:max=11-1lsbest其中:lsbest是得到的最優(yōu)解路徑長度。 螞蟻完成一次搜索,即為一次迭代。設(shè)迭代次數(shù)為n2時(shí),則由以下公式來計(jì)算: min=max1-np

46、bestavg-1npbest式中avg =n/2,pbest=0.5(3)信息素初始值設(shè)為max3.2.2 max_min 算法流程圖 max_min改進(jìn)算法與基本的蟻群算法的其他地方一致,僅僅是更新信息素的策略不同,以下是max_min更新信息素的函數(shù)流程圖:開始尋找當(dāng)前迭代路徑最短的螞蟻根據(jù)公式計(jì)算公式,計(jì)算max值和min的值根據(jù)公式計(jì)算相鄰兩城市的路徑待添加的隱藏文字內(nèi)容3信息素是否超過max將信息素上限設(shè)為max 是 否信息素是否小于min將信息素下線設(shè)為min 是 否依次將任意兩城市的信息素加上本次新增的信息素結(jié)束第4章蟻群算法在車輛路徑問題中的應(yīng)用4.1 車輛路徑問題簡介4.1

47、.1 車輛路徑問題定義車輛路徑問題(vrp)是dantzig和ramser于1959年提出的,它是指一定數(shù)量的客戶,各自有不同數(shù)量的貨物需求,配送中心向客戶提供貨物,由一個(gè)車隊(duì)負(fù)責(zé)分送貨物,組織適當(dāng)?shù)男熊嚶肪€,目標(biāo)是使得客戶的需求得到滿足,并能在一定的約束下,達(dá)到諸如路程最短、成本最小、耗費(fèi)時(shí)間最少等目的。 車輛路線問題自1959年提出以來,一直是網(wǎng)絡(luò)優(yōu)化問題中最基本的問題之一,由于其應(yīng)用的廣泛性和經(jīng)濟(jì)上的重大價(jià)值,一直受到國內(nèi)外學(xué)者的廣泛關(guān)注。車輛路線問題可以描述如下(如圖): 場站vrp示意圖設(shè)有一場站(depot),共有m 輛貨車,車輛容量為q,有n位顧客(customer),每位顧客有

48、其需求量d。車輛從場站出發(fā)對(duì)客戶進(jìn)行配送服務(wù)最后返回場站,要求所有顧客都被配送,每位顧客一次配送完成,且不能違反車輛容量的限制,目的是所有車輛路線的總距離最小。車輛路線的實(shí)際問題包括配送中心配送、公共汽車路線制定、信件和報(bào)紙投遞、航空和鐵路時(shí)間表安排、工業(yè)廢品收集等。4.1.2 車輛路徑問題分類根據(jù)研究的重點(diǎn)不同,vrp存在多種分類方式:(a)按一直信息的特征,可分為確定性vrp和不確定性vrp,其中不確定性vrp可進(jìn)一步分為隨機(jī)車輛路徑問題(svrp)和模糊車輛路徑(pvrp); (b)按約束條件,可以分為帶有容量限制的車輛路徑問題(cvrp),帶有時(shí)間距離約束的車輛路徑問題(dvrp)以及

49、帶有時(shí)間窗的車輛路徑問題(vrptw);(c)按需求是否可以分割,可以分為可分割的車輛路徑問題和不可分割的車輛路徑問題;(d)按每個(gè)顧客需求量是否超過車的容量來分,可以分為滿載車輛路徑和非滿載車輛路徑問題;(e)按配送中心的多少來分可以分為但車場車輛路徑問題(svrp)。即一般車輛路徑問題(vrp),以及多車場車輛路徑問題(mvrp),其中mvrp又可以根據(jù)是否每輛車都有固定的重點(diǎn)車場分為重點(diǎn)車場固定的車輛路徑問題和重點(diǎn)車場不固定的開放式車輛路徑問題(ovrp);按優(yōu)化目標(biāo)分,又可以分為單目標(biāo)問題和多目標(biāo)問題;按路由過程中相關(guān)信息是否改變,又可以分為動(dòng)態(tài)vrp和靜態(tài)vrp。4.2 車輛路徑問題

50、的求解算法 由于情況不同,vrp數(shù)學(xué)模型夠早及求解算法也有較大的差別。目前有關(guān)vrp模型的研究已經(jīng)取得了較大的成果。綜合過去的相關(guān)研究,vrp模型基本可以分為圖模型、數(shù)學(xué)模型和仿真模型。vrp的求解算法非常豐富,基本可以分為緊缺算法和iq法師算法兩大類。求解vrp的啟發(fā)式算法有不同的分類方法。4.2.1 精確算法精確算法指可求出最優(yōu)解的算法。到目前為止,已提出的精確算法種類較多,有分支定界法、割平面法、整數(shù)規(guī)劃算法和動(dòng)態(tài)規(guī)劃算法等。另外,還有的認(rèn)為精確算法指股東認(rèn)購配股,可認(rèn)購數(shù)量不足1股的部分按照精確算法原則處理。即先按照配售比例和每個(gè)賬戶股數(shù)計(jì)算出可認(rèn)購數(shù)量 的整數(shù)部分;對(duì)于計(jì)算出不足1股的部分(尾數(shù)保留三位小數(shù)),將所有賬戶按照尾數(shù)從大到小的順序進(jìn)位(尾數(shù)相同則隨機(jī)排序),直至每個(gè)賬戶獲得的可配股數(shù) 量加總與可配售總量一致。另外關(guān)于精確算法原則取整,其實(shí)舉個(gè)例子就明白了: 假設(shè)有共有100手債券發(fā)行,四個(gè)人認(rèn)購 :第1人認(rèn)購25

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論