W swojej książce Computational Complexity Papadimitriou definiuje FNP w następujący sposób:
Załóżmy, że jest językiem w NP . Propozycja według 9.1 jest rozstrzygalne wielomianowego razem wielomianowo zrównoważony stosunek R L takie, że dla wszystkich ciągów x : jest łańcuch Y z R L ( x , y ) , wtedy i tylko wtedy, gdy x ∈ l . Problem funkcji związany z L , oznaczony F L , jest następującym problemem obliczeniowym:
Biorąc pod uwagę , znajdź ciąg taki, że jeśli taki ciąg istnieje; jeśli taki ciąg nie istnieje, zwróć „nie”.
Klasa wszystkich problemów funkcji związanych jak wyżej z językiem w NP nazywa się FNP . FP jest podklasą powstałą, jeśli weźmiemy pod uwagę tylko problemy funkcji w FNP, które można rozwiązać w czasie wielomianowym.
(...)
(...), nazywamy problemem w FNP sumie jeśli każdy ciąg jest co najmniej jeden takie, że . Podklasę FNP zawierający wszystkie łączne problemy funkcyjnych oznacza się TFNP .
Na schemacie Venna w przeglądzie rozdziałów Papadimitriou sugeruje, że FP TFNP FNP .
Trudno mi zrozumieć, dlaczego dokładnie utrzymuje, że FP TFNP, ponieważ problemy w FP nie muszą być same w sobie całkowite.
Aby uzyskać lepsze zrozumienie, przeszukiwałem literaturę, aby znaleźć wodoodporną definicję FP , FNP i gatunków, bez powodzenia.
Moim bardzo (skromnym) zdaniem uważam, że niewiele (słusznie!) Materiałów dydaktycznych na te tematy.
W przypadku problemów decyzyjnych klasy są zestawami języków (tj. Zestawami ciągów znaków).
Jakie dokładnie są klasy dla problemów funkcji? Czy są to zbiory relacji, języków, ...? Co to jest solidna definicja?
źródło
Odpowiedzi:
Komentarz Emila Jerabka jest miłym podsumowaniem, ale chciałem zwrócić uwagę, że istnieją inne klasy z jaśniejszymi definicjami, które wychwytują mniej więcej tę samą koncepcję i wyjaśniają związek między tymi wszystkimi rzeczami.
[Ostrzeżenie: chociaż wydaje mi się, że mam odpowiednie definicje, niektóre z poniższych rzeczy odzwierciedlają moje osobiste preferencje - starałem się wyjaśnić, gdzie to było.]
W świecie deterministycznym klasa funkcji jest tylko zbiorem funkcji (w zwykłym matematycznym znaczeniu słowa „funkcja”, czyli mapa ). Czasami chcemy zezwolić na „funkcje częściowe”, których dane wyjściowe są „niezdefiniowane” dla niektórych danych wejściowych. (Odpowiednio funkcje zdefiniowane w podzbiorze Σ ∗ zamiast w całości).Σ∗→Σ∗ Σ∗
Niestety, istnieją dwa różne definicje dla pływających wokół, io ile mogę powiedzieć, że nie są równoważne (choć są one „moralnie” odpowiednik).FP
W niedeterministycznym świecie sprawy stają się trochę zabawne. Tam wygodnie jest zezwolić na „częściowe, wielowartościowe funkcje”. Naturalne byłoby również nazwanie takiej rzeczy relacją binarną , czyli podzbiorem . Ale z punktu widzenia złożoności często filozoficznie i mentalnie przydatne jest myślenie o tych rzeczach jako o „funkcjach niedeterministycznych”. Myślę, że wiele z tych definicji zostało wyjaśnionych przez następujące klasy (których definicje są całkowicie znormalizowane, jeśli nie bardzo dobrze znane):Σ∗×Σ∗
Aby nie musieć pisać rzeczy typu „Jeśli każdy funkcja (odpowiednio. ) problem ma rozwiązanie w (odpowiednio. zgodnie z powyższym definicja), a następnie ... ”w tym kontekście stosuje się definicję 2 z , czyli:FNP TFNP PF FP FP
Oto jak te różne definicje odnoszą się do siebie, (definicja 2, którą należy przyjąć, ponieważ jest w kontekście, w którym jest porównywana z ) jest równoważna do . (def 2) jest równoważne (def 1).FNP⊆FP FNP NPMV⊆cPF TFNP⊆FP NPMVt⊆cFP
źródło
Oprócz obszernej odpowiedzi Jozuego, chcę dodać następujące definicje z Elaine Ruch jej Automaty, Obliczalności i Złożoności .
Z tych definicji wynika, że . Mówi też krótko o problemach spoza .F N PFP⊆TFNP⊆FNP FNP
Dla mnie był to najbardziej satysfakcjonujący zasób, który składa się z jednej strony, którą znalazłem od dawna.
źródło