L (Komplexität)

Im Computerkomplexitätstheorie, L (auch bekannt als LaSace oder Dlogspace) ist der Komplexitätsklasse enthält Entscheidungsprobleme das kann durch a gelöst werden deterministische Turing -Maschine Verwendung einer logarithmisch Menge an beschreibbar Speicherraum.[1][2] Formell hat die Turing -Maschine zwei Bänder, von denen eines für den Eingang codiert und nur gelesen werden kann, während das andere Band logarithmische Größe hat, aber sowohl gelesen als auch geschrieben werden kann. Der logarithmische Raum reicht aus, um eine konstante Anzahl von zu halten Zeiger in den Eingang[1] und eine logarithmische Anzahl von booleschen Flags und viele grundlegende Logspace -Algorithmen verwenden den Speicher auf diese Weise.

Vollständige Probleme und logische Charakterisierung

Jedes nicht triviale Problem in L ist Komplett unter Log-Raum-Reduzierungen,[3] Es sind also schwächere Reduktionen erforderlich, um sinnvolle Vorstellungen von zu identifizieren L-Completess, das häufigste Wesen erste Bestellung Reduzierungen.

Ein 2004er Ergebnis von Omer Reingold zeigt, dass Ustcondas Problem, ob es einen Weg zwischen zwei Scheitelpunkten in einem gegebenen gibt ungerichtete Grafik, ist in L, Zeigt das L = Sl, da ustcon ist Sl-Komplett.[4]

Eine Folge davon ist eine einfache logische Charakterisierung von L: Es enthält genau jene Sprachen, die ausdrücklich sind Logik erster Ordnung mit einem zusätzlichen kommutativen Transitive Schließung Operator (in Diagramm theoretisch Begriffe drehen dies jeden verbundene Komponente in ein Clique). Dieses Ergebnis hat Anwendung auf Datenbank Abfragesprachen: Datenkomplexität einer Abfrage ist definiert als die Komplexität der Beantwortung einer festen Abfrage unter Berücksichtigung der Datengröße als variable Eingabe. Für diese Maßnahme Fragen dagegen relationale Datenbanken mit vollständigen Informationen (keine Vorstellung von Nulls) wie zum Beispiel in ausgedrückt in Relationale Algebra sind in L.

Verwandte Komplexitätsklassen

L ist eine Unterklasse von Nl, das ist die Klasse von Sprachen, die in entkennbarer in der Lage sind logarithmisch Raum auf a Nichtdeterministische Turing -Maschine. Ein Problem in Nl kann in ein Problem von verwandelt werden Erreichbarkeit in einem gerichteter Graph Darstellung von Zuständen und Zustandsübergängen der nicht deterministischen Maschine, und der logarithmische Raumgebunden Nl ist in der Komplexitätsklasse enthalten P von Problemen lösbar in deterministischer Polynomzeit.[5] Daher LNlP. Die Aufnahme von L hinein P kann auch direkter erwiesen werden O(Protokolln) Raum kann nicht mehr als 2 verwendenO(Protokolln)=nO(1) Zeit, weil dies die Gesamtzahl möglicher Konfigurationen ist.

L bezieht sich weiter auf die Klasse NC auf die folgende Weise:NC1LNlNC2. In Worten, angesichts eines parallelen Computers C mit einer Polynomzahl O(nk) von Prozessoren für einige Konstante k, jedes Problem, das gelöst werden kann C in O(Protokolln) Die Zeit ist in Lund jedes Problem in L kann gelöst werden O(Protokoll2 n) Zeit läuft C.

Wichtig Offene Probleme schließen, ob L=P,[2] und ob L=Nl.[6] Es ist nicht einmal bekannt, ob L=Np.[7]

Die verwandte Klasse von Funktionsprobleme ist Fl. Fl wird oft verwendet, um zu definieren Logspace -Reduktionen.

Zusätzliche Eigenschaften

L ist niedrig Da es für sich selbst simulieren kann, dass Oracle-Abfragen von Protokollflächen simulieren können (ungefähr "Funktionsaufrufe, die den Protokollraum verwenden") im Protokollraum und den gleichen Speicherplatz für jede Abfrage wiederverwenden.

Andere Verwendungen

Die Hauptidee von Logspace besteht darin, dass man eine Polynom-Magnitude-Nummer in Logspace speichern und sie verwenden kann, um Zeiger an eine Position des Eingangs zu erinnern.

Die Logspace -Klasse ist daher nützlich, um die Berechnung zu modellieren, bei der die Eingabe zu groß ist, um in die zu passen RAM eines Computers. Lang DNA Sequenzen und Datenbanken sind gute Beispiele für Probleme, bei denen nur ein konstanter Teil des Eingangs zu einem bestimmten Zeitpunkt im RAM stattfindet und bei denen wir Zeiger haben, um den nächsten Teil der Eingabe zu berechnen, um zu inspizieren, wodurch nur der logarithmische Speicher verwendet wird.

Siehe auch

Anmerkungen

  1. ^ a b SIPSER (1997), Definition 8.12, p. 295.
  2. ^ a b Garey & Johnson (1979), p. 177.
  3. ^ Sehen Garey & Johnson (1979), Satz 7.13 (Anspruch 2), p. 179.
  4. ^ Reingold, Omer (2005). Unumgesteuerte ST-Konnektivität im Protokollraum. STOC'05: Verfahren des 37. jährlichen ACM -Symposiums über die Theorie des Computers. ACM, New York. S. 376–385. doi:10.1145/1060590.1060647. HERR 2181639. ECCC TR04-094.
  5. ^ SIPSER (1997), Korollar 8.21, p. 299.
  6. ^ SIPSER (1997), p. 297; Garey & Johnson (1979), p. 180.
  7. ^ "Komplexitätstheorie - ist es möglich, dass $ l = np $?".

Verweise