1. ´
Teor´a de la Computacion
ı
´
Lenguajes, automatas, gram´ ticas
a
Rodrigo De Castro Korgi
´
Ph.D. en Matematicas
University of Illinois, U.S.A.
´
Departamento de Matematicas
´
Universidad Nacional de Colombia, Bogota
2. Teor´ de la Computaci´n
ıa
o
Lenguajes, aut´matas, gram´ticas
o
a
c
Universidad Nacional de Colombia
Facultad de Ciencias
Juan Manuel Tejeiro, Decano
Natalia Ruiz, Vicedecana Acad´mica
e
Gustavo Rubiano, Director de Publicaciones
c
Rodrigo De Castro Korgi
Profesor Asociado
Departamento de Matem´ticas
a
Primera edici´n, 2004
o
A
Diagramaci´n en L TEX realizada por el autor
o
Impresi´n:
o
UNIBIBLOS
Universidad Nacional de Colombia
Bogot´ D.C., 2004
a
3. ´
Indice general
Pr´logo
o
1
Introducci´n. ¿Qu´ es la Teor´ de la Computaci´n?
o
e
ıa
o
3
1. Alfabetos, cadenas y lenguajes
1.1. Alfabetos y cadenas . . . . . . . . . .
1.2. Concatenaci´n de cadenas . . . . . . .
o
1.3. Potencias de una cadena . . . . . . . .
1.4. Longitud de una cadena . . . . . . . .
1.5. Reflexi´n o inversa de una cadena . . .
o
1.6. Subcadenas, prefijos y sufijos . . . . .
1.7. Lenguajes . . . . . . . . . . . . . . . .
1.8. Operaciones entre lenguajes . . . . . .
1.9. Concatenaci´n de lenguajes . . . . . .
o
1.10. Potencias de un lenguaje . . . . . . . .
1.11. La clausura de Kleene de un lenguaje
1.12. Reflexi´n o inverso de un lenguaje . .
o
1.13. Lenguajes regulares . . . . . . . . . . .
1.14. Expresiones regulares . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2. Aut´matas finitos
o
2.1. Aut´matas finitos deterministas (AFD) . . . . . . . .
o
2.2. Diagrama de transiciones de un aut´mata . . . . . . .
o
2.3. Dise˜o de aut´matas . . . . . . . . . . . . . . . . . . .
n
o
2.4. Aut´matas finitos no-deterministas (AFN) . . . . . . .
o
2.5. Equivalencia computacional entre los AFD y los AFN
2.6. Aut´matas con transiciones λ (AFN-λ) . . . . . . . .
o
iii
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5
5
7
8
8
9
9
10
11
12
14
14
17
18
19
.
.
.
.
.
.
25
25
28
29
33
38
43
4. iv
´
INDICE GENERAL
2.7. Equivalencia computacional entre los AFN-λ y los AFN
2.8. Teorema de Kleene. Parte I . . . . . . . . . . . . . . . .
2.9. Ejemplos de la parte I del Teorema de Kleene . . . . . .
2.10. Lema de Arden . . . . . . . . . . . . . . . . . . . . . . .
2.11. Teorema de Kleene. Parte II . . . . . . . . . . . . . . . .
2.12. Ejemplos de la parte II del Teorema de Kleene . . . . .
3. Otras propiedades de los lenguajes regulares
3.1. Lema de bombeo . . . . . . . . . . . . . . . .
3.2. Propiedades de clausura . . . . . . . . . . . .
3.3. Propiedades de clausura para aut´matas . . .
o
3.4. Homomorfismos
. . . . . . . . . . . . . . .
3.5. Imagen inversa de un homomorfismo
. . .
3.6. Algoritmos de decisi´n . . . . . . . . . . . . .
o
4. Lenguajes y gram´ticas independientes del
a
4.1. Gram´ticas generativas . . . . . . . . . . .
a
4.2. Gram´ticas independientes del contexto . .
a
´
4.3. Arbol de una derivaci´n . . . . . . . . . . .
o
4.4. Gram´ticas ambiguas . . . . . . . . . . . .
a
4.5. Gram´ticas para lenguajes de programaci´n
a
o
4.6. Gram´ticas para lenguajes naturales . . .
a
4.7. Gram´ticas regulares . . . . . . . . . . . . .
a
4.8. Eliminaci´n de las variables in´tiles . . . .
o
u
4.9. Eliminaci´n de las producciones λ . . . . .
o
4.10. Eliminaci´n de las producciones unitarias .
o
4.11. Forma Normal de Chomsky (FNC) . . . . .
4.12. Forma Normal de Greibach (FNG)
. . .
4.13. Lema de bombeo para LIC . . . . . . . . .
4.14. Propiedades de clausura de los LIC . . . . .
4.15. Algoritmos de decisi´n para GIC . . . . . .
o
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
contexto
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
5. Aut´matas con pila
o
5.1. Aut´matas con Pila Deterministas (AFPD) .
o
5.2. Aut´matas con pila no-deterministas (AFPN)
o
5.3. Aceptaci´n por pila vac´ . . . . . . . . . . .
o
ıa
5.4. Aut´matas con pila y LIC. Parte I. . . . . . .
o
5.5. Aut´matas con pila y LIC. Parte II.
o
. . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
47
49
52
55
57
58
.
.
.
.
.
.
.
.
.
.
.
.
63
63
67
69
72
74
75
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
81
81
82
88
91
94
96
98
102
107
110
113
120
125
130
135
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
143
143
149
154
157
160
5. v
´
INDICE GENERAL
6. M´quinas de Turing
a
6.1. M´quinas de Turing como aceptadoras de lenguajes . . . . .
a
6.2. Subrutinas o macros . . . . . . . . . . . . . . . . . . . . . .
6.3. M´quinas de Turing como calculadoras de funciones . . . .
a
6.4. M´quinas de Turing como generadoras de lenguajes . . . . .
a
6.5. Variaciones del modelo est´ndar de MT . . . . . . . . . . .
a
6.5.1. Estado de aceptaci´n unico . . . . . . . . . . . . . .
o ´
6.5.2. M´quina de Turing con cinta dividida en pistas . . .
a
6.5.3. M´quina de Turing con m´ltiples cintas . . . . . . .
a
u
6.5.4. M´quinas de Turing no-deterministas (MTN) . . . .
a
6.6. Simulaci´n de aut´matas por medio de m´quinas de Turing
o
o
a
6.6.1. Simulaci´n de aut´matas . . . . . . . . . . . . . . .
o
o
6.6.2. Simulaci´n de aut´matas con pila . . . . . . . . . . .
o
o
6.7. Aut´matas con dos pilas (AF2P) . . . . . . . . . . . . . .
o
6.8. Propiedades de clausura . . . . . . . . . . . . . . . . . . . .
6.9. MT, computadores, algoritmos y la tesis de Church-Turing
6.9.1. M´quinas de Turing y algoritmos . . . . . . . . . . .
a
6.9.2. M´quinas de Turing y computadores . . . . . . . . .
a
167
167
174
176
179
180
180
181
181
183
186
186
186
188
193
198
198
199
7. Problemas indecidibles
7.1. Codificaci´n y enumeraci´n de m´quinas de Turing
o
o
a
7.2. M´quina de Turing universal . . . . . . . . . . . .
a
7.3. Algoritmos de aceptaci´n para lenguajes RE . . . .
o
7.4. Lenguajes que no son RE . . . . . . . . . . . . . .
7.5. Lenguajes RE no recursivos . . . . . . . . . . . . .
7.6. Problemas indecidibles o irresolubles . . . . . . . .
201
201
206
209
211
212
215
Bibliograf´
ıa
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
221
7. ´
Prologo
Este libro contiene lo m´
ınimo que los estudiantes de las carreras de ingenier´ de sistemas y de matem´ticas deber´ saber sobre los fundamentos
ıa
a
ıan
matem´ticos de la teor´ de la computaci´n. Est´ basado en el material
a
ıa
o
a
de clase utilizado por el autor durante los ultimos a˜os en la Universidad
´
n
Nacional de Colombia, sede de Bogot´.
a
A estudiantes y profesores
El libro est´ escrito tanto para estudiantes de matem´ticas —quienes, es
a
a
de suponer, tienen m´s experiencia con razonamientos abstractos y demosa
traciones— como para estudiantes de ingenier´ Es el profesor quien debe
ıa.
establecer el tono del curso, enfatizando ya sea el rigor matem´tico o una
a
presentaci´n m´s intuitiva y pr´ctica. Los resultados est´n presentados en
o
a
a
a
forma de teoremas, corolarios y lemas, con sus respectivas demostraciones;
´stas pueden omitirse, si as´ lo estima el profesor. En los cursos dirigidos
e
ı
a estudiantes de ingenier´ de sistemas, el ´nfasis debe residir —tanto por
ıa
e
parte del profesor como por parte del estudiante— en los ejemplos y ejercicios pr´cticos; hay que resaltar m´s el significado de los enunciados que
a
a
sus demostraciones formales. El libro contiene gran cantidad de ejemplos y
problemas resueltos, con aplicaciones o ilustraciones directas de la teor´
ıa.
Como prerrequisito, es imprescindible que el estudiante haya tomado al
menos un curso de matem´ticas discretas en el que se haya familiarizado
a
con las nociones b´sicas y la notaci´n de la teor´ intuitiva de conjuntos,
a
o
ıa
grafos, inducci´n matem´tica y l´gica elemental. La experiencia previa en
o
a
o
programaci´n es muy util pero, de ninguna manera, necesaria.
o
´
El material se presenta en secciones relativamente cortas, lo que permite
alguna flexibilidad en la selecci´n de los t´picos del curso. As´ si el tiempo
o
o
ı,
1
8. 2
´
PROLOGO
disponible no es holgado, o no es posible avanzar con la velocidad suficiente,
podr´ suprimirse las secciones demarcadas con el s´
ıan
ımbolo .
Casi todas las secciones poseen ejercicios, de variada dificultad; los m´s
a
dif´
ıciles est´n precedidos de un s´
a
ımbolo de admiraci´n ! y podr´ ser consio
ıan
derados opcionales. Es responsabilidad del estudiante resolver los ejercicios
que sean asignados por el profesor. La unica manera de aprender y asimilar
´
las ideas y t´cnicas presentadas en la clase es trabajar seria y completae
mente los ejercicios.
Material de apoyo en la red
Versiones preliminares de estas notas aparecieron, de forma incompleta,
en el curso virtual de Teor´ de la Computaci´n perteneciente al programa
ıa
o
Universidad Virtual de la la Universidad Nacional de Colombia. Es la intenci´n del autor mantener y actualizar permanentemente la versi´n virtual
o
o
interactiva de este curso, con material de apoyo como temas y ejercicios
nuevos, correcci´n de errores, software, enlaces a otra p´ginas Web, etc. Se
o
a
puede acceder libremente al curso virtual en el portal
http://www.virtual.unal.edu.co/
siguiendo los enlaces: Cursos–Facultad de Ciencias–Matem´ticas–Teor´ de
a
ıa
la Computaci´n.
o
Agradecimientos
Durante la elaboraci´n de estas notas he recibido por parte de estudiantes
o
atentos muchas observaciones utiles que han ayudado a mejorar sustan´
cialmente la presentaci´n. Quiero expresarles mis agradecimientos a todos
o
ellos, demasiado numerosos para mencionarlos individualmente.
La primera versi´n del curso virtual fue realizada con la ayuda del eso
tudiante de posgrado Adolfo Reyes, a quien expreso mi gratitud y reconocimiento. Para la preparaci´n de la presente versi´n tuve la suerte de
o
o
contar con la colaboraci´n del estudiante de matem´ticas Camilo Cubides,
o
a
con quien estoy muy agradecido por la calidad y seriedad de su trabajo.
Finalmente, quiero agradecer a Gustavo Rubiano, Director de las oficina
de publicaciones de la Facultad de Ciencias, por su continuo apoyo y su
cooperaci´n desinteresada.
o
9. ´
Introduccion
¿Qu´ es la Teor´ de la Computaci´n?
e
ıa
o
La Teor´ de la Computaci´n estudia modelos abstractos de los dispositivos
ıa
o
concretos que conocemos como computadores, y analiza lo que se puede y no
se puede hacer con ellos. Este estudio te´rico se inici´ varias d´cadas antes
o
o
e
de la aparici´n de los primeros computadores reales y contin´a creciendo,
o
u
a medida que que la computaci´n incrementa su sofisticaci´n.
o
o
Entre los muchos t´picos que conforman la teor´ de la computaci´n,
o
ıa
o
s´lo tendremos la oportunidad de tratar someramente los dos siguientes:
o
Modelos de computaci´n. Las investigaciones en este campo comenzao
ron en la d´cada de los 30 del siglo XX con el trabajo del l´gico norteamee
o
ricano Alonzo Church (1903–1995) y del matem´tico brit´nico Alan Turing
a
a
(1912–1954). Church introdujo el formalismo conocido como c´lculo-λ y
a
enunci´ la tesis —hoy conocida como tesis de Church— de que las funcioo
nes efectivamente computables, es decir, computables por cualquier m´todo
e
computacional concebible, son exactamente las funciones λ-computables.
En contraste con el enfoque m´s abstracto de Church, Turing (quien fue
a
alumno doctoral de Church en la universidad de Princeton) propuso un
modelo concreto de m´quina computadora, hoy conocida como la m´quina
a
a
de Turing, capaz de simular las acciones de cualquier otro dispositivo f´
ısico
de computaci´n secuencial.
o
Curiosamente, las propuestas de Church y Turing se publicaron exactamente en el mismo a˜o: 1936. Los dos formalismos resultaron ser equivalenn
tes y, desde entonces, se han propuesto muchos otros modelos de computaci´n. Como todos han resultados ser equivalentes entre s´ ha ganado
o
ı,
3
10. 4
´
INTRODUCCION
aceptaci´n universal la tesis de Church-Turing: no hay modelo de compuo
taci´n m´s general ni poderoso que la m´quina de Turing.
o
a
a
En los a˜os 40 y 50 del siglo XX se adelantaron investigaciones sobre
n
m´quinas de Turing con capacidad restringida, surgiendo as´ la noci´n de
a
ı
o
m´quina de estado finito o aut´mata finito (“aut´mata” es sin´nimo de
a
o
o
o
“m´quina de c´mputo autom´tico”). Los aut´matas han resultado ser moa
o
a
o
delos muy utiles para el dise˜o de diversos tipos de software y hardware.
´
n
Lenguajes y gram´ticas formales. Una l´
a
ınea investigativa, aparentemente alejada de los modelos de computaci´n, surgi´ con los estudios del
o
o
ling¨ista norteamericano Noam Chomsky1 . Chomsky introdujo en 1956 la
u
noci´n de gram´tica generativa con el prop´sito de describir los lenguajes
o
a
o
naturales como el espa˜ol, el ingl´s, el franc´s, etc. Chomsky clasific´ las
n
e
e
o
gram´ticas en cuatro tipos, dependiendo de la forma de sus producciones,
a
que son las reglas que utiliza una gram´tica para generar palabras o caa
denas de s´
ımbolos. Pocos a˜os despu´s se estableci´ que hay una estrecha
n
e
o
relaci´n entre aut´matas y gram´ticas: los lenguajes de la llamada jerarqu´
o
o
a
ıa
de Chomsky corresponden a los lenguajes que pueden ser reconocidos por
tipos especiales de aut´matas.
o
La interacci´n entre los aut´matas (mecanismos para procesar cadeo
o
nas de s´
ımbolos) y las gram´ticas (mecanismos para generar cadenas de
a
s´
ımbolos) es una fuente de resultados profundos y significativos. Desde la
aparici´n de los influyentes textos de Hopcroft y Ullman ([HU1], 1969) y
o
([HU2], 1979), un curso semestral b´sico de teor´ de la computaci´n se
a
ıa
o
ha centrado en el estudio de aut´matas y gram´ticas. Estas notas de clase
o
a
reflejan esa tradici´n.
o
1
En el a˜ o 2002, la Universidad Nacional de Colombia otorg´ el doctorado Honoris
n
o
Causa a Noam Chomsky.
11. Cap´tulo
ı
1
Alfabetos, cadenas y lenguajes
De manera muy amplia podr´ decirse que la computaci´n es la manipulaıa
o
ci´n de secuencias de s´
o
ımbolos. Pero el n´mero de s´
u
ımbolos disponibles en
cualquier mecanismo de c´mputo es finito y todos los objetos usados como
o
entradas o salidas (inputs/outputs) deben ser identificados en un tiempo
finito. Desde el punto de vista te´rico esto impone dos restricciones b´sicas:
o
a
el conjunto de s´
ımbolos (alfabeto) debe ser finito y se deben considerar uni´
camente cadenas (secuencias de s´
ımbolos) de longitud finita. Surgen as´ los
ı
ingredientes esenciales de una teor´ abstracta de la computaci´n: alfabeıa
o
tos y cadenas. Los conjuntos de cadenas (ya sean finitos o infinitos) se
denominar´n lenguajes.
a
1.1.
Alfabetos y cadenas
Un alfabeto es un conjunto finito no vac´ cuyos elementos se llaman
ıo
s´
ımbolos. Denotamos un alfabeto arbitrario con la letra Σ.
Una cadena o palabra sobre un alfabeto Σ es cualquier sucesi´n (o
o
secuencia) finita de elementos de Σ. Admitimos la existencia de una unica
´
cadena que no tiene s´
ımbolos, la cual se denomina cadena vac´ y se
ıa
denota con λ. La cadena vac´ desempe˜a, en la teor´ de la computaci´n,
ıa
n
ıa
o
un papel similar al del conjunto vac´ ∅ en la teor´ de conjuntos.
ıo
ıa
§
¤
¦
¥b. Las siguientes son cadenas sobre Σ:
Ejemplo
Sea Σ = {a, b} el alfabeto que consta de los dos s´
ımbolos a y
aba
ababaaa
aaaab.
5
12. 6
CAP´
ITULO 1. ALFABETOS, CADENAS Y LENGUAJES
Obs´rvese que aba = aab. El orden de los s´
e
ımbolos en una cadena es significativo ya que las cadenas se definen como sucesiones, es decir, conjuntos
secuencialmente ordenados.
§
¤
¦
¥cadenas sobre este alfabeto son secuencias finitas de ceros y
Ejemplo
El alfabeto Σ = {0, 1} se conoce como alfabeto binario. Las
unos, llamadas secuencias binarias, tales como
001
1011
001000001.
§
¤
¦
¥idioma castellano. Las palabras oficiales del castellano (las que
Ejemplo
Σ = {a, b, c, . . . , x, y, z, A, B, C, . . . , X, Y, Z}, el alfabeto del
aparecen en el diccionario DRA) son cadenas sobre Σ.
§
¤
¦
¥programaci´n (como Pascal o C) es el conjunto de caracteo
Ejemplo
El alfabeto utilizado por muchos de los llamados lenguajes de
res ASCII (o un subconjunto de ´l) que incluye, por lo general, las letras
e
may´sculas y min´sculas, los s´
u
u
ımbolos de puntuaci´n y los s´
o
ımbolos matem´ticos disponibles en los teclados est´ndares.
a
a
El conjunto de todas las cadenas sobre un alfabeto Σ, incluyendo la
cadena vac´ se denota por Σ∗ .
ıa,
§
¤
¦
¥
Ejemplo
Sea Σ = {a, b, c}, entonces
Σ∗ = {λ, a, b, c, aa, ab, ac, ba, bb, bc, ca, cb, cc, aaa, aab, abc, baa, . . .}.
En la siguiente tabla aparece la notaci´n corrientemente utilizada en la
o
teor´ de la computaci´n. De ser necesario, se emplean sub´
ıa
o
ındices.
Σ, Γ
Notaci´n usada en la teor´ de la computaci´n
o
ıa
o
denotan alfabetos.
Σ∗
denota el conjunto de todas las cadenas que se
pueden formar con los s´
ımbolos del alfabeto Σ.
a, b, c, d, e,. . .
denotan s´
ımbolos de un alfabeto.
u, v, w, x, y, z, . . .
α, β, γ, . . .
denotan cadenas, es decir, sucesiones finitas de
s´
ımbolos de un alfabeto.
λ
denota la cadena vac´ es decir, la unica cadena
ıa,
´
que no tiene s´
ımbolos.
A, B, C, . . . , L, M, N ,. . . denotan lenguajes (definidos m´s adelante).
a
13. ´
1.2. CONCATENACION DE CADENAS
Algunos autores denotan la cadena vac´ con la letra griega ε.
ıa
Preferimos denotarla con λ porque ε tiende a confundirse con el
s´
ımbolo ∈ usado para la relaci´n de pertenencia.
o
Si bien un alfabeto Σ es un conjunto finito, Σ∗ es siempre un
conjunto infinito (enumerable). En el caso m´s simple, Σ contiene
a
∗ = {λ, a, aa, aaa, aaaa, aaaaa, . . .}.
solo un s´
ımbolo, Σ = {a}, y Σ
Hay que distinguir entre los siguientes cuatro objetos, que son
todos diferentes entre s´ ∅, λ, {∅} y {λ}.
ı:
7
La mayor parte de la teor´ de la computaci´n se hace con refeıa
o
rencia a un alfabeto Σ fijo (pero arbitrario).
1.2.
Concatenaci´n de cadenas
o
Dado un alfabeto Σ y dos cadenas u, v ∈ Σ∗ , la concatenaci´n de u y v
o
se denota como u · v o simplemente uv y se define descriptivamente as´
ı:
1. Si v = λ, entonces u · λ = λ · u = u. Es decir, la concatenaci´n de
o
cualquier cadena u con la cadena vac´ a izquierda o a derecha, es
ıa,
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 escribiendo los s´
ımbolos de u y a
continuaci´n los s´
o
ımbolos de v.
La concatenaci´n de cadenas se puede definir inductiva o recursivamente
o
de la siguiente manera. Si u, v ∈ Σ∗ , a ∈ Σ, entonces
1. u · λ = λ · u = u.
2. u · (va) = (u · v)a.
Propiedad. La concatenaci´n de cadenas es una operaci´n asociativa. Es
o
o
decir, si u, v, w ∈ Σ∗ , entonces
(uv)w = u(vw).
Demostraci´n. Se puede hacer escribiendo expl´
o
ıcitamente las cadenas u, v,
w y usando la definici´n descriptiva de concatenaci´n. Tambi´n se puede dar
o
o
e
una demostraci´n inductiva usando la definici´n recursiva de concatenaci´n
o
o
o
(ejercicio opcional).
14. 8
CAP´
ITULO 1. ALFABETOS, CADENAS Y LENGUAJES
1.3.
Potencias de una cadena
Dada u ∈ Σ∗ y n ∈ N, se define (descriptivamente) un en la siguiente forma
u0 = λ,
un = uu · · · u .
n veces
Como ejercicio, el estudiante puede dar una definici´n recursiva de un .
o
1.4.
Longitud de una cadena
La longitud de una cadena u ∈ Σ∗ se denota |u| y se define como el n´mero
u
de s´
ımbolos de u (contando los s´
ımbolos repetidos). Es decir,
|u| =
0, si u = λ,
n, si u = a1 a2 · · · an .
§
¤
¦
¥
§
¤
¦
¥Esta no es una propiedad realmente importante (¡no la usare-
Ejemplo
Ejemplo
|aba| = 3, |baaa| = 4.
Si w ∈ Σ∗ , n, m ∈ N, demostrar que |wn+m | = |wn | + |wm |.
mos nunca en este libro!); la presentamos aqu´ para enfatizar los conceptos
ı
involucrados e ilustrar los razonamientos estrictos.
Soluci´n.
o
Caso n, m ≥ 1. |wn+m | = | ww · · · w | = (n + m)|w|. Por otro
n+m veces
lado,
|wn | + |wm | = | ww · · · w | + | ww · · · w | = n|w| + m|w|.
n veces
m veces
Caso n = 0, m ≥ 1. |wn+m | = |w0+m | = |wm |. Por otro lado,
|wn | + |wm | = |w0 | + |wm | = |λ| + |wm | = 0 + |wm | = |wm |.
Caso m = 0, n ≥ 1. Similar al caso anterior.
Caso n = 0, m = 0. |wn+m | = |w0+0 | = |λ| = 0. Por otro lado,
|wn | + |wm | = |w0 | + |w0 | = |λ| + |λ| = 0 + 0 = 0.
15. ´
1.5. REFLEXION O INVERSA DE UNA CADENA
1.5.
9
Reflexi´n o inversa de una cadena
o
La reflexi´n o inversa de una cadena u ∈ Σ∗ se denota uR y se define
o
descriptivamente as´
ı:
uR =
λ,
si u = λ,
an · · · a2 a1 , si u = a1 a2 · · · an .
De la definici´n se observa claramente que la reflexi´n de la reflexi´n de
o
o
o
una cadena es la misma cadena, es decir,
(uR )R = u,
para u ∈ Σ∗ .
Algunos autores escriben u−1 en lugar de uR para denotar la reflexi´n de una cadena u.
o
§
¤
¦
¥
Ejercicios de la secci´n 1.5
o
Œ Dar una definici´n recursiva de uR .
o
Si u, v ∈ Σ∗ , demostrar que (uv)R = v R uR . Generalizar esta propiedad a la concatenaci´n de n cadenas.
o
1.6.
Subcadenas, prefijos y sufijos
Una cadena v es una subcadena o una subpalabra de u si existen cadenas
x, y tales que u = xvy. N´tese que x o y pueden ser λ y, por lo tanto,
o
la cadena vac´ es una subcadena de cualquier cadena y toda cadena es
ıa
subcadena de s´ misma.
ı
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 = u.
Similarmente, un sufijo de u es una cadena v tal que u = wv para
alguna cadena w ∈ Σ∗ . Se dice que v es un sufijo propio si v = u.
Obs´rvese que λ es un prefijo y un sufijo de toda cadena u ya que
e
uλ = λu = u. Por la misma raz´n, toda cadena u es prefijo y sufijo de
o
s´ misma.
ı
§
¤
¦
¥
Ejemplo
Sean Σ = {a, b, c, d} y u = bcbaadb.
16. 10
CAP´
ITULO 1. ALFABETOS, CADENAS Y LENGUAJES
Prefijos de u :
λ
b
bc
bcb
bcba
bcbaa
bcbaad
bcbaadb
1.7.
Sufijos de u :
λ
b
db
adb
aadb
baadb
cbaadb
bcbaadb
Lenguajes
Un lenguaje L sobre un alfabeto Σ es un subconjunto de Σ∗ , es decir
L ⊆ Σ∗ .
Casos extremos:
L = ∅,
L = Σ∗ ,
lenguaje vac´
ıo.
lenguaje de todas las cadenas sobre Σ.
Todo lenguaje L satisface ∅ ⊆ L ⊆ Σ∗ , y puede ser finito o infinito. Los
lenguajes se denotan con letras may´sculas A, B, C, . . . , L, M, N, . . .. En la
u
siguiente gr´fica se visualizan dos lenguajes A y B sobre Σ.
a
Σ∗
B
A
§
¤
¦
¥especificados.
Ejemplos
Los siguientes son ejemplos de lenguajes sobre los alfabetos
Σ = {a, b, c}. L = {a, aba, aca}.
Σ = {a, b, c}. L = {a, aa, aaa, . . .} = {an : n ≥ 1}.
17. 1.8. OPERACIONES ENTRE LENGUAJES
11
Σ = {a, b, c}. L = {λ, aa, aba, ab2 a, ab3 a, . . .} = {abn a : n ≥ 0} ∪ {λ}.
Σ = {a, b, c, . . . , x, y, z, A, B, C, . . . , X, Y, Z}. L = {u ∈ Σ∗ : u aparece
en el diccionario espa˜ol DRA}. L es un lenguaje finito.
n
Σ = {a, b, c}. L = {u ∈ Σ∗ : u no contiene el s´
ımbolo c}. Por ejemplo,
abbaab ∈ L pero abbcaa ∈ L.
/
Σ = {0, 1}. L = conjunto de todas las secuencias binarias que contienen un n´mero impar de unos.
u
Σ = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}. El conjunto N de los n´meros naturales
u
se puede definir como un lenguaje sobre Σ, en la siguiente forma:
N = {u ∈ Σ∗ : u = 0 ´ 0 no es un prefijo de u}.
o
Como ejercicio, el estudiante puede definir el conjunto de los enteros Z =
{. . . , −2, −1, 0, 1, 2, . . .} como un lenguaje sobre un alfabeto adecuado.
1.8.
El concepto abstracto de “lenguaje”, tal como se ha definido, no es
exactamente la misma noci´n utilizada en la expresi´n “lenguaje
o
o
de programaci´n”. Para precisar la relaci´n entre estos conceptos,
o
o
consideremos el alfabeto Σ de los caracteres ASCII. Un programa
en C o en Pascal, por ejemplo, es simplemente una cadena de
s´
ımbolos de Σ y, por lo tanto, un conjunto de programas es un
lenguaje (en el sentido formal definido en esta secci´n).
o
Operaciones entre lenguajes
Puesto que los lenguajes sobre Σ son subconjuntos de Σ∗ , las operaciones
usuales entre conjuntos son tambi´n operaciones v´lidas entre lenguajes.
e
a
As´ si A y B son lenguajes sobre Σ (es decir A, B ⊆ Σ∗ ), entonces los
ı,
siguientes tambi´n son lenguajes sobre Σ:
e
A∪B
A∩B
A−B
A = Σ∗ − A
Uni´n
o
Intersecci´n
o
Diferencia
Complemento
Estas operaciones entre lenguajes se llaman operaciones conjuntistas o booleanas para distinguirlas de las operaciones ling¨´
uısticas (concatenaci´n, poo
tencia, inverso, clausura) que son extensiones a los lenguajes de las operaciones entre cadenas.
18. 12
CAP´
ITULO 1. ALFABETOS, CADENAS Y LENGUAJES
1.9.
Concatenaci´n de lenguajes
o
La concatenaci´n de dos lenguajes A y B sobre Σ, notada A · B o simo
plemente AB se define como
AB = {uv : u ∈ A, v ∈ B}.
En general, AB = BA.
§
¤
¦
¥
Ejemplo
Si Σ = {a, b, c}, A = {a, ab, ac}, B = {b, b2 }, entonces
AB = {ab, ab2 , ab2 , ab3 , acb, acb2 }.
BA = {ba, bab, bac, b2 a, b2 ab, b2 ac}.
§
¤
¦
¥
Ejemplo
Si Σ = {a, b, c}, A = {ba, bc}, B = {bn : n ≥ 0}, entonces
AB = {babn : n ≥ 0} ∪ {bcbn : n ≥ 0}.
BA = {bn ba : n ≥ 0} ∪ {bn bc : n ≥ 0}
= {bn+1 a : n ≥ 0} ∪ {bn+1 c : n ≥ 0}
= {bn a : n ≥ 1} ∪ {bn c : n ≥ 1}.
Propiedades de la concatenaci´n de lenguajes. Sean A, B, C lenguao
∗ . Entonces
jes sobre Σ, es decir A, B, C ⊆ Σ
1. A · ∅ = ∅ · A = ∅.
2. A · {λ} = {λ} · A = A.
3. Propiedad Asociativa,
A · (B · C) = (A · B) · C.
4. Distributividad de la concatenaci´n con respecto a la uni´n,
o
o
A · (B ∪ C) = A · B ∪ A · C.
(B ∪ C) · A = B · A ∪ C · A.
5. Propiedad distributiva generalizada. Si {Bi }i∈I es una familia cualquiera de lenguajes sobre Σ, entonces
A·
(A · Bi ),
Bi =
i∈I
i∈I
Bi · A =
i∈I
(Bi · A).
i∈I
19. ´
1.9. CONCATENACION DE LENGUAJES
13
Demostraci´n.
o
1. A · ∅ = {uv : u ∈ A, v ∈ ∅} = ∅.
2. A · {λ} = {uv : u ∈ A, v ∈ {λ}} = {u : u ∈ A} = A.
3. Se sigue de la asociatividad de la concatenaci´n de cadenas.
o
4. Caso particular de la propiedad general, demostrada a continuaci´n.
o
5. Demostraci´n de la igualdad A ·
o
x∈A·
i∈I
Bi ⇐⇒
⇐⇒
⇐⇒
⇐⇒
i∈I
i∈I
x = u · v, con u ∈ A v ∈ i∈I Bi
x = u · v, con u ∈ A v ∈ Bj , para alg´n j ∈ I
u
x ∈ A · Bj , para alg´n j ∈ I
u
x ∈ i∈I (A · Bi ).
Bi · A =
La igualdad
(A · Bi ):
Bi =
i∈I
(Bi · A) se demuestra de forma similar.
i∈I
La propiedad asociativa permite escribir concatenaciones de tres
o m´s lenguajes sin necesidad de usar par´ntesis.
a
e
En general, no se cumple que A · (B ∩ C) = A · B ∩ A · C. Es decir,
la concatenaci´n no es distributiva con respecto a la intersecci´n.
o
o
Contraejemplo: A = {a, λ}, B = {λ}, C = {a}. Se tiene:
A · (B ∩ C) = {a, λ} · ∅ = ∅.
Por otro lado,
A · B ∩ A · C = {a, λ} · {λ} ∩ {a, λ} · {a} = {a, λ} ∩ {a2 , a} = {a}.
§
¤
¦
¥
Ejercicios de la secci´n 1.9
o
Œ Dar un ejemplo de un alfabeto Σ y dos lenguajes diferentes A, B sobre
Σ tales que AB = BA.
Una de las dos contenencias siguientes es verdadera y la otra es falsa.
Demostrar o refutar, seg´n sea el caso:
u
(i) A · (B ∩ C) ⊆ A · B ∩ A · C.
(ii) A · B ∩ A · C ⊆ A · (B ∩ C).
20. 14
CAP´
ITULO 1. ALFABETOS, CADENAS Y LENGUAJES
1.10.
Potencias de un lenguaje
Dado un lenguaje A sobre Σ, (A ⊆ Σ∗ ), y un n´mero natural n ∈ N, se
u
n en la siguiente forma
define A
A0 = {λ},
An = AA · · · A = {u1 · · · un : ui ∈ A, para todo i, 1 ≤ i ≥ n}.
n veces
De esta forma, A2 es el conjunto de las concatenaciones dobles de cadenas
de A, A3 est´ formado por las concatenaciones triples y, en general, An
a
es el conjunto de todas las concatenaciones de n cadenas de A, de todas
las formas posibles. Como ejercicio, el estudiante puede dar una definici´n
o
recursiva de An .
1.11.
La clausura de Kleene de un lenguaje
La clausura de Kleene o estrella de Kleene o simplemente la estrella
de un lenguaje A, A ⊆ Σ∗ , es la uni´n de todas las potencias de A y se
o
denota por A∗ .
(Descripci´n 1)
o
Ai = A0 ∪ A1 ∪ A2 ∪ · · · ∪ An · · ·
A∗ =
i≥0
Seg´n la definici´n de las potencias de una lenguaje, A∗ consta de todas
u
o
las concatenaciones de cadenas de A consigo mismas, de todas las formas
posibles. Tenemos as´ una util descripci´n de A∗ :
ı
´
o
(Descripci´n 2)
o
A∗ = conjunto de todas las concatenaciones
de cadenas de A, incluyendo λ
= {u1 · · · un : ui ∈ A, n ≥ 0}
De manera similar se define la clausura positiva de un lenguaje A, A ⊆
Σ∗ , denotada por A+ .
Ai = A1 ∪ A2 ∪ · · · ∪ An · · ·
A+ =
i≥1
A+ se puede describir de la siguiente manera
A+
=
=
conjunto de todas las concatenaciones de cadenas de A
{u1 · · · un : ui ∈ A, n ≥ 1}
21. 1.11. LA CLAUSURA DE KLEENE DE UN LENGUAJE
15
Obs´rvese que A∗ = A+ ∪ {λ} y que A∗ = A+ si y solamente si λ ∈ A.
e
Propiedades de ∗ y +. Sea A un lenguaje sobre Σ, es decir, A ⊆ Σ∗ .
1. A+ = A∗ · A = A · A∗ .
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. Si A y B son lenguajes sobre Σ∗ , entonces (A ∪ B)∗ = (A∗ B ∗ )∗ .
Demostraci´n.
o
1.
A · A∗ = A · (A0 ∪ A1 ∪ A2 ∪ · · · )
= A1 ∪ A2 ∪ A3 ∪ · · ·
= A+ .
Similarmente se demuestra que A∗ · A = A+ .
2. Si x ∈ A∗ · A∗ , entonces x = u · v, con u ∈ A∗ , v ∈ A∗ . De modo que,
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 · v 1 · v 2 · · · v m .
con ui ∈ A, vi ∈ A, n ≥ 0. Por lo tanto, x es una concatenaci´n de n + m
o
cadenas de A. As´ que x ∈ A∗ .
ı
Rec´
ıprocamente, si x ∈ A∗ , entonces x = x · λ ∈ A∗ · A∗ . Esto prueba la
igualdad de los conjuntos A∗ · A∗ y A∗ .
3.
Se sigue de la propiedad anterior.
4.
A∗
∗
= A∗
0
∪ A∗
∗
1
∗
∪ A∗
∗
2
∪ ···
= {λ} ∪ A ∪ A ∪ A ∪ · · ·
= A∗ .
22. 16
CAP´
ITULO 1. ALFABETOS, CADENAS Y LENGUAJES
5. La demostraci´n de esta propiedad es similar a la de la propiedad 2,
o
pero con la restricci´n m, n ≥ 1. En general, no se tiene la igualdad A+ ·
o
+ = A+ ; m´s adelante se mostrar´ un contraejemplo.
A
a
a
A∗
6.
+
= A∗
1
∗
∪ (A∗
∗
2
∪ (A∗
3
∪ ···
∗
= A ∪ A ∪ A ∪ ···
= A∗ .
A+
7.
∗
= A+
0
∪ A+
+
1
+
∪ A+
2
∪ ···
+
= {λ} ∪ A ∪ A A ∪ · · ·
= A∗ ∪ (conjuntos contenidos en A+ )
= A∗ .
A+
8.
+
= A+
1
∪ A+
2
∪ A+
3
∪ ··· ,
+
= A ∪ (conjuntos contenidos en A+ )
= A+ .
9. Seg´n la Descripci´n 2, el lenguaje (A∪B)∗ est´ formado por las concau
o
a
tenaciones de cadenas de A consigo mismas, las concatenaciones de cadenas
de B consigo mismas y las concatenaciones de cadenas de A con cadenas de
B, de todas las formas posibles y en cualquier orden. Si se usa tambi´n la
e
Descripci´n 2, se observa que eso mismo se obtiene al efectuar (A∗ B ∗ )∗ .
o
Contraejemplo de A+ · A+ = A+ . Sea Σ = {a, b}, A = {a}. Se
tiene
A+ = A1 ∪ A2 ∪ · · · = {a} ∪ {aa} ∪ {aaa} ∪ · · · = {an : n ≥ 1}.
Por otro lado,
A+ · A+ = {a, a2 , a3 , . . . } · {a, a2 , a3 , . . . } = {a2 , a3 , a4 , . . . }
= {an : n ≥ 2}.
Seg´n las definiciones dadas, Σ∗ tiene dos significados:
u
Σ∗ = conjunto de las cadenas sobre el alfabeto Σ.
Σ∗ = conjunto de todas las concatenaciones de cadenas de Σ.
No hay conflicto de notaciones porque las dos definiciones anteriores de Σ∗ dan lugar al mismo conjunto.
23. ´
1.12. REFLEXION O INVERSO DE UN LENGUAJE
1.12.
17
Reflexi´n o inverso de un lenguaje
o
Dado A un lenguaje sobre Σ, se define AR de la siguiente forma:
AR = {uR : u ∈ A}.
AR se denomina la reflexi´n o el inverso de A.
o
Propiedades. Sean A y B lenguajes sobre Σ (es decir, A, B ⊆ Σ∗ ).
1. (A · B)R = B R · AR .
2. (A ∪ B)R = AR ∪ B R .
3. (A ∩ B)R = AR ∩ B R .
4. AR
R
= A.
∗
5. (A∗ )R = AR .
R
6. (A+ ) = AR
+
.
Demostraci´n. Demostraremos las propiedades 1 y 5; las dem´s se dejan
o
a
como ejercicio para el estudiante.
1.
x ∈ (A · B)R ⇐⇒ x = uR ,
donde u ∈ A · B
⇐⇒ x = uR ,
donde u = vw, v ∈ A, w ∈ B
R
⇐⇒ x = (vw) ,
donde v ∈ A, w ∈ B
⇐⇒ x = wR v R ,
donde v ∈ A, w ∈ B
R
R
⇐⇒ x ∈ B · A .
5.
x ∈ (A∗ )R ⇐⇒ x = uR , donde u ∈ A∗
⇐⇒ x = (u1 · u2 · · · un )R , donde los ui ∈ A, n ≥ 0
⇐⇒ x = uR · uR · · · uR , donde los ui ∈ A, n ≥ 0
n
2
1
⇐⇒ x ∈ (AR )∗ .
§
¤
¦
¥
Ejercicios de la secci´n 1.12
o
Œ Demostrar las propiedades 2, 3, 4 y 6 de la reflexi´n de cadenas.
o
¿Se pueden generalizar las propiedades 2 y 3 anteriores para uniones
e intersecciones arbitrarias, respectivamente?
24. 18
CAP´
ITULO 1. ALFABETOS, CADENAS Y LENGUAJES
1.13.
Lenguajes regulares
Los lenguajes regulares sobre un alfabeto dado Σ son todos los lenguajes
que se pueden formar a partir de los lenguajes b´sicos ∅, {λ}, {a}, a ∈ Σ,
a
por medio de las operaciones de uni´n, concatenaci´n y estrella de Kleene.
o
o
A continuaci´n presentamos una definici´n recursiva de los lenguajes
o
o
regulares. Sea Σ un alfabeto.
1. ∅, {λ} y {a}, para cada a ∈ Σ, son lenguajes regulares sobre Σ. Estos
son los denominados lenguajes regulares b´sicos.
a
2. Si A y B son lenguajes regulares sobre Σ, tambi´n lo son
e
A∪B
A·B
A∗
(uni´n),
o
(concatenaci´n),
o
(estrella de Kleene).
Obs´rvese que tanto Σ como Σ∗ son lenguajes regulares sobre Σ. La uni´n,
e
o
la concatenaci´n y la estrella de Kleene se denominan operaciones reguo
lares.
§
¤
Ejemplos Sea Σ = {a, b}. Los siguientes son lenguajes regulares sobre
¦
¥Σ:
1. El lenguaje A de todas las cadenas que tienen exactamente una a:
A = {b}∗ · {a} · {b}∗ .
2. El lenguaje B de todas las cadenas que comienzan con b:
B = {b} · {a, b}∗ .
3. El lenguaje C de todas las cadenas que contienen la cadena ba:
C = {a, b}∗ · {ba} · {a, b}∗ .
4. ({a} ∪ {b}∗ ) · {a}.
5.
∗
{a}∗ ∪ {b}∗ · {b} .
Es importante observar que todo lenguaje finito L = {w1 , w2 , . . . , wn } es
regular ya que L se puede obtener con uniones y concatenaciones:
L = {w1 } ∪ {w2 } ∪ · · · ∪ {wn },
y cada wi es la concatenaci´n de un n´mero finito de s´
o
u
ımbolos, wi =
a1 a2 · · · ak ; por lo tanto, {wi } = {a1 } · {a2 } · · · {ak }.
25. 1.14. EXPRESIONES REGULARES
1.14.
19
Expresiones regulares
Con el prop´sito de simplificar la descripci´n de los lenguajes regulares se
o
o
definen las llamadas expresiones regulares.
La siguiente es la definici´n recursiva de las expresiones regulares
o
sobre un alfabeto Σ dado.
1. Expresiones regulares b´sicas:
a
∅ es una expresi´n regular que representa al lenguaje ∅.
o
λ es una expresi´n regular que representa al lenguaje {λ}.
o
a es una expresi´n regular que representa al lenguaje {a}, a ∈ Σ.
o
2. Si R y S son expresiones regulares sobre Σ, tambi´n lo son:
e
(R)(S)
(R ∪ S)
(R)∗
(R)(S) representa la concatenaci´n de los lenguajes representados por
o
R y S; (R ∪ S) representa su uni´n, y (R)∗ representa la clausura
o
de Kleene del lenguaje representado por R. Los par´ntesis ( y ) son
e
s´
ımbolos de agrupaci´n y se pueden omitir si no hay peligro de amo
big¨edad.
u
Para una expresi´n regular R cualquiera se utiliza en ocasiones la siguiente
o
notaci´n:
o
L(R) := lenguaje representado por R.
Utilizando esta notaci´n y la definici´n recursiva de expresi´n regular poo
o
o
demos escribir las siguientes igualdades en las que R y S son expresiones
regulares arbitrarias:
L(∅) = ∅.
L(λ) = {λ}.
L(a) = {a}, a ∈ Σ.
L(RS) = L(R)L(S).
L(R ∪ S) = L(R) ∪ L(S).
L(R∗ ) = L(R)∗ .
§
¤
¦
¥
Ejemplo
Dado el alfabeto Σ = {a, b, c},
(a ∪ b∗ )a∗ (bc)∗
26. 20
CAP´
ITULO 1. ALFABETOS, CADENAS Y LENGUAJES
es una expresi´n regular que representa al lenguaje
o
({a} ∪ {b}∗ ) · {a}∗ · {bc}∗ .
§
¤
¦
¥
Ejemplo
Dado el alfabeto Σ = {a, b},
(λ ∪ a)∗ (a ∪ b)∗ (ba)∗
es una expresi´n regular que representa al lenguaje
o
({λ} ∪ {a})∗ · ({a} ∪ {b})∗ · {ba}∗ .
§
¤
¦
¥ci´n 1.13 con expresiones regulares:
o
Ejemplos
Podemos representar los tres primeros lenguajes de la sec-
1. El lenguaje A de todas las cadenas que tienen exactamente una a:
A = b∗ ab∗ .
2. El lenguaje B de todas las cadenas que comienzan con b:
B = b(a ∪ b)∗ .
3. El lenguaje C de todas las cadenas que contienen la cadena ba:
C = (a ∪ b)∗ ba(a ∪ b)∗ .
La representaci´n de lenguajes regulares por medio de expresiones
o
regulares no es unica. Es posible que haya varias expresiones re´
gulares diferentes para el mismo lenguaje. Por ejemplo, b(a ∪ b)∗
y b(b ∪ a)∗ representan el mismo lenguaje.
Otro ejemplo: las dos expresiones regulares (a ∪ b)∗ y (a∗ b∗ )∗ representan el mismo lenguaje por la propiedad 9 de la secci´n 1.11.
o
§
¤
¦
¥lenguajes, definidos sobre el alfabeto Σ = {a, b}:
Ejemplos
Encontrar expresiones regulares que representen los siguientes
1. Lenguaje de todas las cadenas que comienzan con el s´
ımbolo b y
terminan con el s´
ımbolo a.
Soluci´n.
o
b(a ∪ b)∗ a.
27. 1.14. EXPRESIONES REGULARES
21
2. Lenguaje de todas las cadenas que tienen un n´mero par de s´
u
ımbolos
(cadenas de longitud par).
o
Soluci´n. (aa ∪ ab ∪ ba ∪ bb)∗ . Otra expresi´n regular para este leno
guaje es [(a ∪ b)(a ∪ b)]∗ .
3. Lenguaje de todas las cadenas que tienen un n´mero par de aes.
u
Soluciones:
b∗ (b∗ ab∗ ab∗ )∗ .
(ab∗ a ∪ b)∗ .
(b∗ ab∗ ab∗ )∗ ∪ b∗ .
§
¤
¦
¥lenguajes, definidos sobre el alfabeto Σ = {0, 1}:
Ejemplos
Encontrar expresiones regulares que representen los siguientes
1. Lenguaje de todas las cadenas que tienen exactamente dos ceros.
Soluci´n.
o
1∗ 01∗ 01∗ .
2. Lenguaje de todas las cadenas cuyo pen´ltimo s´
u
ımbolo, de izquierda
a derecha, es un 0.
Soluci´n. (0 ∪ 1)∗ 0(0 ∪ 1). Usando la propiedad distributiva obteneo
mos otra expresi´n regular para este lenguaje: (0 ∪ 1)∗ 00 ∪ (0 ∪ 1)∗ 01.
o
§
¤
¦
¥el lenguaje de todas las cadenas que no contienen dos ceros
Ejemplo
Sea Σ = {0, 1}. Encontrar una expresi´n regular que represente
o
consecutivos.
Soluci´n. La condici´n de que no haya dos ceros consecutivos implica que
o
o
todo cero debe estar seguido necesariamente de un uno, excepto un cero al
final de la cadena. Por lo tanto, las cadenas de este lenguaje se obtienen
concatenado unos con bloques 01, de todas las formas posibles. Hay que
tener en cuenta, adem´s, que la cadena puede terminar ya sea en 1 o en 0.
a
A partir de este an´lisis, llegamos a la expresi´n regular
a
o
(1 ∪ 01)∗ ∪ (1 ∪ 01)∗ 0.
Usando la propiedad distributiva, obtenemos otra expresi´n para este leno
guaje: (1 ∪ 01)∗ (λ ∪ 0).
§
¤
¦
¥sente el lenguaje de todas las cadenas que no contienen la ca-
Ejemplo
dena bc.
Sea Σ = {a, b, c}. Encontrar una expresi´n regular que repreo
28. 22
CAP´
ITULO 1. ALFABETOS, CADENAS Y LENGUAJES
Soluci´n. Una b puede estar seguida solamente de otra b o de una a, mientras
o
que las aes y las ces pueden estar seguidas de cualquier s´
ımbolo. Teniendo
en cuenta todas las restricciones y posibilidades, arribamos a la siguiente
expresi´n regular:
o
(a ∪ c ∪ b+ a)∗ b∗ .
La condici´n de que no aparezca la cadena bc significa que una c puede
o
estar precedida solamente de una a y de otra c. Siguiendo esta descripci´n,
o
obtenemos otra expresi´n regular para el lenguaje en cuesti´n:
o
o
c∗ (b ∪ ac∗ )∗ .
§
¤
¦
¥
Ejercicios de la secci´n 1.14
o
Œ Encontrar expresiones regulares para los lenguajes descritos a continuaci´n:
o
(i) Σ = {0, 1, 2}. Lenguaje de todas las cadenas que comienzan con
2 y terminan con 1.
(ii) Σ = {a, b, c}. Lenguaje de todas las cadenas que tienen un n´meu
ro par de s´
ımbolos.
(iii) Σ = {a, b}. Lenguaje de todas las cadenas que tienen un n´mero
u
impar de s´
ımbolos.
(iv) Σ = {a, b, c}. Lenguaje de todas las cadenas que tienen un n´meu
ro impar de s´
ımbolos.
(v) Σ = {a, b}. Lenguaje de todas las cadenas que tienen un n´mero
u
impar de aes.
(vi) Σ = {a, b}. Lenguaje de todas las cadenas que tienen la cadena
ab un n´mero par de veces.
u
(vii) Σ = {a, b}. Lenguaje de todas las cadenas que tienen un n´mero
u
par de aes o un n´mero impar de bes.
u
(viii) Σ = {0, 1, 2}. Lenguaje de todas las cadenas que no contienen
dos unos consecutivos.
Encontrar expresiones regulares para los siguientes lenguajes definidos
sobre el alfabeto Σ = {0, 1}:
(i) Lenguaje de todas las cadenas que tienen por lo menos un 0 y
por lo menos un 1.
29. 1.14. EXPRESIONES REGULARES
23
(ii) Lenguaje de todas las cadenas que tienen a lo sumo dos ceros
consecutivos.
(iii) Lenguaje de todas las cadenas cuyo quinto s´
ımbolo, de izquierda
a derecha, es un 1.
(iv) Lenguaje de todas las cadenas de longitud par ≥ 2 formadas
por ceros y unos alternados.
(v) Lenguaje de todas las cadenas cuya longitud es ≥ 4.
(vi) Lenguaje de todas las cadenas de longitud impar que tienen
unos unicamente en las posiciones impares.
´
(vii) Lenguaje de todas las cadenas cuya longitud es un m´ltiplo de
u
tres.
(viii) Lenguaje de todas las cadenas que no contienen tres ceros consecutivos.
(ix) Lenguaje de todas las cadenas que no contienen cuatro ceros
consecutivos.
!(x) Lenguaje de todas las cadenas que no contienen la subcadena
101.
No todos los lenguajes sobre un alfabeto dado Σ son regulares.
M´s adelante se mostrar´ que el lenguaje
a
a
L = {λ, ab, aabb, aaabbb, . . . } = {an bn : n ≥ 0}
sobre Σ = {a, b} no se puede representar por medio de una expresi´n regular, y por lo tanto, no es un lenguaje regular.
o
30.
31. Cap´tulo
ı
2
Aut´matas finitos
o
Los aut´matas son m´quinas abstractas con capacidad de computaci´n.
o
a
o
Hist´ricamente, su estudio se origin´ con la llamada “m´quina de Turing”,
o
o
a
que fue propuesta en 1936 por el matem´tico brit´nico Alan Turing (1912–
a
a
1954) con el prop´sito de precisar las caracter´
o
ısticas y las limitaciones de
un dispositivo de computaci´n mec´nica. En los a˜os 40 y 50 del siglo XX
o
a
n
se adelantaron investigaciones sobre m´quinas de Turing con capacidad
a
restringida, lo que dio lugar a la noci´n de aut´mata finito.
o
o
2.1.
Aut´matas finitos deterministas (AFD)
o
Los aut´matas finitos son m´quinas abstractas que procesan cadenas de
o
a
entrada, las cuales son aceptadas o rechazadas:
Aut´mata
o
M
si
(u es aceptada)
Cadena de
entrada u
no
(u es rechazada)
El aut´mata act´a leyendo los s´
o
u
ımbolos escritos sobre una
infinita, dividida en celdas o casillas, sobre la cual se escribe
de entrada u, un s´
ımbolo por casilla. El aut´mata posee una
o
control (tambi´n llamada cabeza lectora, control finito o
e
25
cinta semiuna cadena
unidad de
unidad de
32. 26
´
CAP´
ITULO 2. AUTOMATAS FINITOS
memoria) que tiene un n´mero finito de configuraciones internas, llamau
das estados del aut´mata. Entre los estados de un aut´mata se destacan
o
o
el estado inicial y los estados finales o estados de aceptaci´n.
o
Formalmente, un aut´mata finito M est´ definido por cinco par´metros
o
a
a
o componentes, M = (Σ, Q, q0 , F, δ), a saber:
1. Un alfabeto Σ, llamado alfabeto de cinta. Todas las cadenas que procesa M pertenecen a Σ∗ .
2. Q = {q0 , q1 , . . . , qn }, conjunto de estados internos del aut´mata.
o
3. q0 ∈ Q, estado inicial.
4. F ⊆ Q, conjunto de estados finales o de aceptaci´n. F = ∅.
o
5. La funci´n de transici´n del aut´mata
o
o
o
δ : Q × Σ −→
Q
(q, s) −→ δ(q, s)
Una cadena de entrada u se coloca en la cinta de tal manera que el primer
s´
ımbolo de u ocupa la primera casilla de la cinta. La unidad de control
est´ inicialmente en el estado q0 escaneando la primera casilla:
a
u
a
···
a
b
≡
···
↑
Unidad
de control
q
La funci´n de transici´n δ indica el estado al cual pasa el control finito,
o
o
dependiendo del s´
ımbolo escaneado y de su estado actual. As´ δ(q, s) = q ′
ı,
significa que, en presencia del s´
ımbolo s, la unidad de control pasa del
estado q al estado q ′ y se desplaza hacia la derecha. Esta acci´n constituye
o
un paso computacional:
δ(q, s) = q ′
···
s
···
···
···
s
↑
↑
q
q′
33. ´
2.1. AUTOMATAS FINITOS DETERMINISTAS (AFD)
27
Puesto que la funci´n δ est´ definida para toda combinaci´n estadoo
a
o
s´
ımbolo, una cadena de entrada cualquiera es procesada completamente,
hasta que la unidad de control encuentra la primera casilla vac´
ıa.
La unidad de control de un aut´mata siempre se desplaza hacia la dereo
cha; no puede retornar ni escribir s´
ımbolos sobre la cinta.
§
¤
¦
¥componentes:
Ejemplo
Consideremos el aut´mata definido por los siguientes cinco
o
Σ = {a, b}.
Q = {q0 , q1 , q2 }.
q0 : estado inicial.
F = {q0 , q2 }, estados de aceptaci´n.
o
Funci´n de transici´n δ:
o
o
δ
a
b
δ(q0 , a) = q0
q2 q1 q1
δ(q1 , b) = q2
δ(q2 , a) = q1
q1 q1 q2
δ(q0 , b) = q1
δ(q1 , a) = q1
q0 q0 q1
δ(q2 , b) = q1 .
Vamos a ilustrar el procesamiento de dos cadenas de entrada.
1.
u = aabab.
u
a
a
b
a
b
↑
q0
↑
q0
↑
q0
↑
q1
↑
q1
···
≡
↑
q2
Como q2 es un estado de aceptaci´n, la cadena de entrada u es aceptada.
o
2.
v = aababa.
v
a
a
b
a
b
a
≡
↑
q0
↑
q0
↑
q0
↑
q1
↑
q1
↑
q2
···
↑
q1
Puesto que q1 no es un estado de aceptaci´n, la entrada v es rechazada.
o
34. 28
´
CAP´
ITULO 2. AUTOMATAS FINITOS
Caso especial: la cadena λ es la cadena de entrada.
≡
≡
···
↑
q0
Como q0 es un estado de aceptaci´n, la cadena λ es aceptada.
o
En general se tiene lo siguiente: la cadena vac´ λ es aceptada por un
ıa
aut´mata M si y solamente si el estado inicial q0 de M tambi´n es un estado
o
e
de aceptaci´n.
o
Los aut´matas finitos descritos anteriormente se denominan aut´matas
o
o
finitos deterministas (AFD) ya que para cada estado q y para cada
s´
ımbolo a ∈ Σ, la funci´n de transici´n δ(q, a) siempre est´ definida. Es
o
o
a
decir, la funci´n de transici´n δ determina completa y un´
o
o
ıvocamente la
acci´n que el aut´mata realiza cuando la unidad de control se encuentra en
o
o
un estado q leyendo un s´
ımbolo s sobre la cinta.
Dado un aut´mata M , el lenguaje aceptado o reconocido por M se
o
denota L(M ) y se define por
L(M ) := {u ∈ Σ∗ : M termina el procesamiento de la cadena
de entrada u en un estado q ∈ F }.
2.2.
Diagrama de transiciones de un aut´mata
o
Un aut´mata finito se puede representar por medio de un grafo dirigido y
o
etiquetado. Recu´rdese que un grafo es un conjunto de v´rtices o nodos
e
e
unidos por arcos o conectores; si los arcos tienen tanto direcci´n como
o
etiquetas, el grafo se denomina grafo dirigido y etiquetado o digrafo
etiquetado.
El digrafo etiquetado de un aut´mata se obtiene siguiendo las siguientes
o
convenciones:
Los v´rtices o nodos son los estados del aut´mata.
e
o
El estado q se representa por: q
El estado inicial q0 se representa por: q0
Un estado final q se representa por: q
35. 29
˜
´
2.3. DISENO DE AUTOMATAS
La transici´n δ = (q, s) = p se representa en la forma
o
s
q
p
Dicho grafo se denomina diagrama de transiciones del aut´mata y
o
es muy util para hacer el seguimiento completo del procesamiento de una
´
cadena de entrada. Una cadena u es aceptada si existe una trayectoria
etiquetada con los s´
ımbolos de u, que comienza en el estado q0 y termina
en un estado de aceptaci´n.
o
§
¤
¦
¥ci´n anterior.
o
Ejemplo
Diagrama de transiciones del aut´mata presentado en la seco
Σ = {a, b}.
Q = {q0 , q1 , q2 }.
q0 : estado inicial.
F = {q0 , q2 }, estados de aceptaci´n.
o
Funci´n de transici´n δ:
o
o
δ
a
b
q0 q0 q1
q1 q1 q2
q2 q1 q1
δ(q0 , a) = q0
δ(q0 , b) = q1
δ(q1 , a) = q1
δ(q1 , b) = q2
δ(q2 , a) = q1
δ(q2 , b) = q1
a
b
q0
a
q1
a, b
b
q2
Examinando el diagrama de transiciones podemos observar f´cilmente que
a
la entrada aaababbb es aceptada mientras que aabaaba es rechazada.
2.3.
Dise˜ o de aut´matas
n
o
Para aut´matas deterministas se adopta la siguiente convenci´n adicional
o
o
con respecto a los diagramas de transiciones: se supone que los arcos no
36. 30
´
CAP´
ITULO 2. AUTOMATAS FINITOS
dibujadas expl´
ıcitamente conducen a un estado “limbo” de no-aceptaci´n.
o
Es decir, en el diagrama de transiciones se indican unicamente los arcos que
´
intervengan en trayectorias de aceptaci´n. Esto permite simplificar consio
derablemente los diagramas.
En este cap´
ıtulo abordaremos dos tipos de problemas:
1.
Dado un lenguaje regular L dise˜ar un aut´mata finito M que acepte
n
o
o reconozca a L, es decir, tal que L(M ) = L.
2.
Dado un aut´mata M determinar el lenguaje aceptado por M .
o
M´s adelante se demostrar´, en toda su generalidad, que estos problemas
a
a
siempre tienen soluci´n. Consideremos inicialmente problemas del primer
o
tipo.
§
¤
¦
¥
Ejemplo
L = a∗ = {λ, a, a2 , a3 , . . .}. AFD M tal que L(M ) = L:
a
q0
a
b
q1
b
a
Versi´n simplificada:
o
§
¤
¦
¥
Ejemplo
q0
L = a+ = {a, a2 , a3 , . . .}. AFD M tal que L(M ) = L:
a
q0
b
a
q1
a
b
q2
b
a
Versi´n simplificada:
o
q0
a
q1
§
¤
¦
¥mente dos aes = b∗ ab∗ ab∗ . AFD M tal que L(M ) = L:
Ejemplo
Σ = {a, b}. L = lenguaje de las cadenas que contienen exacta-
37. ˜
´
2.3. DISENO DE AUTOMATAS
b
a
q0
b
31
b
a
q1
q2
§
¤
¦
¥n´mero par de s´
u
ımbolos (cadenas de longitud par). AFD M
Ejemplo
Σ = {0, 1}. L = lenguaje de las cadenas sobre Σ que tienen un
tal que L(M ) = L:
0, 1
q0
q1
0, 1
§
¤
¦
¥un n´mero par de ceros. AFD M tal que L(M ) = L:
u
Ejemplo
Σ = {0, 1}. L = lenguaje de las cadenas sobre Σ que contienen
1
0
q0
1
q1
0
§
¤
¦
¥en b. AFD M tal que L(M ) = L:
Ejemplo
Σ = {a, b}. L = lenguaje de las cadenas sobre Σ que terminan
a
b
q0
b
q1
a
§
¤
¦
¥
Ejercicios de la secci´n 2.3
o
Œ Dise˜ar aut´matas finitos deterministas que acepten los siguientes
n
o
lenguajes:
(i) Σ = {0, 1}. L = lenguaje de las cadenas sobre Σ de longitud
impar.
(ii) Σ = {0, 1}. L = lenguaje de las cadenas sobre Σ que contienen
un n´mero impar de unos.
u
38. 32
´
CAP´
ITULO 2. AUTOMATAS FINITOS
(iii) Σ = {a, b}. L = ab+ .
(iv) Σ = {a, b}. L = ab∗ ∪ ab∗ a.
(v) Σ = {0, 1}. L = (0 ∪ 10)∗ .
(vi) Σ = {0, 1}. L = (01 ∪ 10)∗ .
(vii) Σ = {0, 1}. Lenguaje de todas las cadenas que no contienen dos
unos consecutivos.
(viii) Σ = {a, b}. L = {a2i b3j : i, j ≥ 0}.
(ix) Σ = {a, b}. L = lenguaje de las cadenas sobre Σ que contienen
un n´mero par de aes y un n´mero par de bes. Ayuda: utilizar
u
u
4 estados.
(x) Σ = {a, b}. Para cada combinaci´n de las condiciones “par” e
o
“impar” y de las conectivas “o” e “y”, dise˜ar un AFD que
n
acepte el lenguaje L definido por
L = lenguaje de las cadenas con un n´mero par/impar de aes
u
y/o un n´mero par/impar de bes.
u
Ayuda: utilizar el aut´mata de 4 estados dise˜ado en el ejercio
n
cio anterior, modificando adecuadamente el conjunto de estados
finales.
Determinar los lenguajes aceptados por los siguientes AFD. Describir
los lenguajes ya sea por medio de una propiedad caracter´
ıstica o de
una expresi´n regular.
o
(i)
0
0
q0
q1
q2
1
0
0
1
0
q3
q4
1
1
1
(ii)
1
q0
1
q1
0
q2
q3
0
39. ´
2.4. AUTOMATAS FINITOS NO-DETERMINISTAS (AFN)
33
(iii)
q1
0
1
0
q0
1
q2
1
q3
1
(iv)
b
q0
b
a
q1
a
q2
b
2.4.
Aut´matas finitos no-deterministas (AFN)
o
Los aut´matas finitos no-deterministas (AFN) se asemejan a los AFD,
o
excepto por el hecho de que para cada estado q ∈ Q y cada a ∈ Σ, la
transici´n δ(q, a) puede consistir en m´s de un estado o puede no estar
o
a
definida. Concretamente, un AFN est´ definido por M = (Σ, Q, q0 , F, ∆)
a
donde:
1. Σ es el alfabeto de cinta.
2. Q es un conjunto (finito) de estados internos.
3. q0 ∈ Q es el estado inicial.
4. ∅ = F ⊆ Q es el conjunto de estados finales o estados de aceptaci´n.
o
5.
∆ : Q × Σ −→ ℘(Q)
(q, s) −→ ∆(q, s) = {qi1 , qi2 , . . . , qik }
donde
℘(Q) es el conjunto de subconjunto de Q.
40. 34
´
CAP´
ITULO 2. AUTOMATAS FINITOS
El significado de ∆(q, s) = {qi1 , qi2 , . . . , qik } es el siguiente: estando en
el estado q, en presencia del s´
ımbolo s, la unidad de control puede pasar
(aleatoriamente) a uno cualquiera de los estados qi1 , qi2 ,. . . , qik , despu´s de
e
lo cual se desplaza a la derecha.
Puede suceder que ∆(q, s) = ∅, lo cual significa que, si durante el procesamiento de una cadena de entrada u, M ingresa al estado q leyendo sobre
la cinta el s´
ımbolo s, el c´mputo se aborta.
o
C´mputo abortado:
o
u
···
s
···
≡
···
↑
q
La noci´n de diagrama de transiciones para un AFN se define de manera
o
an´loga al caso AFD, pero puede suceder que desde un mismo nodo (estado)
a
salgan dos o m´s arcos con la misma etiqueta:
a
s
q ′′′
s
q ′′
q
s
q′
Un AFN M puede procesar una cadena de entrada u ∈ Σ∗ de varias maneras. Sobre el diagrama de transiciones del aut´mata, esto significa que
o
pueden existir varias trayectorias, desde el estado q0 , etiquetadas con los
s´
ımbolos de u.
La siguiente es la noci´n de aceptaci´n para aut´matas no-deterministas:
o
o
o
L(M ) = lenguaje aceptado o reconocido por M
= {u ∈ Σ∗ : existe por lo menos un c´mputo completo
o
de u que termina en un estado q ∈ F }
41. 35
´
2.4. AUTOMATAS FINITOS NO-DETERMINISTAS (AFN)
Es decir, para que una cadena u sea aceptada, debe existir alg´n c´mpuu o
to en el que u sea procesada completamente y que finalice estando M en
un estado de aceptaci´n.
o
§
¤
¦
¥
Ejemplo
a
q0
Sea M el siguiente AFN:
a
a
b
q1
b
∆
a
{q0 , q1 , q3 }
∅
{q1 }
{q2 }
q2
∅
{q1 , q2 }
q3
q3
b
q1
b
a
q0
q2
∅
{q3 }
b
Para la cadena de entrada u = abb, existen c´mputos que conducen al rechao
zo, c´mputos abortados y c´mputos que terminan en estados de aceptaci´n.
o
o
o
Seg´n la definici´n de lenguaje aceptado, u ∈ L(M ).
u
o
u
a
b
b
≡
↑
q0
C´mputo de rechazo:
o
↑
q1
↑
q2
···
↑
q2
u
a
b
b
≡
↑
q0
C´mputo de aceptaci´n:
o
o
↑
q3
↑
q3
···
↑
q3
u
Otro c´mputo de aceptaci´n:
o
o
a
b
b
≡
↑
q0
↑
q1
↑
q2
↑
q1
···
42. 36
´
CAP´
ITULO 2. AUTOMATAS FINITOS
u
a
b
↑
q0
C´mputo abortado:
o
≡
···
↑
q0
b
§
¤
¦
¥AFD que acepta el lenguaje de las cadenas sobre Σ = {a, b}
Ejemplo
En el ultimo ejemplo de la secci´n 2.3 se dise˜´ el siguiente
´
o
no
que terminan en b:
a
b
b
q0
q1
a
Un AFN que acepta el mismo lenguaje y que es, tal vez, m´s f´cil de
a a
concebir, es el siguiente:
a
b
q0
q1
b
Este aut´mata se asemeja a la expresi´n regular (a ∪ b)∗ b.
o
o
§
Ejemplo
¦
¤
Consid´rese el lenguaje L = ab∗ ∪ a+ sobre el alfabeto Σ =
e
¥{a, b}. El siguiente AFN M satisface L(M ) = L.
a
q0
a
b
q1
a
q2
§
¤
¦
¥
Ejemplo
Σ = {0, 1}, L = (01 ∪ 010)∗ . El siguiente AFN acepta a L.
43. ´
2.4. AUTOMATAS FINITOS NO-DETERMINISTAS (AFN)
37
0
q0
0
1
q1
0
q2
q3
1
Otro AFN que acepta el mismo lenguaje y que tiene s´lo tres estados es el
o
siguiente:
0
1
q1
q2
q0
1
0
§
¤
¦
¥
Ejercicios de la secci´n 2.4
o
Dise˜ar aut´matas AFD o AFN que acepten los siguientes lenguajes:
n
o
Œ Σ = {a, b}. L = ab+ a∗ .
Σ = {a, b}. L = a(a ∪ ab)∗ .
Ž Σ = {a, b, c}. L = a∗ b∗ c∗ .
Σ = {0, 1, 2}. L = lenguaje de las cadenas sobre Σ que comienzan
con 0 y terminan con 2.
Σ = {0, 1}. Lenguaje de las cadenas de longitud par ≥ 2 formadas
por ceros y unos alternados.
‘ Σ = {0, 1}. Lenguaje de las cadenas que tienen a lo sumo dos ceros
consecutivos.
’ Σ = {0, 1}. Lenguaje de las cadenas de longitud impar que tienen
unos unicamente en las posiciones impares.
´
“ Σ = {a, b, c}. L = lenguaje de las cadenas sobre Σ que contienen la
cadena bc.
” Σ = {a, b, c}. L = lenguaje de las cadenas sobre Σ que no contienen
la cadena bc. En el ultimo ejemplo de la secci´n 1.14 se presentaron
´
o
dos expresiones regulares para L. Nota: ¡se puede construir un AFD
con s´lo dos estados para aceptar este lenguaje!
o
44. 38
2.5.
´
CAP´
ITULO 2. AUTOMATAS FINITOS
Equivalencia computacional entre los AFD y
los AFN
En esta secci´n se mostrar´ que los modelos AFD y AFN son computacioo
a
nalmente equivalentes. En primer lugar, es f´cil ver que un AFD M =
a
(Σ, Q, q0 , F, δ) puede ser considerado como un AFN M ′ = (Σ, Q, q0 , F, ∆)
definiendo ∆(q, a) = {δ(q, a)} para cada q ∈ Q y cada a ∈ Σ. Para la
afirmaci´n rec´
o
ıproca tenemos el siguiente teorema.
2.5.1 Teorema. Dado un AFN M = (Σ, Q, q0 , F, ∆) se puede construir
un AFD M ′ equivalente a M , es decir, tal que L(M ) = L(M ′ ).
Este teorema, cuya demostraci´n se dar´ en detalle m´s adelante, eso
a
a
tablece que el no-determinismo se puede eliminar. Dicho de otra manera,
los aut´matas deterministas y los no-deterministas aceptan los mismos leno
guajes. La idea de la demostraci´n consiste en considerar cada conjunto de
o
estados {p1 , . . . , pj }, que aparezca en la tabla de la funci´n ∆ del aut´mata
o
o
no-determinista, como un unico estado del nuevo aut´mata determinista.
´
o
La tabla de ∆ se completa hasta que no aparezcan nuevas combinaciones de
estados. Los estados de aceptaci´n del nuevo aut´mata son los conjuntos
o
o
de estados en los que aparece por lo menos un estado de aceptaci´n del
o
aut´mata original. El siguiente ejemplo ilustra el procedimiento.
o
§
¤
¦
¥acepta el lenguaje L(M ) = ab∗ ∪ a+ sobre Σ = {a, b}:
Ejemplo
Consideremos el AFN M , presentado en la secci´n 2.4, que
o
a
q0
a
b
q1
a
q2
∆
a
b
q0
{q1 , q2 }
∅
q1
∅
{q1 }
q2
{q2 }
∅
El nuevo AFD M ′ construido a partir de M tiene un estado m´s, {q1 , q2 },
a
y su funci´n de transici´n δ tiene el siguiente aspecto:
o
o
45. 2.5. EQUIVALENCIA COMPUTACIONAL ENTRE LOS AFD Y LOS AFN
δ
a
b
q0
{q1 , q2 }
∅
q1
∅
{q1 }
q2
{q2 }
∅
{q1 , q2 }
{q2 }
39
{q1 }
El diagrama de transiciones de este aut´mata es:
o
a
a
a
{q0 }
{q1 , q2 }
{q2 }
b
{q1 }
b
Los estados de aceptaci´n son aqu´llos en los que aparezcan q1 ´ q2 , que
o
e
o
son los estados de aceptaci´n del aut´mata original.
o
o
Para mayor simplicidad, podemos cambiar los nombres de los estados
del nuevo aut´mata:
o
a
a
p0
p1
a
p2
b
p3
b
§
¤
¦
¥lenguaje L = (01 ∪ 010)∗ sobre Σ = {0, 1}.
Ejemplo
El siguiente AFN M , presentado en la secci´n 2.4, acepta el
o
46. 40
´
CAP´
ITULO 2. AUTOMATAS FINITOS
0
1
q0
q1
q2
1
0
La tabla de la funci´n de transici´n de M se extiende para completar la
o
o
funci´n δ del nuevo AFN:
o
δ
0
1
q0
{q1 }
∅
q1
∅
{q0 , q2 }
q2
{q0 }
∅
{q0 , q2 }
{q0 , q1 }
∅
{q0 , q1 }
{q1 }
{q0 , q2 }
El diagrama de transiciones del nuevo aut´mata es:
o
0
0
{q0 }
{q1 }
1
{q2 }
0
0
{q0 , q2 }
1
{q0 , q1 }
Los estados de aceptaci´n son aqu´llos en los que aparezca q0 ya que q0 es
o
e
el unico estado de aceptaci´n del aut´mata original.
´
o
o
Puesto que el nuevo estado {q2 } no interviene en la aceptaci´n de cadeo
nas, el aut´mata se puede simplificar en la siguiente forma:
o
47. 2.5. EQUIVALENCIA COMPUTACIONAL ENTRE LOS AFD Y LOS AFN
41
0
p0
p1
1
0
0
p2
1
p3
Para la demostraci´n del Teorema 2.5.1, conviene extender la definici´n de
o
o
la funci´n de transici´n, tanto de los aut´matas deterministas como de los
o
o
o
no-deterministas.
2.5.2 Definici´n. Sea M = (Σ, Q, q0 , F, δ) un AFD. La funci´n de transio
o
ci´n δ : Q × Σ −→ Q se extiende a una funci´n δ : Q × Σ∗ −→ Q por medio
o
o
de la siguiente definici´n recursiva:
o
δ(q, λ) = q, q ∈ Q,
δ(q, a) = δ(q, a), q ∈ Q, a ∈ Σ,
δ(q, wa) = δ(δ(q, w), a), q ∈ Q, a ∈ Σ, w ∈ Σ∗ .
Seg´n esta definici´n, para una cadena de entrada w ∈ Σ∗ , δ(q0 , w) es el
u
o
estado en el que el aut´mata termina el procesamiento de w. Por lo tanto,
o
podemos describir el lenguaje aceptado por M de la siguiente forma:
L(M ) = {w ∈ Σ∗ : δ(q0 , w) ∈ F }.
Notaci´n. Sin peligro de ambig¨edad, la funci´n extendida δ(q, w) se noo
u
o
tar´ simplemente δ(q, w).
a
2.5.3 Definici´n. Sea M = (Σ, Q, q0 , F, ∆) un AFN. La funci´n de trano
o
℘(Q) se extiende inicialmente a conjuntos de estados.
sici´n ∆ : Q × Σ −→
o
Para a ∈ Σ y S ⊆ F se define
∆(S, a) :=
∆(q, a).
q∈S
48. 42
´
CAP´
ITULO 2. AUTOMATAS FINITOS
Luego se extiende ∆ a una funci´n ∆ : Q × Σ∗ −→ ℘(Q), de manera
o
similar a como se hace para los AFD. Recursivamente,
∆(q, λ) = {q}, q ∈ Q,
∆(q, a) = ∆(q, a), q ∈ Q, a ∈ Σ,
∆(p, a), q ∈ Q, a ∈ Σ, w ∈ Σ∗ .
∆(q, wa) = ∆(∆(q, w), a) =
p∈∆(q,w)
Seg´n esta definici´n, para una cadena de entrada w ∈ Σ∗ , ∆(q0 , w) es el
u
o
conjunto de los posibles estados en los que terminan los c´mputos completos
o
de w. Si el c´mputo se aborta durante el procesamiento de w, se tendr´
o
ıa
∆(q0 , w) = ∅. Usando la funci´n extendida ∆, el lenguaje aceptado por M
o
se puede describir de la siguiente forma:
L(M ) = {w ∈ Σ∗ : ∆(q0 , w) contiene un estado de aceptaci´n}.
o
Notaci´n. Sin peligro de ambig¨edad, la funci´n extendida ∆(q, w) se
o
u
o
notar´ simplemente ∆(q, w).
a
Demostraci´n del Teorema 2.5.1:
o
Dado el AFN M = (Σ, Q, q0 , F, ∆), construimos el AFD M ′ as´
ı:
M ′ = (Σ, ℘(Q), {q0 }, F ′ , δ)
donde
δ : ℘(Q) × Σ −→ ℘(Q)
(S, a) −→ δ(S, a) := ∆(S, a).
F ′ = {S ⊆ ℘(Q) : S ∩ F = ∅}.
Se demostrar´ que L(M ) = L(M ′ ) probando que, para toda cadena w ∈ Σ∗ ,
a
δ({q0 }, w) = ∆(q0 , w). Esta igualdad se demostrar´ por inducci´n sobre w.
a
o
Para w = λ, claramente se tiene δ({q0 }, λ) = ∆(q0 , λ) = {q0 }. Para w = a,
a ∈ Σ, se tiene
δ({q0 }, a) = ∆({q0 }, a) = ∆(q0 , a).
Sup´ngase (hip´tesis de inducci´n) que δ({q0 }, w) = ∆(q0 , w), y que a ∈ Σ.
o
o
o
δ({q0 }, wa) = δ(δ({q0 }, w), a)
= δ(∆({q0 }, w), a)
(definici´n de la extensi´n de δ)
o
o
(hip´tesis de inducci´n)
o
o
= ∆(∆({q0 }, w), a) (definici´n de δ)
o
= ∆({q0 }, wa)
(definici´n de la extensi´n de ∆)
o
o
= ∆(q0 , wa)
(definici´n de la extensi´n de ∆).
o
o
49. ´
2.6. AUTOMATAS CON TRANSICIONES λ (AFN-λ)
§
¤
¦
43
¥
Ejercicios de la secci´n 2.5
o
Dise˜ar AFD equivalentes a los siguientes AFN:
n
Œ
b
q0
q1
a
b
b
q2
q3
a
0
q0
0
0
1
q1
1
q2
1
0
q3
1
2.6.
Aut´matas con transiciones λ (AFN-λ)
o
Un aut´mata finito con transiciones λ (AFN-λ) es un aut´mata noo
o
determinista M = (Σ, Q, q0 , F, ∆) en el que la funci´n de transici´n est´ deo
o
a
finida como:
∆ : Q × (Σ ∪ {λ}) → ℘(Q).
o
o
La transici´n ∆(q, λ) = {pi1 , . . . , pin }, llamada transici´n λ, transici´n
o
nula o transici´n espont´nea, tiene el siguiente significado computacioo
a
nal: estando en el estado q, el aut´mata puede cambiar a uno cualquiera de
o
ımbolo le´ y sin mover
ıdo
los estados pi1 , . . . , pin , independientemente del s´
la unidad de control. Dicho de otra manera, las transiciones λ permiten
al aut´mata cambiar internamente de estado sin procesar o “consumir” el
o
s´
ımbolo le´ sobre la cinta.
ıdo
En el diagrama del aut´mata, las transiciones λ dan lugar a arcos con
o
etiquetas λ. Una cadena de entrada w es aceptada por un AFN-λ si existe por lo menos una trayectoria, desde el estado q0 , cuyas etiquetas son
exactamente los s´
ımbolos de w, intercalados con cero, uno o m´s λs.
a
50. 44
´
CAP´
ITULO 2. AUTOMATAS FINITOS
En los aut´matas AFN-λ, al igual que en los AFN, puede haber m´ltiples
o
u
c´mputos para una misma cadena de entrada, as´ como c´mputos abortao
ı
o
dos.
§
¤
¦
¥
Ejemplo
M:
a
b
b
λ
q1
q2
a
q3
q4
q0
λ
b
a
Ejemplos de cadenas aceptadas por M :
u = aab
v = abaa
w = abbaa
C´mputos de aceptaci´n de u = aab y v = abaa:
o
o
···
a
a
b
≡
↑
q0
↑
q1
↑
q1
↑
q2
a
b
a
a
≡
↑
q0
↑
q3
↑
q3
↑
q4
↑
q4
q1
q4
···
51. ´
2.6. AUTOMATAS CON TRANSICIONES λ (AFN-λ)
45
Los AFN-λ permiten a´n m´s libertad en el dise˜o de aut´matas, espeu
a
n
o
cialmente cuando hay numerosas concatenaciones.
§
¤
¦
¥
Ejemplo
Σ = {a, b, c}. L = a∗ b∗ c∗ . AFD que acepta a L:
a
b
b
q0
c
q1
c
q2
c
AFN-λ que acepta a L:
a
b
λ
q0
λ
q1
c
q2
Este aut´mata se asemeja a la expresi´n regular a∗ b∗ c∗ : las concatenaciones
o
o
han sido reemplazadas por transiciones λ.
§
¤
¦
¥tienen un n´mero par de aes o un n´mero par de bes.
u
u
Ejemplo
Σ = {a, b}. L = lenguaje de todas las cadenas sobre Σ que
AFD que acepta el lenguaje de las cadenas con un n´mero par de aes:
u
b
a
q0
b
q1
a
AFD que acepta el lenguaje de las cadenas con un n´mero par de bes:
u
a
b
q0
a
q1
b
AFN-λ que acepta el lenguaje de las cadenas con un n´mero par de aes o
u
un n´mero par de bes:
u
52. 46
´
CAP´
ITULO 2. AUTOMATAS FINITOS
b
λ
a
q1
b
q2
a
q0
b
λ
q3
a
q4
b
a
A diferencia de los AFD y los AFN, en los AFN-λ pueden existir “c´mputos
o
infinitos”, es decir c´mputos que nunca terminan. Esto puede suceder si
o
el aut´mata ingresa a un estado desde el cual haya varias transiciones λ
o
encadenadas que retornen al mismo estado, como por ejemplo:
λ
λ
λ
§
¤
¦
¥
Ejercicios de la secci´n 2.6
o
Dise˜ar AFN-λ que acepten los siguientes lenguajes:
n
Œ (ab ∪ b)∗ ab∗ , sobre Σ = {a, b}.
a(a ∪ c)∗ b+ , sobre Σ = {a, b, c}.
Ž ab∗ ∪ ba∗ ∪ b(ab ∪ ba)∗ , sobre Σ = {a, b}.
ab∗ ba∗ b(ab ∪ ba)∗ , sobre Σ = {a, b}.
(0 ∪ 010)∗ 0∗ (01 ∪ 10)∗ , sobre Σ = {0, 1}.
‘ 0+ 1(010)∗ (01 ∪ 10)∗ 1+ , sobre Σ = {0, 1}.
’ Σ = {a, b}. L = lenguaje de todas las cadenas sobre Σ que tienen un
n´mero par de aes y un n´mero par de bes.
u
u
53. 2.7. EQUIVALENCIA COMPUTACIONAL ENTRE LOS AFN-λ Y LOS AFN
2.7.
47
Equivalencia computacional entre los AFN-λ
y los AFN
En esta secci´n se mostrar´ que el modelo AFN-λ es computacionalmente
o
a
equivalente al modelo AFN. O dicho m´s gr´ficamente, las transiciones λ
a
a
se pueden eliminar, a˜adiendo transiciones que las simulen, sin alterar el
n
lenguaje aceptado.
En primer lugar, un AFN M = (Σ, Q, q0 , F, ∆) puede ser considerado
como un AFN-λ en el que, simplemente, hay cero transiciones λ. Para la
afirmaci´n rec´
o
ıproca tenemos el siguiente teorema.
2.7.1 Teorema. Dado un AFN-λ M = (Σ, Q, q0 , F, ∆), se puede construir
un AFN M ′ equivalente a M , es decir, tal que L(M ) = L(M ′ ).
Bosquejo de la demostraci´n. Para construir M ′ a partir de M se requiere
o
la noci´n de λ-clausura de un estado. Para un estado q ∈ Q, la λo
clausura de q, notada λ[q], es el conjunto de estados de M a los que se
puede llegar desde q por 0, 1 o m´s transiciones λ. N´tese que, en general,
a
o
λ[q] = ∆(q, λ). Por definici´n, q ∈ λ[q]. La λ-clausura de un conjunto de
o
estados {q1 , . . . , qk } se define por:
λ[{q1 , . . . , qk }] := λ[q1 ] ∪ · · · ∪ λ[qk ].
Adem´s, λ[∅] := ∅. Sea M ′ = (Σ, Q, q0 , F ′ , ∆′ ) donde
a
∆′ : Q × Σ
(q, a)
−→
−→
℘(Q)
∆′ (q, a) := λ ∆(λ[q], a) .
M ′ simula as´ las transiciones λ de M teniendo en cuenta todas las posibles
ı
trayectorias. F ′ se define como:
F ′ = {q ∈ Q : λ[q] contiene al menos un estado de aceptaci´n}.
o
Es decir, los estados de aceptaci´n de M ′ incluyen los estados de aceptaci´n
o
o
de M y aquellos estados desde los cuales se puede llegar a un estado de
aceptaci´n por medio de una o m´s transiciones λ.
o
a
Como se puede apreciar, la construcci´n de M ′ a partir de M es purao
mente algor´
ıtmica.
§
¤
¦
¥sentado en el segundo ejemplo de la secci´n 2.6.
o
Ejemplo
Vamos a ilustrar el anterior algoritmo con el AFN-λ M , pre-
54. 48
´
CAP´
ITULO 2. AUTOMATAS FINITOS
a
b
λ
q0
c
λ
q1
q2
L(M ) = a∗ b∗ c∗ . Las λ-clausuras de los estados vienen dadas por:
λ[q0 ] = {q0 , q1 , q2 }.
λ[q1 ] = {q1 , q2 }.
λ[q2 ] = {q2 }.
La funci´n de transici´n ∆′ : Q × {a, b, c} → ℘({q0 , q1 , q2 }) es:
o
o
∆′ (q0 , a)
∆′ (q0 , b)
∆′ (q0 , c)
∆′ (q1 , a)
∆′ (q1 , b)
∆′ (q1 , c)
∆′ (q2 , a)
∆′ (q2 , b)
∆′ (q2 , c)
=
=
=
=
=
=
=
=
=
λ [∆(λ[q0 ], a)] = λ [∆({q0 , q1 , q2 }, a)] = λ[{q0 }] = {q0 , q1 , q2 }.
λ [∆(λ[q0 ], b)] = λ [∆({q0 , q1 , q2 }, b)] = λ[{q1 }] = {q1 , q2 }.
λ [∆(λ[q0 ], c)] = λ [∆({q0 , q1 , q2 }, c)] = λ[{q2 }] = {q2 }.
λ [∆(λ[q1 ], a)] = λ [∆({q1 , q2 }, a)] = λ[∅] = ∅.
λ [∆(λ[q1 ], b)] = λ [∆({q1 , q2 }, b)] = λ[{q1 }] = {q1 , q2 }.
λ [∆(λ[q1 ], c)] = λ [∆({q1 , q2 }, c)] = λ[{q2 }] = {q2 }.
λ [∆(λ[q2 ], a)] = λ [∆({q2 }, a)] = λ[∅] = ∅.
λ [∆(λ[q2 ], b)] = λ [∆({q2 }, b)] = λ[∅] = ∅.
λ [∆(λ[q2 ], c)] = λ [∆({q2 }, c)] = λ[{q2 }] = {q2 }.
El aut´mata M ′ as´ obtenido es el siguiente:
o
ı
a, b, c
q0
a
q1
a, b
§
b, c
b
¤
¦
q2
¥
Ejercicios de la secci´n 2.7
o
Construir AFN equivalentes a los siguientes AFN-λ:
Œ
λ
q0
a, λ
b
q1
b
q2
q3
λ
c
55. 49
2.8. TEOREMA DE KLEENE. PARTE I
a
λ
q0
a
λ
q1
b
q2
b
λ
q3
b
2.8.
Teorema de Kleene. Parte I
En las secciones anteriores se ha mostrado la equivalencia computacional
de los modelos AFD, AFN y AFN-λ, lo cual puede ser descrito en la forma:
AFD ≡ AFN ≡ AFN-λ
Esto quiere decir que para cada aut´mata de uno de estos tres modelos se
o
pueden construir aut´matas equivalentes en los otros modelos. Por lo tanto,
o
los modelos AFD, AFN y AFN-λ aceptan exactamente los mismos lenguajes. El Teorema de Kleene establece que tales lenguajes son precisamente
los lenguajes regulares.
2.8.1. Teorema de Kleene. Un lenguaje es regular si y s´lo si es aceptado
o
por un aut´mata finito (AFD o AFN o AFN-λ).
o
Para demostrar el teorema consideraremos las dos direcciones por separado.
Primero demostraremos que para un lenguaje regular L dado existe un
AFN-λ tal que L(M ) = L. En la secci´n 2.11 demostraremos que, a partir
o
de un AFD M , se puede encontrar una expresi´n regular R tal que L(M ) =
o
R. En ambas direcciones las demostraciones son constructivas.
Las construcciones de este cap´
ıtulo se pueden presentar as´
ı:
AFN
AFD
T. de Kleene II
AFN-λ
Lenguajes regulares
T. de Kleene I
56. 50
´
CAP´
ITULO 2. AUTOMATAS FINITOS
Parte I. Dada una expresi´n regular R sobre un alfabeto Σ, se puede
o
construir un AFN-λ M tal que el lenguaje aceptado por M sea exactamente
el lenguaje representado por R.
Expresi´n regular R
o
M
Procedimiento
−− − − −
− − − −→
AFN-λ
algor´
ıtmico
tal que L(M ) = R.
Demostraci´n. Puesto que la definici´n de las expresiones regulares se hace
o
o
recursivamente, la demostraci´n se lleva a cabo razonando por inducci´n soo
o
bre R. Para las expresiones regulares b´sicas, podemos construir f´cilmente
a
a
aut´matas que acepten los lenguajes representados. As´ el aut´mata
o
ı,
o
q0
q1
acepta el lenguaje ∅, es decir, el lenguaje representado por la expresi´n
o
regular R = ∅.
El aut´mata
o
q0
acepta el lenguaje {λ}, es decir, el lenguaje representado por la expresi´n
o
regular R = λ.
El aut´mata
o
a
q0
q1
acepta el lenguaje {a}, a ∈ Σ, es decir, el lenguaje representado por la
expresi´n regular R = a.
o
Paso inductivo: sup´ngase que para las expresiones regulares R y S exiso
ten AFN-λ M1 y M2 tales que L(M1 ) = R y L(M2 ) = S. Esquem´ticamente
a
vamos a presentar los aut´matas M1 y M2 en la siguiente forma:
o
M1
M2
.
.
.
.
.
.
57. 51
2.8. TEOREMA DE KLEENE. PARTE I
Los estados finales o de aceptaci´n se dibujan a la derecha, pero cabe ado
vertir que el estado inicial puede ser tambi´n un estado de aceptaci´n.
e
o
Obviando ese detalle, podemos ahora obtener AFN-λ que acepten los lenguajes R ∪ S, RS y R∗ .
Aut´mata que acepta R ∪ S. Los aut´matas M1 y M2 se conectan
o
o
en paralelo y los estados finales del nuevo aut´mata son los estados
o
finales de M1 junto con los de M2 :
M1
.
.
.
λ
M2
λ
.
.
.
Aut´mata que acepta RS. Los aut´matas M1 y M2 se conectan en
o
o
serie y los estados finales del nuevo aut´mata son unicamente los
o
´
estados finales de M2 :
λ
M1
.
.
.
.
.
.
M2
.
.
.
λ
Aut´mata que acepta R∗ . Los estados finales del nuevo aut´mata son
o
o
los estados finales de M1 junto con el estado inicial.
58. 52
´
CAP´
ITULO 2. AUTOMATAS FINITOS
λ
M1
.
.
.
λ
Esto concluye la demostraci´n de la parte I del Teorema de Kleene. En la sio
guiente secci´n se presentan ejemplos concretos del procedimiento utilizado
o
en la demostraci´n.
o
2.9.
Ejemplos de la parte I del Teorema de Kleene
De acuerdo con las construcciones presentadas en la demostraci´n de la
o
parte I del Teorema de Kleene, un AFN-λ que acepta el lenguaje a∗ es:
λ
a
Para simplificar las pr´ximas construcciones utilizaremos, en su lugar, el
o
bucle de un estado:
a
§
¤
¦
¥un AFN-λ que acepte el lenguaje a∗ (ab ∪ ba)∗ ∪ a(b ∪ a∗ ) sobre
Ejemplo
Vamos a utilizar el procedimiento del teorema para construir
el alfabeto {a, b}.
Aut´mata que acepta ab:
o
a
λ
b
59. 2.9. EJEMPLOS DE LA PARTE I DEL TEOREMA DE KLEENE
Aut´mata que acepta ba:
o
a
λ
b
Aut´mata que acepta ab ∪ ba:
o
a
λ
b
b
λ
a
a
λ
b
b
λ
a
λ
λ
Aut´mata que acepta (ab ∪ ba)∗ :
o
λ
λ
λ
λ
53
60. 54
´
CAP´
ITULO 2. AUTOMATAS FINITOS
Aut´mata que acepta a∗ (ab ∪ ba)∗ :
o
λ
a
λ
b
b
a
λ
λ
a
λ
λ
λ
Aut´mata que acepta b ∪ a∗ :
o
b
λ
λ
a
Aut´mata que acepta a(b ∪ a∗ ):
o
b
λ
a
λ
λ
a
61. 55
2.10. LEMA DE ARDEN
Aut´mata que acepta a∗ (ab ∪ ba)∗ ∪ a(b ∪ a∗ ):
o
λ
a
λ
λ
b
b
a
λ
λ
a
λ
λ
λ
b
λ
λ
a
λ
λ
a
§
¤
¦
¥
Ejercicios de la secci´n 2.9
o
Dise˜ar aut´matas AFN-λ que acepten los siguientes lenguajes sobre el
n
o
alfabeto Σ = {a, b, c}:
Œ a∗ (b ∪ ab∗ ∪ ab∗ a)c∗ ∪ (a ∪ b)(a ∪ ac)∗ .
c∗ a(a ∪ ba)∗ (abc)∗ ∪ c∗ (a ∪ cb∗ c).
Ž (ac)∗ ∪ a(a ∪ ab∗ a) ∪ (abc)∗ (cba)∗ ∪ (c ∪ ab ∪ ba ∪ ca)∗ (ca ∪ cb)∗ .
2.10.
Lema de Arden
Vamos a utilizar el siguiente resultado, conocido como “lema de Arden”,
para demostrar la segunda parte del Teorema de Kleene.
2.10.1. Lema de Arden. Si A y B son lenguajes sobre un alfabeto Σ y
λ ∈ A, entonces la ecuaci´n X = AX ∪ B tiene una unica soluci´n dada
o
´
o
por X = A∗ B.
62. 56
´
CAP´
ITULO 2. AUTOMATAS FINITOS
Demostraci´n. Si X es una soluci´n de X = AX ∪ B, entonces B ⊆
o
o
AX ∪ B = X. Tambi´n se tiene AX ⊆ X; a partir de esta contenencia y
e
usando inducci´n sobre n, se puede demostrar que An X ⊆ X para todo
o
n ∈ N. Por lo tanto
An B ⊆ An X ⊆ X
para todo n ∈ N. As´ que
ı
An B =
A∗ B =
n≥0
An B ⊆ X.
n≥0
Esto muestra que toda soluci´n de X = AX ∪ B contiene a A∗ B y es f´cil
o
a
verificar que, de hecho, A∗ B es una soluci´n:
o
A(A∗ B) ∪ B = A+ B ∪ B = (A+ ∪ λ)B = A∗ B.
Para la unicidad, demostraremos que si A∗ B ∪ C, con C ∩ A∗ B = ∅, es una
soluci´n de la ecuaci´n, entonces C = ∅.
o
o
A∗ B ∪ C = A(A∗ B ∪ C) ∪ B
= A+ B ∪ AC ∪ B
= (A+ ∪ λ)B ∪ AC
= A∗ B ∪ AC.
Intersectando con C ambos lados de la anterior igualdad, se tiene:
(A∗ B ∩ C) ∪ C = (A∗ B ∩ C) ∪ (AC ∩ C),
C = AC ∩ C.
Por lo tanto, C ⊆ AC. Si se tuviera C = ∅, existir´ una cadena u ∈ C de
ıa
longitud m´
ınima. Entonces u = vw, con v ∈ A, w ∈ C. Como λ ∈ A, v = λ;
por consiguiente |w| |u|. Esta contradicci´n muestra que necesariamente
o
C = ∅, tal como se quer´
ıa.
§
¤
¦
§
¥
¤
¦
¥X = (a2 ∪ b+ )X ∪ ab. Por el lema de Arden la ecuaci´n tiene
o
Ejemplo
Ejemplo
La ecuaci´n X = aX ∪ b∗ ab tiene soluci´n unica X = a∗ b∗ ab.
o
o ´
La ecuaci´n X = a2 X ∪ b+ X ∪ ab se puede escribir en la forma
o
soluci´n unica X = (a2 ∪ b+ )∗ ab.
o ´
§
¤
¦
¥X = (ab2 ∪ a)X ∪ (a∗ b ∪ b∗ a). Por lema de Arden la ecuaci´n
o
Ejemplo
La ecuaci´n X = ab2 X ∪ aX ∪ a∗ b ∪ b∗ a se puede escribir como
o
tiene soluci´n unica X = (ab2 ∪ a)∗ (a∗ b ∪ b∗ a).
o ´
63. 2.11. TEOREMA DE KLEENE. PARTE II
§
¤
¦
57
¥
Ejercicios de la secci´n 2.10
o
Œ Encontrar las soluciones (´nicas) de las siguientes ecuaciones:
u
(i) X = aX ∪ bX.
(ii) X = aX ∪ b∗ ab ∪ bX ∪ a∗ .
! Demostrar de si λ ∈ A, entonces Y es una soluci´n de la ecuaci´n
o
o
X = AX ∪ B si y solo si Y = A∗ (B ∪ D) para alg´n D ⊆ Σ∗ .
u
2.11.
Teorema de Kleene. Parte II
En esta secci´n demostraremos que para todo AFN M = (Σ, Q, q0 , F, ∆)
o
existe una expresi´n regular R tal que L(M ) = R.
o
Un aut´mata tiene un unico estado inicial pero cambiando dicho eso
´
tado surgen nuevos aut´matas. Para cada qi ∈ Q, sea Mi el aut´mata
o
o
que coincide con M pero con estado inicial qi ; m´s precisamente, Mi =
a
(Σ, Q, qi , F, ∆). Al lenguaje aceptado por Mi lo denotaremos Ai ; es decir,
L(Mi ) = Ai . En particular, A0 = L(M ). Puesto que los estados de aceptaci´n no se han alterado, se tiene que
o
Ai = {w ∈ Σ∗ : ∆(qi , w) ∩ F = ∅}.
Cada Ai se puede escribir como
{aAj : qj ∈ ∆(qi , a)},
(2.1)
Ai = a∈Σ
{aAj : qj ∈ ∆(qi , a)} ∪ λ.
si qi ∈ F,
si qi ∈ F.
a∈Σ
Si Q = {q0 , q1 , . . . , qn }, las igualdades de la forma (2.1) dan lugar a un
sistema de n + 1 ecuaciones con n + 1 inc´gnitas (los Ai ):
o
A0 = C01 A0 ∪ C02 A1 ∪ · · · ∪ C0n An (∪λ)
A1 = C11 A0 ∪ C12 A1 ∪ · · · ∪ C1n An (∪λ)
..
..
..
An = Cn1 A0 ∪ Cn2 A1 ∪ · · · ∪ Cnn An (∪λ)
donde cada coeficiente Cij o es ∅ o es un s´
ımbolo de Σ. El t´rmino λ se
e
a˜ade a una ecuaci´n solamente si el estado correspondiente es un estado
n
o
de aceptaci´n.
o
64. 58
´
CAP´
ITULO 2. AUTOMATAS FINITOS
Utilizando sucesivas veces el lema de Arden, se puede mostrar que este
sistema de ecuaciones siempre se puede solucionar y su soluci´n es unica.
o
´
En efecto, comenzando con la ultima ecuaci´n, se escribe An en t´rminos
´
o
e
de los dem´s Ai , para lo cual se usa el lema de Arden si es necesario. Este
a
valor de An se reemplaza en las dem´s ecuaciones y el sistema se reduce a
a
n ecuaciones con n inc´gnitas. Similarmente, An−1 se escribe en t´rminos
o
e
de los dem´s Ai , usando el lema de Arden si es necesario, y tal valor se
a
reemplaza en las ecuaciones restantes. Prosiguiendo de esta manera, el sistema original se reduce a una sola ecuaci´n cuya inc´gnita es precisamente
o
o
A0 . Esta ecuaci´n se soluciona recurriendo una vez m´s al lema de Arden.
o
a
Puesto que los coeficientes Cij diferentes de ∅ son s´
ımbolos de Σ, se obtiene
una expresi´n regular R tal que L(M ) = A0 = R.
o
2.12.
Ejemplos de la parte II del Teorema de
Kleene
A continuaci´n ilustraremos el procedimiento de la secci´n 2.11 para eno
o
contrar L(M ) a partir de un AFN M = (Σ, Q, q0 , F, ∆) dado.
§
¤
¦
¥
Ejemplo
Consid´rese el siguiente AFN M :
e
a
a
a
q0
q1
b
a
q2
b
Por simple inspecci´n sabemos que L(M ) = (a ∪ b)∗ a2 (a ∪ b)∗ , pero utilio
zaremos el m´todo descrito para encontrar expl´
e
ıcitamente L(M ).
El sistema de ecuaciones
(1)
(2)
(3)
asociado con el aut´mata M es:
o
A0 = aA0 ∪ bA0 ∪ aA1
A1 = aA2
A2 = aA2 ∪ bA2 ∪ λ.
La ecuaci´n (3) se puede escribir como
o
(4)
A2 = (a ∪ b)A2 ∪ λ.
Aplicando el lema de Arden en (4):
(5)
A2 = (a ∪ b)∗ λ = (a ∪ b)∗ .
65. 2.12. EJEMPLOS DE LA PARTE II DEL TEOREMA DE KLEENE
59
Reemplazando (5) en (2):
(6)
A1 = a(a ∪ b)∗ .
Reemplazando (6) en (1):
(7)
A0 = (a ∪ b)A0 ∪ a2 (a ∪ b)∗ .
Aplicando el lema de Arden en (7) concluimos:
A0 = (a ∪ b)∗ a2 (a ∪ b)∗
§
¤
¦
¥el siguiente AFN M :
Ejemplo
Encontrar una expresi´n regular para el lenguaje aceptado por
o
a
a
q0
q1
b
q2
b
a
b
q3
q4
a
a
El sistema de ecuaciones asociado con el aut´mata M es:
o
(1) A0 = aA1
(2) A1 = aA2
(3) A2 = bA2 ∪ bA3 ∪ λ
(4) A3 = aA3 ∪ bA4
(5) A4 = aA2 ∪ aA3 ∪ λ
Reemplazando (5) en (4):
(6)
A3 = aA3 ∪ baA2 ∪ baA3 ∪ b = (a ∪ ba)A3 ∪ baA2 ∪ b.
Aplicando el lema de Arden en (6):
(7)
A3 = (a ∪ ba)∗ (baA2 ∪ b) = (a ∪ ba)∗ baA2 ∪ (a ∪ ba)∗ b.
Reemplazando (7) en (3):
(8)
A2 = bA2 ∪ b(a ∪ ba)∗ baA2 ∪ b(a ∪ ba)∗ b ∪ λ.
El sistema original de cinco ecuaciones y cinco inc´gnitas se reduce al siso
tema de tres ecuaciones y tres inc´gnitas formado por (1), (2) y (8).
o
La ecuaci´n (8) se puede escribir como
o
66. 60
(9)
´
CAP´
ITULO 2. AUTOMATAS FINITOS
A2 = b ∪ b(a ∪ ba)∗ ba A2 ∪ b(a ∪ ba)∗ ∪ λ.
Aplicando el lema de Arden en (9):
(10)
A2 =
b ∪ b(a ∪ ba)∗ ba
∗
b(a ∪ ba)∗ b ∪ λ .
Si se sustituye (10) en (2) y luego el valor de A1 obtenido se sustituye en
(1), se obtiene finalmente:
A0 = a2 b ∪ b(a ∪ ba)∗ ba
∗
b(a ∪ ba)∗ b ∪ λ
§
¤
¦
¥las cadenas sobre Σ = {a, b} que tienen un n´mero par de aes
u
Ejemplo
Encontrar una expresi´n regular para el lenguaje L de todas
o
y un n´mero par de bes. El siguiente aut´mata acepta el lenguaje L:
u
o
a
q0
q1
a
b
b
b
b
a
q2
q3
a
Este aut´mata da lugar al siguiente sistema de ecuaciones:
o
(1) A0 = aA1 ∪ bA2 ∪ λ
(2) A = aA ∪ bA
1
0
3
(3) A2 = aA3 ∪ bA0
(4) A = aA ∪ bA
3
2
1
Reemplazando (4) en (3):
(5)
A2 = a2 A2 ∪ abA1 ∪ bA0 .
Reemplazando (4) en (2):
(6)
A1 = aA0 ∪ baA2 ∪ b2 A1 .
El sistema original de cuatro ecuaciones y cuatro inc´gnitas se reduce a un
o
sistema de tres ecuaciones y tres inc´gnitas, a saber:
o
(1) A0 = aA1 ∪ bA2 ∪ λ
(6) A1 = aA0 ∪ baA2 ∪ b2 A1
(5) A2 = a2 A2 ∪ abA1 ∪ bA0
67. 61
2.12. EJEMPLOS DE LA PARTE II DEL TEOREMA DE KLEENE
Aplicando el lema de Arden en (5):
(7)
A2 = (a2 )∗ (abA1 ∪ bA0 ) = (a2 )∗ abA1 ∪ (a2 )∗ bA0 .
Reemplazando (7) en (6):
(8)
A1 = aA0 ∪ ba(a2 )∗ abA1 ∪ ba(a2 )∗ bA0 ∪ b2 A1 .
Reemplazando (7) en (1):
(9)
A0 = aA1 ∪ b(a2 )∗ abA1 ∪ b(a2 )∗ bA0 ∪ λ.
El sistema se reduce ahora a dos ecuaciones:
(9) A0 = aA1 ∪ b(a2 )∗ abA1 ∪ b(a2 )∗ bA0 ∪ λ
(8) A1 = aA0 ∪ ba(a2 )∗ abA1 ∪ ba(a2 )∗ bA0 ∪ b2 A1
= ba(a2 )∗ ab ∪ b2 A1 ∪ aA0 ∪ ba(a2 )∗ bA0 .
Aplicando el lema de Arden en (8):
(10)
A1 = ba(a2 )∗ ab ∪ b2
∗
aA0 ∪ ba(a2 )∗ bA0
∗
∗
= ba(a2 )∗ ab ∪ b2 aA0 ∪ ba(a2 )ab ∪ b2 ba(a2 )∗ bA0 .
∗
Haciendo R = ba(a2 )∗ ab ∪ b2 , (10) se puede escribir como
(11)
A1 = RaA0 ∪ Rba(a2 )∗ bA0 .
Aplicando el lema de Arden en (9):
(12)
A0 = b(a2 )∗ b
∗
aA1 ∪ b(a2 )∗ abA1 ∪ λ
∗
∗
∗
= b(a2 )∗ b aA1 ∪ b(a2 )∗ b b(a2 )∗ abA1 ∪ b(a2 )∗ b .
∗
Haciendo S = b(a2 )∗ b , (12) se puede escribir como:
(13)
A0 = SaA1 ∪ Sb(a2 )∗ abA1 ∪ S.
Al sustituir (11) en (13), el sistema original se reduce a una sola ecuaci´n:
o
(14) A0 = Sa RaA0 ∪ Rba(a2 )∗ bA0 ∪ Sb(a2 )∗ ab RaA0 ∪ Rba(a2 )∗ bA0 ∪ S.
Agrupando los t´rminos en los que aparece A0 y factorizando, se obtiene
e
(15) A0 = SaRa∪SaRba(a2 )∗ b∪Sb(a2 )a bRa∪Sb(a2 )∗ abRba(a2 )∗ b A0 ∪S.
Aplicando lema de Arden en (15):
∗
(16) A0 = SaRa ∪ SaRba(a2 )∗ b ∪ Sb(a2 )∗ abRa ∪ Sb(a2 )∗ abRba(a2 )∗ b S.
Si sustituimos R y S en (16) obtenemos una expresi´n regular para L.
o
68. 62
´
CAP´
ITULO 2. AUTOMATAS FINITOS
§
¤
¦
¥
Ejercicios de la secci´n 2.12
o
Œ Utilizando el lema de Arden, encontrar expresiones regulares para los
siguientes lenguajes sobre Σ = {a, b}:
(i) El lenguaje L de todas las cadenas que tienen un n´mero par
u
de aes y un n´mero impar de bes.
u
(ii) El lenguaje L de todas las cadenas que tienen un n´mero par
u
de aes o un n´mero impar de bes.
u
Utilizando el lema de Arden, encontrar expresiones regulares para los
lenguajes aceptados por los siguientes AFN:
(i)
b
b
a
q0
a
q1
a
q2
a
q3
b
(ii)
b
q0
b
q1
b
a
q2
a
q3
q4
b
b
69. Cap´tulo
ı
3
Otras propiedades de los lenguajes
regulares
En los dos cap´
ıtulos anteriores hemos presentado las propiedades b´sicas de
a
los lenguajes regulares pero no hemos visto c´mo se puede demostrar que
o
un lenguaje no es regular. El llamado “lema de bombeo”, expuesto en este
cap´
ıtulo, sirve para tal prop´sito. Tambi´n veremos que la regularidad es
o
e
una propiedad que se preserva por las operaciones booleanas usuales, por
homomorfismos y por las im´genes inversas de homomorfismos. Finalmena
te, analizaremos ciertos problemas de decisi´n referentes a aut´matas y a
o
o
lenguajes regulares.
3.1.
Lema de bombeo
El llamado “lema de bombeo” (pumping lemma, en ingl´s) es una propiee
dad de los lenguajes regulares que es muy util para demostrar que ciertos
´
lenguajes no son regulares.
3.1.1. Lema de bombeo. Para todo lenguaje regular L (sobre un alfabeto
dado Σ) existe una constante n ∈ N, llamada constante de bombeo para L,
tal que toda cadena w ∈ L, con |w| ≥ n, satisface la siguiente propiedad:
(B)
w se puede descomponer como w = uvx, con |uv| ≤ n, v = λ,
y para todo i ≥ 0 se tiene uv i x ∈ L.
Demostraci´n. Por el Teorema de Kleene y por los teoremas de equivalencia
o
de los modelos AFD, AFN y AFN-λ, existe un AFD M tal que L(M ) = L.
63
70. 64
CAP´
ITULO 3. OTRAS PROPIEDADES DE LOS LENGUAJES REGULARES
Sea
n = # de estados de M.
Si w ∈ L y |w| ≥ n, entonces durante el procesamiento completo de w, hay
por lo menos un estado que se repite. Sea q el primer estado que se repite.
Tal como se muestra en la siguiente gr´fica, w se puede descomponer como
a
w = uvx, donde |uv| ≤ n, v = λ.
w
···
↑
q0
u
···
↑
q
···
≡
x
↑
p
↑
q
v
N´tese que tanto u como x pueden ser la cadena vac´ λ, pero v = λ.
o
ıa
Adem´s, la cadena v se puede “bombear”, en el sentido de que uv i x es
a
aceptada por M para todo i ≥ 0. En el diagrama de estados, se puede
visualizar esta propiedad de bombeo de v:
v
u
q
q0
x
p
Uso del lema de bombeo. El lema de bombeo se puede usar para concluir
que un cierto lenguaje dado L no es regular, recurriendo a un razonamiento
por contradicci´n (o reducci´n al absurdo). El razonamiento utilizado tiene
o
o
la siguiente forma:
1. Si L fuera regular, existir´ una constante de bombeo n para L.
ıa
2. Se escoge una cadena “adecuada” w ∈ L y se aplica la propiedad (B)
del lema de bombeo, descomponiendo w como
w = uvx,
v = λ,
|uv| ≤ n.
3. Se llega a la siguiente contradicci´n:
o
(I) Por el lema de bombeo, uv i x ∈ L, para todo i ≥ 0.
71. 3.1. LEMA DE BOMBEO
65
(II) uv i x no puede estar en L, para alg´n i ∈ I. Por lo general, basta
u
escoger valores peque˜os de i como i = 0 ´ i = 2.
n
o
§
¤
¦
¥{ai bi : i ≥ 0} no es regular.
Ejemplo
Usar el lema de bombeo para demostrar que el lenguaje L =
ıa
Soluci´n. Si L fuera regular, existir´ una constante de bombeo n para L.
o
Sea w = an bn ∈ L. Entonces w se puede descomponer como w = uvx, con
|v| ≥ 1 y |uv| ≤ n. Por lo tanto, u y v constan unicamente de aes:
´
u = ar ,
v = as ,
para alg´n r ≥ 0,
u
para alg´n s ≥ 1.
u
Entonces,
x = an−(r+s) bn = an−r−s bn .
Por el lema de bombeo, uv i x ∈ L para todo i ≥ 0. En particular, si i = 0,
ux ∈ L. Pero ux = ar an−r−s bn = an−s bn . Como n − s = n, la cadena
ux ∈ L lo cual es una contradicci´n. Se concluye entonces que L no puede
/
o
ser regular.
Tomando i = 2 tambi´n se llega a una contradicci´n: por un lado, uv 2 x ∈
e
o
L, pero
uv 2 x = ar as as an−r−s bn = ar+2s+n−r−s bn = an+s bn .
Como s ≥ 1, an+s bn no est´ en L.
a
El argumento anterior tambi´n sirve para demostrar que el lenguaje
e
L = {ai bi : i ≥ 1} no es regular.
§
¤
¦
¥es un lenguaje regular. Recu´rdese que un pal´
e
ındromo es una
Ejemplo
Demostrar que el lenguaje de los pal´
ındromos sobre {a, b} no
cadena w tal que w = wR .
ıa
Soluci´n. Si L fuera regular, existir´ una constante de bombeo n para L.
o
Sea w = an ban ∈ L. Entonces w se puede descomponer como w = uvx, con
|v| ≥ 1, |uv| ≤ n, y para todo i ≥ 0, uv i x ∈ L. Por lo tanto, u y v constan
unicamente de aes:
´
u = ar ,
v = as ,
para alg´n r ≥ 0,
u
para alg´n s ≥ 1.
u
Entonces,
x = an−(r+s) ban = an−r−s ban .
72. 66
CAP´
ITULO 3. OTRAS PROPIEDADES DE LOS LENGUAJES REGULARES
Tomando i = 0, se concluye que ux ∈ L, pero
ux = ar an−r−s ban = an−s ban .
Como s ≥ 1, an−s ban no es un pal´
ındromo. Esta contradicci´n muestra que
o
L no puede ser regular.
§
Ejemplo
¦
2
¤
Demostrar que el lenguaje L = ai : i ≥ 0 no es regular. L
¥est´ formado por cadenas de aes cuya longitud es un cuadrado
a
perfecto.
Soluci´n. Si L fuera regular, existir´ una constante de bombeo n para L.
o
ıa
2
Sea w = an ∈ L. Entonces w se puede descomponer como w = uvx, con
|v| ≥ 1, |uv| ≤ n. Por el lema de bombeo, uv 2 x ∈ L, pero por otro lado,
n2 n2 + |v| = |uvx| + |v| = |uv 2 x| ≤ n2 + |uv| ≤ n2 + n (n + 1)2 .
Esto quiere decir que el n´mero de s´
u
ımbolos de la cadena uv 2 x no es un
cuadrado perfecto y, por consiguiente, uv 2 x ∈ L. En conclusi´n, L no es
o
regular.
§
¤
¦
¥
Ejercicios de la secci´n 3.1
o
Œ Usar el lema de bombeo para demostrar que los siguientes lenguajes
no son regulares:
(i) L = {w ∈ {a, b}∗ : w tiene el mismo n´mero de aes que de bes}.
u
(ii) L = {ai bai : i ≥ 1}, sobre Σ = {a, b}.
(iii) L = {ai bj ai : i, j ≥ 0}, sobre Σ = {a, b}.
(iv) L = {0i 12i : i ≥ 0}, sobre Σ = {0, 1}.
(v) L = {1i 01i 0 : i ≥ 1}, sobre Σ = {0, 1}.
(vi) L = {ai bj ci+j : i, j ≥ 0}, sobre Σ = {a, b, c}.
(vii) L = {ai bj : j i ≥ 0}, sobre Σ = {a, b}.
(viii) L = {ww : w ∈ Σ∗ }, siendo Σ = {a, b}.
(ix) L = {wwR : w ∈ Σ∗ }, siendo Σ = {a, b}.
(x) L = {ai : i es un n´mero primo}, sobre Σ = {a}.
u
¿Es L = {(ab)i : i ≥ 0} un lenguaje regular?
Ž Encontrar la falacia en el siguiente argumento: “Seg´n la propiedad
u
(B) del enunciado del lema de bombeo, se tiene que uv i x ∈ L para todo i ≥ 0. Por consiguiente, L posee infinitas cadenas y, en conclusi´n,
o
todo lenguaje regular es infinito.”
73. 3.2. PROPIEDADES DE CLAUSURA
3.2.
67
Propiedades de clausura
Las propiedades de clausura afirman que a partir de lenguajes regulares se
pueden obtener otros lenguajes regulares por medio de ciertas operaciones
entre lenguajes. Es decir, la regularidad es preservada por ciertas operaciones entre lenguajes; en tales casos se dice que los lenguajes regulares son
cerrados bajo las operaciones.
El siguiente teorema establece que la colecci´n R ⊆ ℘(Σ∗ ) de los leno
guajes regulares sobre un alfabeto Σ es cerrada bajo todas las operaciones
booleanas.
3.2.1 Teorema. Si L, L1 y L2 son lenguajes regulares sobre un alfabeto
Σ, tambi´n lo son:
e
(1) L1 ∪ L2
(2) L1 L2
(3) L∗
(4) L+
(5) L = Σ∗ − L
(6) L1 ∩ L2
(7) L1 − L2
(8) L1 ¡ L2
Demostraci´n.
o
(uni´n)
o
(concatenaci´n)
o
(estrella de Kleene)
(clausura positiva)
(complemento)
(intersecci´n)
o
(diferencia)
(diferencia sim´trica)
e
(1), (2) y (3) se siguen de la definici´n de los lenguajes regulares.
o
(4) Por (2), (3) y L+ = L∗ L.
(5) Por el Teorema de Kleene y por los teoremas de equivalencia de los
modelos AFD, AFN y AFN-λ, existe un AFD M = (Σ, Q, q0 , F, δ) tal
que L(M ) = L. Para construir un AFD que acepte el complemento
de L basta intercambiar los estados finales con los no finales. Si M ′
es el aut´mata (Σ, Q, q0 , Q − F, δ), entonces L(M ′ ) = L.
o
(6) Se sigue de (1) y (5) teniendo en cuenta que L1 ∩ L2 = L1 ∪ L2 .
(7) Se sigue de (5) y (6) teniendo en cuenta que L1 − L2 = L1 ∩ L2 .
(8) Puesto que
L1 ¡ L2 = (L1 ∪ L2 ) − (L1 ∩ L2 ) = (L1 − L2 ) ∪ (L2 − L1 )
el resultado se sigue de (1), (6), (7).
74. 68
CAP´
ITULO 3. OTRAS PROPIEDADES DE LOS LENGUAJES REGULARES
Recu´rdese que un ´lgebra booleana de conjuntos es una familia A ⊆
e
a
℘(X) cerrada bajo las operaciones de uni´n, intersecci´n y complemento,
o
o
tal que ∅ ∈ A, X ∈ A.
3.2.2 Corolario. La colecci´n R ⊆ ℘(Σ∗ ) de todos los lenguajes regulares
o
sobre un alfabeto Σ es un ´lgebra booleana de conjuntos.
a
Demostraci´n. Se sigue del Teorema 3.2.1 y del hecho de que ∅ y Σ∗ son
o
lenguajes regulares sobre Σ.
Hemos visto que un lenguaje finito es regular y que la uni´n fio
nita de lenguajes regulares es regular. Pero una uni´n infinita de
o
lenguajes regulares no necesariamente es regular; consid´rese, por
e
ejemplo,
L = {an bn : n ≥ 1} =
{ai bi }.
i≥1
Cada conjunto {ai bi } es regular (porque posee s´lo una cadena)
o
pero L no lo es.
Un sublenguaje (subconjunto) de un lenguaje regular no es necesariamente regular, es decir, la familia de los lenguajes regulares
no es cerrada para subconjuntos. Dicho de otra forma, un lenguaje regular puede contener sublenguajes no-regulares. Por ejemplo,
L = {an bn : n ≥ 1} es un sublenguaje del lenguaje regular a∗ b∗ ,
pero L mismo no es regular.
Las propiedades de clausura permiten concluir, razonando por contradicci´n, que ciertos lenguajes no son regulares. Esto se ilustra en los siguientes
o
ejemplos en los que se usa el hecho de que los lenguajes L = {ai bi : i ≥ 0}
y L = {ai bi : i ≥ 1} no son regulares.
§
¤
¦
L = {ai bj : i, j ≥ 0, i = j} no es regular. Si lo fuera, a∗ b∗ − L
¥tambi´n lo ser´ pero a∗ b∗ − L = {ai bi : i ≥ 0}.
e
ıa,
§
¤
¦
¥Σ = {a, b} no es regular. Si L fuera regular, tambi´n lo ser´
e
ıa
Ejemplo
Ejemplo
El lenguaje L = {wbn : w ∈ Σ∗ , |w| = n, n ≥ 1} sobre
L ∩ a∗ b∗ pero L ∩ a∗ b∗ = {an bn : n ≥ 1}.
§
¤
¦
¥
Ejercicios de la secci´n 3.2
o
Œ Demostrar que a∗ b∗ es la uni´n de dos lenguajes disyuntos no-regulares.
o
75. ´
3.3. PROPIEDADES DE CLAUSURA PARA AUTOMATAS
69
Sea L un lenguaje no-regular y N un subconjunto finito de L. Demostrar que L − N tampoco es regular.
Ž Demostrar o refutar las siguientes afirmaciones:
(i) Un lenguaje no-regular debe ser infinito.
(ii) Si el lenguaje L1 ∪ L2 es regular, tambi´n lo son L1 y L2 .
e
(iii) Si los lenguajes L1 y L2 no son regulares, el lenguaje L1 ∩ L2
tampoco puede ser regular.
(iv) Si el lenguaje L∗ es regular, tambi´n lo es L.
e
(v) Si L es regular y N es un subconjunto finito de L, entonces
L − N es regular.
(vi) Un lenguaje regular L es infinito si y s´lo si en cualquier expreo
si´n regular de L aparece por lo menos una ∗.
o
Utilizar las propiedades de clausura para concluir que los siguientes
lenguajes no son regulares:
(i) L = {1i 01j 0 : i, j ≥ 1, i = j}, sobre Σ = {0, 1}. Ayuda: utilizar
el ejercicio 1(v) de la secci´n 3.1.
o
(ii) L = {uvuR : u, v ∈ {a, b}+ }, sobre Σ = {a, b}. Ayuda: utilizar
el ejercicio 1(ii) de la secci´n 3.1.
o
(iii) L = {u : |u| es un cuadrado perfecto}, sobre Σ = {a, b, c}. Ayuda: utilizar el ultimo ejemplo de la secci´n 3.1.
´
o
3.3.
Propiedades de clausura para aut´matas
o
Las propiedades de clausura del Teorema 3.2.1 se pueden enunciar como
procedimientos algor´
ıtmicos para la construcci´n de aut´matas finitos.
o
o
3.3.1 Teorema. Sean M , M1 y M2 aut´matas finitos (ya sean AFD o AFN
o
o AFN-λ) y L(M ) = L, L(M1 ) = L1 , L(M2 ) = L2 . Se pueden construir
aut´matas finitos que acepten los siguientes lenguajes:
o
(1)
(2)
(3)
(4)
L1 ∪ L2 .
L1 L2 .
L∗ .
L+ .
(5)
(6)
(7)
(8)
L = Σ∗ − L.
L1 ∩ L2 .
L1 − L2 .
L1 ¡ L2 .
Demostraci´n. La construcci´n de aut´matas para L1 ∪ L2 , L1 L2 , L∗ y L+
o
o
o
se present´ en la demostraci´n de la parte I del Teorema de Kleene. En el
o
o