Está en la página 1de 60

a Introduccion los Automatas Denicion formal de un Automata Finito Determin stico Automata Finito NoDetermin stico Automatas Finitos

nitos y Lenguajes Formales Eliminacion de las Transiciones-

Automatas Finitos
Leopoldo Altamirano, Eduardo Morales
INAOE

Verano, 2011

(INAOE)

Verano, 2011

1 / 60

Contenido
a Introduccion los Automatas Denicion formal de un Automata Finito Determin stico Automata Finito NoDetermin stico Automatas Finitos y Lenguajes Formales Eliminacion de las Transiciones-

a los Automatas 1 Introduccion formal de un Automata 2 Denicion Finito Determin stico 3 Automata Finito No-Determin stico 4 Automatas Finitos y Lenguajes Formales de las Transiciones- 5 Eliminacion

(INAOE)

Verano, 2011

2 / 60

a los Automatas Introduccion

a los Automatas Introduccion


a Introduccion los Automatas Denicion formal de un Automata Finito Determin stico Automata Finito NoDetermin stico Automatas Finitos y Lenguajes Formales Eliminacion de las Transiciones-

Automata : Conjunto de estados + Control Cambio de estados en respuesta a una entrada. Tipo de Control: Determin un estado stico: Para cada entrada, hay solo al que el automata puede ir desde el estado en que se encuentre. No determin stico: Un automata nito es no-determin stico cuando se permite que el AF tenga 0 estados siguientes para cada par o mas estado-entrada.

(INAOE)

Verano, 2011

3 / 60

a los Automatas Introduccion

Automatas No-Deterministas
a Introduccion los Automatas Denicion formal de un Automata Finito Determin stico Automata Finito NoDetermin stico Automatas Finitos y Lenguajes Formales Eliminacion de las Transiciones-

Si anadimos la propiedad de no-determinismo, no anadimos poder al automata. Osea que no podemos denir ningun lenguaje que no se pueda denir con el automata determin stico. Con la propiedad de no-determinismo se agrega eciencia al describir una aplicacion:
Permite programar soluciones en un lenguaje de mas

alto nivel
Hay un algoritmo para compilar un N-DFA en un DFA y

poder ser ejecutado en una computadora convencional

(INAOE)

Verano, 2011

4 / 60

a los Automatas Introduccion

Automatas No-Deterministas
a Introduccion los Automatas Denicion formal de un Automata Finito Determin stico Automata Finito NoDetermin stico Automatas Finitos y Lenguajes Formales Eliminacion de las Transiciones-

Extension del N-DFA para hacer saltos de un estado a

otro espontaneamente, con la cadena vac a () como aceptan entrada: N-DFA. Estos automatas tambien lenguajes regulares. Ejemplo: Compra con dinero-electronico. El cliente utiliza un archivo (env o por internet) para pagar al comerciante. El comerciante al recibir el archivo pide al banco que le transeran el dinero.

(INAOE)

Verano, 2011

5 / 60

a los Automatas Introduccion

Ejemplo
a Introduccion los Automatas Denicion formal de un Automata Finito Determin stico Automata Finito NoDetermin stico Automatas Finitos y Lenguajes Formales Eliminacion de las Transiciones-

2.1.1 2.1.5 del libro Tarea: Leer la seccion

(INAOE)

Verano, 2011

6 / 60

formal de un Automata Denicion Finito Determin stico

Formal de un Automata Denicion


a Introduccion los Automatas Denicion formal de un Automata Finito Determin stico Automata Finito NoDetermin stico Automatas Finitos y Lenguajes Formales Eliminacion de las Transiciones-

Un AF se representa como la 5-tupla: A = (Q , , , q0 , F ). Donde:


1 2 3 4

Q es un conjunto nito de estados. es un alfabeto de s mbolos de entrada. q0 es el estado inicial/de comienzo. estados nales/de aceptacion . F representa cero o mas

(INAOE)

Verano, 2011

7 / 60

formal de un Automata Denicion Finito Determin stico

de Transicion funcion
a Introduccion los Automatas Denicion formal de un Automata Finito Determin stico Automata Finito NoDetermin stico Automatas Finitos y Lenguajes Formales Eliminacion de las Transiciones-

de transicion . Esta funcion: es una funcion


Toma un estado y un s mbolo de entrada como

argumentos.
Regresa un estado. Una regla de se escribe como (q , a) = p, donde q y

p son estados, y a es un s mbolo de entrada.


Intuitivamente: Si el AF esta en un estado q , y recibe

una entrada a, entonces el AF va al estado p (nota: q = p OK).

(INAOE)

Verano, 2011

8 / 60

formal de un Automata Denicion Finito Determin stico

Ejemplo
a Introduccion los Automatas Denicion formal de un Automata Finito Determin stico Automata Finito NoDetermin stico Automatas Finitos y Lenguajes Formales Eliminacion de las Transiciones-

Ejemplo: Un Automata A que acepta L = {x 01y |x , y {0, 1} }


El DFA acepta cadenas que tienen 01 en alguna parte

de la cadena
El lenguaje del DFA es el conjunto de cadenas que

acepta {w |w tiene la forma x 01y para algunas de 0s y 1s }. cadenas x y y que consisten solo

(INAOE)

Verano, 2011

9 / 60

formal de un Automata Denicion Finito Determin stico

Tabla de Transiciones
a Introduccion los Automatas Denicion formal de un Automata Finito Determin stico Automata Finito NoDetermin stico Automatas Finitos y Lenguajes Formales Eliminacion de las Transiciones-

El Automata anterior puede ser representado con una tabla de transiciones, denido como A = (q0 , q1 , q2 , 0, 1, , q0 , q1 ), de la siguiente forma: 0 1 q0 q2 q0 q1 q1 q1 q2 q2 q1

(INAOE)

Verano, 2011

10 / 60

formal de un Automata Denicion Finito Determin stico

Diagrama de Transiciones
a Introduccion los Automatas Denicion formal de un Automata Finito Determin stico Automata Finito NoDetermin stico Automatas Finitos y Lenguajes Formales Eliminacion de las Transiciones-

Automata representado con un diagrama de transiciones:

(INAOE)

Verano, 2011

11 / 60

formal de un Automata Denicion Finito Determin stico

Convenciones
a Introduccion los Automatas Denicion formal de un Automata Finito Determin stico Automata Finito NoDetermin stico Automatas Finitos y Lenguajes Formales Eliminacion de las Transiciones-

Se utilizan algunas convenciones para evitar mencionar el tipo de cada nombre, para esto utilizamos las siguientes reglas:
Los s mbolos de entrada son a, b , etc., o d gitos. Las cadenas de s mbolos de entrada son u , v , . . . , z . Los estados son q , p , etc.

(INAOE)

Verano, 2011

12 / 60

formal de un Automata Denicion Finito Determin stico

Diagrama de Transiciones
a Introduccion los Automatas Denicion formal de un Automata Finito Determin stico Automata Finito NoDetermin stico Automatas Finitos y Lenguajes Formales Eliminacion de las Transiciones-

Un AF se puede representar por medio de un grafo; los nodos representan estados; un arco de p a q se etiqueta con el conjunto de s mbolos de entrada a tal que (q , a) = p .
No hay arco si a no existe. El estado de inicio se indica con la palabra start con

una echa.
Los estados de aceptacion tienen doble c rculo.

(INAOE)

Verano, 2011

13 / 60

formal de un Automata Denicion Finito Determin stico

Ejemplo
a Introduccion los Automatas Denicion formal de un Automata Finito Determin stico Automata Finito NoDetermin stico Automatas Finitos y Lenguajes Formales Eliminacion de las Transiciones-

(INAOE)

Verano, 2011

14 / 60

formal de un Automata Denicion Finito Determin stico

) extendidas ( Funciones de transicion


a Introduccion los Automatas Denicion formal de un Automata Finito Determin stico Automata Finito NoDetermin stico Automatas Finitos y Lenguajes Formales Eliminacion de las Transiciones-

Intuitivamente, un FA acepta una cadena w = a1 a2 . . . an si hay una ruta en el diagrama de transiciones que:
1 2 3

Empieza en el estado de inicio, y Termina en un estado de aceptacion, Tiene una secuencia de etiquetas a1 , a2 , . . . , an .

(INAOE)

Verano, 2011

15 / 60

formal de un Automata Denicion Finito Determin stico

Ejemplo
a Introduccion los Automatas Denicion formal de un Automata Finito Determin stico Automata Finito NoDetermin stico Automatas Finitos y Lenguajes Formales Eliminacion de las Transiciones-

Ejemplo: El siguiente AF acepta la cadena 01101:

(INAOE)

Verano, 2011

16 / 60

formal de un Automata Denicion Finito Determin stico

de Transicion Funcion
a Introduccion los Automatas Denicion formal de un Automata Finito Determin stico Automata Finito NoDetermin stico Automatas Finitos y Lenguajes Formales Eliminacion de las Transiciones-

de transicion a Formalmente, extendemos la funcion (q , w ), donde w puede ser cualquier cadena de s mbolos de entrada: (q , ) = q (i.e., nos quedamos en el mismo lugar Base: si no recibimos una entrada). (q , w ) = ( (q , x ), a), donde x es una Induccion: cadena, y a es un solo s mbolo (i.e., ver a donde va el para el ultimo AF con x , luego buscar la transicion s mbolo a partir de ese estado). Hecho importante con una prueba inductiva directa: realmente representa rutas. Esto es, si w = a1 a2 . . . an , y (pi , ai ) = pi +1 , i = 0, 1, . . . , n 1, entonces (p0 , w ) = pn .

(INAOE)

Verano, 2011

17 / 60

formal de un Automata Denicion Finito Determin stico

de Transicion Funcion
a Introduccion los Automatas Denicion formal de un Automata Finito Determin stico Automata Finito NoDetermin stico Automatas Finitos y Lenguajes Formales Eliminacion de las Transiciones-

Aceptacion de Cadenas: Un AF A = (Q , , , q0 , F )

(p0 , w ) esta en F . acepta la cadena w si

Lenguaje de un AF: Un AF acepta el lenguaje

(p 0, w ) F }. L(A) = {w |

(INAOE)

Verano, 2011

18 / 60

formal de un Automata Denicion Finito Determin stico

Algunas confusiones frecuentes


a Introduccion los Automatas Denicion formal de un Automata Finito Determin stico Automata Finito NoDetermin stico Automatas Finitos y Lenguajes Formales Eliminacion de las Transiciones-

cuando se trabaja con Una gran fuente de confusion automatas (o matematicas en general) son los errores de tipo:
Ejemplo: No confundir A, un FA, i.e., un programa, con

L(A), el cual es del tipo conjunto de cadenas.


Ejemplo: El estado de inicio q0 es del tipo estado pero

F son del tipo conjunto de los estados de aceptacion estados. Ejemplo enganoso: Es a un s mbolo o una cadena de longitud 1? Respuesta: Depende del contexto, i.e., se (q , a), usa en (q , a), donde es un s mbolo, o en donde es una cadena?

(INAOE)

Verano, 2011

19 / 60

formal de un Automata Denicion Finito Determin stico

Ejemplo:
a Introduccion los Automatas Denicion formal de un Automata Finito Determin stico Automata Finito NoDetermin stico Automatas Finitos y Lenguajes Formales Eliminacion de las Transiciones-

las cadenas que tienen un Un DFA que acepta todas y solo numero par de 0s y tambien un numero par de 1s

(INAOE)

Verano, 2011

20 / 60

formal de un Automata Denicion Finito Determin stico

Ejemplo (cont.)
a Introduccion los Automatas Denicion formal de un Automata Finito Determin stico Automata Finito NoDetermin stico Automatas Finitos y Lenguajes Formales Eliminacion de las Transiciones-

(INAOE)

Verano, 2011

21 / 60

formal de un Automata Denicion Finito Determin stico

Ejemplo (cont.)
a Introduccion los Automatas Denicion formal de un Automata Finito Determin stico Automata Finito NoDetermin stico Automatas Finitos y Lenguajes Formales Eliminacion de las Transiciones-

tabular del automata Representacion anterior: 0 1 q0 q2 q1 q1 q3 q0 q2 q0 q3 q3 q1 q2 Ejemplo: Problema 2.2.1.a Ejemplo: Problema 2.2.4.a

(INAOE)

Verano, 2011

22 / 60

Automata Finito No-Determin stico

Automata Finito No-Determin stico


a Introduccion los Automatas Denicion formal de un Automata Finito Determin stico Automata Finito NoDetermin stico Automatas Finitos y Lenguajes Formales Eliminacion de las Transiciones-

Un automata nito es no-determin stico cuando se permite estados siguientes para cada par que el AF tenga 0 o mas estado-entrada:

(INAOE)

Verano, 2011

23 / 60

Automata Finito No-Determin stico

Automata Finito No-Determin stico


a Introduccion los Automatas Denicion formal de un Automata Finito Determin stico Automata Finito NoDetermin stico Automatas Finitos y Lenguajes Formales Eliminacion de las Transiciones-

En el ejemplo anterior, se puede apreciar que de q0 se

a q1 con la entrada 0, y esto hace al puede ir a q0 o AF ser no-determinista.


Un NFA puede estar en varios estados a la vez o se

estado ir. puede ver que adivina a que Por ejemplo, el siguiente automata acepta todas las cadenas que terminan en 01:

(INAOE)

Verano, 2011

24 / 60

Automata Finito No-Determin stico

Automata Finito No-Determin stico


a Introduccion los Automatas Denicion formal de un Automata Finito Determin stico Automata Finito NoDetermin stico Automatas Finitos y Lenguajes Formales Eliminacion de las Transiciones-

Lo que pasa al procesar como entrada a 00101 es:

(INAOE)

Verano, 2011

25 / 60

Automata Finito No-Determin stico

Automata Finito No-Determin stico


a Introduccion los Automatas Denicion formal de un Automata Finito Determin stico Automata Finito NoDetermin stico Automatas Finitos y Lenguajes Formales Eliminacion de las Transiciones-

Un NFA es una herramienta importante para disenar

procesadores de cadenas, e.g., grep, analizadores disenar NFAs que encuentren lexicos, etc. Es facil secuencias de palabras en texto.
NFA: Formalmente, un NFA es una qu ntupla

A = (Q , , , q0 , F ), donde todo es un DFA, pero (q , a) nos regresa un conjunto de estados en lugar de un solo estado. De hecho puede ser vac o, tener un solo estado estados. o tener mas
Un NFA acepta, al igual que un DFA, lenguajes

regulares

(INAOE)

Verano, 2011

26 / 60

Automata Finito No-Determin stico

Ejemplo
a Introduccion los Automatas Denicion formal de un Automata Finito Determin stico Automata Finito NoDetermin stico Automatas Finitos y Lenguajes Formales Eliminacion de las Transiciones-

Por ejemplo, para el NFA que acepta cadenas que acaban de transicion es: en 01 su funcion 0 {q0 , q1 } 1 {q0 } {q2 }

q0 q1 *q2

Como puede observarse, todo se especica en conjuntos.

(INAOE)

Verano, 2011

27 / 60

Automata Finito No-Determin stico

a Extension
a Introduccion los Automatas Denicion formal de un Automata Finito Determin stico Automata Finito NoDetermin stico Automatas Finitos y Lenguajes Formales Eliminacion de las Transiciones-

de Similarmente a un DFA, podemos denir la funcion transicion extendida como sigue: (q , ) = q Base:
Induccion: Supongamos w es de la forma w = xa,

donde a es el s mbolo terminal y x es el resto de w . (q , x ) = {p1 , p2 , . . . , pk }. que: Supongamos tambien k i =1 (pi , a) = {r1 , r2 , . . . , rm }. Entonces (q , w ) = {r1 , r2 , . . . , rm }. (q , w ) primero En otras palabras calculamos siguiendo cualquier calculando (q , x ) y despues transicion de algunos de esos estados etiquetada con a.

(INAOE)

Verano, 2011

28 / 60

Automata Finito No-Determin stico

Ejemplo:
a Introduccion los Automatas Denicion formal de un Automata Finito Determin stico Automata Finito NoDetermin stico Automatas Finitos y Lenguajes Formales Eliminacion de las Transiciones-

(q0 , 00101) para el Por ejemplo, podemos calcular automata anterior: (q0 , ) = {q0 } (q0 , 0) = (q0 , 0) = {q0 , q1 } (q0 , 00) = (q0 , 0) (q1 , 0) = {q0 , q1 } (q0 , 001) = (q0 , 1) (q1 , 1) = {q0 } {q2 } = {q0 , q2 } (q0 , 0010) = (q0 , 0) (q2 , 0) = {q0 , q1 } = {q0 , q1 } (q0 , 00101) = (q0 , 1) (q1 , 1) = {q0 } {q2 } = {q0 , q2 } Que tiene un estado nal.

(INAOE)

Verano, 2011

29 / 60

Automata Finito No-Determin stico

Lenguajes de un NFA
a Introduccion los Automatas Denicion formal de un Automata Finito Determin stico Automata Finito NoDetermin stico Automatas Finitos y Lenguajes Formales Eliminacion de las Transiciones-

El lenguaje aceptado por un NFA, A, es: (q0 , w ) F = }. L(A) = {w |

Equivalencia entre un DFA y un NFA facil de denir, aunque al Un NFA es normalmente mas mismo tiempo, para cualquier NFA N existe un DFA D tal que L(D ) = L(N ) y viceversa. de subconjunto que Para esto se usa la construccion muestra un ejemplo de como un automata se puede construir a partir de otro.

(INAOE)

Verano, 2011

30 / 60

Automata Finito No-Determin stico

de Subconjunto Construccion
a Introduccion los Automatas Denicion formal de un Automata Finito Determin stico Automata Finito NoDetermin stico Automatas Finitos y Lenguajes Formales Eliminacion de las Transiciones-

Para cada NFA existe un DFA equivalente (acepta el mismo lenguaje). Pero el DFA puede tener un numero exponencial de estados. Sea N = (QN , , N , q0 , FN ) un NFA. El DFA equivalente es construido a partir del subconjunto de construccion D = (QD , , D , {q0 }, FD ), donde:
|QD | = 2|QN | ; i.e., QD es el conjunto de todos los

subconjuntos de QN .
FD es el conjunto de conjuntos S en QD tal que

S FN = .
Para cualquier S QN y a ,

de todos los D (S , a) = pS N (p , a), osea, la union estados a partir de p con entrada a. D ({q1 , q2 , . . . , qk }, a) = N (p1 , a) N (p2 , a) . . . N (pk , a).
(INAOE) Verano, 2011 31 / 60

Automata Finito No-Determin stico

de Subconjunto Construccion
a Introduccion los Automatas Denicion formal de un Automata Finito Determin stico Automata Finito NoDetermin stico Automatas Finitos y Lenguajes Formales Eliminacion de las Transiciones-

de transicion D del NFA anterior es: La funcion

(INAOE)

Verano, 2011

32 / 60

Automata Finito No-Determin stico

de Subconjunto Construccion
a Introduccion los Automatas Denicion formal de un Automata Finito Determin stico Automata Finito NoDetermin stico Automatas Finitos y Lenguajes Formales Eliminacion de las Transiciones-

Al existir 3 estados, tenemos 8 subconjuntos. Esto mismo lo podemos poner como:

(INAOE)

Verano, 2011

33 / 60

Automata Finito No-Determin stico

de Subconjunto Construccion
a Introduccion los Automatas Denicion formal de un Automata Finito Determin stico Automata Finito NoDetermin stico Automatas Finitos y Lenguajes Formales Eliminacion de las Transiciones-

Lo cual es un DFA (simplemente cambiando la

es importante notar que no todos notacion). Tambien los estados pueden ser alcanzados. En particular, solo los estados B, E y F son accesibles, por lo que los los podemos eliminar. demas
Una forma de no construir todos los subconjuntos para

encontrar que solo unos cuantos son despues para los estados accesibles, es construir la tabla solo accesibles (lazy evaluation).

(INAOE)

Verano, 2011

34 / 60

Automata Finito No-Determin stico

Ejemplo (cont.)
a Introduccion los Automatas Denicion formal de un Automata Finito Determin stico Automata Finito NoDetermin stico Automatas Finitos y Lenguajes Formales Eliminacion de las Transiciones-

Para el ejemplo anterior: D (q0 , 0) = {q0 , q1 } D (q0 , 1) = {q1 } D (q0 , q1 , 0) = {q0 , q1 } D (q0 , q1 , 1) = {q0 , q2 } = N (q0 , 1) N (q1 , 1) D (q0 , q2 , 0) = {q0 , q1 } D (q0 , q2 , 1) = {q0 }

(INAOE)

Verano, 2011

35 / 60

Automata Finito No-Determin stico

Ejemplo (cont.)
a Introduccion los Automatas Denicion formal de un Automata Finito Determin stico Automata Finito NoDetermin stico Automatas Finitos y Lenguajes Formales Eliminacion de las Transiciones-

Lo que nos queda:

(INAOE)

Verano, 2011

36 / 60

Automata Finito No-Determin stico

Prueba de Equivalencia
a Introduccion los Automatas Denicion formal de un Automata Finito Determin stico Automata Finito NoDetermin stico Automatas Finitos y Lenguajes Formales Eliminacion de las Transiciones-

de |w | (la prueba esta en el Teorema clave: induccion D ({q0 }, w ) = N (q0 , w ). Lo que queremos probar es libro): que si D = (QD , , D , {q0 }, FD ) es construido a partir del de NFA N = (QN , , N , q0 , FN ) usando construccion subconjuntos, entonces L(D ) = L(N ).

(INAOE)

Verano, 2011

37 / 60

Automata Finito No-Determin stico

Prueba de Equivalencia
a Introduccion los Automatas Denicion formal de un Automata Finito Determin stico Automata Finito NoDetermin stico Automatas Finitos y Lenguajes Formales Eliminacion de las Transiciones-

en w que Queremos probar por induccion D ({q0 }, w ) = N (q0 , w ). Las dos funciones de transicion regresan conjuntos de estados de QN , pero la determin stica lo interpreta como uno solo de sus estados QD . D ({q0 }, ) = N (q0 , ) = {q0 }. Base: w = , en este caso

(INAOE)

Verano, 2011

38 / 60

Automata Finito No-Determin stico

Prueba de Equivalencia
a Introduccion los Automatas Denicion formal de un Automata Finito Determin stico Automata Finito NoDetermin stico Automatas Finitos y Lenguajes Formales Eliminacion de las Transiciones-

: Tomamos w de longitud n + 1 y asumimos que Induccion se cumple el enunciado para n, o sea que D ({q0 }, x ) = N (q0 , x ). Sean estos dos conjuntos de estados = {p1 , p2 , . . . , pk }. Dividimos a w en xa. La para el NFA nos dice que: de denicion N (q0 , w ) = k N (pi , a). i =1 de subconjuntos: Por la construccion D ({p1 , p2 , . . . , pk }, a) = k i =1 N (pi , a)

(INAOE)

Verano, 2011

39 / 60

Automata Finito No-Determin stico

Prueba de Equivalencia
a Introduccion los Automatas Denicion formal de un Automata Finito Determin stico Automata Finito NoDetermin stico Automatas Finitos y Lenguajes Formales Eliminacion de las Transiciones-

D ({q0 }, x ) = {p1 , p2 , . . . , pk } tenemos Usando esto, y que que: D ({q0 }, w ) = D ( D ({q0 }, x ), a) = D ({p1 , p2 , . . . , pk }, a) = k i =1 N (pi , a) Tanto D como N aceptan w cuando contiene un estado en FN. Consecuencia: L(D ) = L(N ).

(INAOE)

Verano, 2011

40 / 60

Automata Finito No-Determin stico

Ejemplos
a Introduccion los Automatas Denicion formal de un Automata Finito Determin stico Automata Finito NoDetermin stico Automatas Finitos y Lenguajes Formales Eliminacion de las Transiciones-

Ejemplo: Convertir el siguiente NFA a un DFA 0 1 p {p , q } {p } {r } {r } q r {s} {s} {s} s

(INAOE)

Verano, 2011

41 / 60

Automata Finito No-Determin stico

Ejemplo
a Introduccion los Automatas Denicion formal de un Automata Finito Determin stico Automata Finito NoDetermin stico Automatas Finitos y Lenguajes Formales Eliminacion de las Transiciones-

a un NFA En este ejemplo un tanto imaginario, se disenar para aceptar cadenas sobre el alfabeto {1, 2, 3} de tal manera que el ultimo s mbolo aparezca previamente, sin alto entre esa ninguna intervencion de un s mbolo mas del s previa aparicion mbolo, e.g., . . . 11, . . . 21112, . . . 312123.
Truco: Utilizar el estado de inicio con el signicado

Creo que todav a no se ha visto el s mbolo que corresponde al s mbolo nal. Otros tres estados representando una eleccion de que el s mbolo con que acaba la cadena se ha visto y se recuerda de que s mbolo se trata.

(INAOE)

Verano, 2011

42 / 60

Automata Finito No-Determin stico

Ejemplo
a Introduccion los Automatas Denicion formal de un Automata Finito Determin stico Automata Finito NoDetermin stico Automatas Finitos y Lenguajes Formales Eliminacion de las Transiciones-

(INAOE)

Verano, 2011

43 / 60

Automata Finito No-Determin stico

Ejemplo (cont.)
a Introduccion los Automatas Denicion formal de un Automata Finito Determin stico Automata Finito NoDetermin stico Automatas Finitos y Lenguajes Formales Eliminacion de las Transiciones-

del NFA Previo. Subconjunto de Construccion Un truco practico importante utilizado por analizadores lexicos y otros procesadores de texto es ignorar los (frecuentemente muchos) estados que no son accesibles desde el estado de inicio (i.e., no hay ruta que lleve a ellos).
Para el ejemplo anterior de NFA, de los 32

subconjuntos posibles, solo 15 son accesibles. Calculando las transiciones por demanda obtenemos el siguiente D :

(INAOE)

Verano, 2011

44 / 60

Automata Finito No-Determin stico

Ejemplo (cont.)
a Introduccion los Automatas Denicion formal de un Automata Finito Determin stico Automata Finito NoDetermin stico Automatas Finitos y Lenguajes Formales Eliminacion de las Transiciones-

{p } {pq } {pqt } {pr } {prt } {ps} {pst } {prs} {prst } {pqs} {pqst } {pqr } {pqrt } {pqrs} {pqrst }
(INAOE)

1 {pq } {pqt } {pqt } {pqr } {pqr } {pqs} {pqs} {pqrs} {pqrs} {pqst } {pqst } {pqrt } {pqrt } {pqrst } {pqrst }

2 {pr } {pr } {pr } {prt } {prt } {prs} {prs} {prst } {prst } {prs} {prs} {prt } {prt } {prst } {prst }

3 {ps} {ps} {ps} {ps} {ps} {pst } {pst } {pst } {pst } {pst } {pst } {ps} {ps} {pst } {pst }
Verano, 2011 45 / 60

Automata Finito No-Determin stico

Ejemplo
a Introduccion los Automatas Denicion formal de un Automata Finito Determin stico Automata Finito NoDetermin stico Automatas Finitos y Lenguajes Formales Eliminacion de las Transiciones-

un NFA que reconozca los siguientes Ejemplo: Disene conjuntos de cadenas: abc , abd y aacd , suponiendo que el alfabeto es {a, b , c , d }

(INAOE)

Verano, 2011

46 / 60

Automatas Finitos y Lenguajes Formales

Automata Finito con Transiciones-


a Introduccion los Automatas Denicion formal de un Automata Finito Determin stico Automata Finito NoDetermin stico Automatas Finitos y Lenguajes Formales Eliminacion de las Transiciones-

Sea una etiqueta en arcos. No hay ningun de w todav cambio extra: la aceptacion a

se da como la existencia de la ruta desde un estado de con etiqueta w . inicio a un estado de aceptacion
Pero puede aparecer en los arcos, y signica que hay

visible una cadena vac a (i.e., no tiene una contribucion para w ).

(INAOE)

Verano, 2011

47 / 60

Automatas Finitos y Lenguajes Formales

Ejemplo
a Introduccion los Automatas Denicion formal de un Automata Finito Determin stico Automata Finito NoDetermin stico Automatas Finitos y Lenguajes Formales Eliminacion de las Transiciones-

(INAOE)

Verano, 2011

48 / 60

Automatas Finitos y Lenguajes Formales

Ejemplo (cont.)
a Introduccion los Automatas Denicion formal de un Automata Finito Determin stico Automata Finito NoDetermin stico Automatas Finitos y Lenguajes Formales Eliminacion de las Transiciones-

001 es aceptado siguiendo la ruta q , s , r , q , r , s , con la

etiqueta 001 = 001. Podemos disenar un automata que acepte cadenas de numeros que tengan un signo al inicio opcional, seguida posiblemente de una cadena de decimales, seguida de un punto decimal y posiblemente de otra cadena de decimales.

(INAOE)

Verano, 2011

49 / 60

Automatas Finitos y Lenguajes Formales

Ejemplo
a Introduccion los Automatas Denicion formal de un Automata Finito Determin stico Automata Finito NoDetermin stico Automatas Finitos y Lenguajes Formales Eliminacion de las Transiciones-

(INAOE)

Verano, 2011

50 / 60

Automatas Finitos y Lenguajes Formales

-NFA
a Introduccion los Automatas Denicion formal de un Automata Finito Determin stico Automata Finito NoDetermin stico Automatas Finitos y Lenguajes Formales Eliminacion de las Transiciones-

formalmente: Un -NFA es una qu Mas ntupla de Q {} al (Q , , , q0 , F ), donde es una funcion conjunto potencia de Q .

del -NFA del ejemplo anterior es: La tabla de transicion

(INAOE)

Verano, 2011

51 / 60

Automatas Finitos y Lenguajes Formales

Tabla de Transicion
a Introduccion los Automatas Denicion formal de un Automata Finito Determin stico Automata Finito NoDetermin stico Automatas Finitos y Lenguajes Formales Eliminacion de las Transiciones-

(INAOE)

Verano, 2011

52 / 60

de las Transiciones- Eliminacion

de las Transiciones- Eliminacion


a Introduccion los Automatas Denicion formal de un Automata Finito Determin stico Automata Finito NoDetermin stico Automatas Finitos y Lenguajes Formales Eliminacion de las Transiciones-

Las transiciones- son una conveniencia, pero no incrementan la potencia de los FAs. Para eliminar las transiciones-: para los arcos . 1 Calcular la cerradura transitiva solo Ejemplo: q {q }; r {r , s}; s {r , s}.
2

Si un estado p puede alcanzar al estado q por medio de q a r en la entrada de arcos , y existe una transicion adase de p a r con a (no ), entonces an una transicion la entrada a. Convertir el estado p en un estado de aceptacion siempre y cuando p pueda alcanzar algun estado de q por medio de arcos . aceptacion Eliminar todas las transiciones-.

(INAOE)

Verano, 2011

53 / 60

de las Transiciones- Eliminacion

Ejemplo
a Introduccion los Automatas Denicion formal de un Automata Finito Determin stico Automata Finito NoDetermin stico Automatas Finitos y Lenguajes Formales Eliminacion de las Transiciones-

(INAOE)

Verano, 2011

54 / 60

de las Transiciones- Eliminacion

Transiciones Extendidas
a Introduccion los Automatas Denicion formal de un Automata Finito Determin stico Automata Finito NoDetermin stico Automatas Finitos y Lenguajes Formales Eliminacion de las Transiciones-

De la misma forma como lo hicimos anteriormente, podemos denir las transiciones extendidas para -NFA. (q , ) = ECLOSE (q ) Base: (q , xa) = Induccion :
(q ,x ),a) p (

ECLOSE (p )

(q0 , 5.6) es: Por ejemplo, (q0 , ) = {q0 , q1 } = ECLOSE (q0) (q0 , 5) (q1 , 5) = {q1 , q4 } ECLOSE (q1) ECLOSE (q4) = {q1 , q4 } (q1 , .) (q4 , .) = {q2 , q3 } (q0 , 5.6) ECLOSE (q2) ECLOSE (q3) = {q2 , q3 , q5 } = (q2 , 6) (q3 , 6) (q5 , 6) = {q3 } (q0 , 5.6) = ECLOSE (q3) = {q3 , q5 }

(INAOE)

Verano, 2011

55 / 60

de las Transiciones- Eliminacion

Equivalencias
a Introduccion los Automatas Denicion formal de un Automata Finito Determin stico Automata Finito NoDetermin stico Automatas Finitos y Lenguajes Formales Eliminacion de las Transiciones-

Como antes, el lenguaje aceptado por un -NFA, E, es:

(q0 , w ) F = }, osea todas las cadenas L(E ) = {w | w que van de un estado inicial q0 a al menos un estado nal.
Se puede demostrar que se puede construir un DFA a

partir de un -NFA siguiendo un esquema parecido al de subconjuntos visto para NFA. de construccion

(INAOE)

Verano, 2011

56 / 60

de las Transiciones- Eliminacion

Equivalencias
a Introduccion los Automatas Denicion formal de un Automata Finito Determin stico Automata Finito NoDetermin stico Automatas Finitos y Lenguajes Formales Eliminacion de las Transiciones-

QD = {S |S QE S = ECLOSE (S )} qD = ECLOSE (q0) FD = {S |S QD S FE = } D (S , a) = { ECLOSE (p )|p (t , a), t S }

lo que se calcula para todos los a y conjuntos S QD .

(INAOE)

Verano, 2011

57 / 60

de las Transiciones- Eliminacion

Ejemplo
a Introduccion los Automatas Denicion formal de un Automata Finito Determin stico Automata Finito NoDetermin stico Automatas Finitos y Lenguajes Formales Eliminacion de las Transiciones-

El DFA correspondiente al -NFA de numeros decimales (omitiendo todas las transiciones a estados muertos) es:

(INAOE)

Verano, 2011

58 / 60

de las Transiciones- Eliminacion

Equivalencias
a Introduccion los Automatas Denicion formal de un Automata Finito Determin stico Automata Finito NoDetermin stico Automatas Finitos y Lenguajes Formales Eliminacion de las Transiciones-

Se puede demostrar que un lenguaje L es aceptado por algun -NFA E si y solo si L es aceptado por un DFA. Para (cambiando un DFA a un esto, hacia un sentido es facil -NFA) y para el otro sentido se hace lo mismo que hemos hecho antes, probando con el caso base y el caso inductivo, donde partimos w = xa, asumimos que es verdad para x y probamos para w , solo que ahora tomando la cerradura o ECLOSE para los estados.

(INAOE)

Verano, 2011

59 / 60

de las Transiciones- Eliminacion

Ejemplo
a Introduccion los Automatas Denicion formal de un Automata Finito Determin stico Automata Finito NoDetermin stico Automatas Finitos y Lenguajes Formales Eliminacion de las Transiciones-

Considere el siguiente -NFA: a b c p {p } {q } {r } q {p } {q } {r } {q } {r } {p } r a) Calcula las -closure para cada estado b) Cuales son todas las cadenas de 3 o menos caracteres aceptadas por el automata c) Convertirlo a un DFA

(INAOE)

Verano, 2011

60 / 60