Czy trudność silnie trudnego NP lub problemu NP-zupełnego (jak np. Zdefiniowano tutaj ) zmienia się, gdy jego wejście jest jednoargumentowe zamiast kodowane binarnie?
Jaką różnicę ma to, że wejście problemu silnie trudnego NP jest zakodowane w sposób jednoznaczny? Chodzi mi o to, że jeśli wezmę na przykład słabo NP-kompletny problem Knapsack, jest on NP-kompletny, gdy jest kodowany binarnie, ale można go rozwiązać w czasie wielomianowym przez programowanie dynamiczne, gdy kodowane jest jednoargumentowo. Może ma to jakieś implikacje dla twardości wyższych poziomów wielomianowej heirarchii czasowej?
Czy pojęcie silnie ...- trudne dotyczy także innych klas złożoności, np. Wyższych klas wielomianowej hierarchii czasu?
Wcześniej zadałem to pytanie na stackoverflow.com, ale wskazano, że tutaj jest bardziej odpowiednie.
źródło
Odpowiedzi:
źródło
Nie.
Jeśli zmienisz kodowanie wejścia, zmienisz formalną definicję problemu, co oznacza, że jest to inny problem . Złożoność pierwotnego problemu nie zmienia się, z tego samego powodu, że wskazywanie na inne światło na niebie nie zmienia masy księżyca.
źródło
Krótka odpowiedź brzmi: jeśli wejście jest zakodowane w sposób jednoargumentowy, to jest dłuższe . Jest wykładniczo dłuższy. Teraz algorytm działający w czasie wielomianowym w wielkości danych wejściowych ma „wystarczająco dużo czasu”, aby rozwiązać problem, tylko dlatego, że dane wejściowe są wykładniczo dłuższe niż w pierwotnym problemie.
źródło
Widząc przeszłość problemu sformułowania wskazanego w odpowiedzi JeffE, odpowiedź brzmi tak.
Rozważ problem z plecakiem . Ma algorytm pseudo-wielomianowy , to znaczy taki, w którym środowisko wykonawcze jest ograniczone przez wielomian w liczbie zakodowanej na wejściu. Ponieważ w jednostronnych wartościach kodowania odpowiadają długości, jest to algorytm wielomianowy dla wersji jednoargumentowej.
W rzeczywistości każdy słabo kompletny problem NP należy do tej kategorii.
źródło