Czy można ustalić, czy język L leży w NP?


15

Biorąc pod uwagę język L zdefiniowany przez maszynę Turinga, która go decyduje, czy możliwe jest algorytmiczne określenie, czy L leży w NP?


Retagged do teorii złożoności. Nie jestem pewien, co to ma wspólnego z NP-Completeness.
Aryabhata,

1
FWIW, pomimo głosów na stronie wniosku, myślę, że to pytanie jest bardziej ukierunkowane niż pytanie dotyczące faktoringu właśnie dlatego, że pytanie o faktoring byłoby omawiane na większości kursów o złożoności wstępnej, ale to pytanie nie jest nawet uwzględnione na wielu poziomach magisterskich kursy złożoności.
Joshua Grochow

1
Czy nie jest to uwzględnione w kursach wprowadzających dotyczących obliczalności jako typowego zastosowania twierdzenia Rice'a?
Moritz

3
Moritz - chociaż odpowiedź twierdząca na tak / nie jest ujęta w twierdzeniu Rice'a, zobacz moją odpowiedź poniżej, aby uzyskać bardziej interesujące wyniki. Może, txwikinger, powinieneś zmienić pytanie na „Jaka jest złożoność zestawu {i: L (M_i) w NP}?”?
Joshua Grochow

Popieram tutaj odpowiedź Jozuego. Odpowiedź może być oczywista, gdy język jest określony przez maszynę Turinga, ale odpowiedź jest taka sama (i być może nie tak oczywista), jeśli pozwolimy na określenie języka w dowolnym dowolnym formacie.
Anand Kulkarni,

Odpowiedzi:


24

Nie. Po pierwsze, według twierdzenia Rice'a, jest to właściwość baz TM, która zależy tylko od języka, który obliczają, więc nie może być obliczalna.

Ale, co więcej, wiadomo, że zbiór indeks (czyli zbiór baz że języki obliczeniowe w N P ) jest Σ 0 3 -Complete ( Σ 0 3 w arytmetycznej hierarchii obliczalności, a nie hierarchia wielomianowa).N.P.N.P.Σ3)0Σ3)0

Takie pytania zostały po raz pierwszy zbadane przez Hajeka . Więcej informacji można znaleźć np. W tym artykule Kena Regana.

Kilka innych samorodków z gazety Hajeka:

  • Zestaw wskaźników wynosi Σ 0 3 - kompletny.P.Σ3)0
  • ma wartość Π 0 2 -kompletną{ja:P.L.(M.ja)N.P.L.(M.ja)}Π2)0
  • Istnieje całkowita maszyna Turinga (zatrzymuje się na wszystkich wejściach) taka, że P L i = N P L i ale wyrażenie „ P L i = N P L iM.jaP.L.ja=N.P.L.jaP.L.ja=N.P.L.ja ” jest niezależne (gdzie ) . Podobnie dla relativizations gdzie P N P .L.ja=L.(M.ja)P.N.P.

1
W tym przypadku pytanie wydaje się być problemem decyzyjnym (obietnica, że ​​dany język zostanie rozstrzygnięty przez TM, nie tylko rozpoznana), w przeciwieństwie do całościowego problemu decyzyjnego. Czy zatem twierdzenie Rice'a będzie nadal obowiązywało? Przypomnijmy, że dowód twierdzenia Rice'a wykorzystuje nierozstrzygalność zatrzymania, więc nierozstrzygalność jest tam niezbędna.
Zeyu,

2
W zadanym pytaniu język L został „nadany przez maszynę, która go decyduje”. Tak było naprawdę: biorąc pod uwagę maszynę Turinga M, czy można ustalić, czy L (M) jest w NP. Gdyby język L nie był określony przez TM, a jedynie podany jako podzbiór liczb naturalnych, co oznaczałoby algorytmiczne decydowanie, czy L jest w NP? W szczególności, jak możemy myśleć o L jako o danych wejściowych do algorytmu, gdy sam L nie jest określony przez skończony opis?
Joshua Grochow

1
Tak, wiem. Ale w twierdzeniu Rice'a możliwe jest, że TM nie decyduje o języku, tzn. Nie oblicza całkowitej funkcji.
Zeyu,

2
Ogólna heurystyka jest taka, że ​​biorąc pod uwagę semantyczną właściwość maszyn Turinga, taką jak „M definiuje język NP”, najpierw należy spróbować wyrazić tę właściwość w logice pierwszego rzędu. To umieszcza właściwość na poziomie hierarchii arytmetycznej; heurystyka polega na tym, że właściwość jest zwykle kompletna dla tego poziomu hierarchii. Chciałbym zapytać, czy są jakieś znaczące kontrprzykłady dla tej heurystyki.
Andy Drucker,

2
Skalując się do hierarchii wielomianowej, rzeczy są mniej prawdopodobne, aby zachowywały się tak ładnie. Rozważmy na przykład właściwość „C to obwód logiczny o minimalnym rozmiarze (dla obliczanej funkcji)”. Ten problem jest trudny do NP i można go umieścić w hierarchii wielomianowej, ale jest otwarty, czy jest kompletny dla poziomu, w którym naturalnie przebywa. (takie wyniki są znane dla niektórych ograniczonych klas obwodów, np. DNF; patrz dwuczęściowe badanie „Kompletność w hierarchii wielomianowej” Schaefera i Umansa)
Andy Drucker

5

Odpowiedź na twoje dosłowne pytanie brzmi „nie”, jak zauważył Joshua Grochow.

Jednak, jak stwierdził Holger, możliwe jest sprawdzenie w czasie liniowym, czy niedeterministyczna maszyna Turinga (NTM) „sam się taktuje” i zatrzymuje po krokach n ^ k dla pewnego stałego k, za pomocą standardowego sposobu symulowania zegara (takiego jak kod poniżej). Często, gdy artykuł lub książka sugeruje (niepoprawnie), że możliwe jest ustalenie, czy NTM jest czasem wielomianowym, właśnie to mają na myśli. Być może dlatego zadałeś pytanie? (Miałem to samo pytanie, kiedy po raz pierwszy nauczyłem się teorii złożoności i gdzieś zobaczyłem stwierdzenie, że można sprawdzić, czy TM jest wieloczasowe). Prawdziwe pytanie brzmi: dlaczego ktoś może chcieć to zrobić, o czym dyskutuję poniżej po wyjaśnieniu w jaki sposób .

Istnieje wiele sposobów dodawania takiej funkcji zegara. Na przykład, wyobraź sobie na wejściu x o długości n, naprzemiennie wykonując jedną instrukcję taktowania „algorytmu głównego”, a następnie jedną instrukcję następującego algorytmu, która kończy się (coś bliskiego) n ^ k krokami:

dla i_1 = 1 do n
  dla i_2 = 1 do n
...
        dla i_k = 1 do n
          brak operacji;
powrót;

Jeśli powyższy kod powróci, zanim algorytm główny zatrzyma się, zatrzymaj całe obliczenia (powiedzmy z odrzuceniem).

Algorytm decydujący o tym, czy NTM ma taką postać, jeśli zostanie zinterpretowany jako próba algorytmu decydującego, czy jego dane wejściowe są wielozadaniowym NTM, zgłosi pewne fałszywe negatywy: niektóre NTM mają zagwarantowane zatrzymanie w czasie wielomianowym, mimo że nie naprzemiennie wykonują jedną instrukcję algorytmu z jedną instrukcją zegara, tak jak powyższy kod (stąd zostałby odrzucony, mimo że byłby wieloczasowy).

Ale nie ma fałszywych trafień. Jeśli NTM przejdzie test, to na pewno zatrzyma się w czasie wielomianowym, stąd definiuje jakiś język NP. Być może zachowanie pierwotnego algorytmu podstawowego ulegnie zmianie, jeśli zegar czasami skończy się, zanim zatrzyma się główny algorytm, co spowoduje odrzucenie obliczeń, nawet jeśli algorytm pierwotny może zaakceptować, jeśli otrzyma wystarczającą ilość czasu na zakończenie. Dlatego wybrany język może być inny niż algorytmu podstawowego. Ale, i to jest klucz, jeśli wykonywany algorytm pierwotny jest w rzeczywistości algorytmem czasu wielomianowego działającym w czasie p (n), a jeśli stała k w zegarze jest wystarczająco duża, aby n ^ k> p (n), to główny algorytm zawsze się zatrzyma, zanim skończy się zegar. W tym przypadku odpowiedź pierwotnego algorytmu nie jest zmieniana, więc algorytm pierwotny i taktowany NTM symulujący go decydują zatem o tym samym języku NP.

Dlaczego to jest ważne? Oznacza to, że możliwe jest „wyliczenie wszystkich języków NP” (co, jak powiedziałem, w literaturze jest często niedokładne, stwierdzone jako „zdecyduj, czy dany NTM jest wielogodzinny” lub „wyliczyć wszystkie wielogodzinne NTM”). Dokładniej, możliwe jest wyliczenie nieskończonej listy NTM M_1 M_2, ..., o właściwościach, które

  1. Każdy M_k działa w czasie wielomianowym (na przykład, dołączając zegar ^ k-time do M_k), stąd decyduje się na jakiś język NP, i
  2. Każdy język NP jest językiem ustalonym przez niektórych M_i na liście.

Nie dzieje się tak, że każdy NTM w czasie wielomianowym znajduje się na liście. Ale każdy język NP ma nieskończoną liczbę reprezentujących go NTM. Zatem każdy język NP ma zagwarantowane, że ma przynajmniej kilka reprezentatywnych NTM na liście, w szczególności wszystkie te NTM o wystarczająco dużym indeksie k, że n ^ k przekracza czas działania M_k.

Jest to przydatne do wykonywania sztuczek takich jak diagonalizacja, które wymagają algorytmicznego wyliczania takich nieskończonych (lub nieograniczonych) list wszystkich języków NP. Oczywiście cała ta dyskusja dotyczy wielu innych rodzajów maszyn oprócz wielozadaniowych wielozadaniowych maszyn NTM, takich jak deterministyczne wielozadaniowe bazy TM.


3

p(n)


2
Działa to tylko wtedy, gdy jest to niedeterministyczna TM. Jeśli dam ci tylko taktowaną TM (nawet taką, która działa w czasie wykładniczym), nadal nie można rozstrzygnąć, czy język, który decyduje, jest w NP. Jeśli jednak N_1, N_2, ... jest wyliczeniem baz TM z zegarami wykładniczymi, zestaw {i: L (N_i) jest w NP} prawdopodobnie nie jest już kompletny w Sigma_3, ponieważ masz już gwarancję, że N_i są ogółem, ale nadal nie można tego obliczyć.
Joshua Grochow
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.