




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、目錄1.緒論12.貨位規(guī)劃12.1設計條件12.2計算系數(shù)矩陣22.2.1符號假設22.2.2已知條件22.2.3計算系數(shù)矩陣32.3運用匈牙利算法求解42.4最終的貨位規(guī)劃圖112.5運行結果122.6設計總結123.堆垛機徑路規(guī)劃133.1設計條件133.2計算節(jié)點相對距離133.2.1符號假設143.2.2已知條件143.2.3計算節(jié)點相對距離143.3規(guī)劃堆垛機合理線路163.3.1最近鄰點法163.3.2最近插入法183.3.3兩種方法的程序運行結果233.4分析結果233.5設計總結24參考文獻25附錄261.緒論自動化立體倉庫作為現(xiàn)代物流行業(yè)的重中之重,發(fā)揮著十分重要的作用,實現(xiàn)
2、這些功能的直接機構包括:(1)自動倉儲設備(自動化立體倉庫)(2)其他貨架(平面托盤貨架和流動貨架等)(3)各種輸送機(皮帶輸送機、升降移載機、提升機等)(4)各種分揀設備(5)無人臺車(agv、rgv、lgv)(6)其他各種輔助設備。運用一流的集成化物流理念,采用先進的控制、總線、通訊和信息技術,通過以上設備的協(xié)調(diào)動作,按照用戶的需要完成指定貨物的自動有序、快速準確、高效的入庫出庫作業(yè)。自動化立體倉庫是現(xiàn)代物流系統(tǒng)中迅速發(fā)展的一個重要組成部分,它具有節(jié)約用地、減輕勞動強度、消除差錯、提高倉儲自動化水平及管理水平、提高管理自動化立體倉庫是現(xiàn)代物流系統(tǒng)中迅速發(fā)展的重要組成部分,它具有和操作人員素
3、質(zhì)、降低儲運損耗、有效地減少流動資金的積壓、提高物流效率等諸多優(yōu)點。與廠級計算機管理信息系統(tǒng)聯(lián)網(wǎng)以及與生產(chǎn)線緊密相連的自動化立體倉庫更是當今必不可少的關鍵環(huán)節(jié)。自動化所圍繞自動化倉儲系統(tǒng)開發(fā)了多種自動化系統(tǒng)硬件設備及軟件產(chǎn)品,如:不同類型的管理軟件、系統(tǒng)仿真軟件、圖形控制及調(diào)度軟件、堆垛機輸送機控制軟件、條形碼識別跟蹤系統(tǒng)、搬運機器人、碼垛機械手、自動運行小車、貨物分選系統(tǒng)、堆垛機認址檢測系統(tǒng)、貨位探測器、高度檢測器、輸送系統(tǒng)、碼垛系統(tǒng)、自動輸送小車等產(chǎn)品。2.貨位規(guī)劃2.1設計條件某自動化立體倉庫采用2行3列的單元貨格式貨架存放貨物,一共有6個貨格,每個貨格存放一個托盤貨物。貨格以按列編碼的
4、形式進行編號,如圖2.1所示。已知其它參數(shù)假定如下:假設堆垛機在水平方向的行駛速度vx=3.0m/s,在垂直方向的行駛速度vy=2m/s;貨格大小為l(長)w(寬)h(高)=1m1m0.8m;堆垛機初始狀態(tài)在原點0處;貨格j的橫坐標和縱坐標就是其所在的列和行,如貨格6的坐標為(3,2)?,F(xiàn)有6個托盤貨物需要存放到貨架上,貨物的出入庫頻率如表2.1所示。vy2461350vx圖2.1原始貨格圖表2.1 托盤貨物出入庫頻率表貨物頻率貨物頻率貨物頻率a6c15e4b30d9f20根據(jù)以上條件,利用匈牙利算法合理安排各托盤貨物的存放位置。2.2計算系數(shù)矩陣2.2.1符號假設1.為第i種貨物的出入庫頻率
5、(次數(shù)),i=a,b,c,d,e,f;2,分別為貨格j的橫坐標和縱坐標,即貨格j所在的列和行(距離巷道口最近的列記為第1列,最底層記為第1層),j=1,2,3,4,5,6;3為水平方向的行駛速度;4.為垂直方向的行駛速度;5.l為貨格的長;6.w為貨格的寬;7.h為貨格的高;8.為堆垛機運行之貨格j所用時間,該時間是堆垛機行進過程中水平方向和垂直方向所用時間的最大值,j=1,2,3,4,5,6;9. 為堆垛機將貨物i向貨格j存取時所花費的時間。2.2.2已知條件=6,=30,=15,=9,=4,=20;=3.0m/s, =2.0m/s;lwh=1m1m0.8m;貨格1的坐標為(,)=(1,1)
6、;貨格2的貨格為(,)=(1,2);貨格3的坐標為(,)=(2,1);貨格4的坐標為(,)=(2,2);貨格5的坐標為(,)=(3,1);貨格6的坐標為(,)=(3,2)。2.2.3計算系數(shù)矩陣1.計算:公式為=max (2.1)=max=max=1/3=max=max=2/5=max=max=2/3=max=max=2/3=max=max=1=max=max=12.計算系數(shù)矩陣中的系數(shù):= (2.2)=61/3=2, =301/3=10, =151/3=5,=91/3=3, =41/3=4/3,=201/3=20/3;=62/5=12/5,=302/5=12,=152/5=6,=92/5=1
7、8/5,=42/5=8/5,=202/5=8;=62/3=4,=302/3=20,=152/3=10,=92/3=6,=42/3=8/3,=202/3=40/3;=62/3=4,=302/3=20,=152/3=10,=92/3=6,=42/3=8/3,=202/3=40/3;=61=6,=301=30,=151=15,=91=9,=41=4,=201=20;=61=6,=301=30,=151=15,=91=9,=41=4,=201=20;得到系數(shù)矩陣表: 表2.2系數(shù)矩陣表abcdef1210534/320/3212/512618/58/5834201068/340/344201068/3
8、40/3563015942066301594202.3運用匈牙利算法求解1. 匈牙利算法的步驟第一步:建等效矩陣。(1) 從系數(shù)矩陣的每行元素中減去該行的最小元素。(2) 再從所得系數(shù)矩陣的每列元素中減去該列的最小元素。第二步:找獨立0元素,進行試指派。(1)從只有一個0元素的行(或列)開始,給這個0元素加括號(0),表示這行所代表的貨格已有一種貨物分配。然后劃去(0)所在列(或行)的其它0元素,記作“”,表示這列所代表的貨物已指派。(2)對只有一個0元素的列(或行)的0元素加括號(0),然后劃去(0)所在行(或列)的0元素,記作“”。如果在(1),(2)兩步中,遇到每一行和每一列都有兩個或兩
9、個以上的0元素,可任選一個加括號,同時把其所在行和列的0元素都劃去。(3)重復(1),(2)兩步,直到所有0元素都被加括號或打叉。(4)加括號的0元素即為獨立0元素,若其個數(shù)m等于矩陣的階數(shù)n,則已得到問題的最優(yōu)解。若mn,則轉入第三步。第三步:用最少的直線覆蓋所有0元素。(1)對沒有獨立0元素的行打“”。(2)對以打“”的行中所含0元素的列打“”。(3)再對(2),(3),直到得不到新的打“”的行、列為止。(4)將沒有打“”的行和以打“”的列用直線覆蓋,且直線的數(shù)目一定等于獨立0元素的個數(shù)。轉第四步。第四步:增加0元素。 從沒有被直線覆蓋的元素中找出最小元素。未被覆蓋的元素都減去該最小元素,
10、而被兩條線覆蓋的元素都加上該最小元素,其它元素不變。這樣得到新系數(shù)矩陣,轉第二步,重新確定獨立0元素。2應用過程(1)給系數(shù)矩陣表乘以15, 從系數(shù)矩陣的每行元素中減去該行的最小元素, 再從所得系數(shù)矩陣的每列元素中減去該列的最小元素,得到等效矩陣。 (2)從只有一個0元素的第2行開始,給這個0元素加括號(0),表示這行所代表的貨格已有一種貨物分配。然后劃去(0)所在列的其它0元素,記作“”,表示這列所代表的貨物已指派。對只有一個0元素的第1列的0元素加括號(0),然后劃去(0)所在行的0元素,記作“”。 獨立0元素的個數(shù)m=2矩陣的階數(shù)n=6,轉入下一步。(3)用最少的直線覆蓋所有0元素。對第
11、3、4、5、6行打“”。對第5列打“”。得不到新的打“”的行、列,停止。將沒有打“”的行和已打“”的列用直線覆蓋,且直線的數(shù)目一定等于獨立0元素的個數(shù)。 (4)增加0元素。 從沒有被直線覆蓋的元素中找出最小元素2。未被覆蓋的元素都減去該最小元素,而被兩條線覆蓋的元素都加上該最小元素,其它元素不變。這樣得到新系數(shù)矩陣,然后重新確定獨立0元素。矩陣中獨立0元素的個數(shù)m=3n=6,用最少的直線覆蓋所有0元素。mn重新確定獨立0元素用直線覆蓋 (5)繼續(xù)增加0元素,即從未被直線覆蓋的元素中找出一個最小元素,未被覆蓋的元素都減去該最小元素,而被兩條線覆蓋的元素都加上該最小元素,其它元素不變。這樣得到新系
12、數(shù)矩陣,然后重新確定獨立0元素。矩陣中獨立0元素的個數(shù)m=3n=6,用最少的直線覆蓋所有0元素。重新確定獨立0元素 用直線覆蓋 mn (6)繼續(xù)增加0元素,即從未被直線覆蓋的元素中找出一個最小元素,未被覆蓋的元素都減去該最小元素,而被兩條線覆蓋的元素都加上該最小元素,其它元素不變。這樣得到新系數(shù)矩陣,然后重新確定獨立0元素。矩陣中獨立0元素的個數(shù)m=4n=6,用最少的直線覆蓋所有0元素。mn重新確定獨立0元素用直線覆蓋 (7)繼續(xù)增加0元素,即從未被直線覆蓋的元素中找出一個最小元素,未被覆蓋的元素都減去該最小元素,而被兩條線覆蓋的元素都加上該最小元素,其它元素不變。這樣得到新系數(shù)矩陣,然后重新
13、確定獨立0元素。矩陣中獨立0元素的個數(shù)m=4n=6,用最少的直線覆蓋所有0元素。重新確定獨立0元素mn用直線覆蓋 (8)繼續(xù)增加0元素,即從未被直線覆蓋的元素中找出一個最小元素,未被覆蓋的元素都減去該最小元素,而被兩條線覆蓋的元素都加上該最小元素,其它元素不變。這樣得到新系數(shù)矩陣,然后重新確定獨立0元素。矩陣中獨立0元素的個數(shù)m=4n=6,用最少的直線覆蓋所有0元素。mn重新確定獨立0元素用直線覆蓋 (9)繼續(xù)增加0元素,即從未被直線覆蓋的元素中找出一個最小元素,未被覆蓋的元素都減去該最小元素,而被兩條線覆蓋的元素都加上該最小元素,其它元素不變。這樣得到新系數(shù)矩陣,然后重新確定獨立0元素。矩陣
14、中獨立0元素的個數(shù)m=5n=6,用最少的直線覆蓋所有0元素。重新確定獨立0元素mn用直線覆蓋 (10)繼續(xù)增加0元素,即從未被直線覆蓋的元素中找出一個最小元素,未被覆蓋的元素都減去該最小元素,而被兩條線覆蓋的元素都加上該最小元素,其它元素不變。這樣得到新系數(shù)矩陣,然后重新確定獨立0元素。矩陣中獨立0元素的個數(shù)m=5n=6,用最少的直線覆蓋所有0元素。mn用直線覆蓋重新確定獨立0元素 (11)繼續(xù)增加0元素,即從未被直線覆蓋的元素中找出一個最小元素,未被覆蓋的元素都減去該最小元素,而被兩條線覆蓋的元素都加上該最小元素,其它元素不變。這樣得到新系數(shù)矩陣,然后重新確定獨立0元素。矩陣中獨立0元素的個
15、數(shù)m=5n=6,用最少的直線覆蓋所有0元素。重新確定獨立0元素mn用直線覆蓋 (12)繼續(xù)增加0元素,即從未被直線覆蓋的元素中找出一個最小元素,未被覆蓋的元素都減去該最小元素,而被兩條線覆蓋的元素都加上該最小元素,其它元素不變。這樣得到新系數(shù)矩陣,然后重新確定獨立0元素。矩陣中獨立0元素的個數(shù)m=n=6,所以問題已得最優(yōu)解,將矩陣中的非0元素變?yōu)?,將獨立0元素變?yōu)?。重新確定獨立0元素m=n 由解可得最優(yōu)分配方案:a貨物放5貨格,b貨物放1貨格,c貨物放3貨格,d貨物放4貨格,e貨物放6貨格,f貨物放2貨格。2.4最終的貨位規(guī)劃圖2(貨物f)4(貨物d)6(貨物e)1(貨物b)3(貨物c)5
16、(貨物a) 圖2.2最終的規(guī)劃貨位圖2.5運行結果2.6設計總結 通過這個設計我了解了自動化立體倉庫貨位規(guī)劃問題,并掌握了解決這個問題的方法:匈牙利算法。利用匈牙利算法對貨位進行規(guī)劃,合理安排各托板貨物的存放位置。將學到的計算方法靈活運用到現(xiàn)實問題中,可以量化的解決問題,增加了我的知識儲備。在此過程中,培養(yǎng)了我的細心計算和認真檢查能力。更重要的是,我學會了這種學習的方法,而這是日后最實用的,真的是受益匪淺,也感覺到了收獲的喜悅。3.堆垛機徑路規(guī)劃3.1設計條件隨機從圖3.1中的25個貨格中抽出7個貨格的貨物,分別用節(jié)點v1,v2,v3,v4,v5,v6,v7表示。節(jié)點間的距離用直角距離公式求解
17、。分別用最近鄰點法和最近插入法找出堆垛機存取7個托盤貨物的合理路線。vy5 (o)10 (u)15 (w)20 (x)25 (y)4 (g)9 (k)14 (t)19 (n)24 (q)3 (d)8 (j)13 (h)18 (e)23 (s)2 (b)7 (f)12 (i)17 (v)22 (r)1 (a)6 (c)11 (m)16 (p)21 (l)ovx圖3.1 最終的貨位規(guī)劃圖3.2計算節(jié)點相對距離從圖3.1中隨機抽出7個貨格的貨物b、j、i、t、p、x、s,分別用節(jié)點,,表示。貨格和節(jié)點的相對位置如圖3.2、圖3.3所示。vy5 (o)10 (u)15 (w)20 (x)25 (y)4
18、 (g)9 (k)14 (t)19 (n)24 (q)3 (d)8 (j)13 (h)18 (e)23 (s)2 (b)7 (f)12 (i)17 (v)22 (r)1 (a)6 (c)11 (m)16 (p)21 (l)ovx圖3.2貨格相對位置圖 圖3.3節(jié)點相對位置圖 3.2.1符號假設1. 表示節(jié)點i,i=1,2,3,4,5,6,7;2.為節(jié)點與之間的直角距離;3. 為節(jié)點i的橫坐標; 為節(jié)點j的縱坐標;4. l為貨格的長;5.w為貨格的寬;6.h為貨格的高;3.2.2已知條件節(jié)點的坐標為(,)=(1,2),節(jié)點的坐標為(,)=(2,3), 節(jié)點的坐標為(,)=(3,2), 節(jié)點的坐標
19、為(,)=(3,4), 節(jié)點的坐標為(,)=(4,1), 節(jié)點的坐標為(,)=(4,5), 節(jié)點的坐標為(,)=(5,3);lwh=1m1m0.8m;兩貨格相對距離相等。3.2.3計算節(jié)點相對距離計算出所有節(jié)點之間的相對距離,直角距離公式為: (3.1)=|2-1|1+|3-2|0.8=1.8=|3-1|1+|2-2|0.8=2=|3-1|1+|4-2|0.8=3.6=|4-1|1+|1-2|0.8=3.8=|4-1|1+|5-2|0.8=5.4=|5-1|1+|3-2|0.8=4.8=|3-2|1+|2-3|0.8=1.8=|3-2|1+|4-3|0.8=1.8=|4-2|1+|1-3|0.
20、8=3.6=|4-2|1+|5-3|0.8=3.6=|5-2|1+|3-3|0.8=3=|3-3|1+|4-2|0.8=1.6=|4-3|1+|1-2|0.8=1.8=|4-3|1+|5-2|0.8=3.4=|5-3|1+|3-2|0.8=2.8=|4-3|1+|1-4|0.8=3.4=|4-3|1+|5-4|0.8=1.8=|5-3|1+|3-4|0.8=2.8=|4-4|1+|5-1|0.8=3.2=|5-4|1+|3-1|0.8=2.6=|5-4|1+|3-5|0.8=2.6得到節(jié)點相對距離表: 表3.1節(jié)點相對距離表元素v1v2v3v4v5v6v7v11.823.63.85.44.8v
21、21.81.83.63.63v31.61.83.42.8v43.41.82.8v53.22.6v62.6v73.3規(guī)劃堆垛機合理線路3.3.1最近鄰點法1最近鄰點法的思路 (1)從零點開始,作為整個回路的起點。 (2)找到離剛剛加入到回路中的頂點最近的一個頂點,并將其加入到回路中。(3)重復步驟(2),直到所有頂點都加入到回路中。(4)最后,將最后一個加入的頂點和起點連接起來。2.應用過程 (1)先將節(jié)點加入回路中,t=。(2)從節(jié)點出發(fā),比較其到節(jié)點,的距離,選擇其最小值,加入到回路中。 min|in,1i7,且i1=1.8因此將加入到回路中,t=,,其結果如圖3.4。 圖3.4步驟2圖(3
22、)從節(jié)點出發(fā),在節(jié)點,中,找出離最近的節(jié)點。min|in,1i7,且i1,2=1.8這樣就是最近的點,將加入回路中,t=,其結果如圖3.5。圖3.5步驟3圖(4)從節(jié)點出發(fā),在,中,找出離最近的節(jié)點。min|in,1i7,且i1,2,3=1.6這樣就是最近的點,將加入回路中,t= ,其結果如圖3.6所示。圖3.6步驟4圖(5)從節(jié)點出發(fā),觀察離最近的節(jié)點。min|in,1i7,且i1,2,3,4=1.8這樣就是最近的點,將加入到回路中,t= ,其結果如圖3.7所示。 圖3.7步驟5圖(6)從節(jié)點出發(fā),觀察離最近的節(jié)點。min|in,1i7,且i1,2,3,4,6=2.6這樣就是最近的點,將加入
23、到回路中,t= ,其結果如圖3.8所示。圖3.8步驟6圖(7)從節(jié)點出發(fā),是最后一個點,直接加入就可以加入了。然后,將和相連,得到最后的解為 ,其結果如圖3.9。 圖3.9步驟7圖 所以堆垛機運行線路為:281214202316即取送貨物次序為:bjitxsp堆垛機總行駛距離為: f=1.8+1.8+1.6+1.8+2.6+2.6+3.8=163.3.2最近插入法1.最近插入法的思路(1)先將節(jié)點加入到回路中,找到最小的節(jié)點,形成一個子回路,t=,。(2)在剩下的節(jié)點中,尋找一個離子回路中某一節(jié)點最近的節(jié)點。(3)在子回路中找到一條?。ǎ?,使得里程增量+最小。如果有多條滿足條件,任選一條,然
24、后將節(jié)點插入到和之間,用兩條新的弧(,)和(,)代替原來的?。?,),并將節(jié)點加入到子回路中。(4)重復步驟(2)和(3),直到所有的節(jié)點都加入到子回路中。2.應用過程(1)比較貨格相對距離表中從出發(fā)的所有路徑的大小 min|in,1i7,且i1=1.8這樣就由節(jié)點和構成的子回路,t=,如圖3.10所示。圖3.10步驟1圖(2)然后考慮剩下的節(jié)點,到和中某一個節(jié)點的最小距離:min,|in,1i7,且i1,2=1.8(3)由于對稱性,無論將插入到和之間往返路徑中,結果都是一樣的,這樣,構成一個新的子回路t=,其結果如圖3.11所示。圖3.11步驟2圖(4)接著考慮剩下的節(jié)點,到,中某一個節(jié)點的最
25、小距離:min,|in,1i7,且i1,2,3=1.6(5)由圖3.11可知,節(jié)點有3個位置(條弧線)可以插入?,F(xiàn)在分析將加入到哪里合適: 插入到(,)間, =+=3.6+1.81.8=3.6 插入到(,)間, =+=1.8+1.61.8=1.6插入到(,)間, =+=1.6+3.61.8=2.4 比較上面3中情況增量,插入(,)之間的增量最小,所以將節(jié)點加入到(,),所以結果為:t= ,其子回路則變?yōu)槿鐖D3.12所示。圖3.12步驟3圖(6)接著考慮剩下的節(jié)點,到,中某一個節(jié)點的最小距離:min,|in,1i7,且i1,2,3,4=1.8由圖3.12可知,節(jié)點有4個位置(條弧線)可以插入?,F(xiàn)
26、在分析將加入到哪里合適:插入到(,)間, =+=5.4+3.61.8=7.2 插入到(,)間, =+=3.6+1.81.8=3.6插入到(,)間, =+=1.8+3.41.6=3.6插入到(,)間, =+=3.4+5.42=6.8比較上面4中情況增量,可將插入到(,)(,)的增量最小,現(xiàn)選其一,這里將節(jié)點加入到(,)間,結果為:t= ,其子回路則變?yōu)槿鐖D3.13所示。圖3.13步驟4圖(7)接著考慮剩下的節(jié)點,到,中某一個節(jié)點的最小距離:min,|in,1i7,且i1,2,3,4,6=1.8由圖3.13可知,節(jié)點有5個位置(條弧線)可以插入?,F(xiàn)在分析將加入到哪里合適:插入到(,)間, =+=3
27、.8+3.61.8=5.6 插入到(,)間, =+=3.6+3.41.8=5.2插入到(,)間, =+=3.4+3.61.8=5.2插入到(,)間, =+=3.2+1.83.4=1.6插入到(,)間, =+=1.8+3.82=3.6比較上面5中情況增量,插入(,)之間的增量最小,所以將節(jié)點加入到(,)間,結果為:t= ,其子回路則變?yōu)槿鐖D3.14所示。圖3.14步驟5圖(8)在最后考慮剩下的節(jié)點到,中某一節(jié)點的最小距離:min,|in,1i7,且i1,2,3,4,5,6=2.6有6個位置(條弧線)可以插入?,F(xiàn)在分析將加入到哪里合適:插入到(,)間, =+=4.8+31.8=6 插入到(,)間,
28、 =+=3+2.81.8=4插入到(,)間, =+=2.8+2.61.8=3.6插入到(,)間, =+=2.6+2.63.2=2插入到(,)間, =+=2.6+2.81.8=3.6插入到(,)間, =+=2.8+4.82=5.6 比較上面6種情況增量,插入到(,)間的增量最小,所以將節(jié)點加入到(,)間,結果為:t= ,其子回路則變?yōu)槿鐖D3.15所示。圖3.15步驟6圖利用最近插入法所得的解為:t= ,所以堆垛機運行路線為:281420231612即取送貨物次序為:bjtxspi總距離為:f=1.8+1.8+1.8+2.6+2.6+1.8+2=14.4節(jié)省路程為:16-14.4=1.63.3.3
29、兩種方法的程序運行結果程序運行結果與手算結果一致。c+程序見附錄。我通過這次實踐發(fā)現(xiàn)運用c+等編程工具得出的結論準確,且比人工手算快捷方便。在以后的學習實踐中應多加運用和提高。3.4分析結果從3.3的結果可知,最近插入法求得的運行路線比最近鄰點法求得的運行路線更優(yōu)。最近鄰點法的算法十分簡單,但是得到的方案并不十分理想,有很大的改善余地,故此法可作為進一步優(yōu)化的初始方案。與之相比,最近插入法比較復雜,但是可以得到相對滿意的方案。兩種方法都有各自的優(yōu)勢,如果遇到簡單的問題,比如只有三五個節(jié)點,用最近鄰點法就能得出最優(yōu)方案。如果遇到復雜的問題,就要采用最近插入法才能得出最優(yōu)方案。3.5設計總結通過這
30、個設計我深入了解了自動化立體倉庫堆垛機徑路優(yōu)化問題,并掌握了解決這個問題的方法:最近鄰點法和最近插入法。利用這兩種方法對堆垛機徑路進行了優(yōu)化,得出了最優(yōu)方案,通過對這兩種方法的計算結果進行比較分析,讓我對這兩種方法有了更透徹的理解。在設計過程中,我認真對待每一步,珍惜每一分一秒,學到最多的知識和方法,鍛煉自己的能力,為以后從事相關工作打下了堅實的基礎。參考文獻【1】焦永蘭.管理運籌學. 北京:中國鐵道出版社.2000年3月 【2】蔡臨寧.物流系統(tǒng)規(guī)劃建模及實例分析. 北京:機械工業(yè)出版社【3】李霞.區(qū)域物流規(guī)劃與管理. 北京:經(jīng)濟科學出版社.2008【4】錢頌迪.運籌學(第三版).北京:清華大
31、學出版社.2005【5】郝勇.張麗.黃健偉.物流系統(tǒng)規(guī)劃與設計. 北京:清華大學出版社.2008【6】劉昌祺.董良.自動化立體倉庫設計. 北京:機械工業(yè)出版社.2004【7】賈爭現(xiàn).物流配送中心規(guī)劃與設計. 北京:機械工業(yè)出版社.2008【8】何善君.自動小車存取系統(tǒng)的建模及若干關鍵技術研究.d.廈門大學,2008.【9】李梅娟.自動化倉儲系統(tǒng)優(yōu)化方法的研究.d.大連理工大學,2008.【10】商允偉、劉長有.自動化倉庫貨位分配優(yōu)化問題研究.j.計算工程與應用,2004.【11】魏飛、周燕飛.自動化立體倉庫中復合出入庫作業(yè)的優(yōu)化.起重運輸機械,2007(07).【12】周奇才.自動化倉庫系統(tǒng)運
32、行的優(yōu)化控制.j.起重機械,2000(03).【13】周奇才.基于現(xiàn)代物流的自動化立體倉庫系統(tǒng)管理.d西南交通大學,2002.【14】鄒暉華、胡吉全.自動化立體倉庫分配策略優(yōu)化研究.j.科技資訊,2006(17). 附錄1.匈牙利算法源程序代碼#include stdio.h#include fstream.h#include iostream#include #define true 1#define false 0#define bool intusing std:ios_base;bool output(double *,int);void maxsubstract(double *a,
33、int n);double getmaxitem(double *a,int n);double min(double *,int,int,int =0);/求某一行或列的最小值int adjust(double *,int);/調(diào)整效率矩陣使每一行列都含有零元素int record(double *,double *,int ,int *,int *);int mincount(double *,int,double *);/找出含有零元素最少的某行(列)int choose(double *,int,int *,int *,int,int,int,int&,int *,int *);int
34、 localfirst(double *,int,int,int =1);/找出獨立零的位置int change(double *,double *,int ,int *,int *,int *r,int *c);/覆蓋int allot(double *,double *,int ,int *,int *);/全局分配void print(double *a,double *m,int n,int *row,int *col,int *p,int *q,int *p1=null,int *q1=null);/畫出分配的步驟ofstream myfile(匈牙利算法演算過程.txt,ios_b
35、ase:out);int main() int n = 6;double r16 = 30,150,75,45,20,100; double r26 = 36,180,90,54,24,120; double r36 = 60,300,150,90,40,200;double r46 = 60,300,150,90,40,200;double r56 = 90,450,225,135,60,300;double r66 = 90,450,225,135,60,300;double *k6 = r1,r2,r3,r4,r5,r6;double *a = k;double *m=null;if (
36、n0) m=new double*n;for (int i=0;in;i+)mi=new doublen;for (i=0;in;i+)for (int j=0;jn;j+)int *row=new intn;int *col=new intn;for (int i=0;in;i+)rowi=coli=0;/cout=原矩陣=endl;myfile原矩陣:endl;output(a,n);for (i=0;in;i+)for (int j=0;jn;j+)coutsetiosflags(ios_base:fixed);coutsetw(8)setprecision(4)aij;coutendl
37、;coutendl;myfileendl;adjust(a,n);record(a,m,n,row,col);allot(a,m,n,row,col);coutendl;coutendlendl;return 0; bool output(double *a,int n)for (int i=0;in;i+)for (int j=0;jn;j+)/coutsetiosflags(ios_base:fixed);/coutsetw(8)setprecision(4)aij;myfilesetiosflags(ios_base:fixed);myfilesetw(8)setprecision(8)
38、aij;/coutendl;myfileendl; return true;double getmaxitem(double *a,int n) double max = a00;for (int i=0;in;i+) for (int j=0;jn;j+) if (max aij) max = aij;/cout獲取最大元素值得:maxendl;/coutendl;return max; void maxsubstract(double *a,int n) int max = getmaxitem(a,n);for (int i=0;in;i+) for (int j=0;jn;j+) ai
39、j = max - aij;/cout最大元素都減去每個元素得矩陣:endl;/output(a,n);/找出第n行(列)中最小的值/flag=1表示行/flag=0表示列double min(double *a,int n,int rc,int flag)double min;if (flag)min=arc0;for (int j=1;jarcj) min=arcj;elsemin=a0rc;for (int i=1;iairc) min=airc;return min;/調(diào)整效應矩陣使每行列都含有0元素int adjust(double *a,int n)double min;for (
40、int i=0;in;i+)min=min(a,n,i,1);/求第i行中最小值if (min!=0)for (int j=0;jn;j+) aij-=min; /cout=每行都減去該行最小元素得矩陣=endl;myfileendl;myfile每行都減去該行最小元素得:endl;output(a,n);for (int j=0;jn;j+)min=min(a,n,j,0);if (min!=0)for (i=0;in;i+) aij-=min;/cout=每列都減去該列最小元素得矩陣=endl;myfileendl;myfile每列都減去該列最小元素得:endl;output(a,n);r
41、eturn 1;int record(double *a,double *m,int n,int *row,int *col)for (int k=0;kn;k+) rowk=colk=0;for (int i=0;in;i+)for (int j=0;jn;j+)if (mij=(aij=0) rowi+=1;/計算每行零的個數(shù) colj+=1;/計算每列零的個數(shù)return true;int result(int *row,int *col,int n)int flag=1;for (int i=0;in;i+)if (rowi!=1|coli!=1)flag=0;break;return
42、 flag;/找出沒有被分配且零最少的行或列(不計算不含零元素的列)int mincount(int *rc,int n,int *p)int min=10000000;int k=-1;for (int i=0;irci)min = rci;k=i;return k;/k=-1表示沒有零元素/找出某行或某列獨立零元素的位置或多個零元素的第一個零的位置int localfirst(double *m,int n,int rc,int flag)int i=0;if (flag)/flag=1表示查找行中的零for (i=0;in&mrci!=1;i+);elsefor (i=0;in&mirc
43、!=1;i+);return i=n?-1:i;/-1表示沒有零元素/選中獨立零并劃去同行或同列的零/flag1: 0 按列分配獨立零 1 按行分配獨立零/flag2: 0 一行(列)中有一個零 2 一行(列)中有多個零int choose(double *m,int n,int *row,int *col,int rc,int flag1,int flag2,int &m,int *p,int *q)if (flag1)/行int col=localfirst(m,n,rc,1);/col:獨立零所在列for (int i=0;in;i+)if (micol=1)/給獨立零所在列的其他行零畫micol=-1;/畫colcol-=1;/該列的零的個數(shù)減一,這里連獨立零都給畫掉了rowi-=1;colcol+=1;/多減了一個獨立零,就得加上rowrc+=1;if (flag2)/如果該行有多個零,需要進行試分配for (int j=0;jn;j+)if (mrcj=1)/把該行其他的零畫mrcj=-1;rowrc-=1;/該行的零劃掉一個就減一
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 古代表示年齡的詞語從小到大排序
- 公益慈善存在的問題及建議
- 公共直飲水點管理制度
- 公共交通服務質(zhì)量評估制度
- 工作票安規(guī)流程
- 工業(yè)產(chǎn)品外觀設計的基本原則
- 2025年養(yǎng)老保險市場分析:參保人數(shù)穩(wěn)步增長 持續(xù)優(yōu)化服務保障
- 廣東省茂名市2024-2025學年高三上學期第一次綜合測試數(shù)學試題(解析版)
- 湛江降水井施工方案
- 寧波耐堿磚施工方案
- 中醫(yī)理療免責協(xié)議書
- 精神科病人安全與治療管理制度
- 廚房食材收貨流程
- 品牌服飾行業(yè)快速消費品庫存管理優(yōu)化方案
- 貝雷橋吊裝專項方案(危大工程吊裝方案)
- 昌江縣燕窩嶺水泥用石灰?guī)r礦礦產(chǎn)資源開發(fā)利用與保護方案
- 2024年《認證基礎》真題及答案
- ZHF形勢與政策(2024年秋)-考試題庫
- 淤地壩應急處置
- 鸚鵡介紹課件教學課件
- 汽車檢測技術課件 任務一 認識汽車檢測站
評論
0/150
提交評論