Eine formale Sprache über ein Alphabet ist eine Teilmenge von , die eine Reihe von Worten über dieses Alphabet ist. Zwei formale Sprachen und sind gleich, wenn die entsprechenden Mengen als Teilmengen von weitgehend gleich sind . Man kann Sprachen in der Komplexitätstheorie verwenden, um das Konzept eines "Problems" zu formalisieren. Man könnte sich beschweren, dass "im Allgemeinen" die Extensionsgleichheit unentscheidbar ist, aber ich glaube, dass dies falsch wäre.
Ich denke seit einiger Zeit über das folgende Problem nach: Zwei Sprachen und über Alphabeten und (wobei , , und sind unterschiedliche Buchstaben) können niemals gleich sein, selbst wenn sie "genau" das gleiche "Problem" beschreiben. Aber sie sollten isomorph sein, wenn sie wirklich "genau" das gleiche "Problem" beschreiben. Was ich gerne wissen würde, sind mögliche Vorstellungen von Isomorphismus, die für die Komplexitätstheorie geeignet sind. Anfangs dachte ich, ein rechnerisch schwacher "Übersetzer" wie eine Finite-State-Maschine könnte verwendet werden, um die erlaubten Isomorphismen zu definieren, aber dies scheint bereits für triviale syntaktische Übersetzungen zwischen äquivalenten logischen Formeln zusammenzubrechen. (Siehe zum Beispiel diese Tabelle mit der syntaktischen Definition des dualen in der linearen Logik .)
Heute hatte ich folgende Idee: Eine Definition der Sprache, die einem bestimmten "Entscheidungsproblem" entspricht, besteht oft aus zwei Teilen: (1) einer Codierung der zulässigen Probleminstanzen als endliche Zeichenfolgen und (2) einer Definition der " akzeptierte "Probleminstanzen, die zur Sprache gehören. Wenn für die Überprüfung, ob eine bestimmte endliche Zeichenfolge eine Codierung einer zulässigen Probleminstanz ist, bereits eine rechenintensivere Maschine als eine endliche Zustandsmaschine erforderlich ist, sollte diese stärkere Maschine auch zur Definition der zulässigen Isomorphismen verwendet werden.
Fragen: Hat diese Argumentation eine Chance, mein Problem zu "lösen"? Wurde mein Problem bereits gelöst, sodass ich nur die richtigen Referenzen lesen muss? Ist mein Problem selbst sinnvoll oder ist dies genauso falsch wie die Beschwerde über die Unentscheidbarkeit der Extensionsgleichheit?
Bearbeiten (noch keine Antwort) Ich habe festgestellt, dass "(1) Eine Codierung der zulässigen Probleminstanzen als endliche Zeichenfolgen" bereits die (versteckte) Annahme einer normalisierten Eingabe enthält. Ohne diese Annahme könnten zwei verschiedene endliche Zeichenfolgen derselben Probleminstanz entsprechen. Anstatt zu prüfen, ob eine bestimmte endliche Zeichenfolge gültig ist, führt die Überprüfung möglicherweise zu einer normalisierten Eingabe (und ordnet ungültige Zeichenfolgen einer speziellen Zeichenfolge zu).
Diese Einstellung hat den Vorteil, dass die Maschine, die die Überprüfung / Normalisierung durchführt, bereits mit Mitteln ausgestattet ist, um endliche Zeichenfolgen in andere endliche Zeichenfolgen umzuwandeln. Die zulässige Maschine (Komplexitätsklasse) für diese Aufgabe könnte Teil der Problemdefinition sein, und die (Iso-) Morphismen würden dieselbe Maschine (Komplexitätsklasse) verwenden. (Der Vorschlag von "Poly-Time Many-One Reductions" aus Raphaels Kommentar wäre dann tatsächlich eine Möglichkeit für Probleme in )
Ein Nachteil ist, dass diese Art der Spezifikation möglicherweise nur für deterministische Maschinen geeignet ist. Nicht deterministische Maschinen erfordern möglicherweise flexiblere Möglichkeiten, um anzugeben / zu entscheiden, ob zwei Eingabezeichenfolgen derselben Probleminstanz entsprechen.
quelle
Antworten:
Die Theorie der abstrakten Sprachfamilie ist relevant. Beispielsweise führen die durch Wandler mit endlichen Zuständen definierten Morphismen zur Kegelfamilie . Eilenbergs kurzer ICM-Vortrag von 1970 erklärt diesen Rahmen sehr gut, siehe auch Kapitel 11 "Schließungseigenschaften von Sprachfamilien" aus Einführung in die Automatentheorie, Sprachen und Berechnung (1. Aufl.) Von J. Hopcroft und J. Ullman von 1979. Jedoch In diesen Rahmen passen nur nichtdeterministische Sprachen 1 . Am Ende half mir das Buch Theory of Codes von J. Berstel und D. Perrin aus dem Jahr 1985, vernünftige Lösungen für mein Problem zu finden. Codes und Automatenvon J. Berstel, D. Perrin und C. Reutenauer aus dem Jahr 2009 ist eine umfassende Überarbeitung dieses Buches mit einer viel breiteren Berichterstattung.
Die Annahme, dass es eine korrekte Kategorie für die Modellierung von Isomorphismen zwischen Sprachen gibt, um "das Konzept eines Problems zu formalisieren", ist falsch. Es gibt viele verschiedene Kategorien, die im Kontext formaler Sprachen interessant sein können.
Hier sind drei interessante Kategorien, die sich auf viele Reduzierungen beziehen und als total , partiell und relational bezeichnet werden . Die Objekte der Kategorien sind Paare eines endlichen Alphabets Σ und einer Sprache L ⊂ Σ ∗ von Wörtern über Σ . Für insgesamt die morphisms zwischen dem Quellobjekt ( Σ , L ) und das Zielobjekt ( Σ ' , L ' ) sind die Gesamtfunktionen f( Σ , L ) Σ L ⊂ Σ∗ Σ ( Σ , L ) ( Σ', L.') mit L = f - 1 ( L ' ) . FürTeilsind die morphisms Teilfunktionen f : Σ * → Σ ' * mit L = f - 1 ( L ' ) ,dem zwei Teilfunktionen f , g sind gleich betrachtet (wie morphisms)wenn f ( x ) = g ( x )f: Σ∗→ Σ' ∗ L = f- 1( L.') f: Σ∗→ Σ' ∗ L = f- 1( L.') f G f( x ) = g( x ) für alle . Für relational sind die Beziehungen morphisms R ⊂ Σ * × Σ ' * mit L = R - 1 ( L ' ) , und zwei beliebigen morphisms zwischen der gleichen Quelle und dem Ziel werden als gleich sein. Der Satz zulässiger Funktionen oder Beziehungen kann auf verschiedene einfache "Übersetzer" beschränkt werden, um Kategorien mit interessanten Isomorphismen zu erhalten.x ∈ L. R ⊂ Σ∗× Σ' ∗ L = R.- 1( L.')
Die oben beschriebene sehr einfache Gesamtkategorie löst dieses Problem.
Das Problem wird interessanter, wenn "genau das gleiche" durch "fast das gleiche für die meisten praktischen Zwecke" ersetzt wird: Sei eine Sprache über Σ = { U , C , A , G } und sei L ' die Sprache über Σ ' = { 0 , 1 }, erhalten aus L durch Substitution U → 00 , C → 01 , A → 10 und G → 11L. Σ = { U., C., A , G } L.' Σ'= { 0 , 1 } L. U.→ 00 C.→ 01 A → 10 G → 11 . Beachten Sie, dass in jeder Gesamt Kategorie, und L ' für nicht isomorph sind L = Σ * . Das gleiche würde für wahr sein Teilkategorien, wenn der Teil „ wo zwei Teilfunktionen f , g sind gleich betrachtet (wie morphisms) , wenn f ( x ) = g ( x ) für alle x ∈ L “ wurden von der Definition weggelassen.L. L.' L = Σ∗ f G f( x ) = g( x ) x ∈ L.
Die oben beschriebene ganz natürliche Teilkategorie reicht aus, um und L ' isomorph zu machen. Es wäre schön, eine grundlegendere (dh restriktivere) Kategorie zu haben, die sie isomorph macht. Die folgenden (sukzessive restriktiveren) Kategorien erscheinen mir vernünftig:L. L.'
Noch bevor ich etwas über Kategorietheorie gelernt habe, habe ich mich gefragt, ob es "treuere" Wege gibt, das Konzept eines "Problems" zu formalisieren. Nachdem ich mich mit der Kategorietheorie vertraut gemacht hatte, versuchte ich manchmal, mögliche Lösungen zu finden, gab aber beim ersten Stolperstein immer schnell auf (weil es sowieso niemanden interessiert). Ich weiß, dass Yuri Gurevich einige verwandte Fragen gelöst hat, aber seine Lösungen sind praktisch anwendbar, während ich mehr nach etwas Schönem und Abstraktem suchte, unabhängig von der praktischen Anwendbarkeit.
Die meiste Zeit meiner Freizeit in den letzten drei Wochen habe ich damit verbracht, endlich Fortschritte bei diesem Problem zu machen. Meistens wurde die Zeit damit verbracht, nervige Probleme in den möglichen Lösungen zu finden, die ich mir vorgestellt hatte. Das Gefühl, Fortschritte zu machen, entstand aus dem Lesen (alter) Bücher und Artikel und dem Erlernen vieler grundlegender Konzepte und Fakten über Wandler und rationale Mengen. Schließlich lernte ich die Begriffe eines Präfixcodes und eines Bifix-Codes (früher Biprefix-Code in Berstels Buch), wodurch ich die oben beschriebenen vernünftigen 3 Kategorien finden konnte.
Es kann schwierig sein, diese (codebezogenen) Kategorien einzuschätzen, ohne einige Probleme der offensichtlicheren Kategorien gesehen zu haben. Ein allgemeines Problem ist, dass das Schließen unter Komposition es schwierig machen kann, eine schön eingeschränkte Klasse von Teilfunktionen zu definieren. Ein weiteres Problem hängt mit der Tatsache zusammen, dass die Addition von eins (oder die Multiplikation mit einer Konstanten) eine "einfach zu berechnende Funktion" ist, wenn die Ziffern der Zahl in Low-Endian-Reihenfolge angegeben werden, nicht jedoch, wenn die Ziffern in Big-End angegeben werden. Endian Ordnung.
2 Ein eindeutiger Finite-State-Wandler ist ein nichtdeterministischer Finite-State-Wandler mit höchstens einem Akzeptanzpfad für jeden Eingang. Es realisiert eine Teilfunktion, daher ist es auch ein funktioneller Finite-State-Wandler. Es ist entscheidend, ob ein gegebener Wandler mit endlichem Zustand eindeutig ist.
quelle