Dlaczego ważne jest, aby udowodnić, że problem dotyczy NP?

Odpowiedzi:

26

Ali, dobre pytanie.

Załóżmy, że chcesz pokazać, że jakiś problem P jest trudny obliczeniowo. Teraz możesz przypuszczać, że P jest trudne tylko na podstawie faktu, że nie mamy jeszcze wydajnych algorytmów. Ale to raczej wątły dowód, nie? Możliwe, że przegapiliśmy jakiś fajny sposób patrzenia na P, który bardzo ułatwiłby jego rozwiązanie. Aby więc przypuszczać, że P jest trudne, chcielibyśmy zgromadzić więcej dowodów. Redukcje zapewniają narzędzie do tego dokładnie! Jeśli możemy zredukować jakiś inny naturalny problem Q do P, to pokazaliśmy, że P jest co najmniej tak samo trudny jak Q. Ale Q może być problemem z zupełnie innej dziedziny matematyki, a ludzie od dziesięcioleci mogą walczyć o rozwiązanie Q . Zatem możemy uznać, że nasze niepowodzenie w znalezieniu wydajnego algorytmu dla Q jest dowodem na to, że P jest trudne. Jeśli mamy dużo takich Q '

Dokładnie to zapewnia teoria kompletności NP. Jeśli udowodnisz, że twój problem jest NP-zupełny, to powiązałeś jego twardość z twardością setek innych problemów, z których każdy ma istotne znaczenie dla różnych społeczności. Tak więc, mówiąc moralnie, możesz być pewien, że twój problem jest naprawdę trudny.

arnab
źródło
Więc początkowym celem jest znalezienie wydajnego algorytmu dla P, ale ponieważ wydaje się to niemożliwe, zakłada się, że P jest trudne obliczeniowo, a następnie twoje odpowiedzi wyjaśniają resztę?
Ali
Chcemy pokazać, że nasz problem P jest trudny obliczeniowo, ale nie chcemy zakładać, że P trudno jest udowodnić, że P jest trudny :) Zamiast tego, jeśli udowodnisz, że P jest NP-całkowity (lub nawet NP-trudny, ale zignorujmy tutaj rozróżnienie), pokazałeś, że jeśli któryś z setek już dobrze zbadanych problemów jest trudny, to P jest również trudny. Wynika to z faktu, że gdyby istniał skuteczny algorytm dla P, istniałyby również wydajne algorytmy dla każdego z setek problemów.
arnab
4
@Ali: Zdecydowanie polecam przyjrzeć się wprowadzającemu podręcznikowi teorii złożoności. Ta strona internetowa nie jest tak naprawdę forum dla takich pytań, ale bardziej dla pytań na poziomie badawczym.
arnab
5
@Ali: Zdecydowanie polecam przeczytać Garey i Johnson . Słynna kreskówka z książki jest obowiązkowa!
Tsuyoshi Ito,
9

Udowadnianie problemu NP-Complete jest sukcesem badawczym, ponieważ uwalnia cię od konieczności szukania wydajnego i dokładnego rozwiązania ogólnego problemu, który studiujesz. Dowodzi to, że twój problem należy do klasy problemów tak trudnych, że nikt nie był w stanie znaleźć wydajnego i dokładnego algorytmu dla któregokolwiek z problemów, a takie rozwiązanie dla któregokolwiek z problemów oznaczałoby rozwiązanie dla wszystkich problemy.

Zwykle jest to odskocznia, ponieważ twój problem wciąż istnieje - po prostu musisz rozluźnić swoje wymagania. Zwykle ludzie próbują dowiedzieć się, jak zrelaksować jeden lub więcej „skutecznych”, „dokładnych” lub „ogólnych”. Nieefektywnym i dokładnym i ogólnym jest próba znalezienia coraz lepszych stałych w wykładniku dla tych algorytmów. Skuteczne i niedokładne i ogólne jest badanie algorytmów aproksymacyjnych. Skuteczne i dokładne, ale nie ogólne jest badanie wykonalności stałych parametrów i poszukiwanie podklas danych wejściowych, dla których można znaleźć wydajne algorytmy.

Peter Boothe
źródło
Fajny punkt na trzy sposoby na złagodzenie problemu! Sądzę, że losowe algorytmy należą do kategorii „sprawne i niedokładne i ogólne”.
Hsien-Chih Chang 之 之
Naprawdę? Nie wszystkie algorytmy randomizowane są niedokładne.
Jeffε
I oczywiście masz rację, JeffE. Rozumiem również, że instruujesz mojego byłego ucznia w zakresie algorytmów! Jeśli chodzi o punkt widzenia Hsien-Chiha, nie sądzę, aby algorytmy losowe dobrze pasowały do ​​tego schematu. Z pewnością niektóre algorytmy randomizowane (przychodzą na myśl algorytmy genetyczne i sieci neuronowe) są niedokładne, ale wydajne i ogólne, ale niektóre algorytmy randomizowane są dość dokładne - rozważ algorytm sprawdzania liczby jest liczbą pierwszą! Jest to algorytm losowy, ale jestem całkiem pewien, że nikt nigdy nie uzyskał nieprecyzyjnego wyniku jakiejkolwiek rozsądnej implementacji.
Peter Boothe,
5

NPcomplete

NPcomplete, masz pewne dowody na to twoje przypuszczenie i powinieneś zacząć rozważać alternatywne podejście (np. zmienić problem, aby stał się łatwiejszy).

NPcomplete

NPcomplete

P=NP3SAT

NPcompleteCLIQUE

Podsumowując, charakterystyka problemu pozwala na użycie typowych technik. Studiując klasę, z którą jest związana, możesz myśleć abstrakcyjnie, nie zawracając sobie głowy specyfiką tego konkretnego problemu, który jest powszechny w matematyce i nauce w ogóle. Praca z klasami zamiast z poszczególnymi elementami pozwala na wykorzystanie znanych technik, a ponadto zastosowanie wglądu do większej liczby obiektów, zamiast tylko jednego.

chazisop
źródło
2
Wiele osób rozwiązuje problemy NP-zupełne w praktyce, nawet jeśli trudno je oszacować. W przeciętnym przypadku wiele problemów okazuje się znacznie łatwiejszych, choć może być to trudne do pokazania; jeszcze trudniej jest udowodnić cokolwiek na temat algorytmów heurystycznych, które sprawdzają się w praktyce. Sugeruję architektowi oprogramowania, aby zapytał kogoś, czy problem jest „naprawdę” trudny, zanim zrezygnuje i zmieni projekt.
Yuval Filmus,
Nie twierdzę, że projekt musi się zmienić. Używanie algorytmu heurystycznego lub aproksymacyjnego wydaje mi się (fałszywie?) Jak zmiana problemu ... skoro wiesz, że pytasz o mniej precyzyjne rozwiązania (czy są one dopuszczalne? Zależy od aplikacji!).
chazisop
3

Każdy problem ma kilka powiązań z innymi problemami. Ponadto istnieją relacje między klasami problemu i złożoności.

Dlatego sklasyfikowanie jednego problemu jako NPC zwykle daje nam wgląd w inne problemy, a także klasy złożoności.

Weźmy na przykład problem z izomorfizmem grafowym (GI). W następującym artykule:

Uwe Schöning, Graf izomorfizm ma niską hierarchię , Proceedings of 4th Annual Symposium on Theoretical Aspects of Computer Science , 1987, 114–124; także: Journal of Computer and System Sciences, vol. 37 (1988) 312–323.

udowodniono, że jeśli GI ∈ NPC, hierarchia wielomianowa (PH) załamie się na swój drugi poziom; co będzie dużym przełomem w teorii złożoności strukturalnej.

MS Dousti
źródło
3

pppp

Radu GRIGore
źródło
1
Słyszałem, że był czas, kiedy udowodniłeś, że niektóre problemy są NP-zupełne, miałbyś swoją pracę doktorską. Czy to prawda?
Hsien-Chih Chang 之 之
@ Hsien-ChihChang 張顯 之: Nie mogę tego komentować, ale te wyniki z pewnością były znacznie bardziej popularne kilka dekad temu. Wydaje się, że w dzisiejszych czasach coraz trudniej jest opublikować artykuł, w którym „tylko” udowadnia się wynik twardości (z wyjątkiem „słynnych problemów” oczywiście), podczas gdy nie byłby to problem w latach 70. i 80., sądząc z obfitość tego rodzaju dokumentów w tym okresie.
Anthony Labarre