Filminas Clase Teórica 04/09 - Facultad de Ciencias Exactas
Filminas Clase Teórica 04/09 - Facultad de Ciencias Exactas
Filminas Clase Teórica 04/09 - Facultad de Ciencias Exactas
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Autómatas Finitos y Lenguajes Regulares<br />
Problema:<br />
Dado un lenguaje L <strong>de</strong>finido sobre un alfabeto A y una ca<strong>de</strong>na x<br />
arbitraria, <strong>de</strong>terminar si x ∈ L o x ∉ L.<br />
Ca<strong>de</strong>na x<br />
AUTOMATA FINITO<br />
Lenguaje Regular<br />
<strong>Ciencias</strong> <strong>de</strong> la Computación I - <strong>Filminas</strong> <strong>de</strong> <strong>Clase</strong> – <strong>Facultad</strong> Cs. <strong>Exactas</strong> – UNCPBA - 20<strong>09</strong><br />
Autómatas Finitos<br />
SI<br />
NO<br />
• Un Autómata Aut mata Finito es un mo<strong>de</strong>lo matemático <strong>de</strong> una máquina<br />
abstracta con entradas y salidas discretas.<br />
• Dos puntos <strong>de</strong> vista:<br />
Como dispositivo reconocedor <strong>de</strong> la<br />
pertenencia <strong>de</strong> una ca<strong>de</strong>na a un lenguaje<br />
regular.<br />
Como traductor <strong>de</strong> una ca<strong>de</strong>na en otra.<br />
• Un AF pue<strong>de</strong> leer símbolos <strong>de</strong> una cinta, y pue<strong>de</strong> estar en un<br />
número finito <strong>de</strong> estados.<br />
<strong>Ciencias</strong> <strong>de</strong> la Computación I - <strong>Filminas</strong> <strong>de</strong> <strong>Clase</strong> – <strong>Facultad</strong> Cs. <strong>Exactas</strong> – UNCPBA - 20<strong>09</strong><br />
1
Aplicaciones:<br />
Autómatas Finitos<br />
Análisis <strong>de</strong> ca<strong>de</strong>nas <strong>de</strong> caracteres (búsqueda <strong>de</strong> una ca<strong>de</strong>na en<br />
un archivo <strong>de</strong> texto, reconocimiento <strong>de</strong> ca<strong>de</strong>nas que satisfacen<br />
ciertos criterios, etc.)<br />
Reproductor <strong>de</strong> vi<strong>de</strong>o, máquina expen<strong>de</strong>dora <strong>de</strong> boletos, etc.<br />
<br />
esperando mostrando<br />
pausa<br />
película<br />
<br />
<br />
<br />
<br />
<strong>Ciencias</strong> <strong>de</strong> la Computación I - <strong>Filminas</strong> <strong>de</strong> <strong>Clase</strong> – <strong>Facultad</strong> Cs. <strong>Exactas</strong> – UNCPBA - 20<strong>09</strong><br />
Autómatas Finitos Reconocedores<br />
Estados <strong>de</strong>l AF:<br />
Cantidad finita.<br />
Representan la “memoria” <strong>de</strong>l autómata.<br />
Un estado inicial.<br />
Al menos un estado final o <strong>de</strong> aceptación.<br />
e 5<br />
e 4<br />
cinta <strong>de</strong> entrada (contiene ca<strong>de</strong>na a ser leída)<br />
a b c d …<br />
indicador <strong>de</strong> estado<br />
e 0<br />
e 3<br />
e 1<br />
e 2<br />
mecanismo <strong>de</strong> control<br />
cabeza lectora (se mueve a <strong>de</strong>recha)<br />
Dada una ca<strong>de</strong>na x en la<br />
cinta <strong>de</strong> entrada, si el AF:<br />
termina en un estado final<br />
→ ca<strong>de</strong>na aceptada<br />
termina en un estado no final<br />
→ ca<strong>de</strong>na rechazada<br />
<strong>Ciencias</strong> <strong>de</strong> la Computación I - <strong>Filminas</strong> <strong>de</strong> <strong>Clase</strong> – <strong>Facultad</strong> Cs. <strong>Exactas</strong> – UNCPBA - 20<strong>09</strong><br />
2
Autómatas Finitos Reconocedores<br />
L = { x / x ∈ {a, b, c}* y x termina en b }<br />
Ca<strong>de</strong>nas que pertenecen a L<br />
b<br />
ab<br />
bb<br />
cb<br />
aab<br />
bab<br />
…<br />
Dos situaciones para distinguir:<br />
- el último símbolo leído es distinto <strong>de</strong> b<br />
- el último símbolo leído es b<br />
Ca<strong>de</strong>nas que no pertenecen a L<br />
ε<br />
a<br />
c<br />
aa<br />
ba<br />
…<br />
Dos estados:<br />
<strong>Ciencias</strong> <strong>de</strong> la Computación I - <strong>Filminas</strong> <strong>de</strong> <strong>Clase</strong> – <strong>Facultad</strong> Cs. <strong>Exactas</strong> – UNCPBA - 20<strong>09</strong><br />
Autómatas Finitos Reconocedores<br />
e0 : estado inicial (último símbolo leído ≠ b) e1 : estado final (último símbolo leído es b)<br />
b a b …<br />
e 0 e1<br />
Configuración <strong>de</strong> inicio<br />
b a b …<br />
e 0 e 1<br />
<strong>Ciencias</strong> <strong>de</strong> la Computación I - <strong>Filminas</strong> <strong>de</strong> <strong>Clase</strong> – <strong>Facultad</strong> Cs. <strong>Exactas</strong> – UNCPBA - 20<strong>09</strong><br />
e 0<br />
e 1<br />
b a b …<br />
Configuración <strong>de</strong><br />
aceptación<br />
<br />
e 0 e 1<br />
ca<strong>de</strong>na aceptada<br />
b a b …<br />
e 0 e 1<br />
3
Autómatas Finitos Reconocedores<br />
e0 : estado inicial (último símbolo leído ≠ b) e1 : estado final (último símbolo leído es b)<br />
b a …<br />
e 0 e1<br />
Configuración <strong>de</strong> inicio<br />
b a …<br />
e 0 e 1<br />
Configuración <strong>de</strong><br />
no aceptación<br />
<br />
ca<strong>de</strong>na rechazada<br />
b a …<br />
e 0 e 1<br />
<strong>Ciencias</strong> <strong>de</strong> la Computación I - <strong>Filminas</strong> <strong>de</strong> <strong>Clase</strong> – <strong>Facultad</strong> Cs. <strong>Exactas</strong> – UNCPBA - 20<strong>09</strong><br />
Autómatas Finitos Reconocedores<br />
Para <strong>de</strong>finir un AF reconocedor es necesario indicar:<br />
el alfabeto <strong>de</strong> entrada: A<br />
el conjunto finito <strong>de</strong> estados: E={e 0, e 1, ….,e n}<br />
<strong>de</strong> estos estados, un único estado inicial: e 0<br />
<strong>de</strong> estos estados, uno o varios estados finales: F<br />
una función <strong>de</strong> transición <strong>de</strong> estados: δ (indica a qué estado<br />
<strong>Ciencias</strong> <strong>de</strong> la Computación I - <strong>Filminas</strong> <strong>de</strong> <strong>Clase</strong> – <strong>Facultad</strong> Cs. <strong>Exactas</strong> – UNCPBA - 20<strong>09</strong><br />
pasar luego <strong>de</strong> leer<br />
un símbolo en la cinta<br />
<strong>de</strong> entrada)<br />
4
Autómatas Finitos Reconocedores<br />
Formalmente, un AF reconocedor <strong>de</strong>terminístico (AFD) se<br />
<strong>de</strong>fine como una quintupla<br />
M = <br />
E es un conjunto finito <strong>de</strong> estados; E ≠ ∅<br />
A es el alfabeto <strong>de</strong> entrada<br />
δ es la función <strong>de</strong> transición <strong>de</strong> estados; δ: E x A → E<br />
δ(ej , a) = ek la máquina pue<strong>de</strong> pasar <strong>de</strong>l estado ej al ek <strong>de</strong>spués <strong>de</strong> leer el símbolo a en la cinta (ej , ek ∈ E; a ∈ A)<br />
e i es el estado inicial; e i ∈ E<br />
F es el conjunto <strong>de</strong> estados finales o <strong>de</strong> aceptación; F ⊆ E<br />
<strong>Ciencias</strong> <strong>de</strong> la Computación I - <strong>Filminas</strong> <strong>de</strong> <strong>Clase</strong> – <strong>Facultad</strong> Cs. <strong>Exactas</strong> – UNCPBA - 20<strong>09</strong><br />
Autómatas Finitos Reconocedores<br />
Un AF reconocedor <strong>de</strong>terminístico se pue<strong>de</strong> representar<br />
gráficamente usando un diagrama <strong>de</strong> transición <strong>de</strong> estados.<br />
- cada estado e j ∈ E e j<br />
- estado inicial e i<br />
- cada estado final e f ∈ F e f<br />
-cada transición entre estados<br />
δ(e j , a) = e k para e j , e k ∈ E, a ∈ A<br />
<strong>Ciencias</strong> <strong>de</strong> la Computación I - <strong>Filminas</strong> <strong>de</strong> <strong>Clase</strong> – <strong>Facultad</strong> Cs. <strong>Exactas</strong> – UNCPBA - 20<strong>09</strong><br />
e i<br />
e j<br />
a<br />
e k<br />
5
Autómatas Finitos Reconocedores<br />
L = { x / x ∈ {a, b, c}* y x termina en b }<br />
e0 : estado inicial (último símbolo leído ≠ b)<br />
e1 : estado final (último símbolo leído es b)<br />
<strong>Ciencias</strong> <strong>de</strong> la Computación I - <strong>Filminas</strong> <strong>de</strong> <strong>Clase</strong> – <strong>Facultad</strong> Cs. <strong>Exactas</strong> – UNCPBA - 20<strong>09</strong><br />
a, c b<br />
b<br />
e 0<br />
a, c<br />
Descripción instantánea<br />
α e i β don<strong>de</strong> e i estado actual, α ca<strong>de</strong>na ya leída, β ca<strong>de</strong>na que falta leer (α, β ∈ A * )<br />
Ejemplos<br />
e0abcb├ ae0bcb ├ abe1cb ├ abce0b ├ abcbe1 e0ba ├ be1a ├ bae0 Diagrama <strong>de</strong> transición <strong>de</strong> estados<br />
lee ba y termina en estado no final.<br />
Luego, ba ∉ L<br />
<strong>Ciencias</strong> <strong>de</strong> la Computación I - <strong>Filminas</strong> <strong>de</strong> <strong>Clase</strong> – <strong>Facultad</strong> Cs. <strong>Exactas</strong> – UNCPBA - 20<strong>09</strong><br />
e 1<br />
lee abcb y termina<br />
en estado final.<br />
Luego, abcb ∈ L<br />
Autómatas Finitos Reconocedores<br />
L = { x / x ∈ {a, b, c}* y x termina en b }<br />
Diagrama <strong>de</strong> transición <strong>de</strong> estados<br />
a, c b<br />
b<br />
e 0<br />
Función δ<br />
δ(e 0, a)=e 0<br />
a, c<br />
e 1<br />
δ(e 0, b)=e 1 δ(e 0, c)=e 0<br />
δ(e 1, a)=e 0 δ(e 1, b)=e 1 δ(e 1, c)=e 0<br />
Tabla <strong>de</strong> transición <strong>de</strong> estados:<br />
AFD = <br />
El AFD = acepta una ca<strong>de</strong>na x si<br />
la secuencia <strong>de</strong> transiciones correspondientes a los símbolos <strong>de</strong><br />
x conduce <strong>de</strong>s<strong>de</strong> e 0 (el estado inicial) a e 1 (el único estado final).<br />
δ<br />
e 0<br />
e 1<br />
a<br />
e 0<br />
e 0<br />
b<br />
e 1<br />
e 1<br />
c<br />
e 0<br />
e 0<br />
6
Lenguaje aceptado por un AFD<br />
Definición <strong>de</strong> δ * (extensión <strong>de</strong> la función <strong>de</strong> transición para ca<strong>de</strong>nas)<br />
Sea M = un AFD. Se <strong>de</strong>fine la función δ * : E x A * → E<br />
• δ * (e j, ε) = e j e j ∈ E<br />
• δ * (e j, xa) = δ(δ* (e j,x), a) e j ∈ E, x ∈ A*, a ∈ A<br />
Una ca<strong>de</strong>na x es aceptada por un AFD M = si:<br />
δ * (e i, x) = e f<br />
para algún e f ∈ F<br />
Luego, el lenguaje aceptado por un AFD M = es:<br />
L(M) = { x / x ∈ A* y δ * (e i, x) = e f y e f ∈ F}<br />
Los lenguajes aceptados por los Autómatas<br />
Aut matas Finitos se <strong>de</strong>nominan<br />
Lenguajes Regulares o <strong>de</strong> Tipo 3.<br />
<strong>Ciencias</strong> <strong>de</strong> la Computación I - <strong>Filminas</strong> <strong>de</strong> <strong>Clase</strong> – <strong>Facultad</strong> Cs. <strong>Exactas</strong> – UNCPBA - 20<strong>09</strong><br />
Diseño <strong>de</strong> Autómatas Finitos<br />
No es conveniente proce<strong>de</strong>r por “prueba y error”, pue<strong>de</strong>n<br />
cometerse dos tipos <strong>de</strong> errores:<br />
- que “sobren ca<strong>de</strong>nas”, es <strong>de</strong>cir el AF acepta ca<strong>de</strong>nas que no <strong>de</strong>bería aceptar<br />
- que “falten ca<strong>de</strong>nas”, es <strong>de</strong>cir el AF no acepta todas las ca<strong>de</strong>nas <strong>de</strong>l<br />
lenguaje consi<strong>de</strong>rado<br />
Importante para un diseño sistemático:<br />
1) Proponer un conjunto <strong>de</strong> estados que “recuerdan” condiciones<br />
importantes en el problema consi<strong>de</strong>rado<br />
2) De estos estados, <strong>de</strong>terminar cuál representa la condición inicial y<br />
cuál/cuáles la condición <strong>de</strong> aceptación<br />
3) Proponer las transiciones que permiten pasar <strong>de</strong> un estado a otro<br />
<strong>Ciencias</strong> <strong>de</strong> la Computación I - <strong>Filminas</strong> <strong>de</strong> <strong>Clase</strong> – <strong>Facultad</strong> Cs. <strong>Exactas</strong> – UNCPBA - 20<strong>09</strong><br />
7
Autómatas Finitos Traductores<br />
- Producen una salida diferente <strong>de</strong> SI o NO<br />
- Permiten realizar “cálculos” a partir <strong>de</strong> una ca<strong>de</strong>na <strong>de</strong> entrada <br />
“traducen” una ca<strong>de</strong>na <strong>de</strong> entrada en una ca<strong>de</strong>na <strong>de</strong> salida<br />
x AUTOMATA FINITO<br />
TRADUCTOR<br />
x´<br />
Lenguaje Regular<br />
Ejemplos:<br />
• AF que calcule la función f(x) = 2x +3<br />
• Analizador léxico <strong>de</strong> un compilador<br />
<strong>Ciencias</strong> <strong>de</strong> la Computación I - <strong>Filminas</strong> <strong>de</strong> <strong>Clase</strong> – <strong>Facultad</strong> Cs. <strong>Exactas</strong> – UNCPBA - 20<strong>09</strong><br />
Autómatas Finitos Traductores<br />
Formalmente, un AF traductor <strong>de</strong>terminístico (AFT) se <strong>de</strong>fine<br />
como una 7-tupla<br />
M T = <br />
E es un conjunto finito <strong>de</strong> estados; E ≠ ∅<br />
A es el alfabeto <strong>de</strong> entrada<br />
δ es la función <strong>de</strong> transición <strong>de</strong> estados; δ: E x A → E<br />
e i es el estado inicial; e i ∈ E<br />
F es el conjunto <strong>de</strong> estados finales o <strong>de</strong> aceptación; F ⊆ E<br />
S es el alfabeto <strong>de</strong> salida<br />
γ es la función <strong>de</strong> traducción; γ : E x A → S *<br />
<strong>Ciencias</strong> <strong>de</strong> la Computación I - <strong>Filminas</strong> <strong>de</strong> <strong>Clase</strong> – <strong>Facultad</strong> Cs. <strong>Exactas</strong> – UNCPBA - 20<strong>09</strong><br />
8
Autómatas Finitos Traductores<br />
Si existen δ (e i , a) = e k<br />
don<strong>de</strong> e i , e k ∈ E; a ∈ A ; x ∈ S*<br />
se representa en el diagrama <strong>de</strong><br />
transición <strong>de</strong> estados<br />
Ejemplo:<br />
y γ (e i , a) = x<br />
<strong>Ciencias</strong> <strong>de</strong> la Computación I - <strong>Filminas</strong> <strong>de</strong> <strong>Clase</strong> – <strong>Facultad</strong> Cs. <strong>Exactas</strong> – UNCPBA - 20<strong>09</strong><br />
e i<br />
a / x<br />
Autómata finito traductor que calcula f(x) = 2x + 3 para x ∈ N, x > 0,<br />
x representado en unario<br />
1 / 11111<br />
e0 1 / 11<br />
e1 Ejemplos<br />
si x =1 traduce 11111<br />
si x =11 traduce 1111111<br />
si x =111 salida 19 si x =11111 salida 113 AFT = <br />
Autómatas Finitos Traductores<br />
Definición <strong>de</strong> γ * (función <strong>de</strong> traducción para ca<strong>de</strong>nas)<br />
Sea M T = un AFT. Se <strong>de</strong>fine la función<br />
γ * : E x A * → S * tal que γ * (e i, w) es la ca<strong>de</strong>na que traducirá el<br />
autómata luego <strong>de</strong> leer w comenzando en e i<br />
• γ * (e i, ε) = ε<br />
• γ * (e i, wa) = γ * (e i, w) . γ (δ* (e i, w), a) e i ∈ E, w ∈ A*, a ∈ A<br />
Nota:<br />
El autómata solo <strong>de</strong>fine la traducción, si el autómata finito<br />
reconocedor subyacente “acepta” la ca<strong>de</strong>na.<br />
Es <strong>de</strong>cir, la traducción T(w): A* → S* asociada a M T está<br />
<strong>de</strong>finida como:<br />
T(w)= γ * (e 0 , w) ⇔ δ * (e 0 , w) ∈ F don<strong>de</strong> w∈ A*<br />
<strong>Ciencias</strong> <strong>de</strong> la Computación I - <strong>Filminas</strong> <strong>de</strong> <strong>Clase</strong> – <strong>Facultad</strong> Cs. <strong>Exactas</strong> – UNCPBA - 20<strong>09</strong><br />
e k<br />
9
Autómatas Finitos Mo<strong>de</strong>los<br />
Formalmente, un AF mo<strong>de</strong>lo se <strong>de</strong>fine como una 3-upla<br />
M M = < E, A, δ ><br />
E es un conjunto finito <strong>de</strong> estados; E ≠ ∅<br />
A es el alfabeto <strong>de</strong> entrada<br />
δ es la función <strong>de</strong> transición <strong>de</strong> estados; δ: E x A → E<br />
• Ejemplo Mo<strong>de</strong>lo <strong>de</strong> Vi<strong>de</strong>ograbadora<br />
<br />
esperando mostrando<br />
pausa<br />
<br />
<br />
<br />
M M = <br />
<br />
<strong>Ciencias</strong> <strong>de</strong> la Computación I - <strong>Filminas</strong> <strong>de</strong> <strong>Clase</strong> – <strong>Facultad</strong> Cs. <strong>Exactas</strong> – UNCPBA - 20<strong>09</strong><br />
Autómatas Finitos Mo<strong>de</strong>los<br />
• Ejemplo Mo<strong>de</strong>lo <strong>de</strong> Vi<strong>de</strong>ograbadora<br />
δ:<br />
<br />
mostrando<br />
esperando pausa<br />
<br />
M M = <br />
<br />
<br />
<br />
<strong>Ciencias</strong> <strong>de</strong> la Computación I - <strong>Filminas</strong> <strong>de</strong> <strong>Clase</strong> – <strong>Facultad</strong> Cs. <strong>Exactas</strong> – UNCPBA - 20<strong>09</strong><br />
10