Red de conocimiento informático - Conocimiento de la instalación - Representación formal de lo que es un autómata finito

Representación formal de lo que es un autómata finito

La expresión formal de lo que es un autómata finito es la siguiente:

Las reglas de las expresiones regulares son fáciles de entender, pero las expresiones regulares no se pueden usar directamente para analizar cadenas. Introducir una traducción adecuada en un programa informático. El modelo introducido por los medallistas se llama automatización finita (FA), a veces también llamada máquina de estados finitos (máquina de estados finitos).

Un autómata finito contiene primero un conjunto de estados humanos finitos, y también contiene la transición de un estado a otro. Un autómata finito parece un gráfico dirigido, donde los estados son los nodos del gráfico y las transiciones de estado son los bordes del gráfico. Además, debe haber un estado inicial y al menos un estado de aceptación entre estos estados.

Los autómatas son una herramienta muy poderosa. Para conocer su teoría completa, puede consultar libros de texto relevantes como Principios de compilación o Lenguajes formales y autómatas. Desde cierta perspectiva de definición, una máquina de Turing también es un tipo de autómata.

Los autómatas mencionados aquí se refieren específicamente a autómatas de estados finitos, denominados FA, que se dividen en autómatas deterministas (DFA) y autómatas no deterministas (NFA) según la naturaleza de la transición de estado. La capacidad de expresión de FA es equivalente a expresiones regulares o gramáticas regulares.

A puede considerarse como un gráfico ponderado dirigido. El conjunto de vértices del gráfico se denomina conjunto de estados del autómata. El conjunto de pesos del gráfico es el conjunto de letras del autómata. El gráfico representa el autómata. La situación de cambio medio. Además, el autómata también necesita especificar el estado inicial y el estado final según sea necesario. La función más básica de F es la descripción formal y favorece la implementación de la programación. Todos los autómatas mencionados a continuación hacen referencia a DFA.

Considere una cadena que consta únicamente de las letras a y . Se requiere que las letras b en la cadena aparezcan en pares; de lo contrario, la cadena es ilegal. En realidad, esta regla es muy sencilla de implementar y no requiere un autómata. Pero consideramos utilizar un autómata para emitir el juicio. Por cierto, la descripción de la expresión regular de esta regla es: (abb)*. La operación de asterisco representa repetición varias veces, incluidas cero veces.

Consideramos hacer un gráfico para representar el DFA que describe la regla. Sea el estado 1 el estado inicial. Obviamente, en el estado 1, no hemos violado las reglas. Por lo tanto, después de pasar la letra a, todavía podemos volver al estado 1. Después de pasar la letra b, no puede volver al estado 1. En este momento, se necesita un nuevo estado, por lo que es 2.

El estado 2 representa el estado "pendiente". En este estado, no es seguro que la cadena de caracteres sea ilegal, pero tampoco es legal. En el estado 2, si pasa el carácter 6, vuelve al estado legal, que es el estado 1; si pasa la letra a, la cadena es definitivamente ilegal; Cree un nuevo estado, concretamente el estado 3, para representar un estado ilegal.

El estado 3 es relativamente simple, ha alcanzado un estado ilegal y las letras posteriores no cambiarán este estado. Por tanto, el DFA se puede expresar de la siguiente manera.