Ermitteln der Funktionen eines Min-Heap-Automaten (oder eines anderen exotischen Automaten)


44

Am Ende dieses Beitrags finden Sie Erläuterungen zu den Definitionen von Min-Heap-Automaten.

Man kann sich vorstellen, eine Vielzahl von Datenstrukturen zum Speichern von Informationen zur Verwendung durch Zustandsautomaten zu verwenden. Zum Beispiel speichern Push-Down-Automaten Informationen in einem Stapel, und Turing-Maschinen verwenden ein Band. Es hat sich gezeigt, dass Zustandsmaschinen, die Warteschlangen verwenden, und solche, die zwei Mehrfachstapel oder -bänder verwenden, in der Leistung Turing-Maschinen gleichwertig sind.

Stellen Sie sich eine Min-Heap-Maschine vor. Es funktioniert genau wie ein Push-Down-Automat, mit folgenden Ausnahmen:

  1. Anstatt sich das letzte Element anzusehen, das Sie dem Heap hinzugefügt haben, sehen Sie sich nur das kleinste Element (mit der auf der Grundlage der Maschine definierten Reihenfolge) an, das sich derzeit auf dem Heap befindet.
  2. Anstatt das letzte Element zu entfernen, das Sie dem Heap hinzugefügt haben, können Sie nur eines der kleinsten Elemente (mit der auf Maschinenbasis definierten Reihenfolge) entfernen, die sich derzeit auf dem Heap befinden.
  3. Anstatt ein Element oben auf dem Heap hinzuzufügen, können Sie dem Heap nur ein Element hinzufügen, dessen Position anhand der anderen Elemente im Heap bestimmt wird (wobei die Reihenfolge für jeden Computer festgelegt wird).

Dieser Computer kann alle regulären Sprachen akzeptieren, indem er den Heap nicht verwendet. Es kann auch die Sprache akzeptieren, indem dem Heap 's hinzugefügt wird. und Entfernen von 's aus dem Haufen, wenn es ' s liest . Es kann eine Vielzahl anderer kontextfreier Sprachen akzeptieren. Es kann jedoch beispielsweise nicht (ohne Beweis angegeben) akzeptieren . EDIT: oder kann es? Ich glaube nicht, dass es das kann, aber ich war schon einmal überrascht, und ich bin mir sicher, dass ich immer wieder überrascht sein werde, wenn ich meine Vermutungen habe, dass ich weiterhin ein ... naja aus mir mache.{anbn{a,b}n0}aab{w{a,b}w=wR}

Kann es alle kontextsensitiven oder Turing-vollständigen Sprachen akzeptieren?

Welche Forschungsarbeiten wurden allgemein in dieser Richtung durchgeführt? Welche Ergebnisse gibt es, wenn überhaupt? Ich interessiere mich auch für andere Arten von exotischen Zustandsautomaten, möglicherweise für solche, die andere Datenstrukturen für die Speicherung verwenden, oder für verschiedene Arten von Zugriffsbeschränkungen (z. B. wie LBAs eingeschränkte TMs sind). Referenzen sind willkommen. Ich entschuldige mich im Voraus, wenn diese Frage Unwissenheit zeigt.


Formale Definition:

Ich stelle hier einige detailliertere Definitionen von Min-Heap-Automaten zur Verfügung, um die weitere Diskussion bei Fragen zu klären, die auf dieses Material verweisen.

Wir definieren einen nicht deterministischen Min-Heap-Automaten vom Typ 1 als ein 7-Tupel wobei ...

(Q,q0,A,Σ,Γ,Z0,δ)
  1. Q ist eine endliche, nicht leere Menge von Zuständen;
  2. q0Q ist der Anfangszustand;
  3. AQ ist die Menge der akzeptierenden Zustände;
  4. Σ ist ein endliches, nicht leeres Eingabealphabet.
  5. γ & Ggr; w ( γ ) N w ( γ 1 ) = w ( γ 2 )Γ ist ein endliches, nicht leeres Eingabealphabet, bei dem die Gewichtung eines Symbols , ist, dass ;γΓw(γ)Nw(γ1)=w(γ2)γ1=γ2
  6. Z0Γ ist das spezielle Heap-Symbol;
  7. δ:Q×(Σ{ϵ})×(Γ{Z0})P(Q×Γ) ist die Übergangsfunktion.

Die Übergangsfunktion geht von einem anfänglich leeren Heap aus, der nur aus . Die Übergangsfunktion kann dem Heap eine beliebige Sammlung (endlich, aber möglicherweise leer oder mit Wiederholungen) von Elementen . Alternativ kann die Übergangsfunktion eine Instanz des Elements mit der niedrigsten Gewichtung aller auf dem Heap verbleibenden Elemente (dh des Elements auf dem Heap) entfernen . Die Übergangsfunktion kann nur die oberste (dh mit minimaler Gewichtung) Symbolinstanz zum Bestimmen eines gegebenen Übergangs verwenden.γ 1 , & ggr; 2 , . . . , γ kΓ γ w ( γ )Z0γ1,γ2,...,γkΓγw(γ)

Ferner ist eine Definition des Typs 1 determinis min-heap Automat ein Typ-1 nondeterministic min-heap Automaten zu sein , die erfüllt die folgende Eigenschaft: für alle Strings , so dass und , .| x | = n σ Σ | δ n + 1 ( q 0 , x σ y , Z 0 ) | 1xσyΣ|x|=nσΣ|δn+1(q0,xσy,Z0)|1

Definieren Sie auch einen nicht deterministischen Min-Heap-Automaten des Typs 2 genau wie einen nicht deterministischen Min-Heap-Automaten des Typs 1, mit Ausnahme der folgenden Änderungen:

  1. γ & Ggr; w ( γ ) N w ( γ 1 ) = w ( γ 2 ) γ 1 = γ 2Γ ist ein endliches, nicht leeres Eingabealphabet, bei dem die Gewichtung eines Symbols , ist, dass impliziert nicht unbedingt ; Mit anderen Worten, verschiedene Heap-Symbole können dasselbe Gewicht haben.γΓw(γ)Nw(γ1)=w(γ2)γ1=γ2
  2. Wenn Instanzen unterschiedlicher Heap-Symbole mit derselben Gewichtung zum Heap hinzugefügt werden, wird ihre relative Reihenfolge gemäß einer stapelartigen Last-In-, First-Out- (LIFO-) Reihenfolge beibehalten.

Vielen Dank an Raphael, der auf diese natürlichere Definition hingewiesen hat, die die kontextfreien Sprachen erfasst (und erweitert).


Einige Ergebnisse zeigten bisher:

  1. Typ-1-Min-Heap-Automaten erkennen eine Menge von Sprachen, die weder eine Teilmenge noch eine Obermenge der kontextfreien Sprachen ist. [ 1 , 2 ]
  2. Typ-2-Min-Heap-Automaten erkennen nach ihrer Definition einen Satz von Sprachen, der eine angemessene Obermenge der kontextfreien Sprachen darstellt, sowie eine angemessene Obermenge der Sprachen, die von Typ-1-Min-Heap-Automaten akzeptiert werden.
  3. Sprachen, die von Typ-1-Min-Heap-Automaten akzeptiert werden, scheinen unter Vereinigung, Verkettung und Kleene-Stern geschlossen zu sein, jedoch nicht unter Komplementierung [ 1 ], Schnittmenge oder Differenz.
  4. Sprachen, die von nicht deterministischen Min-Heap-Automaten des Typs 1 akzeptiert werden, scheinen eine angemessene Obermenge von Sprachen zu sein, die von deterministischen Min-Heap-Automaten des Typs 1 akzeptiert werden.

Es kann ein paar andere Ergebnisse geben, die ich verpasst habe. Weitere Ergebnisse sind (möglicherweise) in Vorbereitung.


Folgefragen

  1. Schließung unter Umkehrung? - Öffnen Sie
  2. Abschluss unter Ergänzung? -- Nein!
  3. Steigert Nichtdeterminismus die Macht? -- Ja?
  4. Ist für Typ 2? HALCSL- Öffnen Sie
  5. Erhöht das Hinzufügen von Heaps die Leistung für Typ 1? - für (?) k > 2HAL1HAL2=HALkk>2
  6. Erhöht das Hinzufügen eines Stapels die Leistung für Typ 1? - Öffnen Sie

1
Tolle Frage übrigens. Ich bin versucht, nach einem Pumplemma für diese Automaten zu suchen.
Raphael

@Raphael: Ich denke, Sie können meinen (aktualisierten) Beweis für ein solches Lemma verwenden: Jede Sprache, für die Sie sich mehr als eine lineare Menge an Informationen in einem Teilstring merken müssen, um einen nachfolgenden Teilstring korrekt abzugleichen, kann von nicht analysiert werden Min-Heap-Automaten. Ich bin mir nicht sicher, ob ein echtes Lemma im Pump-Stil möglich ist - es könnte auch ein Sonderfall meines Lemmas sein.
Alex ten Brink

@AlextenBrink Da Kombinationen von Heap-Symbolnummern zum Codieren von Inhalten verwendet werden können, bin ich mir nicht sicher, ob eine lineare Bindung ausreicht.
Raphael

Antworten:


25

Sie können die kanonische nicht kontextfreie (aber kontextsensitive) Sprache mit diesem Typ von Zustandsmaschine erkennen. Der springende Punkt ist , dass Sie Token zu dem Heap für jeden addieren Charakter, und während die Parsen Zeichen, die Sie hinzufügen ‚größer‘ Token zu dem Haufen, so dass sie nur am unteren Rand des Haufens am Ende , wenn Sie alle analysiert haben Figuren.a b b{anbncn | n1}abb

Heap-Symbole sind und , wobei . Wir verbrauchen alle Symbole in der Eingabe und fügen dem Heap Symbol hinzu. Wenn wir auf ein stoßen , wechseln wir die Strategie: Für jedes wir später stoßen, entfernen wir ein aus dem Haufen und fügen dem Haufen ein . Wenn wir auf ein stoßen , sollten wir s mehr haben, um es zu entfernen, und dann entfernen wir für jedes in der verbleibenden Eingabe ein aus dem Heap. Wenn der Heap am Ende leer ist, ist die Zeichenfolge in der Sprache. Natürlich lehnen wir ab, wenn etwas schief geht.b a < b ein a b b ein b c ein c baba<baabbabcacb

Aktualisieren:

Die Sprache kann von Min-Heap-Automaten nicht erkannt werden. Angenommen, wir haben einen Min-Heap-Automaten, der erkennt . Wir schauen uns den 'Zustand' an, in dem sich der Automat befindet, nachdem wir gelesen haben (der erste Teil der Eingabe, also ist nächste). Der einzige Zustand, den wir haben, ist der Inhalt des Heaps und der spezielle Zustand des Automaten, in dem er sich befindet. Dies bedeutet, dass dieser 'Zustand' nach dem Erkennen von genügend Informationen enthalten muss, um mit .EPAL={wwR|w{a,b}}EPALwwRwwR

Dazu müssen insbesondere verschiedene Zustände vorhanden sein (wobei ), da es mögliche Wörter gibt, die aus und Zeichen bestehen. Da es nur eine begrenzte Anzahl von Zuständen und nur eine begrenzte Anzahl von Heap-Zeichen gibt, impliziert dies, dass ein Wort für das der Heap eine exponentielle Anzahl von Heap-Zeichen enthält, z . B. .2nn=|w|2nabwx

Wir beweisen zunächst den Satz für deterministische Min-Heap-Automaten und erweitern diesen Beweis dann auf nicht deterministische Min-Heap-Automaten. Insbesondere deterministische Automaten, die eine Sprache erkennen, befinden sich nicht in einer Endlosschleife, was eine nützliche Eigenschaft ist.

Wir werden beweisen, dass der Heap höchstens eine Anzahl von Heap-Token enthalten kann, die in der Anzahl der von der Eingabe gelesenen Zeichen linear ist. Dies schließt sofort aus, dass auf dem Heap exponentiell oft vorkommt, was den Beweis vervollständigt, dass von Min-Heap-Automaten nicht erkannt werden kann.xEPAL

Da sich in unserem Automaten nur eine endliche Anzahl von Zuständen befindet und sich ein deterministischer Automat nicht in eine Endlosschleife einfügt, fügt er beim Lesen eines Eingangssignals dem Heap höchstens eine konstante Anzahl von Heap-Zeichen hinzu. In ähnlicher Weise kann beim Konsumieren eines Heap-Symbols höchstens eine konstante Anzahl von Heap-Zeichen hinzugefügt werden, die streng größer als und es kann nur die Anzahl von Symbolen auf dem Stapel verringert werden (andernfalls erhalten wir eine Endlosschleife).yyy

Das Verbrauchen von Heap-Symbolen kann daher zu einem (enormen) Aufbau größerer Heap-Symbole führen. Da es jedoch nur eine konstante Anzahl verschiedener Arten von Heap-Symbolen gibt, ist dies nur eine konstante Anzahl, die nicht von abhängig ist . Dies impliziert, dass die Anzahl der Heap-Symbole höchstens einige (große) Konstanten multipliziert mit der Anzahl der bisher gelesenen Eingabesymbole beträgt. Damit ist der Beweis für den deterministischen Fall abgeschlossen.n

Im nicht deterministischen Fall ist der Beweis ähnlich, aber etwas kniffliger: Anstatt dem Heap höchstens eine konstante Anzahl von Heap-Token hinzuzufügen, wird dem Heap eine beliebige Anzahl von Heap-Token hinzugefügt. Entscheidend ist jedoch, dass diese Anzahl nicht von abhängt . Insbesondere, wenn wir nicht deterministisch genau die richtigen Heap-Symbole auf dem Heap nach dem Erkennen von (Recht zum Erkennen von ), können wir auch nicht deterministisch die Heap-Symbole auswählen, die mit einem anderen Wort übereinstimmen , und damit erkennen und widersprechen damit, dass der Min-Heap-Automat genau erkennt .nwwRwwwREPAL

Update 3: Ich werde das letzte Argument (über Nicht-Determinismus) rigoros machen. Durch das obige Argument muss eine unendliche Menge von Wörternso dass für jedesnach dem Erkennen vonder HeapElemente enthält ( Beachten Sie, dass wir übersprechen können,da wir eine unendliche Menge von Wörtern haben. Da wir nicht so viele Elemente mit deterministischen Mitteln auf den Heap bekommen können, müssen wir eine Art Schleife haben, in der wir uns zunächst nicht deterministisch entschieden haben, dem Heap weitere Elemente hinzuzufügen (ohne Eingaben zu verbrauchen) und diese später zu beenden Schleife, und wir müssen diese Schleifemaldurchlaufen haben.W{a,b}wWwω(|w|)O(f(|w|))ω(1)

Nehmen Sie die Menge aller von verwendeten Schleifen . Da es nur -Zustände gibt, ist die Größe dieser Menge , und die Menge aller ihrer Teilmengen ist auch . Man beachte nun, dass der "deterministische" Teil der Ausführungspfade nur zu der Token beitragen kann , was bedeutet, dass viele der exponentiellen Anzahl verschiedener Wörter Ausführungspfade haben müssen, deren "deterministische" Teile die gleichen Beiträge leisten Jetons auf den Haufen. Insbesondere ist der einzige Weg, mehr Token zu erhalten, die oben identifizierten Schleifen zu nehmen.WO(1)O(1)O(1)O(|w|)

Kombiniert man diese Beobachtungen, bedeutet dies, dass es in , und , zwei unterschiedliche Wörter geben muss, deren "deterministischer" Teil der Ausführungspfade die gleichen Token zum Heap beiträgt und die sich durch die Aufnahme einer Teilmenge der obigen Schleifen unterscheiden unterschiedlich oft, aber mit derselben Teilmenge von Schleifen (denken Sie daran, dass nur dieser Schleifen vorhanden sind).Ww1w2O(1)

Wir können nun zeigen, dass auch vom Min-Heap-Automaten erkannt werden kann: Wir folgen dem Ausführungspfad für wie oben, aber wir durchlaufen die Schleifen genauso oft, wie der Ausführungspfad für durchläuft. Dies füllt den Min-Heap mit Token, so dass als Suffix akzeptiert wird, wodurch der Beweis abgeschlossen wird.w1w2w1w2w2

Update 2:

Mir ist gerade aufgefallen, dass das oben Genannte bedeutet, dass wir einen deterministischen Min-Heap-Automaten simulieren können, indem wir nur logarithmischen Raum verwenden: Wir behalten einen Zähler für jede Art von Zeichen im Min-Heap. Wie oben gezeigt, ist dieser Zähler höchstens und kann daher nur mit gespeichert werden (da es nur eine konstante Anzahl dieser Zähler gibt). Das gibt uns:O ( log n )O(n)O(logn)

DHALL

HALNL

Dabei ist die Menge der Sprachen, die von einem deterministischen Min-Heap-Automaten erkannt werden.DHAL


1
+1 für exzellente Einsicht, scheint, dass Sie meine Bedeutung vollständig verstanden haben. Habe ich Recht mit meiner Einschätzung, dass solche Maschinen Palindrome nicht erkennen können? Da die Reihenfolge der hinzugefügten Symbole nicht beibehalten wird, scheint dies nicht möglich zu sein.
Patrick87

@ Patrick87: Ich denke gerade über dieses Problem nach :)
Alex ten Brink

@Raphael Sehr coole Beobachtung in Bezug auf Turing-Maschinen mit logarithmischen Ressourcenbeschränkungen. Ihr beide habt diese Automaten fantastisch untersucht. Weißt du, ich habe den Min-Heap-Automaten nur als Beispiel für das, was mich interessiert hat, rausgeworfen, aber es scheint gut aufgenommen worden zu sein. Welche weiteren Fragen können zu solchen Automaten beantwortet werden? Ist DHAL = HAL? Was sind die Verschlusseigenschaften von HAL? Lohnen sich weitere Untersuchungen und wenn ja, sollten sie hier bleiben oder in eine neue Frage gestellt werden? Nochmals vielen Dank für die hervorragenden Einblicke.
Patrick87

1
@Raphael: Ich habe diesen Teil komplett rigoros gemacht. Sie haben Recht, dass ausreichend groß sein muss - ich habe einige Details links und rechts beschönigt. n
Alex ten Brink

1
@ Raphael: In der Tat. , also nach dem und einigen Einschlüssen. D H A L C S LCSL=NLINSPACEDHALCSL
Alex ten Brink

19

Folgendes wissen wir:

  • HALCFL (Typ 1, Typ 2)
  • CFLHAL (Typ 1)
  • CFLHAL (per Definition Typ 2)
  • CSLHAL (Typ 1, Typ 2)

Einzelheiten und einige andere Hinweise finden Sie weiter unten.


HALCFL

Dieser Teil der Antwort bezieht sich sowohl auf Typ 1 als auch auf Typ 2.

Ein Min-Heap-Automat (HA) mit endlichem, vollständig geordnetem Heap-Alphabet akzeptiert .L={anbncnnN}CSLCFL

Annahmen: Ähnlich wie bei einem PDA verbraucht unsere Übergangsfunktion das oberste Heap-Symbol und schreibt eine beliebige Anzahl von Heap-Symbolen zurück. Der Heap enthält anfangs ein definiertes Symbol das größer ist als alle anderen Heap-Symbole.$

Sei ein Min-Heap-Automat mitA=(Q,ΣI,ΣH,,q0,QF)

  • Q={q0,q1,q2,qf} die Menge von Zuständen
  • ΣI={a,b,c} das Eingabealphabet.
  • ΣH=a,b,$ das Heap-Alphabet mit der Reihenfolge .a<b<$
  • QF={qf}
  •  (Q×ΣI×ΣH)×(Q×ΣH) mit
    • (q0,a,σ)(q0,aσ) für allσΣH
    • (q0,b,a)(q1,b)
    • (q1,b,a)(q1,b)
    • (q1,c,b)(q2,ε)
    • (q2,c,b)(q2,ε)
    • (q2,c,$)(qf,ε)

Der Automat schreibt für jedes in der Eingabe ein in den Heap . Wenn ein auftritt, verbraucht es so viele wie es , und schreibt für jedes gefundene ein auf den Heap . Dies gilt nicht disturb Zählen da der Heap bequem hält auf der Oberseite. Erst wenn alle vom Haufen genommen sind, werden angenommen; erst nachdem so viele wie (und damit wie ) gefunden wurden, akzeptiert mit leerem Heap und Endzustand.aabbabbaaccbaA

Daher .L(A)=L


CFLHAL

Dieser Teil der Antwort bezieht sich nur auf Typ 1.

Betrachten die Menge der geraden Palindrome und nehme an, es ist HA mit .EPAL={wwRw{a,b}}AL(A)=L

Vermutung: Wir finden mit undso dass sich nach dem Lesen von bzw. in demselben Zustand befindet und denselben Heap-Inhalt hat . Da sowohl als auch akzeptiert, akzeptiert es daher auch (und ), was ein Widerspruch zu .w1,w2{a,b}w1w2|w1|=|w2|Aw1w2Aw1w1Rw2w2Rw1w2REPALw2w1RL(A)=EPAL


CSLHAL

Dieser Teil der Antwort bezieht sich sowohl auf Typ 1 als auch auf Typ 2.

Die gleiche Argumentation, die wir für (für Typ 1) verwendet haben, kann verwendet werden, um zu zeigen, dass die kontextsensitive Sprache nicht in ist . { w w | w { ein , b } * } H A LEPAL{www{a,b}}HAL


HAL?CSL

Dies ist sowohl für Typ 1 als auch für Typ 2 noch offen.


Weitere Factoide

HA scheint orthogonal zu einer Teilmenge der leicht kontextsensitiven Sprachen zu sein, die von Embedded Pushdown Automata akzeptiert werden : Während HA eine begrenzte Anzahl gestapelter Stapel simulieren kann, können sie nicht beliebig viele simulieren (wie es EPA kann). HA kann jedoch auf die oberen Symbole von Stapeln zugreifen, die sich derzeit nicht oben befinden (was EPA nicht kann).


+1, sehr gute Resonanz. Im Wesentlichen gleichbedeutend mit Brinks Methode, oder? Trotzdem sind die Genauigkeit und Präzision hervorragend. Haben Sie darüber nachgedacht, ob solche Maschinen alle CFLs akzeptieren können? Es scheint unmöglich, da
Bestellinformationen

Es ist die gleiche Idee, die Alex hatte, ja. Ich bin froh, dass du trotzdem etwas davon bekommen kannst. Ich habe eine Idee für die andere Richtung hinzugefügt, aber es gibt eine (große?) Lücke. Müssen morgen mit klarem Kopf darüber nachdenken und vielleicht ein paar Kollegen schnappen.
Raphael

Ich denke, ich hätte einen Beweis für die Richtigkeit beifügen müssen, um zusätzliche Credits für die Strenge zu verdienen. ;) Es sollte durch Induktion über nicht zu schwer sein , denke ich. n
Raphael

Der Beweis, den Sie als Vermutung bezeichnen, ist genau das, was ich vorhatte, und ich finde ihn ziemlich überzeugend ... auch und dies ist ein kleiner technischer Punkt, ich denke, Sie verwenden die Sprache von Palindromen mit gerader Länge, nicht alle Palindrome ... obwohl der Beweis zweifellos in beide Richtungen funktioniert (beachten Sie, dass er auch für einfache Palindrome funktioniert, sodass HAL nicht einmal so stark ist wie DPDAs, ein weiteres Ergebnis).
Patrick87

@ Patrick87 Das Problem ist, dass es nach dem Lesen von Symbolen mehr mögliche Konfigurationen für einen bestimmten HA geben kann als für Wörter, insbesondere wenn wir -Übergänge zulassen , mit denen Symbole auf den Haufen gelegt werden. εnε
Raphael
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.