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.).
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 . 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 i wartościach oraz plecak o pojemności , wybieramy podzbiór o maksymalnej łącznej wartości, który się w nim mieści:
Ograniczenie 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 ), 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 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ć , a celem jest — 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ź.
Nie zawsze — czasem lepszy jest inny zestaw przedmiotów niż branie najcenniejszego lokalnie.
Bo liczba możliwych podzbiorów (2ⁿ) rośnie wykładniczo — to problem NP-trudny.
Z pytaniem P vs NP — jednym z 7 Problemów Milenijnych Instytutu Claya (nagroda 1 mln USD).
Powiązane eksperymenty