Frage

Was ist die Verwendung von endlichen Automaten ? Und alle Konzepte, die wir in der Theorie der Berechnung studieren. Ich habe noch nie ihre Verwendungen gesehen.

War es hilfreich?

Lösung

Sie sind die theoretischen Grundlagen von Konzepten weit in Informatik und Programmierung, und sie zu verstehen helfen Sie, besser zu verstehen, wie sie zu benutzen (und was ihre Grenzen sind). Die drei grundlegend diejenigen sollten Ihnen begegnen werden, um die Macht zu erhöhen:

  • Endliche Automaten, die reguläre Ausdrücke äquivalent sind. Reguläre Ausdrücke werden in der Programmierung für passende Strings und Extrahieren von Text verwendet. Sie sind eine einfache Methode, einen Satz gültiger Zeichenketten zu beschreiben, mit einfachen Zeichen, Gruppierung und repitition. Sie können viel tun, aber sie können ausgewogene Sätze von Klammern nicht überein.
  • Push-down-Automaten, das entspricht kontextfreie Grammatiken. Text / Eingabe-Parser und Compiler verwenden diese, wenn reguläre Ausdrücke sind nicht leistungsfähig genug (und eines der Dinge, die Sie in das Studium endlichen Automaten lernen ist, was reguläre Ausdrücke können nicht tun, was zu wissen, von entscheidender Bedeutung ist, wenn Sie einen regulären Ausdruck zu schreiben, und wenn Gebrauch etwas kompliziert). Kontextfreien Grammatiken können beschreiben, „Sprachen“ (Sets gültiger Zeichenkette), wo die Gültigkeit an einem bestimmten Punkt in der String-Parsing nicht davon abhängt, was sonst noch gesehen worden ist.
  • Turing-Maschinen, das entspricht allgemeine Berechnung (alles, was Sie mit einem Computer tun können). Einige der Dinge, die Sie lernen, wenn Sie decken diese ermöglichen es Ihnen, die Grenzen der Berechnung selbst zu verstehen. Eine gute Theorie Kurs werden Sie über das Halteproblem, lehren, die Probleme zu identifizieren, ermöglicht es, für die es unmöglich ist, ein Programm zu schreiben. Sobald Sie ein solches Problem identifiziert haben, dann wissen Sie aufhören zu versuchen (oder es zu etwas zu verfeinern, was möglich ist).

die Theorie und die Grenzen dieser verschiedenen Rechenmechanismen zu verstehen können Sie Probleme besser und Programme verstehen und denken, tiefer über die Programmierung.

Es gab eine Anfrage für Arbeit über ein Jahr auf einen der freien publizierte vor Codierung Austauschstellen zu fragen, im Wesentlichen für ein Programm, das das Halteproblem gelöst. Mehrere Personen mit Angeboten reagiert, sagen sie „die Anforderungen verstanden“ und kann mit der „sofort beginnen“. Es war unmöglich, ein Programm zu schreiben, das die Anforderungen erfüllt. Berechnung Theorie zu verstehen, ermöglicht es Ihnen nicht, dass Bieter zu sein, die in der Öffentlichkeit zeigt, dass er wirklich (ein Angebot ein Problem zu untersuchen, bevor erklärt Verständnis und macht Mühe und nicht gründlich) versteht nicht berechnet wird.

Andere Tipps

Endliche Automaten sind sehr nützlich für die Kommunikationsprotokolle und für Strings gegen reguläre Ausdrücke entsprechen.

Automatons sind in Hard- und Software-Anwendungen eingesetzt. Lesen Sie bitte den Abschnitt implementation hier http://en.wikipedia.org/wiki/Finite- state_machine # Implementierung

Es gibt auch eine Vorstellung von Automata-basierter Programmierung. Bitte überprüfen Sie diese http://en.wikipedia.org/wiki/Automata-based_programming

cheers

Endliche Automaten sind z.B. verwendet formale Sprachen zu analysieren. Dies bedeutet, dass endliche Automaten sind sehr nützlich bei der Erstellung von Compiler und Interpreter-Techniken.

Historicaly, die Finite-State-Maschine zeigte, dass viele Probleme durch eine sehr einfache automatisieren gelöst werden kann.

Versuchen Sie natürlich einen Compiler nehmen. Sie werden sehr wahrscheinlich einen Compiler machen oder Interpreter einen endlichen Automaten unter Verwendung eines rekursiven Abstiegs-Parser zu implementieren.

Jede GUI kann jeder Workflow als endliche Automaten behandelt werden. Denken Sie an jeder Seite als ein Zustand und Übergänge aufgrund bestimmter Ereignisse auftreten. Vielleicht können Sie nicht auf eine bestimmte Seite oder die nächste Stufe des Workflows fort, bis eine Reihe von Bedingungen erfüllt sind.

Zum Beispiel Zustände einiger Objekte zu verwalten mit definierten Lebenszyklus. Als Beispiel hierfür: Aufträge im Buchladen. Ein Auftrag kann folgende Zustände haben: -ordered -payed -Versand -done

und das Programm der endlichen Automaten weiß, wie ein Zustand von anderen geändert werden kann.

Die endlichen Automaten sind eine Art der Zustandsmaschine (SM). Im Allgemeinen SMs sind für das Parsen formale Sprachen verwendet.

Sie können als formale Sprache viele Unternehmen verwenden, nicht nur Zeichen.

Und reguläre Sprache ist eine Art der Formensprache. Es gibt einige Theorie, die zeigt, welche Art der SM besser ist, eine reguläre Sprache zu analysieren: http://en.wikipedia.org/wiki/Regular_language

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top