<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Satz_von_Ladner</id>
	<title>Satz von Ladner - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Satz_von_Ladner"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Satz_von_Ladner&amp;action=history"/>
	<updated>2026-06-11T19:31:52Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Satz_von_Ladner&amp;diff=1872369&amp;oldid=prev</id>
		<title>imported&gt;Bithisarea: /* growthexperiments-addlink-summary-summary:3|0|0 */</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Satz_von_Ladner&amp;diff=1872369&amp;oldid=prev"/>
		<updated>2025-01-03T13:03:08Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;growthexperiments-addlink-summary-summary:3|0|0&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Der &amp;#039;&amp;#039;&amp;#039;Satz von Ladner&amp;#039;&amp;#039;&amp;#039; ist ein Satz aus der [[Theoretische Informatik|theoretischen Informatik]], der sich mit der Struktur der [[Komplexitätsklasse]] [[NP (Komplexitätsklasse)|NP]] in Bezug auf [[P (Komplexitätsklasse)|P]] befasst. Er wurde 1975 von [[Richard Ladner]] bewiesen.&lt;br /&gt;
&lt;br /&gt;
Die Klasse &amp;lt;math&amp;gt;\mathbf{NP}&amp;lt;/math&amp;gt; umfasst die Komplexitätsklasse &amp;lt;math&amp;gt;\mathbf{P}&amp;lt;/math&amp;gt; der in Polynomzeit deterministisch entscheidbaren [[Formale Sprache|Sprachen]]. Die Frage, ob &amp;lt;math&amp;gt;\mathbf{P}&amp;lt;/math&amp;gt; eine echte [[Teilmenge]] von &amp;lt;math&amp;gt;\mathbf{NP}&amp;lt;/math&amp;gt; ist, ist nach wie vor offen (siehe [[P-NP-Problem]]). Die [[NP-vollständig]]en Probleme sind die schwierigsten Probleme in &amp;lt;math&amp;gt;\mathbf{NP}&amp;lt;/math&amp;gt;. Die Frage, ob Probleme in &amp;lt;math&amp;gt;\mathbf{NP}&amp;lt;/math&amp;gt; existieren, die weder &amp;lt;math&amp;gt;\mathbf{NP}&amp;lt;/math&amp;gt;-vollständig sind, noch in &amp;lt;math&amp;gt;\mathbf{P}&amp;lt;/math&amp;gt; liegen, wird vom Satz von Ladner positiv beantwortet, falls &amp;lt;math&amp;gt;\mathbf{P}\ne\mathbf{NP}&amp;lt;/math&amp;gt; gilt. Die Menge dieser Probleme wird &amp;#039;&amp;#039;NP-intermediate&amp;#039;&amp;#039; oder &amp;lt;math&amp;gt;\mathbf{NPI}&amp;lt;/math&amp;gt; genannt.&lt;br /&gt;
&lt;br /&gt;
Der Satz lautet damit formal:&lt;br /&gt;
&amp;lt;math&amp;gt;\mathbf{P} \neq \mathbf{NP} \; \Rightarrow \; \mathbf{NPI} \neq \emptyset&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
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 &amp;lt;math&amp;gt;\mathbf{NPI}&amp;lt;/math&amp;gt; liegen (falls &amp;lt;math&amp;gt;\mathbf{P}\ne\mathbf{NP}&amp;lt;/math&amp;gt;). Es wird jedoch vermutet, dass das z.&amp;amp;nbsp;B. für die [[Primfaktorzerlegung]] gilt.&lt;br /&gt;
&lt;br /&gt;
Der Satz lässt sich verallgemeinern, sodass er unabhängig von der Annahme &amp;lt;math&amp;gt;\mathbf{P}\ne\mathbf{NP}&amp;lt;/math&amp;gt; gilt:&amp;lt;ref name=&amp;quot;Odifreddi&amp;quot;&amp;gt;Odifreddi 1999, S.&amp;amp;nbsp;191&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Unter Polynomialzeit-[[Reduktion (Theoretische Informatik)|Reduktion]] (sowohl Turingreduktion als auch many-one-Reduktion) gibt es keine minimale Klasse über &amp;lt;math&amp;gt;\mathbf{P}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Das heißt, wenn ein Problem &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; echt schwerer als die Probleme in &amp;lt;math&amp;gt;\mathbf{P}&amp;lt;/math&amp;gt; ist, dann gibt es Probleme &amp;lt;math&amp;gt;B&amp;lt;/math&amp;gt;, die ebenfalls nicht in &amp;lt;math&amp;gt;\mathbf{P}&amp;lt;/math&amp;gt; liegen, aber echt leichter als &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; sind.&lt;br /&gt;
&lt;br /&gt;
== Beweisskizze ==&lt;br /&gt;
Dieser Beweis, der auch die erste angegebene Verallgemeinerung abdeckt, folgt im Wesentlichen Odifreddi 1999&amp;lt;ref name=&amp;quot;Odifreddi&amp;quot;/&amp;gt; und basiert auf Ladners ursprünglichem Beweis. Ein alternativer Beweis, in dem [[Erfüllbarkeitsproblem der Aussagenlogik|SAT]] gepaddet wird, wird von Arora und Barak 2009 beschrieben.&lt;br /&gt;
&lt;br /&gt;
Sei eine entscheidbare Sprache &amp;lt;math&amp;gt;A \notin \mathbf{P}&amp;lt;/math&amp;gt; gegeben. Unter der Voraussetzung &amp;lt;math&amp;gt;\mathbf{P} \neq \mathbf{NP}&amp;lt;/math&amp;gt; kann man &amp;lt;math&amp;gt;A = \mathrm{SAT}&amp;lt;/math&amp;gt; wählen. Man definiert eine Sprache &amp;lt;math&amp;gt;B \notin \mathbf{P}&amp;lt;/math&amp;gt;, die auf &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; polynomzeit-reduzierbar ist, aber nicht in &amp;lt;math&amp;gt;\mathbf{P}&amp;lt;/math&amp;gt; liegt: &amp;lt;math&amp;gt;B \leq_\mathrm{P} A&amp;lt;/math&amp;gt; (unter many-one-Reduktion) und &amp;lt;math&amp;gt;A \not\le_\mathrm{P} B&amp;lt;/math&amp;gt; (unter Turing-Reduktion). Sei &amp;lt;math&amp;gt;T_1, T_2, \dotsc&amp;lt;/math&amp;gt; eine Aufzählung aller [[Turingmaschine]]n, wobei jede zusätzlich die Zahl der Schritte mitzählt und die &amp;lt;math&amp;gt;e&amp;lt;/math&amp;gt;-te Maschine auf Eingabe &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; spätestens nach Zeit &amp;lt;math&amp;gt;\left| x \right|^e&amp;lt;/math&amp;gt; hält. Sei &amp;lt;math&amp;gt;T_1^B, T_2^B, \dotsc&amp;lt;/math&amp;gt; eine Auflistung der auf die gleiche Weise zeitbeschränkten [[Orakel-Turingmaschine]]n mit Orakel &amp;lt;math&amp;gt;B&amp;lt;/math&amp;gt;. Dann gibt es für alle Maschinen &amp;lt;math&amp;gt;T_e, T_e^B&amp;lt;/math&amp;gt; zwei Anforderungen, die &amp;lt;math&amp;gt;B&amp;lt;/math&amp;gt; erfüllen muss:&lt;br /&gt;
*&amp;lt;math&amp;gt;R_{2e}:&amp;lt;/math&amp;gt; Die Sprache &amp;lt;math&amp;gt;B&amp;lt;/math&amp;gt; ist ungleich der Menge der Wörter, die &amp;lt;math&amp;gt;T_e&amp;lt;/math&amp;gt; in Zeit kleiner &amp;lt;math&amp;gt;n^e&amp;lt;/math&amp;gt; akzeptiert.&lt;br /&gt;
&lt;br /&gt;
:Formal: &amp;lt;math&amp;gt;B \neq \mathcal{L}(T_e)&amp;lt;/math&amp;gt; mit Zeitschranke &amp;lt;math&amp;gt;n^e&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;math&amp;gt;R_{2e+1}:&amp;lt;/math&amp;gt; Die Orakelmaschine &amp;lt;math&amp;gt;T_e&amp;lt;/math&amp;gt; beschreibt keine Turingreduktion von &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; auf &amp;lt;math&amp;gt;B&amp;lt;/math&amp;gt;, die in Zeit kleiner &amp;lt;math&amp;gt;n^e&amp;lt;/math&amp;gt; berechnet werden kann.&lt;br /&gt;
&lt;br /&gt;
:Formal: &amp;lt;math&amp;gt;A \neq \mathcal{L}(T_e^B)&amp;lt;/math&amp;gt; mit Zeitschranke &amp;lt;math&amp;gt;n^e&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Da jede Turingmaschine (etwa durch Hinzufügen redundanter Zustände) in der Aufzählung &amp;lt;math&amp;gt;T_1, T_2, \dotsc&amp;lt;/math&amp;gt; unendlich oft vorkommt, ist &amp;lt;math&amp;gt;B \notin \mathbf{P}&amp;lt;/math&amp;gt;, wenn es alle &amp;lt;math&amp;gt;R_{2e}&amp;lt;/math&amp;gt; erfüllt. Analog gibt es, wenn alle &amp;lt;math&amp;gt;R_{2e+1}&amp;lt;/math&amp;gt; gelten, keine Polynomzeitreduktion von &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; auf &amp;lt;math&amp;gt;B&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;B&amp;lt;/math&amp;gt; entsteht nun aus &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt;, indem hinreichend große Abschnitte aus &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; entfernt werden, sodass &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; nicht polynomiell auf &amp;lt;math&amp;gt;B&amp;lt;/math&amp;gt; reduziert werden kann, &amp;lt;math&amp;gt;B&amp;lt;/math&amp;gt; aber trotzdem noch nicht in P liegt. Zur Konstruktion wird eine polynomiell [[Berechenbarkeit|berechenbare]] Funktion &amp;lt;math&amp;gt;g&amp;lt;/math&amp;gt; definiert, die zu jedem Schritt &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; der Konstruktion angibt, welche Anforderung gerade verfolgt wird. Dann liegen genau die Elemente &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; in &amp;lt;math&amp;gt;B&amp;lt;/math&amp;gt;, sodass in Schritt &amp;lt;math&amp;gt;\left| x\right|&amp;lt;/math&amp;gt; eine Anforderung der Form &amp;lt;math&amp;gt;2e&amp;lt;/matH&amp;gt; verfolgt wurde: &amp;lt;math&amp;gt;B = \{x \in A \,\, |\,\,  g(\left| x \right|) \text{ gerade} \}&amp;lt;/math&amp;gt;. Somit lässt sich &amp;lt;math&amp;gt;B&amp;lt;/math&amp;gt; über folgende Funktion &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; polynomiell auf &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; many-one reduzieren:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;f(x)=\begin{cases}&lt;br /&gt;
  x, &amp;amp; \text{wenn }g(\left| x \right|) \text{ gerade}\\&lt;br /&gt;
  a, &amp;amp; \text{sonst}&lt;br /&gt;
\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
wobei &amp;lt;math&amp;gt;a\notin A&amp;lt;/math&amp;gt; ein beliebiges Element ist.&lt;br /&gt;
&lt;br /&gt;
Als erste Anforderung wird &amp;lt;math&amp;gt;g(0) = 0&amp;lt;/math&amp;gt; gewählt. Für &amp;lt;math&amp;gt;s &amp;gt; 0&amp;lt;/math&amp;gt; wird &amp;lt;math&amp;gt;g(s)&amp;lt;/math&amp;gt; induktiv so definiert, dass es in Polynomzeit berechnet werden kann. Man beginnt, nacheinander die Werte &amp;lt;math&amp;gt;g(0), g(1), \dots, g(s-1)&amp;lt;/math&amp;gt; zu berechnen und bricht nach &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt; Berechnungsschritten ab. &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; sei die größte Zahl, sodass &amp;lt;math&amp;gt;g(n)&amp;lt;/math&amp;gt; in &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt; Schritten bestimmen werden kann. Dann gibt es zwei Fälle:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;g(n) = 2e&amp;lt;/math&amp;gt;: Man sucht ein Wort &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; mit &amp;lt;math&amp;gt;B(z) \neq T_e(z)&amp;lt;/math&amp;gt;. Da &amp;lt;math&amp;gt;g&amp;lt;/math&amp;gt; polynomiell in &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt; berechenbar sein soll, werden nur die ersten &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt; Berechnungsschritte der Suche ausgeführt.&lt;br /&gt;
** Wird dabei ein &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; gefunden, ist &amp;lt;math&amp;gt;R_{2e}&amp;lt;/math&amp;gt; erfüllt. Dann ist &amp;lt;math&amp;gt;g(s) = g(n)+1 = 2e+1&amp;lt;/math&amp;gt;.&lt;br /&gt;
** Sonst ist nicht bekannt, ob &amp;lt;math&amp;gt;R_{2e}&amp;lt;/math&amp;gt; schon erfüllt wurde und &amp;lt;math&amp;gt;g(s) = g(n)&amp;lt;/math&amp;gt;, um weiterhin zu versuchen, &amp;lt;math&amp;gt;R_{2e}&amp;lt;/math&amp;gt; zu erfüllen.&lt;br /&gt;
* &amp;lt;math&amp;gt;g(n) = 2e+1&amp;lt;/math&amp;gt;: Man sucht ein Wort &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt; mit &amp;lt;math&amp;gt;A(z) \neq T_e^B(z)&amp;lt;/math&amp;gt;. Analog zu &amp;lt;math&amp;gt;2e&amp;lt;/math&amp;gt; werden nur &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt; Schritte durchgeführt.&lt;br /&gt;
** Findet man ein &amp;lt;math&amp;gt;z&amp;lt;/math&amp;gt;, ist &amp;lt;math&amp;gt;R_{2e+1}&amp;lt;/math&amp;gt; erfüllt und &amp;lt;math&amp;gt;g(s) = g(n)+1 = 2(e+1)&amp;lt;/math&amp;gt;.&lt;br /&gt;
** Sonst ist nicht bekannt, ob &amp;lt;math&amp;gt;R_{2e+1}&amp;lt;/math&amp;gt; schon erfüllt wurde und &amp;lt;math&amp;gt;g(s) = g(n)&amp;lt;/math&amp;gt;, um weiterhin zu versuchen, &amp;lt;math&amp;gt;R_{2e+1}&amp;lt;/math&amp;gt; zu erfüllen.&lt;br /&gt;
&lt;br /&gt;
Zu zeigen ist nun, dass alle Anforderungen erfüllt werden. Dazu genügt es, zu zeigen, dass &amp;lt;math&amp;gt;g&amp;lt;/math&amp;gt; [[surjektiv]] ist. Angenommen, es gibt ein &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; mit &amp;lt;math&amp;gt;g(n) = g(m)&amp;lt;/math&amp;gt; für alle &amp;lt;math&amp;gt;m &amp;gt; n&amp;lt;/math&amp;gt;. Ist &amp;lt;math&amp;gt;g(n) = R_{2e}&amp;lt;/math&amp;gt;, wäre &amp;lt;math&amp;gt;B&amp;lt;/math&amp;gt; polynomiell [[entscheidbar]], obwohl es sich nur auf endlich vielen Wörtern von &amp;lt;math&amp;gt;A \notin \mathbf{P}&amp;lt;/math&amp;gt; unterscheidet. Ist &amp;lt;math&amp;gt;g(n) = R_{2e+1}&amp;lt;/math&amp;gt;, wäre &amp;lt;math&amp;gt;B&amp;lt;/math&amp;gt; endlich. Da &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; aber nicht in &amp;lt;math&amp;gt;\mathbf{P}&amp;lt;/math&amp;gt; liegt, lässt es sich nicht auf eine endliche Sprache reduzieren.&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
* {{Literatur|Autor = Sanjeev Arora und Boaz Barak|Titel=Computational Complexity. A Modern Approach|Verlag=Cambridge University Press |Ort=Cambridge|Jahr=2009|ISBN=978-0-521-42426-4}}&lt;br /&gt;
* Ladner, Richard: &amp;#039;&amp;#039;On the Structure of Polynomial Time Reducibility&amp;#039;&amp;#039;. Journal of the ACM (JACM) 22 (1): 155–171, 1975.&lt;br /&gt;
* [[Piergiorgio Odifreddi]]: &amp;#039;&amp;#039;Classical Recursion Theory, Volume II&amp;#039;&amp;#039;. Elsevier, 1999. ISBN 0-444-50205-X&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
*Lance Fortnow: &amp;#039;&amp;#039;[http://oldblog.computationalcomplexity.org/media/ladner.pdf Two Proofs of Ladner&amp;#039;s Theorem] (PDF-Datei; 72&amp;amp;nbsp;kB)&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Komplexitätstheorie]]&lt;br /&gt;
[[Kategorie:Satz (Mathematik)|Ladner]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Bithisarea</name></author>
	</entry>
</feed>