Anda di halaman 1dari 103

Lenguajes formales y automatas

Raul E Gutierrez de Pinerez R.


raul.gutierrez@correounivalle.edu.co

Raul E Gutierrez de Pinerez R

Marzo, 2014

Lenguajes formales Raul E Gutierrez de Pinerez R


El alfabeto
Un alfabeto es un conjunto finito no vaco cuyos elementos se llaman
smbolos.

Sea = {a, b} el alfabeto que consta de los smbolos a y b. Las


siguientes son cadenas sobre : aba, abaabaaa, aaaab.
El alfabeto binario = {0, 1} son las cadenas sobre que se
definen como secuencias finitas de ceros y unos.
Las cadenas son secuencias ordenadas y finitas de smbolos.
Por ejemplo, w = aaab 6= w1 = baaa.
Sea = {a, b, c, . . . , x, y, z} el alfabeto del idioma castellano.
El alfabeto utilizado por muchos lenguajes de programacion.
Sea = {a, b, c} entonces podemos formar todas las cadenas
sobre incluyendo la cadena vaca.

Lenguajes formales Raul E Gutierrez de Pinerez R


Notacion de alfabetos, cadenas y lenguajes

Si bien un alfabeto es un conjunto finito, es siempre un


conjunto infinito (enumerable).
Hay que distinguir entre los siguientes cuatro objetos, que son
diferentes entre s: , , {}, {}

Lenguajes formales Raul E Gutierrez de Pinerez R


Alfabetos

Operaciones con alfabetos


Si es un alfabeto, denota que es un smbolo de , por
tanto, si
= {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
se puede decir que 0

Un alfabeto es simplemente un conjunto finito no vaco que cumple


las siguientes propiedades, Dados 1 y 2 alfabetos
Entonces 1 2 tambien es un alfabeto.
1 2 , 1 2 y 2 1 tambien son alfabetos.

Lenguajes formales Raul E Gutierrez de Pinerez R


Conjunto Universal
El conjunto de todas las cadenas sobre un alfabeto , incluyendo la
cadena vaca, se denota por

Sea = {0, 1}
= {, 0, 1, 00, 01, 10, 11, 000, 001, 010, 100, 010, 110, . . .}
Sea = {a, b, c}, entonces
= {, a, b, c, aa, ab, ac, ba, bb, bc, ca, cb, cc, aaa, aab, abc, baa, . . .}
Sea = {a, b}, entonces
= {, a, b, aa, ab, ba, bb, aaa, aab, baa, . . .}

Lenguajes formales Raul E Gutierrez de Pinerez R


Concatenacion de cadenas

Cadenas
Dado un alfabeto y dos cadenas u, v , la concatenacion de u y
v se denota como u v o simplemente uv y se define as:
1 Si v = , entonces u  =  u = u, es decir, la concatenacion de
cualquier cadena u con la cadena vaca, a izquierda o derecha,
es igual a u.
2 Si u = a1 a2 . . . an , v = b1 b2 . . . bm , entonces

u v = a1 a2 . . . an b1 b2 . . . bm

Es decir, u v es la cadena formada de escribir los smbolos de u


y a continuacion los smbolos de v.

Lenguajes formales Raul E Gutierrez de Pinerez R


Potencia de una cadena

Dada w y n N, se define wn de la siguiente forma



 si n = 0
wn = uu . . . u si n 1
| {z }
nveces

Potencia de una cadena de manera recursiva


La potencia de una cadena se define como w para n N

n , si n = 0
w =
wwn1 , si n > 0

Ejemplo. Sea una cadena w = acc sobre = {a, c} entonces


podemos obtener w3 = ww2 = wwww0 = accaccacc = (acc)3

Lenguajes formales Raul E Gutierrez de Pinerez R


Inversa de una cadena

Longitud de una cadena


La longitud de una cadena w se denota |w| y se define como el
numero de smbolos de w (contando los smbolos repetidos), es
decir: 
0, si w =
|w| =
n, si w = a1 a2 . . . an

|aba| = 3, |baaa| = 4

Reflexion o inversa de una cadena


La reflexion o inversa de una cadena w se denota como wI y se
define as:

I , si w =
w =
an . . . a2 a1 , si w = a1 a2 . . . an

Lenguajes formales Raul E Gutierrez de Pinerez R


Inversa de una cadena de manera recursiva
La Inversa de una cadena Sea u entonces u1 es la inversa.

w si w =
wI =
y I a si w = ay, a , y

Sea x=able entonces obtener xI


xI = (able)I = (ble)I a
= (le)I ba
= (e)I lba
= ()I elba
= elba
= elba
Sea la concatenacion de las cadenas ab y cd que forma
abcd sobre un alfabeto. Sabemos que (abcd)I = dcba, por tanto
dcba = (cd)I (ab)I . Por lo tanto, si w e y son cadenas y si x = wy,
entonces xI = (wy)I = y I wI
En general, (xI )I = x, para demostrar, suponga que
x = a1 a2 . . . an .
Lenguajes formales Raul E Gutierrez de Pinerez R
Sufijos y prefijos

Cadena
Definicion formal: Una cadena v es una subcadena o subpalabra de
u si existen x, y tales que u = xvy. Notese que x o y pueden ser  y
por lo tanto, la cadena vaca es una subcadena de cualquier cadena.

Un prefijo de u es una cadena v tal que u = vw para alguna


cadena w . Se dice que v es un prefijo propio si v 6= u.
Un sufijo de u es una cadena de v tal que u = wv para alguna
cadena w . Se dice que v es un sufijo propio si v 6= u.

Lenguajes formales Raul E Gutierrez de Pinerez R


Ejemplo de cadenas que son sufijos y prefijos

Prefijos de u

b
bc
Sea = {a, b, c, d} y u = bcbaadb bcb
bcba
bcbaa
bcbaad
bcbaadb
Sufijos de u

b
db
adb
aadb
baadb
cbaadb
bcbaadb

Lenguajes formales Raul E Gutierrez de Pinerez R


La concatenacion como una operacion binaria

Operacion binaria
Una operacion binaria en un conjunto A es una funcion
f : A A A, esta debera satisfacer las siguientes propiedades:
1 La operacion binaria debera estar definida para cada par
ordenado de A, es decir, f asigna a UN elemento f (a, b) de A a
cada par ordenado (a, b) de elementos de A.
2 Como una operacion binaria es una funcion, solo un elemento
de A se asigna a cada par (a, b).

Sea A = Z, se define a b como a + b. Entonces, es una


operacion binaria en Z.
Sea A = Z + , se define a b como a b. Entonces no es una
operacion binaria ya que no asigna un elemento de A a
cualquier par ordenado de elementos de A.

Lenguajes formales Raul E Gutierrez de Pinerez R


Concatenacion de cadenas como una operacion binaria

Concatenacion
La operacion de la concatenacion es una operacion binaria
entre cadenas de un alfabeto , esto es:

Sean u, v y se denota por u v o simplemente uv.

| uv |=| u | + | v |

Dado el alfabeto y dos cadena w, u


Entonces w  =  w = w.
Si u = a1 a2 a3 . . . an , w = b1 b2 b3 . . . bm , entonces,
u w = a1 a2 a3 . . . an b1 b2 b3 . . . bm
Por tanto | u w |= n + m
La concatenacion de cadenas es asociativa. Es decir, si
u, v, w , entonces:
(uv)w = u(vw)

Lenguajes formales Raul E Gutierrez de Pinerez R


Semigrupos

Semigrupo
Sea ( , ) es un semigrupo el cual es un conjunto no vaco junto
con una operacion binaria asociativa definida en .

El conjunto P (S), donde S es un conjunto, junto con la operacion


de la union (P (S), ) es un semigrupo y es tambien un
semigrupo conmutativo.
: P (S) P (S) P (S)
Sea S = {a, b} entonces {a, b} ( {b}) = ({a, b} ) {b}
El semigrupo ( , ) no es un semigrupo cunmutativo porque
para u, w no se cumple que u w = w u.
Sea w = ac, w1 = ab y w2 = bb tal que w, w1 , w2 entonces
w(w1 w2 ) = (ww1 )w2
ac(abbb) = (acab)bb
acabbb = acabbb

Lenguajes formales Raul E Gutierrez de Pinerez R


Monoide

Monoide
Un monoide es un semigrupo (S, ) que tiene identico.

El semigrupo P (S) con la operacion de la union tiene como


identico a ya que

A=A=A=A

Sea ( , , ) un monoide con las siguientes propiedades:


1 Es una operacion binaria, es decir la concatenacion es cerrada.
x, y , entonces x y .
2 La concatenacion es un semigrupo ( , ) y por tanto es
asociativa x, y, z , (xy)z = x(yz)
3 La cadena vaca  es la identica para la concatenacion: x ,
x=x=x

Lenguajes formales Raul E Gutierrez de Pinerez R


Lenguajes

Lenguaje
Un lenguaje es un conjunto de palabras o cadenas. Un lenguaje L
sobre un alfabeto es un subconjunto de y si L = es el
lenguaje de todas las cadenas sobre .

Sea L = el lenguaje vaco


L

= {a, b, c}. L = {a, aba, aca}


= {a, b, c}. L = {a, aa, aaa} = {an : n 1}
= {a, b, c}. L = {, aa, aba, ab2 a, ab3 a} = {abn a : n 0} {}
= {a, b, c}. L = {w : w no contiene el smbolo c}. Por
ejemplo, abbaab L pero abbcaa / L.
Sobre = {0, 1, 2} el lenguaje de las cadenas que tienen igual
numero de ceros, unos y doss en cualquier orden.

Lenguajes formales Raul E Gutierrez de Pinerez R


Operaciones entre lenguajes

Operaciones entre lenguajes; Sean A, B lenguajes sobre


entonces A B, A B, A B operaciones de conjuntos.
Las operaciones lingusticas son la concatenacion, potencia,
inverso y clausura.
Sean A, B lenguajes sobre entonces,

A B = {x|x : x A o x B}

{a} {b} = {a, b}


{a, ab} {ab, aab, aaabb} = {a, ab, aab, aaabb}

Lenguajes formales Raul E Gutierrez de Pinerez R


Operaciones entre lenguajes

Sean A, B lenguajes sobre entonces,

A B = {x|x : x A y x B}

{a, ab} {ab, aab} = {ab}


{a, aab} {a, ab, aab, aaabb} = {a, aab}
{} {a, ab, aab, aaabb} =
Complemento en :

A = {x |x
/ A}

A = A

A ={ Cadenas de longitud par} sobre = {a, b}, entonces


A={cadenas de longitud impar}.

Lenguajes formales Raul E Gutierrez de Pinerez R


Operaciones entre lenguajes

Sean A, B lenguajes sobre entonces,

A B = {x|x : x A y x
/ B}

Sea B: El lenguaje de todas las cadenas de ceros de cualquier


longitud. Entonces:
Sea A = {0, 1} y B = {0} entonces
A B = {0, 1} {0} = 0 1(0 1)
A B es el lenguaje de todas las cadenas de unos y ceros con
almenos un uno.

Lenguajes formales Raul E Gutierrez de Pinerez R


Lenguajes

Lenguaje Universal
Si 6= , entonces es el conjunto de todas las cadenas sobre .
Se le llama lenguaje universal.

es un conjunto infinito de cadenas de longitud finita sobre .

Teorema
Sean A y B dos lenguajes sobre el alfabeto . Entonces A = B si y
solo si A B y B A.

) Suponiendo que A = B, entonces si x A, como A = B


entonces x B por tanto A B de la misma forma si x B
entonces como A = B entonces x A por lo tanto B A.
) Se demuestra que si A B y B A entonces A = B.

Lenguajes formales Raul E Gutierrez de Pinerez R


Lenguajes

Sea el lenguaje del conjunto de cadenas con igual numero de


ceros y unos.

L1 = {, 01, 10, 0011, 0101, 1001, 000111, . . .}

y sea
L = {an bn : n 0} L1 {0, 1}
La concatenacion de lenguajes de dos lenguajes A y B sobre ,
notada por A.B o simplemente AB.
AB = {uv : u A, v B}
A=A=

A = {uw : u A, w } =

Lenguajes formales Raul E Gutierrez de Pinerez R


Lenguajes

A {} = {} A = A

A {} = {uw : u A, w {}} = {u : u A} = A

Las propiedad distributiva generalizada de la concatenacion con


respecto a la union.
[ [
A Bi = (A Bi )
iI iI

[ [
xA Bi x = u v, u A, v Bi
iI iI
x = u v, u A, v Bj ,
j I
x A Bj , j I
[
x (A Bi )
iI

Lenguajes formales Raul E Gutierrez de Pinerez R


Lenguajes

Ejemplo. Sean A = {ab}, B1 = {a, b}, y B2 = {abb, b}


[ [
A Bi = (A Bi )
iI iI

[
A Bi = A (B1 B2 )
iI=2
[
A Bi = {ab} ({a, b} {abb, b})
iI=2
{ab} ({a, b} {abb, b}) = ({ab} ({a, b}) ({ab} {abb, b})

De igual forma se puede demostrar que:


!
[ [
Bi A = (Bi A)
iI iI

Lenguajes formales Raul E Gutierrez de Pinerez R


Lenguajes

La concatenacion no es distributiva con respecto a la interseccion, es


decir, no se cumple que A (B C) = A B A C. Contraejemplo:
Sea A = {a, }, B = {}, C = {a} se tiene:

A (B C) = {a, } =

Por otro lado,

ABAC = {a, } {} {a, } {a}


= {a, } { a2 , a} = a

Lenguajes formales Raul E Gutierrez de Pinerez R


Lenguajes

Potencia del lenguaje


Potencia del lenguaje Dado un lenguaje A sobre y (A ) y
n N, se define

{}, si n = 0
An =
A An1 , si n 1

Ejemplo. Sea A = {ab} sobre un alfabeto = {a, b}, entonces:


A0 = {}
A1 = A = { ab}
A2 = A A1 = { abab}
A3 = A A2 = { ababab}

Lenguajes formales Raul E Gutierrez de Pinerez R


Cerradura de Kleene

Def. formal de Cerradura de Kleene


La cerradura de Kleene de un lenguaje A es la union de las
potencias: se denota por A
[
A = Ai = A0 A1 A2 . . . An
i0

Observacion: A se puede describir de la siguiente manera:

A = {u1 u2 . . . un : ui A, n 0}

Es el conjunto de todas las concatenaciones de la cadena A,


incluyendo 
la cerradura positiva se denota por A+
[
A+ = Ai = A1 A2 A3 . . . An
i1

Lenguajes formales Raul E Gutierrez de Pinerez R


Cerradura de Kleene

Observe que A = A+ {} y A = A+ si y solamente si  A


A+ = A A = A A

A A = A (A0 A1 A2 . . .)
= (A1 A2 A3 . . .)
= A+

Se demuestra lo mismo que A+ = A A

Lenguajes formales Raul E Gutierrez de Pinerez R


Cerradura de Kleene

A A = A
1 ), Sea un x A A , entonces x = u v, con u A y v A
Por tanto x = u v, con u = u1 u2 . . . un , ui A, n 0 y
v = v1 v2 . . . vm , vi A, m 0 De donde

x = u v = u1 u2 . . . un v1 v2 . . . vm

con ui A, vi A, por lo tanto x, es una concatenacion de


n + m cadenas de A, as que x A .
2 ) Recprocamente, si x A , entonces x = x A A .
Esto prueba la igualdad de los conjuntos A A y A .

Lenguajes formales Raul E Gutierrez de Pinerez R


Cerradura de Kleene

(A )n = A , para todo n 1
(A ) = A
A+ A+ A+
Contraejemplo de A+ A+ = A+ . Sea = {a, b}, A = {a} se
tiene que

A+ = (A1 A2 A3 . . .)
= {a} {aa} {aaa . . .}
= {an : n 1}

Por otro lado,

A+ A+ = {a, a2 , a3 , . . .} {a, a2 , a3 , . . .}
= {a2 , a3 , . . .}
= {an : n 2}

Lenguajes formales Raul E Gutierrez de Pinerez R


Cerradura de Kleene

(A )+ = A
(A )+ = (A )1 (A )2 (A )3 . . .
= A A A . . .
= A
(A+ ) = A
(A+ ) = (A+ )0 (A+ )1 (A+ )2 . . .
= {} A+ A+ A+ . . .
= A (conjuntos contenidos en A+ )
= A
(A+ )+ = A+
(A+ )+ = (A+ )1 (A+ )2 (A+ )3 . . .
= (A+ )1 (conjuntos contenidos en A+ )
= A+

Lenguajes formales Raul E Gutierrez de Pinerez R


Operaciones claves

Operaciones claves en los lenguajes:


A A+ +
A+ A
{} = {} = {}+
0 = {}
n = , n 1
= {} + =

Lenguajes formales Raul E Gutierrez de Pinerez R


Inverso de un lenguaje

Inverso de un lenguaje
Sea A sobre , se define AI como:

AI = {uI : u A}

Sean A y B lenguajes sobre tal que (A, B )


(A.B)I = B I .AI

x (A B)I x = uI , donde, u A B
x = uI , donde, u = vw, v A, w B
x = (vw)I , donde, v A, w B
x = wI v I , donde, v A, w B
x = B I AI

Lenguajes formales Raul E Gutierrez de Pinerez R


Propiedades del inverso de un lenguaje

Sean A y B lenguajes sobre tal que (A, B )


(A B)I = AI B I
(A B)I = AI B I
(AI )I = A
(A )I = (AI )
(A+ )I = (AI )+

Lenguajes formales Raul E Gutierrez de Pinerez R


Lenguajes regulares

Los lenguajes regulares sobre un alfabeto se definen


recursivamente como:
, {} y {a}, a son lenguajes regulares.
si A y B son lenguajes regulares, tambien lo son:
A B (Union)
A B (Concatenacion)
A (Cerradura de Kleene)
Ejemplo 1. Dado = {a, b} el lenguaje A de todas las palabras
que tienen exactamente una a: A = {b} {a} {b}
Ejemplo 2. Lenguaje de todas las cadenas que comienzan con b:
B = {b} {(a b)}
Ejemplo 3. Lenguaje de todas las cadenas que contienen la
cadena ba: C = {(a b)} {ba} {(a b)}

Lenguajes formales Raul E Gutierrez de Pinerez R


Propiedades de clausura

Teorema
Si L, L1 y L2 son lenguajes regulares sobre un alfabeto , tambien lo
son:
1 L1 L2
2 L1 L2
3 L+
4 L = L
5 L
6 L1 L2
7 L1 L2
8 L1 4L2

Observacion
Un sublenguaje (subconjunto) de un lenguaje regular no es
necesariamente regular, es decir, la familia de los lenguajes
regulares no es cerrada para subconjuntos.

Lenguajes formales Raul E Gutierrez de Pinerez R


Propiedades de clausura

Observacion
Un lenguaje regular puede contener sublenguajes No-regulares.
Sea L = {an bn } es un sublenguaje del lenguaje regular a b
Todo lenguaje finito es regular y la union finita de lenguajes
regulares es regular.
La union infinita de lenguajes no necesariamente es regular.
[
L = {an bn : n 1} = {ai bi }
i1

Donde cada {ai bi } regular, pero L No lo es.

Lenguajes formales Raul E Gutierrez de Pinerez R


Definicion formal de expresiones regulares

Las expresiones regulares sobre un alfabeto se definen


recursivamente como:
,  y a, a son expresiones regulares.
si A y B son expresiones regulares, tambien lo son:
A B (Union)
A B (Concatenacion)
A (Cerradura de Kleene)
Son expresiones regulares aab , ab+ , (aaba )+
Sea el conjunto {, aa, aba, ab2 a, ab3 a, ab4 a, } entonces {} ab a
es una expresion regular.
Expresion regular de todas las cadenas impares sobre = {a, b}

a(aa ab ba bb) b(aa ab ba bb)

Lenguajes formales Raul E Gutierrez de Pinerez R


Expresiones regulares

Teorema
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
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

Lenguajes formales Raul E Gutierrez de Pinerez R


Ejemplos expresiones regulares

Ejemplo 1. Muestre que si r = s t implica que r = sr t

r = s t = ( s+ )t ya que s = s+
= ( ss )t
= s t
t s |{z}
r
= t sr
= sr t

Ejemplo 2. Probar que (b aa b) (b aa b)(a ba b) (a ba b) y


a b(a ba b) son equivalentes.

Lenguajes formales Raul E Gutierrez de Pinerez R


Ejemplos expresiones regulares

Ejemplo 3. Las siguientes expresiones regulares representan el


mismo lenguaje?
(a b) y  (a b) b
Ejemplo 4. Demostrar que r(sr) = (rs) r
) Sea w r(sr) , entonces
w = r0 (s1 r1 )(s2 r2 ) . . . (sn rn ), para n 0

w = r0 (s1 r1 )(s2 r2 ) . . . (sn rn )


w = (r0 s1 )(r1 s2 )(r2 s3 ) . . . (rn1 sn )rn

Por lo tanto, r(sr) (rs) r


)
Sea w (rs) r, entonces
w = (r0 s0 )(r1 s1 ) . . . (rn1 sn1 )rn , para n 0

Lenguajes formales Raul E Gutierrez de Pinerez R


Encontrar las expresiones regulares de los siguientes lenguajes

Ejemplo 5. = {a, b} Lenguaje de todas las palabras que


comienzan con b y terminan con a.

b(a b) a

Ejemplo 6. = {a, b} Lenguaje de todas las palabras que tienen


exactamente dos as
b ab ab

Lenguajes formales Raul E Gutierrez de Pinerez R


Ejercicios resueltos de expresiones regulares

Ejemplo 7. = {a, b} Lenguaje de todas las palabras que tienen un


numero par de smbolos (palabras de longitud par)

(aa ab ba bb)

Ejemplo 8. = {a, b} Lenguaje de todas las palabras que tienen un


numero impar de smbolos (palabras de longitud impar)

a(aa ab ba bb) b(aa ab ba bb)

Ejemplo 9. = {a, b} Lenguaje de todas las palabras que tienen un


numero par de as.
b (ab a) b

Lenguajes formales Raul E Gutierrez de Pinerez R


Ejercicios resueltos de expresiones regulares

Ejemplo 10. Sobre = {0, 1} lenguaje de todas las cadenas que


tienen exactamente dos ceros:

1 01 01

Ejemplo 11. Sobre = {0, 1} lenguaje de todas las cadenas cuyo


penultimo smbolo, de izquierda a derecha, es un 0.

(0 1) 0(0 1)

Lenguajes formales Raul E Gutierrez de Pinerez R


Expresiones regulares en la computacion

Las expresiones regulares sirven para la construccion de


analizadores lexicos.

http://regexpal.com/ es un testeador de expresiones


regulares en java.

Representa palabras que comienzan por una letra mayuscula


seguida de un espacio en blanco y de dos letras mayusculas.
Ejemplo, reconocera Ithaca NY. Por ejemplo, Palo Alto CA no
la reconocera.

Lenguajes formales Raul E Gutierrez de Pinerez R


Introduccion a los automatas finitos

Lenguajes formales Raul E Gutierrez de Pinerez R


Automatas finitos
Son maquinas abstractas que procesan cadenas, las cuales son
aceptadas o rechazadas.

El automata posee unidad de control que inicialmente escanea o


lee la casilla desde el extremo izquierdo de la cinta. Tiene unos
estados o configuraciones internas.

Lenguajes formales Raul E Gutierrez de Pinerez R


Funcion de transicion
Sea un automata M = (Q, , q0 , T, )

Lenguajes formales Raul E Gutierrez de Pinerez R


Lenguaje aceptado por un automata

Lenguajes formales Raul E Gutierrez de Pinerez R


Automatas finitos (FSAs: Finite State-Automata)

Los automatas finitos se dividen en automatas finitos deterministas


(AFD) (es funcion) y en automatas finitos no deterministas (AFN)(es
una relacion).

Automata finito determinista


Sea M = (Q, , q0 , T, ) un AFD entonces:
: es el alfabeto de entrada.
Q: es el conjunto de estados
q0 :Estado inicial
T : Conjunto de estados finales.
: Q Q determina un unico estado siguiente para el par
(qi , ) correspondiente al estado actual y la entrada.

Un AFD puede ser representado por un grafo dirigido y etiquetado.

Lenguajes formales Raul E Gutierrez de Pinerez R


Ejemplos automatas finitos deterministas

Ejemplo 1. Disenar el AFD sobre = {a, b} que reconozca el


lenguaje
L = a = {, a, a2 , a3 , . . .}

Lenguajes formales Raul E Gutierrez de Pinerez R


Ejemplos automatas finitos deterministas

Ejemplo 2. Disenar el AFD sobre = {a, b} que reconozca el


lenguaje
L = a+ = {a, a2 , a3 , . . .}

Lenguajes formales Raul E Gutierrez de Pinerez R


Ejemplos automatas finitos deterministas
Ejemplo 3. Disenar el AFD sobre = {a, b} que reconozca el
lenguaje de todas las cadenas que tienen un numero par de smbolos

Ejemplo 4. AFD que reconoce a+ b+

Lenguajes formales Raul E Gutierrez de Pinerez R


Ejemplos automatas finitos deterministas
Ejemplo 5. El diagrama y tabla de transicion en cierta forma
determinan si es un automata finito determinista o no determinista.
Sea = {a, b}, Q = {q0 , q1 , q2 }
q0 : estado inicial
T = {q0 , q2 } estados finales o de aceptacion.

Es importante anotar que en la tabla de transicion por cada pareja


(qi , ) hay un solo estado qj por eso es una funcion de transicion.
el lenguaje que reconoce este AFD es:
a (b(a + ba + bb) b) + a
Ahora como el estado inicial es un estado final este AFD reconoce
Lenguajes formales Raul E Gutierrez de Pinerez R
Ejemplos automatas finitos deterministas

Ejemplo 6. Disenar el AF sobre = {0, 1} que reconozca en binario


el lenguaje de todos los multiplos de 2.

Lenguajes formales Raul E Gutierrez de Pinerez R


Automatas finitos No determinsticos

Automatas finitos No determinsticos


Sea M = (Q, , q0 , T, 4) un AFN entonces:
: es el alfabeto de entrada.
Q: es el conjunto de estados
q0 :Estado inicial
T : Conjunto de estados finales.
4: es una relacion tal que:

(Q ) 2Q

Donde 2Q denota el conjunto potencia de Q o el conjunto de


todos los subconjuntos de Q.

2Q = {A|A Q}

Lenguajes formales Raul E Gutierrez de Pinerez R


Ejemplos Automatas finitos No determinsticos

Ejemplo 1. Disenar el AFN sobre = {a, b} que reconozca el


lenguaje regular a b ab

Lenguajes formales Raul E Gutierrez de Pinerez R


Ejemplos Automatas finitos No determinsticos

Ejemplo 2. Disenar el AFN sobre = {a, b} que reconozca el


lenguaje
(ab aba)

Lenguajes formales Raul E Gutierrez de Pinerez R


Ejemplos Automatas finitos No determinsticos

Ejemplo 3. Disenar el AF sobre = {0, 1} que reconozca el


lenguaje de todas las cadenas que terminan en 01

Lenguajes formales Raul E Gutierrez de Pinerez R


Ejemplos Automatas finitos No determinsticos

Ejemplo 4. Obetener la expresion regular del siguiente AFN sobre


= {a, b}.

(a b ) (aa bb)(a b )

Lenguajes formales Raul E Gutierrez de Pinerez R


Equivalencia de AFN y AFD

Teorema
Sea M = (Q, , q0 , T, 4) un AFN. Entonces existe un AFD
M 0 = (Q0 , 0 , q00 , T 0 , ) tal que L(M ) = L(M 0 ).
El conjunto q0 se corresponde con q00
El conjunto de estados finales T 0 de Q0 se corresponde con los
conjuntos de estados de Q que contienen un estado de T
El conjunto de estados de Q0 se corresponde con el conjunto de
estados de Q que se vaya formando mediante el analisis de una
cadena sobre M

Lenguajes formales Raul E Gutierrez de Pinerez R


Equivalencia entre automatas

Automatas equivalentes
Dos AFD son equivalentes M1 y M2 son equivalentes si
L(M1 ) = L(M2 ).
P
Sean M1 y M2 sobre el alfabeto = {a},

L(M1 ) = L(M2 ) = a

Lenguajes formales Raul E Gutierrez de Pinerez R


Ejemplos equivalencia de AFN y AFD
Ejemplo 1. Consideremos el AFN M que acepta a (ab)+

Para este AFN se tiene:


4(q0 , a) = {q1 , q2 } 4(q0 , b) =
4({q1 , q2 }, a) = 4({q1 , q2 }, b) = {q3 }
4(, b) = 4(, b) = 4(q3 , a) = {q2 }
4(q3 , b) = 4(q2 , a) =
4(q2 , b) = {q3 }

Lenguajes formales Raul E Gutierrez de Pinerez R


Ejemplos equivalencia de AFN y AFD
Entonces se verifica que la regla de transicion es una funcion. Por
tanto, M 0 = (Q0 , 0 , q00 , T 0 , ) donde:
Q0 = {, {q0 }, {q2 }, {q3 }, {q1 , q2 }}
0
=
0
s = {q0 }
T0 = {{q3 }, {q1 , q2 }}
y viene dada por la siguiente tabla:

Lenguajes formales Raul E Gutierrez de Pinerez R


Ejemplos equivalencia de AFN y AFD

Ejemplo 2. Consideremos el AFN M que acepta (0 1) 0(0 1)

Caso desfavorable para la construccion de subconjuntos

Crecimiento exponencial del numero de estados para el AFD.


Lenguajes formales Raul E Gutierrez de Pinerez R
Interseccion entre lenguajes regulares

Teorema
Si L1 y L2 son lenguajes regulares, tambien lo es L1 L2 .

Sean L1 = L(M1 ) y L2 = L(M2 ) donde: M1 = (Q1 , 1 , q1 , T1 , 1 ) y


M2 = (Q2 , 2 , q2 , T2 , 2 ) Entonces construimos:

M = (Q1 Q2 , 1 2 , (q1 , q2 ), T1 T2 , )

donde

: Q1 Q2 Q1 Q2
((qi , qj ), a) = (1 (qi , a), 2 (qj , a))

Esta funcion satisface:

L(M ) = L(M1 ) L(M2 )

Lenguajes formales Raul E Gutierrez de Pinerez R


Ejemplo interseccion de lenguajes

Ejemplo. Construir el AFD que acepte el lenguaje L de todas las


palabras sobre = {a, b} que tienen un numero par de as y un
numero par de bs.

Entonces el lenguaje L(M ) = L(M1 ) L(M2 ) tiene cuatro estados:


Q1 Q2 = {(q1 , q2 ), (q1 , q4 ), (q3 , q2 ), (q3 , q2 )}
T1 T2 = {(q1 , q2 )}

Lenguajes formales Raul E Gutierrez de Pinerez R


Ejemplo interseccion de lenguajes
Entonces se define como:
((q1 , q2 ), a) = (1 (q1 , a), 2 (q2 , a)) = (q3 , q2 )
((q1 , q2 ), b) = (1 (q1 , b), 2 (q2 , b)) = (q1 , q4 )
((q1 , q4 ), a) = (1 (q1 , a), 2 (q4 , a)) = (q3 , q4 )
((q1 , q4 ), b) = (1 (q1 , b), 2 (q4 , b)) = (q1 , q2 )
((q3 , q2 ), a) = (1 (q3 , a), 2 (q2 , a)) = (q1 , q2 )
((q3 , q2 ), b) = (1 (q3 , b), 2 (q2 , b)) = (q3 , q4 )
((q3 , q4 ), a) = (1 (q3 , a), 2 (q4 , a)) = (q1 , q4 )
((q3 , q4 ), b) = (1 (q3 , b), 2 (q4 , b)) = (q3 , q2 )

Lenguajes formales Raul E Gutierrez de Pinerez R


Toerema de Kleene

Automatas con -transiciones


Automatas con -transiciones: Un automata con
-transiciones es un AFN M = (Q, , q0 , T, 4) en el que la relacion
de transicion esta definida as:
4 : Q ( ) 2Q
La -transicion permite al automata cambiar internamente de estado
sin consumir el smbolo ledo sobre la cinta.
Donde 2Q denota el conjunto potencia de Q o el conjunto de todos
los subconjuntos de Q.

2Q = {A|A Q}

Lenguajes formales Raul E Gutierrez de Pinerez R


Ejemplos

Ejemplo 1. Se puede representar el lenguaje de la expresion regular


a sin necesidad de colocar el estado inicial como estado final.

Lenguajes formales Raul E Gutierrez de Pinerez R


Ejemplos

Ejemplo 2. Sea el siguiente AFN-

La -transicion en el AFN permite que se reconozcan cadenas como:


w=aaab
w=abbbbaaa
w=a
w=b
Expresion regular del automta
a b ab a
Lenguajes formales Raul E Gutierrez de Pinerez R
Ejemplos

Ejemplo 3. Construir un AFN- que reconozca sobre = {a, b, c}, el


lenguaje L = a b c

El siguiente AFN reconoce el mismo lenguaje que reconoce el AFN-


anterior.

Lenguajes formales Raul E Gutierrez de Pinerez R


Teorema de Kleene

Teorema
Teorema de Kleene. Un lenguaje regular si y solo si es aceptado
por un automata finito (AFD o AFN o AFN-)

Construccion de automatas finitos a partir de expresiones


regulares.
Construccion de expresiones regulares a partir de automatas:
1 Lema de Arden (Ecuaciones de Lenguaje)
2 Conversion de AFN a expresiones regulares por eliminacion de
estados.

Lenguajes formales Raul E Gutierrez de Pinerez R


Automatas finitos y lenguajes regulares

Teorema
Dado un AFN- M = (Q, , q0 , T, 4), se puede construir un AFN M 0
equivalente a M , es decir L(M ) = L(M 0 ).

Teorema
Un lenguaje regular si y solo si es aceptado por un automata finito
(AFD o AFN o AFN-)

Lenguajes formales Raul E Gutierrez de Pinerez R


Automatas finitos y lenguajes regulares

Teorema
Para toda expresion regular R se puede construir un AFN- M tal
que L(R) = L(M ).

Paso Basico
EL automata

acepta el lenguaje vaco

Lenguajes formales Raul E Gutierrez de Pinerez R


Automatas finitos y lenguajes regulares

EL automata

acepta el lenguaje {}


EL automata

acepta el lenguaje {a}

Lenguajes formales Raul E Gutierrez de Pinerez R


Automatas finitos y lenguajes regulares

PASO INDUCTIVO
1. Existe un automata que acepta R S

Sean M1 = (Q1 , 1 , s1 , T1 , 41 ) y M2 = (Q2 , 2 , s2 , T2 , 42 ) para el


nuevo M = (Q, , s, T, 4) tenemos que:
1 = 1 2
2 En T se agrega un estado s0 si y solo si

4 = 41 42 {(s, , s1 ), (s, , s2 )}
{(T1 , , s0 ), (T2 , , s0 )}

s0 es un estado final NUEVO.


3 Q = Q1 Q2 {s} {s0 } donde s es el nuevo estado inicial.

Lenguajes formales Raul E Gutierrez de Pinerez R


Automatas finitos y lenguajes regulares

Por ejemplo se construye ab ba.

Ejemplo. Sobre = {a, b} el lenguaje de todas las palabras sobre


que tienen un n

Lenguajes formales Raul E Gutierrez de Pinerez R


Automatas finitos y lenguajes regulares

2. Automata que acepta R S

Sean M1 = (Q1 , 1 , s1 , T1 , 41 ) y M2 = (Q2 , 2 , s2 , T2 , 42 ) para el


nuevo AFN M = (Q, , s, T, 4) que acepta L(M1 ) L(M2 ) tenemos
que:
1 Q = Q1 Q2
2 s1 = s
3 T = T2
4 = 41 42 (T1 {} s2)

Lenguajes formales Raul E Gutierrez de Pinerez R


3. Automata que reconoce R

Sean M1 = (Q1 , 1 , s1 , T1 , 41 ) entonces el nuevo AFN


M = (Q, , s, T, 4) que acepta L(M ) = (L(M1 )) viene dado por
1 Q = Q1 {s} {s0 }, donde s0 es un nuevo estado final.
2 T = {s0 }
3 4 = 41 {(s, , s1 ), (s, , s0 )} (T1 {} s0 ) (T1 {} s1 )

Lenguajes formales Raul E Gutierrez de Pinerez R


Ecuaciones de lenguaje

Ecuacion del lenguaje


Sea un alfabeto y sean E y A subconjuntos de , entonces la
ecuacion del lenguaje X = E A X admite la solicion X = A E
cualquier otra solucion Y debera contener A X, ademas 
/ A,
X = A E es la unica solucion.

Lenguajes formales Raul E Gutierrez de Pinerez R


Ejemplos ecuaciones de lenguaje

Ejemplo 1. Encontrar la expresion del siguiente AFD.

Entones el sistema de ecuaciones a resolver:

x0 = ax1
x1 = ax2 + bx4
x2 = ax3 + bx4
x3 = ax3 + bx4 + 
x4 = bx4 + 

Lenguajes formales Raul E Gutierrez de Pinerez R


Ejemplos ecuaciones de lenguaje

Ejemplo 2. Encontrar la expresion regular del siguiente AFD usando


el lema del Arden:

El siguiente es el sistema de ecuaciones a resolver:

x0 = ax0 + bx1 + 
x1 = ax1 + bx2
x2 = (a b)x1 + 

Lenguajes formales Raul E Gutierrez de Pinerez R


Ecuaciones de lenguaje

Teorema
Sean n 2 considere el sistema de ecuaciones cuyas incognitas
x1 , x2 , . . . , xn dado por:

x1 = E1 A11 x1 A12 x2 . . . A1,n xn


x2 = E2 A21 x1 A22 x2 . . . A2,n xn
..
.
xn1 = En1 A(n1)1 x1 . . . A(n1),n xn
xn = En An1 x1 An2 x2 . . . An,n xn

Entonces el sistema tiene una unica solucion:


En i, j {1, . . . , n}, 
/ Ai

Lenguajes formales Raul E Gutierrez de Pinerez R


Ecuaciones de lenguaje

Entonces el nuevo sistema se obtiene hasta n 1:

x1 b1 A
= E b11 x1 A
b12 x2 . . . A
b1,(n1) xn1
x2 b2 A
= E b21 x1 A
b22 x2 . . . A
b2,(n1) xn1
..
.
xn1 bn1 A
= E b(n1)1 x1 . . . A
b(n1),(n1) xn1

Entonces E
bi y A
bij se definen como:

E
bi = Ei (Ain Ann En ), i = 1, . . . , n 1
A
bij = Aij (Ain Ann Anj ), i,j = 1, . . . , n 1

Donde:

si qi
/F
Ei =
 si qi F

Lenguajes formales Raul E Gutierrez de Pinerez R


Ejemplo ecuaciones de lenguaje

Ejemplo 1. Obtener la expresion regular del siguiente AFD usando


ecuaciones del lenguaje y la solucion unica.

El sistema de ecuaciones inicial es:

x1 = ax1 + bx2
x2 = bx1 + ax2 + 

Lenguajes formales Raul E Gutierrez de Pinerez R


Ejemplo ecuaciones de lenguaje

Se aplica el teorema de solucion de ecuaciones:

x1 = E
b1 + A
b11 x1

Se obtiene E
b1

E
b1 = E1 + (A12 A22 E2 )
E
b1 = + (b a )
E
b1 = ba

Se obtiene A
b11

A
b11 = A11 + (A12 A22 A21 )
A
b11 = a + (b a b)
A
b11 = a + ba b

Lenguajes formales Raul E Gutierrez de Pinerez R


Ejemplo ecuaciones de lenguaje

Reemplazando E
b1 y A
b11 en x1

x1 = E
b1 + A
b11 x1
x1 = ba + (a + ba b)x1

Aplicando solucion unica se tiene:

x1 = (a + ba b) ba

Lenguajes formales Raul E Gutierrez de Pinerez R


Sistema de ecuaciones por reduccion de variables

x1 b1 A
= E b11 x1 A
b12 x2 A
b13 x3
x2 b2 A
= E b21 x1 A
b22 x2 A
b23 x3
x3 b3 A
= E b31 x1 A
b32 x2 A
b33 x3

Lenguajes formales Raul E Gutierrez de Pinerez R


LENGUAJES Y GRAMATICAS

Segun Chomsky los tipos de gramaticas se clasifican as:

Lenguajes formales Raul E Gutierrez de Pinerez R


Gramaticas

Gramaticas Regulares (Tipo 3)


Una gramatica regular G es una 4-tupla G = (N, , S, P ) que
consiste de un conjunto N de no terminales, un alfabeto , un
smbolo inicial S y de un conjunto de producciones P . Las reglas son
de la forma A w, donde A N y w es una cadena sobre 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.
3 El conjunto de reglas P se define as:

P N (N ) o P N (N )

Lenguajes formales Raul E Gutierrez de Pinerez R


Definicion de gramatica regular por la derecha

Gramaticas regulares
Sobre
G = (N, , S, P )
Una gramatica es regular por la derecha si sus producciones son de
la forma:  P
A wB, w ,B N
A

Ejemplo Considere la siguiente gramatica regular G = (N, , S, P ),


que genera a , donde ={a,b}, N ={S,A }
P : S aA |
A aA
Ejemplo. Sea la siguiente gramatica regular G = (N, , S, P ) que
genera el lenguaje de la expresion regular (a b)
={a,b}
N ={S,A }
P : S aS | bS |

Lenguajes formales Raul E Gutierrez de Pinerez R


Gramaticas regulares

Ejemplo Considere la siguiente gramatica regular G = (N, , S, P ),


que genera (a b)+ , donde ={a,b}, N ={S,A }
P : S aS | bS | a | b
Ejemplo Considere la siguiente gramatica regular G = (N, , S, P ),
que genera a+ b+ , donde ={a,b}, N ={S,A }
P : S aS | aA
A bA | b
Ejemplo Considere la siguiente gramatica regular G = (N, , S, P ),
que genera a b , donde ={a,b}, N ={S,A }
P : S aS | bA |
A bA |

Lenguajes formales Raul E Gutierrez de Pinerez R


Gramaticas independientes del contexto

Gramaticas tipo 2
Una gramatica independiente del contexto G = (N, , S, P ) consiste
de un conjunto N de no terminales, un alfabeto , un smbolo inicial
S y de un conjunto de producciones P .

Definicion
Sea G = (N, , S, P ) una gramatica independiente del contexto. El
lenguaje generado por G (o el lenguaje de G) denotado por L(G), es
el conjunto de todas las cadenas de terminales que se derivan del
estado inicial S. en otras palabras:

L(G) = {w /S w}
P N (N )

Lenguajes formales Raul E Gutierrez de Pinerez R


Ejemplo de gramatica tipo 2
Sea G = (N, , S, P ) una gramatica con = {0, 1} el conjunto
N = {S} y P el conjunto de producciones:

S 0S1
S

Ejemplo. Una GIC que genera el lenguaje de los palndromes sobre


= {a, b}

S aSa | bSb | a | b |

Ejemplo. Una GIC que genera el siguiente lenguaje sobre = {a, b}


Sea
L = {an bm |n m 2n}

S aSb | aSbb |

Lenguajes formales Raul E Gutierrez de Pinerez R


GICs especiales

1 El lenguaje de todas las cadenas de parentesis anidados y


equilibrados, por ejemplo:
(())(()), entonces la gramatica sera:

S (S)S |

2 Sea T = {0, 1, (, ), +, , , }. T es el conjunto de smbolos usados


para definir el lenguaje de las expresiones regulares sobre
= {0, 1}. Se puede disenar un GIC que genere las expresiones
regulares.

S S + S | SS | S | (S) | 0 | 1 | |

Lenguajes formales Raul E Gutierrez de Pinerez R


Gramaticas no restringidas

Sea una 4-tupla G = (N, , S, P ) que consiste de un conjunto N de


no terminales, un alfabeto , un smbolo inicial S y de un conjunto de
producciones P .
N es el alfabeto de smbolos no terminales
al alfabeto tal que N =
S N es el smbolo inicial

P es el conjunto de reglas de producciones de la forma ,


donde (N )+ y (N ) , es decir

P (N )+ (N )

Lenguajes formales Raul E Gutierrez de Pinerez R


Gramaticas no restringidas (Gramaticas de tipo 0 y 1)
Ejemplo Sea G = (N, , S, P ) una gramatica con = {0, 1, 2} el
conjunto N = {S, A, B} y P el conjunto de producciones:

El lenguaje que genera esta gramatica dependiente del contexto es:

L(G) = {0n 1n 2n /n = 0, 1, 2, .....}

Sea w=001122 una cadena que puede ser reconocida por la


gramatica y que ademas pertenece al lenguaje.
Lenguajes formales Raul E Gutierrez de Pinerez R
Tipos de gramaticas

la familia de los lenguajes de tipo i contiene a la familia de tipo i + 1.


GR GIC GDC GEF

Lenguajes formales Raul E Gutierrez de Pinerez R


Arboles de derivacion

Ambiguedad
Una gramatica se dice que es ambigua si hay dos o mas arboles de
derivacion distintos para la misma cadena. una gramatica en la cual,
para toda cadena w, todas las derivaciones de w tienen el mismo
arbol de derivacion, es no ambigua.

Lenguajes formales Raul E Gutierrez de Pinerez R


Ejemplos arboles de derivacion

Ejemplo 2. Consideremos la siguiente gramatica:


S SbS | ScS | a
y se la cadena w = abaca y sus derivaciones:
S SbS SbScS SbSca abaca

S ScS SbScS abScS abacS abaca

Lenguajes formales Raul E Gutierrez de Pinerez R


La forma de Backus-Naur

Forma de Backus-Naur
La forma de Backus-Naur se emplea para especificar reglas
sintacticas de muchos lenguajes de programacion y de lenguaje
natural: En lugar de utilizar el smbolo usamos ::= y colocamos
los smbolos no terminales entre <>.
La forma BNF se usa frecuentemente para especificar la sintaxis de
lenguajes de programacion, como Java y LISP; lenguajes de bases
de datos, como SQL, y lenguajes de marcado como XML.

Lenguajes formales Raul E Gutierrez de Pinerez R


La forma de Backus-Naur

Ejemplo 1. sea la siguiente GIC:


O SN SV
SN articulo sustantivo
SV verbo sustantivo
articulo el
verbo come
sustantivo perro | salchicha
La forma Backus-Naur es:
< O >::=< SN >< SV >
< SN >::=< articulo >< sustantivo >
< SV >::=< verbo >< sustantivo >
< articulo >::= el
< verbo >::= come
< sustantivo >::= perro | salchicha

Lenguajes formales Raul E Gutierrez de Pinerez R


La forma de Backus-Naur

Ejemplo 2. Sea la siguiente gramatica:


A Aa | a | AB
La forma Backus-Naur es:
< A >::=< A > a | a |< A >< B >
Ejemplo 3. La produccion de enteros son signo en notacion decimal.
(Un entero con signo es un natural precedido por un signo mas o un
signo menos). La forma Backus-Naur para la gramatica que produce
los enteros con signo es:
< entero con signo >::=<signo><entero>
<signo >::= + |
< entero >::=< dgito>|< dgito >< entero>
< dgito > ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

Lenguajes formales Raul E Gutierrez de Pinerez R