Witam, mam zadanie z którym nie mogę sobie poradzić.
Rozwiąż dyskretny problem plecakowy, korzystając z metody algorytmy z powrotami.
Znalazłem taki pseudokod (o ile w ogóle jest poprawny), prosiłbym o wyjaśnienie co tam się dzieje, czym jest m1, m2, po co jest zamiana (w[n],w[i])
w - tablica wag
c - tablica wartości
P - pojemność plecaka
n - krok
cw - aktualna waga
v - wartość w plecaku
BBP(w,c,P,n,cw,v) //problem plecakowy korzystając z algorytmów z powrotami
1. if n<len(w) then
2. for i <- n to len(w)
3. if cw+w[i] <= P then
4. v+=c[i]
5. cw+=w[i]
6. swap(w[n],w[i])
7. swap(c[n],c[i])
8. m1=BBP(c,w,P,n+1,cw,v)
9. swap(w[n],w[i])
10. swap(c[n],c[i])
11. v-=c[i]
12. cw-=w[i]
13. else
14. m2=bbp(c,w,P,n+1,cw,v)
15. return max(m1,m2)
16. else
17. return v
Pozdrawiam