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.
( D c )∗D = { w ∈ { a , 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).