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.).

Problem plecakowy — optymalizacja
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)
🎯 Wyzwanie: zachłanna = optimum?
seria: 0

Przedmioty: A(w3,v5), B(w2,v3), C(w2,v3). Dam Ci pojemność W — orzeknij, czy branie najcenniejszego (zachłannie) da maksymalną wartość.

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:

max⁡∑iviprzy ograniczeniu∑iwi≤W\max \sum_{i} v_i \qquad \text{przy ograniczeniu} \qquad \sum_{i} w_i \le W

Ograniczenie ∑iwi≤W\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ć ∑iwi≤W\sum_i w_i \le W, a celem jest max⁡∑ivi\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

Spodobał Ci się eksperyment? Udostępnij go.

Jest darmowy — podeślij znajomym ze szkoły.

Teoria i wzory

Zadanie

Dobierz przedmioty o wagach wiw_i i wartościach viv_i tak, by zmaksymalizować wartość przy ograniczeniu pojemności WW: max⁡∑ivixiprzy∑iwixi≤W,  xi∈{0,1}\max\sum_i v_i x_i\quad\text{przy}\quad \sum_i w_i x_i\le W,\ \ x_i\in\{0,1\}

Dlaczego trudny

Liczba podzbiorów 2n2^n rośnie wykładniczo, a strategia zachłanna (bierz najcenniejsze) nie gwarantuje optimum. To problem NP-trudny.

Współczynnik gęstości

Zachłannie warto patrzeć na viwi\dfrac{v_i}{w_i}, ale i to bywa zawodne w wersji 00-11.

Oznaczenia: wiw_i waga, viv_i wartość, WW pojemność, xix_i wybór (00 lub 11).

Uczysz? Umieść ten eksperyment na swojej stronie.

Darmowy widget — wklej na stronę szkoły, bloga lub notatki. Linkuje do pełnej wersji.

Uczysz w klasie albo korepetujesz? Prowadź uczniów w 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).