資料介紹
裝箱問題是NP問題。該文對裝箱問題的BF算法進行了分析,用Visual C++實現該算法。
NP問題有好多個,裝箱問題是其中一個。設有體積分別為T1 ,T2 , T3 ,…… Tn的m種貨品要裝容量為c 的箱子里。采用不同裝箱方法所需的箱子數可能不同[1] 。要解決的問題是如何使用最少的箱子數將這 m 種貨品裝進去。裝箱問題是 NP 問題,這是不容易得到一個最佳的解決方案,為了比較快速得到滿意解,近似算法經常被使用。常見的算法[2] :NF(Next Fit)近似算法,BF(Best Fit)算法,BFD(Best Fit Deceasing)算法,FF(First Fit)近似算法,FFD(First Fit Decreasing)近似算法等。
下次適應算法NF(Next Fit):最簡單也是最早研究的算法是 NF算法。它的特點是至始至終保持一個當前打開的箱子,在要將貨品裝入到箱子時,查看這個貨品能不能裝入到當前打開的箱子,如果可以則裝入。如果沒有辦法裝進去,就新打開一個空的箱子作為當前的箱子,將貨品裝入。這個算法裝箱的效率不高,原因是只有現在打開的箱子和空的箱可以作為選擇裝入貨品。最佳適應算法BF(Best Fit):在裝入貨品時裝入到最合適這個貨品的箱子里,這個箱子不是第一個可裝的箱子,而是最合適的。當沒有適合該物體的箱子時,打開一個空箱子。降序最佳適應算法BFD(Best Fit Deceasing):是按照BF(Best Fit)算法進行裝箱,不過該算法會先對貨品按容量從大到小進行排序。首次適應算法FF(First Fit):和下次適應算法的不同,FF算法要先檢查所有非空的箱子,如果第一個非空箱子能放進去該貨品則放入,沒辦法放入的話再檢查第二個非空箱子,以此類推;如果沒有合適的箱子,就打開一個空的箱子。降序首次適應算法 FFD(First Fit Decreasing):是按照 FF (First Fit)算法進行裝入箱子,不同之處會對先對貨品按容量從大到小進行排序。一些學者提出了最佳適應算法和首次適應算法的改進算法。我們觀察首次適應算法和最佳適應算法,貨品是隨機的沒有降序排列,會發生容量大的排列,裝不進去,原因是可能先裝了小的貨品,只能再開啟新的箱子,使空間的沒有充分利用。
Best Fit 的基本思想是:n 種貨品依次放入箱子,將貨品i 裝入箱子j應滿足 c - cj- vi= min {c- ck- vi} c- ck-vi》=0,即選取第j號箱子,使得裝入貨品i后所留空隙最小,其中ck表示已裝入第k號箱子的貨品的體積 。把每個貨品的與箱子的容量的差值存在鏈表數組里,(鏈表的結點存放貨品的號碼)插入每一個貨品時就可以直接先找到與之容量相同的箱子和可以與之同放一個箱子的貨品號碼,并把那箱子刪掉;若容量相同的箱子沒有剩,就找比它大的箱子,把原結點刪掉,并把還有空間剩下的箱子插入的相應的鏈表里;若已經沒有比它大的箱子,就開辟新的箱子。
- Visual C++和MFC創建的應用程序基礎知識 0次下載
- 如何使用Visual C++和OpenGL設計實現雷達顯示系統 13次下載
- visual C++編程詞典應用程序免費下載 27次下載
- Visual C++教程之C++的語言資料概述免費下載 3次下載
- Visual C++教程之C++的基礎知識介紹 9次下載
- VISUAL C++教程之VISUAL C++的安裝和使用方法 19次下載
- 《Visual C++游戲編程基礎》電子書.pdf 0次下載
- Visual C++ 6.0上機指導 0次下載
- C++程序在Visual_C++6.0編譯系統中的實現 1次下載
- Visual C++編程入門視頻 6次下載
- Visual C++編程技術文檔 0次下載
- 基于Visual C++電路測試界面設計
- Visual C++ 6.0 高級編程 -下載 0次下載
- VISUAL C++ MFC編程實例 0次下載
- Visual C++ 6 24學時學習教程
- C++中實現類似instanceof的方法 334次閱讀
- vb語言和c++語言的區別 1480次閱讀
- C++簡史:C++是如何開始的 415次閱讀
- C語言和C++中那些不同的地方 748次閱讀
- 用OpenVINO? C++ API編寫YOLOv8-Seg實例分割模型推理程序 1257次閱讀
- C與C++混合編程是什么 1300次閱讀
- C++多文件寫法輕松實現練手小游戲:貪吃蛇! 1786次閱讀
- 基于OpenHarmony開發板上測試Native C++應用開發 3633次閱讀
- C++語言的發展 558次閱讀
- C/C++基礎知識匯總 2222次閱讀
- 如何使用C語言實現動態擴容的string 1929次閱讀
- C++:引用的使用場景 3940次閱讀
- C++封裝:this指針 3371次閱讀
- 詳談C++特性:多態的概念分類和實現原理 1954次閱讀
- 根據WebSocket協議完全使用C++實現函數 4612次閱讀
下載排行
本周
- 1電子電路原理第七版PDF電子教材免費下載
- 0.00 MB | 1490次下載 | 免費
- 2單片機典型實例介紹
- 18.19 MB | 92次下載 | 1 積分
- 3S7-200PLC編程實例詳細資料
- 1.17 MB | 27次下載 | 1 積分
- 4筆記本電腦主板的元件識別和講解說明
- 4.28 MB | 18次下載 | 4 積分
- 5開關電源原理及各功能電路詳解
- 0.38 MB | 10次下載 | 免費
- 6基于AT89C2051/4051單片機編程器的實驗
- 0.11 MB | 4次下載 | 免費
- 7藍牙設備在嵌入式領域的廣泛應用
- 0.63 MB | 3次下載 | 免費
- 89天練會電子電路識圖
- 5.91 MB | 3次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費
- 2PADS 9.0 2009最新版 -下載
- 0.00 MB | 66304次下載 | 免費
- 3protel99下載protel99軟件下載(中文版)
- 0.00 MB | 51209次下載 | 免費
- 4LabView 8.0 專業版下載 (3CD完整版)
- 0.00 MB | 51043次下載 | 免費
- 5555集成電路應用800例(新編版)
- 0.00 MB | 33562次下載 | 免費
- 6接口電路圖大全
- 未知 | 30320次下載 | 免費
- 7Multisim 10下載Multisim 10 中文版
- 0.00 MB | 28588次下載 | 免費
- 8開關電源設計實例指南
- 未知 | 21539次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935053次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537791次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233045次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191183次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183277次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138039次下載 | 免費
評論
查看更多