Está en la página 1de 17

Diseo y anlisis de algoritmos

Automatas 1 Juan Pablo Illanes Sotta

Contenidos
1. 2. 3. 4. 5. Lenguajes Regulares Expresiones Regulares Autmata Finito No Determinista Ejemplo AFND a AFD

Lenguajes Regulares
Dado un alfabeto . Y un Lenguaje L *. Diremos que L es regular si existe un autmata A que acepte todas las palabaras del lenguaje L. Ej: Si L = Todos las cadenas de 1s y 0s que tienen la
misma cantidad de 0s y 1s. Entonces L no es regular.

Expresiones Regulares
Son una representacin algebrica de un Lenguaje Regular. Def. 1: Si a , entocnes a es una E.R. que define el lenguaje L(a) = {a}. Nota: {a} es un lenguaje con una sola palabra, y esa palabra es de largo 1. Def. 2: Si a , entonces a+ es una E.R. que define el lenguaje L(a+) = {a,aa,aaa,...}. Def 3: Si a , entonces a* es una E.R. que define el lenguaje L(a*) = {,a,aa,aaa,...} Def 4: Si e y h son E.R. entonces eh es una E.R. que define el lenguaje L(eh) = L(e)L(h). L(eh) = La concatenacin de L(e) y L(h).

Expresiones Regulares
Si e es una E.R., entonces (e)* y (e)+ son E. R. que definen los lenguajes
L[(e)*] = {, L(e), L(e)L(e), ...} L[(e)+] = {L(e), L(e)L(e), L(e)L(e)L(e)}

Cualquier E.R. puede ser representada cmo un autmata, y viceversa. Las E.R. y los autmatas son diferentes representaciones de un Lenguaje Regular.

Autmata Finito No-Determinista


Los AFND son autmatas que pueden estar en dos ms estados a la vez.
Son No deterministas, por que no se puede determinar el estado del autmata para una entrada dada.

Existen de dos tipos:


Los que desde un estado pueden transitar a dos estados distintos para una misma entrada. Los que desde un estado dado pueden transitar a otro estado sin entrada alguna (tomando como entrada). Tambin llamados - AFND, Autmatas finitos no deterministas con transciones vacas.

Ejercicio
Crear un AFND que acepte L(a*b*ab), para = {a,b}.
a B b b a C b E b F b D Er a A

Ejercicio
Crear un AFND que acepte L(a*b*ab), para = {a,b}.
a B b b a C b E b F b D Er A B C *D E *F Er a B B E Er Er Er Er b C D,C B Er F Er Er

a A

AFND a AFD
Todos los AFND pueden ser llevados a AFD. Pasos:
a. Por cada estado "mltiple", crear un estado que lleven a todos los estados donde llegaban los estados originales. b. Reducir estados equivalentes (estados que cumplen la misma funcin).

AFND a AFD
AFND
a A B C *D E *F Er B B E Er Er Er Er b C D,C B Er F Er Er A B C * D,C

AFD
a B B E Er, E b C D,C B Er, B

AFND a AFD
AFND
a A B C *D E *F Er B B E Er Er Er Er b C D,C B Er F Er Er A B C * D,C Er, E Er, B

AFD
a B B E Er, E Er Er, B b C D,C B Er, B Er, F Er, C

AFND a AFD
AFND
a A B C *D E *F Er B B E Er Er Er Er b C D,C B Er F Er Er *F Er Er A B C * D,C Er, E Er, B * Er, F Er, C Equivalentes E Er

AFD
a B B E Er, E Er Er, B Er Er, E Er Er b C D,C B Er, B Er, F Er, C Er Er, B F Er

AFND a AFD
AFND
a A B C *D E *F Er B B E Er Er Er Er b C D,C B Er F Er Er A B C * D,C Er, E Er, B *F Er, C E Er

AFD
a B B E Er, E Er Er, B Er Er, E Er Er b C D,C B Er, B F Er, C Er Er, B F Er

AFND a AFD
AFND
a A B C *D E *F Er B B E Er Er Er Er b C D,C B Er F Er Er Equivalentes A B C * D,C Er, E Er, B *F Er, C E Er

AFD
a B B E Er, E Er Er, B Er Er, E Er Er b C D,C B Er, B F Er, C Er Er, B F Er

AFND a AFD
AFND
a A B C *D E *F Er B B E Er Er Er Er b C D,C B Er F Er Er A B C * D,C E Er, B *F Er, C Er

AFD
a B B E E Er Er, B Er E Er b C D,C B Er, B F Er, C Er Er, B Er

AFND a AFD
AFND
a A B C *D E *F Er B B E Er Er Er Er b C D,C B Er F Er Er No Equivalentes A B C * D,C E Er, B *F Er, C Er

AFD
a B B E E Er Er, B Er E Er b C D,C B Er, B F Er, C Er Er, B Er

AFND a AFD
AFND
a A B C *D E *F Er B B E Er Er Er Er b C D,C B Er F Er Er A B C * (D,C) E (Er, B) *F (Er, C) Al final tenemos 3 estados nuevos: (D,C), (Er,B), (Er,C) Er

AFD
a B B E E Er (Er, B) Er E Er b C (D,C) B (Er, B) F (Er, C) Er (Er, B) Er

También podría gustarte