Manchmal ist es einfacher, wenn einem Details erspart bleiben. Vor allem dann, wenn das einen Einfluss auf die Größe des Datentyps hat, den man serialisieren möchte.

Ich bin ein wenig verwirrt. Eigentlich war ich überzeugt, mein Beweis passt schon so, aber ein wenig Unklarheit bleibt. Fangen wir also an:

Die Klassen \mathcal{RP}(\epsilon(n)) mit der Fehlerfunktion \epsilon:\mathbb{N}_0 \rightarrow \left[ 0,1\right] sind so definiert, dass L \in \mathcal{RP}(\epsilon(n)) genau dann gilt, wenn es einen randomisierten Algorithmus A gibt, so dass folgende Eigenschaften gelten:

  1. A macht keine fälschlicherweise positiven Aussagen.
  2. A macht fälschlicherweise negative Aussagen mit einer Wahrscheinlichkeit, die kleiner gleich \epsilon(\vert w \vert) ist, wobei w die Eingabe ist.
  3. Korrekte positive Aussagen macht A also mit einer Wahrscheinlichkeit größer gleich 1-\epsilon(\vert w \vert)
  4. Die Laufzeit von A ist unabhängig vom Zufallsband der entsprechenden Turingmaschine polynomiell beschränkt durch p(\vert w \vert), wobei p irgendein Polynom ist.

Definieren wir nun \mathcal{RP}^* als die Vereinigung aller möglichen Klassen \mathcal{RP}(\epsilon(n)), dann gilt \mathcal{RP}^*=\mathcal{NP}. Meinen Beweis lasse ich jetzt mal weg, ich erläutere nur mal mein Problem: Wenn ich es richtig verstehe, ist ja, wenn man Konstanten als Fehlerfunktionen verwendet, immer \mathcal{RP}(n) \subseteq \mathcal{RP}(m), n \leq m.

Erste Frage: Wenn ich nun \mathcal{RP}(1) betrachte, ist das dann nicht gleich dasselbe wie \mathcal{RP}^*? Müsste es doch, denn hier sind alle Fehlerwahrscheinlichkeiten erlaubt.

Jetzt das Hauptproblem: Betrachte ich \mathcal{RP}(1), dann sind dort also auch alle Sprachen enthalten, für die nur ein randomisierter Algorithmus existiert, der immer falsche negative Aussagen macht, also die Wörter der Sprache nie akzeptiert. Per Definition ist aber eine Sprache doch nur dann in \mathcal{NP}, wenn es einen Automaten gibt, der für jedes Wort der Sprache mindestens über eine nichtdeterministisch zu wählende Konfigurationsfolge verfügt, die zum Akzeptieren des Wortes führt. Werden aber immer falsche negative Aussagen gemacht, dann wird das Wort nie akzeptiert – wie kann also \mathcal{RP}^*=\mathcal{NP} gelten?

Wo liegt mein Fehler?

Update: Nachdem ich ein wenig nachgeforscht habe, vermute ich einfach, dass der Fehler letztlich in nem fehlerhaften Tafelan- oder abschrieb liegt: Macht man aus dem der Fehlerfunktion zugeordneten Intervall ein halboffenes (nämlich genau \left[ 0,1 \right[), dann ergibt alles wieder einen Sinn (nur dass die 1 dann da irgendwie nicht stehen kann).

Update 2: Der Fehler war tatsächlich der genannte. Offensichtlich auch nach Tafelanschrieb musste es (0,1) heißen (wobei ich nicht ganz sehe, warum die 0 nicht mit drin sein sollte). \mathcal{RP}(1) gibts dann wohl nur “per Definition” ;)

Auch lecker.

Lecker.

© 2010 P=NP! Suffusion WordPress theme by Sayontan Sinha