Asystentowi kursu udało się napisać program, który (deterministycznie) generuje trudne pytania egzaminacyjne. Teraz chciałaby napisać program, który generuje odpowiednie odpowiedzi. Problem egzaminatora pyta, czy jest to zawsze możliwe; przez egzaminatora Hipoteza stwierdza, że zakładając, , to nie : wymyślanie problemów jest łatwiejsze niż wymyślanie swoich rozwiązań.
Bardziej formalnie, niech będzie deterministyczną Maszyną Turinga, która na wejściu generuje w czasie wielomianowym logiczną formułę wielkości . Chciałbym wiedzieć, czy dla wszystkich takich istnieje deterministyczna wielomianowa maszyna Turinga która na wejściu wyprowadza „ ”, jeśli ma zadowalające przypisanie, a „ ” w przeciwnym razie .
Zakładając , czy to pytanie zostało już zadane lub na które udzielono odpowiedzi? Jeśli nie zostanie udzielona odpowiedź, jakie dodatkowe założenia ( np. Funkcje jednokierunkowe?) Mogą wpłynąć na wynik? Z wyjątkiem któregokolwiek z powyższych, moja „hipoteza” jest taka, że TM odpowiadająca nie zawsze istnieje, ale jaka jest twoja intuicja?
Dzięki!
Odpowiedzi:
Pytanie, które zadajesz, jest równoważne jednemu NP = unarnemu P, który z kolei jest równoważny NE = E, poprzez wypełnienie.
Z tytułu może chciałeś zapytać, czy można wygenerować pary wejścia / wyjścia, tak że rozkład na wejściach jest „trudny”. Możliwość zrobienia tego leży gdzieś pomiędzy P NP a funkcjami jednokierunkowymi.≠
W ograniczonych modelach obliczeniowych wiadomo, że jest to możliwe. Np. Można wygenerować pary wejścia / wyjścia dla funkcji parzystości lub większości w AC 0 lub niższej. Zobacz Złożoność dystrybucji .0
źródło
Pytanie: Niech wygeneruje formuły. Czy { M ( 1 n ) ∣ n ∈ N ∧ M ( 1 n ) ∈ S A T } należy do P ?M.∈ P F { M( 1n) ∣ n ∈ N ∧ M( 1n)∈SZAT} P.
Założenie dotyczące generowania wzorów w czasie wielomianowym od oznacza, że wzór można podać zwięźle . Chcesz zdecydować o ich spełnieniu w czasie n O ( 1 ) .1n nO ( 1 )
Dany możemy znaleźć nw czasie wielomianowym w | φ | . Następnie φ można podać zwięźle wbitach lg n + O ( 1 ) przy użyciu M i n . Można używamy S U c c i n t S T algorytm E zdecydować, to w czasie 2 O ( lg n ) = N Oφ = M( 1n) n | φ | φ lgn + O ( 1 ) M. n s u c c i n t SA T. mi .2)O ( lgn )= nO ( 1 )
tak :⟹s u c c i n c t SA T.∈ E
Niech st biorąc pod uwagę obwód C w jedności , M oblicza ciąg zwięźle zakodowany przez C i zwraca wynik, jeśli jest to wzór, a ⊥ w przeciwnym razie.M.∈ P F do M. do ⊥
Załóżmy, że należą do P . Aby rozwiązać s U c c i n c t S A T opisali danej formuły w zwięzły jednoargumentowy a następnie korzystając z założenia do rozwiązania.{ M( 1n) ∣ n ∈ N ∧ M( 1n) ∈ SA T.} P. s u c c i n c t SA T.
Pytanie: Czy możemy wygenerować w parach instancji rozwiązanie czas wielomianowe dla tak, że instancja jest trudna?S.A T.
Musimy wyjaśnić, co rozumiemy przez to, że instancja jest trudna, ponieważ każda instancja sama w sobie jest (teoretycznie) łatwa, ponieważ można ją rozwiązać za pomocą algorytmu, który zawsze mówi tak, lub algorytmu, który zawsze mówi nie. Wydaje mi się, że próbowałeś obejść ten problem, nakładając jednolitość. Myśląc kryptograficznie, bez pewnych informacji, które nie zostaną ujawnione przeciwnikowi, nie ma sensu ukrywać reszty obliczeń, ponieważ przeciwnik może symulować protokół.
Załóżmy, że mamy algorytm czasu wielomianowego, który generuje pary instancja-rozwiązanie. Przeciwnik może użyć tego samego algorytmu, aby znaleźć odpowiedź, jeśli zna a znalezienie n nie jest trudne ze wzoru. Bardziej rozsądnym sposobem jest użycie losowo wybranego tajnego klucza, aby obejść ten problem i rozluźnić warunek twardości, aby być probabilistycznym: żaden algorytm wielomianowy nie może znaleźć rozwiązania z dużym prawdopodobieństwem (bez znajomości tajnego klucza).n n
Lub bardziej formalnie
Łatwo zauważyć, że taką funkcję można przekształcić w funkcję jednokierunkową, tak jakby łatwo było znaleźć z φ k, wówczas możemy znaleźć odpowiedź, obliczając A ( k ) 2 .k φk A ( k )2)
Z drugiej strony, niech będzie funkcją jednokierunkową. Możemy wyrazić f ( x ) = y jako obwód wielkości wielomianowej, ponieważ f można obliczać w czasie wielomianowym (i możemy przekształcić go w formułę wprowadzając nowe zmienne dla wszystkich bramek i lokalnie egzekwując warunek poprawności obliczeń jak w tłumaczeniu Tsiena). Rozważmy y jako parametr i oznaczmy wynikową formułę jako φ f , y ( x ) . Możemy zapytać, czy jest jakieś x, które spełnia φ f , y ( x )fa fa( x ) = y fa y φfa, y( x ) x φfa, y( x ) . Każdy algorytm wielomianowy rozwiązujący te instancje z prawdopodobieństwem nieistotnym zniszczy funkcję jednokierunkową f . Wykorzystuje to jednak fakt, że przeciwnik musi znaleźć świadka, a nie tylko fakt, że formuła jest zadowalająca lub nie (ale myślę, że możemy poradzić sobie z tym problemem, używając twardego f ).S.A T. fa fa
Zobacz także rozdziały 29 i 30 książki Jana Krajicka „Forcing with Random Variables”, 2011 na temat generatorów złożoności dowodu .
źródło