資源描述:
《數(shù)學(xué)建模垃圾運(yùn)輸問題的求解與源代碼》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、,,,word,,,完美整理版垃圾運(yùn)輸問題***信息工程學(xué)院計(jì)算機(jī)應(yīng)用專業(yè)**********摘要:本文通過對垃圾站點(diǎn)之間分布位置的分析,構(gòu)造出解決垃圾運(yùn)輸問題的模型。首先,我們對所給數(shù)據(jù)繪制其xy散點(diǎn)圖,根據(jù)題設(shè)提出自己假設(shè)的條件,。其次,結(jié)合已有的模型,對垃圾點(diǎn)之間的位置分布關(guān)系進(jìn)行討論及證明,從而確定最基本的行車路線原則。然后,編寫c語言程序,利用計(jì)算機(jī)進(jìn)行算法的模擬,從而搜索出各運(yùn)輸車輛的數(shù)量以及最佳的分配方案,使得(1)在不考慮鏟車的情況下運(yùn)輸費(fèi)用最少、(2)考慮在有鏟車的模型中的最佳解、(3)
2、對不同運(yùn)輸量的運(yùn)輸車進(jìn)行合理分配調(diào)度,使得總費(fèi)用最少。根據(jù)我們確定的解題思路,最終我們得到了一組可行解,如下:第一問,求得全部的運(yùn)輸費(fèi)用是2340.97元,花費(fèi)的總時(shí)間是21.95小時(shí);第二問:求得需要3輛鏟車;第三問:求得總的運(yùn)輸費(fèi)用是2323.77元。其中8噸的車4輛,6噸的車3輛,4噸的車3輛。具體的路線分配圖,車輛調(diào)度圖見正文部分。本文討論的解題方法模型簡單,得出的結(jié)果只是一個(gè)近似最優(yōu)解的可行解,所以還有很大的改進(jìn)空間,比如我們可以采用更加智能的算法等。關(guān)鍵詞:計(jì)算機(jī)算法模擬優(yōu)化1.問題的重述某城
3、區(qū)有37個(gè)垃圾集中點(diǎn),每天都要從垃圾處理廠(第38號節(jié)點(diǎn))出發(fā)將垃圾運(yùn)回?,F(xiàn)有一種載重6噸的運(yùn)輸車。每個(gè)垃圾點(diǎn)需要用10分鐘的時(shí)間裝車,運(yùn)輸車平均速度為40公里/小時(shí)(夜里運(yùn)輸,不考慮塞車現(xiàn)象);每臺(tái)車每日平均工作4小時(shí)。運(yùn)輸車重載運(yùn)費(fèi)2元/噸公里;運(yùn)輸車和裝垃圾用的鏟車空載費(fèi)用0.5元/公里;并且假定街道方向均平行于坐標(biāo)軸。請你給出滿意的運(yùn)輸調(diào)度方案以及計(jì)算程序。問題:1.運(yùn)輸車應(yīng)如何調(diào)度(需要投入多少臺(tái)運(yùn)輸車,每臺(tái)車的調(diào)度方案,運(yùn)營費(fèi)用)2.鏟車應(yīng)如何調(diào)度(需要多少臺(tái)鏟車,每臺(tái)鏟車的行走路線,運(yùn)營費(fèi)用
4、)3.如果有載重量為4噸、6噸、8噸三種運(yùn)輸車,又如何調(diào)度?2.模型的基本假設(shè)與符號說明(一)基本假設(shè)1.車輛在拐彎時(shí)的時(shí)間損耗忽略。2.車輛在任意兩站點(diǎn)中途不停車,保持穩(wěn)定的速率。3.只要平行于坐標(biāo)軸即有街道存在。4.無論垃圾量多少,都能在十分鐘內(nèi)裝上運(yùn)輸車。5.每個(gè)垃圾站點(diǎn)的垃圾只能由一輛運(yùn)輸車運(yùn)載。6.假設(shè)運(yùn)輸車、鏟車從A垃圾站到B垃圾站總走最短路線。7.任意兩垃圾站間的最短路線為以兩垃圾站連線為斜邊的直角三角形的兩直角邊之和。8.建設(shè)在運(yùn)輸垃圾過程中沒有新垃圾入站。9.假設(shè)鏟車、運(yùn)輸車載工作途中不
5、發(fā)生意外也不遇到意外;10.各垃圾站每天的垃圾量相對穩(wěn)定。,,,專業(yè)資料參考分享,,,word,,,完美整理版(二)符號說明
6、A
7、表示A點(diǎn)到原點(diǎn)的距離,恒正
8、B
9、表示B點(diǎn)到原點(diǎn)的距離,恒正
10、A-B
11、表示A,B兩點(diǎn)之間的距離,恒正Ta表示A點(diǎn)所在地的垃圾量cost:運(yùn)費(fèi);time:時(shí)間消耗;裝的足夠多運(yùn)輸車當(dāng)前的載重離限載不大于0.55噸(垃圾點(diǎn)的最小垃圾量)序數(shù)號所在點(diǎn)的編號3.模型的建立垃圾運(yùn)輸問題最終可以歸結(jié)為最優(yōu)路徑搜索問題,但注意到此圖為森林而不是樹,不能直接套用Krusal,Prim等現(xiàn)成算法,
12、于是根據(jù)具體問題設(shè)計(jì)出隨機(jī)下山法,用計(jì)算模擬搜索,可以搜尋到令人滿意的可行解。先注意到兩點(diǎn)的情況,設(shè)兩點(diǎn)分別為A(x1,y1),B(x2,y2)。主要有以下兩種情況:一.A,B明顯有先后次序。--遞減狀態(tài)(如圖1)不妨設(shè)x1>x2,y1>y2,不難看出A在B的后方,即A比B遠(yuǎn)。對于前方參考點(diǎn)O,要將A,B對應(yīng)垃圾點(diǎn)的垃圾全部取回再返回O,一共有三種方式:1.O->A->O,O->B->O單獨(dú)運(yùn)輸。這種情況下,總的路程消費(fèi)等于空載運(yùn)行費(fèi)用(0.4元/公里)與裝載時(shí)運(yùn)行費(fèi)用(1.8元/公里噸)的總和。所需的總
13、時(shí)間等于車輛所走過的總路程與速度(40公里/小時(shí))的比值再加上在A,B兩點(diǎn)停留的時(shí)間(每個(gè)垃圾點(diǎn)上停留了10分鐘,1/6小時(shí)),于是有:Cost=0.4*
14、A
15、+1.8*
16、A
17、*Ta+0.4*
18、B
19、+1.8*
20、B
21、*TbTime=(2*
22、A
23、+2*
24、B
25、)/40+1/6*22.O->A->B->O先遠(yuǎn)點(diǎn)再近點(diǎn),即先空載至最遠(yuǎn)處,裝完A點(diǎn)垃圾后再返回至B,再回O點(diǎn),有:Cost=0.4*
26、A
27、+1.8*
28、A-B
29、*Ta+1.8*
30、B
31、*(Ta+Tb)=0.4*
32、A
33、+1.8*
34、A
35、*Ta+1.8*
36、B
37、*T
38、bTime=2*
39、A
40、/40+1/6*23.O->B->A->O先近點(diǎn)在遠(yuǎn)點(diǎn),即先裝B點(diǎn)垃圾,然后載著B點(diǎn)的垃圾奔至A點(diǎn),再回O點(diǎn),有:,,,專業(yè)資料參考分享,,,word,,,完美整理版Cost=0.4*
41、B
42、+1.8*
43、A-B
44、*Tb+1.8*
45、A
46、*(Ta+Tb)=0.4*
47、B
48、+1.8*
49、A
50、*Ta+1.8*
51、B
52、*Tb+1.8*
53、A-B
54、*2*TbTime=2*
55、A
56、/40+1/6*2比較以上三種情況,遠(yuǎn)近點(diǎn)的遍歷順