Ir al contenido principal

Autómata finito determinista

¿Qué es?

Es aquel que sólo puede estar en un único estado después de leer cualquier secuencia de entradas. El término “determinista” hace referencia al hecho de que para cada entrada sólo existe uno y sólo un estado al que el autómata puede hacer la transición a partir de su estado actual.

La transición solo puede llevar a un estado ya definido

Construcción

Un autómata finito determinista consta de: 

1. Un conjunto finito de estados, a menudo designado como Q. 

2. Un conjunto finito de símbolos de entrada, a menudo designado como Σ. 

3. Una función de transición que toma como argumentos un estado y un símbolo de entrada y devuelve un estado. La función de transición se designa habitualmente como δ. En nuestra representación gráfica informal del autómata, δ se ha representa mediante arcos entre los estados y las etiquetas sobre los arcos. Si q es un estado y a es un símbolo de entrada, entonces δ(q,a) es el estado p tal que existe un arco etiquetado a que va desde q hasta p. 2 

4. Un estado inicial, uno de los estados de Q. 

5. Un conjunto de estados finales o de aceptación F. El conjunto F es un subconjunto de Q.

Notación

Hay disponibles dos notaciones más cómodas para describir los autómatas:

1. Un diagrama de transiciones, que es un grafo. 

2. Una tabla de transiciones, que es una ordenación tabular de la función δ, la cual especifica el conjunto de estados y el alfabeto de entrada.

Diagramas de transiciones 

Un diagrama de transiciones de un AFD A = (Q,Σ,δ,q0,F) es un grafo definido como sigue: 

a) Para cada estado de Q, existe un nodo. 

b) Para cada estado q de Q y cada símbolo de entrada a de Σ, sea δ(q,a) = p. Entonces, el diagrama de transiciones tiene un arco desde el nodo q hasta el nodo p, etiquetado como a. Si existen varios símbolos de entrada que dan lugar a transiciones desde q hasta p, entonces el diagrama de transiciones puede tener un único arco etiquetado con la lista de estos símbolos. 

c) Existe un flecha dirigida al estado inicial q0, etiquetada como Inicio. Esta flecha no tiene origen en ningún nodo. 

d) Los nodos correspondientes a los estados de aceptación (los que pertenecen a 

F) están marcados con un doble círculo. Los estados que no pertenecen a F tienen un círculo simple.

Lenguaje

Ahora podemos definir el lenguaje de un AFD A = (Q,Σ,δ,q0,F). Este lenguaje se designa por L(A) y se define como:

L(A) = {w | δ(q0,w) pertenece a F}

Es decir, el lenguaje de A es el conjunto de cadenas w que parten del estado inicial q0 y van hasta uno de los estados de aceptación. Si L es L(A) para un determinado AFD A, entonces decimos que L es un lenguaje regular.

El “lenguaje” del AFD es el conjunto de todas las cadenas que acepta

EJ.



Comentarios

Entradas más populares de este blog

3.1 CONCEPTO DEFINICIÓN Y CLASIFICACIÓN DE AUTÓMATA FINITO (AF)

Autómata  finito. es un modelo computacional que realiza cómputos en forma automática sobre una entrada para producir una salida. Este modelo está conformado por un alfabeto, un conjunto de estados y un conjunto de transiciones entre dichos estados. Su funcionamiento se basa en una función de transición, que recibe a partir de un estado inicial una cadena de caracteres pertenecientes al alfabeto (la entrada), y que va leyendo dicha cadena a medida que el autómata se desplaza de un estado a otro, para finalmente detenerse en un estado final o de aceptación, que representa la salida. La finalidad de los autómatas finitos es la de reconocer lenguajes regulares, que corresponden a los lenguajes formales más simples según la Jerarquía de Chomsky. Definición formal Formalmente: E: alfabeto de entrada. Q: conjunto de estados; es conjunto finito no vacío. f: función de transición. f(p, a)=q q0 : (perteneciente a Q) estado inicial. F : (perteneciente a Q) conjunto de estados finales o de ac...

1.3 Lenguajes, tipos y herramientas

LENGUAJES: Es un conjunto de cadenas, de todas las seleccionadas de un Σ*. donde Σ determinado el alfabeto se denomina lenguaje. Si Σ es un alfabeto y L Σ*, entonces L es un lenguaje de Σ. Observe que un lenguaje de Σ no necesita incluir cadenas con todos los símbolos de Σ, ya que una vez que hemos esta que L es un lenguaje de Σ, también sabemos que es un lenguaje de cualquier alfabeto que sea un súper conjunto de Σ. La elección del termino "lenguaje" puede parecer extraña. Sin embargo, los lenguajes habituales pueden interpretarse como conjuntos de cadenas. Un ejemplo seria el Ingles, donde la colección de las palabras correctas inglesas es un conjunto de cadenas del alfabeto que consta de todas las letras. Otro ejemplo es el lenguaje C.   Tipos de lenguajes: LENGUAJE NATURAL:  Nosotros estamos relacionados con el concepto tradicional de gramática que, de esta forma intuitiva, podemos considerar un conjunto de reglas el cual nos indican que es correcto y que no lo es del...

Conceptos básicos para el Analizador léxico

Analizador léxico El análisis léxico es la primera fase en el diseño del compilador. Un Lexer toma el código fuente modificado que está escrito en forma de oraciones. En otras palabras, te ayuda a convertir una secuencia de caracteres en una secuencia de fichas. El analizador léxico divide esta sintaxis en una serie de tokens. Elimina cualquier espacio adicional o comentario escrito en el código fuente. Los programas que realizan análisis léxico en el diseño del compilador se denominan analizadores léxicos o lexemas. Un lexema contiene tokenizador o escáner. Si el analizador léxico detecta que el token no es válido, genera un error. La función de analizador léxico en el diseño del compilador es leer flujos de caracteres del código fuente, buscar tokens legales y pasar los datos al analizador de sintaxis cuando lo requiera. Lexical Analysis Lexical Analysis is the very first phase in the compiler designing. A Lexer takes the modified source code which is written in the form of sentences...