libro t computacion

59
 Notas de Clase. Introducci ´ on a la Teor ´ ıa de la Computaci ´ on: Lenguajes, Aut´ omatas y Gram´ aticas Joe Luis Ram ´ ırez Ram ´ ırez Versi´ on: 28/Juni o/2011 1

Upload: jolura1

Post on 07-Jul-2015

104 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Libro t Computacion

5/8/2018 Libro t Computacion - slidepdf.com

http://slidepdf.com/reader/full/libro-t-computacion 1/59

 

Notas de Clase. Introduccion a

la Teorıa de la Computacion:

Lenguajes, Aut´ omatas y Gram´ aticas

Jose Luis Ramırez Ramırez

Version: 28/Junio/2011

1

Page 2: Libro t Computacion

5/8/2018 Libro t Computacion - slidepdf.com

http://slidepdf.com/reader/full/libro-t-computacion 2/59

 

Indice general

1. Cadenas o Palabras 1

1.1. Longitud e Igualdad de una Cadena . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.2. Concatenacion de una Cadena . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.3. Inversa de una Cadena . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.4. Subcadenas, Prefijos y Sufijos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.5. Otras Propiedades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.6. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.7. Referencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2. Lenguajes 7

2.1. Concatenacion de Lengua jes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.2. Estrella de Kleene de un Lenguaje . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.3. Otras Operaciones entre Lenguajes . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.3.1. Inverso de un Lenguaje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.3.2. Mas ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.4. Cardinalidad de los Lenguajes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2.4.1. Orden Lexicografico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142.5. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

3. Lenguajes Regulares 17

3.1. Expresiones Regulares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3.2. Ejemplos de Lenguajes Regulares . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

3.2.1. Mas ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

3.3. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

4. Automatas Finitos Deterministas (AFD) 26

4.1. Automatas Finitos Deterministas (AFD) . . . . . . . . . . . . . . . . . . . . . . . 264.1.1. Diagrama de Transicion de un Automata . . . . . . . . . . . . . . . . . . 29

4.1.2. Lenguaje aceptado por un AFD . . . . . . . . . . . . . . . . . . . . . . . 30

i

Page 3: Libro t Computacion

5/8/2018 Libro t Computacion - slidepdf.com

http://slidepdf.com/reader/full/libro-t-computacion 3/59

 

4.2. Ejemplos de Automatas Finitos Deterministas . . . . . . . . . . . . . . . . . . . 33

4.3. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

4.4. Referencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

5. Automatas Finitos No Deterministas (AFND) 40

5.1. Automatas Finitos No Deterministas (AFN) . . . . . . . . . . . . . . . . . . . . 40

5.1.1. Lenguaje aceptado por un AFD . . . . . . . . . . . . . . . . . . . . . . . 42

5.2. Ejemplos de AFN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445.3. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

6. Equivalencia entre AFD y AFN 46

6.1. Eliminacion Transiciones λ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

7. Gramaticas Regulares 47

8. Soluciones a algunos ejercicios 50

8.1. Soluciones Lectura 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

8.2. Solucion Ejercicios Lectura 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

ii

Page 4: Libro t Computacion

5/8/2018 Libro t Computacion - slidepdf.com

http://slidepdf.com/reader/full/libro-t-computacion 4/59

 

Lectura 1

Cadenas o Palabras

Contents

1.1. Longitud e Igualdad de una Cadena . . . . . . . . . . . . . . . . . . . 2

1.2. Concatenacion de una Cadena . . . . . . . . . . . . . . . . . . . . . . . 2

1.3. Inversa de una Cadena . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.4. Subcadenas, Prefijos y Sufijos . . . . . . . . . . . . . . . . . . . . . . . 3

1.5. Otras Propiedades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.6. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.7. Referencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

Uno de los ob jetos claves en la teorıa de automatas y lenguajes son las cadenas o palabras,

las cuales son una secuencia finita de sımbolos. Para ello se fija un conjunto finito no vacıo Σ

cuyos elementos se denominan sımbolos, los cuales se utilizan para formar las palabras. El

conjunto Σ se denomina alfabeto, ademas las cadenas se denotan por las letras u,v,w,x,....

Se supone la existencia de una unica cadena que no tiene sımbolos, denominada cadenavacıa y se denota con λ1.

Ejemplo 1.0.1. Sea Σ = {a,b,c} el alfabeto que consta de los sımbolos a, b y c, entonces

a,aa,abccc son cadenas sobre Σ.

Hay que aclarar que un alfabeto debe satisfacer que dos sucesiones diferentes de sımbolos

forman dos cadenas diferentes, ası por ejemplo el conjunto {aa,ab,bb} es un alfabeto, pero

{aa,a,bb} no es un alfabeto ya que las sucesiones (a, a) y (aa) forman la misma cadena aa.

El conjunto de todas las cadenas sobre un alfabeto Σ, incluyendo la cadena vacıa, se denota

por Σ∗.

1Algunos autores utilizan el sımbolo ǫ

1

Page 5: Libro t Computacion

5/8/2018 Libro t Computacion - slidepdf.com

http://slidepdf.com/reader/full/libro-t-computacion 5/59

 

1.1. Longitud e Igualdad de una Cadena

La longitud de una cadena u ∈ Σ∗, denotada con u, se define como el numero de sımbolos

de u, incluyendo sımbolos repetidos. Recursivamente se define como:

u =⎧⎪⎪⎪⎨⎪⎪⎪⎩

0, si u = λ

w + 1, si u = wa

para todo a ∈ Σ y u ∈ Σ∗.

Notaremos ua a la cantidad de veces que aparece el sımbolo a en la cadena u.

Ejemplo 1.1.1. Sea Σ = {0, 1} el alfabeto binario, entonces 00 = 2, 101011 = 6, 0010 =2, 0011 = 1.

Ejemplo 1.1.2. ¿Cuantas cadenas sobre un alfabeto Σ = {a1, a2, . . . , ak} se pueden formar

de longitud n, (n ≥ 0) ?

Solucion: Para cada sımbolo de la cadena existen k posibilidades, como la cadena es de longitudn, entonces hay un total de kn cadenas de longitud n.

Sean x = x1x2⋯xn y y = y1y2⋯ym dos cadenas sobre un alfabeto Σ, entonces x y y son iguales

si

1. x = y.2. xi = yi para todo i = 1, 2, . . . n.

1.2. Concatenacion de una Cadena

Dado un alfabeto Σ y dos cadenas u, v ∈ Σ∗, la concatenacion de u y v, es la cadena que

se forma al escribir los sımbolos de u y a continuacion los sımbolos de v. Se denota por

uv. Por lo tanto si v = λ, entonces uλ = λu = u. Si u = a1a2⋯ak y v = b1b2⋯bs entonces

uv = a1a2⋯akb1b2⋯bs.

En particular, si u ∈ Σ∗, entonces uu⋯un veces

se denotara como un. Es decir

⎧⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎩

u0 = λ

un = un−1u = uu⋯un veces

2

Page 6: Libro t Computacion

5/8/2018 Libro t Computacion - slidepdf.com

http://slidepdf.com/reader/full/libro-t-computacion 6/59

 

Ejemplo 1.2.1. Demostrar que para toda cadena u, v ∈ Σ∗, uv = u + v.Solucion: Induccion sobre la longitud de v.

Para v = 0, uv = uλ = u = u + 0 = u + v. Asumamos que se tiene para toda cadena v ∈ Σ∗,

entonces debemos probarla para toda cadena va con a ∈ Σ.

uva =uv + 1 Def. de Longitud de una Cadena.

=u + v + 1 Hipotesis de Induccion.=u + va, a ∈ Σ Def. de Longitud de una Cadena.

Ejemplo 1.2.2. Demostrar que para toda cadena u ∈ Σ∗ y n ≥ 0, un = nu.Solucion: Induccion sobre n.

Para n = 0, u0 = λ = 0 = 0u. Asumamos que se tiene para n, entonces

u(n+1) =unu Def. de Potencia de una Cadena.

=un + u Ejercicio 1.2.1.

=nu + u Hipotesis de Induccion.

=(n + 1) u

1.3. Inversa de una Cadena

La inversa de una cadena u ∈ Σ∗ se denota uR y se define como

uR =⎧⎪⎪⎪⎨⎪⎪⎪⎩

λ Si u = λ

unun−1⋯u1 Si u = u1u2⋯un.

con u1, u2,...,un ∈ Σ.

1.4. Subcadenas, Prefijos y Sufijos

Una cadena v es una subcadena de u si existen cadena x, y tales que u = xvy. Es claro que

x o y pueden ser λ, ası la cadena vacıa es subcadena de cualquier cadena y toda cadena es

subcadena de sı misma.

Si u

=vw entonces las subcadenas v y w se llaman prefijo y sufijo de u, respectivamente.

Ejemplo 1.4.1. Si u = 100110 entonces {λ, 1, 10, 100, 1001, 10011, 100110} es el conjunto de

todos los prefijos de u y {λ, 0, 10, 110, 0110, 00110, 100110} es el conjunto de todos los sufijos

de u.

3

Page 7: Libro t Computacion

5/8/2018 Libro t Computacion - slidepdf.com

http://slidepdf.com/reader/full/libro-t-computacion 7/59

 

1.5. Otras Propiedades

Teorema 1.5.1 (Principio de Induccion para Cadenas). Sea L ⊆ Σ∗, el conjunto de todas las

cadenas tales que λ ∈ L, y si  x ∈ L entonces xa ∈ L para todo a ∈ Σ. Entonces, L = Σ∗.

Demostraci´ on. Supongamos que L ⊂ Σ∗. Sea w una cadena de longitud minima, tal que

w ∈ Σ∗−L. Como λ ∈ L entonces w ≠ λ y por lo tanto existe a ∈ Σ, tal que w = ua, con u ∈ Σ∗.

Como w es de longitud minima en Σ∗

−L, entonces u

∈L y por la definicion de L se tiene

que ua = w ∈ L, lo cual es una contradiccion ya que w ∉ L.

El siguiente teorema da condiciones necesarias y suficientes para saber si dos cadenas con-

mutan.

Teorema 1.5.2. Sean  x, y dos cadenas de L ⊆ Σ∗, entonces las siguientes afirmaciones son 

equivalentes:

1. xy = yx;

2. Existe una cadena  z

∈L, y enteros m, n

≥0, tales que x

=zm y  y

=zn;

3. Existen enteros t, s ≥ 0 tales que las cadenas xt y  ys tiene un prefijo com´ un de longitud 

x + y.Demostraci´ on. (1) ⇒ (2) ∶ El argumento es por induccion sobre k = x+ y. Si k = 0, entonces

x = y = 0, luego x = y = λ y se tiene la conclusion inmediatamente. Asumamos que se tiene

para todo k < n y sean x, y ∈ L tales que xy = yx. Entonces se tiene los siguientes tres casos:

1. Caso 1: x = y, entonces x = y, y la conclusion es inmediata.

2. Caso 2:

x

< y

, entonces existe w

∈L tal que y

=xw, lo cual implica que xxw

=xwx,

luego xw = wx. Por la hipotesis de induccion existe una cadena z ∈ L tal que x = z p y

w = zq. Por lo tanto, y = z p+q, quedando demostrado.

3. Caso 3: x > y. Analogo al caso 2.

(2) ⇒ (3) ∶ Se escogen enteros t y s tales que tm ≥ (m+n)z = x+y y sn ≥ (m+n)z = x+y,y se tiene la conclusion inmediatamente.

(3) ⇒ (1) ∶ Supongamos que existen enteros t y s tales que xt y ys tiene un prefijo comun de

longitud x + y. Entonces las cadenas yxt y ys+1 tiene un prefijo comun de longitud x + 2yy por lo tanto yxt y ys tiene un prefijo comun de longitud

x

+ y

. Analogamente, se prueba

que xt y xys tienen un prefijo comun de longitud x + y. Esto implica que xys y yxt tienen

un prefijo comun de longitud x + y, por lo tanto xy = yx.

Ejemplo 1.5.3. Demostrar que no existe una cadena x ∈ {a, b}∗, tal que ax = xb.

4

Page 8: Libro t Computacion

5/8/2018 Libro t Computacion - slidepdf.com

http://slidepdf.com/reader/full/libro-t-computacion 8/59

 

Solucion: Supongamos que existe una cadena x ∈ {a, b}∗, tal que ax = xb. Entonces existen

cadenas u, v ∈ Σ∗, tales que x = au y x = vb, por lo tanto avb = aub, ası u = v, es decir que

au = ub, con u < x. Repitiendo este procedimiento (el cual es claro que se lleva a cabo en un

numero finito de pasos) se llega a que a = b, lo cual es contradictorio.

1.6. Ejercicios

1. Dar una definicion recursiva de uR.

2. Demostrar que para todo u, v ∈ Σ∗, (uv)R = vRuR.

3. Demostrar que para todo u ∈ Σ∗, (uR)R = u.

4. Sean x,y,u,v ∈ Σ∗ − {λ} tales que xy = uv y x ≤ u. Demostrar que existe una cadena

z ∈ Σ∗ tal que u = xz y y = zv.

5. Sean x, y ∈ Σ∗−{λ} tales que xm = yn para m, n > 0. Demostrar que x y y son potencias

de la misma cadena z.

6. Sea Σ = {a, b}. Demostrar que no existen cadenas x, y ∈ Σ∗ tales que xay = ybx.

7. Se define la funcion f  ∶ Σ∗ → Σ∗ por

f (λ) = λ

f (ax) = xa,

para todo x ∈ Σ∗ y a ∈ Σ.

a ) Demuestre que f  es biyectiva.

b) Demuestre que f x(xy) = yx para todo x, y ∈ Σ∗. Concluya que f x(x) = x para

todo x ∈ Σ∗.

c) Dos cadenas x, y ∈ Σ∗ son conjugadas si existen cadenas u, v ∈ Σ∗ tales que x = uv

y y = vu. Demuestre que x, y ∈ Σ∗ son conjugadas si y solo si x = f n(y) para algun

entero n ≥ 0.

8. Utilice el Principio de Induccion para Cadenas, para demostrar que para todo x ∈ Σ∗,

si xa = ax , con a ∈ Σ, entonces existe un entero m ≥ 0, tal que x = am.

1.7. Referencias

Algunos textos recomendados que tienen este contenido son [3, 1, 7, 2]. Para profundizar en

propiedades combinatorias sobre cadenas puede consultar: M. Lothaire: Combinatorics on

5

Page 9: Libro t Computacion

5/8/2018 Libro t Computacion - slidepdf.com

http://slidepdf.com/reader/full/libro-t-computacion 9/59

 

Words. Addison-Wesley, 1983, M. Lothaire: Algebraic Combinatorics on Words. Cambridge

University Press, 2002, M. Lothaire: Applied Combinatorics on Words. Cambridge University

Press, 2005. Tambien puede consultar la pagina http://www.math.utu.fi/projects/fundim/w

es de uno de los grupos de investigacion que trabaja en dicha area. Tambien puede consultar

el libro J.-P. Allouche, J. Shallit: Automatic Sequences: Theory, Applications, Generaliza-

tions. Cambridge University Press, 2003; el cual abarca lıneas actuales de investigacion, o los

paginas web de los autores del libro.

6

Page 10: Libro t Computacion

5/8/2018 Libro t Computacion - slidepdf.com

http://slidepdf.com/reader/full/libro-t-computacion 10/59

 

Lectura 2

Lenguajes

Contents

2.1. Concatenacion de Lengua jes . . . . . . . . . . . . . . . . . . . . . . . . 8

2.2. Estrella de Kleene de un Lenguaje . . . . . . . . . . . . . . . . . . . . 9

2.3. Otras Operaciones entre Lenguajes . . . . . . . . . . . . . . . . . . . . 11

2.3.1. Inverso de un Lenguaje . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.3.2. Mas ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.4. Cardinalidad de los Lenguajes . . . . . . . . . . . . . . . . . . . . . . . 14

2.4.1. Orden Lexicografico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2.5. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

Un lenguaje L sobre un alfabeto Σ es un subconjunto de Σ∗. Todo lenguaje L satisface

∅ ⊆ L ⊆ Σ∗ y puede ser finito o infinito. Los lenguajes se denotan con letras mayusculas

A , B , C , . . . L , M , N , . . . .

Ejemplo 2.0.1. Los siguientes son ejemplos de lenguajes sobre los alfabetos especificados.

Σ = {0, 1}. L = {0, 1, 00, 01, 10, 11}.

Σ = {0, 1}. L = {1, 11, 1111, 11111111, . . .} = 12n ∶ n ≥ 0.

Σ = {a, b}. L = w ∶ w = wR (Palındromos).

Σ

= {0, 1, 2, 3, 4, 5, 6, 7, 8, 9

}. L

= {u

∈Σ∗

∶u

=0 o 0 no es prefijo de u

} =N.

Puesto que los lenguajes sobre Σ son subconjuntos de Σ∗, las operaciones usuales entre

conjuntos son tambien operaciones validas entre lenguajes. Ası, si A y B son lenguajes sobre

Σ, entonces los siguientes tambien son lengua jes sobre Σ:

7

Page 11: Libro t Computacion

5/8/2018 Libro t Computacion - slidepdf.com

http://slidepdf.com/reader/full/libro-t-computacion 11/59

 

A ∪ B = {v ∶ v ∈ A o v ∈ B} Union

A ∩ B = {v ∶ v ∈ A y v ∈ B} Interseccion

A − B = {v ∶ v ∈ A y v ∉ B} Diferencia

A = Σ∗ − A Complemento

Para todo lenguaje finito A ⊆ Σ∗, se escribe A al numero de cadenas en A.

2.1. Concatenacion de Lenguajes

La concatenacion de dos lenguajes A y B sobre Σ, notada AB, se define como

AB = {uv ∶ u ∈ A, v ∈ B}En general AB ≠ BA.

Ejemplo 2.1.1. Si Σ = {0, 1}, A = {0, 01}, B = {1, 10}, entonces

AB = {01, 010, 011, 0110} .

BA = {10, 101, 100, 1001} .

Ejemplo 2.1.2. Si Σ = {0, 1, 2}, A = {01, 12}, B = {1n ∶ n ≥ 0}, entonces

AB = {01n ∶ n ≥ 1} ∪ {121n ∶ n ≥ 0} .

BA = {1n01 ∶ n ≥ 0} ∪ {1n2 ∶ n ≥ 1} .

Proposicion 2.1.3. Sean  A,B,C  lenguajes sobre Σ, entonces:

1. A∅ = ∅A = ∅.

2. A{λ} = A = {λ}A.

3. Propiedad Asociativa: A(BC ) = (AB)C .

4. Distributividad de la concatenaci´ on con respecto a la uni´ on:

A(B ∪ C ) = AB ∪ AC 

(B ∪ C )A = BA ∪ CA

5. Propiedad distributiva generalizada. Si  {Bi}i∈I  es una familia cualquiera de lenguajes

8

Page 12: Libro t Computacion

5/8/2018 Libro t Computacion - slidepdf.com

http://slidepdf.com/reader/full/libro-t-computacion 12/59

 

sobre Σ, entonces

Ai∈I 

Bi =i∈I 

(ABi).

i∈I 

BiA =i∈I 

(BiA).

Demostraci´ on. 1. A

∅ = {uv

∶u

∈A, v

∈ ∅} = ∅.

2. A{λ} = {uv ∶ u ∈ A, v ∈ {λ}} = {u ∶ u ∈ A} = A.

3. Es consecuencia de la asociatividad de la concatenacion de cadenas.

4. Es consecuencia de la propiedad general.

5.

w ∈ Ai∈I 

Bi⇔ w = uv, con u ∈ A, v ∈i∈I 

Bi

⇔ w = uv, con u ∈ A, v ∈ B j, j ∈ I ⇔ w ∈ AB j, j ∈ I 

⇔ w ∈i∈I 

(ABi).

La segunda igualdad se demuestra analogamente.

Dado un lenguaje A sobre Σ (A ⊆ Σ∗) y un numero natural n, se define An de la siguiente

forma

A0 = {λ} ,

An = A A . . . A  n veces

= {u1⋯un ∶ ui ∈ A, para todo i, 1 ≤ i ≤ n}

2.2. Estrella de Kleene de un Lenguaje

La estrella de Kleene o simplemente estrella de un lenguaje A, A ⊆ Σ∗, es la union de

todas las potencias de A y se denota por A∗.

A∗

=i≥0

Ai

=A0

∪A1

∪A2

∪⋯ ∪An

∪⋯

9

Page 13: Libro t Computacion

5/8/2018 Libro t Computacion - slidepdf.com

http://slidepdf.com/reader/full/libro-t-computacion 13/59

 

Es decir que A∗ consta de todas las concatenaciones de cadenas de A consigo mismas, de

todas las formas posibles. Por lo tanto

A∗ = {u1u2⋯un ∶ ui ∈ A, n ≥ 0}

De manera similar se define la clausura positiva de un lenguaje A, denotada por A+.

A

+

= i≥1A

i

= A

1

∪ A

2

∪⋯ ∪ A

n

∪⋯Ejemplo 2.2.1. Sea L = {w ∶ wa es impar y wb es par} sobre el alfabeto Σ = {a, b}, enton-

ces L∗ = {w ∶ wb es par}.

Proposicion 2.2.2. Sean  A, B lenguajes sobre Σ, entonces:

1. A+ = A∗A = AA∗.

2. A∗A∗ = A∗.

3. (A∗

)n

= A

, para todo n ≥ 1.

4. (A∗)∗ = A∗.

5. A+A+ ⊆ A+.

6. (A∗)+ = A∗.

7. (A+)∗ = A∗.

8. (A+)+ = A+.

9. (A ∪ B)∗

= (A∗

B

)∗

Demostraci´ on.

1. A+ = A ∪ A2 ∪ A3 ∪⋯= A {λ} ∪ A ∪ A2 ∪⋯= AA∗.

Similarmente se demuestra que A+ = A∗A.

2. Sea w ∈ A∗

A∗

⇒ w = uv, con u ∈ A∗

, v ∈ A∗

⇒ w = uv, con u ∈ Ai, v ∈ A j , (i, j ≥ 0)

⇒ w ∈ A∗ ya que AiA j ⊆ A∗

10

Page 14: Libro t Computacion

5/8/2018 Libro t Computacion - slidepdf.com

http://slidepdf.com/reader/full/libro-t-computacion 14/59

 

Recıprocamente, si w ∈ A∗, entonces w = wλ ∈ A∗A∗. Por tanto se tiene la igualdad de

conjuntos.

3. Se tiene por la propiedad anterior.

4. (A∗)∗ =(A∗)0 ∪ (A∗)1 ∪ (A∗)2 ∪⋯={λ} ∪ A∗ ∪ A∗ ∪⋯

=A∗

5. Similar a la propiedad 2.

6. (A∗)+ =(A∗)1 ∪ (A∗)2 ∪ (A∗)3 ∪⋯=(A∗) ∪ A∗ ∪ A∗ ∪⋯=A∗

7. (A+)∗ =(A+)0 ∪ (A+)1 ∪ (A+)2 ∪⋯={λ}∪ A+ ∪ A+A+ ∪⋯={λ}∪ A+

=A∗

8. (A+)+ =(A+)1 ∪ (A+)2 ∪ (A+)3 ∪⋯=A+ ∪ A+A+ ∪ A+A+A+ ∪⋯=A+

9. Sea w ∈ (A ∪ B)∗⇔w ∈ (A ∪ B)n con n ≥ 0

⇔w = w1w2⋯wn con i ≥ 0, w1, w2, . . . , wn ∈ A ∪ B

⇔w = u1v1u2v2⋯unvn con u1, u2, . . . , un ∈ A∗, v1, v2, . . . , vn ∈ B∗

⇔w ∈ (A∗B∗)n ⊆ (A∗B∗)∗

2.3. Otras Operaciones entre Lenguajes

Hasta el momento hemos definido las operaciones usuales entre lenguajes, como lo son la

union, interseccion, concatenacion y estrella de kleene. A continuacion se muestran otros

ejemplos de operaciones entre lenguajes, los cuales no son usuales.

11

Page 15: Libro t Computacion

5/8/2018 Libro t Computacion - slidepdf.com

http://slidepdf.com/reader/full/libro-t-computacion 15/59

 

2.3.1. Inverso de un Lenguaje

El inverso de un lenguaje A sobre Σ, notado AR, se define como

AR = uR ∶ u ∈ A

Proposicion 2.3.1. Sean  A, B lenguajes sobre Σ, entonces:

1. (AB)R

= BR

AR

.

2. (A ∪ B)R = AR ∪ BR.

3. (A ∩ B)R = AR ∩ BR.

4. (AR)R = A.

5. (A∗)R = (AR)∗.

6. (A+)R = (AR)+.

Demostraci´ on.

1. w ∈ (AB)R⇔ w = uR, donde u ∈ AB

⇔ w = uR, donde u = xy,x ∈ A, y ∈ B

⇔ w = (xy)R, donde x ∈ A, y ∈ B

⇔ w = yRxR, donde x ∈ A, y ∈ B

⇔ w ∈ BRAR

2. w ∈ (A ∪ B)R

⇔ w = uR

, donde u ∈ A ∪ B⇔ w = uR, donde u ∈ A o u ∈ B

⇔ w ∈ AR ∪ BR

3. Similar a la propiedad 2.

4. w ∈ (AR)R⇔ w = uR, donde u ∈ AR

⇔ w = uR, donde u = vR, v ∈ A

⇔ w = (vR)R, donde v ∈ A

⇔ w = v ∈ A

12

Page 16: Libro t Computacion

5/8/2018 Libro t Computacion - slidepdf.com

http://slidepdf.com/reader/full/libro-t-computacion 16/59

 

5. w ∈ (A∗)R⇔ w = uR, donde u ∈ A∗

⇔ w = uR, donde u = u1u2⋯un, ui ∈ A, n ≥ 0

⇔ w = (u1u2⋯un)R, donde u = u1u2⋯un, ui ∈ A, n ≥ 0

⇔ w = uRn⋯uR

2 uR1 , donde u = u1u2⋯un, ui ∈ A, n ≥ 0

⇔ w ∈ (AR)∗

6. Similar a la propiedad 5.

2.3.2. Mas ejemplos

Funcion Chop

Sea L un lenguaje definido sobre el alfabeto Σ, entonces

Chop(L) ∶= {w ∶ (∃x ∈ L) [x = uav, u = v, w = uv,u,v ∈ Σ∗, a ∈ Σ]}en otras palabras Chop(L) es el conjunto de todas las cadenas de longitud impar de L sin el

sımbolo de la mitad.

Ejemplo 2.3.2. Sean L1 = {0n1n ∶ n ≥ 0} y L2 = {0n1n2n ∶ n ≥ 0}, entonces Chop(L1)=∅ y

Chop(L2)=02n+112n22n+1 ∶ n ≥ 0.

Funcion Perm

Sea L un lenguaje definido sobre el alfabeto Σ, entonces

Perm(L) ∶= {w ∶ w = perm(x), x ∈ L}donde perm(x) es una permutacion de los sımbolos de x.

Ejemplo 2.3.3. Sean L1 = {0n1n ∶ n ≥ 0}, entonces Perm(L1)={w ∶ w es par y w0 = w1}.

Funcion Sqrt

Sea L un lenguaje definido sobre el alfabeto Σ, entonces

Sqrt(L) ∶= x ∶ (∃y) y = x2, xy ∈ LEjemplo 2.3.4. Sean L1

= {0n1n

∶n

≥0

}, entonces Sqrt(L1)=

{0n

∶n

≥0

}.

13

Page 17: Libro t Computacion

5/8/2018 Libro t Computacion - slidepdf.com

http://slidepdf.com/reader/full/libro-t-computacion 17/59

 

2.4. Cardinalidad de los Lenguajes

El lenguaje mas pequeno sobre un alfabeto σ es ∅, cuyo cardinal es cero y el lenguaje mas

grande es Σ∗. Si Σ = ∅ entonces Σ∗ = {λ} y por lo tango Σ∗ = 1. En el siguiente teorema

resolvemos el caso en que Σ ≠ ∅.

Teorema 2.4.1 (Cardinalidad de Σ∗). Si  Σ ≠ ∅ entonces Σ∗ es un conjunto numerable.

Demostraci´ on. Sea Σn = el conjunto de todas las cadenas sobre Σ de longitud n, n ≥ 0,(Σ0 = {λ}). Si Σ = m, entonces existen mn cadenas en Σn. Como Σ∗ = ⋃n≥0 Σn entonces Σ∗ es

la union numerable de conjuntos finitos disjuntos dos a dos, por lo tanto Σ∗ es numerable.

Ası todos los lenguajes son finitos o numerables.

Teorema 2.4.2 (Cardinalidad de ℘(Σ∗)). Si  Σ ≠ ∅ entonces el n´ umero de lenguajes sobre

Σ es no contable.

Demostraci´ on. El conjunto de todos los lenguajes sobre Σ es ℘(Σ∗), ası el numero de len-

guajes es el cardinal de ℘

(Σ∗

), como Σ∗ es numerable, entonces por el Teorema de Cantor

℘(Σ∗) es no contable.

Como existen tantos lenguajes sobre un alfabeto Σ como numeros reales, entonces en los

proximos capıtulos comenzaremos a estudiar algunas clases de lenguajes que guardan ciertas

propiedades.

2.4.1. Orden Lexicografico

Sea Σ = {a0, a1, . . . , an−1} entonces definimos un orden total sobre Σ, por ejemplo, a0 < a1 <⋯ < an−1.

Definicion 2.4.3. El orden lexicografico sobre Σ∗ es una relacion ≺ sobre Σ∗ definida como,

u ≺ v si y solo si u < v o u = waiu′ y v = wa jv′, para algun w, u′, v′ ∈ Σ∗ y i < j.

Ejemplo 2.4.4. Sea L = x ∈ {a, b}∗ ∶ todas las as preceden a todas las bs. El orden lexi-

cografico, si se toma que a < b, es λ,a,b,aa,ab,bb,aaa,aab,...

A partir del orden lexicografico se puede construir una funcion biyectiva de Σ∗ en N, se deja

como ejercicio para el lector.

2.5. Ejercicios1. Sea Σ = {a, b}. Encuentre una cadena que este y otra que no, en el lenguaje L ⊆ Σ∗,

donde L es:

14

Page 18: Libro t Computacion

5/8/2018 Libro t Computacion - slidepdf.com

http://slidepdf.com/reader/full/libro-t-computacion 18/59

 

a ) wwRw ∶ w ∈ ΣΣ.

b) w ∈ Σ∗ ∶ w2 = w3.

c) w ∈ Σ∗ ∶ w3 = v2, v ∈ Σ∗.

d ) {w ∈ Σ∗ ∶ uvw = wuv,u,v ∈ Σ∗}.

2. ¿Si A = n ≥ 0 y B = m ≥ 0 entonces AB = nm?.

3. Encuentre la cadena de menor longitud sobre el alfabeto Σ = {0} que no pertenece a{λ, 0, 00, 00000}3.

4. Dar un ejemplo de un alfabeto Σ y dos lenguajes diferentes A, B sobre Σ tales que

AB = BA.

5. Para cada una de las siguientes afirmaciones, decida si es verdadera o no. Justifique su

respuesta.

Para todo lenguaje L se tiene que:

a ) L∗

=L∗

.

b) LR = LR

.

c) LLR ∪ LRL = Σ∗.

d ) LL ∪ LL = Σ∗.

e) Si L∗1= L∗

2, entonces L1 = L2 para todo lenguaje L1 y L2.

 f ) AB = A B.

6. Dar un ejemplo de un alfabeto Σ y tres lenguajes diferentes A,B,C  sobre Σ tales que

A(B ∩ C ) ≠ AB ∩ AC . Una de la dos concatenaciones siguientes es verdadera y la otra

es falsa. Demostrar o refutar, segun sea el caso:

a ) A(B ∩ C ) ⊆ AB ∩ AC .

b) AB ∩ AC ⊆ A(B ∩ C ).

7. Verifique que en general las siguientes igualdades no se tienen para cualquier lenguaje

A y B sobre Σ

a ) (A ∪ AR)∗ = A∗ ∪ (A∗)Rb) A2 ∪ B2 = (A ∪ B)2c) A

∩ B

= (A ∩ B)∗

8. Sean A,B,C,D lenguajes sobre Σ, demuestre que

a ) Para k ≥ 1,⋃ki=0 Ai = ({λ} ∪ A)k.

15

Page 19: Libro t Computacion

5/8/2018 Libro t Computacion - slidepdf.com

http://slidepdf.com/reader/full/libro-t-computacion 19/59

 

b) Si λ ∉ A, entonces para n ≥ 1, (A+)n = AnA∗.

c) A(BA)∗ = (AB∗)A.

9. ¿Son los siguientes conjuntos cerrados para las operaciones que aparecen?.

a ) El lenguaje {a, b} respecto a la concatenacion.

b) Las cadenas de longitud impar sobre el alfabeto {a, b} respecto a la estrella de

Kleene.

c) L = w ∈ {a, b}∗ respecto a el inverso.

d ) L = w ∈ {a, b}∗ ∶ w comienza con a respecto a el inverso.

e) L = w ∈ {a, b}∗ ∶ w finaliza con a respecto la concatenacion.

10. Sea L = w ∈ {a, b}∗ ∶ w = wR. Encuentre Chop(L).

16

Page 20: Libro t Computacion

5/8/2018 Libro t Computacion - slidepdf.com

http://slidepdf.com/reader/full/libro-t-computacion 20/59

 

Lectura 3

Lenguajes Regulares

Existe una clase especial de lenguajes conocidos como lenguajes regulares. Los lenguajes

regulares sobre un alfabeto dado Σ son todos los lenguajes que se pueden formar a partir de

los lenguajes basicos ∅,{λ} ,{a} , a ∈ Σ, por medio de las operaciones de union, concatenacion

y estrella de Kleene. A continuacion presentamos una definicion recursiva de los lenguajes

regulares.

Definicion 3.0.1. Sea Σ un alfabeto:

1. ∅,{λ} ,{a}, para todo a ∈ Σ, son lenguajes regulares sobre Σ. Estos se denominan

lenguajes regulares basicos.

2. Si A y B son lenguajes regulares sobre Σ, tambien lo son

A ∪ B Union

AB Concatenacion

A

estrella de Kleene

Ejemplo 3.0.2. Sea Σ = {0, 1}. Los siguientes son lenguajes regulares sobre Σ:

(i) El lenguaje A de todas las cadenas que tienen exactamente un 0: Una cadena en este

lenguaje se puede escribir de la forma x0y, donde x, y ∈ {1}∗. Ası el lengua je se puede escribir

como: A = {1}∗ {0}{1}∗(ii) El lenguaje B de todas las cadenas que tienen un numero impar de sımbolos:

B = [({0} ∪ {1})({0} ∪ {1})]∗ ({0} ∪ {1})

3.1. Expresiones Regulares

Para simplificar la descripcion de los lenguajes regulares se definen las expresiones regu-

lares, cuya definicion recursiva sobre un alfabeto Σ dado es:

17

Page 21: Libro t Computacion

5/8/2018 Libro t Computacion - slidepdf.com

http://slidepdf.com/reader/full/libro-t-computacion 21/59

 

1. Expresiones regulares basicas:

∅ es una expresion regular que representa al lenguaje ∅.

λ es una expresion regular que representa al lenguaje {λ}.

a es una expresion regular que representa al lenguaje {a} , para todo a ∈ Σ.

2. Si R y S  son expresiones regulares sobre Σ, tambien lo son

(R

∪S 

)(R) (S )(R)∗(R ∪ S ) representa la union de los lenguajes representados por R, S ; (R) (S ) representa

su concatenacion, y (R)∗ representa la clausura de Kleene del lenguaje representado

por R. Los parentesis ( y ) son sımbolos de agrupacion y se pueden omitir si no hay

peligro de ambiguedad.

Ejemplo 3.1.1. Los dos lenguajes del ejemplo 3.0.2 se pueden representar con expresiones

regulares de la siguiente manera:

(i) El lenguaje A de todas las cadenas que tienen exactamente un 0: A = 1∗01∗.

(ii) El lenguaje B de todas las cadenas que tienen un numero impar de sımbolos:

B = [(0 ∪ 1) (0 ∪ 1)]∗ (0 ∪ 1)

3.2. Ejemplos de Lenguajes Regulares

Ejemplo 3.2.1. Encontrar una expresion regular para el lenguaje de todas las cadenas que

comienzan con 2 y terminan con 1, definidas sobre el alfabeto Σ = {0, 1, 2}.

Solucion: Cualquier cadena en este lenguaje se puede escribir de la forma 2x1, donde x ∈{0, 1, 2}∗.

Este puede ser representado como: 2(0 ∪ 1 ∪ 2)∗1

Ejemplo 3.2.2. Encontrar una expresion regular para el lenguaje de todas las cadenas que

tienen un numero par de aes, definidas sobre el alfabeto Σ = {a, b}.

Solucion: Cualquier cadena en este lenguaje esta formada por solo bes o es concatenacion de

cadenas de la forma xayaz, donde x,y,z ∈ {b}∗.

Este puede ser representado como:

(b∗ab∗ab∗

)∗

∪b∗

= (ab∗a

∪b∗

)∗

Ejemplo 3.2.3. Encontrar una expresion regular para el lenguaje de todas las cadenas que

tienen un numero impar de aes, definidas sobre el alfabeto Σ = {a, b}.

18

Page 22: Libro t Computacion

5/8/2018 Libro t Computacion - slidepdf.com

http://slidepdf.com/reader/full/libro-t-computacion 22/59

 

Solucion: A partir del ejemplo 3.2.2, se concluye que este lenguaje puede ser representado como:

(b∗ab∗ab∗)∗(b∗ab∗) = (ab∗a ∪ b∗)∗ab∗

Ejemplo 3.2.4. Encontrar una expresion regular para el lenguaje de todas las cadenas que

tiene un numero par de aes o un numero impar de bes, definidas sobre el alfabeto Σ = {a, b}.

Solucion: A partir de los ejemplos 3.2.2 y 3.2.3, se concluye que este lenguaje puede ser repre-

sentado como:

(ab∗a

∪b∗

)∗

∪ (ba∗b

∪a∗

)∗ba∗

Ejemplo 3.2.5. Encontrar una expresion regular para el lenguaje de todas las cadenas que

tienen por lo menos un 0 y por lo menos un 1, definidas sobre el alfabeto Σ = {0, 1}.

Solucion: Cualquier cadena en este lenguaje contiene las subcadenas 01 o 10 y recıprocamente

si una cadena contiene una subcadena 01 o 10 entonces pertenece al lenguaje.

Este puede ser representado como:

(0 ∪ 1)∗01∗(0 ∪ 1)∗ ∪ (0 ∪ 1)∗10∗(0 ∪ 1)∗ = (0 ∪ 1)∗(01 ∪ 10)∗(0 ∪ 1)∗Ejemplo 3.2.6. Encontrar una expresion regular para el lenguaje de todas las cadenas que

tienen a lo sumo dos ceros consecutivos, definidas sobre el alfabeto Σ = {0, 1}.

Solucion: Cualquier cadena en este lenguaje es concatenacion de las cadenas: 1, 01, 001; esto

con el fin de que 0 o 00 siempre esten separadas por al menos un 1. Hay que tener en cuenta que

las cadenas pueden finalizar con 1s, con un 0 o con dos 0.

Este puede ser representado como: (1 ∪ 01 ∪ 001)∗(λ ∪ 0 ∪ 00)Ejemplo 3.2.7. Encontrar una expresion regular para el lenguaje de todas las cadenas que

no tienen la subcadena 00, definidas sobre el alfabeto Σ = {0, 1}.

Solucion: Cualquier cadena en este lenguaje es concatenacion de las cadenas: 1, 01.Este puede ser representado como: (01 ∪ 1)∗(λ ∪ 0)Ejemplo 3.2.8. Encontrar una expresion regular para el lenguaje de todas las cadenas que

no tienen la subcadena 001, definidas sobre el alfabeto Σ = {0, 1}.

Solucion: Una cadena en este lenguaje no tiene la subcadena 00, excepto que esta tenga un

sufijo 0k con k ≥ 2. El conjunto de cadenas que no tienen la subcadena 00 se puede representar

por (01 ∪ 1)∗(λ ∪ 0) (ver ejercicio 3.2.7).

Este puede ser representado como: (01 ∪ 1)∗(λ ∪ 0 ∪ 000∗) = (01 ∪ 1)∗0∗

3.2.1. Mas ejemplos

A continuacion presentamos algunos ejemplos mas complejos.

19

Page 23: Libro t Computacion

5/8/2018 Libro t Computacion - slidepdf.com

http://slidepdf.com/reader/full/libro-t-computacion 23/59

 

Ejemplo 3.2.9. Encontrar una expresion regular para el lenguaje de todas las cadenas con

a lo mas un par de consecutivos 0’s y a lo mas un par de consecutivos 1’s, definidas sobre el

alfabeto Σ = {0, 1}.

Solucion: Una cadena x en este lenguaje, puede tener cualquiera de las siguientes formas:

1) λ

2) u10 3) u100v1 4) u100w111v0

5) u01 6) u011v0 7) u011w000v1

donde u0, u1, v0, v1, w0, w1 son cadenas que no contienen la subcadenas 00 ni 11, u0 finaliza con

0, u1 finaliza con 1, v0 comienza con 0, v1 comienza con 1, w0 comienza con 0 y termina en 1 y

w1 comienza con 1 y finaliza con 0.

Cada una de las cadenas puede ser representado por las siguientes expresiones regulares (Por

conveniencia, se agrego λ en cada expresion):

u10

∶ (λ

∪0

)(10

)∗ 0v1

∶ (01

)∗

∪0

)0w11

∶ (01

)∗

u01 ∶ (λ ∪ 1)(01)∗ 1v0 ∶ (10)∗(λ ∪ 1) 1w00 ∶ (10)∗Ahora vamos a combinar 1), 2), 3) y 4):

(λ ∪ 0)(10)∗ ∪ (λ ∪ 0)(10)∗(01)∗(λ ∪ 0)∪(λ ∪ 0)(10)∗(01)∗(10)∗(λ ∪ 1)= (λ ∪ 0)(10)∗ (λ ∪ (01)∗(λ ∪ 0) ∪ (01)∗(10)∗(λ ∪ 1))= (λ ∪ 0)(10)∗ ((01)∗ ∪ (01)∗0 ∪ (01)∗(10)∗ ∪ (01)∗(1

= (λ ∪ 0)(10)∗(01)∗ (λ ∪ 0 ∪ (10)∗ ∪ (10)∗1)

= (λ

∪ 0)(10)∗

(01)∗

(0 ∪ (10)∗

∪ (10)∗

1)= (λ ∪ 0)(10)∗(01)∗ (0 ∪ (10)∗(λ ∪ 1))Los casos 1), 5), 6) y 7) tiene una forma simetrica. Ası este lenguaje puede ser

representado como: (λ ∪ 0)(10)∗(01)∗ (0 ∪ (10)∗(λ ∪ 1)) ∪ (λ ∪ 1)(01)∗(10)∗ (1 ∪ (01)∗(λ ∪ 0))Ejemplo 3.2.10. Encontrar una expresion regular para el lenguaje de todas las cadenas tal

que ningun prefijo tiene mas de dos 0’s que de 1’s, ni mas de dos 1’s que de 0’s, definidas

sobre el alfabeto Σ = {0, 1}.

Solucion:Sea x

=x1x2

⋯xn una cadena en este lenguaje, donde cada xi

∈ {0, 1

}. La propiedad

de estos lenguajes implica que para todo entero positivo i ≤ n2

, x2i−1 ≠ x2i. En efecto, si no fuera

ası, existirıa al menos un entero i ≤ n2

tal que x2i−1 = x2i. Supongamos que i′ es el menor de

estos enteros. sin perdida de generalidad, asumamos que x2i′−1 = x2i′ = 0. Entonces cada pareja

20

Page 24: Libro t Computacion

5/8/2018 Libro t Computacion - slidepdf.com

http://slidepdf.com/reader/full/libro-t-computacion 24/59

 

x1x2, x3x4, . . . , x2i′−3x2i′−2 es 01 o 10 y por lo tanto el prefijo x1x2⋯x2i′−2 tiene igual numero

de 0s y 1s. Por lo tanto, la cadena x1x2⋯x2i′ tiene dos 0’s mas que 1’s, lo cual es contradictorio.

Recıprocamente si una cadena satisface que para todo entero positivo i ≤ n2

, x2i−1 ≠ x2i, entonces

pertenece al lenguaje, ya que toda cadena x2i−1x2i es 10 o 01.

Ası este lenguaje puede ser representado como: (01 ∪ 10)∗(1 ∪ 0 ∪ λ)Ejemplo 3.2.11. Sea

Σ3 = ⎧⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎩⎛⎜⎜⎜⎝

00

0

⎞⎟⎟⎟⎠,⎛⎜⎜⎜⎝

00

1

⎞⎟⎟⎟⎠,⎛⎜⎜⎜⎝

01

0

⎞⎟⎟⎟⎠, . . . ,⎛⎜⎜⎜⎝

11

1

⎞⎟⎟⎟⎠⎫⎪⎪⎪⎪⎪⎬⎪⎪⎪⎪⎪⎭

Σ3 contiene todas las matrices columna de tamano 3 formadas por ceros y unos. Una palabra

de sımbolos en Σ3 esta formada por tres filas de 0s y 1s. Considere cada fila como un numero

binario y sea:

B = {w ∈ Σ∗3 ∶ la ultima fila de w es igual a la suma de las dos primeras filas}

Por ejemplo: ⎛⎜⎜⎜⎝0

0

1

⎞⎟⎟⎟⎠⎛⎜⎜⎜⎝

0

1

0

⎞⎟⎟⎟⎠⎛⎜⎜⎜⎝

1

1

0

⎞⎟⎟⎟⎠∈ B pero

⎛⎜⎜⎜⎝0

0

1

⎞⎟⎟⎟⎠⎛⎜⎜⎜⎝

1

0

1

⎞⎟⎟⎟⎠∉ B

Muestre que B es regular.

Solucion: Es claro que la concatenacion de dos cadenas que pertenecen a B tambien

esta en B. Por lo tanto el problema se reduce a analizar las cadenas mas pequenas

del lenguaje.

El primer sımbolo de la izquierda tiene solo las siguientes opciones:

⎛⎜⎜⎜⎝0

0

0

⎞⎟⎟⎟⎠,

⎛⎜⎜⎜⎝0

1

1

⎞⎟⎟⎟⎠,

⎛⎜⎜⎜⎝1

0

1

⎞⎟⎟⎟⎠,

⎛⎜⎜⎜⎝0

0

1

⎞⎟⎟⎟⎠.

En los tres primeros casos, estos sımbolos pertenecen al lenguaje y serıan las cadenas mas cadenas

pequenas de longitud 1. El cuarto sımbolo no pertenece al lenguaje, ası debe tener mas sımbolos.

En este caso el primer sımbolo de la derecha debe ser.

⎛⎜⎜⎜⎝1

1

0⎞⎟⎟⎟⎠

21

Page 25: Libro t Computacion

5/8/2018 Libro t Computacion - slidepdf.com

http://slidepdf.com/reader/full/libro-t-computacion 25/59

 

y el segundo sımbolo mas a la derecha debe existir, y tiene cuatro opciones

⎛⎜⎜⎜⎝0

0

1

⎞⎟⎟⎟⎠,

⎛⎜⎜⎜⎝0

1

0

⎞⎟⎟⎟⎠,

⎛⎜⎜⎜⎝1

0

0

⎞⎟⎟⎟⎠,

⎛⎜⎜⎜⎝1

1

1

⎞⎟⎟⎟⎠.

Si el segundo sımbolo mas a la derecha es el primer caso, entonces esta cadena pertenece al

lenguaje, y por lo tanto es la cadena mas pequena de longitud 2. En los otros tres casos, debeexistir el tercer sımbolo mas a la derecha y tiene las mismas cuatro opciones.

Ası este lenguaje puede ser representado como:

⎡⎢⎢⎢⎢⎢⎢⎢⎣

⎛⎜⎜⎜⎝0

0

0

⎞⎟⎟⎟⎠∪⎛⎜⎜⎜⎝

0

1

1

⎞⎟⎟⎟⎠∪⎛⎜⎜⎜⎝

1

0

1

⎞⎟⎟⎟⎠∪⎛⎜⎜⎜⎝

0

0

1

⎞⎟⎟⎟⎠

⎡⎢⎢⎢⎢⎢⎢⎣

⎛⎜⎜⎜⎝0

1

0

⎞⎟⎟⎟⎠∪⎛⎜⎜⎜⎝

1

0

0

⎞⎟⎟⎟⎠∪⎛⎜⎜⎜⎝

1

1

1

⎞⎟⎟⎟⎠

⎤⎥⎥⎥⎥⎥⎥⎦

∗⎛⎜⎜⎜⎝1

1

0

⎞⎟⎟⎟⎠

⎤⎥⎥⎥⎥⎥⎥⎥⎦

El principio de induccion puede ser generalizado a otros tipos de conjuntos cuyos elementos

se definen recursivamente. Como los lenguajes regulares se definen recursivamente, entonces

el principio de induccion puede ser utilizado para probar una propiedad P  de los lenguajesregulares, de la siguiente manera:

1. Probar que ∅ tiene la propiedad P .

2. Probar que {λ} tiene la propiedad P .

3. Probar que {a} tiene la propiedad P , para todo a ∈ Σ.

4. Probar que si A y B tienen la propiedad P , entonces

a ) A

∪B

b) AB

c) A∗

tambien tienen la propiedad P .

Ejemplo 3.2.12. Para todo lenguaje L sobre el alfabeto Σ, sea L′el conjunto de todos los

prefijos de cadenas de L, es decir, L′ = {w ∶ wu ∈ L para alguna cadena u}. Demuestre que si

L es regular entonces L′ tambien lo es.

Solucion: La demostracion es por induccion sobre la definicion de lenguaje regular.

1. ∅′ = ∅ es un lenguaje regular.

2. {λ}′ = {λ} es un lenguaje regular.

22

Page 26: Libro t Computacion

5/8/2018 Libro t Computacion - slidepdf.com

http://slidepdf.com/reader/full/libro-t-computacion 26/59

 

3. {a}′ = {λ, a} es un lenguaje regular, para todo a ∈ Σ.

4. Supongamos que L1 y L2 son lenguajes regulares, tales que (L1)′ y (L2)′ tambien son

regulares. Entonces

a) (L1 ∪ L2)′ = {w ∶ (∃u) [wu ∈ L1 ∪ L2]}= {w ∶ (∃u) [wu ∈ L1] o [wu ∈ L2]}= {w ∶ (∃u) [wu ∈ L1]} ∪ {w ∶ (∃u) [wu ∈ L2]}= L′

1 ∪ L′2

b) (L1L2)′ = {w ∶ (∃u) [wu ∈ L1L2]}= w ∶ w ∈ L′

1 o w = xy,x ∈ L1, y ∈ L′2

= L′1 ∪ L1L′

2

c) (L∗1)

= i≥0Li1

= i≥0

Li1′ Por la parte a)

= {λ} ∪i≥1

Li1′

Utilizando la parte b) se tiene que (Li1)′ = L′

1∪ L1L′

1∪ L2

1L′1∪⋯ ∪ Li−1

1L′1. Por lo tanto

(L∗1)′ = {λ} ∪

i≥1

L′1 ∪ L1L′

1 ∪ L2

1L′1 ∪⋯ ∪ Li−1

1 L′1′

= {λ

} ∪L∗1L′

1

Ası L1 ∪ L2, L1L2 y L∗1 son regulares.

Un error habitual en la demostracion de la parte c) es el siguiente

(L∗1)′ =

i≥0

Li1

′ =i≥0

Li1′

De la parte b), se sabe que (Li1)′ es regular para todo i ≥ 0. Ası (L∗

1)′ es la union de lenguajes

regulares, por lo tanto es regular.

El error radica en extender la siguiente regla:

L1, L2 son regulares⇒ L1 ∪ L2 es regular.

23

Page 27: Libro t Computacion

5/8/2018 Libro t Computacion - slidepdf.com

http://slidepdf.com/reader/full/libro-t-computacion 27/59

 

a un hecho que no es cierto, como veremos mas adelante.

L1, L2, . . . son regulares⇒i≥0

Li es regular.

3.3. Ejercicios

1. Describa el lenguaje expresado por las siguientes expresiones regulares:

a ) (0∗1∗)∗0.

b) (01∗)∗0.

2. Simplifique las siguientes expresiones regulares:

a ) (00)∗0 ∪ (00)∗.

b) (0 ∪ 1)(λ ∪ 00)+ ∪ (0 ∪ 1).

c) (0 ∪ λ)0∗1.

3. Encontrar expresiones regulares para los lenguajes descritos a continuacion:

a ) Σ = {a,b,c}. Lenguaje de todas las cadenas que tienen un numero par de sımbolos.

b) Σ = {a,b,c}. Lenguaje de todas las cadenas que tienen un numero impar de sımbo-

los.

c) Σ = {a, b}. Lenguaje de todas las cadenas que tienen la cadena ab un numero par

de veces.

d ) Σ = {0, 1, 2}. Lenguaje de todas las cadenas que no contienen dos unos consecuti-

vos.

e) Σ

= {0, 1

}. Lenguaje de todas las cadenas cuyo quinto sımbolo, de izquierda a

derecha, es un 1.

 f ) Σ = {0, 1}. Lenguaje de todas las cadenas de longitud par ≥ 2 formadas por ceros

y unos alternados.

g ) Σ = {0, 1}. Lenguaje de todas las cadenas cuya longitud es ≤4.

h ) Σ = {0, 1}. Lenguaje de todas las cadenas de longitud impar que tienen unos

unicamente en las posiciones impares.

i ) Σ = {a, b}. Lenguaje de todas las cadenas cuya longitud es un multiplo de tres.

 j ) Σ

= {a, b

}. Lenguaje de todas las cadenas que no contienen tres ceros consecutivos.

k ) Σ = {0, 1}. Lenguaje de todas las cadenas que no contienen la subcadena 101.

l ) Σ = {0, 1}. Lenguaje de todas las cadenas que no contienen las subcadenas 000 y

111.

24

Page 28: Libro t Computacion

5/8/2018 Libro t Computacion - slidepdf.com

http://slidepdf.com/reader/full/libro-t-computacion 28/59

 

m ) Σ = {0, 1}. Lenguaje de todas las cadenas que no contienen la subcadena 010.

4. Sea

Σ3 =⎧⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎩

⎛⎜⎜⎜⎝0

0

0

⎞⎟⎟⎟⎠,

⎛⎜⎜⎜⎝0

0

1

⎞⎟⎟⎟⎠,

⎛⎜⎜⎜⎝0

1

0

⎞⎟⎟⎟⎠, . . . ,

⎛⎜⎜⎜⎝1

1

1

⎞⎟⎟⎟⎠

⎫⎪⎪⎪⎪⎪⎬⎪⎪⎪⎪⎪⎭Demuestre que

B = {w ∈ Σ∗3 ∶ la ultima fila de w es igual a la diferencia de las dos primeras filas}

es regular

5. Sea L un lenguaje regular. Demuestre que los siguiente regulares son tambien regulares.

a ) Limpar = {x ∈ L ∶ x es impar }.

b) L par = {x ∈ L ∶ x es par }.

c) L′′ = {u ∶ ∃v,uv ∈ L}.

6. Una expresion regular esta en forma normal disyuntiva si es de la forma α1 ∪ α2 ∪⋯ ∪ αn donde cada αi, para i = 1, 2, . . . , n, es una expresion regular que no contiene el

operador ∪. Demuestre que todo lenguaje regular tiene una expresion regular en forma

normal disyuntiva. (Sug: Usar induccion.)

25

Page 29: Libro t Computacion

5/8/2018 Libro t Computacion - slidepdf.com

http://slidepdf.com/reader/full/libro-t-computacion 29/59

 

Lectura 4

Automatas Finitos Deterministas

(AFD)

Contents

4.1. Automatas Finitos Deterministas (AFD) . . . . . . . . . . . . . . . . 264.1.1. Diagrama de Transicion de un Automata . . . . . . . . . . . . . . . . . 29

4.1.2. Lenguaje aceptado por un AFD . . . . . . . . . . . . . . . . . . . . . . 30

4.2. Ejemplos de Automatas Finitos Deterministas . . . . . . . . . . . . 33

4.3. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

4.4. Referencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

Los automatas finitos son modelos de maquinas abstractas que procesan cadenas de entrada,

leyendo un sımbolo a la vez; despues de leer toda la cadena decide si la acepta o rechaza.

El automata consiste de dos partes: una cinta semi-infinita, dividida en celdas, sobre la cualse escribe una cadena de entrada un sımbolo por casilla, y una cabeza lectora que tiene un

numero finito de configuraciones o estados, la cual escanea cada celda de la cinta de entrada,

leyendo el sımbolo de la celda, moviendose a la derecha y cambiando su configuracion interna,

ver figura 4.1. Despues de leer toda la cadena y dependiendo la configuracion con la que

finalice, decide si acepta la cadena o no.

4.1. Automatas Finitos Deterministas (AFD)

Formalmente se tiene que:

Definicion 4.1.1. Un automata finito determinista (AFD) M es una quintupla M =(Σ, Q , q0, F , δ), donde:

26

Page 30: Libro t Computacion

5/8/2018 Libro t Computacion - slidepdf.com

http://slidepdf.com/reader/full/libro-t-computacion 30/59

 

a1 a2 . . . ak . . . anCinta semi-infinita

Cabeza Lectora

q0q1

q2⋯qn

qn−1

Figura 4.1: Automata Finito

Σ es un alfabeto llamado alfabeto de cinta. Todas las cadenas que procesaM pertenecen

a Σ∗.

Q

= {q0, q1, . . . , qn

}es un conjunto de estados internos del automata.

q0 ∈ Q es el estado inicial.

F  ⊆ Q es un conjunto de estados finales o de aceptaci on. F  ≠ ∅.

La funcion de transicion del automata

δ ∶ Q × Σ→ Q

(q, a)→ δ (q, a)

Una cadena de entrada w ∈ Σ∗

se coloca en la cinta de tal manera que el primer sımbolo dew ocupa la primera casilla de la cinta. La cabeza lectora esta inicialmente en el estado q0

escaneando la primera celda, ver figura 4.2.

w

a1 a2 . . . an ≡↑

q0

Figura 4.2: Funcionamiento Automata

La funcion de transicion indica el estado al cual debe pasar la cabeza lectora, dependiendo el

sımbolo leıdo y de su estado actual. Es decir si δ(q, ai) = q′ esto significa que al leer el sımbolo

27

Page 31: Libro t Computacion

5/8/2018 Libro t Computacion - slidepdf.com

http://slidepdf.com/reader/full/libro-t-computacion 31/59

 

ai la cabeza lectora pasa del estado q al estado q′ y se desplaza hacia la derecha. Esta accion

constituye un paso computacional.

La cadena se procesa completamente ya que la funcion δ esta definida para toda pareja

(q, a) ∈ Q×Σ. Ademas, la cadena es aceptada por el automata si al terminar el procesamiento

de la cadena w la cabeza lectora queda en un estado de aceptacion. Por lo tanto el lenguaje

aceptado por el automataM, se denota por L

(M

)y es el conjunto de todas las cadenas

w de Σ∗ tal queM termina el procesamiento de w en un estado de aceptacion.

Ejemplo 4.1.2. Sea el automata M = (Σ, Q , q0, F , δ), donde Σ = {0, 1}, Q = {q0, q1, q2},

F  = {q2} y δ esta definida tabularmente por:

δ 0 1

q0 q0 q1

q1 q1 q2

q2 q2 q2

Por ejemplo el procesamiento de la cadena de entrada w

=10100 es el que se muestra en la

figura 4.3.

w

1 0 1 0 0 ≡↑

q0

q1

q1

q2

q2

Figura 4.3: Procesamiento Cadena w

Como q2 es un estado de aceptacion entonces la cadena w es aceptada por el automata. En

la figura 4.4 aparece el procesamiento de la cadena v = 01000.

v

0 1 0 0 0 ≡↑

q0

q0

q1

q1

q1

Figura 4.4: Procesamiento Cadena v

Como el estado q1 no es de aceptacion entonces la cadena es rechazada.

28

Page 32: Libro t Computacion

5/8/2018 Libro t Computacion - slidepdf.com

http://slidepdf.com/reader/full/libro-t-computacion 32/59

 

4.1.1. Diagrama de Transicion de un Automata

Un diagrama de transicion de un automataM es un tipo especial de grafo que sirve como una

forma alternativa de representarM. Especıficamente para un automataM = (Σ, Q , q0, F , δ)el diagrama de transicion deM es un grafo etiquetado o dirigido con Q vertices, donde cada

uno de los vertices del grafo esta etiquetado con cada uno de los estados de Q.

Es decir, si q ∈ Q este se representa por:q

Si q ∈ F  este se representa por: q

El estado inicial q0 se representa como:q

Ademas, si δ(q, a) = q′ entonces el diagrama de transicion tiene una arista que va del vertice

q al vertice q′ y esta etiquetada con el sımbolo a. Este se representa como:

q q′a

Es claro que una cadena w es aceptada por un automataM si y solo si existe una trayectoria

en el diagrama de transicion del automataM etiquetada con los sımbolos de w que comienza

en el vertice q0 y termina en un estado de aceptacion.

Ejemplo 4.1.3. El diagrama de transicion del automataM del ejemplo 4.1.2 es:

q0 q1

q2

0

1

1

0

0, 1

Figura 4.5: Diagrama de Transicion del AutomataM.

Observando el diagrama de transicion p odemos verificar que la entrada 0010110 es aceptada,

mientras que la cadena 001000 es rechazada. Es claro que L(M) = {w ∈ Σ∗ ∶ w1≥ 2}.

Ejemplo 4.1.4. Describa el lenguaje aceptado por el automataM sobre el alfabeto Σ = {a, b}que se muestra en el diagrama 4.6:

Solucion: El automataM rechaza todas las cadenas que inician con a. Una cadena w ∈ L(M)si w = bb∗ o si w = bau entonces u debe tener al menos una a o un numero par de a y tantas b’s

como quiera. Se concluye que el lenguaje aceptado porM es:

29

Page 33: Libro t Computacion

5/8/2018 Libro t Computacion - slidepdf.com

http://slidepdf.com/reader/full/libro-t-computacion 33/59

 

q0 q1

q3

q2

b b

b

a

a

a

a, b

Figura 4.6: Ejemplo 4.1.4.

L(M) = {w ∈ Σ∗ ∶ w = bu, tal que ua ≡ 0 mod 2}4.1.2. Lenguaje aceptado por un AFD

Para definir con exactitud el lenguaje aceptado o reconocido por M vamos a extender la

definicion de la funcion de transicion δ.

Definicion 4.1.5. SeaM = (Σ, Q , q0, F , δ) un AFD, la funcion de transicion δ ∶ Q ×Σ→ Q

se extiende a una funcion δ ∶ Q × Σ∗ → Q por medio de la siguiente definicion recursiva

⎧⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎩

δ(q, λ) = q,

δ(q, a) = δ(q, a),

δ(q,wa) = δ(δ(q, w), a),

para todo q ∈ Q, a ∈ Σ y w ∈ Σ∗.

Definicion 4.1.6. Sea M = (Σ, Q , q0, F , δ) un AFD, entonces el lenguaje aceptado porM esta definido como L(M) = w ∈ Σ∗ ∶ δ(q, w) ∈ F .

Ejemplo 4.1.7. Considere el AFD del ejemplo 4.1.4, verifiquemos si la cadena w = 1011 es

aceptada o rechazada por el AFD.

30

Page 34: Libro t Computacion

5/8/2018 Libro t Computacion - slidepdf.com

http://slidepdf.com/reader/full/libro-t-computacion 34/59

 

δ(q0, 1011) = δ(δ(q0, 101), 1)= δ(δ(δ(q0, 10), 1), 1)= δ(δ(δ(δ(q0, 1), 0), 1), 1)= δ(δ(δ(δ(δ(q0, λ), 1), 0), 1), 1)

= δ(δ(δ(δ(q0 , 1), 0), 1), 1)= δ(δ(δ(q1, 0), 1), 1)= δ(δ(q1, 1), 1)= δ(q2, 1)= q2 ∈ F 

Luego w = 1011 es aceptada por el AFD.

Proposicion 4.1.8. Sea M = (Σ,Q,q0, F , δ) un AFD, entonces δ(q,uv) = δ(δ(q, u), v), para 

toda  u, v

∈Σ∗ y  q

∈Q.

Demostraci´ on. El argumento es por induccion sobre v.Para v = 0, δ(q,uλ) = δ(δ(q, u), λ) = δ(q, u). Asumamos que se tiene para toda cadena v ∈ Σ∗,

entonces debemos probar para toda cadena va con a ∈ Σ.

δ(q,uva) = δ(δ(q,uv), a) Def. de δ.

= δ(δ(δ(q, u)v), a) Hipotesis de Induccion.

= δ(δ(q, u)va) Def. de δ.

Ejemplo 4.1.9. Describa el lenguaje aceptado por el automataM sobre el alfabeto Σ = {0, 1}que se muestra en el diagrama 4.7:

Solucion: El automataM acepta todas las cadenas que inician y finalizan con 0 . En efecto si

w ∈ L(M) debe iniciar y terminar en 0, ya que es la unica forma de llegar al estado q2, el cual

es el unico estado de aceptacion, luego w = 0u0, para algun u ∈ Σ∗. Recıprocamente, si w = 0u0,

entonces :

δ(q0, 0u0) = δ(δ(δ(δ(q0, λ)0), u), 0)= δ(δ(δ(q0, 0), u), 0)= δ(δ(q1, u), 0)= q2 ∈ F 

31

Page 35: Libro t Computacion

5/8/2018 Libro t Computacion - slidepdf.com

http://slidepdf.com/reader/full/libro-t-computacion 35/59

 

q0 q1

q3

q2

1 0

0

1

0

1

0, 1

Figura 4.7: Ejemplo 4.1.9.

Ası w = 0u0 ∈ L(M). Se concluye que el lenguaje aceptado porM es:

L(M) = {w ∈ Σ∗ ∶ w = 0u0, u ∈ Σ∗}Ejemplo 4.1.10. Disene un AFD que acepte el lenguaje que contiene la subcadena aa, sobre

el alfabeto Σ = {a,b,c}.

Solucion: Un automataM que acepte ese lenguaje debe cumplir que cuando lea dos as conse-cutivas llegue a un estado de aceptacion y de ahı no vuelva a salir. Se verifica que el automata

de la figura 4.8 acepta el lenguaje. Es decir

L(M) = {w ∈ Σ∗ ∶ w = uaav, u,v ∈ Σ∗}

q0 q1 q2

b, c a, b, c

a

b, c

a

Figura 4.8: Ejemplo 4.1.10.

Ejemplo 4.1.11. Disene un AFD que acepte el lenguaje L2, donde L es el lenguaje del

ejemplo 4.1.9.

Solucion: Es claro que L2 = {0u00v0 ∶ u, v ∈ Σ∗}. Se puede verificar facilmente que el automata

de la figura 4.9 acepta el lenguaje pedido. Es decir

L(M) = {0u00v0 ∶ u, v ∈ Σ∗}Ejemplo 4.1.12. Un AFD puede contar modulo un numero fijo. Por ejemplo el automata

de la figura 4.10 acepta todas las cadenas en 1∗ cuya longitud es multiplo de 4. Es decir

L(M) = {w ∈ 1∗ ∶ w ≡ 0 mod 4}.

32

Page 36: Libro t Computacion

5/8/2018 Libro t Computacion - slidepdf.com

http://slidepdf.com/reader/full/libro-t-computacion 36/59

 

q0 q1 q2 q3 q4

q5

1 1 0

0, 1

0

1

0

1

0

0

1

Figura 4.9: Ejemplo 4.1.11.

q0

q1

q2

q3

1 1

11

Figura 4.10: Ejemplo 4.1.12.

En general el automata de la izquierda de la figura 4.11 cumple que acepta las cadenas cuya

longitud es multiplo de un entero fijo n, es decir

L(M) = {w ∈ 1∗ ∶ w ≡ 0 mod n}Similarmente el AFD de la derecha de la figura 4.11, acepta todas las cadenas en {0

,1}

talque el numero de 1’s es un multiplo de un entero fijo n, es decir

L(M) = {w ∈ Σ∗ ∶ w1≡ 0 mod n}

4.2. Ejemplos de Automatas Finitos Deterministas

A continuacion presentamos otros ejemplos de AFD. En general estos ejemplos son de dos

tipos, el primero dado un lenguaje L disenar un AFDM que lo acepte; el segundo dado un

automataM determinar el lenguaje aceptado por M. Mas adelante se soluciona en general

estos dos problemas.

Para simplificar el diseno de los automatas en los diagramas de transicion solo apareceran

los arcos que intervengan en trayectorias de aceptacion, es decir si no aparece un arco es

33

Page 37: Libro t Computacion

5/8/2018 Libro t Computacion - slidepdf.com

http://slidepdf.com/reader/full/libro-t-computacion 37/59

 

q0

q1 q2

qn−2qn−1

q0

q1 q2

qn−2qn−1

1

1

1

1

1

1

1

1

0

0 0

0 0

Figura 4.11: Ejemplo 4.1.12.

porque este conduce a un estado ınutil´. Por ejemplo la version simplificada del automata de

la figura 4.6 aparece en la figura 4.12:

q0 q1 q2

b b

b

a

a

Figura 4.12: Ejemplo 4.1.4.

Ejemplo 4.2.1. Describa el lenguaje aceptado por el automataM sobre el alfabeto Σ = {a, b}que se muestra en el diagrama 4.13:

q0

q1

q2

q3

a

a

b

b

b

a

a, b

Figura 4.13: Ejemplo 4.2.1.

Solucion: Para acceder al estado q2 se debe partir de q0 y pasar por q1 o q3. Para llegar a q1 se

puede con una cadena de la forma

(a2

(b2

)∗

)∗a y para llegar a q3 se puede con una cadena de la

forma (b2(a2)∗)∗b. Por lo tanto el lenguaje aceptado porM es:

L(M) = (a2(b2)∗)∗a ∪ (b2(a2)∗)∗b

34

Page 38: Libro t Computacion

5/8/2018 Libro t Computacion - slidepdf.com

http://slidepdf.com/reader/full/libro-t-computacion 38/59

 

Ejemplo 4.2.2. Describa el lenguaje aceptado por el automataM sobre el alfabeto Σ = {0, 1}que se muestra en el diagrama 4.14:

q0 q1 q2 q3

0 0 0 0

1 1 1

1Figura 4.14: Ejemplo 4.2.2.

Solucion: Una cadena w es aceptada por M si w = 0∗ o si existe un computo cıclico de q0 a

q0, pasando por los estados q1, q2 y q3 un numero finito de veces. Ademas, el AFD M cambia

de un estado qi (0 ≤ i ≤ 2) a un estado qi+1 o de q3 a q0 si y solo si lee el sımbolo 1. Asimismo,

entre cada 1 que lea puede procesar tantos os como se quiera. Por lo tanto, w ∈ L(M) si y solo

si w1

es multiplo de 4. Ası:

L

(M

) = {w

∈Σ∗

∶ w

1

≡0 mod 4

} =0∗

(10∗10∗10∗10∗

)∗

Ejemplo 4.2.3. Describa el lenguaje aceptado por el automataM sobre el alfabeto Σ = {a, b}que se muestra en el diagrama 4.15:

q0

q1

q2

q3

a

a

b

b

b

ab

a

Figura 4.15: Ejemplo 4.2.3.

Solucion: Una cadena w es aceptada por M si y solo si tiene una cantidad par de as y una

cantidad par de bs. Ası:

L(M) = {w ∈ Σ∗ ∶ wa ≡ 0 mod 2, wb ≡ 0 mod 2}Ejemplo 4.2.4. Disene un AFD que acepte el lenguaje de todas las cadenas que tienen como

prefijo la cadena 010, sobre el alfabeto Σ = {0, 1}.

Solucion: Un automataM que acepte ese lenguaje debe cumplir que cuando lea una cadena

que inicie con 010 la acepte, de lo contrario sea rechazada. Se verifica que el aut omata de la

figura 4.16 acepta el lenguaje.

35

Page 39: Libro t Computacion

5/8/2018 Libro t Computacion - slidepdf.com

http://slidepdf.com/reader/full/libro-t-computacion 39/59

 

q0 q1 q2 q3

0, 1

0 1 0

Figura 4.16: Ejemplo 4.2.4.

Ejemplo 4.2.5. Disene un AFD que acepte el lenguaje de todas las cadenas que tienen como

sufijo la cadena 101, sobre el alfabeto Σ = {0, 1}.

Solucion: Un automataM que acepte ese lenguaje debe cumplir que cuando lea la subcadena

101 llegue a un estado de aceptacion; si no hay mas sımbolos debe ser aceptada, si aparece el

sımbolo 0 debe devolverse un estado, ya que en ese momento se ha computado una cadena de la

forma u1010 con u ∈ Σ∗; si en cambio el sımbolo siguiente es 1 debe devolverse dos estados, ya

que en ese momento se ha computado una cadena de la forma u1011. Con estas condiciones se

verifica que el automata de la figura 4.17 acepta el lenguaje.

q0 q1 q2 q3

0 1

1 0 1

0 0

1

Figura 4.17: Ejemplo 4.2.5.

Ejemplo 4.2.6. Disene un AFD que acepte el lenguaje de todas las cadenas binarias que

representan enteros positivos congruentes con cero modulo 5.

Solucion: La idea de un automataM que acepte ese lenguaje es que tenga 5 estados principales

q0, q1, q2, q3 y q4 donde cada estado qi significa que el prefijo y de la cadena leıda hasta el momento

satisface que y ≡ i mod 5. Ası que necesitamos definir δ (q0, x1⋯xk) = qi si x1⋯xk ≡ i mod 5.

Como δ (δ (q0, x) , a) = δ (q0, xa) para toda cadena x y a ∈ {0, 1}. Supongamos que δ(q0, x) = qi

y δ(q0, xa) = q j, entonces se tiene que:

x ≡ i mod 5 xa ≡ j mod 5

Como

xa = 2nxn + 2n−1xn−1 +⋯2x1 + a = 22n−1xn + 2n−2xn−1 +⋯x1 + a = 2x + a

36

Page 40: Libro t Computacion

5/8/2018 Libro t Computacion - slidepdf.com

http://slidepdf.com/reader/full/libro-t-computacion 40/59

 

ası

 j ≡ 2x + a mod 5

≡ 2i + a mod 5

Por lo tanto δ(qi, a) = q j donde j ≡ 2i+a mod 5. Ası por ejemplo δ(q0, 1) = q1 y δ(q3, 0) = q1. Se

verifica que el automata de la figura 4.18 acepta el lenguaje.

q0

q1

q2

q3

q4

q

1

01

1

0

1

0

1

0

0

1

Figura 4.18: Ejemplo 4.2.6.

4.3. Ejercicios

1. Considere el AFDM de la figura 4.19.

a ) Determine si las cadenas 001, 010101, 0011101011101 son aceptadas o no p or el

automata.

b) Del conjunto de cadenas (01)∗, cuales pertenecen a L(M).

2. Sean n, d ∈ Z+, considere un AFDMn,d = (Q,σ,δ,q0, F ) donde Q = {q0, q1, . . . , qn−1} , Σ ={a0, a1, . . . , an−1} , δ (qi, ak) = q(di+k)mod n y F  = {q1}.

a ) Dibuje el diagrama transicion deM7,2.

b) Suponga que n

=7, d

=2, a0

=0 y a1

=1, encuentre δ

(q3, 0101

)y δ

(q1, 11010

).

c) Suponga que n = 7, d = 2, a0 = 0 y a1 = 1, encuentre todas las cadenas binarias u y

v tales que δ(q0, u) = q5 y δ(q0, v) = q6.

37

Page 41: Libro t Computacion

5/8/2018 Libro t Computacion - slidepdf.com

http://slidepdf.com/reader/full/libro-t-computacion 41/59

 

q0 q1 q2 q3

q4 q5

0

1

0

11

1

1

0

0

1

0

01

Figura 4.19: AFD Ejercicio 1.

d ) Demuestre que para todo estado q j ∈ Q, existe una cadena w ∈ Σ∗ tal que δ(q0, x) =q j.

3. Disenar AFD que acepten los siguientes lenguajes:

a ) Σ = {a, b}. Lenguaje de las cadenas sobre Σ que contienen exactamente una a .

b) Σ = {a, b}. Lenguaje de las cadenas sobre Σ que contienen exactamente dos as y

mas de dos bs.

c) Σ = {0, 1}. Lenguaje de las cadenas sobre Σ de longitud impar.

d ) Σ = {0, 1}. Lenguaje de las cadenas sobre Σ que inician con 10 y terminan con 01.

e) Σ = {0, 1}. Lenguaje de las cadenas sobre Σ que contienen un numero impar de 0s.

 f ) Σ = {0, 1}. Lenguaje de las cadenas binarias w que satisfacen que w1+ 2 w

0es

divisible por 5.

g ) Σ = {1, 2, 3}. Lenguaje de las cadenas sobre Σ en la cual la suma de todos su

sımbolos es divisible por 5.

h ) Σ = {0, 1, 2}. Lenguaje de las cadenas sobre Σ las cuales son la expansion ternaria

(base 3) de los enteros positivos que son congruentes a 2 modulo 7.

i ) Σ = {0, 1}. Lenguaje de las cadenas sobre Σ tal que toda subcadena 010 es seguida

inmediatamente por la subcadena 111.

 j ) Σ = {a, b}. Para cada combinacion de las condiciones “par” e “impa” y las condi-

ciones “o” e “y”, disenar un AFD que acepte el lenguaje de las cadenas con un

numero par/impar de as y/o un numero par/impar de bs.

k ) Σ = {a, b}. Que acepte el lenguaje L = ab∗ ∪ ab∗a.

l ) Σ = {a, b}. Que acepte el lenguaje L = ab3

wb2

∶ w ∈ Σ∗

.m ) Σ = {a, b}. Que acepte el lenguaje L = {abnam ∶ n ≥ 2, m ≥ 3}.

n ) Σ = {a, b}. Que acepte el lenguaje L = {w1aw2 ∶ w1 ≥ 3, w2 ≤ 5}.

38

Page 42: Libro t Computacion

5/8/2018 Libro t Computacion - slidepdf.com

http://slidepdf.com/reader/full/libro-t-computacion 42/59

 

4. Determinar los lenguajes por los siguientes AFD. Puede utilizar una expresion regular

o una propiedad caracterıstica.

a ) .

q0 q1

1

0

0

b) .

q0

q1

q2

0

1

1

0

c) .

q0 q1

q2

q3

q4

a

a

b

b

bb

4.4. Referencias

Un texto introductorio y bueno para una primera lectura acerca de este tema es [1, 5, 4]. Un

texto recomendado por la profundidad de sus ejemplos es [2]. Un texto para profundizar en

este tema es [6].

39

Page 43: Libro t Computacion

5/8/2018 Libro t Computacion - slidepdf.com

http://slidepdf.com/reader/full/libro-t-computacion 43/59

 

Lectura 5

Automatas Finitos No

Deterministas (AFND)

Contents

5.1. Automatas Finitos No Deterministas (AFN) . . . . . . . . . . . . . 405.1.1. Lenguaje aceptado por un AFD . . . . . . . . . . . . . . . . . . . . . . 42

5.2. Ejemplos de AFN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

5.3. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

Los automatas finitos no deterministas (AFN) son un modelo similar a los AFD, la diferencia

radica en que un estado tiene 0, 1 o mas posibilidades para cambiar de estado. Ademas, tiene

una clase especial de transiciones llamadas transiciones λ, las cuales permiten pasar de un

estado a otro sin consumir el sımbolo.

5.1. Automatas Finitos No Deterministas (AFN)

Formalmente se tiene que:

Definicion 5.1.1. Un automata finito no determinista (AFND) M es una quintupla

M = (Σ, Q , q0, F, ∆), donde:

Σ es un alfabeto llamado alfabeto de cinta. Todas las cadenas que procesa M  pertenecen

a Σ∗.

Q = {q0, q1, . . . , qn} es un conjunto de estados internos del automata.

q0 ∈ Q es el estado inicial.

F  ⊆ Q es un conjunto de estados finales o de aceptaci on. F  ≠ ∅.

40

Page 44: Libro t Computacion

5/8/2018 Libro t Computacion - slidepdf.com

http://slidepdf.com/reader/full/libro-t-computacion 44/59

 

La funcion de transicion del automata

∆ ∶ Q × (Σ ∪ {λ})→℘(Q)(q, a) →∆(q, a) = {qi1 , . . . , qik}

El significado de ∆ (q, a) = {qi1, . . . , qik} es que estando en el estado q y leyendo el sımbolo

a, la cabeza lectora puede pasar a uno cualquiera de los estados qi1 , . . . , qik y se desplaza a

la derecha. En el caso que ∆ (q, a) = ∅, esto significa que estando en el estado q y leyendo el

sımbolo a el computo se aborta.

El significado de ∆ (q, λ) = {qi1, . . . , qik} es que estando en el estado q y sin importar el

sımbolo que se este leyendo, la cabeza lectora puede pasar a uno cualquiera de los estados

qi1, . . . , qik sin desplazarse a la derecha. En el caso que ∆ (q, λ) = ∅, esto significa que no hay

transiciones λ.

El diagrama transicion de un AFN se define de forma analoga, la unica diferencia es que de

un vertice pueden salir mas de una arista etiquetadas con un sımbolo, ver figura 5.1 a), otambien puede pasar que no salgan aristas marcadas con algun sımbolo. Las transiciones λ

se simbolizan como en la figura 5.1 b).

a)

q0

qi1

qi2

qif 

a

a

a

b)

q0

qi1

qi2

qif 

λ

λ

λ

Figura 5.1: Diagrama Transicion de un AFN

Un AFN puede tener mas de una forma para procesar una cadena. Si al menos uno de estos

computos finaliza en un estado de aceptacion, entonces la cadena es aceptada por el AFN,

por lo tanto el lenguaje aceptado por un automata M, denotado por L(M), es el conjunto

de todas las cadenas w ∈ Σ∗ tal que M termina al menos un procesamiento completo de w

en un estado de aceptacion.

Ejemplo 5.1.2. Sea el automataM = (Σ, Q , q0, F, ∆), donde Σ = {0, 1}, Q = {q0, q1, q2, q3, q4},

F  = {q0, q3} y ∆ esta definida tabularmente por:

41

Page 45: Libro t Computacion

5/8/2018 Libro t Computacion - slidepdf.com

http://slidepdf.com/reader/full/libro-t-computacion 45/59

 

∆ 0 1 λ

q0 {q1} ∅ {q2}q1 {q0, q2} {q0, q2, q3} ∅q2 {q4} {q1, q3} ∅q3 {q3} ∅ ∅q4 ∅ {q2} ∅

El diagrama transicion correspondiente es:

q0

q1 q3

q2 q4

0

0, 1

λ

0, 11

1

0

1

1

0

Figura 5.2: Diagrama Transicion Ejemplo 5.1.2.

Por ejemplo el procesamiento de la cadena de entrada w = 01101 tiene varias opciones, por

ejemplo el computo de la figura 5.3 a) es un c omputo abortado, el de la figura 5.3 b) es un

computo aceptado, al igual que el de la grafica 5.3 d) y el computo de la figura 5.3 c) es

rechazado.

5.1.1. Lenguaje aceptado por un AFD

Para definir con exactitud el lenguaje aceptado o reconocido por M vamos a extender la

definicion de la funcion de transicion ∆ de manera analoga como se hizo en la definicion 4.1.5

.

Definicion 5.1.3. SeaM = (Σ, Q , q0, F, ∆) un AFN, la λ−clausurade q, notada como λ [q], es

el conjunto de estados deM a los que se puede llegar desde q por cero, uno o mas transiciones

λ. Es decir:

λ [q] ∶= { p ∈ Q ∶ p = q, o (∃q0, q1, . . . , qm) [q0 = q, qm = p, y qi+1 ∈ ∆(qi, λ), i = 0, . . . , m − 1]}La λ−clausura de A ⊆ Q se define como

λ [A] ∶= q∈Aλ [q]Definicion 5.1.4. Sea M = (Σ, Q , q0, F, ∆) un AFN, la funcion de transicion ∆ ∶ Q × (Σ ∪

42

Page 46: Libro t Computacion

5/8/2018 Libro t Computacion - slidepdf.com

http://slidepdf.com/reader/full/libro-t-computacion 46/59

 

w

0 1 1 0 1 ≡↑

q0

q1

q3

w

0 1 1 0 1 ≡↑

q0

q1

q0

↕q2

q1

q2

q3

w

0 1 1 0 1 ≡

↕q2

q0

q4

q2

q1

q2

q1

w

0 1 1 0 1 ≡

 

q0

q4

q2

↕q2

q1

q2

q3

Figura 5.3: Procesamientos Cadena w

{λ})→℘(Q) se extiende a una funcion ∆′ ∶ ℘(Q) × (Σ ∪ {λ}) →℘(Q)

∆′(A, a) →∆′(A, a) = λ

⎡⎢⎢⎢⎢⎣ q∈λ[A]

∆(q, a)⎤⎥⎥⎥⎥⎦

para todo a ∈ Σ.

Definicion 5.1.5. Sea M = (Σ, Q , q0, F,

∆) un AFN, la funcion de transicion ∆

∶℘

(Q

) ×(Σ ∪ {λ}) → ℘(Q) se extiende a una funcion ∆ ∶ ℘(Q) × Σ∗ → ℘(Q) de la siguiente

manera

⎧⎪⎪⎪⎨⎪⎪⎪⎩ ∆(A, λ) = λ [A] ∆(A,wa) = ∆′  ∆(A, w), a

para todo a ∈ Σ y w ∈ Σ∗.

Definicion 5.1.6. SeaM = (Σ, Q , q0, F, ∆) un AFN, entonces el lenguaje aceptado por

M esta definido como L

(M

) = w

∈Σ∗

∶ ∆

({q0

}, w

)⋂F 

≠ ∅.

43

Page 47: Libro t Computacion

5/8/2018 Libro t Computacion - slidepdf.com

http://slidepdf.com/reader/full/libro-t-computacion 47/59

 

5.2. Ejemplos de AFN

Ejemplo 5.2.1. Un AFN que acepta el lenguaje del ejemplo 4.1.9 se muestra en la figura

5.4

q0 q1 q2

0, 1

0 0

Figura 5.4: Ejemplo 5.2.1.

Ejemplo 5.2.2. Un AFN que acepta el lenguaje del ejemplo 4.1.10 se muestra en la figura

5.5

q0 q1 q2

a, b, c a, b, c

a a

Figura 5.5: Ejemplo 5.2.2.

Ejemplo 5.2.3. Un AFN que acepta el lenguaje del ejemplo 4.1.11 se muestra en la figura

5.6

q0 q1 q2 q3 q4

0, 1 0, 1

0 0 0 0

Figura 5.6: Ejemplo 5.2.3.

Ejemplo 5.2.4. Disene un AFN que acepte el lenguaje de todas las cadenas que comienzan

con 101 o finalizan con 001, sobre el alfabeto Σ = {0, 1}.

Solucion: El automata de la figura 5.7 a) acepta las cadenas que comienzan con 101. El automa-

ta de la figura 5.7 b) acepta las cadenas que finalizan con 001. La uni on de estos dos automatas

(figura 5.7 c)) es el automata pedido, este se obtiene con dos transiciones λ que salen del estado

inicial y se conectan con cada uno de los dos aut omatas anteriores.

Ejemplo 5.2.5. LIBRO JAPONESES

44

Page 48: Libro t Computacion

5/8/2018 Libro t Computacion - slidepdf.com

http://slidepdf.com/reader/full/libro-t-computacion 48/59

 

q0 q1 q2 q3

0, 1

1 0 1

q0 q1 q2 q3

0, 1

0 0 1

q0

q00 q01 q02 q03

q10 q11 q12 q13

0, 1

0, 1

1 0 1

λ

λ

0 0 1

Figura 5.7: Ejemplo 5.2.4.

5.3. Ejercicios

45

Page 49: Libro t Computacion

5/8/2018 Libro t Computacion - slidepdf.com

http://slidepdf.com/reader/full/libro-t-computacion 49/59

 

Lectura 6

Equivalencia entre AFD y AFN

Contents

6.1. Eliminacion Transiciones λ . . . . . . . . . . . . . . . . . . . . . . . . . 46

En principio los AFD parecen tener una mayor capacidad computacional, es decir pareciera

que aceptaran lenguajes que los AFD no pueden aceptar, sin embargo, como se va a mostrar

en esta lectura, estos dos modelos computacionales son equivalentes. Para probar esto, vasta

con mostrar un algoritmo para convertir un AFN a un AFD, ya que es claro que todo AFD

es un AFN.

Definicion 6.0.1. Dos automatasM1 yM2 son equivalentes si L(M1) = L(M2).

6.1. Eliminacion Transiciones λ

En esta seccion vamos a mirar un algoritmo que elimina las transiciones λ.

46

Page 50: Libro t Computacion

5/8/2018 Libro t Computacion - slidepdf.com

http://slidepdf.com/reader/full/libro-t-computacion 50/59

 

Lectura 7

Gramaticas Regulares

Los automatas son dispositivos que procesan cadenas de entrada, sin embargo, existen otros

tipos de mecanismos que generan cadenas a partir de un sımbolo inicial, las gramaticas

generativas. A continuacion presentaremos un tipo de gramatica generativa, denominada

gramatica independiente del contexto.

Definicion 7.0.1. Una gramatica independiente del contexto (GIC), es una cuadrupla,

G = (V, Σ,S,P ), donde:

V  es un alfabeto, cuyos elementos se llaman variables o sımbolos no terminales.

Σ es un alfabeto, cuyos elementos se llaman sımbolos terminales. Σ y V  son disyuntos.

S ∈ V  es una variable especial, llamada sımbolo inicial de la gramatica.

Un conjunto finito P  ⊆ V  × (V  ∪ Σ)∗ de producciones o reglas de re-escritura. Una

produccion (A, w) ∈ P  de G se denota por A→ w y se lee “A produce w”; su significadoes: la variable A se puede reemplazar (sobre-escribir) por la cadena w. En la produccion

A→ w, A se denomina la cabeza y w el cuerpo de la produccion.

Las variables se denotan con letras mayusculas A , B , C , . . . Los elementos de Σ o sımbo-

los terminales se denotan con letras minusculas a,b,c,.... Si u, v ∈ (V  ∪ Σ)∗ y A → w es

una produccion, de dice que uwv se deriva directamente de uAv, lo cual se denota por

uAv⇒ uwv. Si se quiere hacer referencia a la gramatica G, se escribe uAvG⇒ uwv.

Si u1, u2, . . . , un son cadenas en

(V 

∪Σ

)∗ y hay una sucesion de derivaciones directas

u1

G⇒ u2, u2

G⇒ u3, . . . , un−1

G⇒ un

47

Page 51: Libro t Computacion

5/8/2018 Libro t Computacion - slidepdf.com

http://slidepdf.com/reader/full/libro-t-computacion 51/59

 

se dice que un se deriva de u1 y se escribe u1

∗⇒ un. La anterior sucesion de derivaciones

directas se representa como

u1 ⇒ u2⇒ u3 ⇒ ⋯⇒ un−1⇒ un

y se dice que es una derivacion o una generacion de un a partir de u1. Para toda cadena w

se asume que w∗⇒ w; por lo tanto, u

∗⇒ v significa que v se obtiene de u utilizando cero,

uno o mas producciones de la gramatica. Analogamente, u+

⇒ v significa que v se obtienede u utilizando uno o mas producciones de la gramatica.

El lenguaje generado por una gramatica G se denota por L (G) y se define como

L (G) ∶= w ∈ Σ∗ ∶ S +⇒ w .

Un lenguaje L sobre un alfabeto Σ se dice que es un lenguaje independiente del contexto

(LIC) si existe una GIC G tal que L (G) = L.

Existe un tipo de particular de GIC, llamadas gramaticas regulares, las cuales son impor-

tantes ya que un lenguaje es regular si y solo si es generado por una gramatica regular.

Definicion 7.0.2. Una GIC G = (V, Σ, S , P  ) se dice regular por la derecha si todas las

producciones son de la forma

A→ vB,

A→ v

donde A, B

∈V  y v

∈Σ∗. Una GIC G

= (V, Σ, S , P  

)se dice regular por la izquierda si

todas las producciones son de la forma

A→ Bv,

A→ v

donde A, B ∈ V  y v ∈ Σ∗.

Una gramatica es regular si es una gramatica regular por la derecha o regular por la izquierda,

[2] .

Teorema 7.0.3. Un lenguaje es regular si y s´ olo si es generado por una gram´ atica regular.

Demostraci´ on. Ver [2].

Los lenguajes regulares en general se pueden caracterizar a partir de las expresiones regulares,

para lo cual se utilizan las expresiones regulares basicas y las operaciones union, concatenacion

48

Page 52: Libro t Computacion

5/8/2018 Libro t Computacion - slidepdf.com

http://slidepdf.com/reader/full/libro-t-computacion 52/59

 

y estrella de Kleene. Tambien, se pueden caracterizar a partir de automatas finitos (teorema

??) o de gramaticas regulares (teorema 7.0.3).

Esto se resume en la siguiente cuadro.

Lenguajes

Regulares

Automatas

Finitos

Gramaticas

Regulares

Expresiones

Regulares

49

Page 53: Libro t Computacion

5/8/2018 Libro t Computacion - slidepdf.com

http://slidepdf.com/reader/full/libro-t-computacion 53/59

 

Lectura 8

Soluciones a algunos ejercicios

8.1. Soluciones Lectura 1

1. Dar una definicion recursiva de uR.

Solucion:

uR ∶= ⎧⎪⎪⎪⎨⎪⎪⎪⎩λ, si u = λ

avR, si u = va

para todo a ∈ Σ y v ∈ Σ∗.

2. Demostrar que para todo u, v ∈ Σ∗, (uv)R = vRuR.

Solucion: Por induccion sobre v. Si v = 0, entonces v = λ. Ası, (uλ)R = uR = λRuR =vRuR. Asumamos que se tiene para toda cadena v ∈ Σ∗, entonces debemos probarla para

toda cadena va con a ∈ Σ.

(uva)R = a(uv)R Def. de inversa de una cadena.

= avRuR Hipotesis de induccion.

= (va)RuR Def. de inversa de una cadena.

3. Demostrar que para todo u ∈ Σ∗, (uR)R = u.

Solucion: Por induccion sobre u. Si u = 0, entonces (λR)R = λR = λ. Asumamos que se

tiene para toda cadena u ∈ Σ∗, entonces debemos probarla para toda cadena ua con a ∈ Σ.

((ua

)R

)R

= (auR

)R Def. de inversa de una cadena.

= (uR)Ra Def. de inversa de una cadena.

= ua Hipotesis de induccion.

50

Page 54: Libro t Computacion

5/8/2018 Libro t Computacion - slidepdf.com

http://slidepdf.com/reader/full/libro-t-computacion 54/59

 

4. Sean x,y,u,v ∈ Σ∗ − {λ} tales que xy = uv y x ≤ u. Demostrar que existe una cadena

z ∈ Σ∗ tal que u = xz y y = zv.

Solucion:Por hipotesis xy = uv y x ≤ u, entonces x es un prefijo de u, por lo tanto

u = xz con z ∈ Σ∗. Ası xy = xzv, por lo tanto y = zv.

5. Sean x, y ∈ Σ∗−{λ} tales que xm = yn para m, n > 0. Demostrar que x y y son potencias

de la misma cadena z.

Solucion:Si m = 1 o n = 1 se tiene claramente la conclusion. Supongamos que m, n ≥ 2entonces xm = m x y yn = n y y por hipotesis m x = n y > x + y, de lo contrario si

x + y ≥ m xy ≥ (m − 1) x⇒ y ≥ x

Analogamente se prueba que x ≥ y. Entonces y = x, luego m = n y x + y = 2 x ≥m x, es decir 2 x = m x, lo cual es contradictorio.

Por lo tanto xm y yn tiene un prefijo comun de longitud mayor o igual que x + y,ası por el teorema 1.5.2 existe z

∈Σ∗ tal que x

=z p y y

=zq .

6. Sea Σ = {a, b}. Demostrar que no existen cadenas x, y ∈ Σ∗ tales que xay = ybx.

Solucion:Supongamos que existen cadenas x, y ∈ Σ∗ tales que xay = ybx. si x = y,entonces a = b lo cual es contradictorio. Supongamos que x < y entonces y = xat, t ∈ Σ∗

y y = t′bx, t ∈ Σ∗. Luego xat′bx = xatbx, t = t′, ası xat = t′bx. Se repite este procedimiento

hasta concluir que ua = bu o au = ub con u ∈ Σ∗ lo cual no puede suceder.

7. Se define la funcion f  ∶ Σ∗ → Σ∗ por

f (λ) = λ

f (ax) = xa,

para todo x ∈ Σ∗ y a ∈ Σ.

a ) Demuestre que f  es biyectiva.

Solucion:

b) Demuestre que f x(xy) = yx para todo x, y ∈ Σ∗. Concluya que f x(x) = x para

todo x ∈ Σ∗.

c) Dos cadenas x, y ∈ Σ∗ son conjugadas si existen cadenas u, v ∈ Σ∗ tales que x = uv

y y

=vu. Demuestre que x, y

∈Σ∗ son conjugadas si y solo si x

=f n

(y

)para algun

entero n ≥ 0.

8. Utilice el Principio de Induccion para Cadenas, para demostrar que para todo x ∈ Σ∗,

si xa = ax , con a ∈ Σ, entonces existe un entero m ≥ 0, tal que x = am.

51

Page 55: Libro t Computacion

5/8/2018 Libro t Computacion - slidepdf.com

http://slidepdf.com/reader/full/libro-t-computacion 55/59

 

Solucion:Sea L = {x ∈ A∗ ∶ xa = ax implica que x = am para algun m ∈ N}. λ ∈ L ya que

λa = aλ y λ = a0. Supongamos que x ∈ L y consideremos la cadena y = xa. si ya ≠ ay

entonces la implicacion se tiene trivialmente, ası y ∈ L. Si ya = ay, entonces xaa = axa

ası xa = ax, lo cual implica que x = am. Ası y = xa = am+1, luego y ∈ L. Ası por el principio

de induccion para cadenas 1.5.1 L = Σ∗.

8.2. Solucion Ejercicios Lectura 21. Sea Σ = {a, b}. Encuentre una cadena que este y otra que no, en el lenguaje L ⊆ Σ∗,

donde L es:

a ) wwRw ∶ w ∈ ΣΣ.

Solucion: w = ab, entonces abbaab ∈ L, es claro que si w ∈ L entonces w = 6. Por

otro lado a ∉ L, o cualquier cadena de longitud mayor de 6.

b) w ∈ Σ∗ ∶ w2 = w3.

Solucion: λ ∈ L, ademas es la unica cadena. Por otro lado a ∉ L, o cualquier cadena

diferente de λ.c) w ∈ Σ∗ ∶ w3 = v2, v ∈ Σ∗.

Solucion: w = aa ∈ L con v = aaa. Por otro lado, w = a ∉ L ya que no existe una

cadena v tal que v2 = aaa.

d ) {w ∈ Σ∗ ∶ uvw = wuv,u,v ∈ Σ∗}.

Solucion: Cualquier cadena sobre Σ pertenece al lenguaje, escogiendo u, v ∈ λ, por

lo tanto no existen cadenas que no pertenezcan al lenguaje sobre Σ.

2. ¿Si A = n ≥ 0 y B = m ≥ 0 entonces AB = nm?. Solucion:No, sean A = {a,aa} y

B

= {aa,aaa

}entonces AB

= {aaa,aaaa, aaaaa

}, entonces

A

=2,

B

=2 y

AB

=3.

3. Encuentre la cadena de menor longitud sobre el alfabeto Σ = {0} que no pertenece a

{λ, 0, 00, 00000}3. Solucion:013

4. Dar un ejemplo de un alfabeto Σ y dos lenguajes diferentes A, B sobre Σ tales que

AB = BA. Solucion:Cualquier par de lenguajes sobre un alfabeto de una solo sımbolo.

5. Para cada una de las siguientes afirmaciones, decida si es verdadera o no. Justifique su

respuesta.

Para todo lenguaje L se tiene que:

a ) L∗ = L∗

.

Solucion:Falso. Por ejemplo λ ∈ L∗ ⇒ λ ∉ L∗, pero λ ∈ L∗

.

52

Page 56: Libro t Computacion

5/8/2018 Libro t Computacion - slidepdf.com

http://slidepdf.com/reader/full/libro-t-computacion 56/59

 

b) LR = LR

.

Solucion:Verdadero. Como Σ = (Σ∗)R, es decir toda cadena es la inversa de alguna

cadena. Sea

w ∈ LR⇔ w ∉ LR

⇔ w ≠ lR ∀l ∈ L

⇔w

= (l′

)R para algun l′

∈L

⇔ w ∈ LR

c) LLR ∪LRL = Σ∗.

Solucion:Falso. En efecto, sea L = {a,ab} sobre Σ = {a, b}, entonces LR = {a,ba},

ası LLR = {aa,aba, abba} y LRL = {aa,aab,baa,baab}. Luego LLR ∪LRL ⊂ Σ∗.

d ) LL ∪LL = Σ∗.

Solucion:Falso. En efecto, sea L = {0} sobre Σ = {0}, entonces L = Σ∗ − {0},

ası λ ∉ LL = {0, 000, 0000, 00000, . . .} = LL ⊂ Σ∗.

e) Si L∗1 = L∗2, entonces L1 = L2 para todo lenguaje L1 y L2.Solucion:Falso. En efecto, sean L1 = {0} y L2 = {0, 00}, entonces L∗

1= L∗

2.

 f ) AB = A B.

Solucion:Falso. En efecto, sean A = {0} y B = {0, 1} sobre Σ = {0, 1}, entonces

AB = {00, 01}⇒ AB = Σ∗ − {00, 01} , A = Σ∗ − {0} y B = Σ∗ − {0, 1}. Ası 00 ∈ A B

pero 00 ∉ AB.

6. Dar un ejemplo de un alfabeto Σ y tres lenguajes diferentes A,B,C  sobre Σ tales que

A(B ∩C ) ≠ AB ∩AC . Una de la dos concatenaciones siguientes es verdadera y la otra

es falsa. Demostrar o refutar, segun sea el caso:

a ) A(B ∩C ) ⊆ AB ∩AC . Solucion:Verdadero. En efecto, sea

w ∈ A(B ∩C )⇒ w = uv, u ∈ A y v ∈ B ∩C 

⇒ w = uv, u ∈ A, v ∈ B y v ∈ C 

⇒ w = uv ∈ AB y w = uv ∈ AC 

⇒ w ∈ AB ∩AC 

b) AB ∩AC ⊆ A(B ∩C ). Solucion:Falso. Por ejemplo sean Σ = {a} , A = {λ, a} , B ={λ} y C  = {a}, entonces A(B ∩ C ) = A∅ = ∅. Por otro lado, AB = {λ, a} y AC  ={a,aa}, luego AB ∩AC = {a}.

7. Verifique que en general las siguientes igualdades no se tienen para cualquier lenguaje

53

Page 57: Libro t Computacion

5/8/2018 Libro t Computacion - slidepdf.com

http://slidepdf.com/reader/full/libro-t-computacion 57/59

 

A y B sobre Σ.

a ) (A ∪AR)∗ = A∗ ∪ (A∗)R.

Solucion:Sean Σ = {0, 1} , A = {01} , AR = {10} entonces A ∪AR = {01, 10} , (A ∪AR)∗ = {λ, 01, 10, 0110, 0101, 1010, 1001, . . .} , A∗ = {λ, 01, 0101, 010101, . . .} y B∗ ={λ, 10, 1010, 101010, . . .}, ası 0110 ∉ A∗ ∪ (A∗)R pero 0110 ∈ (A ∪AR)∗.

b) A2 ∪B2 = (A ∪B)2Solucion:Sean Σ = {a, b} , A = {a} , B = {b} entonces A2 = {aa} , B2 = {bb} , A2 ∪B2 = {aa,bb} y (A ∪B)2 = {aa,ab,ba,bb}, ası A2 ∪B2 ≠ (A ∪B)2.

c) A∗ ∩B∗ = (A ∩B)∗Solucion:Sean Σ = {a, b} , A = {a,ab} , B = {a, b} entonces A∩B = {a} , ab ∈ A∗∩B∗

pero ab ∉ (A ∩B)∗.

8. Sean A,B,C,D lenguajes sobre Σ, demuestre que

a ) Para k ≥ 1,⋃ki=0 Ai = ({λ} ∪A)k.

Solucion:Induccion sobre k. Para k

=1 es claro.

Asumamos que se tiene para k, entonces debemos probarla para k + 1.

({λ} ∪ A)k+1 =({λ} ∪ A)k({λ} ∪ A)=({λ} ∪ A)k ∪ ({λ} ∪ A)kA

= k

i=0

Aik+1

i=1

Ai

= k+1

i=0

Ai

b) Si λ ∉ A, entonces para n ≥ 1, (A

+

)n

= A

n

A

.Solucion:Induccion sobre n. Para n = 1 es claro.

Asumamos que se tiene para n, entonces debemos probarla para n + 1.

(A+)n+1 =A+(A+)n=AA∗AnA∗

=AAnA∗A∗

=An+1A∗

c) A(BA)∗

= (AB

)A.

54

Page 58: Libro t Computacion

5/8/2018 Libro t Computacion - slidepdf.com

http://slidepdf.com/reader/full/libro-t-computacion 58/59

 

Solucion:

A(BA)∗ = A {λ}} ∪ BA ∪ (BA)2 ∪ (BA)3 ∪⋯= A ∪ABA ∪A(BA)2 ∪A(BA)3 ∪⋯

Ademas se tiene que

A(BA)i = A(BA)(BA)⋯(BA)= (AB)(AB)⋯(AB)A

= (AB)iAluego

A(BA)∗ = A {λ}} ∪BA ∪ (BA)2 ∪ (BA)3 ∪⋯= A ∪ABA ∪A(BA)2 ∪A(BA)3 ∪⋯

Solucion:

9. ¿Son los siguientes conjuntos cerrados para las operaciones que aparecen?.

a ) El lenguaje {a, b} respecto a la concatenacion.

b) Las cadenas de longitud impar sobre el alfabeto {a, b} respecto a la estrella de

Kleene.

c) L

= w

∈ {a, b

}∗

respecto a el inverso.

d ) L = w ∈ {a, b}∗ ∶ w comienza con a respecto a el inverso.

e) L = w ∈ {a, b}∗ ∶ w finaliza con a respecto la concatenacion.

Solucion:

10. Sea L = w ∈ {a, b}∗ ∶ w = wR. Encuentre Chop(L). Solucion:

55

Page 59: Libro t Computacion

5/8/2018 Libro t Computacion - slidepdf.com

http://slidepdf.com/reader/full/libro-t-computacion 59/59

 

Bibliografıa

[1] Rodrigo De Castro, Teorıa de la computaci´ on, lenguajes, aut´ omatas, gram´ aticas, Univer-

sidad Nacional de Colombia, 2004.

[2] Ding-Zhu Du and Ker-I Ko, Problem solving in automata, languages, and comnplexity ,

Jhon Wiley & Sons, 2001.

[3] Dexter Koxen, Automata and computability , Undergraduate Text in Computer Science,

Springer, 1997.

[4] Peter Linz, An introduction to formal languages and automata , 4 ed., Jones and Bartlett

Publishers, 2006.

[5] Elaine Rich, Automata, computability and comnplexity, theroy and aplications, Pearson,

Prentice Hall, 2008.

[6] Jeffrey Shallit, A second course in formal languages and automata theory , Cambridge

University Press, 2008.

[7] Dan Simovici and Richard Tenney, Theory of formal languages with applications, World

Scientific, 1999.

56