Está en la página 1de 78

Teora de Autmatas

y
Lenguajes Formales
Introduccin
Por qu es importante la teora de
lenguajes formales y autmatas?
Bueno, aclaramos primero un poco las
palabras usadas...
Qu es un lenguaje formal?

Introduccin
Conocemos lenguajes naturales...

espaol, alemn, ingls, chino, rabe...
cuando nacemos no sabemos ninguno
se puede aprender cualquier lenguaje (por
lo menos si se ha nacido en un entorno
adecuado)
el lenguaje es una secuencia de fonemas
o smbolos


Introduccin
que forman slabas, palabras, frases,
prrafos, captulos, novelas, libros,
bibliotecas...
que tiene una sintaxis (fontica o
ortografa)
que tiene una gramtica (reglas de
concatenacin y construccin de
palabras para formar frases)
(que tiene un estilo (forma de unir
frases para generar textos))

Introduccin
Lenguajes formales sern conjuntos de
secuencias de smbolos (cuya construccin
se consigue con una gramtica formal).

Introduccin
Qu es un autmata?
dispositivos mecnicos o electrnicos o
biolgicos
que en un punto de tiempo estn en un
estado
que dado una razn (por ejemplo una
seal de entrada) cambian de estado


Introduccin
ejemplos son: reloj mecnico o
electrnico, mquina para lavar, todo un
ordenador.

Informalmente, se puede entender por
autmata como un dispositivo de
cmputo que es capaz de recibir una
entrada, realizar una operacin con su
informacin y producir un resultado.


Introduccin
A lo largo del curso se estudiarn diferentes
dispositivos de este tipo y tambin se los
relacionar con los lenguajes que son
capaces de manipular.
Se estudiarn con detalle los lenguajes
formales, las gramticas (que son objetos
matemticos para la formalizacin de los
lenguajes) y las relaciones entre ellos.

Conceptos Bsicos
Def. 1.1: Alfabetos ()
Un alfabeto es un conjunto finito no vaco
de smbolos.
Alfabeto sii
Ej.:
= {a, b, c} es alfabeto
= {0, 1} es alfabeto
= {} es alfabeto
Conceptos Bsicos
= no es alfabeto
= {} no es alfabeto
= {hola, chao} es alfabeto
= { , } es alfabeto






Conceptos Bsicos
Def. 1.2: Palabras

Una secuencia finita de smbolos de un
alfabeto es una palabra sobre dicho
alfabeto.

Ej.: = {a, h, o, l}
hhhh es palabra sobre


Conceptos Bsicos
hola es palabra sobre
hax no es palabra sobre

Def. 1.3: Longitud de una palabra
La longitud de una palabra sobre un
alfabeto es el nmero de smbolos que
contiene.
|hola|=4 |010|=3
Conceptos Bsicos
Def. 1.4: Igualdad entre palabras

hola = hola
hola hoal
hola holas

Conceptos Bsicos
Def. 1.5: Longitud de una palabra
respecto de una letra

W palabra sobre , b e
|W|
b
longitud de w respecto de b

Ej.: |omo|
m
= 1 |omo|
a
= 0 |omo|
o
= 2
Conceptos Bsicos
Def. 1.6: Concatenacin

x e y palabra
xy concatenacin de x e y

Ej.: hola = hola
hola = hola

Conceptos Bsicos
|x y|=|x| + |y|
|x y|
b
s |x| + |y|
|x y|
b
= |x|
b
+ |y|
b

Nota: la concatenacin es asociativa
(x y) z= x (y z)
Y no es conmutativa
Contra ejemplo: hola = laho
Conceptos Bsicos
Def. 1.7:
es palabra vaca
es la nica palabra de cero letras

hola = hola= hola=h ola
=


Conceptos Bsicos
Def. 1.8: k e IN alfabeto

k
= {x sobre / |x|=k}

Ej.:

= {a, b}

2
= {aa, ab, ba, bb}
1
= {a, b}

0
={}

3
= {aaa,aab,aba,abb,baa,bab,bba,bbb }
Conceptos Bsicos
Def. 1.9: alfabeto

+
=
1
U
2
U
3
U

*
=
0
U
1
U
2
U={} U
+

Si = {0, 1}

+
= {0,1}U {00,01,10,11}

U{000,001,}

U
{0000,0001,} U
= {0,1,00,01,10,11,000,001,}


Autmata Finito Deterministas(AFD)
Def. 1.10: Un autmata finito determinista
(AFD) es una quntupla, donde:
A= <, S, S
0
, o, F>
: alfabeto
S: Conjunto de estados (S = )
S
0
: estado inicial
o: Funcin de transicin de estados
F: conjunto de estado finales (F_S)
Autmata Finito Deterministas(AFD)
o S: S

Ej.: rico malo
= { , } rico malo
S={rico, malo} malo malo
S
0
=rico
F={rico}
Autmata Finito Deterministas(AFD)
(rico)
si


no
(malo)


A

Malo


Malo


Malo


rico
Autmata Finito Deterministas(AFD)
Observacin 1.1:
Es posible definir un autmata finito determinista
como un digrafo (grafo dirigido) G=<V, E> de la
manera que sigue:
i. V=S
ii. E= {<s, t, a> / s, t e . o(s, a)=t }


Rico malo
Autmata Finito Deterministas(AFD)
Ej.2:

= { , } rojo azul verde
S={rojo, azul, verde} azul verde rojo
S
0
=rojo verde rojo azul
F={azul}


Autmata Finito Deterministas(AFD)
Resultado de procesar aceptado
no
si
no
no
si

Autmata Finito Deterministas(AFD)
verde
rojo
azul
Autmata Finito Deterministas(AFD)
Ejercicio:

1. Construya un AFD que acepte las
palabras sobre {a, b} que comiencen en
a.
2. Construya un AFD que acepte las
palabras sobre {a, b, c} que tengan al
menos una secuencia abc.

Autmata Finito Deterministas(AFD)
Solucin:
1.


2.
1
3
2
a
b
a,
b
a,
b
b, c a
4 1 2 3
c
b a c
b
Autmata Finito Deterministas(AFD)
Def. 1.11:
Dado un autmata Finito determinista < , S, S
0
, o,
F > , la funcin extendida de transicin de estados,
denotada por o, es una funcin Sx* ->S definida
recursivamente como sigue:

i. (se S)(a e) o(s,a)=o(s,a)
ii. (se S) o(s,)=s
iii.(se S)(a e)(x e*) o(s,ax)= o(o(s,a),x))
Autmata Finito Deterministas(AFD)
Teorema 1.1:
Sea A=< , S, S
0
, o, F > un autmata finito
determinista, entonces:
(x e*)(y e*)(s eS)
(o(s,yx)= o(o(s,y),x))




Autmata Finito Deterministas(AFD)
Def. 1.12: Dado un autmata Finito
Determinista A =< , S, S
0
, o, F > , A acepta
una palabra w e* sii o(s
0
,w)e F.

Def. 1.13: Dado un autmata Finito
Determinista A =< , S, S
0
, o, F > , A
rechaza una palabra w e* sii o(s
0
,w) e F.

Autmata Finito Deterministas(AFD)
Def. 1.14: Dado un alfabeto , L es un
lenguaje sobre el alfabeto sii L _ *.

Def. 1.15: Dado un autmata finito
determinista A= < , S, S
0
, o, F >, el
lenguaje aceptado por A denotado por L(A),
se define como:
L(A)={w e * / o(S
0
, w) e F}


Autmata Finito Deterministas(AFD)
Def. 1.16:
Dado un alfabeto , un lenguaje L _ * es
definible por un autmata finito sii existe un
autmata finito determinista
B= < , S, S
0
, o, F >, tal que L=L(B).
Autmata Finito no Deterministas(AFND)
Def. 3.1:
Un autmata finito no determinista (AFND) es una
quntupla < , S, S
0
, o, F >
i. es un alfabeto
ii.S es un conjunto finito, no vacio de estados
iii.S
0
es un conjunto de estados iniciales, un
subconjunto no vaco de estados iniciales
iv.o:Sx(S) es la funcin de transicin de
estados y (S) es el conjunto de potencia de S
v.F es un conjunto de estados de aceptacin, un
subconjunto de S






Autmata Finito no Deterministas(AFND)
Existen dos diferencias notables respecto
de los autmatas finitos deterministas.
1)S
0
es ahora un conjunto de estados, esto
quiere decir que un AFND puede tener
mltiples entradas.
2)La funcin de transicin de estados sobre
un par(estado, letra) arroja como resultado
un subconjunto de S.
Autmata Finito no Deterministas(AFND)
Def. 3.2:
Dado un AFND A=<, S, S
0
, o, F>, la
funcin de transicin extendida para A es
o:Sx* (S), definida recursivamente
como:
i.(s eS) o(s,)={s}
ii.(s e S)(a e )(x e*) o(s,xa)= o(q,a)
q eo(x,x)


Autmata Finito no Deterministas(AFND)
Def. 3.3:
Sea A= <, S, S
0
, o, F>, un AFND y w una
palabra en *. A acepta w sii:
(o(q,w)) F = u
q e S
0


Autmata Finito no Deterministas(AFND)
Def. 3.4:
Dado un AFND A= <, S, S
0
, o, F>, el
lenguaje aceptado por A, denotado por L(A)
es:
L(A)={x e*/(o(q,x)) F=u}
q e S
0

O equivalentemente:
L(A)={- t e S
0
/ o(t, x) F =u}
Autmata Finito no Deterministas(AFND)
Def. 3.5:
Dado un AFND A= <, S, S
0
, o, F>, el
correspondiente AFD
A
d
=<
d
, S
d
, S
0
d
, o
d
, F
d
> se define con:
S
d
=(S)
S
0
d
=S0
F
d
={Q e S
d
/Q F = u}
Autmata Finito no Deterministas(AFND)
Y la funcin de estados o
d
: S
d
x S
d
,
queda definida por:
(Q e S
d
)(a e)o
d
(Q, a)= (q, a)
q e Q
Y se extiende la funcin o
d
:S
d
x*S
d
,
definida por:
(Qe S
d
) o
d
(Q,)=Q
(Qe S
d
)(ae)(xe*)
o
d
(Qxa)=o
d
(o
d
(Q,x), a)
Autmata Finito no Deterministas(AFND)
Def. 3.6: Un autmata Finito no determinista con
transiciones- es una quntupla
A

=<, S, S
0
, o

, F>,donde:
i. es un alfabeto
ii.S es un conjunto no vaco de estados
iii.S
0
es el conjunto inicial de estados, un
subconjunto no vaco de S.
iv.o

:(Sx( {})) (S).


v.F es el conjunto de estados de aceptacin, un
(posiblemente vaco) subconjunto de S.
Autmata Finito no Deterministas(AFND)
Def. 3.7:
Dado un autmata finito no determinista
A

=<, S, S
0
, o

, F> con transiciones , el


cierre- de un estado t e S, denotado por
A(t), es el conjunto de todos los estados
alcanzables desde t sin procesar ningn
smbolo del alfabeto. El cierre- de un
conjunto de estados T es:
A(T)= A(t)
t e T
Autmata Finito no Deterministas(AFND)
Def. 3.8:
Dado un autmata finito no determinista
A

=<, S, S
0
, o

, F> con transiciones , la


funcin extendida de transicin de estados
para A

es una funcin
o

:Sx*(S) definida como:


(seS)o

(s, )= A(s)
(seS)(ae )o

(s, a)=A( o

(q, a)
q e A(s)
Autmata Finito no Deterministas(AFND)
(seS)(xe *)(ae ) o

(s, xa)=A( o

(q, a))
q e o

(s,x)

Def. 3.9:
Dado un autmata A

=<, S, S
0
, o

, F> con
transiciones , el correspondiente autmata
finito no determinista sin transiciones ,
A

o
=<, S{q
0
}, S
0
{q
0
}, o

o
, F
o
> se define
como sigue:
Autmata Finito no Deterministas(AFND)

F sii e L(A

)
F
o
=

F {q
0
} sii e L(A

)

(ae )o

o
(q
0
, a)= u
(seS)(ae ) o

o
(s, a)= o

(s, a)= A( o

(q, a))
q e A(s)

Autmata Finito no Deterministas(AFND)
Teorema 3.1
Sea A=< , S, S
0
, o, F > un AFND y sea
A
d
=<
d
, S
d
, S
0
d
, o
d
, F
d
> el correspondiente
AFD. Entonces A y A
d
son equivalentes,
esto es:
L(A)=L(A
d
)
Autmata Finito no Deterministas(AFND)
Teorema 3.2
Sea A

o
=<, S, S
0
, o

o
, F
o
> el
correspondiente AFND sin transiciones .
Entonces A

y A

o
son equivalentes, esto es:
L(A

)=L(A

o
)
Conjuntos Regulares
Def. 4.0
Sea L1 y L2 lenguajes. La concatenacin de
L1 con L2, escrito como L1L2, se define
como:

L1L2={xy / x e L1 . y e L2}
Conjuntos Regulares
Def. 4.1:
Sea ={a
1
, a
2
,, a
m
} un alfabeto. Un
conjunto regular sobre es cualquier
conjunto que puede ser formado por una
secuencia de aplicaciones de las
siguientes reglas:
i. {a
1
},{a
2
},,{a
m
} son conjuntos regulares.
ii. {} (el conjunto vaco de palabras) es un
conjunto regular.
Conjuntos Regulares
iii. {} (el conjunto que contiene slo la
palabra vaca) es tambin un conjunto
regular.
iv. Si L
1
y L
2
son conjuntos regulares
entonces L
1
L
2
tambin lo es.
v. Si L1 y L2 son conjuntos regulares
entonces L
1
L
2
tambin lo es.
vi. Si L
1
es un conjunto regular entonces
L
1
* tambin lo es.

Conjuntos Regulares
Def. 4.2:
Sea ={a
1
, a
2
,, a
m
} un alfabeto. Una
expresin regular sobre es una
secuencia de smbolos formado por una
aplicacin repetida de las siguientes
reglas:
i. a
1
,a
2
,,a
m
son todas expresiones
regulares representando
respectivamente los conjuntos regulares
{a
1
},{a
2
},,{a
m
}
Conjuntos Regulares
ii. u es la expresin regular que representa {}
iii. c es la expresin regular que representa {}
iv. Si R
1
y R
2
son expresiones regulares,
correspondientes a los conjuntos regulares L1
y L2, entonces (R
1
R
2
) es una expresin
regular que representa a L
1
L
2
.
v. Si R
1
es una expresin regular
correspondientes al conjunto L
1
entonces
(R
1
)* es una expresin regular que representa
a L1*.
Conjuntos Regulares
Def. 4.3:
Sea R una expresin regular. El lenguaje
representado por R es denotado
formalmente por L(R). Dos expresiones
regulares R
1
y R
2
se dir que son
equivalentes si los conjuntos representado
por las dos expresiones son iguales y se
escribir R
1
=R
2
.
Conjuntos Regulares
Lema 4.1:
Sea un alfabeto, y sea R
1
, R
2
, R
3

expresiones regulares. Entonces:
(a) R
1
u =R
1
(b) R
1
c=R
1
=cR
1
(c) R
1


u

= u = u R
1
(d) R
1
R
2
=R
2
R
1
(e) R
1
R
1
=R
1

Conjuntos Regulares
(f) R
1
(R
2
R
3
)=(R
1
R
2
)R
3
(g) R
1
(R
2
R
3
)=(R
1
R
2
)R
3
(h) R
1
(R
2
R
3
)=(R
1
R
2
)(R
1
R
3
)
(i) c*=c
(j) u*=c
(k) (R
1
R
2
)*=(R
1
*R
2
*)*
(l) (R
1
R
2
)*=(R
1
*R
2
*)*
(m) (R
1
*)*=R
1
*
(n) (R
1
)*(R
1
*)=R
1
*
Conjuntos Regulares
Observacin 4.1
Es posible encontrar ejemplos para los
cuales:
(b) R
1
c = R
1
(d) R
1
R
2
= R
2
R
1
(e) R
1
R
1
=R
1
(h) R
1
(R
2
R
3
) = (R
1
R
2
) (R
1
R
3
)
(k) ( R
1
R
2
)* = (R
1
*R
2
*)*
(l) ( R
1
R
2
)* = (R
1
*R
2
*)*
Conjuntos Regulares
Def.4.4:
Sea un alfabeto. El smbolo D

es usado
para denotar el conjunto de todos los
lenguajes definibles por autmatas finitos
sobre ; esto es:

D

={L _ / - un autmata finito


determinista M L(M)=L}
Conjuntos Regulares
Def. 4.5:
Sea un alfabeto. El smbolo R

es usado
para denotar el conjunto de todos los
conjuntos regulares sobre ; esto es:

R= {L _ / - un autmata finito determinista
M L(M) = L}
Conjuntos Regulares
Lema 4.2:
Sea un alfabeto y sea R un conjunto
regular sobre . Entonces existe un
autmata finito determinista que acepta R.

Corolario 4.1:
Sea un alfabeto. Entonces R

_D

Gramticas Regulares
Def 5.1:
Una gramtica no restringida (o de tipo 0)
sobre un alfabeto es una cudrupla.
<, , S, P>, donde
es un conjunto(no vaco) de smbolos no
terminales
es un conjunto(no vacio) de smbolos
terminales y = u
Gramticas Regulares
S es el denominado smbolo inicial y S e
P es un conjunto de producciones de la
forma o|, donde o e()
+
, | e()*.


Ejemplo: considere la gramtica
G=<{A, B, S, T}, {a, b, c},S,{S->aSBc,
S->T,T->, TB->bT, cB->Bc}>, una
derivacin del simbolo S puede ser:
Gramticas Regulares
S->aSBc (aplicando S->aSBc)
aSBc->aaSBcBc (aplicando S->aSBc)
aaSBcBc->aaTBcBc (aplicando S->T)
aaTBcBc->aabTcBc (aplicando TB->bT)
aabTcBc->aabTBcc (aplicando cB->Bc)
aabTBcc->aabbTcc (aplicando TB->bT)
aabbTcc->aabbcc (aplicando T->)
En este caso podemos escribir S*->aabbcc
Gramticas Regulares
Def. 5.2:
Dado una gramtica G=<, , S, P>, el
lenguaje generado por G, denotado por
L(G),es dado por:
L(G)={x/ x e*. S*->x}
Si la gramtica G es de tipo 0(o no
restringida) entonces L(G) se dice que es
un lenguaje de tipo 0 o lenguaje no
restringido.
Gramticas Regulares
Def. 5.3:
Una gramtica sensitiva al contexto pura
sobre un alfabeto es una cudrupla <,
, S, P>, donde
es un conjunto(no vaco) de smbolos no
terminales
es un conjunto(no vacio) de smbolos
terminales y = u


Gramticas Regulares
S es el denominado smbolo inicial y S e.
P es un conjunto de producciones de la
forma o|, donde oe ()
+
, | e ()
+
,
|o| s |||.

Observacin 5.1: No es posible derivar con
este tipo de gramtica.


Gramticas Regulares
Def. 5.4:
Una gramtica sensitiva al contexto o
gramtica de tipo 1 sobre un alfabeto es
una gramtica sensitiva al contexto pura o
una cudrupla.
G=< {Z},, Z, P{Z->, Z->S}>, donde
G=<, , S, P> es una gramtica sensitiva
al contexto pura y Z e ().
Gramticas Regulares
Def. 5.5:
Una gramtica libre del contexto pura sobre
un alfabeto es una cudrupla <, , S,
P>, donde
es un conjunto(no vaco) de smbolos no
terminales
es un conjunto(no vacio) de smbolos
terminales y = u

Gramticas Regulares
S es el denominado smbolo inicial y S e .
P es un conjunto de producciones de la forma A-
>|, donde A e y | e ()
+


Def. 5.6:
Una gramtica libre del contexto o gramtica del
tipo 2 sobre un alfabeto es una gramtica libre
del contexto pura o una cudrupla
G=< {Z},, Z, P{Z->, Z->S}>, donde
G=<, , S, P> es una gramtica libre del
contexto pura y Z e ().

Gramticas Regulares
Def. 5.7:
Una gramtica lineal derecha sobre un
alfabeto es una cudrupla. <, , S, P>,
donde
es un conjunto(no vaco) de smbolos no
terminales
es un conjunto(no vacio) de smbolos
terminales y = u

Gramticas Regulares
S es el denominado smbolo inicial y S e.
P es un conjunto de producciones de la
forma A->xB, donde A e y B e ({}), y
x e*.
Observacin 5.2:
Las gramticas lineales derechas
pertenecen a la clase de gramticas de tipo
3 y generan todos los lenguajes del tipo 3.

Gramticas Regulares
Def. 5.8:
Dos gramticas G
1
= <
1
,
1
, S
1
, P
1
> y
G
2
= <
2
,
2
, S
2
, P
2
> son llamadas
equivalentes sii L(G
1
)=L(G
2
), y escribimos
G
1
~ G
2
.
Lema 5.1: Dado un alfabeto , y un AFD
A=<, Q, q
0
, o, F>, existe un gramtica
lineal derecha G
A
para la cual L(A) = L(G
A
)
Gramticas Regulares
Lema 5.2:
Sea un alfabeto y G= <, , S, P> una
gramtica lineal derecha, existe un AFND
A
G
(con transiciones - ) para el cual
L(A
G
)=L(G).
Def. 5.9:
Dado un alfabeto , G

es definido como la
coleccin de todos los lenguajes generados
por gramticas lineal derechas sobre .
Gramticas Regulares
Teorema 5.1:
Dado cualquier alfabeto , G

=D
.

Def. 5.10: Una gramtica lineal izquierda
sobre un alfabeto es una cudrupla
<, , S, P>,donde
es un conjunto (no vacio) de smbolos no
terminales
Gramticas Regulares
es un conjunto (no vacio) de smbolos
terminales y =u
S es el denominado smbolo inicial y S e .
P es un conjunto de producciones de la
forma A->Bx, donde A e y
B e ( {})
+
, y xe*.
Gramticas Regulares
Teorema 5.2:
Sea un alfabeto, entonces la clase de
lenguajes generados por el conjunto de
todas las gramticas lineal izquierda sobre
es la misma que la clase de lenguajes
generados por el conjunto de todas las
gramticas lineal derecha sobre .
Gramticas Regulares
Def. 5.12:
Una gramtica regular (o de tipo 3) es una
gramtica que es lineal derecha o lineal
izquierda.

Corolario 5.1: La clase de lenguajes
generados por gramticas regulares es
igual a G

Gramticas Regulares
Observacin 5.2:
Cada lenguaje de tipo 3 es tambin un
lenguaje de tipo 2.

Gramticas Regulares

También podría gustarte