Was ist die Erleuchtung, die ich nach dem Studium endlicher Automaten erreichen soll?

247

Ich habe Theory of Computation zum Spaß überarbeitet und diese Frage hat mich eine Weile genervt (lustig, ich habe nie daran gedacht, als ich in meinem Grundstudium die Automatentheorie lernte). Warum untersuchen wir also genau deterministische und nicht deterministische endliche Automaten (DFA / NFAs)? Hier sind einige Antworten, die ich mir nach dem Soliloquing ausgedacht habe, deren Gesamtbeitrag zum Aha-Moment jedoch immer noch nicht absehbar ist:

  1. Zu studieren, was sie sind und was nicht, dh Einschränkungen
    • Warum?
  2. Da sie die Grundmodelle der theoretischen Berechnung sind und den Grundstein für andere leistungsfähigere Berechnungsmodelle legen würden.
    • Was macht sie "grundlegend"? Haben sie nur ein Bit für Speicher- und Statusübergänge?
  3. Okay, na und? Wie trägt das alles dazu bei, die Frage der Berechenbarkeit zu beantworten? Es scheint, dass Turing-Maschinen dabei helfen, dies wirklich gut zu verstehen, und es gibt 'weniger' Modelle für Berechnungen wie PDAs, DFA / NFAs / Regexes usw. Aber wenn man FAs nicht kennt, woran mangelt es ihnen?

Also, obwohl ich es bis zu einem gewissen Grad verstehe, kann ich diese Frage nicht selbst beantworten? Wie würden Sie am besten erklären, warum Sie D / N-FAs studieren? Welche Frage möchten sie beantworten? Wie hilft es und warum wird es als erstes in der Automatentheorie gelehrt?

PS: Mir sind die verschiedenen lexikografischen Anwendungen und Pattern Matcher bekannt, die als solche implementiert werden können. Ich möchte jedoch nicht wissen, wofür es praktisch verwendet werden kann, sondern was der Grund für die Verwendung / Erfindung / das Design während des Studiums der Berechnungstheorie war. Historisch gesehen, was hat dazu geführt, dass man damit anfängt und zu welchem ​​„Aha“ -Verständnis soll es führen? Wenn Sie CS-Schülern, die gerade erst mit dem Studium der Automatentheorie begonnen haben, ihre Wichtigkeit erklären wollten, wie haben Sie das gemacht?

PhD
quelle
10
Das ist also eine Frage auf Forschungsebene in TCS?
Hendrik Jan
13
Es ist weniger eine Forschungsfrage als vielmehr eine Frage nach einer Gesamtperspektive eines Themas. Wir haben hier eine Reihe solcher Fragen. Anstatt eine Debatte in den Kommentaren zu beginnen, würde ich Sie ermutigen, eine Frage auf Meta zu stellen, wenn Sie die Angemessenheit solcher Fragen weiter diskutieren möchten.
Suresh Venkat
6
PhD: Ihre Frage hat einige sehr gute Antworten gegeben, deshalb danke ich Ihnen dafür. Sie waren ehrlich in Ihren Aussagen und es war nicht meine Absicht, Sie oder Ihre Frage zu disqualifizieren. Eigentlich ist es andersherum, als mein Kommentar vermuten lässt: Ich habe einige andere Fragen gesehen, die mit diesem Zitat aus der FAQ zu leicht abgewiesen wurden. Sie haben Recht, Suresh: Dies ist nicht der Ort, um eine Debatte zu beginnen. Es tut uns leid.
Hendrik Jan
1
@ HendrikJan - Oh, mach dir keine Sorgen! Text verbirgt den Ton. Ich habe es nie so gemeint. Ich dachte, Sie fragten mich, ob dies eine Forschungsfrage meinerseits sei.
PhD
16
Ein großes Lob an PhD und Hendrik für das Maß an Höflichkeit, das ich selten in öffentlichen Foren erlebe.
Lucas

Antworten:

342

Ich habe persönlich mehrere Aha genossen ! Momente aus dem Studium der grundlegenden Automatentheorie. NFAs und DFAs bilden einen Mikrokosmos für die gesamte theoretische Informatik.

  1. Führt Nichtdeterminismus zu Effizienz? Es gibt Standardbeispiele, bei denen der minimale deterministische Automat für eine Sprache exponentiell größer ist als ein minimaler nicht deterministischer Automat. Diesen Unterschied für Turingmaschinen zu verstehen, ist der Kern der (theoretischen) Informatik. NFAs und DFAs sind das einfachste mir bekannte Beispiel dafür, wo Sie die enge Kluft zwischen Determinismus und Nichtdeterminismus explizit erkennen können.
  2. Berechenbarkeit! = Komplexität. NFAs und DFAs repräsentieren sowohl reguläre Sprachen und sind gleichwertig in was sie berechnen. Sie unterscheiden sich darin, wie sie berechnen.
  3. Maschinen verfeinern Sprachen. Dies ist eine andere Sichtweise auf das, was wir berechnen und wie wir berechnen. Sie können sich berechenbare Sprachen (und Funktionen) als Definition einer Äquivalenzklasse von Automaten vorstellen. Dies ist ein grundlegender Perspektivwechsel in TCS, bei dem wir uns nicht nur auf das Was, sondern auch auf das Wie der Berechnung konzentrieren und versuchen, das richtige „Wie“ beim Entwerfen eines Algorithmus zu wählen oder den Raum für unterschiedliche Methoden beim Studium von Komplexitätsklassen zu verstehen.
  4. Der Wert der kanonischen Repräsentation. DFAs sind das fundamentale Beispiel für eine Datenstruktur, die eine kanonische Darstellung zulässt. Jede reguläre Sprache hat einen einzigartigen, minimalen DFA. Dies bedeutet, dass bei einem minimalen DFA wichtige Vorgänge wie die Einbeziehung von Sprachen, die Ergänzung und die Überprüfung der Akzeptanz eines Wortes trivial werden. Das Entwickeln und Ausnutzen kanonischer Darstellungen ist ein nützlicher Trick bei der Entwicklung von Algorithmen.
  5. Das Fehlen kanonischer Darstellungen. Es gibt keine allgemein akzeptierte kanonische Darstellung von regulären Ausdrücken oder NFA. Trotz des obigen Punktes gibt es nicht immer kanonische Darstellungen. Sie werden diesen Punkt in vielen verschiedenen Bereichen der Informatik sehen. (Zum Beispiel haben aussagenlogische Formeln auch keine kanonischen Darstellungen, während ROBDDs dies tun).
  6. Die Kosten einer kanonischen Vertretung. Sie können den Unterschied zwischen NFAs und DFAs sogar als algorithmischen No-Free-Lunch- Satz verstehen . Wenn wir die Aufnahme von Sprachen in eine NFA überprüfen oder eine NFA ergänzen möchten, können Sie sie ermitteln und minimieren und von dort aus fortfahren. Diese "Reduktions" -Operation ist jedoch mit Kosten verbunden. In mehreren anderen Bereichen der Informatik werden Sie Beispiele für kostenpflichtige Heiligsprechung sehen.
  7. Unendlich! = Unentscheidbar. Ein weit verbreitetes Missverständnis ist, dass Probleme unendlicher Natur von Natur aus unentscheidbar sind. Reguläre Sprachen enthalten unendlich viele Zeichenfolgen und haben dennoch mehrere entscheidbare Eigenschaften. Die Theorie der regulären Sprachen zeigt Ihnen, dass die Unendlichkeit allein nicht die Quelle der Unentscheidbarkeit ist.
  8. Halten Sie die Unendlichkeit in der Handfläche Ihres Automaten. Sie können einen endlichen Automaten nur als Datenstruktur zur Darstellung unendlicher Mengen betrachten. Ein ROBDD ist eine Datenstruktur zur Darstellung von Booleschen Funktionen, die Sie als Darstellung endlicher Mengen verstehen können. Ein endlicher Automat ist eine natürliche, unendliche Erweiterung eines ROBDD.
  9. Der bescheidene Prozessor. Ein moderner Prozessor hat viel zu bieten, aber Sie können ihn als endlichen Automaten verstehen. Allein diese Erkenntnis hat die Computerarchitektur und das Prozessordesign für mich weniger einschüchternd gemacht. Es zeigt auch, dass Sie in der Praxis mit endlichen Automaten sehr weit kommen können, wenn Sie Ihre Zustände sorgfältig strukturieren und manipulieren.
  10. Die algebraische Perspektive. Reguläre Sprachen bilden ein syntaktisches Monoid und können aus dieser Perspektive untersucht werden. Im Allgemeinen können Sie in späteren Studien auch fragen, welche algebraische Struktur für ein Rechenproblem die richtige ist.
  11. Die kombinatorische Perspektive. Ein endlicher Automat ist ein beschrifteter Graph. Das Überprüfen, ob ein Wort akzeptiert wird, reduziert sich darauf, einen Pfad in einem beschrifteten Diagramm zu finden. Automatenalgorithmen entsprechen Graphtransformationen. Das Verständnis der Struktur von Automaten für verschiedene Unterfamilien regulärer Sprachen ist ein aktives Forschungsgebiet.
  12. Die Algebra-Sprach-Kombinatorik liebt das Dreieck. Mit dem Myhill-Nerode-Theorem können Sie mit einer Sprache beginnen und einen Automaten oder ein syntaktisches Monoid erzeugen. Mathematisch erhalten wir eine Übersetzung zwischen sehr unterschiedlichen Arten von mathematischen Objekten. Es ist nützlich, solche Übersetzungen im Hinterkopf zu behalten und in anderen Bereichen der Informatik nach ihnen zu suchen und sich je nach Ihrer Anwendung zwischen ihnen zu bewegen.
  13. Mathematik ist die Sprache der großen Bilder. Reguläre Sprachen können durch NFAs (Graphen), reguläre Ausdrücke (formale Grammatik), schreibgeschützte Turing-Maschinen (Maschine), syntaktische Monoide (Algebra), Kleene-Algebren (Algebra), monadische Logik zweiter Ordnung usw. charakterisiert werden Das Phänomen ist, dass wichtige, dauerhafte Konzepte viele verschiedene mathematische Charakterisierungen haben, von denen jede unterschiedliche Aromen für unser Verständnis der Idee mit sich bringt.
  14. Deckspelzen für den Arbeitsmathematiker. Das Pumping Lemma ist ein hervorragendes Beispiel für ein theoretisches Tool, mit dem Sie verschiedene Probleme lösen können. Die Arbeit mit Lemmas ist eine gute Methode, um auf vorhandenen Ergebnissen aufzubauen.
  15. Notwendig! = Ausreichend. Das Myhill-Nerode-Theorem gibt Ihnen die notwendigen und ausreichenden Bedingungen, damit eine Sprache regelmäßig ist. Das Pumping Lemma gibt uns die notwendigen Bedingungen. Der Vergleich der beiden und ihre Anwendung in verschiedenen Situationen haben mir geholfen, den Unterschied zwischen notwendigen und ausreichenden Bedingungen in der mathematischen Praxis zu verstehen. Ich habe auch gelernt, dass ein wiederverwendbarer notwendiger und ausreichender Zustand ein Luxus ist.
  16. Die Perspektive der Programmiersprache. Reguläre Ausdrücke sind ein einfaches und schönes Beispiel für eine Programmiersprache. In der Verkettung haben Sie ein Analogon der sequentiellen Komposition und in Kleene star das Analogon der Iteration. Indem Sie die Syntax und Semantik regulärer Ausdrücke definieren, machen Sie einen kleinen Schritt in Richtung Programmiersprachtheorie, indem Sie induktive Definitionen und kompositorische Semantik sehen.
  17. Die Compiler-Perspektive. Die Übersetzung von einem regulären Ausdruck in einen endlichen Automaten ist auch ein einfacher, theoretischer Compiler. Sie können den Unterschied zwischen Parsing, Intermediate-Code-Generierung und Compiler-Optimierungen feststellen, da beim Lesen eines regulären Ausdrucks, beim Generieren eines Automaten und beim Minimieren / Bestimmen des Automaten Unterschiede auftreten.
  18. Die Kraft der Iteration. Wenn Sie sehen, was Sie in einem endlichen Automaten mit und ohne Schleife tun können, können Sie die Macht der Iteration schätzen. Dies kann helfen, Unterschiede zwischen Schaltkreisen und Maschinen oder zwischen klassischer Logik und Festkomma-Logik zu verstehen.
  19. Algebra und Coalgebra. Reguläre Sprachen bilden ein syntaktisches Monoid, eine algebraische Struktur. Endliche Automaten bilden, was in der Sprache der Kategorietheorie eine Kohlegebra genannt wird. Im Fall eines deterministischen Automaten können wir leicht zwischen einer algebraischen und einer kohlegebraischen Darstellung wechseln, aber im Fall von NFAs ist dies nicht so einfach.
  20. Die arithmetische Perspektive. Es gibt eine tiefe Verbindung zwischen Berechnung und Zahlentheorie. Sie können dies als Aussage über die Potenz der Zahlentheorie und / oder die Universalität der Berechnung verstehen. Normalerweise wissen Sie, dass endliche Automaten eine gerade Anzahl von Symbolen erkennen können und dass sie nicht genug zählen können, um mit Klammern übereinzustimmen. Aber wie viel Rechnen können sie? Endliche Automaten können Presburger-Rechenformeln bestimmen. Das einfachste mir bekannte Entscheidungsverfahren für Presburger Arithmetik reduziert eine Formel auf einen Automaten. Dies ist ein Blick, von dem aus Sie zu Hilberts 10. Problem und seiner Lösung gelangen, die zur Entdeckung eines Zusammenhangs zwischen diophantischen Gleichungen und Turing-Maschinen geführt haben.
  21. Die logische Perspektive. Die Berechnung kann aus einer rein logischen Perspektive verstanden werden. Endliche Automaten können durch schwache, monadische Logik zweiter Ordnung über endlichen Wörtern charakterisiert werden. Dies ist mein bevorzugtes, nicht triviales Beispiel für eine logische Charakterisierung eines Computergeräts. Die deskriptive Komplexitätstheorie zeigt, dass viele Komplexitätsklassen auch rein logische Charakterisierungen haben.
  22. Endliche Automaten verstecken sich an Orten, die Sie sich nie vorgestellt haben. (Hat-Tipp zu Martin Bergers Kommentar zum Zusammenhang mit der Codierungstheorie) Der Nobelpreis für Chemie 2011 wurde für die Entdeckung von Quasikristallen vergeben. Die Mathematik hinter Quasikristallen ist mit aperiodischen Kacheln verbunden. Eine bestimmte aperiodische Kachelung des Flugzeugs wird als Wagenradkachelung bezeichnet, die aus einer Drachenform und einer Fliegenform besteht. Sie können diese Formen in Form von Nullen und Einsen codieren und dann die Eigenschaften dieser Sequenzen untersuchen, die Sequenzen von Mustern codieren. Wenn Sie 0 bis 01 und 1 bis 0 zuordnen und diese Zuordnung wiederholt auf die Ziffer 0 anwenden, erhalten Sie 0, 01, 010, 01001 usw. Beachten Sie, dass die Längen dieser Zeichenfolgen der Fibonacci-Sequenz folgen. Auf diese Weise erzeugte Wörter werden Fibonacci-Wörter genannt. Bestimmte Formsequenzen, die in Penrose-Kacheln beobachtet werden, können als Fibonacci-Wörter codiert werden. Solche Wörter wurden aus einer automatentheoretischen Perspektive untersucht und raten Sie mal, einige Wortfamilien werden von endlichen Automaten akzeptiert und bieten sogar Beispiele für das Worst-Case-Verhalten von Standardalgorithmen wie dem Hopcroft-Minimierungsalgorithmus. Bitte sag mir, dass dir schwindelig ist.

Ich könnte weitermachen. (Und so weiter.) * Ich finde es nützlich, Automaten im Hinterkopf zu haben und sie von Zeit zu Zeit abzurufen, um ein neues Konzept zu verstehen oder um mich über mathematische Ideen auf hohem Niveau zu informieren. Ich bezweifle, dass alles, was ich oben erwähne, in den ersten Vorlesungen eines Kurses oder sogar in einem ersten Kurs kommuniziert werden kann. Dies sind langfristige Belohnungen, die auf einer Anfangsinvestition in die ersten Vorlesungen eines Kurses zur Automatentheorie beruhen.

Um Ihren Titel anzusprechen: Ich suche nicht immer Erleuchtung, aber wenn, dann bevorzuge ich endliche Automaten. Bleib durstig, mein Freund.

Vijay D
quelle
27
Schöne Liste. Ich möchte hinzufügen, dass Automaten eine interessante Perspektive auf die Codierungstheorie bieten, die von Schützenberger entwickelt wurde. Darüber hinaus sind die moderne Theorie der Parallelität und die Prozesstheorie eine Verallgemeinerung der Automatentheorie, bei der Automaten parallel zusammengesetzt und auf ihre Aktionen synchronisiert werden können.
Martin Berger
6
Beeindruckend. (+ 0,5 für den letzten Satz. :-)
LarsH
6
Tritt TCS.SE nur bei, um +1 zu geben.
Tynam
5
Obwohl ich so ziemlich alles in dieser Liste kenne, fühle ich mich dennoch irgendwie erleuchtet, dass ich es gelesen habe. (Auch (und weiter.) * Brachte mich zum Lachen.)
CA McCann
2
Ehrlich gesagt, ich hatte nie über die meisten dieser Dinge nachgedacht (und über einige der Theoreme, von denen ich noch nie gehört habe), und ich belegte einen Kurs in Rechentheorie. Muss man einen besonders guten Lehrer oder Lehrplan haben, um auf diese Enthüllungen hinzuweisen?
Ken Bloom
33

Es gibt viele gute theoretische Gründe, N / DFAs zu studieren. Zwei, die sofort in den Sinn kommen, sind:

  1. Wir denken, Turing-Maschinen erfassen alles, was berechenbar ist. Wir können jedoch fragen: Welche Teile einer Turingmaschine sind "wesentlich"? Was passiert, wenn Sie eine Turing-Maschine auf verschiedene Arten einschränken? DFAs sind eine sehr schwerwiegende und natürliche Einschränkung (Speicherentzug). PDAs sind eine weniger schwerwiegende Einschränkung usw. Theoretisch ist es interessant zu sehen, welche Speicher Sie haben und was passiert, wenn Sie darauf verzichten. Es scheint mir eine sehr natürliche und grundlegende Frage zu sein.

  2. Turingmaschinen brauchen ein unendliches Band. Unser Universum ist endlich, so dass in gewisser Weise jedes Computergerät ein DFA ist. Scheint ein wichtiges und natürlich zu untersuchendes Thema zu sein.

Zu fragen, warum man DFAs studieren sollte, ist vergleichbar mit der Frage, warum man Godels Vollständigkeitssatz lernen sollte, wenn das wirklich Interessante sein Unvollständigkeitssatz ist.

Der Grund, warum sie das erste Thema in der Automatentheorie sind, liegt darin, dass es naheliegend ist, kompliziertere Modi aus weniger komplizierten zu erstellen.

Lev Reyzin
quelle
2
Nr. 1 macht Sinn und ich denke, ich sehe den Grund. Aber wie würden Sie den Grund dafür erklären, dass FAs "vorwärts" gehen? Wer etwas über ToC weiß, kann im Nachhinein zurückblättern und darüber nachdenken. Wie erklärt man Studenten, die anfangen, Automatentheorie zu lernen und nur FAs kennen, am besten das Warum? Stellen wir nur fest, dass wir mit Ein-Bit-Maschinen beginnen, weil sie einfach sind - warum? Wie kann man das am besten beantworten, warum? Würde mich über etwas Licht freuen, wenn ich diese Frage für total noobs an ToC beantworte :)
PhD
2
Das "Vorwärts" -Argument kommt von der Tatsache (wie Sariel erwähnte), dass Zustandsmaschinen die vielleicht grundlegendsten Computergeräte sind. Sie befinden sich in einem Zustand: Es passiert etwas, und dann wechseln Sie in einen neuen Zustand. Beachten Sie, dass Markov-Ketten (die beim maschinellen Lernen sehr wichtig sind) nur probabilistische FSMs sind.
Suresh Venkat
31

Um den Rest der Antworten um eine Perspektive zu erweitern: weil man im Gegensatz zu Turing-Maschinen tatsächlich Dinge mit endlichen Automaten machen kann.

Fast jede interessante Eigenschaft von Turingmaschinen ist unentscheidbar. Im Gegenteil, mit endlichen Automaten, so ziemlich alles ist entscheidbar. Sprachgleichheit, Inklusion, Leere und Universalität sind alle entscheidbar. In Kombination damit, dass endliche Automaten unter nahezu jeder denkbaren Operation geschlossen werden und diese Operationen berechenbar sind, können Sie so ziemlich alles tun, was Sie jemals mit endlichen Automaten tun wollten.

Das heißt, wenn Sie etwas mit Hilfe von endlichen Automaten erfassen können, erhalten Sie automatisch viele Werkzeuge, um es zu analysieren. Beispielsweise können beim Testen von Software Systeme und ihre Spezifikationen als endliche Automaten modelliert werden. Sie können dann automatisch testen, ob Ihr System die Spezifikation korrekt implementiert.

Turingmaschinen und endliche Automaten vermitteln den Menschen daher einen interessanten und allgegenwärtigen Kontrast: Mehr beschreibende Kraft geht Hand in Hand mit weniger Traktierbarkeit. Endliche Automaten können nicht viel beschreiben, aber wir können zumindest etwas damit anfangen.

Alex ten Brink
quelle
2
"... mit endlichen Automaten kann man eigentlich etwas anfangen, im Gegensatz zu Turing-Maschinen." verstehe das pt, aber ein Zitat, das ironisch klingt oder aus dem Kontext nicht viel Sinn macht ...
vzn
27

Zustand. Sie müssen lernen, dass man die Welt (für bestimmte Probleme) als endlichen Zustandsraum modellieren und in diesen Einstellungen über Berechnungen nachdenken kann. Dies ist eine einfache Einsicht, aber äußerst nützlich, wenn Sie programmieren - Sie würden immer wieder auf einen Zustand stoßen, und FA gibt Ihnen die Möglichkeit, darüber nachzudenken. Ich halte dies für eine ausreichende Ausrede, um eine ganze Klasse zu unterrichten. Natürlich kann der Zustand deterministisch oder nicht deterministisch sein. Also DFA und NFA, aber du kannst zwischen ihnen konvertieren, etc.

Das zweite, was Sie lernen müssen, ist das Halting-Theorem. Was mit dem Gödelschen Unvollständigkeitssatz zusammenhängt. (Sie können keine Maschine bauen, die alles berechnen kann, und es gibt mathematische Behauptungen, die Sie weder beweisen noch widerlegen können und die als Axiome betrachtet werden müssen. Das heißt, wir leben in einer Welt, die keine endliche Beschreibung oder Realität hat Orakel - yey für uns!)

Jetzt habe ich mein Mathematikstudium abgeschlossen und du gewöhnst dich an die Vorstellung, dass du Dinge lernst, von denen du keine Ahnung hast, warum du lernst (Gruppentheorie, Maßtheorie, Mengenlehre, Hilbert-Räume usw. usw. usw. [alles gute Sachen Übrigens]). Es gibt etwas zu lernen, wie man lernt - das nächste Mal muss man etwas bizarres Rechnen lernen (weil man es benutzen muss, um etwas in der realen Welt zu tun), das sehr seltsam aussieht, wenn man es in Kauf nimmt. Das dritte, was Sie lernen müssen, ist die mathematische Reife - Sie müssen in der Lage sein, sorgfältig über die Dinge zu diskutieren, zu wissen, ob Beweise korrekt sind oder nicht, Beweise aufzuschreiben usw. Wenn Sie sie bereits haben, ist dieser Kurs einfach und es interessiert Sie auch nicht viel, warum du es lernst.

Abgesehen davon ist der Kurs wie alles andere eine reine Zeitverschwendung. Insbesondere können Sie ein glückliches Leben führen, ohne dieses Zeug zu kennen. Dies gilt jedoch buchstäblich für alles Wissen. Mehr oder weniger. Ein Studium lohnt sich für mich, wenn man die Welt nach dem Lernen anders betrachtet. Dies ist definitiv einer der Kurse, die meine Sicht auf die Welt verändert haben. Was können Sie mehr fragen?

Sariel Har-Peled
quelle
21

Obwohl es nicht der eigentliche Grund ist, warum sie ursprünglich studiert wurden, sind endliche Automaten und die regulären Sprachen, die sie erkennen, so handhabbar, dass sie als Bausteine ​​für kompliziertere mathematische Theorien verwendet wurden. In diesem Zusammenhang sind insbesondere automatische Gruppen (Gruppen, in denen die Elemente durch Strings in einer regulären Sprache dargestellt werden können und in denen die Produkte von Elementen durch Gruppengeneratoren durch Finite-State-Wandler berechnet werden können) und softe Teilverschiebungen (Teilverschiebungen eines Verschiebungsraumes) zu nennen verbotene Wörter bilden eine reguläre Sprache). Es gibt also Gründe, sie zu studieren, auch wenn Sie sich eher für reine Mathematik als für Informatik interessieren.

Endliche Automaten wurden auch beim Entwurf von Algorithmen für andere Arten von Objekten verwendet. Ein Algorithmus von Culik zum Testen, ob ein eindimensionaler zellularer Automat reversibel ist, umfasst beispielsweise das Konstruieren, Modifizieren und Testen der Eigenschaften bestimmter NFAs. Ein 1986er FOCS-Artikel von Natarajan zeigte, wie man ein bestimmtes Problem bei der Konstruktion mechanischer Montagelinien löst, indem man es auf eine Berechnung über endliche Automaten reduziert.

David Eppstein
quelle
18

Sie stellen (mindestens) zwei verschiedene Fragen: (a) Welche Teile der Theorie bauen heutzutage auf endlichen Automaten auf? (b) Warum wurden überhaupt endliche Automaten entwickelt? Ich denke, der beste Weg, um letzteres anzusprechen, ist, sich die alten Papiere anzuschauen, wie zum Beispiel:

Hier sind die ersten beiden Absätze:

Turingmaschinen gelten weithin als abstrakter Prototyp digitaler Computer. Die Mitarbeiter auf diesem Gebiet sind jedoch immer mehr der Ansicht, dass die Vorstellung einer Turing-Maschine zu allgemein ist, als dass sie ein genaues Modell der tatsächlichen Computer darstellen könnte. Es ist bekannt , dass selbst für einfache Berechnungen ist es unmöglich , eine zu geben , a - priori - Obergrenze für die Menge des Bandes einer Turing - Maschine für jede gegebene Berechnung benötigen. Genau diese Eigenschaft macht Turings Konzept unrealistisch.

In den letzten Jahren ist die Idee eines endlichen Automaten in der Literatur aufgetaucht. Dies sind Maschinen mit nur einer begrenzten Anzahl von internen Zuständen, die für Speicher und Berechnung verwendet werden können. Die Beschränkung der Endlichkeit scheint der Vorstellung einer physischen Maschine eine bessere Annäherung zu geben. Natürlich können solche Maschinen nicht so viel wie Turing-Maschinen, aber der Vorteil, eine willkürliche allgemeine rekursive Funktion berechnen zu können, ist fraglich, da nur sehr wenige dieser Funktionen in praktischen Anwendungen auftreten.

Kurz gesagt, sie wurden als Modell für echte Computer entwickelt, die über endliche Ressourcen verfügen.

Radu GRIGore
quelle
16

Ein weiterer Grund ist, dass es sich um relativ praktische theoretische Modelle handelt. Eine Turing-Maschine ist, abgesehen von der Unmöglichkeit des unendlichen Bandes, irgendwie unangenehm für die Programmierung eines Computers (beachten Sie, dass dies zunächst keine gute Analogie ist!). PDAs und DFAs können jedoch durchaus als Modelle tatsächlicher Programme verwendet werden, da ein PDA / DFA-Design oft leicht in ein echtes Programm umgewandelt werden kann. Compiler-Design verwendet sie zum Beispiel ausgiebig. An solchen Verbindungspunkten zwischen Theorie und Praxis bekommen wir einen Überblick darüber, wie alles zusammen hängt und was wir können und was nicht.

Luke Mathieson
quelle
10

Schauen Sie sich das Spiel "Living Binary Adder" hier an: http://courstltc.blogspot.com/2012/12/living-binary-adder-game.html Früher habe ich meinen Schülern dieses Spiel in den frühen Kapiteln über DFA / vorgestellt. NFA. Es zeigt zwei wichtige Dinge in der Automatentheorie:

  1. Wie man einen mentalen Prozess in einen einfachen mechanischen umwandelt
  2. Was Abstraktion wirklich bedeutet. Zwei Zustände, wie oben C und Z, können alles sein: Transistoren in einem Computer, ein Hydraulikmechanismus oder zwei menschliche Spieler!

Dies bringt manchmal den "Aha" -Moment zu meinen Schülern.

Tarik FDIL
quelle
9

Das Konzept der DFAs ist sehr nützlich, um effiziente Lösungen für viele Arten von Problemen zu entwerfen. Ein Beispiel ist die Vernetzung. Jedes Protokoll kann als Zustandsmaschine implementiert werden. Wenn Sie die Lösung auf diese Weise implementieren, wird der Code einfacher und bedeutet eine geringere Fehlerrate. Dies bedeutet auch, dass Änderungen am Code einfacher sind und geringere Auswirkungen haben, was wiederum eine geringere Fehlerrate zur Folge hat.

Einige Leute finden es schwierig, ein Netzwerkprotokoll als eine Zustandsmaschine anzusehen, aber diejenigen, die den Sprung schaffen können, finden es sehr lohnend in Bezug auf die Rendite.

Geohump
quelle
Klingt sehr einnehmend, aber können Sie ein wenig mehr erklären? es ist schwer , ein Netzwerkprotokoll als eine Zustandsmaschine vorzustellen. Dankeschön.
hkoosha
3

Eigentlich fragen meine Studenten manchmal genau das - nachdem sie einen großen Teil des Semesters mit endlichen Automaten verbracht haben und endlich bei Turing-Maschinen angekommen sind. Warum so viel Zeit mit einem schwächeren Formalismus verbringen, wenn ein stärkerer verfügbar ist? Ich erkläre also den inhärenten Kompromiss zwischen Ausdruckskraft und analytischer Komplexität. Die reichhaltigeren Modelle sind in der Regel schwieriger zu analysieren. Die Dichotomie zwischen DFA und TM ist extrem, da das Mitgliedsproblem für das eine trivial und für das andere nicht berechenbar ist. Ein weniger extremes Beispiel wäre DFA vs. PDA. Das Mitgliedschaftsproblem für letztere erweist sich als effizient lösbar, aber die Lösung ist keineswegs trivial. Wir sehen dieses Phänomen in vielen Bereichen der Mathematik und Naturwissenschaften: Studieren Sie ein einfaches Modell, um ein möglichst vollständiges Verständnis zu erhalten, was in der Regel auch zu Einsichten in komplexere Modelle führt.

Aryeh
quelle
-4

Ich sehe mehrere Antworten, die FMs als "weniger" als Turing-Maschinen bezeichnen.

Ein Hauptaugenmerk in der Postgraduiertenklasse lag auf deren Gleichwertigkeit, nicht auf Unterschieden. Für jedes von uns untersuchte FSM-Modell mussten wir die Gleichwertigkeit mit Turing Machines nachweisen. Dies erfolgt durch die Implementierung einer Turing-Maschine im FSM. IIRC, wir haben auch einige andere Computermodelle untersucht, die kein TM implementieren, aber ich vergesse, was das waren. Der Punkt ist, dass Sie, wenn Sie ein TM implementieren können, jedes TM-Programm auf dem Modell ausführen können, vorausgesetzt, dass ein ausreichend großes Bandanalog für das ausgeführte Problem vorhanden ist.

Die Antwort auf die Frage lautete: TM ist das grundlegende Berechnungsmodell, aber nicht sehr praktisch, wenn es um den Bau nützlicher Maschinen geht. Daher die FSM-Modelle.

Dies wurde mir ins Auge gefasst, als ich ungefähr zur selben Zeit (1984) die Sprache FORTH entdeckte. Die Ausführungs-Engine basiert auf der reinen Realisierung eines Dual-Stack-PDAs. Wenn ich tiefer gehe, mag ich die gleiche Engine unter Expression-Compilern

Obwohl für mich die eigentliche Wirkung von FSM darin bestand, das Buch "Theory of Finite Automata" von Trakhtenbrot und Korzynski (?) Zu entdecken, als ich 18 Jahre alt war, eine Entdeckung, die mir im Wesentlichen meine Karriere verlieh.

David
quelle
1
Ich gehe jedoch davon aus, dass Sie keine Äquivalenz zwischen nichtdeterministischen endlichen Automaten und Turingmaschinen bewiesen haben. Es ist dieses spezielle Objekt, nach dem das OP gefragt hat und das der Rest von uns "kleiner" nennt.
Vijay D
2
Und ein FA ist nicht dasselbe wie ein FSM.
Suresh Venkat