package
import
import
import
/** * 分支界限法解0-1揹包問題。
*/public class bbknapsack
裝填剩餘容量裝滿揹包
if (i <= n)
return b;
}// 新增新的活節點到子集樹和優先佇列中
private void addlivenode(double upperprofit, double pp, double ww,
int level, bbnode parent, boolean leftchild)
// 優先佇列式分支界限法
private double bbknapsack()
構造當前最優解
for (int j = n; j > 0; j--)
return cp;
}/*** 將個物體依其單位重量價值從大到小排列,然後呼叫bbknapsack完成對子集樹優先佇列式分支界
*限搜尋。
** @return 最優解
*/public double knapsack(double pp, double ww, double cc, int xx)
if (ws <= c)
依單位重量價值排序
new elemcomparator());
p = new double[n + 1];
w = new double[n + 1];
for (int i = 1; i <= n; i++)
cw = 0.0;
cp = 0.0;
bestx = new int[n + 1];
maxheap = new maxheap();
呼叫bbknapsack求問題的最優解
double maxp = bbknapsack();
for (int i = 1; i <= n; i++)
return maxp;
}public static void main(string arg)
}package
/** * 分支界限節點
*/public class bbnode
}package
import
/** * element物件比較器
*/public class elemcomparator implements comparator{
實驗4用分支限界法實現0 1揹包問題
一 實驗目的 1.熟悉分支限界法的基本原理。2.通過本次實驗加深對分支限界法的理解。二 實驗內容及要求 內容 給定n種物品和乙個揹包。物品i的重量是w,其價值為v,揹包容量為c。問應該如何選擇裝入揹包的物品,使得裝入揹包中物品的總價值最大?要求 使用優先佇列式分支限界法演算法程式設計,求解0 1揹包...
實驗四分支限界法實現單源最短路徑
09電信實驗班 i09660118 徐振飛 1 實驗名稱 實現書本p194頁所描述的單源最短路徑問題 2 實驗目的 1 掌握並運用分支限界法基本思想 2 運用分支限界法實現單源最短路徑問題 3 區分分支限界演算法與回溯演算法的區別,加深對分支限界法理解 3 實驗內容和原理 1 實驗原理 解單源最短路...
接觸網限界整改方案
新建杭州至長沙鐵路客運專線hczj 2標 中鐵十七局杭長鐵路客運專線三分部 二 一二年四月 接觸網限界超限整改方案 編制審核 批准中鐵十七局集團杭長鐵路客運專線三分部 二 一二年四月 接觸網限界超限整改方案 一 編制依據 1 高速鐵路設計規範 試行 j971 2009 2 高速鐵路電力牽引供電工程施...