Itt a hátizsák olyan, mint egy konténer vagy egy táska. Tegyük fel, hogy megadtunk néhány tételt, amelyeknek súlya vagy nyeresége van. Néhány tárgyat úgy kell a hátizsákba helyeznünk, hogy az összérték maximális profitot termeljen.
Például a tartály súlya 20 kg. A tételeket úgy kell kiválasztanunk, hogy a tételek súlyának összege kisebb vagy egyenlő legyen, mint a konténer súlya, és a haszon maximális legyen.
Kétféle hátizsák probléma létezik:
- 0/1 hátizsák probléma
- Töredékes hátizsák probléma
Mindkét problémát egyenként megbeszéljük. Először is megismerjük a 0/1 hátizsák problémát.
Mi a 0/1 hátizsák probléma?
A 0/1-es hátizsák-probléma azt jelenti, hogy a cikkek vagy teljesen meg vannak töltve, vagy egyetlen elem sem került a hátizsákba. Például van két termékünk, amelyek súlya 2 kg, illetve 3 kg. Ha a 2 kg-os terméket választjuk, akkor a 2 kg-osból nem tudunk 1 kg-ot kiválasztani (a tétel nem osztható); teljesen ki kell választanunk a 2 kg-os tételt. Ez egy 0/1-es hátizsák-probléma, amelyben vagy teljesen kiválasztjuk az elemet, vagy mi választjuk ki azt. A 0/1 hátizsák problémát a dinamikus programozás oldja meg.
Mi a frakcionált hátizsák probléma?
A tört hátizsák probléma azt jelenti, hogy fel tudjuk osztani az elemet. Például van egy 3 kg-os cikkünk, akkor kiválaszthatjuk a 2 kg-ost, és elhagyhatjuk az 1 kg-ost. A töredékes hátizsák problémát a Greedy megközelítés oldja meg.
Példa a 0/1-es hátizsák problémájára.
Tekintsük azt a problémát, hogy a súlyok és a nyereség a következő:
Súlyok: {3, 4, 6, 5}
Nyereség: {2, 3, 1, 4}
A hátizsák súlya 8 kg
A tételek száma 4
A fenti probléma a következő módszerrel oldható meg:
xén= {1, 0, 0, 1}
= {0, 0, 0, 1}
próbáld meg elkapni a java blokkot
= {0, 1, 0, 1}
A fentiek a lehetséges kombinációk. Az 1 azt jelenti, hogy a tétel teljesen ki van szedve, a 0 pedig azt, hogy egyetlen tételt sem vettek fel. Mivel 4 elem van, a lehetséges kombinációk a következők lesznek:
24= 16; Így. A fenti probléma felhasználásával 16 lehetséges kombináció hozható létre. Ha az összes kombináció elkészült, ki kell választanunk a maximális profitot biztosító kombinációt.
A probléma megoldásának másik módja a dinamikus programozási megközelítés. A dinamikus programozási megközelítésben a bonyolult problémát részproblémákra bontjuk, majd egy részprobléma megoldását találjuk meg, és a részprobléma megoldását egy összetett probléma megoldására használjuk.
Hogyan lehet ezt a problémát megoldani a dinamikus programozási megközelítés használatával?
Első,
mátrixot készítünk az alábbiak szerint:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | |
0 | |||||||||
1 | |||||||||
2 | |||||||||
3 | |||||||||
4 |
A fenti mátrixban az oszlopok a súlyt, azaz a 8-at jelentik. A sorok a tételek nyereségét és súlyát jelentik. Itt nem vettük közvetlenül a 8-as súlyt, a feladat részproblémákra oszlik, azaz 0, 1, 2, 3, 4, 5, 6, 7, 8. A részfeladatok megoldása a cellák és a probléma megoldása az utolsó cellában kerül tárolásra. Először írjuk fel a súlyokat növekvő sorrendben és a nyereséget súlyuk szerint az alábbiak szerint:
Ban benén= {3, 4, 5, 6}
pén= {2, 3, 4, 1}
Az első sor és az első oszlop 0 lenne, mivel a w=0 esetén nincs elem
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 0 | ||||||||
2 | 0 | ||||||||
3 | 0 | ||||||||
4 | 0 |
Ha i=1, W=1
Ban ben1= 3; Mivel a készletben csak egy 3-as súlyú cikkünk van, de a hátizsák kapacitása 1. Az 1 kg-os hátizsákba nem tudjuk kitölteni a 3 kg-os elemet, ezért adjunk hozzá 0-t az M[1][1] pontnál az alábbiak szerint. :
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | |||||||
2 | 0 | ||||||||
3 | 0 | ||||||||
4 | 0 |
Ha i = 1, W = 2
Ban ben1= 3; Mivel a készletben csak egy 3-as súlyú cikkünk van, de a hátizsák kapacitása 2. A 2 kg-os hátizsákba nem tudjuk kitölteni a 3 kg-os elemet, ezért adjunk hozzá 0-t az M[1][2] pontnál az alábbiak szerint. :
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 0 | ||||||
2 | 0 | ||||||||
3 | 0 | ||||||||
4 | 0 |
Ha i=1, W=3
Ban ben1= 3; Mivel a készletben csak egy olyan elemünk van, amelynek súlya egyenlő 3, és a hátizsák súlya is 3; ezért megtölthetjük a hátizsákot egy 3-as súlyú elemmel. A 3-as súlynak megfelelő nyereséget, azaz 2-t teszünk M[1][3]-nál az alábbiak szerint:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 0 | 2 | |||||
2 | 0 | ||||||||
3 | 0 | ||||||||
4 | 0 |
Ha i=1, W=4
W1= 3; Mivel a készletben csak egy olyan elemünk van, amelynek súlya 3, a hátizsák súlya pedig 4; ezért a hátizsákot megtölthetjük egy 3-as súlyú elemmel. A 3-as súlynak megfelelő nyereséget, azaz 2-t teszünk M[1][4]-re, az alábbiak szerint:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 0 | 2 | 2 | ||||
2 | 0 | ||||||||
3 | 0 | ||||||||
4 | 0 |
Ha i=1, W=5
W1= 3; Mivel a készletben csak egy olyan elemünk van, amelynek súlya egyenlő 3, és a hátizsák súlya 5; ezért megtölthetjük a hátizsákot egy 3-as súlyú elemmel. A 3-as súlynak megfelelő nyereséget, azaz 2-t teszünk M[1][5]-re, az alábbiak szerint:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 0 | 2 | 2 | 2 | |||
2 | 0 | ||||||||
3 | 0 | ||||||||
4 | 0 |
Ha i = 1, W = 6
W1= 3; Mivel a készletben csak egy olyan elemünk van, amelynek súlya egyenlő 3, és a hátizsák súlya 6; ezért megtölthetjük a hátizsákot egy 3-as súlyú elemmel. A 3-as súlynak megfelelő nyereséget, azaz 2-t teszünk M[1][6]-nál az alábbiak szerint:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 0 | 2 | 2 | 2 | 2 | ||
2 | 0 | ||||||||
3 | 0 | ||||||||
4 | 0 |
Ha i=1, W=7
W1= 3; Mivel a készletben csak egy olyan elemünk van, amelynek súlya egyenlő 3, és a hátizsák súlya 7; ezért megtölthetjük a hátizsákot egy 3-as súlyú elemmel. A 3-as súlynak megfelelő nyereséget, azaz 2-t teszünk M[1][7]-re, az alábbiak szerint:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 0 | 2 | 2 | 2 | 2 | 2 | |
2 | 0 | ||||||||
3 | 0 | ||||||||
4 | 0 |
Ha i = 1, W = 8
W1= 3; Mivel a készletben csak egy olyan elemünk van, amelynek súlya 3, a hátizsák súlya pedig 8; ezért megtölthetjük a hátizsákot egy 3-as súlyú elemmel. A 3-as súlynak megfelelő profitot, azaz 2-t teszünk M[1][8]-nál az alábbiak szerint:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 0 | 2 | 2 | 2 | 2 | 2 | 2 |
2 | 0 | ||||||||
3 | 0 | ||||||||
4 | 0 |
Most az 'i' értéke növekszik, és 2 lesz.
Ha i = 2, W = 1
A 2-es értéknek megfelelő súly 4, azaz w2= 4. Mivel a halmazban csak egy 4-es súlyú tárgyunk van, és a hátizsák súlya 1. A 4-es súlyú tárgyat nem tehetjük hátizsákba, ezért M[2][1-nél 0-t adunk ] az alábbiak szerint:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 0 | 2 | 2 | 2 | 2 | 2 | 2 |
2 | 0 | 0 | |||||||
3 | 0 | ||||||||
4 | 0 |
Ha i = 2, W = 2
A 2-es értéknek megfelelő súly 4, azaz w2= 4. Mivel a halmazban csak egy 4-es súlyú tárgyunk van, a hátizsák súlya pedig 2. A 4-es súlyú tárgyat nem tehetjük hátizsákba, ezért M[2][2-nél 0-t adunk ] az alábbiak szerint:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 0 | 2 | 2 | 2 | 2 | 2 | 2 |
2 | 0 | 0 | 0 | ||||||
3 | 0 | ||||||||
4 | 0 |
Ha i = 2, W = 3
A 2-es értéknek megfelelő súly 4, azaz w2= 4. Mivel a készletben két darab 3-as és 4-es súllyal szerepel, a hátizsák súlya pedig 3. A 3-as súlyú tárgyat tehetjük hátizsákba, így M[2][3]-nál adunk hozzá 2-t. az alábbiak szerint látható:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 0 | 2 | 2 | 2 | 2 | 2 | 2 |
2 | 0 | 0 | 0 | 2 | |||||
3 | 0 | ||||||||
4 | 0 |
Ha i = 2, W = 4
A 2-es értéknek megfelelő súly 4, azaz w2= 4. Mivel a készletben két 3-as és 4-es súlyú cikkünk van, és a hátizsák súlya 4. A 4-es súlyú terméket tehetjük egy hátizsákba, mivel a 4-es súlynak megfelelő haszon nagyobb, mint a súlyú tételé. 3, ezért hozzáadunk 3-at az M[2][4] ponthoz, az alábbiak szerint:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 0 | 2 | 2 | 2 | 2 | 2 | 2 |
2 | 0 | 0 | 0 | 2 | 3 | ||||
3 | 0 | ||||||||
4 | 0 |
Ha i = 2, W = 5
A 2-es értéknek megfelelő súly 4, azaz w2= 4. Mivel a készletben két darab 3-as és 4-es súllyal szerepel, a hátizsák súlya pedig 5. Egy hátizsákba tehetünk 4-es súlyú terméket és a súlynak megfelelő haszon 3, ezért adunk hozzá 3-at. M[2][5] az alábbiak szerint:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 0 | 2 | 2 | 2 | 2 | 2 | 2 |
2 | 0 | 0 | 0 | 2 | 3 | 3 | |||
3 | 0 | ||||||||
4 | 0 |
Ha i = 2, W = 6
A 2-es értéknek megfelelő súly 4, azaz w2= 4. Mivel a készletben két darab 3-as és 4-es súllyal szerepel, a hátizsák súlya pedig 6. Egy hátizsákba tehetünk 4-es súlyú elemet és a súlynak megfelelő haszon 3, ezért adunk hozzá 3-at. M[2][6] az alábbiak szerint:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 0 | 2 | 2 | 2 | 2 | 2 | 2 |
2 | 0 | 0 | 0 | 2 | 3 | 3 | 3 | ||
3 | 0 | ||||||||
4 | 0 |
Ha i = 2, W = 7
A 2-es értéknek megfelelő súly 4, azaz w2= 4. Mivel a készletben két darab 3-as és 4-es súlyú, a hátizsák súlya pedig 7. A 4-es és 3-as súlyú tételt egy hátizsákba tehetjük, és a súlyoknak megfelelő haszon 2 és 3; ezért a teljes nyereség 5, ezért hozzáadunk 5-öt M[2][7]-nél az alábbiak szerint:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 0 | 2 | 2 | 2 | 2 | 2 | 2 |
2 | 0 | 0 | 0 | 0 | 3 | 3 | 3 | 5 | |
3 | 0 | ||||||||
4 | 0 |
Ha i = 2, W = 8
A 2-es értéknek megfelelő súly 4, azaz w2= 4. Mivel a készletben két darab 3-as és 4-es súlyú, a hátizsák súlya pedig 7. A 4-es és 3-as súlyú tételt egy hátizsákba tehetjük, és a súlyoknak megfelelő haszon 2 és 3; ezért a teljes nyereség 5, ezért hozzáadunk 5-öt M[2][7]-nél az alábbiak szerint:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 0 | 2 | 2 | 2 | 2 | 2 | 2 |
2 | 0 | 0 | 0 | 2 | 3 | 3 | 3 | 5 | 5 |
3 | 0 | ||||||||
4 | 0 |
Most az 'i' értéke növekszik, és 3 lesz.
Ha i = 3, W = 1
string metódusok java-ban
A 3-as értéknek megfelelő súly 5, azaz w3= 5. Mivel három elemünk van a készletben, amelyek súlya 3, 4 és 5, és a hátizsák súlya 1. Egyik elemet sem tehetjük hátizsákba, ezért 0-t adunk hozzá M[3][ 1] az alábbiak szerint:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 0 | 2 | 2 | 2 | 2 | 2 | 2 |
2 | 0 | 0 | 0 | 2 | 3 | 3 | 3 | 5 | 5 |
3 | 0 | 0 | |||||||
4 | 0 |
Ha i = 3, W = 2
A 3-as értéknek megfelelő súly 5, azaz w3= 5. Mivel a készletben három darab 3, 4 és 5 súlyú, és a hátizsák súlya 1. Egyik elemet sem tehetjük hátizsákba, ezért 0-t adunk M[3][ 2] az alábbiak szerint:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 0 | 2 | 2 | 2 | 2 | 2 | 2 |
2 | 0 | 0 | 0 | 2 | 3 | 3 | 3 | 5 | 5 |
3 | 0 | 0 | 0 | ||||||
4 | 0 |
Ha i = 3, W = 3
A 3-as értéknek megfelelő súly 5, azaz w3= 5. Mivel a 3-as, 4-es és 5-ös súlykészletben három darab van, a hátizsák súlya pedig 3. A 3-as súllyal rendelkező cikk a hátizsákba tehető, és a tárgynak megfelelő haszon 2, így hozzáadunk 2-t az M[3][3] ponthoz az alábbiak szerint:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 0 | 2 | 2 | 2 | 2 | 2 | 2 |
2 | 0 | 0 | 0 | 2 | 3 | 3 | 3 | 5 | 5 |
3 | 0 | 0 | 0 | 2 | |||||
4 | 0 |
Ha i = 3, W = 4
A 3-as értéknek megfelelő súly 5, azaz w3= 5. Mivel a 3-as, 4-es és 5-ös súlykészletben három darab van, a hátizsák súlya pedig 4. A 3-as vagy 4-es súlyú tételt megtarthatjuk; a 4-es súlynak megfelelő nyereség (3) nagyobb, mint a 3-as súlynak megfelelő nyereség, ezért hozzáadunk 3-at M[3][4]-nél az alábbiak szerint:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 0 | 2 | 2 | 2 | 2 | 2 | 2 |
2 | 0 | 0 | 0 | 2 | 3 | 3 | 3 | 5 | 5 |
3 | 0 | 0 | 0 | 1 | 3 | ||||
4 | 0 |
Ha i = 3, W = 5
A 3-as értéknek megfelelő súly 5, azaz w3= 5. Mivel a 3-as, 4-es és 5-ös súlykészletben három darab van, a hátizsák súlya pedig 5. A 3-as, 4-es vagy 5-ös súlyú tárgyat megtarthatjuk; a 4-es súlynak megfelelő nyereség (3) nagyobb, mint a 3-as és 5-ös súlynak megfelelő nyereség, ezért hozzáadunk 3-at M[3][5]-nél az alábbiak szerint:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 0 | 2 | 2 | 2 | 2 | 2 | 2 |
2 | 0 | 0 | 0 | 2 | 3 | 3 | 3 | 5 | 5 |
3 | 0 | 0 | 0 | 1 | 3 | 3 | |||
4 | 0 |
Ha i = 3, W = 6
A 3-as értéknek megfelelő súly 5, azaz w3= 5. Mivel a 3-as, 4-es és 5-ös súlykészletben három darab van, a hátizsák súlya pedig 6. A 3-as, 4-es vagy 5-ös súlyú darabot megtarthatjuk; a 4-es súlynak megfelelő nyereség (3) nagyobb, mint a 3-as és 5-ös súlynak megfelelő nyereség, ezért hozzáadunk 3-at M[3][6]-nál az alábbiak szerint:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 0 | 2 | 2 | 2 | 2 | 2 | 2 |
2 | 0 | 0 | 0 | 2 | 3 | 3 | 3 | 5 | 5 |
3 | 0 | 0 | 0 | 1 | 3 | 3 | 3 | ||
4 | 0 |
Ha i = 3, W = 7
A 3-as értéknek megfelelő súly 5, azaz w3= 5. Mivel a 3-as, 4-es és 5-ös súlyhalmazban három tételünk van, a hátizsák súlya pedig 7. Ebben az esetben a 3-as és a 4-es súlyú tételeket is megtarthatjuk, a haszon összege egyenlő lenne (2 + 3), azaz 5, ezért hozzáadunk 5-öt az M[3][7] pontban az alábbiak szerint:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 0 | 2 | 2 | 2 | 2 | 2 | 2 |
2 | 0 | 0 | 0 | 2 | 3 | 3 | 3 | 5 | 5 |
3 | 0 | 0 | 0 | 1 | 3 | 3 | 3 | 5 | |
4 | 0 |
Ha i = 3, W = 8
java sorok
A 3-as értéknek megfelelő súly 5, azaz w3= 5. Mivel a 3-as, 4-es és 5-ös súlyhalmazban három darab van, a hátizsák súlya pedig 8. Ebben az esetben a 3-as és a 4-es súlyú elemeket is megtarthatjuk, így a a nyereség egyenlő lenne (2 + 3), azaz 5, ezért hozzáadunk 5-öt M[3][8]-nál az alábbiak szerint:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 0 | 2 | 2 | 2 | 2 | 2 | 2 |
2 | 0 | 0 | 0 | 2 | 3 | 3 | 3 | 5 | 5 |
3 | 0 | 0 | 0 | 1 | 3 | 3 | 3 | 5 | 5 |
4 | 0 |
Most az „i” értéke növekszik, és 4 lesz.
Ha i = 4, W = 1
A 4-es értéknek megfelelő súly 6, azaz w4= 6. Mivel a 3-as, 4-es, 5-ös és 6-os súlykészletben négy darab van, és a hátizsák súlya 1. Az összes tárgy súlya nagyobb, mint a hátizsák súlya, ezért nem tudjuk adjon hozzá bármilyen tárgyat a hátizsákba; Ezért 0-t adunk az M[4][1] ponthoz az alábbiak szerint:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 0 | 2 | 2 | 2 | 2 | 2 | 2 |
2 | 0 | 0 | 0 | 2 | 3 | 3 | 3 | 5 | 5 |
3 | 0 | 0 | 0 | 1 | 3 | 3 | 3 | 5 | 5 |
4 | 0 | 0 |
Ha i = 4, W = 2
A 4-es értéknek megfelelő súly 6, azaz w4= 6. Mivel a 3-as, 4-es, 5-ös és 6-os súlykészletben négy darab van, és a hátizsák súlya 2. Az összes elem súlya nagyobb, mint a hátizsák súlya, ezért nem tudjuk adjon hozzá bármilyen tárgyat a hátizsákba; Ezért 0-t adunk az M[4][2] ponthoz az alábbiak szerint:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 0 | 2 | 2 | 2 | 2 | 2 | 2 |
2 | 0 | 0 | 0 | 2 | 3 | 3 | 3 | 5 | 5 |
3 | 0 | 0 | 0 | 1 | 3 | 3 | 3 | 5 | 5 |
4 | 0 | 0 | 0 |
Ha i = 4, W = 3
A 4-es értéknek megfelelő súly 6, azaz w4= 6. Mivel a 3-as, 4-es, 5-ös és 6-os súlykészletben négy darab van, és a hátizsák súlya 3. A 3-as súllyal rendelkező cikk a hátizsákba tehető és a haszon megfelel a a 4-es súly 2, ezért hozzáadunk 2-t M[4][3]-nál, az alábbiak szerint:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 0 | 2 | 2 | 2 | 2 | 2 | 2 |
2 | 0 | 0 | 0 | 2 | 3 | 3 | 3 | 5 | 5 |
3 | 0 | 0 | 0 | 1 | 3 | 3 | 3 | 5 | 5 |
4 | 0 | 0 | 0 | 2 |
Ha i = 4, W = 4
A 4-es értéknek megfelelő súly 6, azaz w4= 6. Mivel a 3-as, 4-es, 5-ös és 6-os súlykészletben négy darab van, és a hátizsák súlya 4. A 4-es súllyal rendelkező cikk a hátizsákba tehető és a haszon megfelel a a 4-es súly 3, tehát 3-at adunk hozzá az M[4][4] ponthoz, az alábbiak szerint:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 0 | 2 | 2 | 2 | 2 | 2 | 2 |
2 | 0 | 0 | 0 | 2 | 3 | 3 | 3 | 5 | 5 |
3 | 0 | 0 | 0 | 1 | 3 | 3 | 3 | 5 | 5 |
4 | 0 | 0 | 0 | 2 | 3 |
Ha i = 4, W = 5
A 4-es értéknek megfelelő súly 6, azaz w4= 6. Mivel a 3-as, 4-es, 5-ös és 6-os súlykészletben négy darab van, és a hátizsák súlya 5. A 4-es súllyal rendelkező cikk a hátizsákba tehető és a haszon megfelel a a 4-es súly 3, tehát 3-at adunk hozzá az M[4][5]-nél az alábbiak szerint:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 0 | 2 | 2 | 2 | 2 | 2 | 2 |
2 | 0 | 0 | 0 | 2 | 3 | 3 | 3 | 5 | 5 |
3 | 0 | 0 | 0 | 1 | 3 | 3 | 3 | 5 | 5 |
4 | 0 | 0 | 0 | 2 | 3 | 3 |
Ha i = 4, W = 6
A 4-es értéknek megfelelő súly 6, azaz w4= 6. Mivel a 3-as, 4-es, 5-ös és 6-os súlykészletben négy darab van, a hátizsák súlya pedig 6. Ebben az esetben a 3-as vagy 4-es súlyú tárgyakat a hátizsákba tehetjük. , 5 vagy 6, de a profit, azaz a 6-os súlynak megfelelő 4 a legmagasabb az összes tétel közül; ezért hozzáadunk 4-et az M[4][6] ponthoz az alábbiak szerint:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 0 | 2 | 2 | 2 | 2 | 2 | 2 |
2 | 0 | 0 | 0 | 2 | 3 | 3 | 3 | 5 | 5 |
3 | 0 | 0 | 0 | 1 | 3 | 3 | 3 | 5 | 5 |
4 | 0 | 0 | 0 | 2 | 3 | 3 | 4 |
Ha i = 4, W = 7
A 4-es értéknek megfelelő súly 6, azaz w4= 6. Mivel a 3-as, 4-es, 5-ös és 6-os súlykészletben négy darab van, és a hátizsák súlya 7. Itt, ha összeadunk két darab 3-as és 4-es súlyt, akkor a maximumot adja profit, azaz (2 + 3) egyenlő 5-tel, ezért hozzáadunk 5-öt M[4][7]-nél az alábbiak szerint:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 0 | 2 | 2 | 2 | 2 | 2 | 2 |
2 | 0 | 0 | 0 | 2 | 3 | 3 | 3 | 5 | 5 |
3 | 0 | 0 | 0 | 2 | 3 | 3 | 3 | 5 | 5 |
4 | 0 | 0 | 0 | 2 | 3 | 3 | 4 | 5 |
Ha i = 4, W = 8
A 4-es értéknek megfelelő súly 6, azaz w4= 6. Mivel a 3-as, 4-es, 5-ös és 6-os súlykészletben négy darab van, és a hátizsák súlya 8. Itt, ha összeadunk két darab 3-as és 4-es súlyt, akkor a maximumot adja profit, azaz (2 + 3) egyenlő 5-tel, ezért hozzáadunk 5-öt M[4][8]-nál az alábbiak szerint:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 0 | 2 | 2 | 2 | 2 | 2 | 2 |
2 | 0 | 0 | 0 | 2 | 3 | 3 | 3 | 5 | 5 |
3 | 0 | 0 | 0 | 2 | 3 | 3 | 3 | 5 | 5 |
4 | 0 | 0 | 0 | 2 | 3 | 3 | 4 | 5 | 5 |
Ahogy a fenti táblázatban is láthatjuk, az 5 a maximális nyereség az összes bejegyzés között. A mutató az utolsó sorra és az utolsó 5 értékű oszlopra mutat. Most összehasonlítjuk az 5 értéket az előző sorral; ha az előző sor, azaz az i = 3 ugyanazt az 5 értéket tartalmazza, akkor a mutató felfelé tolódik. Mivel az előző sor az 5-ös értéket tartalmazza, így a mutató felfelé tolódik, ahogy az alábbi táblázatban látható:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 0 | 2 | 2 | 2 | 2 | 2 | 2 |
2 | 0 | 0 | 0 | 2 | 3 | 3 | 3 | 5 | 5 |
3 | 0 | 0 | 0 | 2 | 3 | 3 | 3 | 5 | 5 |
4 | 0 | 0 | 0 | 2 | 3 | 3 | 4 | 5 | 5 |
Ismét összehasonlítjuk a fenti sor 5-ös értékét, azaz i = 2-t. Mivel a fenti sor tartalmazza az 5-ös értéket, így a mutató ismét felfelé tolódik, ahogy az alábbi táblázatban látható:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 0 | 2 | 2 | 2 | 2 | 2 | 2 |
2 | 0 | 0 | 0 | 2 | 3 | 3 | 3 | 5 | 5 |
3 | 0 | 0 | 0 | 2 | 3 | 3 | 3 | 5 | 5 |
4 | 0 | 0 | 0 | 2 | 3 | 3 | 4 | 5 | 5 |
Ismét összehasonlítjuk a fenti sor 5-ös értékét, azaz i = 1. Mivel a fenti sor nem tartalmazza ugyanazt az értéket, ezért az i=1 sort fogjuk figyelembe venni, és a sornak megfelelő súly 4. , a 4-es súlyt választottuk, és az alább látható 5-ös és 6-os súlyokat elutasítottuk:
x = { 1, 0, 0}
A súlynak megfelelő nyereség 3. Ezért a maradék haszon (5 - 3) egyenlő 2-vel. Most ezt a 2-es értéket hasonlítjuk össze az i = 2 sorral. Mivel az (i = 1) sor tartalmazza a 2-es értéket. ; ezért a mutató felfelé tolódott el az alábbiak szerint:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 0 | 2 | 2 | 2 | 2 | 2 | 2 |
2 | 0 | 0 | 0 | 2 | 3 | 3 | 3 | 5 | 5 |
3 | 0 | 0 | 0 | 2 | 3 | 3 | 3 | 5 | 5 |
4 | 0 | 0 | 0 | 2 | 3 | 3 | 4 | 5 | 5 |
Ismét összehasonlítjuk a 2 értéket egy fenti sorral, azaz i = 1. Mivel az i =0 sor nem tartalmazza a 2 értéket, így az i = 1 sor kerül kiválasztásra, és az i = 1-nek megfelelő súly 3 jelenik meg. lent:
X = {1, 1, 0, 0}
A súlynak megfelelő nyereség 2. Ezért a maradék nyereség 0. A 0 értéket összehasonlítjuk a fenti sorral. Mivel a fenti sor 0 értéket tartalmaz, de a sornak megfelelő nyereség 0. Ebben a feladatban két súlyozást választunk, azaz a 3-as és a 4-es a profit maximalizálása érdekében.