Czy istnieją ustalone klasy złożoności z liczbami rzeczywistymi?


14

Niedawno student poprosił mnie o sprawdzenie dla nich dowodu twardości NP. Dokonali redukcji zgodnie z:

Zmniejszam ten problem P którym wiadomo, że jest NP-kompletny do mojego problemu P (z redukcją wielokrotnego wielokrotności jeden), więc P jest NP-twardy.

Moja odpowiedź brzmiała w zasadzie:

Ponieważ P ma instancje z wartościami z R , nie można go obliczyć Turinga, więc można pominąć redukcję.

Chociaż formalnie jest to prawda, nie sądzę, aby takie podejście było wnikliwe: z pewnością chcielibyśmy uchwycić „nieodłączną złożoność” problemu decyzyjnego (lub optymalizacji) o wartości rzeczywistej, ignorując ograniczenia, które napotykamy w radzeniu sobie z prawdziwymi liczby; badanie tych problemów jest na inny dzień.

Oczywiście nie zawsze jest to tak proste, jak powiedzenie: „dyskretna wersja podzbioru sumy jest NP-zupełna, więc wersja ciągła również jest„ NP-trudna ”. W tym przypadku redukcja jest łatwa, ale znane są przypadki łatwiejszej ciągłej wersji, np. Programowanie liniowe vs. całkowite.

Przyszło mi do głowy, że model RAM naturalnie rozciąga się na liczby rzeczywiste; niech każdy rejestr zapisze rzeczywistą liczbę i odpowiednio rozszerzy podstawowe operacje. Model jednolitego kosztu nadal ma sens - tak samo jak w przypadku dyskretnym - podczas gdy model logarytmiczny nie.

Moje pytanie sprowadza się zatem do: czy istnieją ustalone pojęcia złożoności problemów o wartości rzeczywistej? Jak odnoszą się one do „standardowych” klas dyskretnych?

Wyszukiwania w Google przynoszą pewne wyniki, np. To , ale nie mam sposobu, aby powiedzieć, co zostało ustalone i / lub przydatne, a co nie.


1
Możesz znaleźć ciekawe „Złożoność i prawdziwe obliczenia” amazon.com/Complexity-Real-Computation-Lenore-Blum/dp/…
Kurt Mueller

Wydaje mi się, że twoja odpowiedź dla twojego ucznia była nieuzasadniona z jednego prostego powodu: Niezależnie od tego, jakie obliczenia wykorzystujemy do obliczenia rzeczywistych wartości, można je również przeprowadzić przy użyciu rzeczywistych obliczeniowych . Nie wiem, czy jest to odpowiedź przydatna dla celu twojego ucznia, ale powinna przynajmniej wyeliminować brak argumentu Turinga. Niestety nie jestem wystarczająco ekspertem w tych kwestiach, aby dalej to rozwijać.
babou

@babou Jeśli chodzi o obliczalność, może to być rozsądne ograniczenie (ale takie, które trzeba by jednak podać!). Co jednak dzieje się ze złożonością?
Raphael

@Raphael Chodzi mi o to, że tak naprawdę nie jest to nawet ograniczenie i nie trzeba tego mówić. Jest to po prostu nieuniknione. Jedynymi faktami, które można wziąć pod uwagę w obliczeniach, są obliczenia rzeczywiste (teza Churcha-Turinga). Dobrą częścią jest najwyraźniej to, że nie zmienia żadnej odpowiedniej matematyki, z należytą starannością. Wykraczanie poza obliczalne realia jest, jak używanie wyższych poziomów hierarchii Turinga, fascynujące spekulacje, z prawdopodobnie niewielkim wpływem na wszystko, co rzeczywiste (gra słów nieunikniona).
babou

Odpowiedzi:


8

Tak. Tam są.

Istnieje inny model rzeczywistej pamięci RAM / BSS wymieniony w drugiej odpowiedzi. Model ma pewne problemy, a AFAIK nie prowadzi zbyt wielu badań. Prawdopodobnie nie jest to realistyczny model obliczeń .

Bardziej aktywne pojęcie rzeczywistej obliczalności to model obliczeń wyższego typu. Podstawową ideą jest zdefiniowanie złożoności dla funkcji wyższego typu, a następnie użycie funkcji wyższego typu do przedstawienia liczb rzeczywistych.

Badanie złożoności funkcji wyższego typu sięga co najmniej do [1]. Aby zapoznać się z ostatnimi pracami, sprawdź dokumenty Akitoshi Kawamura na temat złożoności prawdziwych operatorów.

Klasycznym odniesieniem do złożoności funkcji rzeczywistych jest książka Ker-I Ko [2]. Rozdział szósty, najnowsza książka Klause Weihrauch [3], omawia także złożoność obliczeń rzeczywistych (ale bardziej skupia się na obliczeniach niż na złożoności).

  • [1] Stephen Cook i Bruce Kapron, „Charakterystyka podstawowych możliwych funkcjonałów typu skończonego”, 1990.

  • [2] Ker-I Ko, „Złożoność obliczeniowa rzeczywistych funkcji”, 1991.

  • [3] Klaus Weihrauch, „Computable Analysis”, 2000.


Co sprawia, że ​​model funkcji wyższego typu jest bardziej realistyczny niż prawdziwy model RAM?
Raphael

1
@ Rafael, myślę, że wyjaśniłem to w powiązanym pytaniu. Jeśli chcesz więcej poprzez leczenie, jest ich kilka, jednym z nich jest rozdział 9 Weirauch. IIRC, kolejnym dobrym jest artykuł Tuckera i Stolenberga-Hansena.
Kaveh

1
Moim zdaniem model rzeczywistej pamięci RAM ma dwa główne problemy: z jednej strony brakuje mu pojęcia arbitralnej precyzji racjonalnego przybliżenia liczb rzeczywistych, co jest prawdopodobnie ich główną właściwością, z drugiej strony pozwala na porównanie liczb rzeczywistych, których AFAIK nikt nie zna jak robić w praktyce. W rezultacie niektóre rzeczywiste funkcje, które uważamy za wydajnie obliczalne w praktyce, nie są obliczalne w modelu, podczas gdy niektóre efektywnie obliczalne funkcje rzeczywiste w modelu wcale nie są obliczalne w praktyce.
Kaveh

@Kaveh Niepokoi mnie nieprecyzyjność całej dyskusji, pytania i odpowiedzi. Czy mówimy o tradycyjnych liczbach niepoliczalnych, czy o liczbach obliczalnych. Z twojego ostatniego komentarza mówisz o „rzeczywistych funkcjach, które w praktyce uważamy za wydajnie obliczalne”, więc sądzę, że chodzi o obliczenia rzeczywiste. Co tak naprawdę masz na myśli?
babou

8

Model, który opisujesz, jest znany jako model Blum-Shub-Smale (BSS) (także model Real RAM) i rzeczywiście służy do definiowania klas złożoności.

Interesującymi problemy w tej dziedzinie są klasy , N P R , i oczywiście pytanie, czy P R = N P R . Przez P R rozumiemy, że problem można rozstrzygać wielomianowo, N P R oznacza, że ​​problem jest wielomianowo weryfikowalny. Istnieje twardości / kompletności pytania o klasie N P R . Przykładem kompletnego problemu N P R jest problem Q P S , Kwadratowego Układu Wielomianowego, w którym dane wejściowe to prawdziwe wielomiany wPRNPRPRNPRPRNPRNPRNPRQPS zmiennych i P 1 , . . . , P nR [ x 1 , . . . , x n ] stopnia co najwyżej 2, a każdy wielomian ma co najwyżej 3 zmienne. Na pytanie, czy istnieje powszechne realnym rozwiązaniem R n , w taki sposób, p 1 ( ) , s 2 ( ) , . . . p n ( a ) = 0mp1,...,pn R[x1,...,xn]Rnp1(a),p2(a),...pn(a)=0. Jest to kompletny problem NPR

Co jednak ciekawsze, pojawiły się prace nad związkiem między (dowody probalistycznie sprawdzalne), nad rzeczywistością, tj. Klasą P C P R , oraz nad tym, jak odnosi się ona do modeli obliczeń algebraicznych. Model BSS przesuwa się do wszystkich N P w rzeczywistości. Jest to standard w literaturze i dziś wiemy, że N P R ma „przezroczyste długie dowody” i „przezroczyste krótkie dowody”. Przez „przezroczysty długich dowodów” dodaje się zakłada się: N P R znajduje się w p C P R ( P ° l rPCPPCPRNPNPRNPR . Istnieje również rozszerzenie, które mówi, że „Prawie (przybliżona) wersja krótka” jest również prawdziwa. Czy możemy ustabilizować dowód i wykryć usterki, sprawdzając znacznie mniej (rzeczywistych) komponentów niż n ? Prowadzi to do pytań o istnienie zer dla wielomianów jednowymiarowych zadanych przez program linii prostej. Przez „przezroczyste długie dowody” rozumiemy równieżPCPR(poly,O(1))n

  1. „przezroczysty” - tylko do odczytania,O(1)

  2. długi - wielobiegunowa liczba rzeczywistych składników.

Dowód jest związany z , a jednym ze sposobów spojrzenia na problemy o wartościach rzeczywistych jest to, w jaki sposób można je powiązać z sumą podzbiorów - nawet algorytmy aproksymacji problemów o wartościach rzeczywistych byłyby interesujące - jako optymalizacja - programowanie liniowe, o którym wiemy należy do klasy F P , ale tak, interesujące byłoby sprawdzenie, w jaki sposób przybliżenie może wpłynąć na kompletność / twardość w przypadku problemów N P R. Kolejnym pytaniem byłoby N P R = c o - N P R ? 3SATFPNPRNPR = co-NPR

Myśląc o klasie , zdefiniowano również klasy zliczające, które pozwalają na rozumowanie arytmetyki wielomianowej. Podczas # P jest klasa funkcji f określone na { 0 , 1 } N , dla których nie istnieje w czasie wielomianowym Turinga maszyny M i wielomian p z właściwością tego n N i x { 0 , 1 } n , f ( x )NPR#Pf{0,1} NMpnNx{0,1}nf(x)zlicza liczbę łańcuchów { 0 , 1 } p ( n ), które maszyna Turinga M akceptuje { x , y } . W przypadku rzeczywistości rozszerzamy tę ideę o maszyny addytywne BSS - maszyny BSS, które tylko dodają i mnożą (bez podziałów, bez odejmowania). W przypadku addytywnych maszyn BSS (węzły w obliczeniach pozwalają tylko na dodawanie i mnożenie) model dla # P staje się tym, w którym liczba jest większa niż wektory akceptowane przez maszyny addytywne BSS. Tak więc, klasa licząca to # P i d dy{0,1}p(n)M{x,y}#P#Padd klasa ta jest przydatna w badaniu liczb Bettiego, a także charakterystyki Eulera.


Model z prawdziwą pamięcią RAM (Random Access Machine) lub BSS (Blum-Shub-Smale) to model, o którym wspomniano wcześniej, jest powszechnie akceptowany jako norma dla rozumowania tych klas.
user3483902

Nie, to twierdzenie jest absolutnie fałszywe. Np. Spójrz na CCA-Net i zobacz, ilu naukowców korzysta z tego modelu.
Kaveh

Modele używane w klasach złożoności w poście wykorzystują model BSS, a wraz z upływem czasu mogą pojawiać się inne modele, czy te inne modele działają z klasami złożoności w poście? BTW, komentarz był wyjaśnieniem na temat modeli używanych w przedmiotowych klasach, do których post skierował, więc nie było wyjaśnienia, czy istnieją inne modele. Ponownie wyjaśnienie dotyczyło modeli używanych w klasach, nie było żadnych roszczeń.
user3483902
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.