NexTutor
Wirtualne laboratorium/Matematyka/Teoria grafów/Problem plecakowy — optymalizacja
Problem milenijny 2000

Problem plecakowy — optymalizacja

Rozszerzenie tematu optymalizacji i kombinatoryki. Wybieramy przedmioty o największej łącznej wartości mieszczące się w plecaku (suma wag ≤ pojemność). Strategia zachłanna nie zawsze daje optimum, a sprawdzenie wszystkich 2ⁿ podzbiorów rośnie wykładniczo — to problem NP-trudny, związany z pytaniem P vs NP (Problem Milenijny Instytutu Claya, 2000 r.).

Matematyka · Teoria grafów · Problem plecakowy — optymalizacja (2000)
Strategia wyboru przedmiotów
Pojemność plecaka WW4 jedn. wagi
Zawsze branie najcenniejszego przedmiotu (zachłannie) daje…
pojemność W
4
użyta waga
3 ≤ 4
wartość wyboru
5
strata do optimum
−1 (opt 6)

Co się właśnie stało?

Mamy trzy przedmioty — A (waga 3, wartość 5), B (waga 2, wartość 3) i C (waga 2, wartość 3) — oraz plecak o pojemności W=4W=4. Strategia zachłanna sięga po najcenniejszy przedmiot A (wartość 5), ale zajmuje on 3 z 4 jednostek wagi i nie starcza już miejsca na nic więcej. Tymczasem rezygnacja z A na rzecz dwóch tańszych przedmiotów B + C daje wartość 6 przy dokładnie zapełnionym plecaku (waga 4).

Problem plecakowy — na czym polega?

To klasyczny problem optymalizacji kombinatorycznej: mając przedmioty o wagach wiw_i i wartościach viv_i oraz plecak o pojemności WW, wybieramy podzbiór o maksymalnej łącznej wartości, który się w nim mieści:

maxiviprzy ograniczeniuiwiW\max \sum_{i} v_i \qquad \text{przy ograniczeniu} \qquad \sum_{i} w_i \le W

Ograniczenie iwiW\sum_i w_i \le W jest twarde — łączna waga wybranych przedmiotów nigdy nie może przekroczyć pojemności. Kusi, by rozwiązać zadanie „zachłannie" (brać zawsze najcenniejszy albo najlepszy lokalnie przedmiot o największym stosunku vi/wiv_i/w_i), ale — jak widać powyżej — ta strategia nie gwarantuje optimum.

Dlaczego to trudne? Klasa NP i „P vs NP"

Znalezienie gwarantowanego rozwiązania optymalnego wymaga rozważenia wielu kombinacji przedmiotów, a liczba wszystkich podzbiorów 2n2^n rośnie wykładniczo z liczbą przedmiotów: dla 3 przedmiotów to 8 podzbiorów, dla 20 już ponad milion, dla 50 — więcej niż liczba atomów w wielu galaktykach. Dlatego problem plecakowy należy do klasy problemów NP-trudnych, ściśle związanej z jednym z najważniejszych nierozwiązanych pytań matematyki i informatyki: „P kontra NP". Jest ono jednym z 7 Problemów Milenijnych Instytutu Matematycznego Claya (2000 r.), a za jego rozwiązanie czeka nagroda 1 mln USD.

Gdzie to spotkasz w praktyce?

Problem plecakowy ma ogromne zastosowania: pakowanie ładunku o ograniczonej masie, budżetowanie inwestycji (które projekty sfinansować przy stałym budżecie?), alokacja zasobów, a nawet kryptografia. Pokazuje, że pozornie proste zadanie — „co spakować, żeby zabrać jak najwięcej wartości?" — może być obliczeniowo bardzo trudne.

Po co Ci to na maturze:

To modelowy przykład, że strategia zachłanna nie zawsze jest optymalna — intuicja „bierz najlepsze teraz" bywa zwodnicza. Ta sama ostrożność przydaje się w zadaniach o optymalizacji, kombinatoryce i rachunku prawdopodobieństwa: zanim uznasz lokalnie najlepszy ruch za globalnie najlepszy, sprawdź kontrprzykład.

Zapamiętaj: w problemie plecakowym suma wag wybranych przedmiotów musi spełniać iwiW\sum_i w_i \le W, a celem jest maxivi\max \sum_i v_i — jednak strategia zachłanna nie gwarantuje maksymalnej wartości. Gwarancję daje dopiero przegląd kombinacji, którego koszt rośnie wykładniczo. To dlatego problem plecakowy jest NP-trudny, a pytanie „P kontra NP" wciąż czeka na odpowiedź.

Model poglądowy · Wirtualne laboratorium NexTutor

Najczęstsze pytania

Czy strategia zachłanna daje optimum w problemie plecakowym?

Nie zawsze — czasem lepszy jest inny zestaw przedmiotów niż branie najcenniejszego lokalnie.

Dlaczego problem plecakowy jest trudny?

Bo liczba możliwych podzbiorów (2ⁿ) rośnie wykładniczo — to problem NP-trudny.

Z jakim wielkim pytaniem wiąże się problem plecakowy?

Z pytaniem P vs NP — jednym z 7 Problemów Milenijnych Instytutu Claya (nagroda 1 mln USD).