logo

0/1 Problem z plecakiem

Tutaj plecak przypomina pojemnik lub torbę. Załóżmy, że daliśmy pewne przedmioty, które mają pewne wagi lub zyski. Musimy tak ułożyć niektóre przedmioty w plecaku, aby łączna wartość przyniosła maksymalny zysk.

Przykładowo waga pojemnika wynosi 20 kg. Musimy tak dobierać przedmioty, aby suma wag przedmiotów była albo mniejsza, albo równa wadze kontenera, a zysk powinien być maksymalny.

Istnieją dwa rodzaje problemów plecakowych:

  • Problem z plecakiem 0/1
  • Ułamkowy problem plecakowy

Omówimy oba problemy jeden po drugim. Najpierw poznamy problem plecakowy 0/1.

Na czym polega problem plecakowy 0/1?

Problem plecaka 0/1 oznacza, że ​​w plecaku znajdują się wszystkie przedmioty lub nie ma ich w ogóle. Na przykład mamy dwa przedmioty o wadze odpowiednio 2 kg i 3 kg. Jeśli wybierzemy przedmiot 2kg to nie możemy wybrać przedmiotu 1kg z przedmiotu 2kg (przedmiot nie jest podzielny); musimy całkowicie wybrać przedmiot o wadze 2 kg. Jest to problem plecakowy 0/1, w którym albo wybieramy przedmiot w całości, albo wybieramy ten przedmiot. Problem plecakowy 0/1 rozwiązuje się poprzez programowanie dynamiczne.

Na czym polega problem ułamkowego plecaka?

Ułamkowy problem plecakowy oznacza, że ​​możemy podzielić dany przedmiot. Przykładowo, mamy przedmiot o wadze 3 kg, możemy wybrać przedmiot o wadze 2 kg i zostawić przedmiot o wadze 1 kg. Problem ułamkowego plecaka rozwiązuje się metodą zachłannego podejścia.

Przykład problemu plecakowego 0/1.

Rozważmy problem polegający na tym, że wagi i zyski to:

Wagi: {3, 4, 6, 5}

Zyski: {2, 3, 1, 4}

Waga plecaka to 8 kg

Liczba elementów wynosi 4

Powyższy problem można rozwiązać stosując następującą metodę:

XI= {1, 0, 0, 1}

= {0, 0, 0, 1}

uruchom ponownie mysql ubuntu

= {0, 1, 0, 1}

Powyższe kombinacje są możliwe. 1 oznacza, że ​​przedmiot został całkowicie wybrany, a 0 oznacza, że ​​żaden przedmiot nie został wybrany. Ponieważ są 4 elementy, możliwe kombinacje będą następujące:

24= 16; Więc. Istnieje 16 możliwych kombinacji, które można utworzyć, korzystając z powyższego problemu. Po wykonaniu wszystkich kombinacji musimy wybrać kombinację, która zapewni maksymalny zysk.

Innym podejściem do rozwiązania tego problemu jest podejście do programowania dynamicznego. W podejściu do programowania dynamicznego skomplikowany problem dzieli się na podproblemy, następnie znajdujemy rozwiązanie podproblemu, a rozwiązanie podproblemu zostanie wykorzystane do znalezienia rozwiązania złożonego problemu.

Jak można rozwiązać ten problem, stosując podejście programowania dynamicznego?

Pierwszy,

tworzymy macierz pokazaną poniżej:

0 1 2 3 4 5 6 7 8
0
1
2
3
4

W powyższej macierzy kolumny reprezentują wagę, tj. 8. Wiersze reprezentują zyski i wagi przedmiotów. Tutaj nie przyjęliśmy bezpośrednio wagi 8, problem jest podzielony na podproblemy, tj. 0, 1, 2, 3, 4, 5, 6, 7, 8. Rozwiązanie podproblemów zostałoby zapisane w komórki, a odpowiedź na problem zostanie zapisana w ostatniej komórce. Najpierw zapisujemy wagi w kolejności rosnącej, a zyski według ich wag, jak pokazano poniżej:

wI= {3, 4, 5, 6}

PI= {2, 3, 4, 1}

Pierwszy wiersz i pierwsza kolumna będą miały wartość 0, ponieważ nie ma elementu dla w=0

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

Gdy i=1, W=1

w1= 3; Ponieważ w zestawie mamy tylko jeden przedmiot o wadze 3, a pojemność plecaka wynosi 1. Nie możemy załadować przedmiotu o wadze 3 kg do plecaka o wadze 1 kg, więc dodaj 0 w M[1][1] pokazanym poniżej :

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

Gdy i = 1, W = 2

w1= 3; Ponieważ w zestawie mamy tylko jeden przedmiot o wadze 3, a pojemność plecaka wynosi 2. Nie możemy załadować przedmiotu o wadze 3 kg do plecaka o wadze 2 kg, więc dodaj 0 w M[1] [2] pokazanym poniżej :

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

Gdy i=1, W=3

w1= 3; Ponieważ w zestawie mamy tylko jeden przedmiot o wadze równej 3, a waga plecaka również wynosi 3; zatem możemy zapełnić plecak przedmiotem o wadze równej 3. Zysk odpowiadający wadze 3, czyli 2, wpisujemy w M[1][3] pokazany poniżej:

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

Gdy i=1, W = 4

W1= 3; Ponieważ w zestawie mamy tylko jeden przedmiot o wadze równej 3, a waga plecaka wynosi 4; zatem możemy zapełnić plecak przedmiotem o wadze równej 3. Zysk odpowiadający wadze 3, czyli 2, wpisujemy w M[1][4] pokazany poniżej:

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

Gdy i=1, W = 5

W1= 3; Ponieważ w zestawie mamy tylko jeden przedmiot o wadze równej 3, a waga plecaka wynosi 5; zatem możemy zapełnić plecak przedmiotem o wadze równej 3. Zysk odpowiadający wadze 3, czyli 2, wpisujemy w M[1][5] jak poniżej:

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

Gdy i =1, W=6

W1= 3; Ponieważ w zestawie mamy tylko jeden przedmiot o wadze równej 3, a waga plecaka wynosi 6; zatem możemy zapełnić plecak przedmiotem o wadze równej 3. Zysk odpowiadający wadze 3, czyli 2, wpisujemy w M[1][6] pokazany poniżej:

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

Gdy i=1, W = 7

W1= 3; Ponieważ w zestawie mamy tylko jeden przedmiot o wadze 3, a waga plecaka wynosi 7; zatem możemy zapełnić plecak przedmiotem o wadze równej 3. Zysk odpowiadający wadze 3, czyli 2, wpisujemy w M[1][7] pokazany poniżej:

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

Gdy i =1, W =8

W1= 3; Ponieważ w zestawie mamy tylko jeden przedmiot o wadze równej 3, a waga plecaka wynosi 8; zatem możemy zapełnić plecak przedmiotem o wadze równej 3. Zysk odpowiadający wadze 3, czyli 2, wpisujemy w M[1][8] pokazanym poniżej:

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

Teraz wartość „i” zostanie zwiększona i osiągnie wartość 2.

Gdy i =2, W = 1

Waga odpowiadająca wartości 2 wynosi 4, tj. w2= 4. Ponieważ w zestawie mamy tylko jeden przedmiot o wadze 4, a waga plecaka wynosi 1. Nie możemy włożyć do plecaka przedmiotu o wadze 4, więc dodajemy 0 w M[2][1 ] pokazano poniżej:

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

Gdy i =2, W = 2

Waga odpowiadająca wartości 2 wynosi 4, tj. w2= 4. Ponieważ w zestawie mamy tylko jeden przedmiot o wadze 4, a waga plecaka wynosi 2. Nie możemy włożyć do plecaka przedmiotu o wadze 4, więc dodajemy 0 w M[2][2 ] pokazano poniżej:

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

Gdy i =2, W = 3

Waga odpowiadająca wartości 2 wynosi 4, tj. w2= 4. Ponieważ w zestawie mamy dwa przedmioty o wadze 3 i 4, a waga plecaka wynosi 3. Możemy umieścić przedmiot o wadze 3 w plecaku, więc dodajemy 2 w M[2][3] pokazano jak poniżej:

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

Gdy i =2, W = 4

Waga odpowiadająca wartości 2 wynosi 4, tj. w2= 4. Ponieważ w zestawie mamy dwa przedmioty o wadze 3 i 4, a waga plecaka wynosi 4. Możemy umieścić w plecaku przedmiot o wadze 4, gdyż zysk odpowiadający wadze 4 jest większy niż przedmiot o wadze 3, więc dodajemy 3 w M[2] [4] jak pokazano poniżej:

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

Gdy i = 2, W = 5

Waga odpowiadająca wartości 2 wynosi 4, tj. w2= 4. Ponieważ mamy w zestawie dwa przedmioty o wagach 3 i 4, a waga plecaka wynosi 5. Możemy włożyć do plecaka przedmiot o wadze 4 i zysk odpowiadający wadze wynosi 3, więc dodajemy 3 przy M[2] [5] pokazane poniżej:

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

Gdy i = 2, W = 6

Waga odpowiadająca wartości 2 wynosi 4, tj. w2= 4. Ponieważ w zestawie mamy dwa przedmioty o wagach 3 i 4, a waga plecaka wynosi 6. Możemy włożyć do plecaka przedmiot o wadze 4 i zysk odpowiadający wadze wynosi 3, więc dodajemy 3 przy M[2] [6] pokazane poniżej:

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

Gdy i = 2, W = 7

Waga odpowiadająca wartości 2 wynosi 4, tj. w2= 4. Ponieważ w zestawie mamy dwa przedmioty o wagach 3 i 4, a waga plecaka wynosi 7. Możemy włożyć do plecaka przedmiot o wadze 4 i 3, a zyski odpowiadające wagom wynoszą 2 i 3; dlatego całkowity zysk wynosi 5, więc dodajemy 5 w M [2] [7] pokazanym poniżej:

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

Gdy i = 2, W = 8

Waga odpowiadająca wartości 2 wynosi 4, tj. w2= 4. Ponieważ w zestawie mamy dwa przedmioty o wagach 3 i 4, a waga plecaka wynosi 7. Możemy włożyć do plecaka przedmiot o wadze 4 i 3, a zyski odpowiadające wagom wynoszą 2 i 3; dlatego całkowity zysk wynosi 5, więc dodajemy 5 w M [2] [7] pokazanym poniżej:

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

Teraz wartość „i” zostanie zwiększona i osiągnie wartość 3.

Gdy i = 3, W = 1

10 procent z 60

Waga odpowiadająca wartości 3 wynosi 5, tj. w3= 5. Ponieważ w zestawie mamy trzy przedmioty o wagach 3, 4 i 5, a waga plecaka wynosi 1. Nie możemy włożyć żadnego z przedmiotów do plecaka, więc dodajemy 0 w M[3][ 1] pokazano poniżej:

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

Gdy i = 3, W = 2

Waga odpowiadająca wartości 3 wynosi 5, tj. w3= 5. Ponieważ w zestawie mamy trzy przedmioty o wadze 3, 4 i 5, a waga plecaka wynosi 1. Nie możemy włożyć żadnego z przedmiotów do plecaka, więc dodajemy 0 w M[3][ 2] pokazano poniżej:

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

Gdy i = 3, W = 3

Waga odpowiadająca wartości 3 wynosi 5, tj. w3= 5. Ponieważ w zestawie mamy trzy przedmioty o wadze odpowiednio 3, 4 i 5, a waga plecaka wynosi 3. Przedmiot o wadze 3 można włożyć do plecaka, a zysk odpowiadający temu przedmiotowi wynosi 2, więc dodajemy 2 w M[3] [3] jak pokazano poniżej:

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

Gdy i = 3, W = 4

Waga odpowiadająca wartości 3 wynosi 5, tj. w3= 5. Ponieważ w zestawie mamy trzy przedmioty o wadze odpowiednio 3, 4 i 5, a waga plecaka wynosi 4. Możemy zatrzymać przedmiot o wadze 3 lub 4; zysk (3) odpowiadający wadze 4 jest większy niż zysk odpowiadający wadze 3, więc dodajemy 3 w M[3] [4] pokazanym poniżej:

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

Gdy i = 3, W = 5

Waga odpowiadająca wartości 3 wynosi 5, tj. w3= 5. Ponieważ w zestawie mamy trzy przedmioty o wadze odpowiednio 3, 4 i 5, a waga plecaka wynosi 5. Możemy zatrzymać przedmiot o wadze 3, 4 lub 5; zysk (3) odpowiadający wadze 4 jest większy niż zysk odpowiadający wadze 3 i 5, więc dodajemy 3 w M[3] [5] pokazanym poniżej:

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

Gdy i =3, W = 6

Waga odpowiadająca wartości 3 wynosi 5, tj. w3= 5. Ponieważ w zestawie mamy trzy przedmioty o wadze odpowiednio 3, 4 i 5, a waga plecaka wynosi 6. Możemy zatrzymać przedmiot o wadze 3, 4 lub 5; zysk (3) odpowiadający wadze 4 jest większy niż zysk odpowiadający wadze 3 i 5, więc dodajemy 3 w M[3] [6] pokazanym poniżej:

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

Gdy i =3, W = 7

Waga odpowiadająca wartości 3 wynosi 5, tj. w3= 5. Ponieważ w zestawie mamy trzy przedmioty o wadze odpowiednio 3, 4 i 5, a waga plecaka wynosi 7. W tym przypadku możemy zatrzymać oba przedmioty o wadze 3 i 4, czyli sumę zysku będzie równe (2 + 3), tj. 5, więc dodajemy 5 w M[3] [7] pokazanym poniżej:

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

Gdy i = 3, W = 8

Waga odpowiadająca wartości 3 wynosi 5, tj. w3= 5. Ponieważ w zbiorze mamy trzy przedmioty o wadze odpowiednio 3, 4 i 5, a waga plecaka wynosi 8. W tym przypadku możemy zatrzymać oba przedmioty o wadze 3 i 4, czyli suma zysk byłby równy (2 + 3), tj. 5, więc dodajemy 5 w M[3] [8] pokazanym poniżej:

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

Teraz wartość „i” zostanie zwiększona i osiągnie 4.

Gdy i = 4, W = 1

Waga odpowiadająca wartości 4 wynosi 6, tj. w4= 6. Ponieważ mamy cztery przedmioty w zestawie o wagach odpowiednio 3, 4, 5 i 6, a waga plecaka wynosi 1. Waga wszystkich przedmiotów jest większa niż waga plecaka, więc nie możemy dodaj dowolny przedmiot do plecaka; Dlatego dodajemy 0 w M[4] [1] pokazanym poniżej:

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

Gdy i = 4, W = 2

Waga odpowiadająca wartości 4 wynosi 6, tj. w4= 6. Ponieważ mamy cztery przedmioty w zestawie o wagach odpowiednio 3, 4, 5 i 6, a waga plecaka wynosi 2. Waga wszystkich przedmiotów jest większa niż waga plecaka, więc nie możemy dodaj dowolny przedmiot do plecaka; Dlatego dodajemy 0 w M[4] [2] jak pokazano poniżej:

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

Gdy i = 4, W = 3

Waga odpowiadająca wartości 4 wynosi 6, tj. w4= 6. Ponieważ mamy cztery przedmioty w zestawie odpowiednio o wagach 3, 4, 5 i 6, a waga plecaka wynosi 3. Przedmiot o wadze 3 można włożyć do plecaka i zysk odpowiadający waga 4 to 2, więc dodamy 2 w M[4] [3] jak pokazano poniżej:

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

Gdy i = 4, W = 4

Waga odpowiadająca wartości 4 wynosi 6, tj. w4= 6. Ponieważ mamy cztery przedmioty w zestawie o wagach odpowiednio 3, 4, 5 i 6, a waga plecaka wynosi 4. Przedmiot o wadze 4 można włożyć do plecaka i zysk odpowiadający waga 4 to 3, więc dodamy 3 w M[4] [4] jak pokazano poniżej:

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

Gdy i = 4, W = 5

Waga odpowiadająca wartości 4 wynosi 6, tj. w4= 6. Ponieważ mamy cztery przedmioty w zestawie o wagach odpowiednio 3, 4, 5 i 6, a waga plecaka wynosi 5. Przedmiot o wadze 4 można włożyć do plecaka i zysk odpowiadający waga 4 to 3, więc dodamy 3 w M[4] [5] jak pokazano poniżej:

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

Gdy i = 4, W = 6

Waga odpowiadająca wartości 4 wynosi 6, tj. w4= 6. Ponieważ mamy cztery przedmioty w zestawie odpowiednio o wagach 3, 4, 5 i 6, a waga plecaka wynosi 6. W tym przypadku możemy włożyć do plecaka przedmioty o wadze 3, 4 , 5 lub 6, ale zysk, tj. 4 odpowiadający wadze 6, jest najwyższy spośród wszystkich pozycji; dlatego dodajemy 4 w M[4] [6] jak pokazano poniżej:

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

Gdy i = 4, W = 7

Waga odpowiadająca wartości 4 wynosi 6, tj. w4= 6. Ponieważ mamy cztery przedmioty w zestawie odpowiednio o wagach 3, 4, 5 i 6, a waga plecaka wynosi 7. Tutaj, jeśli dodamy dwa przedmioty o wagach 3 i 4, to otrzymamy maksimum zysk, tj. (2 + 3) równa się 5, więc dodajemy 5 w M[4] [7] pokazanym poniżej:

tostrowanie Java
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

Gdy i = 4, W = 8

Waga odpowiadająca wartości 4 wynosi 6, tj. w4= 6. Ponieważ mamy cztery przedmioty w zestawie odpowiednio o wagach 3, 4, 5 i 6, a waga plecaka wynosi 8. Tutaj, jeśli dodamy dwa przedmioty o wagach 3 i 4, to otrzymamy maksimum zysk, tj. (2 + 3) równa się 5, więc dodajemy 5 w M[4] [8] pokazanym poniżej:

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

Jak możemy zaobserwować w powyższej tabeli, 5 to maksymalny zysk spośród wszystkich wpisów. Wskaźnik wskazuje ostatni wiersz i ostatnią kolumnę zawierającą 5 wartości. Teraz porównamy 5 wartości z poprzednim wierszem; jeśli poprzedni wiersz, tj. i = 3, zawiera tę samą wartość 5, wówczas wskaźnik przesunie się w górę. Ponieważ poprzedni wiersz zawiera wartość 5, wskaźnik zostanie przesunięty w górę, jak pokazano w poniższej tabeli:

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

Ponownie porównamy wartość 5 z powyższego wiersza, tj. i = 2. Ponieważ powyższy wiersz zawiera wartość 5, więc wskaźnik ponownie zostanie przesunięty w górę, jak pokazano w poniższej tabeli:

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

Ponownie porównamy wartość 5 z powyższego wiersza, tj. i = 1. Ponieważ powyższy wiersz nie zawiera tej samej wartości, więc rozważymy wiersz i=1, a waga odpowiadająca temu wierszowi wynosi 4. Zatem , wybraliśmy wagę 4 i odrzuciliśmy wagi 5 i 6 pokazane poniżej:

x = { 1, 0, 0}

Zysk odpowiadający wadze wynosi 3. Zatem pozostały zysk wynosi (5 - 3) jest równy 2. Teraz porównamy tę wartość 2 z wierszem i = 2. Ponieważ wiersz (i = 1) zawiera wartość 2 ; dlatego wskaźnik przesunął się w górę, jak pokazano poniżej:

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

Ponownie porównujemy wartość 2 z powyższym wierszem, tj. i = 1. Ponieważ wiersz i = 0 nie zawiera wartości 2, więc zostanie wybrany wiersz i = 1 i pokazana zostanie waga odpowiadająca i = 1 wynosząca 3 poniżej:

X = {1, 1, 0, 0}

Zysk odpowiadający wadze wynosi 2. Zatem pozostały zysk wynosi 0. Wartość 0 porównujemy z powyższym wierszem. Ponieważ powyższy wiersz zawiera wartość 0, ale zysk odpowiadający temu wierszowi wynosi 0. W tym zadaniu wybierane są dwie wagi, tj. 3 i 4, aby maksymalizować zysk.