Welche Sprachen werden von Ein-Zähler-Maschinen erkannt?


15

In rechentheoretischen Kursen wird gezeigt, dass Zählmaschinen mit zwei oder mehr Zählern Turingmaschinen entsprechen. Ich habe jedoch keine formale Analyse gesehen, welche Sprachen von einem Ein-Zähler-Automaten erkannt werden können. Entsprechen diese Sprachen den kontextfreien Sprachen (möglicherweise durch eine geschickte Konstruktion, die sie mit PDAs in Verbindung bringt), oder handelt es sich um eine völlig andere Klasse von Sprachen?


2
Dieses Buch: books.google.co.uk/books/about/… von Jean Berstel befasst sich ausführlich mit One-Counter-Sprachen und anderen Untergruppen von kontextfreien Sprachen, ist jedoch in der Regel sehr schwierig eine Kopie davon aufspüren.
Sam Jones

1
@SamJones In der Tat ist das berühmte Buch Transductions and Context-free Languages von Jean Berstel vergriffen. Der Autor hat eine elektronische Version der wichtigsten Kapitel des Buches zur Verfügung gestellt. www-igm.univ-mlv.fr/~berstel/LivreTransductions/…
Hendrik Jan

Antworten:


11

Ein Ein-Zähler-Automat ist ein Push-Down-Automat mit nur einem auf dem Stapel zulässigen Symbol (plus einem festen unteren Symbol). Sprachen, die von einem Zählerautomaten erkannt werden, bilden eine geeignete Teilmenge der kontextfreien Sprachen.

Zum Beispiel ein 1-Zähler - Automaten können die Sprache erkennen , die nicht regelmäßig ist, aber die Sprache nicht erkennen kann { a n b m a m b n } , die kontextfrei ist und von einem 2-Zähler erkannt werden auch Automaten.{anbn}{anbmambn}

Wenn k-DCA ein deterministischer K-Counter-Automat ist und k-NCA ein nicht deterministischer K-Counter-Automat ist, dann haben wir die folgenden korrekten Einschlüsse:

ϵ

{wwR}{anbncn}


k2

(1) nein, ich meine "die nicht kontextfrei sind" (wählen Sie einfach eine korrekt codierte kontextsensitive Sprache aus, die von einem Zähler mit einem Wert> 1 erkannt werden kann). (2) Sie haben recht, die Hierarchie bezieht sich auf Echtzeit-DCA (ich habe korrigiert) die Antwort)
Vor

Ich scheine mich zu erinnern, dass es Unterschiede zwischen Zählern gibt, die in beide Richtungen unbegrenzt sind und so, dass bei Null "bottom out"?
Raphael

7

Gegenautomaten wurden in der Vergangenheit der alten formalen Sprache im Kontext der AFA- und AFL-Theorie (abstrakte Familien von Automaten und Sprachen) von US-amerikanischen und französischen Teams (Ginsberg, Greibach, ..., Nivat, Berstel, ...) vielfach untersucht.

Zählerautomaten sind in der Regel Endlosautomaten mit externem Speicher, die aus einer natürlichen Zahl bestehen (oder aus mehreren, wenn Sie mehr als einen Zähler haben). Diese Zahl kann inkrementiert, dekrementiert und (normalerweise) auf Null getestet werden. Eine Berechnung beginnt mit Null und wird erst akzeptiert, wenn der Zähler am Ende Null ist, vergleichbar mit der Pushdown-Leerstapel-Annahme.

Wenn eine solche Maschine mindestens zwei solche Zähler hat, dann ist sie auch im deterministischen Fall einer Turing-Maschine äquivalent. Der Beweis für diese Tatsache ist von Minsky und kann in dem Wikipedia-Artikel gefunden werden, den Sie verlinkt haben. Das Modell bezieht sich natürlich auf die Registermaschine, die auf derselben Wikipedia-Seite erwähnt wird. Die im Wikipedia-Artikel erwähnten Codierungsprobleme sind in dieser Einstellung hier nicht wichtig, da wir Automaten mit einem Eingabeband betrachten (schließlich müssen wir eine Eingabezeichenfolge lesen), während Wikipedia auf dieser Seite nur Zähler voraussetzt.

Dieser Zählerautomat kann als eine spezielle Art von PDA angesehen werden, die nur ein Stapelsymbol und einen Boden des Stapels (der niemals bewegt wird) aufweist. Dies ermöglicht es dem Automaten zu testen, ob der Zähler / Stapel Null ist, und entsprechend zu handeln.

Tatsächlich gibt es drei Arten von Zählerautomaten. Kombinieren Sie also die Ergebnisse mit Bedacht, oder Sie geraten in Widersprüche (wie ich es in der Vergangenheit getan habe). Alle drei Typen sind (ausschließlich) in den kontextfreien Sprachen für einen Zähler enthalten.

Der obige Typ speichert eine Ganzzahl (oder eine natürliche Zahl, die keine Rolle spielt) und kann deren Inhalt bei Null testen. Blind Counter Automaten speichern eine ganze Zahl, können aber nicht auf Null testen. Sie können jedoch explizit unter Null zählen. Teilblinde Zählerautomaten können nicht auf Null testen, sondern eine natürliche Zahl speichern. Wenn die Maschine versucht, unter Null zu gehen, hält sie an, ohne zu akzeptieren. Dies ist ein natürlicher Speichertyp zum Modellieren von Petri-Netzen. Es wird auch auf den PDA übertragen, jetzt mit einem einzelnen Stapelsymbol ohne die spezielle untere Markierung (und daher das Problem des Testens auf Null: Wir bleiben nur hängen, wenn wir das letzte Stapelelement platzen lassen). Manchmal lauten die Namen der Familien, die von den Modellen der reaktiven Zähler definiert werden, OCL, ROCL und 1-BLIND.

(Dc)D={w{ein,b}#ein(w)=#b(w)}einbc

Als ein Beispiel für relevante Forschung haben Latteux et al. Eine nicht triviale Veröffentlichung "Die Familie der One-Counter-Sprachen wird unter Quotient geschlossen" (die sich eigentlich mit ROCL befasst).

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.