Zakładając, że P NP, problemy z kompletnością NP są „trudne do rozwiązania, ale mają odpowiedzi, które można łatwo sprawdzić”. Czy ma sens rozważenie czegoś przeciwnego, to znaczy problemów, dla których łatwo jest poprawnie obliczyć prawidłową odpowiedź, ale trudno jest zweryfikować dowolne rzekome rozwiązanie?
Myślę, że taki problem oznaczałby albo:
Wykładniczo wiele „poprawnych” odpowiedzi na dane dane wejściowe, ponieważ w przeciwnym razie weryfikacja mogłaby zostać przeprowadzona przez obliczenie wszystkich poprawnych odpowiedzi.
Niektóre „poprawne” odpowiedzi są łatwe do obliczenia, ale inne są trudne do znalezienia.
complexity-theory
rphv
źródło
źródło
Odpowiedzi:
Jeśli masz problemy ze sztucznymi problemami, możesz zrobić wiele z nich. Tu jest kilka:
Nadanie jednej zadowalającej formuły 3CNF jest łatwe, ale decyzja, czy dana formuła 3CNF jest zadowalająca, czy nie, to 3SAT, dobrze znany problem NP-zupełny.
Danie jednej takiej maszyny Turinga jest łatwe, ale nie można rozstrzygnąć, czy dana maszyna Turinga się zatrzyma, czy nie.
Dodano : Nawiasem mówiąc, nie sądzę, aby to, co napisałeś w ostatnim akapicie, zawiera:
Jeśli problem ma jedno rozwiązanie, to rzeczywiście sprawdzenie odpowiedzi nie jest trudniejsze niż obliczenie właściwego rozwiązania. Jeśli jednak problem ma jedno łatwe rozwiązanie i jedno trudne rozwiązanie, nie można skutecznie obliczyć wszystkich rozwiązań. Oto jeden z takich problemów (który jest bardzo sztuczny):
Podanie jednego rozwiązania jest łatwe : zawsze możesz wybrać „ M jest maszyną Turinga”. Jednak to, czy dana odpowiedź jest poprawna, czy nie, jest nierozstrzygalne. Zauważ, że w tym problemie są tylko dwa rozwiązania dla każdej instancji.
źródło
Chociaż odpowiedź Tsuyoshi Ito obejmuje „główną” odpowiedź, chciałem dodać dwie subtelniejsze uwagi.
Nawet gdy rozwiązanie jest trudne do zweryfikowania, sprawdzenie rozwiązania jest nadal łatwe do sprawdzenia za pomocą krótkiego ciągu próbnego. Oznacza to, że dzięki rozszerzeniu rozwiązania o dodatkowe informacje można go łatwo sprawdzić; weryfikacja odbywa się zawsze w NP. Jednym ze sposobów na to jest to, że agent obliczający rozwiązanie może zapisać wszystkie losowe bity, których używają, a następnie weryfikator może użyć tego samego losowego ciągu, aby wykonać to samo obliczenie. (Przysłowie musi używać losowych bitów, w przeciwnym razie zawsze wypisuje tę samą odpowiedź, a weryfikator zawsze może łatwo sprawdzić, obliczając odpowiedź tą samą metodą.)
W przypadku komputerów kwantowych jest to bardzo otwarte pytanie. W przypadku klasycznych komputerów weryfikator zawsze może zrobić coś takiego, jak symulacja przysłowia i sprawdzenie, czy otrzymali tę samą odpowiedź. Jest całkiem możliwe, że w przypadku jakiegoś trudnego problemu istnieje algorytm kwantowy, który zapewnia jednolity rozkład wszystkich (wykładniczo wielu) rozwiązań, które są trudne do zweryfikowania. Nie możesz ponownie uruchomić tego przysłowia, ponieważ najprawdopodobniej za każdym razem otrzymasz inną odpowiedź.
Jako przykład podobnego problemu cierpi z tego powodu problem Deutsch-Jozsa. Jeśli wyrocznia nie jest funkcją zrównoważoną, to komputer kwantowy może szybko stwierdzić, że tak jest, ale nie ma krótkiego dowodu, który pozwoliłby klasycznemu komputerowi to zweryfikować. (Jest to tylko „podobny” problem, ponieważ nadal może być sprawdzony przez inny komputer kwantowy, a sprawdzanie odbywa się również w klasycznym BPP, nawet jeśli nie jest w P.)
źródło