Está en la página 1de 86

EISC Automatas

Alfabetos, Cadenas y Lenguajes


Definicion 1
Un Alfabeto es cualquier conjunto nito, no
vaco.
Ejemplo 1
Sea = 0, 1, 2, 3, . . . , 9 donde 0
Definicion 2
Una cadena sobre es cualquier secuencia
de elementos de longitud nita sobre .
Longitud de una cadena
Sea x

se denota por [ x [ y se dene


como el numero de smbolos de x.
[ x [=
_
0, si x =
n, si x = a
1
a
2
. . . a
n
0
EISC Automatas
Observacion 1
[ xy [=[ x [ + [ y [, x, y

Ejemplo 2
Sea = a, b, u = aba y v = ba
uv = ababa, [ uv [= 5, por otra parte
[ u [ + [ v [= 3 +2
Ejemplo 3
[ aba [= 3 y [ baaa [= 4
Ejemplo 4
= a, b, entonces [ aababa [= 6 es la longi-
tud de la cadena.
Observacion 2
Hay una unica cadena de longitud cero so-
bre , llamada cadena vaca denotada por ,
[ [= 0
1
EISC Automatas
Observacion 3
Si es diferente de vaco, entonces

es el
conjunto de todas las cadenas sobre . Se le
llama lenguaje universal.
Ejemplo 5
Sea = 1 entonces :

= , 1, 11, 111, 1111, . . .


Observacion 4
Un alfabeto es simplemente un conjunto ni-
to no vaco, dados
1
y
2
alfabetos, se
tiene
1

2
tambien lo es, ademas
1

2
,

2
y
2

1
.
Observacion 5

es un conjunto innito ya que los alfabetos


no son vacos, es decir si no es vaco, en-
tonces

es un conjunto innto de cadenas


de longitud nita.
Concatenacion de cadenas
2
EISC Automatas
La operacion de la concatenacion es una
operacion binaria entre cadenas del alfabeto
, esto es.
:

Sean x, y

y se denota por x y o simple-


mente xy
si x = a
1
a
2
. . . a
n
y y = b
1
b
2
. . . b
m
entonces
x y = a
1
a
2
. . . a
n
b
1
b
2
. . . b
m
Observacion 6
Sea (

, , ) es un monoide, con las siguientes


propiedades.
La concatenacion es cerrada. x, y

,
x y

La concatenacion de cadenas es asociativa.


x, y, z

, (xy)z = x(yz)
la cadena vaca es la identica para la
concatenacion: x

, x = x = x
3
EISC Automatas
Potencia de una cadena
se dene como x

para n N
x
n
=
_
, si n = 0
x x
n1
, si n 1
Ejemplo 6
Sobre = a, b,
(aab)
0
= , (aab)
1
= aab,
(aab)
5
= aabaabaabaabaab
Observacion 7
(n)(n N, [ x
n
[= n [ x [)
Observacion 8
Si w

,
(m)(n)(m, n N [ w
n+m
[=[ w
n
[ + [ w
m
[
)
Caso 1. n, m 1
[ w
n+m
[=[ ww w
. .
n+m,veces
[= (n + m) [ w [ por
4
EISC Automatas
otro lado,
[ w
n
[ + [ w
m
[=[ ww w
. .
n,veces
[ + [ ww w
. .
m,veces
[=
n [ w [ +m [ w [
Caso 2. n = 0, m 1
[ w
n+m
[=[ w
0+m
[=[ w
m
[, por otro lado,
[ w
n
[ + [ w
m
[=[ w
0
[ + [ w
m
[=[ [ + [
w
m
[= 0+ [ w
m
[=[ w
m
[
Caso 3. m = 0, n 1 Similar al caso an-
terior.
Caso 4. n = 0, m = 0
[ w
n+m
[=[ w
0+0
[=[ [= 0, por otro lado,
[ w
n
[ + [ w
m
[=[ w
0
[ + [ w
0
[=[ [ + [
[= 0 +0 = 0
Sujos y prejos
Definicion 3
5
EISC Automatas
Decimos que una cadena z es subcadena de
otra cadena w si existen cadenas x, y

tal
que w = x z y
prefijo(w) = x

[ z

: w = x z
sufijo(w) = x

[ z

: w = z x
Un prefijo de una cadena x es una sub-
cadena inicial de x, es decir una cadena
y es un prejo si existe una cadena z tal
que x = yz y de manera similar z es un
sufijo de x.
Los prejos propios son aquellas cadenas
que son prejos de una palabra pero no
iguales a la misma.
Un prejo y de x es un prefijo propio de
x si y ,= y y ,= x
Un sujo z de x es un sufijo propio de x
si z ,= y z ,= x
6
EISC Automatas
Ejemplo 7
Sea x = 121 es un prejijo de la cadena w =
121 pero no prejo propio, ademas x es un
sujo de w = 121 pero no sujo propio.
Inversa de una cadena
Sea x

entonces x
1
es la inversa.
x
I
=
_
x si x =
y
I
a si x = ay, a , y

Sea x =
t
able
t
entonces obtener x
I
x
I
= (able)
I
= (ble)
I
a
= (le)
I
ba
= (e)
I
lba
= ()
I
elba
= elba
= elba
Lenguajes
Un lenguaje L sobre un alfabeto es un sub-
conjunto de

, es decir L

.
7
EISC Automatas
Sea L = , es el lenguaje vaco.
Sea L = lenguaje con la cadena vaca.
,=
L =

Observacion 9
Todo lenguaje L satisface L

y puede
ser nito e innito.
Ejemplo 8
= a, b. L = a, aba, aca
Ejemplo 9
= a, b, c.
L = a, aa, aaa, aaaa, . . . = a
n
: n 1
8
EISC Automatas
Ejemplo 10
Conjunto de las cadenas de n ceros seguidos
por n unos.
L = , 01, 0011, 000111, . . .
Ejemplo 11
Conjunto de cadenas con igual numero de
ceros y unos.
L
1
= , 01, 10, 0011, 0101, 1001, 000111, . . .
Observacion 10
Sea L = a
n
b
n
: n 0 L
1
0, 1

Ejemplo 12
El conjunto de los numeros binarios cuyo val-
or es primo.
L
P
= 10, 11, 101, 111, 1011, . . .
9
EISC Automatas
Ejemplo 13
Hay una correspondencia uno-uno entre las
cadenas de 0, 1

y los numeros naturales


N = 0, 1, 2, . . . denida por:
x #(1x) 1
Donde #y es el numero natural representado
por la cadena binaria y donde x 0, 1

0, 1

N
x #(1x) 1
0
0 1
1 2
00 3
01 4
10 5
11 6
.
.
.
Teorema 1
Para todo alfabeto ,

es enumerable.
10
EISC Automatas
Teorema 2
El conjunto de todos los lenguajes sobre
no es numerable.
Operaciones entre Lenguajes
Sean A, B

entonces,
A B = x [ x A o x B
a b = a, b
a, ab ab, aab = a, ab, aab
Sean A, B

entonces,
A B = x [ x A y x B
a, ab ab, aab = ab
Complemento en

A = x

[ x / A
A =

A
11
EISC Automatas
Si A y B son lenguajes sobre , denire-
mos la diferencia como:
AB = x [ x A y x / B
Ejemplo 14
A = cadenas de longitud par sobre =
a, b
A = cadenas de longitud impar
Ejemplo 15
Sea = 0, 1, 2, 3, . . . , 9 Sean los lenguajes
A y B.
A: Lenguaje de todas las cadenas que no con-
tienen ninguno de los dgitos 2, 3, . . . , 9,

2, 3, . . . , 9 = 0, 1

B: Lenguaje de todas las cadenas de ceros.


A = 0, 1

y B = 0

por tanto
AB = 0, 1

= (0)

1(0 1)

AB es el conjunto de todas las cadenas de


unos y ceros con al menos un uno.
Concatenacion entre Lenguajes
12
EISC Automatas
Sean A y B sobre , notada por A.B o sim-
plemente AB.
AB = uv : u A y v B
Ejemplo 16
Si = a, b, c, A = a, ab, ac, B = b, b
2

AB = ab, ab
2
, ab
2
, ab
3
, acb, acb
2

BA = ba, bab, bac, b


2
a, b
2
ab, b
2
ac
Ejemplo 17
Si = a, b, c, A = ba, bc, B = b
n
: n 0
AB = bab
n
: n 0 bcb
n
: n 0
BA = b
n
ba : n 0 b
n
bc : n 0
= b
n+1
a : n 0 b
n+1
c : n 0
Ejemplo 18
Sobre y dos lenguajes A, B tal que AB=BA,
Si A o B es igual a o
Propiedades de la concatenacion
13
EISC Automatas
1. AB ,= BA
2. A. = .A =
3. A. = .A = A
4. A.(B.C) = (A.B).C (ley asociativa)
5. Ley distributiva de la concatenacion con
respecto a la union.
A.(B C) = A.B A.C
(B C).A = B.A C.A
6. Distributiva generalizada. Si B
i

iI
es una
familia cualquiera de lenguajes sobre ,
entonces
A.
_
iI
B
i
=
_
iI
(A.B
i
)
_
iI
B
i
.A =
_
iI
(B
i
.A))
14
EISC Automatas
Observacion 11
La propiedad asociativa permite escribir
concatenaciones de tres o mas lenguajes
sin necesidad de usar parentesis.
La propiedad distributiva de la concate-
nacion con respecto a la interseccion no
se cumple.
A.(B C) ,= A.B A.C
Ejemplo 19
Contraejemplo. Sea A = a, , B = , C =
a,
donde B C = ,
A.(B C) = a, . = , por oto lado
A.B A.C = a, . a, .a = a,
a
2
, a
potencia de un Lenguaje
15
EISC Automatas
Dado un lenguaje A sobre y (A

) y
n N, se dene
A
0
= A
n
= AA. . . A
. .
nveces
De manera recursiva
A
n
=
_
, si n = 0
A A
n1
, si n 1
Ejemplo 20
Sea A = ab
A
0
=
A
1
= A = ab
A
2
= A.A
1
= abab
A
3
= A.A
2
= ababab
Observacion 12
Se dice que dos lenguajes son iguales si con-
tienen exactamente las mismas cadenas, es
decir A = B.
16
EISC Automatas
Teorema 3
Sea A y B dos lenguajes sobre el alfabeto .
Entonces A = B si y solo si A B y B A
Cerradura de Kleene
La cerradura de Kleene de un lenguaje
A

es la union de las potencias: se


denota por A

=
_
i0
A
i
= A
0
A
1
A
2
. . .
la cerradura positiva se denota por A
+
A
+
=
_
i1
A
i
= A
1
A
2
A
3
. . .

=
0

1

2
. . . donde
0
= ,
sea cual sea el alfabeto .
Observacion 13
17
EISC Automatas
Sea A entonces A

= A
+

A

A
+

+
A
+
A

= =
+

0
=

n
= , para todo n 1

=
+
=
Propiedades de la cerradura
Sea A un lenguaje sobre y A

A
+
= A

.A = A.A

18
EISC Automatas
A

.A

= A

(A

)
n
= A

, para todo n 1
(A

= A

A
+
.A
+
A
+
(A

)
+
= A

(A
+
)

= A

(A
+
)
+
= A
+
Ejemplo 21
Contraejemplo de A
+
.A
+
= A
+
Sea =
a, b, A = a, entonces:
A
+
= A
1
A
2
. . . = a aa aaa . . .
= a
n
: n 1
19
EISC Automatas
Por otro lado,
A
+
.A
+
= a, a
2
, a
3
, . . . a, a
2
, a
3
, . . .
= a
n
: n 2
Inverso de un Lenguaje
sea A sobre , se dene A
1
como:
A
1
= u
1
: u A
Ejemplo 22
Sea = a, b y L = ab, abb, abc, cca en-
tonces L
1
= ba, bba, cba, acc
Propiedades del inverso
sean A y B lenguajes sobre tal que (A, B

)
(A.B)
1
= B
1
.A
1
(A B)
1
= A
1
B
1
(A B)
1
= A
1
B
1
20
EISC Automatas
(A
1
)
1
= A
(A

)
1
= (A
1
)

(A
+
)
1
= (A
1
)
+
Lenguajes Regulares
Los lenguajes regulares sobre un alfabeto
se denen recursivamente como:
, son lenguajes regulares.
a , a es un lenguaje regular.
si A y B son lenguajes regulares, tambien
lo son:
A B (Union)
A B (Concatenacion)
A

(Cerradura de Kleene)
21
EISC Automatas
Son lenguajes regulares.
Ningun otro lenguaje sobre es regular.
Ejemplo 23
Dado = a, b el lenguaje A de todas las
palabras que tienen exactamente una a.
A = b

a b

Ejemplo 24
Lenguaje de todas las cadenas que comienzan
con b.
B = b (a b)

sobre = a, b
Ejemplo 25
Lenguaje de todas las cadenas que contienen
la cadena ba.
C = (ab)

ba (ab)

sobre = a, b
Expresiones Regulares
22
EISC Automatas
Definicion 4
Sea el alfabeto entonces la forma recursiva
de una expresion regular:
1. y son expresiones regulares.
2. a es una expresion regular para toda a
3. Si r y s son expresiones regulares, en-
tonces r s,r s y r

tambien lo son.
4. Ninguna otra secuencia de smbolos es
una expresion regular.
Ejemplo 26
Algunas expresiones regulares son:
b

23
EISC Automatas
b(a b)

(a b)

ba(a b)

Definicion 5
Si r y s son expresiones regulares sobre el
mismo alfabeto y si L(r) = L(s), entonces se
dice que r y s son equivalentes, es decir que
r = s.
1. r s en el caso de que L(r) L(s).
2. Si r = s se debe demostrar que r s r.
Ejemplo 27
(a

b)

y (a b)

b son equivalentes por que


denotan el mismo lenguaje, por tanto
(a

b)

= (a b)

b
24
EISC Automatas
(a

b)

= , b, b
2
, b
3
, ab, a
2
b, a
n
b, a

ba

ba

b,
bbbba
3
b
(a b)

b = , b, b
2
, b
3
, ab, a
2
b, a
n
b, a

ba

ba

b,
bbbba
3
b
Teorema 4
Sean r, s y t expresiones regulares sobre ,
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.
25
EISC Automatas
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

= rr

.
10. (r s)

= (r

= (r

= (r

s)

=
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
26
EISC Automatas
Observacion 14
(r )

= r

Ejemplo 28
Podemos probar:
(baa

b)(baa

b)(aba

b)

(aba

b) = a

b(aba

b)

Ejemplo 29
(a

b)

(b

a)

= (a b)

Ejemplo 30
= a, b Lenguaje de todas las palabras que
comienzan con b y terminan con a.
b(a b)

a
Ejemplo 31
= a, b Lenguaje de todas las palabras que
tienen exactamente dos as.
b

ab

ab

27
EISC Automatas
Ejemplo 32
= a, b Lenguaje de todas las palabras que
tienen un numero par de smbolos. (palabras
de longitud par)
(aa ab ba bb)

Ejemplo 33
= a, b Lenguaje de todas las palabras que
tienen un numero impar de smbolos. (pala-
bras de longitud impar)
a(aa ab ba bb)

b(aa ab ba bb)

Ejemplo 34
Lenguaje de todas las cadenas sobre =
0, 1 que tiene al menos un 1.
0

1(0 +1)

Ejemplo 35
28
EISC Automatas
= a, b Lenguaje de todas las palabras que
tienen un numero par de as.
(b +(ab

a))

(b

(ab

a)

(b

ab

ab

Ejemplo 36
= a, b, c Lenguaje de todas las palabras
que no contienen la subcadena ac.
c

(a bc

Ejemplo 37
= 0, 1 Lenguaje de todas las palabras
donde el tercer smbolo desde la derecha es
1.
(0 1)

1(0 1)(0 1)
29
EISC Automatas
Automatas Finitos
1. Los automatas nitos son maquinas ab-
stractas que procesan palabras, las cuales
son aceptadas o rechazadas.
2. El automata actua leyendo los smbolos
escritos sobre una cinta semi-innita, el
automata posee una cabeza o control ni-
to que lee cada casilla desde el extremo
izquierdo de la cinta.
3. Los automatas nitos se dividen en automatas
nitos deterministas (AFD) y en automatas
30
EISC Automatas
nitos no deterministas (AFN) ambas fun-
ciones.
Automatas Finitos Deterministas (AFD)
Sea M = (Q, , q
0
, T, ) un AFD entonces:
: es el alfabeto de entrada.
Q: es el conjunto de estados
q
0
: Estado inicial
T: Conjunto de estados nales.
: Q Q determina un unico estado
siguiente para el par (q
i
, ) correspondiente
al estado actual y la entrada.
Funcion de Transicion Extendida
La funcion de transicion puede ser extendi-
da a

que opera sobre estados y cadenas.

: Q

Q
donde

(q, )
def
q,
31
EISC Automatas

(q, w)
def
(

(q, x), a)
donde w = xa, si

(q, x) = p entonces,

(q, w) =
(p, a), w, x

y a
Observacion 15
Formalmente, el lenguaje aceptado por M es:
L(M) = w

:

(q
0
, w) T
Diagramas de Estado
Un AFD puede ser representado por un grafo
dirigido y etiquetado.
Ejemplo 38
Sea = a, b, Q = q
0
, q
1
, q
2

q
0
: estado inicial
T = q
0
, q
2
estados nales o de aceptacion.
32
EISC Automatas
La expresion regular del automata es
a

+a

b(a +b(a +b))

b
Ahora queremos ver si w = abb es reconci-
da por el lenguaje a traves de la funcion de
transicion extendida:

(q
0
, abb) = (

(q
0
, ab), b)
= ((

(q
0
, a), b), b)
= (((

(q
0
, ), a), b), b)
= (((q
0
, a), b), b)
= ((q
0
, b), b)
= (q
1
, b)
= q
2
33
EISC Automatas
Por tanto como

(q
0
, abb) T, w L(M)
Ejemplo 39
Disenar el AFD sobre = a, b que reconoz-
ca el lenguaje
L = a

= , a, a
2
, a
3
, . . .
Ejemplo 40
Disenar el AFD sobre = a, b que reco-
nozca el lenguaje
L = a
+
= a, a
2
, a
3
, . . .
34
EISC Automatas
Ejemplo 41
Disenar el AFD sobre = a, b que reconoz-
ca el lenguaje de todas las palabras que con-
tienen un numero par de as.
Podemos obtener la expresion regular del automa-
ta revisando que sale del estado inicial: el
automata reconoce b

, b

ab

a, ab

a, b

(ab

a)

,
(ab

a)

por tanto la expresion regular sera:


(b +ab

a)

35
EISC Automatas
Ejemplo 42
Disenar el AFD que reconozca b

a
+
.
Ejemplo 43
AFD que reconoce todas las cadenas sobre
= 0, 1 que tiene al menos un 0.
Ejemplo 44
Disenar el AFD que reconozca a
+
b
+
.
36
EISC Automatas
Ejemplo 45
Disenar el AFD sobre = 0, 1 que reconoz-
ca en binario el lenguaje de todos los multip-
los de 2.
Binario Decimal
0 0
10 2
100 4
110 6
1000 8
1010 10
1100 12
1110 14
.
.
.
.
.
.
37
EISC Automatas
Podemos vericar que la expresion regular
(0 +(1
+
0))

es reconocida por el automata.


Ejemplo 46
Disenar el AFD sobre = a, b que reconoz-
ca el lenguaje de todas las cadenas que tienen
un numero par de smbolos.
Podemos obtener la expresion regular conca-
tenando todas las posibilidades: a, b.a, b =
aa, ab, ba, bb con las siguientes condiciones:
1. aa se puede repetir y tomar cualquiera de
los ciclos ab, ba o bb.
2. Lo mismo se puede hacer con cada una
aa, ab, ba, bb por tanto la expresion sera:
(aa +ab +ba +bb)

38
EISC Automatas
Ejemplo 47
se puede construir el AFD que acepta el lengua-
je sobre = a, b

L = x [ contiene una subcadena de dos as consecutivas


Automatas Finitos No Deterministas
M = (Q, , q
0
, T, .)
Donde
1. : es el alfabeto de entrada.
2. Q: es el conjunto de estados.
3. q
0
Q:Estado inicial.
4. ,= T Q: Conjunto de estados nales o
de aceptacion.
5.
. : Q 2
Q
39
EISC Automatas
Donde 2
Q
denota el conjunto potencia de
Q o el conjunto de todos los subconjuntos
de Q.
2
Q
= A [ A Q
Definicion 6
Sea M = (, Q, q
0
, T, .) un AFN. La funcion
de transicion:
. : Q 2
Q
Se extiende inicialmente a conjuntos de esta-
dos. Para a y S Q se dene como:
.(S, a) =
_
qS
.(q, a)
Definicion 7
La funcion extendida de . es una funcion:

. : Q

2
Q
40
EISC Automatas

.(q, ) = q, q Q

.(q, w) = .(

.(q, x), a)
=
_
p

.(q,x)
.(p, a)
q Q, a , w = xa

,

.(q, w) es el con-
junto de estados alcanzables bajo la entrada
de x desde algun estado en q.
Observacion 16
Formalmente, el lenguaje aceptado por M es:
L(M) = w

:

.(q
0
, w) T ,=
Ejemplo 48
Disenar el AF sobre = 0, 1 que reconozca
el lenguaje de todas las cadenas que terminan
en 01.
41
EISC Automatas
Este automata reconoce el lenguaje
x01 : x

Ejemplo 49
Obtener

.(q
0
, 101)

.(q
0
, 101) = .(

.(q
0
, 10), 1)
= .(.(

.(q
0
, 1), 0), 1)
= .(.(.(

.(q
0
, ), 1), 0), 1)
= .(.(.(q
0
, 1), 0), 1)
= .(.(q
0
, 0), 1)
= .(q
0
, q
1
, 1)
= q
0
, q
2

Como la coleccion de estados contiene al menos


un estado de aceptacion q
2
indica que algun
recorrido de la cadena 101 termina en esta-
do de aceptacion. Por tanto 101 pertenece al
lenguaje, es decir:

.(q
0
, 101) = q
0
, q
2
q
2
,=
Entonces w = 101 L(M)
42
EISC Automatas
Ejemplo 50
El AFD que reconoce el lenguaje de las pala-
bras sobre = a, b, que terminan en b es
equivalente al AFN.
Ejemplo 51
Considere el lenguaje denotado por la expre-
sion r = ab

a
+
sobre = a, b obtener el
AFN.
Ejemplo 52
43
EISC Automatas
Sea = a, b, y s = (ab aba)

obtener el
AFN.
Ejemplo 53
Obtenga el AFN de la expresion (a b)

b.
Ejemplo 54
Obtenga el AFN de la expresion (a b)

+
(aba)
+
.
Equivalencia entre AFD y AFNs
Es facil ver que todo AFN M
t
= (Q, , q
0
, T, .)
tiene un AFD M tal que L(M) = L(M
t
).
Ejemplo 55
Consideremos el AFN M tal que L(M) = ab

a
+
sobre = a, b
44
EISC Automatas
La funcion de transicion . de M es:
. a b
q
0
q
1
, q
2

q
1
q
1

q
2
q
2

El nuevo AFD M
t
= (Q
t
,
t
, q
0
, T
t
, ) cons-
truido a partir de M presenta las siguientes
caractersticas:
1. Q
t
= , q
0
, q
1
, q
2
, q
1
, q
2

2.
t
=
45
EISC Automatas
3. q
t
0
= q
0

4.
T
t
= S 2
Q
, S contiene al menos un estado de aceptacion
Sea T = q
1
, q
2
entonces
T
t
= q
1
, q
2
, q
1
, q
2

5. donde S 2
Q
: 2
Q
2
Q
(S, a) (S, a) = .(S, a)
a b

q
0
q
1
, q
2

q
1
q
1

q
2
q
2

q
1
, q
2
q
2
q
1

El diagrama de estados del AFD es:


46
EISC Automatas
Teorema 5
Dado un AFN M = (Q, , q
0
, T, .) se puede
construir un AFD M
t
equivalente a M, es de-
cir, tal que L(M) = L(M
t
).
Demostracion. Sea el AFN M = (Q, , q
0
, T, .)
construimos M
t
as:
M
t
= (2
Q
, , q
0
, T
t
, )
donde
: 2
Q
2
Q
(S, a) (S, a) = .(S, a)
T
t
= S 2
Q
, S contiene al menos un estado de aceptacion
47
EISC Automatas
Se demostrara que L(M) = L(M
t
) probando
que para toda cadena w

(q
0
, w) = .(q
0
, w)
1. Paso basico.
Para w = , entonces
(q
0
, ) = .(q
0
, ) = q
0

Para w = a, a entonces
(q
0
, a) = .(q
0
, a) = .(q
0
, a)
2. Paso Inductivo.
Hipotesis: (q
0
, w) = .(q
0
, w)
Tesis: (q
0
, wa) = .(q
0
, wa) para a
(q
0
, wa) = ((q
0
, w), a)
= (.(q
0
, w), a)
= .(.(q
0
, w), a)
= .(q
0
, wa)
Caso desfavorable
48
EISC Automatas
Hay la posibilidad que los 2
n
estados del AFD
construido a partir del AFN de n estados re-
sulten accesibles.
Ejemplo 56
Este AFN no tiene un AFD equivalente con
menos de 2
n
estados.
L(M) = x1c
2
c
3
. . . c
n
: x 0, 1

, c 0, 1
1. M esta en el estado q
i
, i = 1, 2, . . . , n si y
solo si w

tiene la forma x1a


1
a
2
a
i1
donde los a
j
son smbolos de entrada.
2. Si a
i
= 0,

.(q
0
, xa
1
a
2
a
i1)
) / T
Si i = n,

.(q
0
, x1a
1
a
2
a
i1)
) T
49
EISC Automatas
.(q
0
, q
1
, . . . , q
n
, 1) = q
0
, q
1
, . . . , q
n

Automatas con -Transiciones


Un automata con -transiciones es un AFN
M = (Q, , q
0
, T, .) donde la funcion de tran-
sicion esta denida as:
. : Q( ) 2
Q
La -transicion permite al automata cambiar
internamente de estado sin consumir el smbo-
lo ledo sobre la cinta.
Ejemplo 57
Podemos representar la a

sin necesidad de
colocar el estado inicial como estado nal.
50
EISC Automatas
. a b
q
1
q
1
q
2
q
2

Ejemplo 58
Sea = a, b y L = Lenguaje de todas las
palabras sobre que tienen un numero par
de as o un numero par de bs.
Equivalencia entre los AFN- y AFN
Los AFN- son computacionalmente equiva-
lentes al modelo AFN.
Teorema 6
51
EISC Automatas
Dado un AFN- M = (Q, , q
0
, T, .), se
puede construir un AFN M
t
equivalente a M,
es decir L(M) = L(M
t
)
Definicion 8
Para todo estado q Q, denimos la cerra-
dura de q como:
c(q) = p [ p es accesible desde q sin con-
sumir nada en la entrada
cq
1
, q
2
, . . . , q
k
= c(q
1
) . . . c(q
k
)
Definicion 9
Para q Q y se dene:
d(q, ) = p [ hay una transicion de q a p etiquetada con
d(q
1
, q
2
, . . . , q
i
, ) =
n
_
k=1
d(q
i
, )
Definicion 10
52
EISC Automatas
A partir de un M = (Q, , q
0
, T, .) que
tiene -transiciones, se puede construir un AFN
sin -transiciones que acepte el mismo lengua-
je, se dene
M
t
= (Q, , q
0
, T
t
, .
t
)
T
t
= T q [ c(q) T ,=
.
t
(q, ) = c(d( c(q), ))
Ejemplo 59
Construir un AFN- que reconozca sobre =
a, b, c, el lenguaje L = a

Las cerraduras de los estados q


0
, q
1
, q
2

c(q
0
) = q
0
, q
1
, q
2

c(q
1
) = q
1
, q
2

c(q
2
) = q
2

53
EISC Automatas
T = q
2

q [ c(q) T ,= = q
0
, q
1
, q
2

T
t
= q
2
q
0
, q
1
, q
2
= q
0
, q
1
, q
2

El siguiente AFN reconoce el mismo lenguaje


que reconoce el AFN- anterior.
54
EISC Automatas
Automatas Finitos y Expresiones Regulares
1. Construccion de automatas nitos a par-
tir de expresiones regulares.
2. Construccion de expresiones regulares a
partir de automatas.
a) Lema del orden (Ecuaciones del Lengua-
je)
b) Conversion de AF a expresiones regu-
lares por eliminacion de estados.
Teorema 7
Un lenguaje regular si y solo si es aceptado
por un automata nito (AFD o AFN o AFN-
)
55
EISC Automatas
Conversion de E.R a Automatas Finitos
Teorema 8
Para toda expersion regular R nosotros podemos
construir un AFN- M tal que L(R) = L(M)
Paso Basico.
El automata
acepta
el automata
56
EISC Automatas
acepta
el automata
acepta a
Paso Inductivo.
1. Automata que acepta R S
Sea M
1
= (Q
1
,
1
, s
1
, T
1
, .
1
)
y M
2
= (Q
2
,
2
, s
2
, T
2
, .
2
) entonces
para el nuevo AFN M = (Q, , s, T, .)
tenemos:
57
EISC Automatas
a) =
1

2
b) T = s
t
si y solo si
. = .
1
.
2
(s, , s
1
), (s, , s
2
)
(T
1
, , s
t
), (T
2
, , s
t
)
donde s
t
es un estado nal nuevo.
c) Q = Q
1
Q
2
s s
t
, donde s es
el nuevo estado inicial.
Sin estado nal adicional.
a) =
1

2
, T = T
1
T
2
b) Q = Q
1
Q
2
s, donde s es el nuevo
estado inicial.
. = .
1
.
2
(s, , s
1
), (s, , s
2
)
2. Automata que acepta R S
Sea M
1
= (Q
1
,
1
, s
1
, T
1
, .
1
)
y M
2
= (Q
2
,
2
, s
2
, T
2
, .
2
) entonces
58
EISC Automatas
para el nuevo AFN M = (Q, , s, T, .)
que acepta L(M
1
)L(M
2
)
a) Q = Q
1
Q
2
b) s = s
1
c) T = T
2
d)
. = .
1
.
2
(T
1
s
2
)
3. Automata que reconoce R

Sea el AFN M
1
= (Q
1
,
1
, s
1
, T
1
, .
1
)
entonces el nuevo AFN M = (Q, , s, T, .)
que acepta (L(M
1
))

viene dado por:


a) Q = Q
1
s s
t

b) T = s
t

59
EISC Automatas
c)
. = .
1
(s, , s
1
), (s, , s
t
)
(T
1
s
t
)
Ejemplo 60
Sea = a y el L = a obtener a

Este es el automata que reconoce L = a


Ejemplo 61
Construir (ab ba)

Construimos ab y ba
60
EISC Automatas
Construimos ab ba
Construimos (ab ba)

Lema de Orden (Ecuaciones de lenguaje)


Teorema 9
61
EISC Automatas
Sea un alfabeto y sean E y A subconjuntos
de

, entonces la ecuacion de lenguaje X =


EAX admite la solucion X = A

E cualquier
otra solucion Y debera contener AX, ademas
/ A, X = A

E es la unica solucion.
Teorema 10
Sea n 2 considere el sistema de ecuaciones
cuyas incognitas x
1
, x
2
, . . . , x
n
dado por:
x
1
= E
1
A
11
x
1
A
12
x
2
. . . A
1n
x
n
x
2
= E
2
A
21
x
1
A
22
x
2
. . . A
2n
x
n
.
.
.
x
n1
= E
n1
A
(n1)1
x
1
. . . A
(n1)n
x
n
x
n
= E
n
A
n1
x
1
A
n2
x
2
. . . A
nn
x
n
Entonces el sistema tiene unica solucion:
En la cual
i,j
1, . . . n, / A
i
Entonces el nuevo sistema se obtiene has-
ta n-1:
62
EISC Automatas
x
1
=

E
1


A
11
x
1


A
12
x
2
. . .

A
1(n1)
x
n1
x
2
=

E
2


A
21
x
1


A
22
x
2
. . .

A
2(n1)
x
n1
.
.
.
x
n1
=

E
n1

A
(n1)1
x
1
. . .

A
(n1)(n1)
x
n1
y se denen:

E
i
= E
i
(A
in
A

nn
E
n
), i = 1. . . n 1

A
ij
= A
ij
(A
in
A

nn
A
nj
),
i,j
= 1. . . n 1
E
i
=
_

_
si q
i
/ F
si q
i
F
Ejemplo 62
Dado el siguiente AFD obtener la expresion
regular usando ecuaciones de lenguaje y la
solucion unica:
63
EISC Automatas
x
1
= ax
1
+bx
2
x
2
= bx
1
+ax
2
+
Aplicamos el teorema de solucion de ecua-
ciones:
x
1
=

E
1
+

A
11
x
1
Obtenemos

E
1

E
1
= E
1
+(A
12
A

22
E
2
)

E
1
= +(b.a

.)

E
1
= ba

Obtenemos

A
11

A
11
= A
11
+(A
12
A

22
A
21
)

A
11
= a +(b.a

.b)

A
11
= a +ba

b
64
EISC Automatas
Reemplazando

E
1
y

A
11
en x
1
x
1
=

E
1
+

A
11
x
1
x
1
= ba

+(a +ba

b)x
1
Aplicando el teorema de solucion unica nos
queda:
x
1
= (a +ba

b)

ba

Por tanto (a+ba

b)

ba

es la expresion regular
del automata.
Ejemplo 63
Este AFD reconoce todas las cadenas de con
un numero par de 0s y un numero par de
1s.
65
EISC Automatas
Propiedades de los Lenguajes Regulares
Lema del Bombeo
Para todo lenguaje regular L (sobre un alfa-
beto ) existe una constante n N, llamada
la constante del bombeo para L, tal que to-
da palabra w L, con [ w [ n, satisface las
siguiente propiedad:
w se puede descomponer como w = uvx, con
[ uv [ n, v ,= , y para todo i 0 se tiene
uv
i
x L.
66
EISC Automatas
1. Tanto u como x pueden ser la palabra
vaca , pero v ,= .
2. La palabra v ( o la parte central) se puede
bombear cero o mas veces en el sentido
de que uv
i
x es aceptada por M para todo
i 0.
3. El lema del bombeo se puede usar para
concluir que cierto lenguaje no es regular.
(contradiccion)
67
EISC Automatas
Ejemplo 64
Podemos usar el lema del bombeo para demostrar
que el lenguaje L = a
i
b
i
: i 0 no es un
lenguaje regular.
Solucion: Si L es regular, existe una cons-
tante de bombeo n para L. Sea w = a
n
b
n
L
donde w se descompone en w = uvx, con
[ v [ 1, [ uv [ n y para todo i 0, uv
i
x L
u y v constan unicamente de as.
u = a
r
, para algun r 0
v = a
s
, para algun s 1, por que [ v [ 1
Entonces,
x = a
n(r+s)
b
n
= a
nrs
b
n
De donde,
uv
2
x = a
r
a
s
a
s
a
nrs
b
n
= a
r+2s+nrs
b
n
= a
n+s
b
n
Conclusion, por el lema del bombeo, la pal-
abra uv
2
x L pero como s 1, a
n+s
b
n
/ L.
POR LO TANTO L NO PUEDE SER REG-
ULAR.
68
EISC Automatas
Ejemplo 65
Podemos tambien ver que el lenguaje de las
palndromes sobre a, b no es un lenguaje
regular.
Si L fuera regular, existira n la constante de
bombeo y w = a
n
ba
n
L donde w se de-
scompone en w = uvx, con [ v [ 1, [ uv [ n
y para todo i 0, uv
i
x L, por lo tanto u y
v constan unicamente de as.
u = a
r
, para algun r 0
v = a
s
, para algun s 1, por que [ v [ 1
Entonces,
x = a
n(r+s)
ba
n
= a
nrs
ba
n
De donde,
uv
2
x = a
r
a
s
a
s
a
nrs
ba
n
= a
r+2s+nrs
ba
n
=
a
n+s
ba
n
Observacion 17
69
EISC Automatas
En conclusion por el lema del bombeo, la pal-
abra uv
2
x L pero como s 1, a
n+s
ba
n
no
es un palndrome. POR LO TANTO L NO
PUEDE SER REGULAR.
Propiedades de Clausura
Teorema 11
Si L, L
1
y L
2
son lenguajes regulares sobre
un alfabeto , tambien lo son:
1. L
1
L
2
(Union)
2. L
1
L
2
(Concatenacion)
3. L
+
(cerradura positiva de Kleene)
4. L =

L (complemento)
5. L

(cerradura de Kleene)
70
EISC Automatas
6. L
1
L
2
(interseccion)
7. L
1
L
2
(Diferencia)
8. L
1
.L
2
(Diferencia simetrica)
Observacion 18
Un sublenguaje (subconjunto) de un lenguaje
regular no es necesariamente regular, es de-
cir, la familia de los lenguajes regulares no es
cerrada para subconjuntos. Dicho de otra for-
ma, un lenguaje regular puede contener sub-
lenguajes no-regulares.
Ejemplo 66
L = a
n
b
n
: n 1 es un sublenguaje del
lenguaje regular a

Teorema 12
71
EISC Automatas
Si L y M son lenguajes regulares, tambien lo
es L M.
Observacion 19
Todo lenguaje nito es regular y la union
nita de lenguajes regulares es regular.
La union innita de lenguajes no necesari-
amente es regular.
L = a
n
b
n
: n 1 =
_
i1
a
i
b
i

Donde cada a
i
b
i
es regular, pero L no
lo es.
Teorema 13
Si L es un lenguaje regular con el alfabeto ,
entonces L
t
=

L tambien es un lenguaje
regular.
PRUEBA.
72
EISC Automatas
1. Sea L = L(M) para un AFD M = (Q, , q
0
, T, )
2. Entonces L
t
= L(M
t
) donde M el AFD
M
t
= (Q, , q
0
, QT, )
3. M = M
t
, pero los estados de aceptacion
de M se transforman en estados de no
aceptacion en M
t
y viceversa.
4. w L(M
t
) si y solo si

(q
0
, w) QT, lo
que signica que w / L(M)
Ejemplo 67
Obtener el lenguaje complementario del sigu-
iente automata.
AFD que reconoce (0 +1)

01
73
EISC Automatas
AFD que reconoce el el complementario del
lenguaje (0 +1)

01
Ejemplo 68
Podemos demostrar que L = a
i
b
j
: i, j
0, i ,= j No es regular.
Supongamos que L es regular entonces a

L debe ser regular.


a

L = a
i
b
i
: i 0
74
EISC Automatas
Teorema 14
Si L
1
y L
2
son lenguajes regulares, tambien
lo es L M.
PRUEBA. Sean L
1
= L(M
1
) y L
2
= L(M
2
)
donde M
1
= (Q
1
,
1
, q
0
, T
1
,
1
)
y M
2
= (Q
2
,
2
, q
0
, T
2
,
2
),
Entonces construimos:
M
1
= (, Q
1
Q
2
, (q
1
, q
2
), T
1
T
2
,
1
)
donde
: Q
1
Q
2
Q
1
Q
2
((q
i
, q
j
), a) = (
1
(q
i
, a),
2
(q
j
, a))
Esta funcion satisface:
L(M) = L(M
1
) L(M
2
)
Ejemplo 69
Construir el AFD que acepte el lenjuaje L de
todas las palabras sobre = a, b que tienen
un numero par de as y un numero par de bs.
75
EISC Automatas
Entonces L = L(M) = L(M
1
) L(M
2
) tiene
cuatro estados:
Q
1
Q
2
= (q
1
, q
2
), (q
1
, q
4
), (q
3
, q
2
), (q
3
, q
4
)
T
1
T
2
= (q
1
, q
2
)
es:
((q
1
, q
2
), a) = (
1
(q
1
, a),
2
(q
2
, a)) = (q
3
, q
2
)
((q
1
, q
2
), b) = (
1
(q
1
, b),
2
(q
2
, b)) = (q
1
, q
4
)
((q
1
, q
4
), a) = (
1
(q
1
, a),
2
(q
4
, a)) = (q
3
, q
4
)
((q
1
, q
4
), b) = (
1
(q
1
, b),
2
(q
4
, b)) = (q
1
, q
2
)
((q
3
, q
2
), a) = (
1
(q
3
, a),
2
(q
2
, a)) = (q
1
, q
2
)
((q
3
, q
2
), b) = (
1
(q
3
, b),
2
(q
2
, b)) = (q
3
, q
4
)
((q
3
, q
4
), a) = (
1
(q
3
, a),
2
(q
4
, a)) = (q
1
, q
4
)
((q
3
, q
4
), b) = (
1
(q
3
, b),
2
(q
4
, b)) = (q
3
, q
2
)
76
EISC Automatas
Teorema 15
Si L y M son lenguajes regulares, tambien lo
es L M.
PRUEBA. L M = L M
t
, por el teorema de
lenguaje complementario , M es regular y
por la interseccion de lenguajes regulares, en-
tonces L M
t
es regular, por tanto L M es
regular.
Ejemplo 70
Podemos construir la diferencia de

0 +1

1 sobre = 0, 1

0 +1

1 =

(0 +1

1)
t
77
EISC Automatas
1. Se obteiene (0 +1

1)
t
2. Los AFD se intersectan.
Ejemplo 71
Sea el lenguaje L
L = wb
n
: w

, [ w [= n, n 1
L = abb
2
, bbb
2
, ababb
4
, . . . ab, aab
2
, aaab
3
, . . .
. .
a
n
b
n

No es regular.
Si L es regular entonces L a

debe ser
regular, pero.
L a

= a
n
b
n
: n 1
Algoritmos de Decision
Teorema 16
Sea M un AFD con n estados y sea L =
L(M).
78
EISC Automatas
1. L ,= si y solo si M acepta una palabra
w tal que [ w [< n.
a) ) Si M acepta una cadena de longi-
tud menor que n, entonces L ,= (es
obvio)
b) ) Suponemos que L ,= , entonces
existira un w L(M). Necesitamos pro-
bar que L(M) contiene una cadena menor
que n. Si [ w [< n
quedara probado. Por contradiccion si
w n por el lema del bombeo, w =
uvx, donde [ uv [ n, v ,= .
Por tanto [ v [ 1 y se tiene que uv
i
x
L(M) para todo i 0, entonces [ ux [<[
w [ ( lo que contradice la minimalidad
de [ w [).
2. L es innito si y solo si M acepta una
palabra w tal que n [ w [< 2n.
a) ) Supongamos que L(M) es innito,
existe w L con [ w [ n
79
EISC Automatas
por Lema del bombeo w = uvx, donde
[ uv [ n, v ,= si [ w [< 2n la demostracion
termina.
Entonces suponemos que [ w [ 2n
[ v [[ uv [ n
Corolario 1
Sea un alfabeto dado. Existen algoritmos
para los siguientes problemas de decision ref-
erentes a automatas nitos sobre :
1. Dado un automata nito,
Es L(M) ,= ?
2. Dado un automata nito, Es L(M) in-
nito?
3. Dados dos automatas nitos M
1
y M
2
,
Es L(M
1
) = L(M
2
)?
1. Algoritmo:
80
EISC Automatas
a) Construir un AFD M
t
que acepte el
lenguaje L(M).
b) Chequear la aceptacion o rechazo de
todas las palabras w

tales que
[ w [< n, donde n es el numero de es-
tados de M
t
.
2. Algoritmo.
a) Construir un AFD M
t
que acepte el
lenguaje L(M).
b) Chequear la aceptacion o rechazo de
todas las palabras w

tales que
n [ w [< 2n, donde n es el numero de
estados de M
t
.
Ejemplo 72
El AFD que reconoce el lenguaje de las pal-
abras sobre = a, b, que terminan en b es
equivalente al AFN.
81
EISC Automatas
1. Sea r
1
expresion de M
1
y r
2
expresion de
M
2
entonces L(r
1
) = L(r
2
)
2. L(M
1
) = L(M
2
)
3. Sea L
1
= L(M
1
) y L
2
= L(M
2
) entonces:
L
1
= L
2
L
1
.L
2
=
Observacion 20
82
EISC Automatas
Dados dos automatas nitos M
1
y M
2
,
L(M
1
) = L(M
2
)? Existe un algoritmo siendo
esto un problema de decision.
Gramaticas Regulares
Sea G = (, N, S, P)
: Alfabeto
N: Smbolos no terminales.
S: Smbolo no terminal de inicio.
P: son las producciones de la forma A w
donde A N, w N que satisface lo
siguiente:
1. w contiene un no terminal como maximo.
2. Si w contiene un no terminal, entonces es
el smbolo que esta en el extremo derecho
de w.
Ejemplo 73
Sobre = a, b sea el lenguaje a

b entonces:
N = S
P : S aS [ b
83
EISC Automatas
Ejemplo 74
Sea el lenguaje a

b a entonces la gramatica
regular es:
S aA [ b [ a
A aA [ b
Ejemplo 75
Sea = a, b la gramatica para el lengua-
je (a b)

puede ser obtenida a traves del


automata nito que reconoce el lenguaje.
Podemos construir la gramatica con base en
las transiciones del AFD:
S aS [ bS [
la produccion S aS se dene a traves de la
transicion (S, a) = S, ahora cada produccion
se hace con base en cada transicion:
84
EISC Automatas
S bS proviene de la transicion (S, b) = S
y la produccion S se da por que S es
estado terminal.
Ejemplo 76
Sea el lenguaje a

el automata es el sigu-
iente:
Entonces podemos defnir la transicion del automa-
ta con su respectiva regla:
.(S, a) = S S aS
.(S, b) = A S bA
.(A, b) = A A bA
como S y A son estados nales entonces se
denen las reglas: S
A
85

También podría gustarte