Satz von Ladner

Der Satz von Ladner ist ein Satz aus der theoretischen Informatik, der sich mit der Struktur der Komplexitätsklasse NP in Bezug auf P befasst. Er wurde 1975 von Richard Ladner bewiesen.

Die Klasse N P {\displaystyle \mathbf {NP} } umfasst die Komplexitätsklasse P {\displaystyle \mathbf {P} } der in Polynomzeit deterministisch entscheidbaren Sprachen. Die Frage, ob P {\displaystyle \mathbf {P} } eine echte Teilmenge von N P {\displaystyle \mathbf {NP} } ist, ist nach wie vor offen (siehe P-NP-Problem). Die NP-vollständigen Probleme sind die schwierigsten Probleme in N P {\displaystyle \mathbf {NP} } . Die Frage, ob Probleme in N P {\displaystyle \mathbf {NP} } existieren, die weder N P {\displaystyle \mathbf {NP} } -vollständig sind, noch in P {\displaystyle \mathbf {P} } liegen, wird vom Satz von Ladner positiv beantwortet, falls P N P {\displaystyle \mathbf {P} \neq \mathbf {NP} } gilt. Die Menge dieser Probleme wird NP-intermediate oder N P I {\displaystyle \mathbf {NPI} } genannt.

Der Satz lautet damit formal: P N P N P I {\displaystyle \mathbf {P} \neq \mathbf {NP} \;\Rightarrow \;\mathbf {NPI} \neq \emptyset } .

Für den Beweis des Satzes wurde von Ladner ein künstliches Problem generiert, welches keinerlei praktische Relevanz besitzt. Es ist nicht bekannt, ob auch natürliche Probleme in N P I {\displaystyle \mathbf {NPI} } liegen (falls P N P {\displaystyle \mathbf {P} \neq \mathbf {NP} } ). Es wird jedoch vermutet, dass das z. B. für die Primfaktorzerlegung gilt.

Der Satz lässt sich verallgemeinern, sodass er unabhängig von der Annahme P N P {\displaystyle \mathbf {P} \neq \mathbf {NP} } gilt:[1]

Unter Polynomialzeit-Reduktion (sowohl Turingreduktion als auch many-one-Reduktion) gibt es keine minimale Klasse über P {\displaystyle \mathbf {P} } .

Das heißt, wenn ein Problem A {\displaystyle A} echt schwerer als die Probleme in P {\displaystyle \mathbf {P} } ist, dann gibt es Probleme B {\displaystyle B} , die ebenfalls nicht in P {\displaystyle \mathbf {P} } liegen, aber echt leichter als A {\displaystyle A} sind.

Beweisskizze

Dieser Beweis, der auch die erste angegebene Verallgemeinerung abdeckt, folgt im Wesentlichen Odifreddi 1999[1] und basiert auf Ladners ursprünglichem Beweis. Ein alternativer Beweis, in dem SAT gepaddet wird, wird von Arora und Barak 2009 beschrieben.

Sei eine entscheidbare Sprache A P {\displaystyle A\notin \mathbf {P} } gegeben. Unter der Voraussetzung P N P {\displaystyle \mathbf {P} \neq \mathbf {NP} } kann man A = S A T {\displaystyle A=\mathrm {SAT} } wählen. Man definiert eine Sprache B P {\displaystyle B\notin \mathbf {P} } , die auf A {\displaystyle A} polynomzeit-reduzierbar ist, aber nicht in P {\displaystyle \mathbf {P} } liegt: B P A {\displaystyle B\leq _{\mathrm {P} }A} (unter many-one-Reduktion) und A P B {\displaystyle A\not \leq _{\mathrm {P} }B} (unter Turing-Reduktion). Sei T 1 , T 2 , {\displaystyle T_{1},T_{2},\dotsc } eine Aufzählung aller Turingmaschinen, wobei jede zusätzlich die Zahl der Schritte mitzählt und die e {\displaystyle e} -te Maschine auf Eingabe x {\displaystyle x} spätestens nach Zeit | x | e {\displaystyle \left|x\right|^{e}} hält. Sei T 1 B , T 2 B , {\displaystyle T_{1}^{B},T_{2}^{B},\dotsc } eine Auflistung der auf die gleiche Weise zeitbeschränkten Orakel-Turingmaschinen mit Orakel B {\displaystyle B} . Dann gibt es für alle Maschinen T e , T e B {\displaystyle T_{e},T_{e}^{B}} zwei Anforderungen, die B {\displaystyle B} erfüllen muss:

  • R 2 e : {\displaystyle R_{2e}:} Die Sprache B {\displaystyle B} ist ungleich der Menge der Wörter, die T e {\displaystyle T_{e}} in Zeit kleiner n e {\displaystyle n^{e}} akzeptiert.
Formal: B L ( T e ) {\displaystyle B\neq {\mathcal {L}}(T_{e})} mit Zeitschranke n e {\displaystyle n^{e}}
  • R 2 e + 1 : {\displaystyle R_{2e+1}:} Die Orakelmaschine T e {\displaystyle T_{e}} beschreibt keine Turingreduktion von A {\displaystyle A} auf B {\displaystyle B} , die in Zeit kleiner n e {\displaystyle n^{e}} berechnet werden kann.
Formal: A L ( T e B ) {\displaystyle A\neq {\mathcal {L}}(T_{e}^{B})} mit Zeitschranke n e {\displaystyle n^{e}}

Da jede Turingmaschine (etwa durch Hinzufügen redundanter Zustände) in der Aufzählung T 1 , T 2 , {\displaystyle T_{1},T_{2},\dotsc } unendlich oft vorkommt, ist B P {\displaystyle B\notin \mathbf {P} } , wenn es alle R 2 e {\displaystyle R_{2e}} erfüllt. Analog gibt es, wenn alle R 2 e + 1 {\displaystyle R_{2e+1}} gelten, keine Polynomzeitreduktion von A {\displaystyle A} auf B {\displaystyle B} .

B {\displaystyle B} entsteht nun aus A {\displaystyle A} , indem hinreichend große Abschnitte aus A {\displaystyle A} entfernt werden, sodass A {\displaystyle A} nicht polynomiell auf B {\displaystyle B} reduziert werden kann, B {\displaystyle B} aber trotzdem noch nicht in P liegt. Zur Konstruktion wird eine polynomiell berechenbare Funktion g {\displaystyle g} definiert, die zu jedem Schritt x {\displaystyle x} der Konstruktion angibt, welche Anforderung gerade verfolgt wird. Dann liegen genau die Elemente x {\displaystyle x} in B {\displaystyle B} , sodass in Schritt | x | {\displaystyle \left|x\right|} eine Anforderung der Form 2 e {\displaystyle 2e} verfolgt wurde: B = { x A | g ( | x | )  gerade } {\displaystyle B=\{x\in A\,\,|\,\,g(\left|x\right|){\text{ gerade}}\}} . Somit lässt sich B {\displaystyle B} über folgende Funktion f {\displaystyle f} polynomiell auf A {\displaystyle A} many-one reduzieren:

f ( x ) = { x , wenn  g ( | x | )  gerade a , sonst {\displaystyle f(x)={\begin{cases}x,&{\text{wenn }}g(\left|x\right|){\text{ gerade}}\\a,&{\text{sonst}}\end{cases}}}

wobei a A {\displaystyle a\notin A} ein beliebiges Element ist.

Als erste Anforderung wird g ( 0 ) = 0 {\displaystyle g(0)=0} gewählt. Für s > 0 {\displaystyle s>0} wird g ( s ) {\displaystyle g(s)} induktiv so definiert, dass es in Polynomzeit berechnet werden kann. Man beginnt, nacheinander die Werte g ( 0 ) , g ( 1 ) , , g ( s 1 ) {\displaystyle g(0),g(1),\dots ,g(s-1)} zu berechnen und bricht nach s {\displaystyle s} Berechnungsschritten ab. n {\displaystyle n} sei die größte Zahl, sodass g ( n ) {\displaystyle g(n)} in s {\displaystyle s} Schritten bestimmen werden kann. Dann gibt es zwei Fälle:

  • g ( n ) = 2 e {\displaystyle g(n)=2e} : Man sucht ein Wort z {\displaystyle z} mit B ( z ) T e ( z ) {\displaystyle B(z)\neq T_{e}(z)} . Da g {\displaystyle g} polynomiell in s {\displaystyle s} berechenbar sein soll, werden nur die ersten s {\displaystyle s} Berechnungsschritte der Suche ausgeführt.
    • Wird dabei ein z {\displaystyle z} gefunden, ist R 2 e {\displaystyle R_{2e}} erfüllt. Dann ist g ( s ) = g ( n ) + 1 = 2 e + 1 {\displaystyle g(s)=g(n)+1=2e+1} .
    • Sonst ist nicht bekannt, ob R 2 e {\displaystyle R_{2e}} schon erfüllt wurde und g ( s ) = g ( n ) {\displaystyle g(s)=g(n)} , um weiterhin zu versuchen, R 2 e {\displaystyle R_{2e}} zu erfüllen.
  • g ( n ) = 2 e + 1 {\displaystyle g(n)=2e+1} : Man sucht ein Wort z {\displaystyle z} mit A ( z ) T e B ( z ) {\displaystyle A(z)\neq T_{e}^{B}(z)} . Analog zu 2 e {\displaystyle 2e} werden nur s {\displaystyle s} Schritte durchgeführt.
    • Findet man ein z {\displaystyle z} , ist R 2 e + 1 {\displaystyle R_{2e+1}} erfüllt und g ( s ) = g ( n ) + 1 = 2 ( e + 1 ) {\displaystyle g(s)=g(n)+1=2(e+1)} .
    • Sonst ist nicht bekannt, ob R 2 e + 1 {\displaystyle R_{2e+1}} schon erfüllt wurde und g ( s ) = g ( n ) {\displaystyle g(s)=g(n)} , um weiterhin zu versuchen, R 2 e + 1 {\displaystyle R_{2e+1}} zu erfüllen.

Zu zeigen ist nun, dass alle Anforderungen erfüllt werden. Dazu genügt es, zu zeigen, dass g {\displaystyle g} surjektiv ist. Angenommen, es gibt ein n {\displaystyle n} mit g ( n ) = g ( m ) {\displaystyle g(n)=g(m)} für alle m > n {\displaystyle m>n} . Ist g ( n ) = R 2 e {\displaystyle g(n)=R_{2e}} , wäre B {\displaystyle B} polynomiell entscheidbar, obwohl es sich nur auf endlich vielen Wörtern von A P {\displaystyle A\notin \mathbf {P} } unterscheidet. Ist g ( n ) = R 2 e + 1 {\displaystyle g(n)=R_{2e+1}} , wäre B {\displaystyle B} endlich. Da A {\displaystyle A} aber nicht in P {\displaystyle \mathbf {P} } liegt, lässt es sich nicht auf eine endliche Sprache reduzieren.

Literatur

  • Sanjeev Arora und Boaz Barak: Computational Complexity. A Modern Approach. Cambridge University Press, Cambridge 2009, ISBN 978-0-521-42426-4. 
  • Ladner, Richard: On the Structure of Polynomial Time Reducibility. Journal of the ACM (JACM) 22 (1): 155–171, 1975.
  • Piergiorgio Odifreddi: Classical Recursion Theory, Volume II. Elsevier, 1999. ISBN 0-444-50205-X
  • Lance Fortnow: Two Proofs of Ladner's Theorem (PDF-Datei; 72 kB)

Einzelnachweise

  1. a b Odifreddi 1999, S. 191