The complexity of downward closures of indexed languages
Dieser Beitrag löst die offene Frage bezüglich der Komplexität der Berechnung von Abwärtsabschlüssen für indizierte Sprachen, indem er für nichtdeterministische und deterministische Automaten jeweils dreifach und vierfach exponentielle obere Schranken sowie dazu passende untere Schranken etabliert, was durch eine neuartige Methode erreicht wird, die indizierte Grammatiken unter Verwendung semigruppenbasierter Wortzusammenfassungen in kontextfreie Grammatiken transformiert.
Originalarbeit lizenziert unter CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dies ist eine KI-generierte Erklärung des untenstehenden Papers. Sie wurde nicht von den Autoren verfasst oder gebilligt. Für technische Genauigkeit konsultieren Sie das Originalpaper. Vollständigen Haftungsausschluss lesen
Stellen Sie sich eine massive, unendlich komplexe Bibliothek von Geschichten vor. Manche Geschichten sind kurz, manche Millionen Seiten lang, und manche folgen Regeln, die so kompliziert sind, dass ein normaler Computer sie nicht einmal lesen kann. In der Welt der Informatik heißen diese Geschichten indizierte Sprachen. Sie sind wie eine überladene Version der standardmäßigen „kontextfreien" Sprachen (die Dinge wie die Syntax von Programmcode antreiben), besitzen aber eine zusätzliche Komplexitätsebene: einen „Stapel von Stapeln".
Stellen Sie sich einen normalen Stapel wie einen Stapel Teller vor. Sie können einen Teller hinzufügen oder einen wegnehmen. Eine indizierte Sprache ist wie ein Stapel ganzer Teller-Türme. Sie können einen ganzen Turm hinzufügen oder einen ganzen Turm wegnehmen. Dies macht das System unglaublich leistungsfähig, aber auch unglaublich schwer zu analysieren.
Das Problem: Der „absteigende Abschluss"
Die Autoren dieses Papiers interessieren sich für eine bestimmte Art, diese riesigen Bibliotheken zu vereinfachen. Sie nennen es den absteigenden Abschluss.
Stellen Sie sich einen sehr langen Satz vor: „Der schnelle braune Fuchs springt über den faulen Hund."
Der „absteigende Abschluss" dieses Satzes ist die Sammlung aller möglichen kürzeren Sätze, die Sie bilden können, indem Sie Buchstaben löschen, aber die Reihenfolge beibehalten.
- „Der Fuchs springt" ist im Abschluss enthalten.
- „Schneller Hund" ist im Abschluss enthalten.
- „Hund schneller" ist nicht enthalten (weil sich die Reihenfolge geändert hat).
Warum ist das wichtig? Weil die ursprüngliche Bibliothek unendlich und unmöglich zu verarbeiten sein könnte. Aber der „absteigende Abschluss" (die Menge aller möglichen Unter-Geschichten) ist immer regulär. In der Computersprache bedeutet dies, dass er durch eine einfache, endliche Maschine beschrieben werden kann (wie ein grundlegender Flussdiagramm). Es ist eine Möglichkeit, ein chaotisches, unendliches Durcheinander in eine ordentliche, handhabbare Liste von Mustern zu verwandeln.
Die große Frage: Wir wussten, dass wir diese komplexen indizierten Sprachen in einfache Listen (absteigende Abschlüsse) verwandeln konnten. Aber wir wussten nicht, wie groß diese Liste sein würde. Wäre es eine Liste in der Größe eines Telefonbuchs? Eine Liste in der Größe des gesamten Internets? Oder eine Liste, die so groß ist, dass es länger dauern würde, sie zu schreiben, als das Alter des Universums?
Die Entdeckung: Eine dreifach exponentielle Explosion
Die Autoren, Mandel, Mascle und Zetzsche, haben dieses Rätsel endlich gelöst. Sie bewiesen, dass die Maschine, die entsteht, wenn man eine indizierte Sprache in ihren einfachen absteigenden Abschluss verwandelt, dreifach exponentiell groß sein kann.
Lassen Sie uns aufschlüsseln, was „dreifach exponentiell" bedeutet, anhand einer Metapher:
- Linear: Wenn Sie 10 Gegenstände haben, benötigen Sie 10 Boxen.
- Exponentiell: Wenn Sie 10 Gegenstände haben, benötigen Sie (1.024) Boxen.
- Doppelt exponentiell: Wenn Sie 10 Gegenstände haben, benötigen Sie (über eine Million Milliarden) Boxen.
- Dreifach exponentiell: Wenn Sie 10 Gegenstände haben, benötigen Sie Boxen. Diese Zahl ist so gewaltig, dass sie fast unmöglich zu begreifen ist. Es ist wie der Versuch, jedes Sandkorn an jedem Strand der Erde zu zählen, und das dann für jedes Sandkorn an jedem Strand auf jedem Strand zu wiederholen...
Die Autoren zeigten, dass für indizierte Sprachen der „absteigende Abschluss"-Maschine ungefähr so riesig ist. Sie bewiesen auch, dass man nicht besser damit umgehen kann; die Maschine muss für bestimmte Sprachen so groß sein.
Wie sie es taten: Der „Zusammenfassungs"-Trick
Wie komprimiert man einen Stapel von Türmen in eine einfache Liste, ohne die Fähigkeit zu verlieren, Muster zu erkennen?
Die Autoren verwendeten einen cleveren Trick aus einem Bereich der Mathematik namens Semigruppentheorie. Stellen Sie sich vor, Sie lesen eine sehr lange Geschichte, aber es interessiert Sie nur die „Stimmung" der Geschichte, nicht jedes einzelne Wort.
- Wenn sich eine Geschichte ein bestimmtes Muster immer wiederholt (wie ein Refrain in einem Lied), müssen Sie nicht den ganzen Refrain jedes Mal aufschreiben. Sie können einfach „Refrain" schreiben und weitermachen.
- Die Autoren erstellten eine mathematische „Zusammenfassung" für die Stapel. Anstatt jeden einzelnen „Teller" oder „Turm" im Stapel zu verfolgen, ersetzten sie lange Sequenzen identischer Muster durch ein einziges Zusammenfassungssymbol.
Sie zeigten, dass man, obwohl die Stapel unendlich sind, sie durch diese Zusammenfassungen ersetzen kann. Sobald Sie das getan haben, wird die komplexe „indizierte Grammatik" zu einer einfacheren „kontextfreien Grammatik" (ein Standardtyp einer Computer-Grammatik). Dann verwendeten sie bestehende Methoden, um diese einfachere Grammatik in die endgültige Maschine für den absteigenden Abschluss zu verwandeln.
Das Ergebnis: Ein neuer Rekord
Vor diesem Papier wussten die Leute, dass das Problem lösbar war, aber sie kannten die Kosten nicht.
- Die obere Schranke: Sie bauten eine Methode, um die Maschine zu erstellen, und sie benötigt dreifach exponentielle Zeit und Speicherplatz.
- Die untere Schranke: Sie bauten auch eine spezifische, knifflige Sprache, die jede Maschine zwingt, mindestens dreifach exponentiell groß zu sein.
Das bedeutet, sie haben den genauen „Preis" für dieses Problem gefunden. Es ist nicht nur „schwierig"; es ist „dreifach exponentiell schwierig".
Sie wandten dies auch auf zwei weitere Fragen an:
- Vergleich: Wenn Sie zwei komplexe Sprachen haben, können Sie feststellen, ob ihre „absteigenden Abschlüsse" gleich sind? Die Antwort ist ja, aber es ist ein co-3-NEXP-vollständiges Problem. Auf Deutsch gesagt: Es ist ein Rätsel, das unglaublich schwer zu lösen ist, genau am Rand dessen, was Computer theoretisch in einem angemessenen Zeitrahmen bewältigen können.
- Pump-Schwelle: Sie bewiesen, dass das längste Wort, das Sie in einer endlichen indizierten Sprache generieren können, bevor es beginnt, Muster zu wiederholen, ebenfalls dreifach exponentiell ist.
Zusammenfassung
Stellen Sie sich indizierte Sprachen als ein riesiges, unendliches Labyrinth vor. Der „absteigende Abschluss" ist eine Karte aller möglichen Abkürzungen durch dieses Labyrinth.
- Altes Wissen: Wir wussten, dass eine Karte existiert.
- Neues Wissen: Wir wissen jetzt, dass für die komplexesten Labyrinthe die Karte so riesig ist, dass es einem Computer länger dauern würde, sie zu zeichnen, als das Universum existiert hat.
- Die Methode: Die Autoren fanden einen Weg, das Labyrinth durch Zusammenfassen der sich wiederholenden Teile auf eine handhabbare Größe zu schrumpfen, was es ihnen ermöglichte, die Karte zu zeichnen und genau zu beweisen, wie groß sie sein muss.
Sie haben nicht nur geraten; sie haben die Karte gebaut und bewiesen, dass keine kleinere Karte funktionieren könnte.
Ertrinken Sie in Arbeiten in Ihrem Fachgebiet?
Erhalten Sie tägliche Digests der neuesten Arbeiten passend zu Ihren Forschungsbegriffen — mit technischen Zusammenfassungen, in Ihrer Sprache.