Sunteți pe pagina 1din 48

Matemticas Discretas

Introduccin a la Teora de Autmatas

Hctor Beck F.

Matemticas Discretas

Alfabetos, Palabras y Lenguajes


Smbolo: 0; a Alfabeto (): conjunto de smbolos {0,1}; {0,1,2, ...,9}; {a, b, .....,z} Palabra () : secuencia finita de smbolos 1011; 1129; juan; for Cerradura de (*) : Conjunto de todas las palabras que se pueden formar con los smbolos del alfabeto. = alfabeto ASCII 1 *; for *; 1a(&3 *

Hctor Beck F.

Matemticas Discretas

Alfabetos y Lenguajes
Lenguaje (L) es un conjunto de palabras. L *
Si = alfabeto ASCII, entonces el lenguaje C es vlido. Si = {0,1} entonces L = { * / termina en 1}
1 L; 10000011 L; 10010 L

Observaciones:
es un lenguaje vaco palabra vaca, * { } lenguaje formado por la palabra vaca { } * es infinito
Matemticas Discretas 3

Hctor Beck F.

Operaciones con palabras


Si w es una palabra sobre cualquier lenguaje, su longitud, |w|, es el nmero de smbolos que tiene la palabra.
|10000011| = 8; || = 0

Si w y z son palabras, la concatenacin (wz) de w con z es la palabra que se obtiene al aadir a la palabra w la palabra z.
Si w = 10 y z = 111, entonces wz = 10111

|wz| = |w| + |z|


|wz| = |w| + |z| = 2 + 3 = 5

w = w = w (identidad)
Hctor Beck F. Matemticas Discretas 4

Operaciones con palabras Se w una palabra y n N, se define la potencia sima de w por: n-

si n = 0 n = w n1 si n > 0 ww

si w =101 entonces: w0 = ; w1 = 101; w3 =101101101 Dos palabras w y z son iguales (w = z) si tienen la misma longitud y los mismos smbolos en el mismo orden. Si w y x son palabras, se dice que x es prefijo de w, si para alguna palabra y se obtiene que w = xy. Si w e y son palabras, se dice que y es sufijo de w, si para alguna palabra x se obtiene que w = xy.
Hctor Beck F. Matemticas Discretas 5

Operaciones con palabras


Si w = 123, entonces la palabra x = 12 es prefijo de w, e y = 23 es sufijo de w
es prefijo y sufijo de w; pues w = 123 = 123 Toda palabra es prefijo y sufijo de si misma.

Prefijo (sufijo) propio es aquella palabra que es prefijo (sufijo) de otra palabra pero no igual a ella misma. Una palabra w es una subpalabra de otra palabra z si existen las palabras x e y para las cuales z = xwy
Hctor Beck F. Matemticas Discretas 6

Operaciones con palabras


La inversa o transpuesta de una palabra w se define como:
i= w w yi a

si w = si w = ay para algn a e y*

Si w = perro entonces:
wi = (perro)i = (erro)ip = (rro)iep = (ro)irep = (o)irrep = ()iorrep = orrep = orrep

Observacin:
(xi)i = x
Hctor Beck F. Matemticas Discretas 7

Operaciones con Lenguajes


Sean A y B lenguajes sobre un alfabeto. Se define el lenguaje concatenacin de A y B como
AB = { wx | w A y x B}

Lenguaje potencia
An =

{} si n = 0 AAn1 si n 1

Si A = {01} entonces A0 = {}; A3 = {010101}

Sean A y B dos lenguajes sobre el alfabeto


A B = { x / x A o x B} A B = { x / x A y x B simultneamente}
Hctor Beck F. Matemticas Discretas 8

Operaciones con Lenguajes


Sean A y B lenguajes sobre un alfabeto y si todas las palabras de A son tambin palabras de B, entonces se dice que A es un sublenguaje de B (AB) (mismo concepto de subconjunto)
A = { a, aa, aaa, aaaa, aaaaa} y B = {an / n = 0,1,..} se tiene que A B. Cualquiera sea L lenguaje sobre el alfabeto se tiene que L *

Dos lenguajes A y B son iguales si contienen exactamente las mismas palabras.


Hctor Beck F. Matemticas Discretas 9

Operaciones con lenguajes


Teorema: Sean A, B y C lenguajes sobre un alfabeto , se cumple que: A = B si y slo si A B y B A. A(B C) = AB AC Si A es un lenguaje sobre el alfabeto , se define la cerradura de Kleene (estrella) de A como

A* = U An n=0

y la cerradura positiva de A como

Obsrvese que Sean A, B lenguajes sobre un alfabeto definimos la diferencia como Definimos el complemento de un lenguaje A sobre el alfabeto como

A+ = U An n=1 A* = A+ {}

A B ={x / x A y x A} A = * A
Hctor Beck F. Matemticas Discretas 10

Operaciones con lenguajes


Teorema: A+ = AA* = A*A Demostracin: sea x A+. De la definicin se obtiene que

x A 0 . Esto prueba que A+ AA* An = ( AAn ) A la inversa, sea x AA* = AU Un=0 n=0
sigue que Entonces, para algn j 0, se deduce que

xU ( AAn ) = AU An = AA*, as que para algn k0 1, se n=0 k n=0

x AA j = A j+1 U Ak = A+ k =1
Lo que prueba que AA* A+. As termina la demostracin.

Hctor Beck F.

Matemticas Discretas

11

Operaciones con lenguajes


Teorema: (A+)+ = A+ y (A*)* = A* El inverso de un lenguaje A es Ai = { xi / x A} Teorema: (Ai)i = A Teorema: (AB)i = BiAi Demostracin:

Sea x(AB)i. Entoncesxi AB con lo que xi = yz para las palabras yA y zB. Por tanto x = (xi )i = ( yz)i. , Pero dado que zB, entonces zi Bi. Adems yA, con lo que yi Ai, y por tantose obtiene que xBi Ai lo cual prueba que (AB)i Bi Ai. El razocinio inverso queda como ejercicio.
Hctor Beck F. Matemticas Discretas 12

Lenguajes sobre alfabetos


Objetivo:
Especificar claramente qu palabras contiene un lenguaje

Nota:
Los lenguajes son conjuntos vlidas todas las operaciones sobre conjuntos

Hctor Beck F.

Matemticas Discretas

13

Lenguajes sobre alfabetos


Tener presente:
Existe una cantidad innumerable de lenguajes de especificar sobre un alfabeto en particular. No existe ningn ,mtodo de especificacin de lenguajes capaz de definir todos los lenguajes sobre un alfabeto Lo anterior significa que dado un mtodo de representacin de lenguajes, hay lenguajes que no son representables. Existen mtodos con mayor fuerza expresiva que otros.

Hctor Beck F.

Matemticas Discretas

14

Lenguajes Regulares y Expresiones Regulares


Importancia de lenguajes regulares. usados en especificar la construccin de analizadores
lxicos. Son cerrados con respecto a las operaciones de unin, concatenacin, y cerradura de Kleene.

Definicin: Sea un alfabeto. El conjunto de los lenguajes regulares sobre se define recursivamente como sigue:
es un lenguaje regular {} es un lenguaje regular Para todo a , {a} es un lenguaje regular Si A y B son lenguajes regulares, entonces AB, AB y A* son lenguajes regulares Ningn otro lenguaje sobre es regular
Matemticas Discretas 15

Hctor Beck F.

Ejemplo: Dado = {a, b}, las siguientes afirmaciones son verdaderas: y {} son lenguajes regulares {a} y{b} son lenguajes regulares {a, b} es un lenguaje regular {ab} es un lenguaje regular {a, b, ab} es un lenguaje regular {ai / i 0} es un lenguaje regular {aibj / i 0 y j 0 } es un lenguaje regular {aibi / i 0} no es un lenguaje regular {(ab)i / i 0} es un lenguaje regular
Hctor Beck F. Matemticas Discretas

Lenguajes Regulares y Expresiones Regulares

16

Lenguajes regulares y Expresiones Regulares


Para simplificar la notacin de l.r. Se introduce el concepto de expresin regular, el cual se define recursivamente como sigue: y son expresiones regulares que denotan los lenguajes regulares y {} respectivamente. a denota el lenguaje regular {a}; a Si r y s son expresiones regulares que denotan los l.r. R y S respectivamente, entonces: rs denota el lenguaje regular RS r|s (r + s) denota el lenguaje regular RS r* denota el lenguaje regular R* r+ denota el lenguaje regular R+
Hctor Beck F. Matemticas Discretas 17

Lenguajes regulares y Expresiones Regulares


Ejemplos:
({a}{b})* = (ab)* = {, ab, abab, ababab,...} ({0} {1})*{1} = (0|1)*1 = {01, 11, 001, 011, 101, 111, ..... } ({a}*{b}){c} = a*b|c

Teorema: Toda expresin regular sobre denota un lenguaje regular sobre .


Demostracin. Directa sobre la definiciones d l.r. y e.r.

Notacin: Si r es una e.r., entonces el lenguaje denotado por la e.r. se denotar por L(r) Observaciones:
* = {} si r es una e.r., entonces rr* = r+

Hctor Beck F.

Matemticas Discretas

18

Lenguajes regulares y Expresiones Regulares


Teorema: Sean r, s, t e.r. Sobre el mismo alfabeto . Entonces: 1. r|s = s|r 2. r| = |r = r 3. r|r = r 4. (r|s)|t = r|(s|t) 5. r = r = r 6. r = r = 7. (rs)t = r(st) 8. r(s|t) = rs|rt y (r|s)t = rt|st 9. r* = r** = r*r* = (|r)* = r*(r| ) = (r|)r* = |rr* 10. (r|s)* = (r*|s*)* = )r*s*)* = (r*s*)r* = r*(sr*)* 11. r(sr)* = (rs)*r 12. (r*s)* = |(r|s)*s 13. (rs*)* = |r(r|s)* 14. s(r|)*(r|)|s = sr* 15. rr* = r*r
Hctor Beck F. Matemticas Discretas 19

Lenguajes regulares y Expresiones Regulares Demostracin propiedad 11. r(sr)* = (rs)*r Sea w r(sr)*, entonces w = r0(s1r1)(s2r2)....(snrn) para algn n 0. Puesto que la concatenacin es asociativa tenemos que w = (r0s1)(r1s2)(r2s3)....(sn-1sn)rn (rs)*r De aqu se obtiene que r(sr)* (rs)*r ( o que L(r(sr)*) L((rs)*r)) La demostracin de que (rs)*r r(sr)* es equivalente
Hctor Beck F. Matemticas Discretas 20

Lenguajes regulares y Expresiones Regulares Ejemplo: Demuestre que si r = s*t, entonces r = sr|t
r = s*t = ( | s+)t = ( | ss*)t = t | ss*t = t | sr = sr | t ya que s* = |s+ por (8) por (5) y por hiptesis por (1)

Hctor Beck F.

Matemticas Discretas

21

Autmata Finito Determinista (AFD)


Un autmata es un conjunto de reglas que inspecciona una secuencia de * y decide si est o no est en un lenguaje dado L *. Un autmata se dice finito si es guiado por un control finito. Un autmata se dice determinista si en todo momento, durante la inspeccin de la secuencia, existe una y solo una alternativa para seguir adelante.
Hctor Beck F. Matemticas Discretas 22

Autmata Finito Determinista (AFD)


Una AFD se compone de : Una unidad de control que alterna entre elementos de un conjunto finito, llamado conjunto de estados. Una cinta de entrada que contiene la secuencia a ser inspeccionada Una cabeza lectora que apunta a un smbolo en la cinta de entrada.

Control Finito

qn q0 qi

Q = {q0, q1, ...., qn} Cjto. de estados w = a1a2....an entrada

Cabeza lectora Cinta de entrada


Hctor Beck F.

qi estado actual aj smbolo actual


Matemticas Discretas 23

a1a2............aj.......an

Reglas de Operacin de un AFD


Inicialmente el AFD comienza en una estado (estado inicial q0) y con la cabeza lectora apuntando al primer smbolo de la entrada (a1) El AFD inspecciona el smbolo actual y de acuerdo al estado actual cambia de estado y avanza un smbolo (hacia la derecha). Esto se denomina transicin. Al llegar al estado final de la secuencia (luego de inspeccionar an) el AFD se detiene. Control Finito qn q0 qi Q = {q0, q1, ...., qn} Cjto. de estados w = a1a2....an entrada Cabeza lectora Cinta de entrada
Hctor Beck F.

qi estado actual aj smbolo actual


Matemticas Discretas 24

a1a2............aj.......an

Definicin Formal de una AFD Un AFD es una tupla M = (, Q, , q0, F), donde:
Q q0 F

Hctor Beck F.

alfabeto de entrada conjunto finito de estados estado inicial, q0Q conjunto de estados finales o de aceptacin, F Q Matriz de transicin de tamao |Q|x||
(qi,a) = qj; qi, qj Q y a
Matemticas Discretas 25

Ejemplo de un ADF
Sea M definido como sigue = {a, b}, Q = {q0, q1, q2, q3}, F = {q2} : Veamos el anlisis de w1 = abba y w2 = abaa

Q\ q 0 q 1 q 2 q 3

a q 1 q 2 q 3 q 3

b q 3 q 1 q 3 q 3
q0 q1 q1 q1 q2

w1
Estado Avance abba bba ba a alto

w2
Estado Avance q0 q1 q1 q2 q3 abaa baa aa a alto

q2 F
Hctor Beck F. Matemticas Discretas

q3 F

26

AFD
Un estado se dice persistente cuando se llega a l no es posible salir de este. (Por ejemplo q3) Se dice que una palabra es aceptada por un AFD M si al examinarla, M termina en q F (Por ejemplo w1). Una configuracin (descripcin instantnea) es un para ordenado (q, z) con q Q y z *.
d.i. inicial (q0, w); d.i. final (qf, ) con qf F. q es el estado actual y Para w1 d.i.i. (q0, abba), d.i.f. (q3, ) z es lo que falta por reconocer a1a2............aj.........an z
Hctor Beck F. Matemticas Discretas 27

Relacin de Transicin en un AFD


Se define la relacin de transicin en el conjunto de las d.i.s, denotada por M y se lee lleva a segn M, como: (q, az) M (q, z) (q,a) = q; con a , q, qQ, z *. Observacin: M: Qx+ Qx* Ejemplo:
(q0, abba) M (q1, bba) M (q1, ba) M (q1,a) M (q2, )

Observacin: Una secuencia w es aceptada si la ltima d.i. es (qi, ), con qi F.


Hctor Beck F. Matemticas Discretas 28

Relacin de Transicin en un AFD


Se define la secuencia de transicin (0 o ms transiciones) como:
(q, ) *M (q, ) (q, aw) *M (q, w) (q,aw) M (q, w) y (q, w) *M (q, w) con a ; w y w *; q, q y q Q.

Ejemplo:
(q0, abba) *M(q1,a)

Definicin: Un AFD acepta una secuencia w *; ssi (q0, w) *M (qf, ), qf F Problema: M y *M son de equivalencia?

Hctor Beck F.

Matemticas Discretas

29

Diagrama de estado
Es una representacin grfica para un AFD. Los estados se representan por un crculo, los estados finales por doble crculo, y se dibuja una flecha de qi a qj, rotulando el arco con el smbolo que permite la transicin. Si (qi,a) = qj entonces se tiene:
a
qi qj

Hctor Beck F.

Matemticas Discretas

30

Ejemplo de diagrama de estado


= {a, b}, Q = {q0, q1, q2, q3}, F = {q2} : b

Q\ q 0 q 1 q 2 q 3

a q 1 q 2 q 3 q 3

b q 3 q 1 q 3 q 3
a
q0 q1

a
q2

b
q3

a,b

Por simplificacin, las transiciones que conducen a estados persistentes no sern denotadas.
Hctor Beck F. Matemticas Discretas

a,b
31

AFD y Lenguajes
Diremos que un AFD M acepta una secuencia w ssi (q0, w) *M (qf, ) con qf F El lenguaje aceptado por un AFD M ser L(M) = {w* / (q0,w) *M (qf,) con qF} Dos autmatas M1 y M2 son equivalentes si L(M1)=L(M2). Por ejemplo: Sea = {a} y
a a q0 a q1 q0 a q1

Ambos aceptan el lenguaje a+


Hctor Beck F. Matemticas Discretas 32

AFD y Lenguajes
Encuentre el lenguaje aceptado por el AFD siguiente: a b w * w = o w + w = (q0, ) *M (q0, ), pero q0 F, luego L(M). w + w = xw1; x = {a, b} y w1 *. Luego w = aw1 o w = bw1 (q0, bw1) *M (indefinido, w1) w = bw1 L(M). (q0, aw1) M (q1, w1) .......... (1) razonando anlogamente se tiene que (q1, bw2) *M (q1, w2), y que (q1, bnw3) *M (q1, w3); n 1 ...............(2); aplicar induccin (q1, aw4) *M (q2, w4) ..........(3) Si w4 = entonces w L(M) As de (1) w = aw1, de (2) w = abnw3 y de (3) w = abna L(M)
Matemticas Discretas

q0

q1

q2

Hctor Beck F.

33

AFD y Lenguajes
L(M) = {w {a, b}* / numb(w) = 2n, n 0}, construir un AFD para L (diagrama de estados b
w1 = ababba L w2 = bababb L q0 : el # de bs es par q1 : el # de bs es impar a

a q0 b q1

Sea L(M) = (0|1)*00 construir el diagrama de de estado


0100100 L 1 1 0101010 L q0 0 q0 : estamos como si nada q1 : tenemos un 0 1 q1 0 q2 : tenemos dos 0s por lo menos
Matemticas Discretas

0 q2

Hctor Beck F.

34

Autmata Finito No Determinstico (AFND)


Un autmata finito ser no determinstico si el siguiente estado en una transicin est solo parcialmente determinado por el estado actual y el smbolo actual, es decir, puede haber ms de una transicin posible. q Diagrama de estado
a q (q, aw) (q, w) o (q, aw) (q, w) o ............ (q, aw) (q, w) a a q
Matemticas Discretas 35

Hctor Beck F.

Autmata Finito No Determinstico (AFND)


Ejemplo: (0|1)*00
0 q1 1 1 0, 1 q0 q2 0

1 q0

AFD

q1

q2

AFND

Hctor Beck F.

Matemticas Discretas

36

Autmata Finito No Determinstico (AFND)


Definicin: Un AFND es una tupla M = (, Q, , q0, F) igual que en un AFD salvo que: : Qx P(Q) (q, a) = S Q Ejemplo. Para el AFND anterior
0 1 q { q ,q } { q } 0 0 1 0 q {q } 1 2

Hctor Beck F.

Matemticas Discretas

37

Autmata Finito No Determinstico (AFND)


Sea M = (, Q, , q0, F) un AFND. Definimos: Relacin de transicin:
({ q }, aw ) M ( A, w ) ssi A = U{ q' / q' ( q , a )}

Secuencia de transiciones:
( A, )* ( A, ); M ( A, aw )* ( B , w' ) ( A, aw ) ( C , w ) ( C , w )* ( B , w' ) M M
M

con A, B ,C Q, a y w, w' *

Aceptacin: w es aceptada por M (w L(M)) ssi


({ q }, w )* ( A, ) A I F = M 0
Hctor Beck F. Matemticas Discretas 38

Autmata Finito No Determinstico (AFND)


Ejemplo: Sea L = (0|1)*00 y w = 01000
0,1 q0 0 0

q1

q2

({ q 0 }, 01000 )

M M M M M

({ q 0 , q 1 }, 1000 ) ({ q 0 , ind .}, 000 ) ({ q 0 , q 1 , ind }, 00 ) ({ q 0 , q 1 , q 2 , ind }, 0 ) ({ q 0 , q 1 , q 2 , ind }, )

A I F = { q 0 , q 1 , q 2 , ind } I { q 2 } = { q 2 } w L(M )
Hctor Beck F. Matemticas Discretas 39

Equivalencia entre AFD y AFND


Definicin: Dos autmatas finitos M1 y M2 se dirn equivalentes ssi L(M1) = L(M2) Teorema: Para cada AFND existe un AFD equivalente, o bien, M1 AFND M2 AFD tal que L(M1) = L(M2)
Demostracin. Por construccin

Hctor Beck F.

Sean: M1 AFND M1 = (, Q1, 1, qo1, F1), y M2 AFD M2 = (, Q2, 2, qo2, F2) q Q2 ser de la forma {q1, q2, ...., qn} con qi Q1 Q2 P(Q1) q02 = {q01} F2 = {q Q2 / qF1 } 2(q2, a) = 1(qi1, a) con qi1 q2 Por demostrar que L(M1) = L(M2)
Matemticas Discretas 40

Equivalencia entre AFD y AFND


Ejemplo: (0|1)*00
0 0

q0
0, 1

q1

q2

q q q

02

12

22

0 1 Q \ {q } { q ,q } { q } { q ,q } { q ,q ,q } { q } { q ,q ,q } { q ,q ,q } { q }
2 0 0 1 0 0 1 0 1 2 0 0 1 2 0 1 2 0

0 q12 1 1 q22

q02

Hctor Beck F.

Matemticas Discretas

41

Autmata Finito No Determinstico con Movidas Vacas (AFND-) Un AFND- es como una AFND slo que se permiten transiciones con , es decir, se permite que el AFND realice un cambio de estado sin leer un smbolo de la entrada.
qi qj

Ejemplo: L = 0*1*2*
q0 0 1 q1 2 q2

Hctor Beck F.

Matemticas Discretas

42

Autmata Finito No Determinstico con Movidas Vacas (AFND- ) Definicin: Un AFND- es una tupla M = (, Q, , q0, F) igual que en un AFD salvo que: : Qx {} P(Q) (q, a) = S Q Ejemplo. Para el AFND- anterior
Q\ U{ } q q
0

0 q
0

1 q
1

2 q
2

q q
1

Hctor Beck F.

Matemticas Discretas

43

Autmata Finito No Determinstico con Movidas Vacas (AFND-) Sea M = (, Q, , q0, F) un AFND- . Definimos: Relacin de transicin:
({q}, aw) M ( A, w) ssi A = ( ( ( q), a)) donde : ( q) = { p / r , i = 1,..., n tq (q, ) = r ; i 1 (r , ) = r ; i = 1,..., n 1 i i +1 (r , ) = p} n

donde (q) es la Clausura o Cerradura vaca. Conjunto de todos los estados alcanzables desde q slo mediante movidas vacas.
Hctor Beck F. Matemticas Discretas 44

Ejemplo de transiciones en AFND-


Ver Diagrama anterior
(q ,0112) ({q , q , q },112) M 0 0 1 2 pues (( (q ),0)) = (({q , q , q },0)) 0 0 1 2 = ({({q },0), ({q },0), ({q },0)}) 0 1 2 = ({q }) 0 = {q , q , q } 0 1 2

Hctor Beck F.

Matemticas Discretas

45

AFND-
Secuencia de transiciones
( A, ) M (( ( A), ) ( A, w1aw2 ) M ( B , w2 ) ( A, w1aw2 ) M (C , aw2 ) (Caw2 ) M ( B , w2 ) * * *

Ejemplo : ({ q 0 }, 0122 ) M ({ q 2 }, )
Hctor Beck F. Matemticas Discretas 46

Relacin entre AFND y AFND-


Teorema: Sea M un AFND- y L = L(M) entonces existe M AFND tal que L = L(M). Demostracin: por construccin
M = (, Q, ,q0,F) donde:
(q,a) = (((q),a)); a , a F q0 ssi (q0) F F = F en otro caso

Hctor Beck F.

Matemticas Discretas

47

Ejemplo: Relacin entre AFND y AFND-


0 0
Q q0 q1 q2 0

2
1 2

{q0 , q1 , q2 } {q1 , q 2 } {q2 } {q1 , q 2 } {q2 } {q2 }

0,1

1 0,1,2

1,2

Hctor Beck F.

Matemticas Discretas

48

S-ar putea să vă placă și