Wurde mein Problem bereits gelöst, sodass ich nur die richtigen Referenzen lesen muss?
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.
Hat diese Argumentation eine Chance, mein Problem zu "lösen"? Macht mein Problem selbst Sinn oder ist das genauso falsch wie ...?
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.')fGf( 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 Monoid homomorphisms von zu Σ ' * gibt eine sehr grundlegende Gesamt Kategorie. Die Isomorphismen dieser Kategorie sind im Grunde nur die Bijektionen zwischen Σ und Σ ′ . Jede vernünftige Sprachfamilie sollte diese Isomorphismen besser respektieren, dh unter inversen Homomorphismen geschlossen werden.Σ∗Σ' ∗ΣΣ'
- Die von deterministischen Log-Space-Turing-Maschinenübersetzern definierten Teilfunktionen ergeben eine ganz natürliche Teilkategorie . Es ist in der Lage, viele triviale syntaktische Transformationen durchzuführen (wie die Anwendung von De Morgans Gesetzen, um Negationen auf die Atome zu verschieben), schließt den Morphismus ein, der durch funktionale Finite-State-Wandler 1 definiert ist , und kann auch sortieren. Dennoch werden zwei völlig unabhängige Sprachen nicht als isomorph identifiziert, da die Gleichheit der Zusammensetzung zweier Morphismen mit einem Identitätsmorphismus eine viel stärkere Voraussetzung ist als nur das Vorhandensein von Ein-Eins-Reduktionen in beide Richtungen.
- Die von nichtdeterministischen Log-Space-Turing-Maschinenübersetzern definierten Beziehungen ergeben eine interessante relationale Kategorie. SAT ist in dieser Kategorie isomorph zu HORNSAT, aber es ist eine offene Frage, ob TAUTOLOGY oder ein anderes Co-NP-vollständiges Problem isomorph zu HORNSAT ist.
Zwei Sprachen und L ' über Alphabeten Σ = { a , b } und Σ ′ = { c , d } (wobei a , b , c und d unterschiedliche Buchstaben sind) können niemals gleich sein, selbst wenn sie "genau" das beschreiben gleiches Problem." Aber sie sollten isomorph sein, wenn sie wirklich "genau" das gleiche "Problem" beschreiben.L.L.'Σ = { a , b }Σ'= { c , d}}einbcd
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.→ 00C.→ 01A → 10G → 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 = Σ∗fGf( 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.'
- Die Teilfunktionen werden durch eindeutige Wandler 2 mit endlichem Zustand realisiert, wobei der einzige akzeptierende Zustand der Anfangszustand ist. Die Isomorphismen dieser Teilkategorie sind (eine Teilmenge der) Bijektionen zwischen erkennbaren Codes variabler Länge .
- Die Teilfunktionen, die von deterministischen Wandlern mit endlichem Zustand realisiert werden, wobei der einzige akzeptierende Zustand der Anfangszustand ist. Die Isomorphismen dieser Teilkategorie sind (eine Teilmenge der) Bijektionen zwischen Präfixcodes .
- Die Teilfunktionen werden gleichzeitig von einem vorwärts- und einem rückwärtsdeterministischen Wandler realisiert, wobei der einzige akzeptierende Zustand der Anfangszustand ist. Die Isomorphien dieser Teil Kategorie sind (eine Untergruppe der) Bijektionen zwischen Bifix Codes .
- Eine weitere Einschränkung der Teilfunktionen, so dass die Isomorphismen (eine Teilmenge der) Bijektionen zwischen Blockcodes sind, könnte ebenfalls sinnvoll sein.
Man kann Sprachen in der Komplexitätstheorie verwenden, um das Konzept eines "Problems" zu formalisieren.
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.
O ( n )O ( 1 )
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.
R.⊂ Σ∗×Σ' ∗L = R.- 1( L.') - R.- 1( Σ' ∗- L.')und zwei beliebige Morphismen zwischen derselben Quelle und demselben Ziel werden als gleich angesehen.