0 1揹包問題 動態規劃 回溯 分支限界法對比

2021-09-28 23:51:01 字數 1447 閱讀 8174

2017.12.19 20:42:02

字數 3713

閱讀 2820

假定n個商品重量分別為w0, w1, ..., wn-1,價值分別為p0, p1, ..., pn-1,揹包載重量為m。怎樣選擇商品組合,使得價值最高?

最大值的估算法(跟分支限界法本質上是一樣的)

向上回溯的方法

w_cur——表示當前正在搜尋的部分解中轉入的總重量

p_cur——當前總價值

p_est——部分解可能達到的最大價值的估計值

p_total——當前搜尋到的所有可行解中的最大價值,是當前目標函式的上界

yk、xk——部分解的第k個分量及其副本

k——表示當前搜尋深度

m = 50

商品重量分別為5,15,25,27,30

商品價值分別為12,30,44,46,50

上面已經按照單位重量價值遞減順序排列。

每個結點都包含如下資訊:

s1——當前選擇裝入揹包的商品集合

s2——當前不選擇裝入揹包的商品集合

s3——當前尚待選擇的商品集合

k——搜尋深度

b——上界

bound——乙個可行解的取值,當做剪枝的標準

一種雙核cpu的兩個核能夠同時的處理任務,現在有n個已知資料量的任務需要交給cpu處理,假設已知cpu的每個核1秒可以處理1kb,每個核同時只能處理一項任務。n個任務可以按照任意順序放入cpu進行處理,現在需要設計乙個方案讓cpu處理完這批任務所需的時間最少,求這個最小的時間

輸入描述:

輸入包括兩行: 第一行為整數n(1 ≤ n ≤ 50) 第二行為n個整數length[i](1024 ≤ length[i] ≤4194304),表示每個任務的長度為length[i]kb,每個數均為1024的倍數。

輸出描述:

輸出乙個整數,表示最少需要處理的時間

輸入例子:

5 3072 3072 7168 3072 1024

輸出例子:

0人點贊

資料結構與演算法

王偵 擁有1092鑽 (約107.68元)

關注讚賞

01揹包(動態規劃(回溯))

include 所謂動態規劃,就是分治策略加上不同的區域之間相互影響,如何從區域性最優解,到全域性最優解,這便是我們所關注的重點,因為還是分割成一塊一塊的,遞迴入手更好去理解。現有n件物品,其中第i件物品的重量為w i 價值為v i 有一容量為j的揹包,求在不超過揹包容量的情況下,使取得的商品的價值...

動態規劃 回溯法實現0 1揹包

v i,j 表示在前i 1 i n 個物品中能夠裝入容量為j 1 j c 的揹包中的物品的最大值 v i,0 v 0,j 0 式1 式2 式1表明 把前面i個物品裝入容量為0的揹包和把0個物品裝入容量為j的揹包,得到的價值均為0 式2的第乙個式子表明 如果第i個物品的重量大於揹包的容量,則物品i不能...

演算法 0 1揹包的動態規劃,回溯,分支限界三種解法

此篇博文待完善。123 4567 891011 1213 1415 1617 1819 2021 2223 2425 2627 2829 3031 3233 3435 3637 3839 4041 4243 4445 4647 4849 5051 5253 5455 5657 5859 6061 6...