NexTutor
Wirtualne laboratorium/Matematyka/Teoria grafów/Problem komiwojażera — P kontra NP
Problem milenijny 2000

Problem komiwojażera — P kontra NP

Rozszerzenie tematu kombinatoryki, permutacji i złożoności obliczeniowej. Liczba możliwych tras komiwojażera rośnie jak (n-1)!/2 — lawinowo, szybciej niż jakakolwiek funkcja wielomianowa. Nie znamy szybkiego algorytmu rozwiązującego ten problem dla dużych n — to sedno pytania P kontra NP, sformalizowanego przez Stephena Cooka w 1971 r., umieszczonego przez Instytut Claya na liście Problemów Milenijnych w 2000 r. (nagroda 1 mln USD, wciąż nierozwiązany).

Matematyka · Teoria grafów · Problem komiwojażera — P kontra NP (2000)
Liczba miast do odwiedzenia nn6 miast
Gdy dodajemy miasta, liczba tras do sprawdzenia rośnie…
miast n
6
tras (n-1)!/2
60
czas @1 mln/s
< 1 ms
+1 miasto → ×
6

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

Komiwojażer musi odwiedzić wszystkie n miast dokładnie raz i wrócić do punktu startu, szukając najkrótszej możliwej trasy. Zwiększyliśmy liczbę miast z 6 do 15, a liczba możliwych tras do sprawdzenia eksplodowała z 60 do ponad 43 589 145 600.

Model: ile jest wszystkich tras?

Trasa to permutacja n miast, ale punkt startowy jest dowolny (dzielimy przez n), a trasa przebyta w obu kierunkach ma tę samą długość (dzielimy przez 2). Zostaje:

liczba tras=(n1)!2\text{liczba tras} = \dfrac{(n-1)!}{2}

Dla n = 5 to tylko 12 tras — łatwo sprawdzić wszystkie ręcznie. Dla n = 10 to już 181 440 tras. Dla n = 15 to ponad 43 589 145 600 (43,6 miliarda) tras. A dla n = 20 to ponad 60 kwadrylionów — więcej, niż najszybszy komputer świata zdołałby sprawdzić przez wieki.

P kontra NP — jedno z najważniejszych pytań matematyki

Problem komiwojażera to klasyczny przykład problemu NP-trudnego: rozwiązanie (konkretną trasę) łatwo sprawdzić — wystarczy zsumować odcinki i porównać z limitem X. Ale nie znamy żadnego szybkiego (wielomianowego) sposobu, by taką najkrótszą trasę znaleźć dla dużych n — jedyna pewna metoda to sprawdzenie (niemal) wszystkich (n-1)!/2 możliwości. Stephen Cook sformalizował to pytanie w 1971 r.: czy każdy problem, którego rozwiązanie da się szybko zweryfikować (klasa NP), da się też szybko znaleźć (klasa P)? To pytanie „P kontra NP" pozostaje nierozwiązane — Instytut Matematyczny Claya umieścił je w 2000 r. na liście 7 „Problemów Milenijnych", oferując milion dolarów za dowód. Większość informatyków podejrzewa, że P ≠ NP, ale nikt tego nie udowodnił.

Co to znaczy w praktyce?

To nie tylko akademicka ciekawostka. Bezpieczeństwo współczesnej kryptografii (w tym szyfrowania RSA, które chroni Twoje hasła i transakcje online) opiera się na założeniu, że pewne problemy są łatwe do zweryfikowania, ale trudne do rozwiązania. Gdyby ktoś udowodnił, że P = NP, i wskazał szybki algorytm — większość dzisiejszej kryptografii przestałaby być bezpieczna.

Po co Ci to na maturze:

Silnia (n-1)! i dzielenie przez symetrie (kierunek, punkt startu) to standardowy chwyt kombinatoryczny z rozszerzenia matematyki — te same zasady liczenia permutacji z ograniczeniami pojawiają się w zadaniach o ustawianiu osób w rzędzie czy przy okrągłym stole.

Zapamiętaj: liczba tras komiwojażera wynosi dokładnie (n-1)!/2, niezależnie od tego, jak miasta są rozmieszczone na mapie — i rośnie silniowo, czyli szybciej niż jakakolwiek funkcja wielomianowa lub wykładnicza. To dlatego problem komiwojażera jest NP-trudny, a pytanie „P kontra NP" wciąż czeka na rozwiązanie.

Model poglądowy · Wirtualne laboratorium NexTutor

Najczęstsze pytania

Jak szybko rośnie liczba tras komiwojażera?

Lawinowo — silniowo, jako (n-1)!/2, znacznie szybciej niż liniowo czy wykładniczo.

Co to problem P kontra NP?

Pytanie, czy każdy problem szybko weryfikowalny (NP) da się też szybko rozwiązać (P) — nierozwiązane od 1971 r.

Jakie ma to znaczenie praktyczne?

Bezpieczeństwo kryptografii (np. RSA) opiera się na założeniu, że niektóre problemy są trudne do rozwiązania, choć łatwe do zweryfikowania.