分支限界法

2022-11-25 23:03:04 字數 1222 閱讀 6615

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 高速鐵路電力牽引供電工程施...