from
Knapsack problem
by Pradeep
solved the knapsack problem using the concept of dynamic programming
|
| knapsackori.m |
v=[50 40 30 50 30 24 36];
w=[5 4 6 3 2 6 7];
W=20;
n=length(v);
for i=1:n+1;
for j=1:W+1;
if(i==1 | j==1)
V(i,j)=0;
end
end
end
for i=2:n+1;
for j=2:W+1;
if(w(i-1)>=j)
V(i,j)=V(i-1,j);
else
a=[V(i-1,j) v(i-1)+V(i-1,j-w(i-1))];
V(i,j)=max(a);
if(V(i,j)==a(2))
s(i,j)=1;
else
s(i,j)=0;
end
end
end
end
K=W+1;
for i=n+1:-1:2
if(s(i,K)==1)
p(i-1)=1;
K=K-w(i-1);
else
p(i-1)=0;
end
end
sol=p;
opt_value=V(n+1,W+1);
|
|
Contact us