Jednym z powodów, dla których widzimy różne złożoności aproksymacji dla problemów NP-zupełnych jest to, że warunki konieczne dla NP-zupełnego stanowią bardzo gruboziarnistą miarę złożoności problemu. Być może znasz podstawową definicję problemu będącego NP-zupełnym:Π
- Π jest w NP, i
- Dla każdego innego problemu w NP, możemy przekształcić instancję z w instancję z w czasie wielomianowym, tak że jest tak-instancją , i tylko wtedy, gdy jest tak-instancją .ΞxΞyΠyΠxΞ
Rozważmy warunek 2: wszystko, co jest wymagane, to wziąć i zamienić go w który zachowuje odpowiedź „jednobitową” tak / nie. Nie ma żadnych warunków dotyczących na przykład względnej wielkości świadków twierdzących na tak lub nie (to znaczy wielkości rozwiązania w kontekście optymalizacji). Tak więc jedyną zastosowaną miarą jest całkowity rozmiar danych wejściowych, który daje bardzo słaby warunek co do wielkości rozwiązania. Więc przekształcenie w jest dość „łatwe” .xyΞΠ
Widzimy różnicę w różnych problemach z kompletnym NP, patrząc na złożoność niektórych prostych algorytmów. -Kolorowanie ma brutalną siłę (gdzie jest rozmiarem wejściowym). Dla -Dominating Set, podejście brutalnej siły przyjmuje . Są to w istocie najlepsze dokładne algorytmy, jakie mamy. -Vertex Cover ma jednak bardzo prosty algorytm (wybierz krawędź, gałąź, na której ma się znaleźć punkt końcowy, zaznacz wszystkie zakryte, idź dalej, dopóki nie zaznaczysz żadnych krawędzi lub nie uderzysz twój budżetkO ( kn)nkO ( nk)kO ( 2kndo)ki Bactrack). W przypadku wielomianowych redukcji wielokrotnych jeden raz (redukcji Karp, tj. Tego, co robimy w warunku 2 powyżej), problemy te są równoważne.
Kiedy zaczynamy zbliżać się do złożoności za pomocą nawet nieco bardziej delikatnych narzędzi (złożoność aproksymacji, złożoność sparametryzowana, wszelkie inne, o których nie mogę myśleć), stosowane przez nas redukcje stają się bardziej rygorystyczne, a raczej bardziej wrażliwe na strukturę rozwiązania, oraz różnice zaczynają się pojawiać; -Vertex Cover (jak wspomniano Yuval) ma proste przybliżenie 2 (ale nie ma FPTAS, chyba że niektóre klasy złożoności się zawalą), -Dominating Set ma algorytm aproksymacji (ale nie - aproksymacja dla niektórych ), a aproksymacja wcale nie ma sensu w przypadku prostej wersji Coloring.kkk( 1 + logn )( c logn )c > 0k