Sei sulla pagina 1di 149

SIGUENOS EN:

LIBROS UNIVERISTARIOS Y SOLUCIONARIOS DE


MUCHOS DE ESTOS LIBROS GRATIS EN
DESCARGA DIRECTA

VISITANOS PARA DESARGALOS GRATIS.

ESTAMOS VERIFICADOS CON BRAVE REWARDS


SI DESEAS APOYAR NUESTRA PÁGINA HABLANOS
AL WHATSAPP +57 3007339315 O ENVIANOS UN CORREO
BRAKMAR0210@GMAIL.COM (ESTO NO IMPLICA
GASTO DE TÚ DINERO).
Primer curso
en teoría
de autómatas
y lenguajes
formales

Olivia Gutú

PEARSON
/ D a to s de catalogación b ib liog ráfica

Gutú. Olivia
P rim ar carao a* teoría da n & n a to s y l m f ^ w / t rw«l n
P r i m e r a e d ic ió n

PEARSON EDUCACIÓN. M éxico. 2013


B B N : 078-607-32-2303-4
Area: C om putación

(b rm ato : 18.5x23.5 ern Páginas: 144

T o d o s los d ere c h o s reserv ad o s

E d ito ra : Á u re a C am ach o A n g u la n o
au r e a .cam achoO poaraon x o m
M a rian n a L y u b o ro ts (U n iv ersid ad d o S o n o ra )
E d ito r a do d esarro llo : C la u d ia R om ero M e rca d o

P R IM E R A E D IC IÓ N , 2013

D. R . © 2013 p o r U n iv ersid ad d e S o n o ra
Av. R osales y B lvd. E n c in a s s / n
Coi. C o n tro , C . P. 83000
Hem i arillo , S o n o ra
w w w .uson.m x

D. R . © 2013 p o r P eareo n E d u cació n d e M éxico, S . A. d e C . V .


Al la tó n íu lc o 500-5° P iso
In d u stria l A lo to
53519 N au ca lp a n d e J u á re z , E s ta d o d e M éxico

C á m a ra N acional d o la I n d u s tr ia E d ito rial M exicana. R eg. N úm . 1031

R eservados to d o s los derech o s. Ni la to ta lid a d n i p a r te d e e s ta publicación p u ed en re p ro d u c irs e ,


re g istra rs e o tra n s m itirs e , por u n sis te m a d e re c u p eració n d e in fo rm ació n , e n n in g u n a fo rm a
ni por n in g ú n m edio, s e a electró n ico , m ecánico, fo to q u ím ico , m ag n ético o e le c tro ó p tic o , por
fo to co p ia, g ra b a c ió n o c u a lq u ie r o tro , sin p erm iso p re v io p o r e s c rito a las e d ito re s.
El p ré sta m o , a lq u ile r o cu a lq u ie r o tr a fo rm a d e cesión d e uso d e e s te e je m p la r r e q u e rirá tam b ién
la a u to riz a c ió n d e los e d ito re s o d e su» re p re se n ta n te s .

ISBN L IB R O IM P R E S O : 9 7 8 ^ 07-32-2303-4
ISBN E -B O O K : 978-807-32-2304-1
ISB N E -C H A P T E R : 978 607-32- 2305-8
ISBN L IB R O IM P R E S O U N IS O N : 978-607-518-044-1
ISBN E -B O O K U N IS O N : 978-607-518-045-8
ISB N E -C IIA P T E R U N IS O N : 978-607-518-046-5

Im preso e n M éxico. P r ín te d in M éxico.


1 2 3 4 5 6 7 8 9 0 - 16 15 14 13

w w w .p earso n en esp aA o l.co m


PEARSON
O livia G u tú

Primer curso en teoría de


autómatas y lenguajes formales
Contenido

|1 A lfabetos, cadenas y lenguajes]............................................................. 3


(1.1 Alfabetos y cadenas!. ............................................................................... 3
11.1.1 Principio de inducción m atem ática].......................................... 5
(1.2 Lenguajes!.................................................................................................. 6

12 A n t 6 m ntnfi fin ito s d « t e r m f n f i l ñ a ........................................................... 9


(2.1 D efiuidán de. a u tó m ata finito determ inista!........................................ 9
2 Lenguaje de un a u tó m a ta finito determ inista)................................... 13
12.2.1 UoustrucciOn del autómata. de la iiieiaeccB Ii]..................... i«r>
P.3 M inimizar i fin dpi número d e 5 5 3 3 .................................................. 17
|2.3.1 Algoritmo por llenado de tabltj............................................. 18
12.3.2 Constniccfón del autómata mínimo)......................................... 23

13 A u tó m a ta s n tv H p tp rm in istflfll.................................................................... 27
£1.1, flelimnÁn de a n t/u n ata finito. nordetem unistál................................. 27
Í3.2 Anr.^irmtns ron trnnsirinnna instnntA npftd.......................................... 32
0.3__ CñEB fiB BacSS de loa j ¡ ¡ B S 5 5 a B a E 5 ............................................ 36
13.3.1 Del üQ-rietcrminiamo al rirtfirm inám ol.................................... 37
13.3.2 Eliminación de las transiciones instantÁneas)..................... 39
[3.3.3 Equivalencia de autóm atas finitoal.......................................... 41

[4 L e n g u a je s reg u lares} ....................................................................................... 43


(4.1 Definición de expresión y lenguaje reg u lar!....................................... 43
(4.2 P e autóm atas finitos a expresiones regulares!.................................... 47
(1.3 De expresiones regulares a autóm atas finitos}................................... 50
vi C o n te n id o

(4.4 Lema de bom beo p a ra lenguajes regularos]........................................ 53

|5 A utóm atas a p ila] ........................................................................................... 57


(5.1 Definición de au tó m ata a pilaj................................................................ 58
|5.2 Descripciones instantáneas]....................................................................... 64
[5.3 Aceptación por estad o final y por pila vacia]....................................... 70
(5.4 A ut 6 inatas a pila < ieten n in istas|............................................................ 71

16 Gram áticas librea de contex t o ] ................................................................ 75


(6.1 Definición de gram ática].......................................................................... 75
[6.2 Lenguaje aceptado por una gramática)................................................ 79
|6l 3 Árboles de derivación y ainbigücdadTT................................................ 81
[6.3.1 Derivaciones más-a-larízquiertla)............................................... 86
16.3.2 Remover la ambigüedad en u n a gram ática)............................ 88

¡7 Lenguajes libres de con texto)................................................................. 91


|7.1 De gram áticas a autóm atas q p ila ]...................................................... 91
[7.2 De autóm atas a pila a g ra m ática s]...................................................... 95
17.2.1 A utóm atas a pila determ inistas y gram áticas n o ambiguas] 101
|7.3 lienm de bom beo p a ra los lenguajes libres de contexto).......................103
[7.4 Propiedades de los lenguajes libres de contexto).................................108
|7.5 Algoritmo de Codee-Yotinger-Kasam»).................................................. 110

■8 I n tr o d u c c ió n a la c o m p u ta b llld a d l........................................................... 113

[A Forma norm al d e C hom sky).....................................................................123

ÍLteta de sím b o lo s! ..................................................................................................... 133

135

[G lo sario d e t é r m i n a i ............................................................................................. 137


Introducción

El presente libro fue pensado con el objetivo de brindarle una herram ienta
de apoyo al estudiante de licenciatura o posgrado interesado en aprender por
prim era vez los fundam entos teóricos de la com putación. Dando un enfoque muy
cercano a la formalidad m atem ática sin descartar en lo absoluto las aplicaciones
prácticas. P a ra el correcto entendim iento del presente m aterial se requiere que el
lector tenga conocimiento previo de lógica y teoría de conjuntos, ambas a nivel
dem ental. Posiblemente, el tex to sea más accesible al lector que ten g a alguna
noción de programación y de m atem áticas discretas.
Exceptuando el último capítulo, cada sección tiene tre s componentes: la teoría,
los ejemplos y los ejercicios. El autor consideró im portante incluir métodos de
razonam iento formal no solo en la teoría sino tam bién en los ejercicios, pues
la prueba m atem ática es una herram ienta fundam ental en la comprobación de
modelos hechos en la práctica.

¿P o rq u é e stu d ia r a u tó m a ta s y lenguajes?

Desde el punto de v ista puram ente teórico, el conocimiento básico de autóm atas
y lenguajes perm ite al lector, entre otras cosas en trar de lleno en m ateria de
oomputabilidad. Sin embargo, los conceptos que se tra ta n aquí tienen su propio
interés en aplicaciones a problemas de la vida real. En los siguientes párrafos
se precisan esta s ideas y de paso se describe la distribución de los tem as que
constituyen el texto.
L a información se representa teóricam ente por medio de secuencias finitas
de caracteres, e sta noción escencial en la teoría de la com putación se formaliza
mediante el concepto de cadena. En el prim er capítulo se define el concepto de

l
2 In tro d u c c ió n

lenguaje com o un conjunto de cadenas y se presentan las propiedades algebraicas


de los lenguajes.
Una cuestión central del texto, es el problem a de decidir si una cadena
pertenece o 110 a un lenguaje. La relevancia de este tem a radica en el hecho de
una pregunta, en el marco de conjuntos numerables, se pueden transladar a un
problem a de decisión de este tipo. Por ejemplo, la pregunta «¿es 171 un número
primo?» se puede traducir como «¿pertenece 171 al conjunto de los números pri­
mos?»; suponiendo n u la lim itante en memoria, c a d a núm ero prim o ten d ría u n a
cadena como representación. O tro ejemplo es el siguiente, la pregunta «¿tiene
un código dado el mismo núm ero de paréntesis abiertos que cerrados?*, se puede
traducir como «¿el código dado pertenece al conjunto de códigos con el mismo
número de paréntesis abiertos que cerrados?»; es claro que todo código es de
hecho una secuencia finita de caracteres, es decir, u n a cadena.
U na m anera de decidir de form a autom atizada si u n a cadena pertenece o
no a un lenguaje, es a través de un algoritmo que genere dicho lenguaje. En
capítulos restantes se estudian conceptos que establecen las pautas para generar
dos tipos de lenguajes particularm ente relevantes en com putación, los llamadas
regulares —autóm atas finitos determ inistas, no-deterministas, expresiones regu­
lares, capítulos 2, 3 y 4— y los llamados Ubres de contexto —gram áticas libres
de contexto y autóm atas a p ila capítulos 5, 6 y 7—. El propósito central del
texto es presentar las definiciones y propiedades básicas de estos conceptos y
las relaciones entre ellos. E n el capítulo 8 se exponen las ideas esenciales de la
conm utabilidad a través de la presentación de la m áquina de T\iring, concepto
ligado a los lenguajes rvcursivos y rccursivamcnte enumerables. Finalmente, en
d apéndice se incluye una guía paso-a-paso para encontrar la form a normal de
Chomskv de una g ram ática Ubre de contexto.
Como un libro para iniciarse en la teoría de autóm atas y lenguajes pensado
para cubrir un semestre, el autor consideró im portante profundizar en los tem as
de lenguajes regulares y libres de contexto, pues como dice J . Ullman en su
introducción al curso A utóm ata que se ofrece actualm ente a través del popular
a ste n ia Courseraül
A u tó m a ta s finitos, ex p resio n es regulare», y g ra m á tic a » Ubre# d e c o n te x to so n idea» q u e
h a n p a sa d o la p r u e b a d el tiem po. Son h erra m ien ta» eacenciale» p a r a lo» co m p ilad o res.
í\>ro m ás im p o rta n te , son usado» e n m ucho» siste m a s q u e req u iere n e n tra d a s q u e so n
m en o s g e n e ra le s q u e u n le n g u a je c o m p le to d e p ro g ram ac ió n p e ro m á s co m p lejo s q u e
sim p lem en te u n «oprim e e s te b o tó n » .

1 h t t p s : / / w v .c o u r s e r a .o r g /c o u r s e /a u to B ia t a
Capítulo J ________________________________

Alfabetos, cadenas y lenguajes

Ei» este capítulo se presenta la term inología formal básica para fam iliarizar al
lector cou el estilo del documento. Además, se incluye un breve recordatorio
sobre el principio de inducción m atem ática, pues es el razonam iento en que se
basan prácticam ente to d as las demostraciones del texto. P a ra profundizar sobre
los tem as vistos en e sta sección, d lector puede consultar |2 ¡ y |12J.

1.1 A lfa b e to s y cadenas

Un alfabeto es un conjunto finito no vacío. Por convención se denota a los al­


fabetos con la le tra E . A los elementos de un alfabeto se les llam a símbolos.

Ejemplo 1. El conjunto {0,1} es un alfabeto, al cual se le conoce como alfabeto


binario. El alfabeto en español E = {A. B, •• •, Z} c s u n alfabeto. El conjunto de
números naturales no es un alfabeto.

Dado un alfabeto E , u n a cadena de E es la yuxtaposición finita de símbolos


de E . L a cadena v a d a de E es la yuxtaposición de 0 símbolos de E , se d enota
siempre por f, independientem ente de cual sea el alfabeto. Sea n un entero
no negativo y o un símbolo del alfabeto. A veces se usa a " para denotar a la
yuxtaposición de n símbolos iguales a a, es decir:

3
4 1 A lf a b e t o s , c a d e n a * y lm g x » jo g

an = aa - • • a
n voces

Por convención a° se define com o la cadena vacía. La longitud de una cadena w


es el número de posiciones ocupadas por los símbolos que constituyen la cadena.
Se denota a la longitud de w, por |u>|. La cadena vacía de cualquier alfabeto
tiene por definición longitud cero. ¿ e. |c| =» 0 .

Ejem plo 2. La secuencia HOLA es una cadena d e longitud 4. La secuencia


011011 es una cadena del alfabeto binario de longitud 6 . La secuencia infinita
0101010101 • • • no es una cadena del alfabeto binario, tam poco lo es la secuencia
00210 .

Sea 27 un alfabeto. P a ra c a d a n entero no negat ivo, sea 27" d conjunto de todas


las cadenas de longitud n de £ , por supuesto £ ° = {c}. La clausura de £ se
denota por 27* y se define como la unión de todos los conjuntos 27". es decir:
OO
£ • = | J 27".
n=0

En otras palabras, 27* es el conjunto de to d a s las cadenas de 27, incluyendo la


cadena vacía.

Ejem plo 3. {0,1}* = { e ,0 ,1,00,01,10,11.000.010.011,101, •••}.

Sea 27 un alfabeto, se define la concatenación de dos cadenas x e y de 27*


mediante la operación binaria • : 27* x 27* -> 27* d ad a de la siguiente manera: si
r / f e j / ^ í entonces x ^ y se define como la yuxtaposición de la cadena x con
la cadena y. cu otras palabras,

x*y = xy,

además, p ara cualquier cadena x 6 27* se define x - e = c*z = x . Obviamente,


para cualesquiera tres cadenas x , y y z de 27*, ( x - y ) ‘Z = x - ( y z ) , luego la
expresión x - y z está bien definida Por tanto, la concatenación finita de caleñas
tam bién e stá bien definida |ejercicio [2). Por otro lado, si u? es una cadena de un
alfabeto 27, se dice que x es una subeadena de te si existen c a le ñ a s y y z en 27*
tales que w = y i ' Z .

Ejem plo 4. I,a cadena e & su b c a le n a de cualquier cadena, to d a cadena es sub­


eadena de sí m ism a la cadena 01 es una subeadena de 0001000 , la cadena 00 no
es una subeadena de 01110 .
1.1 A lfa b e to s y cad cn o a 8

Si w — x - y es una cad ena de un alfabeto, es fácil verificar que

M = M + fy|.
En d resto d d docum ento, se abu sa de la notación y se escribe sim plem ente x y
en lugar de x*y. Así pues, se debe entender que x e es la cadena x, no debe de
confundirse con la simple yuxtaposición de x con e, puesto que visto de e sta
forma, x e no e sta ría en la clausura del alfabeto. Si w es una cadena cualquiera,
por convención tD° = e y como es natural, se entiende que:

te” = tete y •te


n voces

1.1.1 P rin c ip io d e in d u c ció n m a te m á tic a

El principio de inducción matemática es un razonam iento para dem ostrar for­


malmente un predicado sobre los núm eros naturales, es decir, un enunciado de
la forma:

Vn > 0 se satisface P (n ), (1.1)

donde P (n ) es una afirmación que depende de n. Ejemplos de predicados sobre


números naturales son los siguientes «para todo n > 0 , c" = » , «para todo n > 0
se cum ple que |x” | > |xn - , |», etc. El procedim iento que indica el principio de
inducción m atem ática es el siguiente:

1.° se prueba P ( 1),


2.° se supone cierta P (n ),
3.° se prueba P ( n + 1).

Al segundo paso se le conoce en la literatu ra como hipótesis de inducción. Si


se com prueba que P ( l ) es c ie rta y se han probado el segundo y el tercer paso,
aitonces ese razonamiento dem uestra que P (2 ) es verdadera, y p o r ta n to P(3)
y así sucesivamente. Por supuesto, se puede comenzar con n = 0; en este caso la
prueba es válida para predicados sobre el conjunto { 0 .1 ,2 .3 — }. En general,
se puede hacer la prueba inductiva para dem ostrar que P (n ) es cierta para todo
número n > m . comenzando la dem ostración para P (m ).
6 1 A lf a b e t o s , c a d e n a * y lm g x » jo g

Al igual que antes, en el resto del texto se escribe n > m para denotar a los
n 6 {m, m + 1, m + 2 , . . . } y se escribe n > m para los n € {m + 1, m + 2 . . . . }.

Lista de ejercicios de la sección 1.1

Ejercicio 1. Verifique las siguientes afirmaciones por inducción m atem ática


1. Si w = * f * a &n p ara algún n > 0 entonces |ur| = |x i| + |x 2 | ---- 1- |®n|-
E n particular, si w = x n entonces |tc| = n |x |.
2. Si x es una cadena cualquiera entonces |x n | > |x n _ I|, p a ra todo n > 0.
3. P a ra todo n > 0. |e M| = 0.

Ejercicio 2. Demuestre que p a ra cualquier n > 3, la expresión x i *X2 xn está


bien definida

1.2 Lenguajes

Sea E un alfabeto. Se dice que L es un lenguaje con alfabeto E si es un sub-


conjunto de E \ N ote que los conjuntos {c} y 0 son lenguajes con cualquier
alfabeto. Además es claro que la unión y la intersección arb itraria de lenguajes
con alfabeto E es tam bién un lenguaje con alfabeto E . Si L es un lenguaje con
alfabeto E , naturalm ente E* \ L = {w 6 E* : u» ^ L ) tam bién lo es.

Ejem plo 5. Sea E el alfabeto binario; el conjunto de cadenas binarias con mi


número par de ceros y un número impar de unos es mi lenguaje con alfabeto
{0 , 1 }, el conjunto {0 . 01 , 0101 } es tam bién un lenguaje con alfabeto {0 , l}.

Sean L y ¿\/ lenguajes con alfabeto E . Se definen la concatenación de L y M


como sigue:
L \1 = { x y : x € L y y € A/}.
Note que, por definición de concatenación de cadenas, el conjunto L M es también
un lenguaje con alfabeto E .

Ejem plo 6. Si L = {0,11} y M = {0001,111} as fácil verificar que

L M = {00001,0111,110001,11111}.

A lo largo del texto, reiteradam ente se liabla de «probar que dos lenguajes
son iguales». Un lenguaje, desde el punto de vista puram ente m atem ático, es
simplemente un conjunto numerable. Si L y M son dos lenguajes y se quiere
1 .3 le n g u a je » 7

verificar que L = A/. b asta dem ostrar que L C A /y A/ c L, es decir, se han de


dem ostrar las siguieutes afirmaciones:

• si x 6 L entonces x € A/, y
. si x 6 A/ entonces x € L.

Un ejemplo —como muchos otros que aparecen después es la prueba de la


siguiente propiedad.

Propiedad 1. Sean L. M y N lenguajes con un mismo alfabeto. Se cum ple que:

(L M ) N = L { M N ).

Prueba. Sea w 6 (L M ) N , entonces w = W iz, donde Wi € L M y z 6 N . Además,


Wi = x y con x € L e y 6 M . Por lo que w = x w i, donde w? = y z € A /N,
luego u? € L (A JN ). Con esto se pru eb a que (L A Í)N C ¿(A/JV). P ara ver que
L ( M N ) C ( L M ) N , se razona d e la misma forma. □

Si L . M y A’ son lenguajes con un mismo alfabeto, por la propiedad ¡23}


la expresión L M N cstA bien definida, y por tanto, la concatenación finita de
lenguajes con un mismo alfabeto e stá tam bién bien definida. Sea L un lenguaje
con alfabeto E . Si n es un número natural, se escribe L n para denotar la con­
catenación de L con él mismo n veces. Es decir:

L n = J,L -L
n voces

Además, por convención L° denota al conjunto {f}. Se define daxisum de Kleene


—en lo que sigue, sim plemente clausura— de un lenguaje L como el conjunto:

¿* = U L "-
O

N aturalm ente, la clausura de un lenguaje con alfabeto E es tam bién un lenguaje


con alfabeto E .

Ejemplo 7. {0,11}' = {e,0,11,00,011,110.1111.000.0011.0110, llü ü . •••}.

Ejemplo 8 . Sea L = {£, 0 , 0 0 , 000 . 0000 , . . . } . P ara todo n natural, L n = L lo


que im plica que L* — L.
8 1 A lf a b e t o s , c a d e n a * y lm g x » jo g

Ejem plo 9. Ya que 0o = {f} y para todo natural n se cumple que 0" = 0 y por
ta n to 0 * = {c}.

Propiedad 2. P ara todo lenguaje L, (L ' ) ' = L*.

Prueba. Por definición (L*)° = { f}. Probem os primero que para todo n natural:

( L T = ¿* . (1 2 )

P a ra n = 1, la propiedad que se busca se cumple trivialm ente. Se supone que se


cumple p a ra n (hipótesis de inducción). Se prueba a continuación que se cumple
para n + 1 . Note que:

(L*)n+ 1 = (L*)nL* = L 'L * .

R esta probar que L ' L ' - L*. Si w 6 L ', entonces w = w£, luego w € L 'L ',
con esto se dem uestra que L * C L ’ L*. Sea w 6 L* L*. entonces w = x y donde
x, y € L ' . Entonces, existe m y r tal que x € Lm y y € Lr . P or tanto, la cadena
x y 6 L m +r C L *. Luego. L 'L * C L*. En conclusión, se h a probado la ecuación
(J O ) , p ara todo n natural. Finalmente,

(£•).= 0 (¿*)» = {í}u = {í}u (| j £ ') = iv

Lista de ejercidos de la sección 572]

Ejercicio 3. Demuestre que para cualquier lenguaje L. L0 =- 0 ¿ —0.


Ejercicio 4. Sean L, M y N lenguajes con un mismo alfabeto. Pruebe o de un
contracjcmplo:
1. L ( M U N ) = L M U LN ;
2. LA/ * A/L;
3. L L ' = L 'L .
Ejercicio 5. Si L = { 0 ,0 1 ,0 0 1 ,0 0 0 1 ,...} calcule L*.
Ejercicio 6. Verifique que p a ra todo lenguaje L que no contiene a la cadena vacía
se cumple que LL* = L* \ {c}.
Ejercicio 7. Sean L y M dos lenguajes, dem uestre que (L U A /)’ = (L * A /* )\
Capítulo ________________________________

Autómatas finitos deterministas

En este capítulo se estudia a los autóm atas finitos determ inistas, concepto que
sirve de modelo p ara procesos donde existe un número finito de estados y de
señales que indican el cambio de estado. La transición de un estad o a o tro se
hace de form a determ inista, lo que significa que dado un estado y una señal
existe solo una posibilidad de estado de llegada. A cada sistem a de estados y
señales le corresponde un lenguaje de cadenas de señales asociado a un problema
específico.
R ite capítulo consta de tres secciones. En la prim era sección se definen los
autóm atas finitos d eten n instas y se dan algunos ejemplos. Los lenguajes asocia­
dos a estos sistem as se estudian en la segunda sección. En la tercera sección
finalmente se establece un algoritm o para optim izar este tip o de autóm atas en
función al número de estados.
El estudio formal de los autóm atas finitos determ inistas se rem ite a |19],
aunque la definición habitual que aparece en los libros de texto, c. f. |14| y |26)
-que es la que se presenta aquí - se introdqjo de m anera independiente en |15],
(211 y P 2 J. El algoritm o de inmunización corresponde en origen a |13|.

2.1 D e fin ició n de a u tó m a ta fin ito d e te rm in is ta

Como se había puntualizado antes, un autómata finito determinista es un sistem a


con una cantidad finita de estallos y señales, donde se pasa de un estad o a otro

o
10 2 A u tó m a ta * finito* d o tc rm in is ti

al recibir m ía señal, form alm ente se define como una q uíntupla (Q . E . 6, qo. F )
tal que:

Q es mi conjunto finito no vacío, llam ado conjunto de. estados:


E es un conjunto finito no vacío, llam ado alfabeto de símbolos de entrada;
S es una función con dominio Q x E y con imagen contenida en Q, es decir,
para todo estado q y símbolo de e n tra d a a, ó(q. a) pertenece a Q. A <5 se le
llam a función de transición,
qo es un elem ento de Q. llam ado estado inicial;
F es un subconjunto de Q , llamado conjunto de estados de aceptación.

F3 conjunto F puede ser el conjunto vacío, adem ás go podría estar en F. Existe


una manera, a veces m uy útil, de representar gráficamente a un autóm ata finito
determ inista. E sta representación se llam a diagrama de transición y se establece
de la siguiente manera. C ad a estado de q se representa con un nodo, a los nodos
correspondientes a los estados de aceptación se les dibuja además un círculo
concéntrico, al nodo que representa estado inicial q¡> se le dibuja una flecha
apuntándo hacia él en la p arte izquierda-

q Q — 0

Ijh expresión ó(q. a) = p se representa m ediante un dibujo en el cual se unen los


nodos de q y p con una flcchita e tiq u e tad a con a:

©^ ©
Si p = <7 se dibqja así:

Ejem plo 10. La ¡dea es modelar el com portam iento de mi interruptor típico de
luz. El in terru p to r solo puede e sta r «en prendido» o «en apagado». En cualquier
caso, si se pulsa d ejará de estar en prendido para estar en apagado o dejará
de e sta r en apagado p ara estar en prendido. Además, se quiere distinguir como
situación preferente el hecho de que el interruptor esté en prendido. E ste pro­
cedimiento puede ser descrito mediante el au tóm ata (Q , E . <5. q0, F ) definido de
la siguiente m anera: Q « el conjunto de estados {<7a-<7p} donde qa representa la
2.1 Dtifinioón do au tó m ata finito d o trrm u iH ta II

situación del in terru p to r en apagado y qp representa la situación del interruptor


en prendido; IT es el conjunto {a} donde la le tra o representa el hecho de pulsar
u na vez el interruptor; 6 es la función de transición definida p o r <S(qa,a) ~ % y
ó(qp. a) = qa, es decir, si se pulsa el interruptor y este e stá en apagado entonces
cam biará a estar en prendido y si se pulsa el interruptor estando en prendido,
entonces ¡jasará a estar en apagado; <¡o es qa pues se supone que el interruptor
originalmente se encuentra en apagado; finalmente F es evidentem ente el con­
ju n to { íp} ya que se quiere distinguir cuando el interruptor está en prendido. El
diagram a de transición es:

Ejem plo 11. l a ta re a es diseñar un au tóm ata finito determ inista que reconozca
la p alabra so n o ra en un texto plano. El au tó m ata que se propone es el siguiente:

Flg. 2.1 A u tó m a ta q u e Ice so n o ra .

El conjunto de estados es {go.<71, .. .<?«} donde 9 » ® el estado inicial y p a ra


i = 1 — 6 , el estado simboliza la situación «se lia leído la cadena de longitud
i (s. so. son. sono, Bonor y sonora, respectivamente)»; el alfabeto de símbolos
de en trad a es el conjunto de símbolos adm itidos en un te x to plano: la función de
transición <5 se representa en la figura 1271] el conjunto de estados de aceptación
es evidentem ente {9 *}. Se ha de notar que p a ra i ** 0 , 1 .... ,5 , ó(q¿. b) - q¡ y
que estan d o en q¿ no se pasa a $ 4.1 al menos que se haya leído una le tra que
contribuya a la lectura de so n o ra, de otro modo se pasa a qo■
12 2 A u tó m a ta * finito» d c t<7 m m ista n

Lista de ejercicios de la sección j O ]

Ejercicio 8. P ara cad a uno de los siguientes incisos, diseñe un au tóm ata finito
determ inista que entre to d as las cadenas binarias distinga únicamente aquellas
que:
1. acallen en 00.
2. contengan a la subeadena 1001,
3. tengan longitud 3n, n > 0,
4. sean de la form a 0” , n > 0.

Ejercicio 9. O tra m anera de representar a un a u tó m a ta finito determ inista


({90. 91. ----- 9«}, {« 1, 02 , , Om}. ¿, 9b ,E ) « a través de las llam adas tablas de
transición:
ai 02 Om
-> 9o ¿(9o, a , ) ¿(<70. 02 ) •• • ¿(90,0*,)
9i ¿( 91 , 01 ) ¿( 91 *02 ) •• • ¿(91, Om)
•42 ¿( 92 , 01 ) ¿( 92 . 02 ) •• • ¿(92, Om)

9n ¿(<7r,,Ol) ¿(4 ,1. 02 ) •• ¿(9n»Om)


La flecha antes de un estado indica que se tr a ta d d estado inicial. A todos
los estados de aceptación se les coloca un asterisco antes, por ejemplo, en esta
tab la se indica que 92 es un estad o de aceptación.
Diseñe un au tó m ata que describa el com portam iento de un interruptor de
«prendido y apagado» con tres apagadores. En un inicio los tres focos se en­
cuentran apagados. El estado de aceptación es aquel en que todos los focos se
encuentran prendidos. Represente el au tóm ata con u n a tab la de transición.

Ejercicio 10. La figura[2?Zjrepresenta un juego con canicas. En la en trad a £ , o la


en trad a E? se lanza una canica. Las tres palancas hacen que la canica caiga hacia
la derecha o hacia la izquierda. Siempre que una canica pasa por u n a palanca,
ésta cam bia de posición, de modo que la siguiente canica que pase p o r ahí caerA
al lado contrario. Represente este juego m ediante un a u tó m a ta finito. Haga que
los estados de aceptación sean únicam ente aquellos donde se h a salido p o r S?.

Fjjercicio 11. Considere u n a m áquina despachadora de bebidas. E sta m áquina


solo vende dos tipos de bebida, refresco de cola y horchata. El refresco de cola vale
15 pesos y la horchata vale 20 pesos. La m áquina solo acep ta monedas de 5 y de 10
pesos y no d a cambio. Diseñe un autóm ata que modele el canteo de las monedas
que el cliente e s tá insertando. Ya que la m áquina no d a cambio, los estados
de aceptación serán aquellas en el que el cliente haya insertado una cantidad
2-2 Igngunjo do u n a u tó m a ta finito dettgm m w t» 13

Ei Ei

Si S i

Fig. 2 .2 Ju e g o d e c a n ic a s

suficiente p a ra com prar n refrescos de cola y m liorcliatas (por supuesto m 6 n


pueden ser cero, pero no am bas a la vez. es decir si el cliente no in serta nada,
no se estaría en un estado de aceptación). Por ejemplo, si el cliente introduce en
total 25 pesos no se estaría en un estado de aceptación, ya que se po d ría com prar
una liorcliata pero sobrarían 5 pesos. Si el cliente inserta en total 55 pesos, sí se
estaría cu un estado de aceptación ya que se podrían com prar 2 horchatas y un
refresco de cola exactam ente.

2.2 L e n g u a je d e un a u tó m a ta fin ito d e te rm in is ta

H asta ahora se h a hablado de que «el a u tó m ata lia leído la cadena tal ...» ,
d a cad en a ha sido distinguida por el a u tó m a ta ...» , etc., para darle form alidad
m atem ática a estas frases a continuación se define el concepto de función de
transición extendida. Concretam ente se precisa describir la form a en que se pasa
de un estado a otro después de recibir sccucncialmentc varias entradas. Dado
un au tó m ata finito determ inista A = (Q , ¿7, <5, g a .F ), la función de transición
« te n d id a <5 es una aplicación con dominio en Q x E* y con imagen contenida
en Q tal que p ara to d o q 6 Q, x € E* y a 6 E:

R. i n i c i a l = q;
r . IN D U C TIV A <S(g,xa) »<5(<5(g,:r),a).

Al conjunto
L (A ) = {te € T* : ó(qo, w) € F )
se le llam a lenguaje aceptado por A. Generalm ente se parte d e un lenguaje L,
digamos «el conjunto de textos que coutieue a la palabra sonora», «el conjunto
14 2 A u tó m a ta * finito» d c t<7 m m ista n

de cadenas binarias que term inan en 00 », etc. Se diseña entonces un autóm ata
finito determ in ista A que acepte a L como lenguaje. P a ra com probar que el
diseño es correcto se h a de verificar que L (A ) = L, en otras palabras, se debe
demostrar que S(qo, w) € F si y solo si w € L. La siguiente propiedad se usa
liabitualm eute en este tip o de comprobaciones, como se ilustra en d ejemplo
Propiedad 3. Sea <5 la función de transición de un au tó m ata finito determ inista.
R itonces p ara cualquier estado q y para cualesquiera dos cadenas x e y de
ém bolos de entrada:
¿ to * v ) = ¿(<5(9i*),y). (2 . 1 )

Prueba. La dem ostración se hace por inducción sobre la longitud d e y. Sea x


una cadena arbitraria. Si y = c, claram ente se cumple la ecuación (fc.lft pues
S(q, x f) = S(q. x ) = S{S(q, x ),c ). Se supone que 6(q, x z ) = S(ó(q, x), z) (hipótesis
de inducción). Sea y = za, donde a es un símbolo de entrada. Entonces, si
p = ó (q ,x ) se tiene, 6 (q ,x za ) = Ó (¿(q,xz).a) = ó(ó(p, s ) ,o ) = ó (p ,za ). □

Ejem plo 12. Sea A =(<?, E , ó, qo, F ) el autóm ata descrito a i el ejem plo[H ]y sea
y - so n o ra. A continuación se prueba que L (A ) <b el conjunto Laon de cadenas
de te x to plano que contienen a la subeadena y; se h a de dem ostrar oitonces que
y es subeadena de ut si y solo si <5(<?o. tv) - qa. Con este fin se prueba primero
que:
¿(Pi v) - <?o, Vp. (2.2)
Sea p / qa. Ya que S(p, b) — qt entonces S(p. so ) = 6(6(p, s), o) - S(qi. o) = <72,
así sucesivamente se concluye que ¿(p, y) = <5(¿(p, sonor), a) = 6(q$. a) = Si
p = q& entonces S (p .y) = qa pues por definición de <5, ¿(tfe, a ) — qa, para todo
a 6 E . Con esto se verifica Q2.2t).
Se supone que y es subeadena de ti?. Si w = x y z , por la propiedad 0 y la
ecuación l]Z 2|| es fácil calcular:

ó(Qo,xyz) =» ¿(¿(<7o ,x ),V í) = ¿(flb.s) = <*i-

Por ta n to w € L(G ). La o tra implicación se prueba inductivam ente sobre la


longitud de la cadena, específicamente se prueba la siguieute afirmación para
n > 0.

P ( n ) : si fu>| < n y 6{qo. ti?) = qa entonces y es subeadena de ti?.

La afirmación P (0 ) se cumple trivialm ente pues la prem isa es falsa. Se supone


cierta P(n) (hipótesis de inducción). Sea ti? tal q u e |u?| < n + 1 y ¿( 90 . ti?) = <jb. Se
2.2 Ic n g u a jo do u n a u t f t n a t a fin ito ctctcrm iniatft 15

supone por contradicción que w no contiene a la subeadena y. En el peor de los


casos, w podría contener a y i = b . j/2 = b o , y 3 = son, = sono y a j f t = sonor.
Si se está en e s ta situación, se considera a w d e la forma xy^z, donde y* es la
últim a subeadena de este tip o que aparece en w. Como se había calculado antes,
¿(<¡b-xy») = q, para cualquier cadena x tal que ¿(<?o,x) f qo, lo cual se puede
suponer sin p erder generalidad; ya que por hipótesis de inducción como |x| < n,
si ¿(qn,x) fuera qo entonces contedría a y como subeadena, lo cual es imposible
porque se e s tá suponiendo que w no contiene a y. Por tanto,

<j(<3b, w) = ó(S(qo, XUi), z) = z).

Si z — e, entonces ó(q,. z) = q, qb y se llega a una contradicción. Si z £ e,


entonces sea z = au. donde a 6 E . Si y¿ = y5, a no puede ser ni s. porque
se supone que y> no e stá en z , ni a, porque entonces y estaría en w. En­
tonces. Ó(qs.au) - ó (ó (q s.a ),u ) ^ ó(qo,u), Además, u no contincne a y j. luego
¿(qb.ti) = qo- Por tanto,

= ó(é(qo,xy5), au) = ¿(<fc,au) = S (q 0. ti) =

De nuevo se llega a una contradicción. Los casos y, = y i , . . . , y*, se razonan de


m anera análoga.

2 .2 .1 C o n s tru c c ió n del a u tó m a ta de la inte rsección

Sean A — (Q . E , 6, qo, F) y B - (P . E . 7 . po. H ) autóm atas finitos determ inistas.


Se presenta a continuación un procedimiento para construir un a u tó m a ta que
acepta a L (A ) n L ( B ) como lenguaje. Sea C = (Q x P, E . q. (qo-Po), F x H ) e 1
autóm ata finito determ inista tal que p a ra cada símbolo de e n tra d a a y estados
q y p: q ((q ,p ),a ) = (á(g, a ) , 7 (p, o)). Para justificar form alm ente que C es el
autóm ata que se e s tá buscando, se lia de probar primero que p a ra to d a cadena
de símbolos de e n tra d a w:

*K(<toi A ))iu0 = (¿fao.w ), % * > ,« » . (2.3)

Para w = e la ecuación (]2.3) se cumple trivialm ente. Es fácil ver que si la


ecuación fl2Í3) se cum ple para x (hipótesis de inducción) entonces se cumple
para la cad en a xa, pues:
16 2 A u tó m a ta * finito* d o tc rm in is ti

flfa o ,P o ),x a ) - rj(v((qo,po),x),a)

= V ((<5(gb, * ),^(p b , * ) ) , o )

= (¿ ( < S (g o .x ),a ) ,7 (7 (P o .x ).a ))

- (j(q b ,x o ),7 (p o ,x a )).

Cou esto se dem uestra la ecuación ({2.3fr para to d a cadena w. R esta verificar que
efectivamente L (C ) = L (A ) n L (B ). pero esto es fácil, ya que te está, en L{C) si
y solo si g((go. Po),tv) pertenece a F x H si y solo si á(qb, te) € F y *¡{po, te) € H
si y solo si te € L (A ) y te € L (B ).

Ejem plo 13. Sean A = ( Q , ¿7, ó. %. F ) y B — (P, i7, 7 ,p 0, H) lo6 autóm atas des­
critos m ediante los siguientes diagram as de transición:

Fie- 2.3 A u tó m ata* q u e a c e p ta n al co n ju n to d e c a d e n a s b in a ria s co n u n a c a n tid a d im p a r de


u n o s y u n a c a n tid a d im p ar d e « r o s , re sp e c tiv a m e n te .

El a u tó m ata A acepta el conjunto de cadenas binarias con una cantidad im par de


unos y el au tó m ata B acepta el conjunto de cadenas binarias con una cantidad
impar de ceros |cjcrcicio (12). En este caso.

Q x P = {m = (go.po),rj = (g o ,p i),r 3 = (g i,p o ),r 3 = (<?i,pi)},

y el diagram a de transición del au tóm ata C definido m ediante la construcción


anterior se representa en la figura ££3}

Lista de ejercicios de la sección ¡2.2

Ejercicio 12. Demuestre que los diseños de la figura p.3|son correctos.


2-3 M m hnización d e l n ú m tr o d e e s ta d o s IT

Fig. 2.4 A u tó m a ta q u e a c e p ta al c o n ju n to d e cad en a » binaría» co n u n n ú m e ro im p a r d e cero»


y u n n ú m e ro im p a r d e uno».

Ejercicio 13. Sean q un estado y S la función de transición extendida de un


autóm ata finito determ ista. D em uestre que si 6{q, a ) = q, para to d a en trad a a,
entonces S(q, w ) = q p a ra to d a cadena w.

Ejercicio 14. Sea A = (Q . E . <5. go, F ) un au tóm ata finito determ inista. Verifique
que el au tó m ata B = (Q . E . ó, q(,, Q \ F ) acepta como lenguaje a E* \ L (A ).

Ejercicio 15. Sean A y B dos au tóm atas finitos determ inistas. C onstruya un
autóm ata finito determ inista que acepte a L (A ) U L (B ) como lenguaje. Dise­
ñe tam bién un a u tó m ata finito determ inista que acepte a L {A ) \ L {B ) como
lenguaje.

Ejercicio 16. Defina un autóm ata finito determ inista que acepte como lenguaje
al conjunto de cadenas que no contienen a la palabra reservada th e n pero que
contienen a la p alabra reservada e ls e .

Ejercicio 17. Diseñe un au tóm ata que acepte como lenguaje al conjunto de ca­
denas binarias que contengan a 10001 como subeadena y que term inen en 0101 .

2.3 M in im iz a c ió n del n ú m e ro de estados

Se dice que dos au tó m atas finitos determ inistas A y B son equivalentes á aceptan
el mismo lenguaje. Eli objetivo de esta sección es establecer un algoritmo que dado
A = (Q. E , 6, qo, F ), encuentre un a u tó m ata equivalente pero la menor cantidad
18 2 A u tó m a ta * finito* d e te rm in is ta *

de estados posibles. La idea es agrupar a los estados en clases de equivalencia.


C ada clase de equivalencia reúne a estados que desem peñan la misma función
dentro del autóm ata. M ás precisamente, se dice que dos estados p y q de .4 son
equivalentes, se escribe p = q, si para cualquier cadena w de símbolos de entrada:

¿(p. w ) 6 F si y solo si ó(q, w) € F.

Obviamente, el símbolo = define u n a relación de equivalencia, el lector puede


verificarlo fácilmente. En lo que sigue, se denota por (<?] al conjunto de estados
equivalentes a q. es decir, [gj = {p : p = q). La construcción precisa del autóm ata
minimizado se expone en la sección (2 .3.2) antes se presenta un m étodo para
encontrar las clases de equivalencia.

2 .3 .1 A lg o r itm o p o r lle na d o de tabla

El algoritmo por llenado de tabla tiene como fin encontrar pares llamados dis­
tinguibles. Si A es un a u tó m ata finito determ inista con función de transición
6 y conjunto de estados de aceptación F. el algoritmo por llenado de ta b la se
establece m ediante el siguiente proceso inductivo:

R. inicial si p £ F y q & F entonces p y q es un par


distinguible;
R. inductiva si r = <5(p. a) y s = S(q. o) es un p ar distin­
guible entonces p y q también lo es.

O
Fig. 2.S P a so in d u ctiv o d e l a lg o ritm o por D enado d e ta b la , a n te e s ta situ ac ió n : r y s par
d istin g u ib le im p lica p y q p a r d istin g u ib le.

El nom bre del algoritmo se justifica en el ejemplo [H] Encontrar el conjunto


de todos los pares distinguibles es parte del proceso de minimizacióu de un
2-3 M m hnización d e l n ú m e ro d e e s ta d o s 10

autóm ata, pues los pares distinguibles serán exactam ente aquellos que no son
equivalentes, corno lo establece d teorem a [Q

Ejemplo 14. Considere el siguiente autóm ata:

Una forma de visualizar d procedimiento para en contrar pares distinguibles es


partir de u n a ta b la como esta:

9i
92
93
9<
95

9r
9o 9i 92 93 9* 95 96

La idea es ir tachando cada espacio en blanco si el par correspondiente es distin­


guible. P or ejemplo, la regla inicial el algoritmo distingue a los estados aceptación
20 2 A u tó m a ta * finito* d o tc rm in is ta a

—en este caso únicam ente q j— de los estados que no son de aceptación. Se tachan
entonces los cuadros correspondientes a los pares distinguibles:

9>
q-2
9s

<?5
<76
qr X») Xco x., X¡i) Xdi X-ii

9o 9i 92 93 94 9& 96
(2.4)

La etiq u eta (l) se indica que se tr a ta de la prim era iteración la cual por supuesto
corresponde a la regla inicial. De la información de la tabla p.4| y de la regla
inductiva, se deducen nuevos j>ares distinguibles. Por ejemplo, de saber que q7
y es un par distinguible se deduce que: y <?< es un par distinguible, <jb y qj,
es un par distinguible, q* y q$ es un par distinguible y finalmente que q¿ y q i es
un p ar distinguible, aunque esto últim o ya se sabía (ver figura ET6[|.

F%. 2.6 T ran sicio n es q u e Degan a q i y a qr.

Al recorrer to d a la información de la ta b la (ST31 la regla inductiva en la segunda


iteración a rro ja las cruces etiquetadas con (2). El resultado es la siguiente tabla:
2-3 M m hnización d e l n ú m e ro d e e s ta d o s 21

<71

02

<73

<74 Xn X» Xm Xn

<75 Xn Xr> X(n Xn Xt

</6 X* Xpo

9? X» Xi Xo) Xo Xo x ¡» X jij

Oo 0\ 02 Oi Oí <75 <76

Se aplica de nuevo la regla inductiva, a partir de los nuevos pares tacliados


etiquetados con (2). L a tabla que se genera es la siguiente:

9i X*

02 Xa

<73 Xx

94 X» Xa X» X*

<75 X«i X» Xpo X ai X-A

<76 X* X» Xpo Xpo X* X j.

97 Xm Xn X») Xw Xn X» Xm

91 92 93 94 95 96

Se repite el procedim iento con los pares etiquetarlos con (3). Los pares etiquetarlos
con (4) no aportan nuevos pares distinguibles. Finalm ente, la tabla queda así:

91 X*1

92 Xo X ,

X 0 X,
93

94 Xn Xo X» Xn

95 Xn Xr X jd Xn Xr-

96 Xn Xa X *i X *1 Xt X*

97 Xn X .) X o) Xn Xn Xm X o)

9o 9 i <72 Q'á <74 <7s <7s

El resultado de la ta b la nos indica que 92 y ® m» son distinguibles, m ientras


cualquier o tro p ar es distinguible. El siguiente teorem a señala que el algoritmo
de llenado de ta b la encuentra efectivam ente los pares equivalentes.
22 2 A u tó m a ta * finito» d c t<7 m m ista n

Teorem a 1. Dos estados de un autómata finito determ inista no son equivalentes


si y solo si son distinguibles por el algoritmo de llenado de tabla.

Pruolm. Sean A - ( Q , £ , 6. q0. F ) y

W (p . q) = {te 6 £ ' : á(p, tv) 6 F y ¿( 9 , te) ^ F . o al revés}.

Se ha de notar que dos estados p y q son equivalentes si y solo si IV (p, q) - 0,


o lo que es lo misino, p y q no son equivalentes si y solo si existe una cadena en
IV(p, q). Se prueba a continuación el siguiente enunciado sobre números natu­
rales, y con e sta dem ostración particularm ente se prueba el teorem a.

P (n ): el algoritmo distingue p o r prim era vez a dos estados p y q de A en una


iteración m enor o igual a n á y solo si existe una cadena un 6 lV(p, q) de
longitud n - l tal que, para to d a cadena w 6 W (p, g), |un| < |tc|.

Se supone que el algoritmo distingue a p de q a i la prim era iteración, eso


significa que alguno de los estados p o q está en F , pero no ambos. B asta to m ar
w = e. Ahora se supone que existe una cadena un € W'(p. q) de longitud 0.
Entonces, w tiene que ser necesariam ente la cadena vacía. Por ta n to , alguno de
los estados <5(p, £) - p o ó(q, e) - q está en F , pero no ambos. Luego, el algoritmo
distingue a p y a q en la prim era iteración. Con esto se dem uestra P ( l) .
Se supone c ie rta P (n ) (hipótesis de inducción). Sean p y q un par que se
distingue en la iteración n + 1 por prim era vez. Existen dos estados r y s distin­
guibles por prim era vez en la iteración n y existe un símbolo de e n tra d a Qi tales
que (ver figura [27j):

r — S(p, a i ) y s = S (q ,a i).

Por hipótesis de inducción, existe una cadena Xq € W (r, s) de longitud n - 1 tal


que |zo| < |x|. para to d a x € tV(r, s). Sea u n = aix«. Note que,

<J(r.Xo) =<$(<$(p,a,),x„) = á (p .a,x n ) =á(p,u> 0).

De igual modo, <j(s, Xo) = S(q, un). Por tanto. un € lV(p. q). R esta probar que
para to d a cad en a w 6 W (p, g), |tcr0| < M - Se razona por contradicción: sea

W'ÍP- </) = {<5 € W {p, q) : |z| < |u>0| = n} ¿ 0 ,

y Zq una cadena en VV'(p, g) tal que \zd\ < |z|, p a ra todo z € IV'(p, q). Si w es una
cadena en W (p, q) \ IV'(p. q), entonces |u’o| < |u>|. Como zq € IV'(p, 9 ), entonces
2-3 M m hnización d e l n ú m e ro d e e s ta d o s 23

\zo\ < |u*j|. Por ta n to |¿o| < |u?|. En conclusión, * 6 Hr(p,g) y |¿o| < |to| para
todo tv € W (p, <?). Por hipótesis d e inducción, el algoritm o distingue a p de q en
la iteración | ^ | -f 1 < n 4-1, por ta n to p y q no se distinguen por prim era vez en
la iteración n + 1 y se llega a una contradicción.

R * . 2 .7 M ovim ientos e n u n a u tó m a ta d e p a re s d istin g u ib les.

Se supone ah o ra que existe una cadena un = aiOo • • • On € W (p, q) de longitud


n tal que n < |u?|. para to d a cadena u? 6 W (p, q). Sean r = S(p. a ,), s —S(q. a ,)
y xo _ «2 - a,,. Puesto que ¿(r.xfc) - ¿(p. u t ) y l(s.X o) = ó(q.w o) entonces
xo € W (r. a). Además, para todo x € W (r. a). |xo| < |x|. Si existiera algún
x 6 W (r. 8) tal q u e |x | < |x0 |, entonces la cadena a ,x estaría en W (p ,q ) y sería
más pequeña que tüo y esto no puede ser. P or tanto, por hipótesis de inducción,
los estados r y 8 don distinguibles en la iteración n, luego p y q son distinguidos
en la iteración n + 1. □

Ejem plo 15. Las clases de equivalencia que resultan de aplicar el algoritmo de
Denado de ta b la al autóm ata del ejemplo[ÜJson: [g,] = {$} para i = 0 .1 ,4 ,5 . 6 . 7
y |f c l = ífc)"- {?2- <73}-

2 .3 .2 C o n s tru c c ió n del a u tó m a ta m ín im o

Dado un autóm ata finito determ inista A = (Q , £ , <5, (fo, F ), se define el autómata
m ínim o asociado a A como el autóm ata:

■Amtn = ( Q / s , S , d m m . [ flo ji - f m í n ) i

donde
¿min([<7).«) = ! % ,« ) ] . (2.5)
La función <Jmm está bien definida (ejercicio Las clases de equivalencia de:
24 2 A u tó m a ta » finito» d r tr r m m ia t mi

F m * - M ••< €*) ( 2 -6 )

solo contienen elem entas de F , ya que en la prim era iteración del algoritm o por
llenado de tab la, se distinguen los estados de aceptación de los que no lo son.
En o tra s palabras, si [p] € Fmin, entonces [p] = {q € Q : q = p} C F. Se cumple
adem ás la siguiente propiedad.

Propiedad 4 . Sea A =* (Q, E,S.qo,F) un autóm ata finito determ inista. P ara
to d a cadena w € F* y para todo estado q, <5min((tf], w ) = (¿(qr.«?)].

La demostración se deja al lector (ejercicio [20). Finalmente, se dice que un


estado i d e A es inaccesible, si no existe alguna cadena de símbolos de en trad a w
tal que á(qb, w) = i. El estado inicial jam ás puede ser inaccesible debido a que
¿(flbif ) — 9o- Como es de esperarse, si A ' es el au tóm ata que resulta de quitarle
a u n a u tó m ata A todos los estados inaccesibles, entonces A es un autóm ata
equivalente a A ' [ejercicio |Í9|.

Ejem plo 16. Sea A el autóm ata descrito m ediante el diagram a de transición que
se m uestra a continuación. Evidentem ente un estado inaccesible es d estado i.
No hay m anera de llegar a él partiendo del estado inicial.

Teorem a 2 (autóm ata m ín im o ). Sea A = (Q, E .S .q o . F ) un autómata finita


determinista sin estados inaccesibles. Se afirma que:

I. £J autóm ata -4,,,^ acepta el m ism o lenguaje que A.


II . S i B = (P. E ,y .p o . / / ) es otro autóm ata finito determ inista tal que acepta
d mismo lenguaje que A . entonces \Q/=\ < |P |.
2 .3 M in im iz a c ió n d o l rrüm o ro d « r e ta d o s 25

Prueba. P a ra probar que L (A m¡n) - L (A ), es suficiente ver que ¿mindflb), u>) está
en Fmm si y solo si <j(go, w) estílen F. P ero este hecho es una consecuencia trivial
de la propiedad § pues ¿min((<3b). w) = [á(go, w)].
R esta dem ostrar n. se prueba primero que cada estado a € Q/= es equivalente
a algún estado r 6 B. Los estarlos [qo] 6 Q / s y po 6 P son equivalentes puesto
que L (A m „) = L { B ) |ejcrcicio[l§. Sea tj la función de transición de por
el ejercicio ^22) para cada símbolo de entrarla o, rj([qoJ, a) € Q /= es equivalente
a rj(p0.a) € P. Razonando de la misma forma, todos los sucesores de *7((%]•<*)
son equivalentes a algún estarlo de P. Luego, cada estado d e Q ¡- es equivalente
a un estado d e P. Por o tro lado, si \Q/=\ fuera mayor que |P | existirían dos
estados de Q / = que son equivalentes a un mismo estado de P, lo que contradice
la definición del conjunto Q /= . q

En resumen, dado un au tó m ata finito determ inista A se construye Amin a


través de lo siguientes pasos:

• se encuentra el conjunto de estados inaccesibles del au tó m ata A ,


• se considera un nuevo A ' — (Q '. E .6 ' , qi», F') sin estados inaccesibles,
. 90 aplica el algoritmo por llenado a A ' para encontrar Q nallI - Q '/= ,
. se calcula dmm y Fmm a p a rtir de la función de transición «5' y el conjunto F'
9egún las definiciones y
. finalmente, A m¡n = ( Q /^ r E . ó nun» [<£>]» Pnin)-

te m p lo 17. Sea A el au tóm ata del ejemplo 0 Como el conjunto de estarlos


inaccesibles de A es vacío, se ignora el segundo paso, en otras palabras A ~ A '.
ConKí se calculó en el ejemplo [HjJ Q / m consta de las clases de equivalencia
M - {<&} para i =» 0 ,1 ,4 ,5 ,6 , 7 y js ) = {q2, 93 }• Por tanto, los estados 92 y <?3 son
reemplazados por un único estado s. El diagram a de transición correspondiente
a j4mln se m uestra en la figura j¡E§

Lista de ejercicios de la sección Z3|

Ejercicio 18. Sean -4 = (Q ,E ,6 .q o ,F ) y B = (P, E , 7 , po, H ) dos autóm atas


finitos determ inistas. Sea A U B el autóm ata con conjunto de estados Q u P ,
alfabeto de símbolos de e n tra d a E , estarlo inicial q0, conjunto de estados de
aceptación F U / / y función de transición 77: (Q U P ) x E -¥ (Q U P ) definida
para to d a en trad a a por <5(r, a) si r € Q y 7 (r. a) si r € P. D em uestra que q0 y
pu son equivalentes si y solo si L (A ) = L {B ).
26 2 A u tó m a ta * finito* d o tc rm in is ta a

Fig. 2.8 A u tó m a ta d e l e je m p lo [14] m inim izado.

Ejercicio 19. Sean A d au tóm ata (Q. E . S. q¡t- F ) e / = d conjunto


de estados inaccesibles d e A. Sea A ' d au tóm ata (Q \ / . E , 7 , go, F \ /) , donde
7 (9 , a ) = 6(q. a), p a ra todo q e Q \ I y a € £ . Pruebe que L (A ) = L(A ').
Ejercicio 20. Demuestre la propiedad fl|
Ejercicio 21. Minimice el a u tó m ata descrito m ediante la ta b la de transición:
0 1
“ + Qo 9i 92
Q\ 9i 93
92 9 i 92
9 s 9i 94
*94 9i 92
*qr, 9 i 93

Ejercicio 22. Sea A un au tó m ata finito determ inista con función de transición <5y
alfabeto E . Demuestre que si p y q son estados equivalentes entonces r = <5(p, a )
y s — S(q, a ) tam bién lo son. para cualquier a 6 E . ¿Porqué esto implica que
<$min de la ecuación Q2.5Q e s tá bien definida?
Ejercicio 23. En la demostración del teorem a § ¿dónde se usó el hecho de que el
au tó m ata A no debe tener estados inaccesibles?
Capítulo ___________________________

Autómatas no-deterministas

E d este capítulo se estudian o tro tipo sistem as de estados y señales en la misma


línea del capítulo anterior. La diferencia fundam ental es que las transiciones no
son determ inistas, en el sentido de que dado un estado y una señal pueden liaber
muchos estados de lleg ad a Por consiguiente, existen varias posibilidades de lec­
tu ra de una cadena, lo cual ap o rta flexibilidad al momento de querer modelar
procesos con un núm ero finito de estarlos y señales.
Efcte capítulo se divide en tre s secciones. En la prim era sección se estudian los
llamados autóm atas finitos no-determ inistas. P araesto s sistem as, darlo un estado
y una señal de entrada, la función de transición regresa un conjunto de estados.
Fíj la segunda sección se establece un tipo de autóm atas no-determ inistas m ás
general, estos sistem as adm iten adicionalmcntc transiciones instantáneas, esto es,
estando en un estarlo es posible pasar a otros sin necesidad d e gastar símbolos
de e n tra d a E n la tercera y últim a sección se presenta un resultado que afirma
que todos los tipos de autóm atas finitos estudiarlos h a sta el momento son en
algún sentido equivalentes. Las definiciones de este capítulo y el teorem a de
equivalencia corresponde de origen a |24|.

3.1 D e fin ició n de a u tó m a ta fin ito n o -d e te rm in is ta

Un au tó m ata no-determ inista es un sistem a con un número finito de estados y


señales pero que —a diferencia de los autóm atas determ inistas— adm ite m ás de

27
28 3 A u tó m a U a n o -d c t^ m in to tiu i

un estado de llegada, una vez recibida u n a señal. Fbrmalmcnte se define a un


autómata finito no-determ inista corno u n a quintupla (Q , 17.6. 40 . F ) tal que:

Q es un conjunto finito no vacío, llam ado conjunto de estados;


17 es un conjunto finito no vacío, llam ado alfabeto de símbolos de entrada;
S es u n a función definida en Q x 17 con imagen en ^ ( Q ) Q e n otras palabras,
para todo estado q y símbolo de en trada a,

¿ (9 ,a ) = { íh ,...,p m } c Q.

El conjunto S(q, a) puede ser vacío. A ó se le llama fu n d ó n de transición;


3b es un elem ento de Q. llam ado estado inicial;
F es un subconjunto de Q, llamado conjunto de estados de aceptadón.

El conjunto S(q. a) representa los posibles estados de llegada, partiendo de q al


recibir la e n tra d a o. La ta b la de transición de un a u tó m a ta finito no-determ inista
es igual a la de uno determ inista. Respecto al diagram a de transición, la única
diferencia es que las transiciones del tip o S(q. a) = 0 se omiten.

Ejemplo 18. Sea A — ((?, 17.6. qo, F ) el autóm ata descrito m ediante el diagram a
de transición que se m uestra en la figura (¡Tí) En este caso Q = {40, 41 , 92 },
17 =» {0.1}, F - {92 } y además:

¿(9o, 0 ) = {<?o},
¿ (9 o ,l) = {9o-9i}t
¿ (9 i,0 ) = 0.
¿ ( 9 i,l) = {42 },
¿ ( 42 , 0 ) = 0 .
¿( 42 , 1) = 0 .

La transición ¿( 9 ». 1) = {9 ,, q \} significa que estando en qu al recibir 1 hay dos


posibilidades: quedarse en 90 o pasar al estado q \. Ijí transición ¿( 92. 0 ) = 0 se
puede in terpretar como «estando en 92 si se recibe la señal 1 aitonces no se va
a ningún estado» (¡tam poco se queda en 92!). La transición ¿( 91 , 1) = {92 } se
interpreta como estando en 91 , al recibir 1 se pasa con seguridad a 92 -
La cadena 00011 puede ser leída de muchas formas. Un cam ino consiste en
perm anecer en 40 duran te to d a la lectura. O tro camino puede ser, por ejemplo,

1 o s d c o n ju n to p o te n c ia do Q , e s to « , el c o n ju n to d e to d o s los s u b c o n ju n to s d e Q .
3.1 D e fin ic ió n d o a u t ó m a t a f in ito n o - d e t e r m i n i s t a 20

1
0 — 1— * 0

Fl*. 3 .1 A u tó m a ta fin ito m x f o te rm in is ta que acepta, a las c a d e n a s d e l a lfa b e to b in ario q u e


te rm in a n e n 11.

la siguiente ruta; al leer 000 se queda en qo, cuando se lee 1 , se pasa a </i y
cuando se lee 1 o tra vez. se pasa a q2 (ver figura [O ). Una cadena es distinguida
por el au tó m ata si existe un camino, tal que a partir d d estad o inicial se llega a
un estado de aceptación. En este ejemplo, el conjunto de cadenas aceptadas es
d conjunto de cadenas binarias que term inan en 11 .

L a función de transición extendida es una aplicación que rc d b e un estado y


una cadena de símbolos de en tra d a y regresa un conjunto de estados. Si q es
un estado y adem ás x y a son, respectivam ente, una cadena y un símbolo de
entrada, entonces:

R. INICIAL 6(q,e) * {q)\


r . in d u c tiv a si 6(q,x) = { p i , . .. ,p ^ } aitonces,
tn

*=1

Si ¿(g, x ) = 0, entonces ¿( 9 . xa) no e stá definida. Al conjunto

L ( A ) = { w £ E * :¿ (< ? o ,u > )n F ¿ 0 }

se le llam a lenguaje aceptado por A.

Ejemplo 19. Sea A d a u tó m a ta finito no-determinista:


II
30 3 A u tó m a ta s n o -« M rrm m ista s

El alfabeto E está co u stitu id o p o r todos los símbolos de texto plano. A p a rtir de


la definición es fácil calcular ¿(90 , "h o lajn u n d o "). Primero, se ha de notar que
¿(<7o-") = {<7i }• luego

S(q0. "h o la jm n d o ) = á (g i,h o la wmindo) «= {91 },

pues

¿(<7i-h) = {<7i},
¿ ( 91 , ho) = ¿(q i,o ) = {91 }
¿ ( 9!. h o l) = ¿( 91. 1 ) = {91 }

¿( 91 , h o l in u n d o ) = ¿( 91 . 0 ) = {91 }.

Por tanto,
¿( 9o- "h o lajm in d o ") - ¿( 9 ,. ")-{ < & } .
Por o tro lado,
<j(<3b, h o lajn u n d o )

110 e s tá definida, pues de e n trad a ¿( 90,h) = 0. En general, este au tóm ata dis­
tingue las frases escritas entre comillas, sin que aparezcan comillas en el interior,
en o tras palabras [ejercicio f29j:

L (A ) « {te 6 E ' : w = "x" : x 6 ( E \ {"})*}.

Referente a lo anterior se puede decir que se cumple la siguiente propiedad


en analogía al caso determ inista (la demostración se deja como ejercicio para el
lector |cjercicio ^Gp.

Propiedad 5 . Sea 6 la función de transición de u n au tóm ata finito no-determ inista


B itonces p ara cualquier estado 9 y para cualesquiera dos cadenas x e y, si
S{q,x) = {p, . . . , p mj en to n ces¿ ( 9 . x y ) = ¿ ( p j.i/) U • • • U ¿(p,*,!/).

Ejem plo 20. Sea E = { a , c } un alfabeto. Se e stá interesado en diseñar un


au tó m ata que distinga aquellas cadenas en E* cuya últim a en trad a aparezca
al menos dos veces. Por ejemplo, las cadenas aabaca. babbcc y bcccb deben ser
3.1 D e fin ic ió n d o a u t ó m a t a f in ito n o - d e t e r m i n i s t a 31

distinguidas, m ientras las cadenas bbccbba, aaabbac no. Se propone el siguiente


a u tó m ata finito no-determ inista:

Por lo ta n to se tiene la siguiente tab la de transición:


a 6 c
Qa {Qo.Qa} {ífO, Qb} {#><7c}
Qa {Qt} {Qa} {Qa}
Qb {Qb} {Qf} {Qb}
Qc {Qc) {7c} {Qf}
*Qf 0 0 0

Se supone que qj 6 ¿( 90, w) con w = xa. |x| > 0 y la en trad a a no aparece en x.


Entonces x) es un subconjunto de {90. 96-9o 9 /} que no contiene a qa. Por
tanto, ¿ ( 90. xa) es un subconjunto de í ( 9b ,a ) u ¿ ( 9b .a ) u ¿ ( 9c,a)u < 5( 9 / , a ) el cual
no contiene a q¡. Se llega a una contradicción. Si w = x b o w = xc se razona de
igual m an era
Sea w una cadena cuya últim a e n trad a aparece al menos dos veces en la
c a d e n a digamos w = x a y a . donde x € E * , y € {6, c}*. Como 9b € 6(qo,x) para
cualquier cadena x , entonces, por la propiedad ^ ¿ ( 9b. aya) es un subconjunto de
¿(qb-£ai/a). Además, corno qa 6 <5(qo. a), de nuevo por la propiedad § ¿(9,,. ya)
es un subconjunto de ¿( 9" . aya). Si y = c, entonces 6(qa.a ) = {9/} . Si y no
es la cadena v acía entonces 6{qa.y) = {90 } y por tonto. 6(qa,y d ) = {9/} . De
cualquier modo, q¡ 6 &(QaiVQ) C <J(90,a y a ) C ¿( 90, xa ya ). Si la últim a en tra d a
es b o c se razona de la misma form a
32 3 A u tó m a tiw n o d rtc rm ro ig tiu i

Lista de ejercicios de la sección [ O ]

Ejercicio 24. Para cada uno de las incisos, diseñe un autóm ata finito no-determ inista
que acepte únicam ente cadenas binarias tales que:
1. term inen en 0011 ;
2 . contengan al menos tres unos;
3. comiencen en 110 y acaben en 0110;
4. contengan lasu b c a d e n a 1010.
Ejercicio 25. Escriba la ta b la de transición del au tóm ata del ejemplo M odi­
fique este au tó m ata p ara que dado un texto, diga si ese texto contiene o no al
menos una frase en tre comillas.
Ejercicio 26. Demuestre la propie<lad ^
Ejercicio 27. Sea A el au tó m ata del ejemplo [ l § verifique que L (A ) <b el conjunto
de cadenas binarias que term inan en 11.
Ejercicio 28. Diseñe un autóm ata finito determ inista que acepte como lenguaje
el conjunto de números naturales que term inan en 3, fi o 9.
Ejercicio 2ü. Sea A el autóm ata del ejemplo [IÜJ pruebe que L (A ) es el conjunto
de cadenas de un tex to plano de la form a w = "x " donde x € ( £ \ {"})*•
Ejercicio 30. Demuestre que si un lenguaje es aceptado por un au tóm ata finito
determ inista entonces es aceptado p o r un au tóm ata finito no-determinista.

3 .2 A u tó m a ta s co n tran sicio n e s instan tán e as

Como ya se ha visto antes, la cadena eabbaacecca es igual a la c ad en a abbaaccca.


A veces, en el diseño de un autóm ata, es más fácil pensar que c es tam bién una
en trad a de la cadena. El siguiente diagrama:
3.2 A u tó m a ta s con tr a n s ic ió n » m stant& noas 33

se podría interpretar como: a p artir del estado q es posible ir a los estados


Pi, P2 o ptl «instantáneam ente», sin haber recibido ningún elemento del alfa­
beto de en trad a. La definición formal de un autómata finito no-determ inista con
transiciones instantáneas A = (Q. E , <5, qa, F ) es exactam ente igual a la de un
au tó m ata finito no-determ inista. salvo que el dominio de la función ó es:

Q x E l i {f }.

Para determ inar a la función de transición de A se requiere establecer antes el


concepto de clausura respecto a e de un estado q, que se denota p o r clau(g). La
definición se establece de m anera inductiva:

R. INICIAL q € clau(<7);
R. INDUCTIVA si p € claufa) entonces ó(p. e) C clAu(g).

Si q es un estado y adem ás x y a son. respectivam ente, una cadena y un símbolo


de en trad a, la función de transición extendida se define como sigue:

R. in ic i a l 6{q, e) = clau(g);
r . i n d u c tiv a si ¿(g .x ) = {px,. •. ,p^i} entonces:

k
S (q ,x a )= | J c la u fo ),
j=i

donde U 7L i * ( P " a ) = { n , . . .,r * } .

Si <5(9 , a;) = 0 entonces ó (q .xa ) no e stá definida. El lenguaje aceptado por A es


el conjunto {u> € E* : <5(<fo. te) n F ¿ 0}. Se cumple tam bién que para cualquier
estado q y para cualesquiera dos cadenas x c y (ejercicio [37):

6 {q ,x) = {pi . . . , p m } implica ¿( 9 , xy ) = ó (p i. y)U • • • U ó(pm ,y)- (3.1)

te m p lo 21. Sea A el au tóm ata finito no-determ inista con transiciones instan­
táneas el siguiente diagram a de transición que se m uestra en la figura {37% La
transición ¿(gb.e) *= {<7i , P i } se in terp reta como sigue: a partir d d estado inicial
qn se puede cam biar instantánem ente al estado 91 o al estado pi sin necesidad
de haber recibido señal alguna. El resto de las transiciones se interpretan igual
que en un a u tó m ata finito no-determ inista.
34 3 A \itó m * u w n o d r tr g m in » ti

Fl*. 3.2 A u tó m a ta q u e a c e p ta a las c a d e n a s bin arias q u e a c a b a n e n 11 o e n 00.

Como es de esperarse, una cadena es distinguida por el autóm ata si existe


un cam ino tal que a p artir del estado inicial, al recorrer el autóm ata se llega
a un estado de aceptación. En este autóm ata, las transiciones instantáneas que
parten d e gt> nos abren la posibilidad de distinguir a las cadenas que term inan
en 11 o q u e acaban en 00 . Para calcular ¿(qo, 100 ) siguiendo la definición formal
se procedo como a continuación. La regla inicial a rro ja la igualdad:

á(g0.£) = clAu(#)) = {<&,<?!, Pi }-

Los pasos de lectura de la cadena 100 siguiendo la regla inductiva se explican en


la siguiente tabla:

a <*(#),x) — { p i, . . . , p m }
í(9o, *) = {Q o Q iP i)
1 {<*.<72}
0 {<?«•£*} ¿(<3h,fl0) = {qo-Qi-Pi-P?}
0 {<fc,P2,P3} ¿(gtj.clOO) = {qb.91 .p 1.p 2 .p 3 }

Por tanto, la cad en a 100 sería aceptada, pues el estado de aceptación pertenece
a Í(<jb.cl00 ). Se ha de notar que a diferencia d e los autóm atas sin transiciones
instantáneas ¡á(qb. 1) ^ <5(g0 ,l)!. pues S(q0A ) = {qu} y sin embargo la tabla
anterior indica que ¿(qb, 1) *= {qb.<7i . P i , 92 }.
3 .2 A u t ó i m t M con tra n a ic k m e a inst*nt&ncuui 35

Ejem plo 22. Sea A el autóm ata del ejem plo (31) Se tiene q u e L( A) os el conjunto
de cadenas binarias que acaban en 00 o en 11. P a ra verificar que en general las
cadenas de la form a x l 1 o xOÜ son aceptadas se razona de la siguiente manera.
Se supone que w = x l l . Ya que qn 6 ¿(go, x), para to d a cadena x , entonces
por flO j), C <j(qo,xf), p o r tan to q\ e clau(qo) C <5(qt>,x). De nuevo por
{f O jl, ¿ ( q i . l l ) C ó(qo, x l l ) . Por definición de Ó, q¿ € ó '(q i.ll). Se concluye que
02 6 ó(oo, x l 1). Si x = 00 se razona de m anera análoga.
P ara ver que son el único tipo de cadenas aceptadas, se supone lo contrario,
es decir se aceptan cadenas que acaban 10 o 01. Si aceptaran cadenas del tipo
w = xlO, al hacer el cálculo preciso se llegaría a que <5(qo, xlO) no tiene algún
estado de aceptación, independientem ente de la cadena x , lo que lleva a u n a
contradicción. De form a sim ilar se razona para w = xOl. Los detalles se dejan
al lector (ejercicio ETÍ).

Ejemplo 23. Sea E = {a, 6 , c}. Se está interesado en diseñar un au tó m ata que
distinga aquellas cadenas en E* cuya últim a en tra d a aparezca alo m ás dos veces.
Por ejemplo, las cadenas caccba, babe y bcaccb deben ser distinguidas, m ientras
las cadenas bcacaaa. ababeb no. Se propoue el autóm ata descrito m ediante el
siguiente diagram a de transición (ejercicio ¡33):

a,e
36 3 A u tó m a ta s n o -« M rrm m ista s

El cálculo d e las clausuras de cada estado quedan como sigue:

claufao) = {9bi9a.9b-9c-W ,JVPc},

p ara i = a* b.c, se tiene que clau(q,) = {9,, p*} y clau(p,) = {p,}. Por último, es
fácil verificar que clau( 9 / ) = {9 /} .

Lista de ejercicios de la sección 372]

Ejercicio 31. Complete loe detalles en la demostración del ejercicio [21]


Ejercicio 32. Haga un au tó m ata finito no-determ inista que diga si encuentra a
las palabras reservadas th e n o i f en un texto.
Ejercicio 33. Diseñe u n au tóm ata finito no-determ inista con transiciones £ que
acepte como lenguaje los números decimales. Pruebe que su diseño es correcto.
Ejercicio 34. Sea A el a u tó m ata del ejemplo {23} dem uestre que L (A ) es el con­
ju n to de cadenas cu y a últim a en trad a aparece a lo más dos veces.
Ejercicio 35. Coasidere el autóm ata finito determ inista con transiciones instan­
táneas con la siguiente ta b la de transición:

£ 0 1 2
” ♦ Qo {<7i-« 2} ti M {92 }
9i ti {9o} {<fc} {9o-9i}
*(f2 0 0 0 0
1. calcule la clausura respecto a r d e cada estado;
2. obtenga todas las cadenas de longitud menor o igual a 3 aceptadas por este
autóm ata.
Ejercicio 36. Sean p y 9 dos estados de un au tóm ata no-determ inista con transi­
ciones instantáneas. Verifique que si p 6 clau( 9 ) entonces clau(p) C claufa).
Ejercicio 37. Demuestre la propiedad § para autóm atas finitos uo-dctcrm inistas
con transiciones instantáneas.

3 .3 C a ra c te riza c ió n de los a u tó m a ta s Finitos

El objetivo de esta sección es dem ostrar que ni el concepto de no-determinismo


ni el de transiciones instantáneas implican la existencia de una clase de lenguajes
3-3 O t r a c t o r o A c ió n d o loo a u tó m a ta * finito* 37

más general a la clase de lenguajes aceptados por los autóm atas finitos d e ter­
m inistas. En o tra s palabras, las tre s máquinas com putacionales son equivalentes
antro sí com o lo señala el teorem a £2

3 .3 .1 D e l n o -d e te rm in is m o al d e te rm in is m o

D ado un autóm om ata finito no-determ inista A s = ( Q n , E - ¿ / v , 9 d , ^ j v ) siempre


se puede encontrar un a u tó m ata finito determ inista A d = {Q d >•£. ¿d,Po. F d )
que acepte el mismo lenguaje que A N, donde:

Q d es en principio todo el conjunto & ( Q n ) ‘,


6 d se define p ara c ad a S € Q d y símbolo de en trad a a.
por
¿o(S,a) = ( J <fo(p,a),
pes (3.2)
después de este cálculo, es conveniente eliminar todos
los estados inaccesibles y volver a definir Q d ;
po ® el estado inicial darlo por {qb};
F d os el conjunto {S 6 Q d ’ S n Fjv / 0}.

te m p l o 24. Sea A N el autóm ata finito no-determ inista descrito m ediante el


siguiente diagram a de transición:

En principio, la tab la de transición de A d queda como se m uestra a continuación:

0 1
0 0 0
-> {flo} Í 9o , 9 i } { 9b }
M 0 M
• M 0 0
ÍQo Qi ) { 9o , 9 i } {#>.«*}
' {Ol-Ql} 0
*{<M. Qi) { 9o , 9 l } {«»}
*{<?0 , 9 f< 72} { 9o , 9 i } { 9b,<fc}
38 3 A u tó m a tiw n o d rtc rm ro ig tiu i

Se h a d e notar q u e 0 , {91 }, {92 }, {91, 92 } y {90 . 91- 92 } son estados inaccesibles.


Por tanto, Q n se puede redefinir como el conjunto {po-Pi, P2}, donde po = { 9a},
P i - {<Jb,9 i} y P 2 = {9b.92}- El diagram a de transición correspondiente a A D
es:

E 11 este ejemplo, el número de estallos de A d es igual aJ de A n - Sin embargo,


es posible que la construcción nos deje como saldo un crecimiento enorme en el
núm ero de estados pudiendo llegar a 2

Teorem a 3. Sea A s m autóm ata finito no-determ inista y A d el autóm ata finito
determinista de la construcción Entonces L ( A N) = L (A n ).

Prueba. D asta dem ostrar la siguiente afirmación para n > 0.

P (n ): si |tc| = n entonces ¿ d ({ 9d}, w ) = S n ((/í). ur).

La afirmación P (0 ) se satisface debido a que ¿o({?o},£) = ó y (q o e ) - {#)}• Se


supone c ie rta P (n ) (lúpótesLs de inducción). Sea SN (q0.x ) = {pt , **• ,p t} . Pbr
definición de ó .\, <5.v(9o, w) = ¿jv (p i,a) U • • • U <5\(pk,a). Por o tro lado, por la
construcción de A D, <5/>({pi,• • • , Pfc},o) = U f . , 6 n (Pí , a). Luego,

< M { P i.” ’ -PfcJ.a) = ¿*(9o-u0-

Por ta n to £d({9o},w ) - <M <M { 9 >}. x). a) = ó'd({Pi,*-- ,P k},a) = $n ( q >, w )-


I a conclusión de la dem ostración se sigue de inm ediato de la definición de L (A N )
y L ( A d )- □
3-3 O t r a c t o r o A c ió n d o loo a u tó m a ta * finito* 30

3 .3 .2 E lim in a c ió n de las tra n sicio n e s instan tán e as

A p artir de un autóm oinata finito no-determ inista con transiciones instantáneas


A e = {Q f.> ZiÓR-qu, F e ) se puede construir un au tó m ata finito determ inista
A d ™ (Q d - E '6 d ’Po,F d ) que acepte el mismo lenguaje que A e ■ Si S es un
conjunto de estados, la clausura de S se define como clau(S) = U pesdm iÍP )- La
construcción de A D a p artir de A e es la siguiente.

Q d es en principio el subconjunto de •í? ( Q e ) formado por


aquellos conjm itos S C Q e tales que S = clau(S);
6 d se define para cada conjunto S = {pi, . . . Pk} € Q d
y a € E como 6 n (S , a) = clau(S¿), donde

si-Ufete-®)-
*=I
(33>
después de este cálculo es conveniente eliminar todos
los estados inaccesibles y volver a definir Q d ;
po « el estaílo inicial dado por clau(go);
F d <b el conjunto { 5 e Q d '■S n F e 0}.

Ejemplo 25. Sea A e el a u tó m ata dado por el siguiente diagram a d e transición:

El cálculo de un prim er Q n se basa en la siguiente tabla:


40 3 A u tó m a tiw n o d rtc rm ro ig tiu i

s clau(S) ¿ 5 = d a u (S )?
U sí
{90} {<30,91,92} no
{9 .} {9.} sí
{ 92 } { 91 , 92} no
{91», 91} {<31),91,92} no
{90,92} { 9b .91,92} no
{91-92} {9 1 9 2 } sí
{ 9o, 9 i- 92} { 9b , 9 i , 92 } sí

A partir de los estados S que satisfacen S = clau (S ) se calcula óp:

S M S . o ) * d ( S , \ ) ¿accesible?
Sj
0 0 0 0 0 no
{ 9 ,} { 9 i } {91,92} {9 ,} Í 9i , 92} sí
*{91,92} {91} {91,92} {9»} { 91, 92} sí
* { 9b- 9 i , 92 } {91} {91,92} {9 .} { 9 i , 92 } sí

A l hacer = {90.91,92}, p i = {91} y P2 = {91.92} el autómata A D que se


obtiene es:

E l ejemplo anterior fue deliberadamente escogido con el fin de simplificar


cálculos, sin embargo, el lector con seguridad ha advertido que también en este
caso el número de estadas de Q n puede crecer mucho. Como es «le esperarse,
esta construcción cumple exitosamente su objetivo como lo indica el teorema fl}
3-3 O ^r a c to r n o c ió n d o toe a u tó m a ta * finito* 41

La prueba es sim ilar a la d d teorem a 0 y se d e ja como ejercicio para el lector


lejerciciofjQl.

Teorem a 4 . Sea A& tm autóm ata finito no-determinista con transiciones instan­
táneas y A d d autóm ata finito determinista de la construcción iffi.ffi. Entonces
L (A e ) = L ( A d ).

3 .3 .3 E q u iv a le n c ia de a u tó m a ta s finitos

R i e s ta sección se presenta el resultado que relaciona a todos los conceptos de


autóm atas finitos estudiados hasta el momento, de hecho, la relación no puede
ser más perfecta como lo especifica el siguiente teorem a:

Teorem a 5 (equivalencia de a u tó m a ta s finitos). Sea L un lenguaje cualquiera.


Las siguientes afirmaciones son equivalentes:
I. existe un autóm ata finito determinista que acepta a L como lenguaje;
n. existe un autóm ata finito no-determinista que acepta a L como lenguaje;
ni. existe un autóm ata finito no-determinista con transiciones instantáneas que
acepta a L como lenguaje.

Pruebo.
I = > II. Sea A p = {Q . E , ¿ d . 9o. un au tóm ata finito determ inista que acepta
a L como lenguaje. Entonces el au tó m ata A s = { Q .E ,S n , {qr0) , donde
p ara cad a estado y símbolo de en tra d a o. a) = {$o(q, a)}- Se satisface
trivialm ente que b ( A ^ ) — L ( A D), puesto que para to d a cadena de símbolos
de e n tra d a u>. w ) = {¿o(<3b. te)}.
II = > III. Sea A n = {Q . E . 6&, q ^ .F ) u n au tó m ata finito no-detenninista que
acepta a L como lenguaje. Sea A e = {Q. E , ÓE-qo• í*} el autóm ata finito no-
determ inista con transiciones instantáneas con función de transición definida
p ara c a d a q € Q por:

a ) = M<?i o)i si a 6 T ;
<5E(q, *) = 0 -

Se puede verificar fácilmente que L ( A e ) = L (A n ) = L.


ni = > I. Es consecuencia inm ediata del teorem a 31

42 3 A utóm ata*) n o -d o tc rm in isti

Lista de ejercicios de la sección 373]

Ejercicio 38. A p artir del au tóm ata del ejemplo [TOJ construya con el algoritm o
visto en e sta sección un au tóm ata finito determ inista que acepte el mismo
lenguaje.

Ejercicio 39. Con la construcción ({3.3), vuelva determ inista el siguiente a u tó ­


m ata:

Ejercicio 4ü. Pruebe el teorem a Sugerencia: probar p o r inducción m atem ática


que para todo n > 0 , si |ur| = n entonces ¿o({qo},tr) = 6e(q o- “>)•
Capítulo T _______________

Lenguajes regulares

Ei» este capítulo se presenta el concepto de expresión regular, el cual fue in­
troducido por S. C. Kleene (17) en los años cincuenta con el fin de describir
eventos que puedeu representarse m ediante modelos de autóm atas finitos. Desde
entonces h asta nuestros días, las expresiones regulares y extensiones de ellas han
sido utilizadas en muchas herram ientas de Unix o lenguajes de programación
como Perl y P ython |1, p. 189|.
E ste capítulo se divide en tres secciones. En la prim era sección se definen
las expresiones y los lenguajes regulares. En la segunda y la tercera sección se
dem uestra que un lenguaje es regular si y solo si es aceptado por un au tóm ata
finito determ inista. E stas ideas de equivalencia pertenecen tam bién a Kleene,
pero la construcción de un autóm ata finito determ inista a partir de una expresión
regular que se presenta aquí corresponde a |20 ].

4.1 D e fin ició n de expresión y le ngua je re g u la r

Dado un alfabeto E , se genera el conjunto de expresiones regulares asociada a


E de m anera inductiva a través de las siguientes reglas:
R. INICIAL los símbolos e y 0 son expresiones regulares,
si a € £ entonces a es una expresión regular.
R. inductiva si E y F son expresiones regulares entonces
también lo son E + F, E F , ( £ ) y E \

•43
44 4 I f a i g u n jm r c g u U r c a

Ejemplo 26. Las expresiones ( f + 1)* 4- 0, (0 4- 1)* son expresiones regulares del
alfabeto binario. Las expresión 1 + no es regular para algún alfabeto.

Si £ es una expresión regular, en lo subsecuente se d enota p o r £ ( £ ) al lenguaje


aceptado por E . El lenguaje aceptado por cada expresión regular asociada a un
alfabeto se establece tam bién inductivamente:

R. INICIAL £ (s ) = {/r}, £( 0 ) = 0 y £ ( a ) = {a};


R. inductiva si £ y £ son expresiones regulares.
£ ( £ + £ ) = £ ( £ ) U £ (£ ),
L (E F ) = £ ( £ ) £ ( £ ) ,
£ ((£ )) = £ (£ ),
£ (£ * ) = £<£)*.
Se dice que un lenguaje L C £ * es un lenguaje regular si existe una expresión
regular £ tal que £ ( £ ) — £ . P a ra ev itar exceso en el uso de paréntesis se ha de
tom ar en c u e n ta las siguientes convenciones:

. el operador clausura tiene la mayor precedencia y es asociativo a la izquierda,


• la concatenación tiene la segunda procedencia y es asociativa a la izquierda
• la sum a tiene la menor precedencia y es asociativa a la izquierda

Ejemplo 27. El lenjuajc de la expresión regular 01* + 1 es el mismo que el de


la expresión ( 0 ( 1)*) 4-1. De hecho,

£ (0 1 * + 1 ) = (£ (0 )(£ (1 ) * ) ) U £ (1 ) = £ (0 1 * ) U { 1 } = {1,0,01,011,0111, • • • }.

Ejemplo 28. £ (a a * ) = { a aa. aaa, aaaa ■• •}.

Ejemplo 29. Para el alfabeto binario, es fácil calcular £ ((0 4 1)*) = {0,1}*.

Ejemplo 30. Se desea encontrar una expresión regular £ sobre el alfabeto bi­
nario, tal que £ ( £ ) = {w : ur consta de ceros y unos alternados}. l a expresión
regular 0 1 (0 1 )* acepta como lenguaje al conjunto de cadenas con ceros y unos
alternados, pero solo los que comienzan en 0 y term inan en 1, en otras palabras:

£ ( 0 1 ( 0 1 )*) = {0 1 . 0101 . 010101 . •••}.

P ara obtener todas las cadenas de ceros y unos alternados es preciso considerar
la expresión regular 01(01)* 4-10(10)* 4-010(10)* + 101(01)*.
4.1 D e fin ic ió n d o e u p r m ió n y le n g u a je r e g u l a r 45

Se (fice que dos expresiones regulares E y F son equivalentes, se escribe E - F ,


si aceptan el mismo lenguaje.

Ejemplo 31. La expresión regular 0 I 01* es equivalente a la expresión regular


0 1 *. Ambas aceptan el lenguaje {0 , 01 , 011 , 0111 . ••• }.

U na cualidad im portante de las expresiones regulares es que se puede hacer


cierta Algebra con ellas a partir de la noción de equivalencia. En el cuadro [TT]
se m uestran algunas equivalencias útiles, todas se dem uestran de form a similar,
básicamente son consecuencia inm ediata de las propiedades algebraicas de los
lenguajes vistos en el primer capítulo.

ley p ro p ied ad
(E F )H = E(FH) a a o d a tiv id a d d e la c o n c a te n a c ió n
E + F= F + E c o n m u ta tiv id a d d e la su m a
E + E = E id e m p o te n c ia d e l a s u m a
(E + F)II = E li + FU d istrib u ció n
(£ -* )• = E* id e m p o te n c ia d e la c la u s u ra
0 com o a n u í a d o r
Ee= E í com o id e n tid a d
E + 0 = E 0 com o n e u tro a d itiv o
C u a d ro 4.1 A lgunas equivalencia* d e la* ex p resio n es regulare*.

Ejemplo 32. Se pueden utilizar las propiedades del cuadro g l ] para simplificar
una expresión regular complicada. Por ejemplo, la expresión regular

(0 + 1 )* + ((1 + 0)*)*(1 + 1 ) + 1 + e

es equivalente a (0 + 1 )* + (0 + 1)* 1 + 1 + £ . A su vez, e s ta últim a es equivalente


a (0 + l) * ( f f 1) + (1 + f). Finalmente, e sta nueva expresión regular es igual a
la expresión (0 + ! ) * ( ! + e).

Ejemplo 33. E3 sistem a operativo Unix tiene su propia notación para el manejo
de expresiot»es regulares, además, desde un inicio se han ¡do agregado expresiones
regulares extendidas, algunas son:
48 4 le n g u a je s rc g u U rc a

E| F es la expresión regular E 4- F .
E* es la expresión regular E *.
E+ es la expresión regular extendida equivalente a E E '. El operador + tiene la
misma precedencia y asocia!ividad que el operador clausura.
E? es la expresión regular extendida equivalente a E fe . Thmbién tiene la m ism a
precedencia y asociatividad que el operador clausura.
[abe] es la expresión regular extendida equivalente a a + b + c .
[a -z ] es la expresión regular extendida equivalente a a + b + cH------h z . Esto
aplica siempre y cuando se trate de secuencias lógicas como letras mayúsculas
o dígitos.

Por ejemplo, la expresión regular extendida [A-Za-z] acepta como lenguaje al


conjunto de todas las letras en inglés, mayúsculas y minúsculas. La expresión
regular b o ? u le v a rd es equivalente a la expresión regular b o u le v a rd lb u le v a rd .

Lista de ejercicios de la sección 4Tl]

Ejercicio 41. Demuestre que E ' es un lenguaje regular para cualquier alfabeto
E . Pruebe que el conjunto vacío tam bién es un lenguaje regular.

Ejercicio 42. Suponga que e s tá trabajando en un lenguaje que no es sensible a


las mayúsculas y minúsculas. E scriba una expresión regular en la notación de
Unix descrita en el ejemplo £3] que acepte como lenguaje cualquier texto que
contenga a la palabra reservada th e n en cualquiera de sus formas: Then. THen.
th e n . etcétera.

Ejercicio 43. Para c a d a uno de los siguientes incisos, encuentre una expresión
regular que acepte el lenguaje formado por el conjunto de cadenas binarias tales
que:
1. comienzan en 010 y acaban en 11;
2 . term inan en 010 o en 0111 ;
3. no acaban en 01;
4. tienen longitud 3n, n > 0;
5. son de la form a 0n 1 o 01", n > 0.

Ejercicio 44. Verifique:


1. a + a (c + aa)*(c 4 -a a ) = ca(0 + aca)* = a (a a)* ,
2 . (0 + 1 )*O1(0 + 0(0 + 1 )*0 1 )’ = (0 + 1 )*0 1 .

Ejercicio 46. Demuestre que cualquier lenguaje finito es regular.


4 2 Dp a u t ó m a t a * fin ito » * rx p ro a io n fw ro g u U rfw t'

Ejercicio 46. Para cad a uno de los siguientes incisos, construya una expresión
regular en la notación de Unix del ejemplo ^51 que describa de forma razonable
los siguientes conjuntos:
1. números telefónicos de Madrid marcados desde México;
2 códigos postales (los C E P códigos de enderegamento postal) d e Salvador
Bahía, en Brasil;
3l números celulares de México m arcados desde un teléfono fijo, no necesaria­
mente de la misma ciudad;
4. ligas de páginas de internet provenientes d e FVancia.

Ejercicio 47. Para c a d a una de las siguientes expresiones regulares del alfabeto
{ a b. c}, encuentre el lenguaje que acepta:
1. c(a*b*)*,
2 . (a 4- b )* a b (0 + 0 (a f b )* a b )’c.
3. a*(c + 0 + c b * )+ (a * )* c b * .

4.2 D e a u tó m a ta s fin itos a expresiones regulares

Eki e s ta sección se dem uestra que a partir de un autóm ata finito determ inista se
puede construir una expresión regular que acepte el mismo lenguaje. Este hecho
tiene im portancia teórica por sí mismo y se puede establecer con las herram ien­
tas vistas h asta el momento, pero no es particularm ente bueno en la práctica
pues como se verá en la dem ostración del teorem a §J puede arrojar expresiones
regulares del orden de 4" términos si n es el número de estados del au tó m ata
dado. Es im portante señalar que siguen aparcncicndo en la literatu ra algorit­
mos mejorados con el propósito de obtener una expresión regular a partir de un
autóm ata finito e. g. J28j.

Teorem a 6 . Si A =(Q, E .S.qo. F )cs un autóm ata finito determ inista entonces
existe una expresión regular que acepta el m ism o lenguaje que A.

Prueba. Sea { 1 .2 ,...,n } el conjunto de estados de A , donde 1 es el estado


inicial. Sea el nombre de la expresión regular cuyo lenguaje es el conjunto
de cadenas que resultan de rocorrcr del estado i al estado j en A por un camino
con todos los estados intermediarios menores o iguales a k\ los estados i y j
por definición no son intermediarios, por ta n to no hay condición sobre ellos. La
expresión regular que se busca, es la sum a de to d a s las expresiones R [ d o n d e j
IX 4 le n g u a je s rc g u U rc a

recorre a todos los estados de aceptación. El problem a entonces es la construcción


de las expresiones la cual se establece por inducción sobre A:, comenzando
por k = 0 y term inando p o r k = n.

REGLA i n i c i a lsea k = 0, ya que no existen estados menores o iguales a 0,


entonces los caminos que recorren las cadenas aceptadas por R*f}} no tienen
estados intennediarios. Por tanto, tales cadenas tienen longitud 0 o 1; o bien,
no existe ninguna cadena aceptarla por R¡¡p (no hay lazos en tre t y j ) . En el
cuadro se concretan los casos, se ha de notar que e es acep tad a si i — j ,
independientem ente si hay arcos o no.

función d e tra n sic ió n c . a c e p ta d a s


$ (« ,a ) = > , V a € { a i ........ a r : r > 0 } , i ¿ j «1 + ” ■+ « r ai ,a a ,... ,ar
¿ ( i ,o ) = i, Va e { o í , . . • , flr : r > 0 } * + *1 + - - - + « r * . « ........ a r
N o h ay a rc o s q u e u n a n a « y a j , i j t j 0 n in g u n a
N o hay a rc o s q u e u n a n a i y ti j , i = j t t
C u a d r o 4 . 2 R elación d e S co n le» ex p re sio n e s R í j .

re g la in d u c tiv a sea k mayor a 1, hay solo dos posibles casos a considerar para
las cadenas que constituyen al lenguaje aceptado por

• El camino que recorre la cadena no pasa por el estado Ar, en este caso la
carie na pertenece al lenguaje aceptado p o r R.\j ~ 1).
. El camino que recorre la cadena pasa al menos una vez por el estado k . En
este caso el camino comienza en i h asta que to p a por prim era vez con k ,
esa subeadena e s tá en el lenguaje aceptado por /?■* ~ l\ Luego la cadena
inicial se recorre del estado k hasta que to p a o tra vez con Ar, de nuevo de k
a k . y así sucesivamente h asta que llega por últim a vez en su recorrido al
estado A;, cad asu b cad ena —leída de k h asta A:— se encuentra en el lenguaje
aceptarlo p o r R ^ k~ luego la concatenación de todas se encuentra en el
lenguaje aceptado por ( R & ~ . Note que si la cadena inicial to p a u n a
sola vez en su recorrido con d estado k . la subeadena recorrida d e k t í k
es la cadena vacía. Finalm ente el recorrido va desde el estado k h asta el
estado j y la subeadena correspondiente e stá en el lenguaje aceptado por
R^f. l \ Por tanto, la cadena inicial pertenece al lenguaje aceptado por
4-3 Do e x p re sio n e s ro gnU rcg a a u tó m a ta » fin ito s 40

De los dos casos especificados en la regla inductiva, se llega a que:

R ¡ }> = * £ - ,} + R?k ~ l) ( R [ kk- l)) ' R¡¡J " I ) .


Ejem plo 34. Considere el au tóm ata de «prendido y apagado» del ejem plo [IDj
En notación del teorem a §j el au tó m ata se ve de la siguiente forma:

En d siguiente cuadro se escribe el resultado de aplicar el algoritmo establecido


en la pruel>a del teorem a ^ ]>ara encontrar a la expresión regular R[V:
■ie
o

k= 1 k =2
II

M. = £ R ^i = £ + a ( c + a a ) 'a
= • *£>- a Ry2 = a + a(ff + aa)"(ff + a a)
4 ° ,> = a 4 ! ' = a JÍ jV = a + (e -f a a ) ( f + a a )* a
b £ > = £ 4 i > = £ + aa R%2 = (c + a a ) + (ff + a a ) ( f + a a ) ’(c + a a )

Por ta n to la expresión regular buscada es R $ = a + a ( £ + o a ) '( c 4 a a ) = a(aa)*.

Lista de ejercicios de la sección 4.2

Ejercicio 48. Siguiendo el algoritmo que se establece en la prueba del teorem a @


oicueutre una expresión regular para el au tóm ata de la figura (£3)
Ejercicio 49. Encuentre una expresión regular a partir del siguiente autóm ata:
SO 4 I r a ig u a jo a r e g u l a r e »

4 .3 D e expresiones regulares a a u tó m a ta s finitos

e sta sección se estu d ia un algoritmo para <le term inar un au tóm ata finito
no-determ inista con transiciones instantáneas a p a rtir de u n a expresión regular.
El procedim iento se p resen ta a través de la prueba del teorem a 0 Existe u n a
construcción directa «expresión regular a au tóm ata finito determ inista» pero
no es posible presentarla con los elementos estudiados hasta el momento, sin
embargo, el lector será capaz de estu d iarla por su cu en ta al finalizar el texto,
consultar por ejem plo. |2, §3.9.5|.

Teorem a 7. Dada una expresión regular, se puede construir un autómata finito


no-determinista con transiciones instantáneas que acepta el m ismo lenguaje.

Prueba. La dem ostración se hace por inducción sobre la iteración en que se for­
man las expresiones regulares. C oncretam ente se pruelwi la siguiente afirmación.

P(n): d ad a una expresión regular que se construye en una iteración


menor o igual a n, existe un au tóm ata finito no-determ inista con
transiciones instantáneas que acep ta su mismo lenguaje tal que:
(4.1)
• tiene exactam ente un estado de aceptación,
• no tiene algún arco que term ine en el estado inicial,
• no tiene algún arco que salga del estado final.

I,as expresiones regulares que se form an en la iteración 1 son e.fl y a, si a 6 E.


P a ra probar P ( l ) se proponen, respectivam ente, los siguientes autóm atas:

Fig. 4.1 A u tó m a ta s q u e a c e p ta n L (e ), L (0 ) y ¿ ( a ) , resp ec tiv am en te .


4-3 Do e x p re sio n e s regular*» a a u tó m a ta » fin ito s SI

Sean A y B dos autóm atas que satisfacen los tre s puntos de P (n ) y que aceptan,
respectivamente, el mismo lenguaje que E y F (hipótesis de inducción). En la
iteración n + 1, las expresiones regulares son de la form a E + F , E F , E “ y (E ),
donde E y F son expresiones regulares formadas en una iteración menor o igual
a n. Se consideran los autóm atas descritos en las figuras @ 3 P ^ )y fO ]p a ra las
primeras tres expresiones regulares. Finalmente, para la expresión regular (E ),
d propio au tó m ata A sirve. Los detalles de la demostración se dejan al lector
[ejercicio (51].

Fig. 4 .2 A u tó m a ta q u e a c e p ta a l . ( A ) U l- (R)-

Fig. 4 .4 A u tó m a ta q u e a c e p ta a ¿ ( A )* .

Con esto se prueba P (n + 1). □


52 4 Iraig u a jo a rc g u U ro a

Ejem plo 35. Sea E - (0 + 1)*1. Según la construcción anterior, el au tóm ata
que acep ta a L {0 -F 1) com o lenguaje es:

A p artir del autóm ata anterior se determ ina el autóm ata que acep ta a ¿ ( ( 0 + l ) ' )
como lenguaje:
£

Finalm ente, el au tó m ata que acep ta a L (E ) queda así:

Lista de ejercicios de la sección 473]

Ejercicio 50. Con el algoritm o descrito en esta sección, encuentre un au tóm ata
finito no-determ inista con transiciones instantáneas que acepte el mismo lenguaje
que la expresión regular 0 ( 1 0 )* + 1( 1 0 )*.

Ejercicio 51. Determine formalmente las definiciones de los autóm atas descritos
en las figuras 2 3 @3 -v E 2 Después escriba con claridad las tre s igualdades de
conjuntos que se han de probar. Demuestre a detalle al menos una de ellas.
44 l e m a d o h o m b o o p a r a h -n g itajó n r e g u l a r e » a3

4 .4 Le m a d e b o m b e o para lenguajes regulares

En e s ta 9ección se presentan dos caracterizaciones de los lenguajes regulares


además de un criterio para verificar que un lenguaje no es regular conocido en
la lite ra tu ra como lem a de bombeo para lenguajes regulares. La prim era carac­
terización es el teorem a (¡HJ básicam ente ya lia sido presentada: las expresiones
regulares y los au tó m atas finitos determ inistas son com putacionalm ente equiva­
lentes; ese hecho es clave en la dem ostración del lem a de bombeo.

Teorem a 8. Sea L un lenguaje. Las siguientes afirmaciones son equivalentes:

I. L es aceptado por un autóm ata finito determ inista.


n. L es un lenguaje regular.

Prueba. En la sección 2 3 se vio que si A era un a u tó m a ta finito determ inista


<jue acepta a L como lenguaje, se puede construir una expresión regular E que
también acep ta a L como lenguaje. P or otro lado, en la sección [O] se vio que
d ada una expresión regular E que acep ta a L como lenguaje, existe un au tó m ata
finito no-determ inista con transiciones que también acep ta a L como lenguaje.
Por el teorem a 0 existe entonces un au tóm ata finito determ inista que acep ta a
L como lenguaje. □

Teorema 9 (lem a de bom beo para lenguajes regulares). Sea L un lenguaje


regular. Entonces existe un número tía tum i n , tal que pam toda cadena w 6 L
con |tt'| > n . entonces existe una descomposición de w de la form a w = x y z que
satisface:

B f V ¿e,
# 2 - \x ]/[< n ,
B 3. pam todo r > 0, la cadena x y rz está en L.

P tu c b a Se supone que L es un lenguaje regular, entonces existe un au tóm ata


finito d eterm inista A = (Q, E , Ó. q o ,F ) tal que L (A ) = L . Sea n d número de
estados de A y sea w = ai 02 • • • Om 1 con m > n u n a cadena en L. Sea Po = <?o y

p, = <$(<*), ai • • • 04), para i > 1.


54 4 le n g u a je s rc g u U rc a

Ya que A tiene un núm ero n de estados, no es posible que los n + 1 estados p¡


sean todos diferentes. Por tanto existen índices k y j en { 0 .1 .... ,n } tales que
Pk ~ Pji con k < j . Se propone dividir a w a i la cadena x y z . donde (figura[díjl:

y = ajt+1 •• -dj
Z = O j-f | •• Om.

Ya que k es diferente de j . la cadena y no puede ser vacía. Sólo rosta verificar


que, p ara todo r > 0, la cadena x y rz también estA en L. Con este fin, se prueba
primero que, p ara todo r > 0 :

6{Pk,Vr ) = P j - (4-2)

Se razona inductivam ente sobre r. P a ra r = 0 es claro que se satisface la ecuación


(ETi} yn que ¿(p*, e) - pk — Pj. Se va suponer que se satisface (fí^j) para r - s
(hipótesis de inducción). P a ra ver que se cumple la ecuación (jO ) p a ra r = s + 1,
basta calcular:

6{ p k ,lf+ l ) = Í ( 6(pk,VM),v )
“ h p í^ v )
= ¿(¿(gti.íu •• •Ofc),Ofc+ i - a í ).
- d ( p j,o i a t a f c + i •• - O j ) = p ¿ .

Se cmnple entonces la ecuación (frl.2[), para todo r > 0 . Por otro lado,

z) = <5(<5(p o ,x ),y r 2).

Y a que S(po,x) = p*, por la ecuación (£T2) se tiene:

S ( p a , x y rz ) = 6( p k , y r z ) = S( 6 ( pk , y r ) , z ) = S ( p j y z ) .

Además,

6(P j,z) = ó(ó(po,ai • • - a , ) , a , + i • • •«,„)


= ó (p o ,w ).

Por ta n to , ó (p o ,xyrz ) *» <S(po, w ) € F. q


4 4 te r o * d o b o m b e o p a r a fen g u a je a r e g u l a r e s 55

— *v0

'C r=~x>

FIg. 4 .5 R ecorrido d e 1» c a d e n a u> = x y z = <¡\ •• -O fc^ + i •• 'Qj<ij+ i ■•■am en el a u tó m a ta A


°°n Pi,=Pj-

te m p lo 36. Sea L a = {a.aaa.aaaaa, . . . } el lenguaje asociado al au tóm ata del


q em p lo [[3 En esto caso, la constante del lem a de bom beo es n = 2. P a ra cada
cadena te =• a 2n*+ 1 con m > 0 , la descomposición x — e, y ^ a a y z = a2*™- *) + 1
satisface trivialm ente /?i, B q y fh -

Note que el lem a de bombeo es equivalente a decir que si para to d o n existe


una cadena te e L con |te| > n y para cualquier descomposición de te al menos
de una de las afirmaciones B \ . B-¿ o B$ no se cumplen, entonces L no es un
lenguaje regular.

Ejemplo 37. A continuación se verifica que el lenguaje Loi = {0n 1B : n > 0} no


« regular. Sea n un núm ero natural y te = (T I" . Si se cumple B ,. entonces x y
y oonticnen solo ceros y todos los unos están cu z. Si tam bién se satisface B \, y
tiene que ten er al menos un 0 . Por tanto, x y rz $ L para r > l , es decir, no se
cumple B 3. Por tanto, L no es un lenguaje regular.

El lema de bombeo no caracteriza a los lenguajes regulares. Es decir, liay


lenguajes que no son regulares para los cuales existe un n tal que para cualquier
cadena u» con |te| > n hay una descomposición de te que satisface las afirmar
d o n es B \ , B? y B.\ (ejercicio [5¡|. Sin embargo, una herram ienta poderosa que
Mi 4 le n g u a je s rc g u U rc a

caracteriza a los lenguajes regulares es el teorema de MyHill-Ncrode. Sin e stu ­


diar a fondo este resultado, se tr a ta de explicarlo brevemente en lo que re sta de
esta sección. Sea L un lenguaje de E , se dice que dos cadenas x e y de E* son
Ir-equivalentes, se escribe x = y. si para to d a cadena tv 6 E*:

x w € L si y solo si yw 6 L.

Fl> fácil ver que = define una relación de equivalencia. Al conjunto de clases de
equivalencia d e E ‘ /= se le llam a índice d e L . El teorem a de MyUill-Nerodc dice
que un lenguaje es regular si y solo si su índice es finito.
Ejem plo 38. H lenguaje La del ejemplo ffS]tiene índice 1. El índice del lenguaje
¿oí del ejemplo £57] es oc, ya que si n / m entonces 0n l" está en L pero 0 TOl n
no e s tá en L es decir (O”1] £ |0n ], si n ¿ ru­

tista de ejercicios de la sección 4^4]

Ejercicio 52. Demuestre que los siguientes lenguajes no son regulares utilizando
el lem a de bombeo.
1. El conjunto L 0 de cadenas de corchetes equilibrados, por ejemplo [ [ ] ] ,
[ [ □ ] [ ] ] [ ] , □ □ están en L 0 m ientras [] [ o ] C no.
2. El conjunto form ado por cadenas de ceros y de irnos con una cantidad de­
sigual de ceros y de unos. Sugerencia: para cada n natural, considere la
cadena w = On l n l n!.
Ejercicio 53. Sea L = {0Bl B,2m : n > l ,m > 0} U {lm2* : m > 0 ,* > 0}.
Verifique que para cualquier cadena w con |in| > 1 existe una descomposición de
w que satisface las afirmaciones Jh y del lem a de bombeo. Sugerencia:
descomponga a la cadena u; en x = e, y d prim er símbolo de w y z el resto.
Com pruebe que L no es regular usando el teorem a de MyHill-Nerode.
Ejercicio 54. Pruebe que si L y M son lenguajes regulares, entonces tam bién lo
son los lenguajes L u M , L n A/, L \ AI, L M , y L *.
Ejercicio 55. Problemas de decisión de lenguajes regulares. Sea A un autóm ata
finito d eterm inista con n estados. Dem uestre que:
1. L (A ) jí 0 si y solo si existe u n a cadena u* con |u>| < n que es aceptada,
2. L (A ) es infinito si y solo si existe una cadena a cep tad a w con n < |tc| < 2 a
Eli base a esto, diseñe un algoritmo que reciba como en trad a un au tóm ata finito
determ inista y regrese un «sí» o un «no» dependiendo si el lenguaje que acepta
es vacío o no. Haga lo mismo pero que la respuesta sea en función de que el
lenguaje sea infinito o no.
Capítulo ^ J ____________

Autóm atas a pila

En este capítulo se define y estudia el concepto de au tóm ata a pila, fjushdown


aufomaton en inglés, el cual tiene su origen en los años sesenta, coucretainente
caí los trab ajo s de O ettinger |23] y Schutzenberger (25). Los autóm atas a pila
son m ás generales que los autóm atas finitos vistos en capítulos anteriores, en
d sentido de que existen lenguajes que son aceptados por un a u tó m ata a pila
y que no son aceptados por algún au tó m ata finito determ inista. Un ejemplo de
particular im portancia, que se verá m ás adelante, es el lenguaje L 0 definido
a i el ejercicio pues corresponde a una versión simplificada del problem a de
verificar si un código tiene las aperturas y cierres de forma equilibrada, lo cual
generalmente es esencial para que su sintaxis sea correcta.
L a definición de un a u tó m ata a pila es similar a la de un au tó m ata finito
no-determ inista con transiciones instantáneas, tiene un número finito estarlos,
transiciones y entradas, pero incluye un dem ento nuevo la pila— que perm ite
de alguna m anera guardar la información de las señales recibidas al recorrer el
autóm ata en la lectura.
E ste capítulo se divide en cuatro secciones. En la prim era sección se estudian
de m anera intuitiva los conceptos de aceptación de m ía c ad en a movimientos y
lenguaje aceptado p o r un autóm ata a pila, en particular se plantea que a dife­
rencia con los autóm atas finitos, hay dos tipos de aceptación de una cadena, por
estado final y por pila vacía; todos estos conceptos se abordan de m anera formal
a i la segunda y tercera sección. En la últim a sección se tra ta n los autóm atas
a pila determ inistas y su relación con los lenguajes regulares. Los au tóm atas a
pila determ inistas tienen sus inicios en |I0J y (25).

57
R8 R A u tó m a ta s A p ila

5 .1 D e fin ició n de a u tó m a ta a pila

Un autómata a pila A es una séptupla (Q . £ , F, í, q0, Z Q, F ) donde cada elem ento


esté definido de la siguiente manera:

Q es un conjunto finito no vacío, llam ado conjunto de estados:


£ cs un conjunto finito no vacío, llam ado alfabeto de símbolos de entrada;
r es un conjunto finito no vacío, llamarlo alfabeto de la pila;
ó e s una función definida en Q x £ U { f } x r con imagen contenida en la clase
form ada por todos los conjuntos finitos de pares ordenados en Q x F*. es
decir, p a ra todo g € Q y a € . £ u { É - } y . Y € r (ver figura [571),

<S(g.a. X ) = { ( p i,a i) ,( p 2,Q 2 ),...,(Pm iO (m )}, (5.1)

donde p, 6 Q y a« 6 F “, p a ra i = a 6 se le llam a función de


transición£]
9 » es un elem ento de Q. llam ado estado inicial;
Z 0 es un elem ento de F , llamado símbolo tncial de la pila;
F es un subconjunto de Q, llamado conjunto de estados de aceptación, que
puede ser 0 .

El conjunto de estados, el alfabeto de símbolos de entrada, el estado inicial


y el conjunto de estados de aceptación tienen la misma interpretación que en
un a u tó m a ta finito no-determ inista con transiciones instantáneas. El elem ento
nuevo es la llam arla pila, la cual juega el papel de una suerte de memoria que
alm acena información (cadenas del alfabeto de la pila). Por ejemplo, se sabe
que el lenguaje {0 n l n : n > 0} no es regular. Si el lector intentara construir
un au tó m ata finito d eterm inista que lo aceptara como lenguaje, se daría cuenta
que el problem a es que se requiere contar el número de ceros leídos para saber
si coincide con el número de unos que se leen enseguida con el fin de decidir el
cambio de estado, lo cual no es posible. Sin embargo, sí es posible construir un
au tó m ata a pila asociado a este lenguaje (ejercicio ¡85].
Por otro lado, al igual que antes, la idea es que cada au tóm ata a pila acepte
un lenguaje. En la siguiente sección se estudian las definiciones formales de dos
diferentes nociones de aceptación: por estado final —en analogía a los autóm atas
finitos— y por pila vacía.
En ambos casos se com ienza con la situación inicial: se está, en d estad o 9 , y
la pila contiene solo al símbolo Zq . La afirmación ( p .a ) € ¿(<?o,a, Z q) define un

1 E n algunas definiciones d e a u tó m a ta a pila que so e n c u e n tra n e n l a lite r a tu r a , e l d o m in io de


la fun ció n S a e l c o n ju n to m ás g e n e ra l Q x r u { í ) x f u {*}.
5.1 D efinición d e a u tó m a ta a pito no

Fíg. 5 .1 R e p resen tació n d e flS. 1) a travó* d e d iag ram a* d e tran sició n .

posible movimiento de estado y de pila. La idea es: al leer a se pasa de gt> a p y en


la pila se reem plaza el símbolo Z0 por la cadena a = X x X 2 •• • X n G / * , en este
caso se dice que el símbolo X i queda «hasta arriba» de la pila (ver figura ¡S .^.
Estando en el estado p y con el símbolo X¡ h asta arril>a de la pila, la transición
(9 . 0 ) € é(p, b, X i ) define o tro posible movimiento. Al leer 6 92 cam bia del estado
p al estado q y se reem plaza el símbolo X \ por la cadena 0 = Vi Vi •• • VJ-. el
símbolo Vi queda entonces h asta a rrib a de la pila. Si 0 fuera la cadena vacía, el
reemplazo de X i por c se puede interpretar como que X \ «se borra» de la pila
(ver figura ¡5^2). Con estos dos movimientos se com pleta la lectu ra de la cadena
ab. En general la ecuación (JO ) define m posibles movimientos al leer el símbolo
a a p artir de un estado q con símbolo X hasta arriba de la pila.
U na cadena es a cep tad a por estado final si a partir de la situación inicial
existe una form a de leerla de tal form a que se llegue a un estado de aceptación,
independientem ente del estado de la p ila Una cadena es aceptada por pila vacía
si a partir de la situación inicial existe una forma de leerla para la cual la pila se
vacía, sin im portar el estado al que se ha llegado. Los ejemplos de esta sección
¡lustran de m anera informal los dos tipos de aceptación de una cadena.
60 & A u tó m a ta s * p ila

_ _ _

— —
*r t
q . -Y , b n

5 xZ E

Flg. 5.2 l e c t u r a do l a c a d o n a 06. R e em p la zo inicial do la p ila y re e m p la z o do X \ p o r *.

Ejem plo 39. Sea L a el lenguaje del ejemplo ^ c o rre sp o n d ie n te al autóm ata finito
d eterm inista del ejem plo (TTJ Uim forma trivial de diseñar un a u tó m ata a pila
de aceptación estado-final dado u n au tóm ata finito determ inista es añadiendo
artificialm ente un alfabeto de la pila f = { Z q , a } pero sin algún movimiento en
la pila (cf. teorema

a. Z(J Zq

a, Zq/Z q

Es decir, se tienen únicam ente las transiciones 6{qa.a .Z Q) — {(<7P, Z 0)} y


S(qp,a .Z o ) = {(ga. Z q ) ) . El movimiento en los estados al leer una cadena es
igual a la del autóm ata del ejemplo [Iüj. No hay movimientos en la pila, la cual
perm anece constante (solo con Z q ) en todo momento. Sin embargo. L puede ser
aceptado tam bién p o r un a u tó m ata a pila por pila vacía, en este caso no im porta
distinguir estados finales. Se propone:

a, Zafe
o, Zo/aZo
o, a/e

-0 3
Este au tó m ata adm ite más de un camino de lectura de una cadena ¡incluso
teniendo un solo estado! Por ejemplo, ya que S(q, o, Z q ) = {(g, aZo), (<jf, c)}, a la
cadena aaa le corresponden al menos dos lecturas. La cadena aaa se distingue
por pila vacía porque existe un cam ino de tal form a que al final de la lectura
8.1 D efinición d o a u tó m a ta a p ila _______________________________________________________________ <U

la pila se vacía (el segundo, de izquierda a derecha, en la figura ^ 3 ) . Se ha de


notar que en general u n autóm ata a pila es no-determinista, es decir, pueden
liaber varios cam inos de lectura de una cadena. En la sección 5 .di se formaliza la
noción de dete ra í inismo para estos autóm atas.

a , a , • . 0 . a ,
a a a
Zo Zo Zo 7* Zo Zo
l* £

Fig. 5 .3 D os le c tu ra s d e la c a d e n a aaa.

Ejemplo 40. Sea L M el lenguaje de cadenas en el alfabeto {a. [, ] } con corchetes


equilibrados, por ejem plo las cadenas [a] [ [aaa] [a] ] , [ [a] ] [] [ [ [a] a] ] aa,
a [ [ a ] [ a a ] ] son aceptadas, m ientras [ a [ [ o ] a [ no. Se puede probar usando
d te o re m a 0 que L M no es un lenguaje regular. El siguiente au tóm ata con alfa­
beto de la pila {Zo. a, [, ] } se propone para la aceptación de Lw por pila vacía;

[,[/[[
a. [ / [
[,Z o /[Z 0
a. Z q / Z q
e, Zo/e
l,c A

-© O
La idea es acumular en la pila la información de los corclietes abiertos leídos e
ignorar las a leídas por medio de las transiciones:

S(q, C, [ ) = {(<?,[[)},
¿(9, 0 = {(9, [)},
l ,Z 0) = {(q[Z o)),
6(q, a ,Z o ) = {(7 , Zo)}.

Si se ha leído un corchete cerrado después de haber leído al menos un corchete


abierto, se procede a borrar de la pila el corchete abierto acum ulado h a sta arriba
62 & A u tó m a ta s * p ila

do la pila por medio de la transición S(q, ] , [) — {(<?, f)} . U na vez leídos el prim er
Moque de corchetes cerrados seguido del prim er bloque de corchetes abiertos, o
bien la pila se queda con Z 0 o bien existe un rem anente de corchetes abiertos. El
d clo com ienza de nuevo con la lectu ra del segundo bloque de corchetes abiertas
y así sucesivamente. Finalmente la cadena será, aceptada solo si al concluir el
proceso de lectura, la pila se queda solo con Z0. Se procede entonces con la
eliminación del símbolo Z0 de la pila por medio de la transición instantánea
6(q,e, Zx¡) = {(<f,ff)} para asegurar la aceptación por pila vacía. La figura Q
m uestra el movimiento en la pila en el proceso de lectu ra de la cadena [ [ a ] [ ] ] .

r r r ■ r 1 r [ i 1 •
' ’
y a a a É É É y
T t t [ [ í
t

FIg. 5.4 L e c tu ra d o l a c a d e n a [ [ « ] [ ] ] .

Ejem plo 41. Sea L z í el lenguaje conformado por todas las cadenas binarias de
la form a x x , donde x — 01 O2 • • - 0»» y x - o,, • • • 0201 . Por ejemplo, las cadenas e,
110011 , 01000010 son aceptadas por m ientras las cadenas 0 , 101 . 0010 no.
Eli autóm ata a pila que se propone para distinguir a por estado final es el
siguiente:

l,Zo/lZo
0 . V 02Ó
0 , 0 /0 0
1 , 1/11
1 , 0 /1 0
0 , 1/01

Estando en qo, independientem ente de cuál sea el último elem ento de la pila, se
alm acena la información de las señales leídas. E stos movimientos se establecen
a través de las siguientes transiciones:
5.1 D efinición d o a u tó m a ta > p ila 63

¿( 90. 0. Z q) = {(<¡fo- O20)},


6(q0. 1. 2 o) = {(<7o- 12 o)},
¿(9ii, 0 , 0 ) = {(9 o, 00 » ,
¿(90,1,1) = {(9o,H )},
¿(9o, 1, 0 ) = {( 90 . 10)},
¿ (9 o ,0 ,l) = {( 90 .OI)}.

Eu cualquier momento se puede suponer que se lia leído ju sto la m itad de la


cadena, hecho representado por el estado 91. Se definen: ¿( 90 , e , 2o) = {(91 , 2o)},
¿(90,5,0) = {(91 .O)} y ¿ ( 90, 5 , 1 ) = {(91.1)}. Finalmente, estando en el centro
de la cadena, si se acababa de leer un cero (resp. uno) y se lee enseguida otro
cero (resp. uno), entonces se elim ina de la pila la señal recibida por medio de
la transición ¿( 91 , 0 , 0 ) - {(91, 5)} (resp. ¿( 91 , 1, 1) — {(91, 5 )}). Si al final de la
lectura de la cadena la pila se ha quedarlo como en el inicio se pasa al estad o de
aceptación 92 por medio de la transición ¿( 91, 5 , Z0) = {(92 , 2 0)}. La figura ^
m uestra un proceso de lectura para la cadena 0110 .

0 . 1 1 * . 1 1 . 0 € k

0 0 0 0

2 b 2 b Z o Z o 2 b % Z 0

© — »
© © © — > — ► ) — * > — ► ©
Rg. 5.5 lectura de la endona 0110.

Lista de ejercicios de la sección Q

Ejercicio 56. Sea L M el au tóm ata del ejemplo £3^


1. dibiye los movimientos en la pila de un proceso de lectura para la cadena
[[ [ a ] [ a a ] ] ) que term ine con la pila vacía,
2. diseñe mi au tó m ata a pila que acepte a L por estado final.

Ejercicio 57. Diseñe un au tóm ata a pila que acepte p o r pila vacía al lenguaje
de tex to s planos que contengan a sentencias de Látex anidadadas de la form a
\b e g in { x } \en d {x > donde x € {document. ta b u l a r , fig u re } .
64 R A u tó m a ta s a p ila

Ejercicio 58. Diseñe un au tó m ata a pila que acepte p o r pila vacía al conjunto de
palíndromos del alfabeto {a. 6. c}.

Ejjercick) 59. Diseñe un au tóm ata a pila de un solo estado que acepte por pila
vacía al lenguaje del ejem plo (31}

Ejercicio 60. Diseñe un autóm ata a pila que acepte por pila vacía al lenguaje
L = { ¿ V e * : *, k > 0 }.

5 .2 D e sc rip cio n e s instan tán e as

Con el fin de establecer formalmente las nociones de aceptación de un au tóm ata a


pila, en esta sección se definen las descripciones instantáneas las cuales son unas
tripletas que contienen la misma información que los dibujos que se presentaron
en la sección anterior. Sea A = (Q , JC, T, <$, q0, Zq , F ) un au tó m ata a pila, una
descripción instantánea es una trip le ta (q, w. 7 ) perteneciente a Q x E * x T*. Se
define la relación binaria |— entre dos descripciones instantáneas a través de la
regla: si (p. a ) G í(g, a. X ) entonces para to d a cadena x € E* y 0 G T*,

(g ,ax , X 0 ) \ - { p ,x ,a 0 )\ (5.2)

La relación representa el siguiente movimiento, al leer el símbolo de e n trad a


a, del estado q se pasa al estad o p y en la pila se reem plaza el símbolo X
por la cadena a , como se representa en la figura (33)) El cambio en la segunda
entrada de la descripción instantánea, de a x a x , representa el hecho de que se
ha leído la en trad a a en la cadena a x y falta x por leer. Si a = e la segunda
entrada perm anece invariante, no se lia leído ningún símbolo de entrada, en este
caso (q. x. X 0 ) |— (p, x. a jí), en otras palabras, la relación binaria anterior es el
resultado de u n a transición in stan tán ea
Pñra representar varios movimientos en el autómaLa a pila es pertinente con­
siderar la clausura de la relaáón binaria p- la cual es a su vez u n a relación
binaria definida como sigue:

r . in ic i a l (q, w, 7 ) f— (p. z. rj) im plica (q. w , 7 )P -(P .* , V)


en 1 movimiento;
R. INDUCTIVA si (q, w, 7 ) p- (p. 2,17) en n movimientos y
(Pi 1?) b (r >“ i 0 ) entonces (q, w, 7 ) p* (r, u, 0)
en n + 1 movimientos.

Por convención, (q, w, 7 ) p- (q.w , 7 ) en 0 movimientos.


■V2 D o K T ip o o n o g innt a n tA n p o j 6A

a v
X a
0 0_

® - + ©

Fig. 5 .6 R c p raw n u tció n d e l c a m b io do e s ta d o y m o v im ien to e n la p ila d e la e x p re sió n

Con e s ta definición es posible definir form alm ente al lenguaje aceptado por A
por estado final:

L ( A ) = ( « 6 Í ' : ( „ , » . í l) h ? . í , í ) . ? e F y í c r ) .

y al lenguaje aceptado por A por pila vacía:

N (A ) = {te 6 E ' : (gtj,u>. Z o ) ^ (q .e ,e ),q € <?}.

En general L (Á ) es diferente a W(.A) pero son equivalentes computncionalmentc,


como se dem ostrará en la siguiente sección.

Ejemplo 42. Sea A el a u tó m ata de un estado del ejemplo |39| Las siguientes dos
secuencias de relaciones binarias entre descripciones instantáneas corresponden
a las dos lecturas de la c a d en a aaa representados en la figura £ 3

( q .a a a ,Z o )\- ( q .a a .a Z o ) \- ( q .a ,Z o ) \- (q.e.aZ o),

(q, aaa. Z 0) \ - (q.aa. a Z 0) | - (<7, a. Z q) | - (q,e, e).

Por tanto, aaa € N (A ) pues en particular (q,aaa. Zq) ($.£,£).

Ejemplo 4 3. La figura [5Í-3] del ejemplo dÓj representa a la lectura de la cadena


[ [ a ] [ ] ] . La secuencia movimientos entre descripciones instantáneas asociada es
la siguiente:
66 R A u tó m a ta s a p ila

( 9 , [ Ca] [] ] , 2i,) b (9. W □ 3. C^o) h (?. a] [] ] , [ [2b) b (q. ] [] ] , [ [ 2 0) b

| - (9- □ 3 1 Wb) h (9,33, C C ^o)|- (9,3, C5») h (q,e ,Z 0) \ - (q ,e , *).


Con esto se com prueba que la cadena [[a ] [ ] ] es aceptada pea- pila vacía.

Ejem plo 44. Considere los movimientos representados en la figura £^5}del ejem ­
plo ff[) Su correspondiente secuencia de descripciones instantáneas es:

(9o, 0110 . 2 o) [ - ( 9o, 110 . 0 2 q) b ( 90. 10 , 102 b) \~

| - (91 , 1 0 .102o) b (91 , 0.02o) b (9ii«i Zo) b (« 2i £t Z o ).


Por ta n to la cadena 0110 es aceptada por estado final.

La siguiente propiedad es de utilidad para comprobaciones generales y de­


mostraciones más elaboradas que se estudian en capítulos posteriores.

Propiedad 6 . Sea (Q. E, T. S. 90 . Z0, F) un autóm ata a pila y sean p y 9 dos


estados, x y y dos cadenas de símbolos de e n tra d a y a y 0 cadenas del alfabeto
de pila.

Si ( 9 , x. a ) b (P- V■0 ) entonces ( 9, xw . a ’y) b (P- # 7)1 P*™


I. cadena
de símbolos de e n tra d a w y cualquier cadena del alfabeto de la pila 7 .
II. Si ( 9 . xw , a ) b (P-l/ic, 0 ) para alguna cadena de símbolos de e n tra d a te
entonces ( 9 , x. a ) b (P- V- 0)-

P rueba La dem ostración de I se hace por inducción sobre el núm ero de


movimientos de la relación binaria b - concreto se prueba la siguiente afir­
mación p ara todo n natural.

P (n ): si (9 . x. q ) b (P- V- 0 ) en n movimientos, entonces para cualquier ca­


dena de símbolos de entrarla w y cualquier cadena del alfabeto de la pila 7 ,
( 9. x w , 0 7 ) b (P- # 7 ) en n movimientos también.

Si ( 9. x. o ) b (P< Pt 0 ) aitonces existen a 6 E U {c}, z 6 E*, X € T, rj, £ 6 T*


tales que x = a z, y = z , a = X £, 0 = y además, (p. r¡) e ¿( 9, a. X ) . Luego,
para cualquier te 6 E* y 7 6 Z'*,
■V2 D o K T ip o o n o g innt a n tA n p o j 67

(<q .x w , 0 7 ) = (q,azw , X£~f) ( p ,z w ,r f 7 ) = (ftlfW, £ 7 )-

Por tanto, se cum ple P ( l) . Se supoue ahora P (n ) (hipótesis de inducción). Si


(<7. x, a ) p- (p .y.& ) en n + 1 movimientos, entonces (q .x .á ) p- (r,z,rj) en n
movimientos y (r, z.rj) [— (p. y ,/?). Por hipótesis de inducción (<7. xw , 0 7 ) p*
( r .z w ,iff) en n movimientos. A demás (r.zw . 777) p* (p,yw ,& 7 ) y a que se h a
probado P ( 1). Luego (q. x w . 0 7 ) p- (p,yu>.# 7 ) c n n + 1 movimientos. De form a
análoga se dem uestra II. □

Ejem plo 45. Sea A el siguiente au tóm ata a pila, el cual es una versión simplifi­
cada del au tó m ata del ejemploflOt

U/CC
l Z Q/ [ Z o
£, Zq/ s
],[/«

-0 O
El objetivo es dem ostrar que JV(A) es el conjunto L 0 formado por cadenas de
corchetes equilibrados. E n este ejemplo se verifica que L a C N (A ). La o tra
contención - A acep ta solo cadenas de L 0— se deja al lector (ejercicio [66). Se
define primero a L a a través del proceso inductivo:

r . in ic ia l c e La\ ,
r . in d u c tiv a x y y en L 0 implica [x ] y x y en L 0 .

A continuación se prueba p a ra todo n > O el siguiente predicado.

P (n): si la pertenencia de w a L a se establece en una iteración < n entonces la


cadena xv e stá en N (A ).

La prueba de P ( 0 ) os fácil, pues un simple cálculo a p artir d e la definición de A


nos asegura que £ e stá en JV(A). Se supone c ierta P (n ) (hipótesis de inducción)
y que la pertenencia de w a L 0 se establece en una iteración n + I. Entonces
w = [x] o w = x y donde la pertenencia de x y y ha sido establecida en u n a
iteración < n. A continuación se verifica que:

(<7. [ x ] , Z 0 ) p- (q ,£ ,e) (5.4)


68 R A u tó m a ta s a p ila

Ya que ( 9 , x, 2 0) p (q.£, e) y la única m anera de vaciar to d a la pila es a través


de la transición (q. c) € S(q, s, 2 0), entonces ( 9. x. Z 0) p (q,e, 2 0). Por otro lado,
se h a de notar que,

( 9 . x. Zo) p (q.£, Zo) impÜca (q, x, [) p - (q.£ . [), (5.5)

ya que el prim er movimiento de am bas secuencias en la implicación (TT~>)


está determ inado, respectivam ente, por las transiciones (q, [2b) € S(q. [. 2b)
y (q, [ [ ) G 6{q, [, [), pues el primer símbolo de la cadena x debe ser [; después,
am bas secuencias com parten transiciones que al leer x hacen que la pilase quede
solo con el símbolo de h asta abajo (Z 0 ó [) el cual perm anece invariante en el
proceso. Por la propiedad § y (^ 3 ) se tiene que ( 9, x ] , [2b) p- ( 9 , ] , [2o). Ya que
(q. £) € S(q, ] , [) y (<7. f ) € 6(q. £. Zo):

(«, t z ] , 2 b ) ( - ( «■*) , [Zo)h(«.í.Zo)h(«.í,4

Con eso se prueba (3 3 ) y en particular w = [x] € N (A ). P or otro latió, si w = x y


por la propiedad js], (9, x, Zo) p (q,£ . 2o) im plica (q. x y , 2o) p ( 9 , 1/, 2o). Luego,
por hipótesis de inducción, (9 . xy, 2 o) p (q,£ , c) y por tan to w = xy 6 iV(>4).

Ejem plo 46. Sea A el au tó m ata a pila del ejemplo @1] y x una cadena binaria.
En lo que sigue se verifica que x x € L (A ). Prim ero se ha de probar que:

(90 ,x£, 2d) p ( 90, X, ±Zo). (5.6)

De hecho, p a ra todo n natural se cumple la siguiente afirmación más general.

P (n ): si |x| = n entonces para to d a cadena del alfabeto de la pila a se cumple


que (90 ,x x , a ) p ( 9»,. x, x a).

La afirmación P ( l ) es verdadera, pues si a = X 0 , (qo.OO.Xfi) p (90 , 0 ,0X&)


por la definición del autóm ata, sin im portar si X es 0 . 1 o 2 0. Lo mismo si x = 1.
Por la propiedad ¡6] y la hipótesis de inducción. (90 .XXO, a ) p ( 90, xO .xa) para
cualquier a 6 P *. Por tanto, si 7 € P*:

(9o , 0 x x 0 , 7 ) p (90 ,xxO,Ü7) p (90 ,xO, XO7 ).

Análogamente se tiene que ( 90 . lxxl,*}) p ( go, Xl , £l 7 ). Con esto se prueba


la afirmación P ( n + 1). Se h a de notar que la generalidad fue necesaria para
5-3 A ceptación p o r c a ta d o fin a l y por p ila vacto 60

com probar flSÜfr que e ra el interés inicial, de o tra m anera no parece natural el
paso inductivo. Finalm ente, lo que el lector dem ostrará en el ejercicio jB2]y
implica:

(qo, x £ , Zo) p - (90, £, £Zo) |— (71 .2 , ¿Zo) p- ( 91 , e. Zo) p- (tf¡. e. Zo).

& una ta re a para el lector argum entar porqué A acepta por estado final úni­
camente a las cadenas binarias de la form a x £ [ejercicio £»?). En conclusión
L * = L (A ).

Lista de ejercicios de la sección 5.2;

Ejercicio 61. Sea A el a u tó m ata de u n solo estado d d ejemplo [33] Pruebe que
N (A ) = /,«.

Ejercicio 62. Sea A el autóm ata del ejemplo @T] H aga una demostración por in­
ducción p ara com probar que cualquier cadena binaria x, (q \, x , x Z 0) p* (fli, c, Z 0).

Ejercicio 63. Encuentre un ejemplo para com probar que en general no es cierto
que (q. x . 0 7 ) p- (P,V, 0 l ) implique (q. x. a ) p- (p. y. 0 ).

Ejercicio 64. Para el au tó m ata del ejemplo [TO] dem uestre que

(9 , Z b j p - ( « ,« ,£ ) ,

para todo n y m en los naturales.

Ejercicio 65. Pruebe que L (A ) = £ 01 , donde A es el siguiente au tóm ata a pila:

r »Zo/*o

Ejercicio 66. Sea A el au tóm ata del ejemplo [35] P ruebe que N (A ) C L a .

Ejercicio 67. Sea A el au tóm ata del ejemplo 2 3 Dem uestre que L( A ) c L ^ .
70 R A u tó m a ta s a p ila

5 .3 A c e p ta c ió n p o r e sta d o final y p o r pila va cía

En e sta sección se dem uestra formalmente que las dos nociones de aceptación de
un a u tó m a ta a pila son equivalentes.

Teorem a 10. Sea L un lenguaje. S i L = X (.d) para algún autómata a pila A,


entonces existe otro autóm ata a pila B tal que L = L (B ).

Prueba. Sea A ■= (Q . E . T, <5^,go,Zo.0) un autóm ata a pila y L un lenguaje tal


que L = N (A ). Se define B = (<?U {a,-P/}- r , r u { X 0 }.d'B,ft».X„. {p/}) donde
la función de transición So satisface:

I- áfl(po.£\ X 0) - {(<7o-ZoX0)};
I I. si (p. a ) 6 SA(q, a. X ) entonces (p. a ) € SB(q. a. X ), para to d o p, q € Q ,
o € T u { f} y X € T;
ni. (p/,ff) 6 Sñiq, e, X 0), para to d o q € Q.

Se probará que p a ra to d a cadena te 6 E*, existe # € ( f U {X0})# tal que:

(po, te. X o) (p /, e, y?) (5.7)

si y solo si existe q € Q que satisface:

(go, te, Z0 ) B f (?.*,*)• (5-8 )

Si se cumple (^ 8) entonces por I , II y la propiedad ^ para algún q 6 Q,

(ib , te, X0) b - (<3b. te. Z 0X Q) | b (q,e, X0).

Por III, (g,£, Xo) b - ( p f,e ,e ) , luego se cum ple flO jl para y? = e.
P br otro lado, la propiedad I nos indica que a partir de (po. te, X 0) el único
camino a seguir en un paso es (ib, te. X0) (qb.te. Z0X 0), luego si se cumple
(¡5T) p a ra algún j ? 6 ( f U {X0})* entonces (q o ,w .Z o X 0) b (p/.£,yS)• P or III,
p ara llegar a p / por fuerza (gb,te. 2oX 0) b (q .£ .X o0) para algún q € Q. La
cadena y? tiene que ser la cadena vacía, y a que por construcción de B , Xo
tiene que perm anecer alprincipio de la pila en todo momento. En conclusión
(qn.te, ZoXo) b Afo) y por tan to («b,te, %o) b (q-£,e). D
5 4 A u tó m a ta » a p iU d e t e r m i n is ta * TI

Teorem a 11. Sea L m lenguaje. Si L — L (A ) pora algún autómata apila A,


entonces existe otro autómata a pila D tal que L = N (B ).

Prueba. Dado A = (Q, E , r . 6a. %. Z 0, F ) tal que L = L (A ) se propone el au tó ­


m a ta B - ( Q ü {íb.p}, E . r u { X o } , S D.po, X 0.$), donde la función Ód cumple
que:

I- -Xo) = {(flb, Ao)};


n. si (p. a ) € 6¿(q, a , X ) aitonccs (p. a ) € ó a (q ,a ,X ), para todo p .q € Q,
a 6 E U {s} y X € T;
ni. p a ra todo q e F y X € r u { X 0 }, (p,c) 6 ff, X );
IV. p a ra todo X € T u {X0 }, S o fa e , X ) = {(p,e)}.

H resto de la demostración es similar a la del teorem a [lTT]y se deja como ta re a


al lector {ejercicio [t5 |. □

Lista de ejercicios de la sección 5.3j

Ejercicio 68. Modifique el autóm ata del ejemplo para que su aceptación sea
por estado final.

Ejercicio 69. Eii notación del teorem a [TT] pruebe que IV implica que para to d a
cadena £ en el alfabeto de la pila.

(P- ¿i O I ? (ft £) (vaciado de pila).

Ejercicio 70. Tbrminc la demostración del teorem a {TI]

5 .4 A u tó m a ta s a pila d e te rm in is ta s

Ed esta sección se estudia la noción de determ inism o en un au tóm ata a pila


y su relación con los lenguajes regulares. La idea es establecer una definición
que p erm ita solo un cam ino «le lectu ra de una cadena, es decir, los movimientos
de las descripciones instantáneas deben estar determ inados de m anera ú n ica Es
im portante señalar que una sola ru ta no excluye necesariamente a las transiciones
instantáneas, como se p odría pensar en prim era instancia.
72 & A u t ó m a t a s * p il a

Se dice que un au tó m ata a pila (<Q. 27, r , S. qo-Z0, F ) es determinista si satis­


face lo siguiente:

• para cualquier g € < 2 y a 6 2 7 u { c } d conjunto ¿ ( 9. a, X ) tiene a lo m ás un


dem ento;
• si ó(q. a, X ) ¿ 0 p ara algún o 6 T entonces <5(g, e , X ) = 0.

Ejem plo 47. El autóm ata <Ie un solo estado del ejemplo E»lno es determ inista,
pucs<5(g.a. 2b) “ {( 9, f ) , (9 , aZ 0)}, con lo que no se satisface la prim era condición
de d eterninism o. El autóm ata del ejemplo tam poco es determ inista, pues
S(q, [. Zo) ^ 0 pero ó(q, f , Z0 ) ¿ 0. por ta n to no se cumple la segunda condición
de detenninism o.

Ejem plo 48. & fácil verificar que el siguiente au tó m a ta a pila es determ inista:

O, Z 0/ OZ 0 1 ,0 /f s , Z 0/ e

E ste autóm ata acepta por estado final al lenguaje Luí definido en el ejem plo (37}
d cual no es regular.

A diferencia de los au tó m atas finitos, existen lenguajes aceptados por au tó ­


m atas a pila (no-determ inistas) que no son aceptados por algún autóm ata a pila
determ inistas. Un ejemplo es el lenguaje L x i d d ejemplo [TI} La prueba formal
es difícil pero la idea es que el no-determinismo es esencial para establecer donde
comienza la reflexión de la cadena Jl iJ. Sin embargo, para lenguajes regulares se
tiene el siguiente resultado.

Teorem a 12. Si L es un lenguaje regular entonces existe un autómata a pila


determ inista B tal que L ( B ) — L.

Prueba. Sea A = (Q, 27,6 4 ,<70, F ) un au tóm ata finito determ inista. Se define el
au tó m ata a pila B = (Q, 27, {Z 0},ÓB-qo-Z0. F ), donde óij(fl,a, Z0 ) ~ {(p. Zo)}
para to d o p, q € Q tales que ÓA(q,a) = p. Se lia de prol>ar que (qt>,ur. Z0)
5 .4 A iit6 n » tf t« a p it a c lc tc rm in ia ta » 73

(p .e . Zd) si y solo si Óa (9o, w ) - p. La demostración es sencilla y se hace por


inducción sobre |ur| [ejercicio [7^. □

Coino com entario final, resta decir que existen lenguajes regulares que no
son aceptados por pila vacía p o r un autóm ata a pila determ inista. Un ejemplo
sencillo es el lenguaje Lo = {0 n : n > 0 }, de liecho si la cadena 0 fuera aceptada
por pila vacía, entonces (</o. 0. Z q) \~ (p , £, e) y este sería el único camino para
vaciar la pila; luego por fuerza ( 91, 00 . 2 b) (p, 0 , f ) y y a u o s c podría avanzar
más. en otras palabras la cadena 00 no sería aceptada. La figura pT7|resum e las
ideas expuestas hasta ahora y la información de los ejercicios [75j y

Aítórmt ai a pía
raxtetominiMas

F « - 5 .7 R elación e n tr e a u tó m a ta s .
74 R A u tó m a ta s a p ila

Lista de ejercicios de la sección ^74

Ejercicio 71. Diseñe un autóm ata a pila determ inista (por estado final o por pila
vacía) que acepte los siguientes lenguajes:
1. {CF‘lm :n< m},
2 . {0 " l m : n > m}.

Ejercicio 72. En notación de la prueba del teorem afl2| dem uestre que (qo, te,
(p, e. Zo) si y solo si ÓA(q,„ w ) = p y por tan to L (B ) = L.

Ejercicio 73. Pruebe que si un lenguaje es aceptado por un autóm ata a pila
determ inista por pila vacía, entonces es aceptado por otro au tóm ata a pila de­
term inista por estado final.

Ejercicio 74. ¿Porqué la prueba d d teorem a (IT) no puede ser utilizada para de­
m ostrar la afirmación falsa «si un lenguaje es aceptado por estado final por
un au tó m ata a pila determ inista entonces es aceptado p o r pila vacía p o r otro
au tó m ata a pila determ inista»?

Ejercicio 75. Sea A un autóm ata a pila determ inista y sea L — L (A ). Sea L 0
el conjunto {te = xo : x € />}, donde o es un símbolo que no pertenece al
conjunto de símbolos de en trad a de A . Demuestre que existe un autóm ata a pila
determ inista B tal que L 0 = N (B ).
Capítulo _____________________________

Gramáticas libres de contexto

Ei» este capítulo se estudian las gram áticas libres de contexto, concepto intro­
ducido en la literatu ra por el lingüista, filósofo y activista Noam Chomsky a
mediados de los años cincuenta |5j. A lo largo del texto se establecen los elem en­
tos básicos de u n a gram ática libre de contexto, su definición formal, el lenguaje
que acep ta y los llamados árboles de derivación, estos últimos están directam ente
ligados al proceso de compilación de un program a En la tercera sección se tr a ta
particularm ente el te m a de la am bigüedad de una gram ática, problema que fue
identificado por C antor |4] y Floyd |11| a principios de los años se se n ta

6.1 D e fin ició n de g ra m á tic a

Una gramática Ubre de contexto es una cuádrupla G = (T, V, S, P ) donde:

T es un conjunto finito no vacío, llam ado conjunto de símbolos term inales o


léxico:
V es u n conjunto finito no vacío, llamado conjunto de variables sintácticas;
S es un dem en to d e V , llam ado símbolo inicial;
P os u n a lista finita de expresiones (llam adas producciones) de la form a

A —¥ a ,

TS
76 6 G ra m á tic a s Khrog d o c o n te x to

donde A es una variable sintáctica y a es una cadena de (T U V)*. A la


letra A se le llam a base de la producción y a a cuerpo de la producción. Si
se tienen varias producciones con la m ism a base A pero diferentes cuerpos
Qi, 0 2 , . . . , o n entonces se escribe

A -> Qi | 02 | • • • | o n.

Como se explica en los siguientes ejemplos, a partir de las producciones, cada


variable sintáctica genera un lenguaje formado p o r cadenas de símbolos term i­
nales. El lenguaje generado por símbolo inicial S serA el lenguaje aceptado por
la gram ática G. En la siguiente sección se formalizan estos conceptos.

Ejem plo 49. Sea G = (T. V, S. P ) la gram ática con

T = { « t e . u n , el, h o m b re, libro, pro feso r, to m a, lee, c a fé } ,


V = {S, D N , V D N , D E T , S U S , V R B } ,

y P conform ada por la siguiente lista de producciones:

S —> D N V D N | V D N ,

DN D E T SUS,

VDN -> VRB | V R B DN.

D E T —►e s te | u n | el,
SU S —y libro | p ro feso r | ho m b re | café.

VRB to m a | lee.

La variable sin tán tica SU S genera a los sustantivos de e sta gram ática ¿ e . libro,
profesor, h o m b re, café.La variable sintáctica D N genera las cadenas formadas por
un determ inante seguido de mi nombre: « te Kbro. el profesor, un café; por ejemplo,
«to libro es una cadena generada a partir de las secuencias de sustituciones:
D N - » D E T S U S - > « t e libro

Un qcm plo más im portante es la cadena el h o m b re lee e s te lib ro la cual es ge­


nerada a p artir del símbolo inicial S y por tan to aceptada por e sta gram ática.
La aceptación se establece a través de la siguiente secuencia de sustituciones a
partir del símbolo inicial:
6.1 D o fin io ó n d«i g ra m á tic a 77

S - » D N VDN

- + D E T SU S V D N

—> el SU S V D N

—> el ho m b re V D N

—►el Hom bre V R B DN

- 4 el h a m b re loe D N
—►el hom bre lee D E T SUS

—> el ho m b re lee e s te SUS

—> el ho m b re lee e s te libro.

Esta cadena de sustituciones posiblemente se visualice mqjor en el siguiente


árbol:
S

D ET SUS VRB DN

I
d
I
lo m b ro
I /\
loe DET SUS

esto Kbro

Ejem plo 50. Sean L = {0 " ! " : n > 0 } = Loi U {c} y G = ({ 0 . 1 }, {S }.S. P ) la
gram ática con lista de producciones P:

S -> ff,
S -> 0 S I.
La producción S -* e se puede interpretar como que «la cadena vacía t es
aceptada por S * y ju eg a un papel de regla inicial. La producción S -+ 0.91
se puede in terpretar com o «si es aceptada por S entonces Ou’l también es
aceptada por S», esta producción se puede entender como una regla inductiva.
Siguiendo un sistem a de sustitución análogo al ejem plo @5)se puede deducir que
la gram ática G acep ta a L como lenguaje, en el sentido de que las cadenas
pertenecientes a L —y únicamente esas se pueden generar a partir del sistem a
78 6 G r a h í A tic a s tih r r a d o c o n t e x t o

de sustituciones que inician con S . Por ejemplo, la c ad en a 000111 es generada a


través del sistem a de sustituciones:

S -* Q S l
-* 00 S i l
-*■ 0005111
- > 00 ( telll.

Ejemplo 51. La gram ática G = ({0.1}, {S } . S . P ) donde P es el la lista de pro­


ducciones:

5 - t 0 | 1 | e,
5 -> S S .

acepta como lenguaje a to d a s las cadenas binarias. Si se quiere distinguir aquellas


cadenas que term inen en 01 se propone la gram ática G ' = ({0,1}, { 5 ', ,4}, S ', P ')
donde P 1 es la siguiente lista de producciones:

A 0 | 1 | e,
A -> A A .
6 -> i401.

P ara e s ta gram ática, la variable sintáctica A acepta a to das las cadenas binarias,
m ientras que el sím bolo inicial S* únicamente acepta a las que term inan en 01.

Ejem plo 52. I-as gram áticas libres de contexto algunas veces se describen uti­
lizando una notación llam ada B N F (Backus-Naur form ). E sta notación se es­
tablece como sigue:
. las variables sintácticas se escriben entre paréntesis angulares ( <. . .>);
• lee símbolos term inales se representan con cadenas de caracteres, sin paréntesis;
• el símbolo : reem plaza al símbolo —> en las producciones.
Por ejemplo, la siguiente gram ática escrita en form ato B N F describe u n a senten­
c ia simplificada de asignación de un lenguaje tip o Pascal:

<sent_asig> ::= <var> := <expreslon>


<expresion> ::■ <expresion> ♦ <termino>
<expre8ion> ::= <factor>
<factor> ( <expresion> ) | <var> | <num>
< v a r> A | B | C | D | ... | Z
<mm> 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
6 .2 l e n g u a jo f to e p U d o p o r u n a g r a m á t i c a 70

Lista de ejercicios de la sección ¡ O ]

Ejercicio 76. Para cad a uno de los siguientes conjuntos de cadenas, construya
u na gram ática libre de contexto que lo acepte com o lenguaje:
1. { 0 m l n 2 n : n . m > 0 } ,
2 jonl"2m: n, m> 0},
3. {0,*l,”2fc : n — m o m — k).
4. {0n l m02n : 7 t > 0 . m > 0 } .

E jercido 77. Diseñe una gram ática que acepte como lenguaje aquellas cadenas
que correspondan a su vea a u n a gram ática escrita en form ato BNF.

6 .2 L e n g u a je a c e p ta d o p o r una g ra m á tic a

El objetivo de esta sección es definir el lenguaje aceptado por u n a gram ática


G = (T. V. S, P ) . Con ese fin se establece primero la versión formal del sistem a
de sustituciones de la sección anterior. Se define la relación binaria => entre
dos cadenas de símbolos term inales y variables sintácticas como se explica a
continuación. Si A -* 7 es una producción de P entonces para cualesquiera dos
dem entos a , 0 6 ( T u V)*,
a A fj => 0 7 $.
En este caso se lee «aA(J deriva a 0 7 $*. En particular si A -►7 es una producción
de P entonces A => 7. La clausura de la relación binaria => es a su vez u n a
relación binaria sobre (T U V)* que se establece de form a inductiva como sigue.

R. in ic i a l si q => 0 entonces a => 0 en 1 paso;


r . in d u c tiv a si a fi y 0 =4 7 en n pasos, entonces
a => 7 en n + 1 pasos.

Por convención o 4 a en 0 pasos. A una expresión del tip o a => & se le llam a
derivación El lenguaje aceptado por G es por definición el conjunto:

¿ ( G ) = {te € T * : S ± ur}.

A un lenguaje aceptado por una gram ática libre de contexto se le llama lenguaje
Ubre de contexto
80 6 G r a h í A tic a s tih r r a d o c o n t e x t o

Ejem plo 53. Sea G - ({ a , 6, c , + , x } , {S } , S, P ) la gram ática con lista de pro­


ducciones P:

S 5 + S,
5 -> 5 x S,
S -> a \ b \ c.

Se cumple que S ¿ o + a x a puesto que S = > S + S = > S + S x S ^ a + S x S = >


a + a x S ^ a + axa.
Ejem plo 54. Si G es la gram ática del ejemplo (39} se puede verificar con facilidad
que S ■=$■un profesor toma el café.
Ejem plo 55. Sea C? la gram ática del ejemplo £jT] el lenguaje aceptado por G1 es
el conjunto de cadenas binarias que acaban en 01 . Sea w € L (G '), a partir de
S ' la única relación binaria posible es S ' => >101, luego por fuerza >101 =► w. Se
tiene entonces la siguiente secuencia de derivaciones para algunas cadenas q i,
q 2, . . . . Qk-
& => ,401 => o,01 => q 201 =>•••=> o*01 — w.
Por tanto, w acaba en 01. Sea w = xOl para alguna cadena x. A deriva a
cualquier cadena binaria, este hecho se puede verificar fácilmente con un argu­
mento inductivo, en particular >1 deriva a la cadena x , luego w = xOl está en
L(G>).

Lista de ejercidos de la sección ¿ 2 ]

Ejercicio 78. Pruebe que A = > 7 & y solo si para cualesquiera o. & 6 (T U V)*,

o A 3 => QTJ0.

Encuentre un contraejem plo para dem ostrar que no es cierto que si a A 0 =4 cryfJ
para algunas cadenas o y & a i tone es A =4 7 .
Ejercicio 79. Sea G la gram ática del ejemplo Verifique que S =» ur si y solo
si te = O "!" para algún n > 0 ; es decir, en notación del ejemplo, prueba que
L (G ) = L.
Ejercicio 80. Sean G x y G2 dos gram áticas libres de contexto. Si L — L {G X) y
M = L(G 2 ) diseñe una nueva gramát ica libre de cot4exto G que acepte a L U M
como lenguaje. Haga lo mismo para los lenguajes L M y L*, respectivamente.
¿Se puede construir G que acepte a L n M como lenguaje?
6 .3 A rb o lw d o d e riv a c ió n y a m b ig ü e d ad 81

Ejercicio 81. C onstruya u n a gram ática que acepte como lenguaje al conjunto de
palíndromos sobre el alfabeto {a, 6, c}.

Ejercicio 82. Una gramática regular (por la derecha) es una gram ática que adm ite
solo producciones de la forma:

A - * aB,
A - ¥ a,
A -* e ,

donde A y B son variables sintácticas y o es un símbolo term inal. Encuentre u n a


gram ática regular para el lenguaje del ejemplo |55t

Ejercicio 83. Demuestre que un lenguaje es regular si y solo si es aceptado por


u na gram ática regular. Sugerencia: busque en la literatu ra la construcción de un
autóm ata finito no-determinista con transiciones instantáneas a partir de una
gram ática regular y viceversa.

Ejercicio 84. U na gramática sin restricciones es una una tupia G = (T. V, S , P)


con T , V y S igual que antes pero que adm ite producciones más generales de la
form a a donde a y j ? son cadenas de (T u V ) ' y a contiene al menos u n a
variable sintáctica. El lenguaje aceptado por u n a gram ática sin restricciones es el
conjunto de cadenas de símbolos term inales que se derivan de S . Se dice que un
lenguaje es recurstvamente enumerable si existe una gram ática sin restricciones
que lo acepta como lenguaje. De un ejemplo para dem ostrar que para gram áticas
sin restricciones, en general no es cierto que S => x A y =*• w implique que w sea
de la form a w = x z y para alguna cadena de símbolos term inales z.

6 .3 Á rb o le s de d e riva ció n y a m b ig ü e d a d

Como se vio en la sección anterior, existe una form a gráfica de representar las
derivaciones por medio de árboles. Estos árboles conocidos com o árboles de
derivación (parsc trccs en inglés) es una estru ctu ra de datos que en el marco
de la teoría de los compiladores representa al program a fuente. La definición for­
mal es la siguiente: un árbol de derivación p a ra una gram ática libre de contexto
G = (T. V; 5, P) es u n árbol tal que:
82 6 G ra m á tic a s libros d o c o n te x to

. cada nodo interior —nodos con hijos — es etiquetado p o r una variable sintác­
tica;
■ cada l»oja nodos sin hijos— es etiq uetada o bien por u n a variable sintáctica
o por un símbolo term inal o por e. Sin embargo, si una hoja es etiquetada por
e aitonccs tiene que ser el único hijo de su padre:
. un nodo interior es etiquetado con A y sus hijos p o r X \ , X 2. . . . X n , haciendo
la asignación de izquierda a derecha, lo anterior se representa como:
A

X , X 2 X n

si y solo si A -► X i , X 2l • • • X n es una producción de P ;


. a la etiq u eta del prim er nodo se le llama raíz del Árbol..

A la concatenación de las etiquetas de las hojas de un árbol de derivación,


de izquierda a derecha, se le llam a rendim iento del árbol. Particularm ente im­
portantes son los rendim ientos formados por símbolos term inales de árboles de
derivación cuya raíz es el símbolo inicial S , pues en esc caso la cadena S => w,
corno se prueba m ás adelante. Más aún, d ad a una derivación .9 4- te se puede
construir un árbol de derivación con raíz S y rendim iento w (ejercicio [85].

Teorem a 13. Sea G = ( T , V . S , P ) una gramática. Las siguientes afirmaciones


son equivalentes para una cadena te € T *:

I. S 4» te;
II. existe un árbol de derivación con raíz S y rendim iento te.

A cada nodo X de un árbol de derivación se le puede asignar su distancia a


la raíz A , esto es. el núm ero de nodo 6 conectados que constituyen el camino de
X a A menos 1. Se define la altura del árbol como el máximo sobre el conjunto
de distancias de cad a nodo a la raíz.

Ejem plo 56. Un árbol que tiene solo a su raíz tiene a ltu ra ü, el árbol de la figura
jG7T| (a) tiene a ltu ra 1 . Los árboles de derivación de la figura ¡O ] tienen a ltu ra 4.

Sin lugar a duda, estos conceptos perm iten comprobaciones más elaboradas.
U na m uestra es el siguiente ejemplo.
6 .3 A rb o lo d o d e riv a c ió n y a m b ig ü e d ad 83

Ejem plo 57. Sea G= ({[,]},{S},S, P) la gram ática con producciones:


S -¥ e,
S -+ S S .
S - > [S ].

Si L 0 es el lenguaje de corchetes anidados definido por (pT^I, para c ad a cadena


w € L 0 existe un árbol de derivación con raíz S y rendim iento to; la prueba
inductiva se representa en la figura^TÍ} Por el teorem a p i s e tiene que ¿ D C ¿(G ).
Por o tro lado. L(G ) C ¿ n i de hecho se cumple la siguiente afirmación sobre
números naturales.

P(n ): si existe un Arbol de derivación con raíz S , rendim iento te y a ltu ra menor
o igual a n . entonces la cadena te está en L n .

La afirmación P ( l ) es fácil de probar pues el único árbol de derivación de a ltu ra


1 es el de la figura jtO] (a) y adem ás por definición e € L a. Se supone que se
cumple P(n) (hipótesis de inducción) y además que existe un árbol de derivación
con raíz S y rendim iento w de a ltu ra n + 1 . Existen dos posibilidades, que
el árbol involucre solo a la producción S -> [S I salvo en el último nivel a
la producción S -> c; o que el Arbol involucre al menos en algún punto a la
producción S S S . En el prim er caso, w = [*]k para algún k natural, por
tanto w 6 L 0. En el segundo caso ur = [* 1^ ] * para algún otro k natural donde
v y z son, respectivam ente, rendimientos de árboles con raíz 5 de a ltu ra menor
o igual a n. Por hipótesis de inducción v € L a y z € ¿ 0 1° <lu c implica que
w € L 0.

/I\ S ] a a

(« )
/!\
—x —
(*»)
A A (c)

Fig. 6 .1 Á rboles do deriv ació n c o n raíz S y re n d im ie n to *, [ i ] y x y , re sp ec tiv am en te .


H4 6 G ra m á tic o s Ubres d o c o n te x to

A los program as encargados de construir árboles de derivación correspon­


d e n te s a una cadena se les llama analizadores sintácticos (parsers en inglés).
Un compilador debe analizar sintácticam ente cada programa antes de producir
códigos ejecutables, ver figura ¡O ] Existen herram ientas llam adas «generadores
de analizadores sintácticos» cuya ta rc a es generar analizadores sintácticos aso­
ciarlos a determ inadas gram áticas libres de contexto —usualm ente escritas en
notación B N F —, uno de ellos es el YA C C (yet another compilcr-compiler).

programa w —► —* árbol de derivación --«código ejecutable

FIg. 6.2 F u n ció n d e Ion árb o les d e derivación e n el p ro c e so d e com pilación.

Si G es una gram ática, c ad a árbol de derivación correspondiente a una cadena


w 6 L (G ) representa una «orden clara» que debe ser ejecutada. Por las ideas
expuestas anteriorm cutc. lo deseable es que a cada cadena le corresponda un
solo árbol de derivación. Cuando esto no ocurre, es decir, si existe una cadena
w € L (G ) con dos o más árboles de derivación, entonces se dice que la gram ática
G es ambigua.

Ejem plo 58. La gram ática del ejemplo £5] es ambigua, puesto que existen dos
árboles de derivación p ara la cadena a + 6 x c :

/ l \

La orden asociada al prim er árbol es «ejecuta a + 6 y al resultado multiplícalo


por o m ientras la del segundo es «ejecuta 6 x c y luego ejecu ta la sum a a más
6 .3 A rb o lo d o d e riv a c ió n y a m b ig ü e d ad AS

d resultado anterior». P o r supuesto (1 + 2) x 3 - 9 no es igual a 1 + (2 x 3) - 7,


en otras palabras, dos árboles de derivación significan que la orden a ejecutar no
es precisa.

Ejemplo 59. Sea G = (T. V, S, P ) la gram ática con V = {s , C O L O R , F O R M A } ,

T = {y. círculos, c u a d ra d o s, triá n g u lo s, verdes, ro jo s, azu les, a m a rillo s} ,

y lista de producciones:

8 —* S y S | S C O L O R | F O R M A .

C O L O R —> vordes | ro jo s | azu les | am arillo s,

F O R M A —> círculos | c u a d ra d o s | triá n g u lo s .

E sta gram ática es ambigua puesto que existen dos Arboles de derivación para
la cadena w = cuadrados y trángulos rojos, como se m uestra en la figura (O} C ada
árbol tra e implícitam ente una sem ántica distinta; el primero claram ente se in­
terp reta com o «‘cuadrados y triángulos’ rojos» y el segundo como «‘cuadrados’
y ‘triángulos rojos’».

COLOR

s 10)01 FORMA COLOR

FORMA FORMA cuadrado» FORMA rojos

cuttirmici; triángula; triángulos

F i g .6 .3 D os árb o les d e deriv ació n con el m ism o re n d im ie n to .

El teorcmafI5] pudiera sugerir que si existen dos o más derivaciones correspon­


dientes a una cadena entonces la gram ática es ambigua. Sin embargo, una cadena
puede tener derivaciones distintas y un solo árbol de derivación. Por ejemplo, si
G es la gram ática del ejemplo £3] existen dos derivaciones para la cadena a + 6,
e g.:
86 6 G ra m á tic a s libros d o c o n te x to

S = > S + - S = > a 4 - S = > a + 6,


S = > S + S = > S - \ - b ^ a + b.
No obstante, solo hay un árbol de derivación:

s 4 s

a ¡>

Note que en la orden de ejecución a + b no existe am bigüedad alguna.

6 .3 .1 D e riva cio n e s m á s -a -la -iz q u ie rd a

Una derivación donde el reemplazo se hace considerando la variable sintáctica


que se encuentre más a la izquierda se llam a derivación más-a-la-izquierda.

Ejem plo 60. Si G es la gram ática del ejemplo ft3|entonces la secuencia de deriva­
ciones:

S ^ 5 + 5 ^ 5 x S + S ^ a x S + .9-> ox6 + S ^ f l x 6 +c,

es u n a derivación más-a-lar izquierda.

A p a rtir de un árbol de derivación con raíz S y rendim iento w —siempre—


se puede construir una derivación más-a-la-izquierda S ^ w. E sta propiedad es
un caso particu lar de la siguiente afirmación sobre números naturales.

P(n): si existe xm árbol de derivación con raíz A y rendimiento


w y altu ra m enor o igual a n, para u n a variable sintáctica A, (6.1)
entonces existe u n a derivación más-a-Ur izquierda A => w.

Si el árbol es de a ltu ra 1 y w = ai cu • • • a* entonces es de la forma:


6 .3 A rb o lo d o d e riv a c ió n y a m b ig ü e d ad 87

ai 03 ... a*

por tanto. /I -► a j a i • • • a* debe de ser una producción de la gram ática, luego


A w es d e forma trivial u n a derivación más-a-larizquierda de un solo paso,
es decir, se satisface P ( 1). Se supone c ie rta P (n ) (hipótesis de inducción) y que
«ciste u n árbol con raíz A y rendim iento w de a ltu ra n 4- l. Este árbol es de la
forma:
A

a\ & a\
donde w = X 1X2 • • • Xk y cada árbol de derivación con raíz X t y rendim iento x*
tiene u n a altu ra m enor o igual a n . La hipótesis de inducción nos garantiza la
existencia de una derivación más-a-la-izquicrda X , =£• x ,;s i el árbol de derivación
con raíz X¿ es de a ltu ra 0 , significa que X¿ = x, es un rfmbolo term inal, en
este caso X, x, en 0 pasos. Por otro lado. A =4 X iX ? •• X k es obviamente
una derivación m ás-arla-izquierda Por tanto, se tiene la siguiente secuencia de
derivaciones más-a-lar izquierda

A => X 1 X 2 •••X k X 1X 2 •••X k ^ X 1X 2 •••X k =► •••=4 X 1X 2 •••Xfc ~ w .

Con esto se prueba P (n -f 1). Se h a de notar que e sta construcción nos arro ja
d istintas derivaciones más-a-la-izquicrda si partim os de árboles de derivación dis­
tintos. Además, dos derivaciones inás-arla-izquierda llevan a dos árboles distintos
de derivación jejcrcicio (§5), resumiendo:

Teorem a 14. Sea G = (T , V , S . P ) una gramática. Los siguientes afirmaciones


son equivalentes para una cadena w € P * :

I. existe una única derivación más-a-la-izquierda S ==>w ;


U. existe un tínico árbol de derivación con m (z S y rendimiento w.
88 6 G r a h í A tic a s tih r r a d o c o n t e x t o

6 .3 .2 R e m o v e r la a m b ig ü e d a d en una g ra m á tic a

I^aincntablemcnte no existe un algoritmo que reciba una gram ática ambigua y


regrese una gram ática no-ambigua que acepte el mismo lenguaje, m ás aún. se
sabe que no existe algún algoritm o que diga siquiera si una gram ática d ad a
es am bigua o no [8 . p. 300j. P or otro lado, es bien conocida la existencia de
lenguajes libres de contexto —llamados inherentemente ambiguos— para los
cuales es imposible construir una gram ática no-ambigua. Un ejem plo de este
tipo de lenguajes es el conjunto {0nl fn2* : n = m o m = k ] |8 . p. 3ülj. No
obstante, algunas veces se requieren modificaciones menores p a ra lograr quitar
la am bigüedad como se m uestra en el siguiente ejemplo.

Ejem plo 61. Sea G la gram ática del ejemplo £7] C laram ente G es ambigua,
puesto que existen varias derivaciones más-arla-izquierda para la cadena c, p o r
ejemplo 5 => e y S =>■ S S => e S => ce. Se propone la gram ática G'\

S -> e,
5 - 4 [S ]5 .

Es un ejercicio para el lector verificar que L (G ) - L (G ). Adem ás & es no-


ambigua, pues p a ra todo n > 0 se satisface la siguiente afirmación.

P (n ): si S => w en una cantidad de pasos menor o igual a n, entonces existe


u n a única derivación más-a-lar izquierda que deriva a w a partir de S.

La prueba de P ( l ) es trivial, pues la única cadena derivada en 1 paso es la


cadena vacía, a través de la única derivación 5 => e. Se supone que se cumple
P (n ) y que existe una derivación 5 => w de n + 1 pasos. Sin perder generalidad,
por y el teorem a se puede suponer que es una derivación más-a-la-
izquierda Esa derivación tiene que ser de la siguiente forma:

S=» [S ]5 4 [ar]y = w, ( 6 .2 )

donde se involucran a las derivaciones más-arlarizquierda 5 ^ x y 5 ^ j/ de un


núm ero de pasos menor o igual a n. Por hipótesis de inducción esas derivaciones
m ás-arla-izquierda son únicas, luego la derivación (jOfr tam bién lo es.

En la práctica las gram áticas no son tan simples, pero existen algunos métodos
que se utilizan en casos particulares para remover ambigüedad. E stas técnicas
6 .3 A rb o lw d o d e riv a c ió n y a m b ig ü e d ad 80

incluyen añadir reglas de precedencia y jerarq u ía para obligar una sola in ter­
pretación. El lenguaje de la nueva gram ática no es exactam ente el mismo, pero
para fines de dejar en claro el significado de la orden es suficiente. El siguiente
ejemplo tiene com o fin ilustrar estos puntos.

Ejemplo 62. Se considera la gram ática ({0,1}, {5, N } , 5, P ) con lista de produc­
ciones P :

S->SxS\S+S\N,
N -» ON | I N | 0 | 1.

Existen dos problemas principalm ente en e sta gram ática El primero es con res­
pecto a la precedencia de los operadores x y + análogam ente a lo que se vio
en el ejem plo [5§ si se siguen las reglas aritm éticas usuales el operador x tiene
que tener más precedencia El segundo es respecto a la secuencia de operadores
idénticos. Por ejemplo, la cadena 0- f l + l refleja una orden de ejecución im precisa
aunque el resultado sea el mismo, se ha de señalar si primero se sum a 0 + 1 y
luego al resultado se le sum a 1 o si se sum a 14-1 y luego se hace la sum a de 0 con
el resultado anterior. De form a convencional operaciones de este tipo se hacen de
izquierda a derecha. Por otro lado, existe la posibilidad de que primero se quiera
sum ar dos térm inos y luego multiplicar el resultado por otro y escribir to d a la
arden de ejecución en una cadena; en este caso se han de añadir paréntesis (como
se hace en una calculadora) escribir por ejem plo (1 + 1) x 0 , por ta n to se tienen
que anexar los paréntesis al conjunto de símbolos terminales. La gram ática que
se sugiere tiene la siguiente lista de producciones:

S -> T |S + T ,
T -> F | T x F, (6.3)
F -» N I (5 ),
JV -* ON | \ N | 0 | 1.

El teorem a [I5|establecc una relación en tre los autóm atas a pila determ inistas
y las gram áticas que no son inherentem ente ambiguas. La construcción de una
gram ática no-ambigua a partir de un autóm ata a pila determ inista se presenta
en el capítulo 7 [§7.2. l | y ejercicio [53).

Teorem a 15. S i L es un lenguaje aceptado por un autómata a pila determ inista,


por pila vacía o estado final, entonces es aceptado por una gramática no-ambigua.
00 6 Gra h í A ticas tihrra d o c o n te x to

En particular, si L es regular entonces existe una gram ática no-am bigua que
lo acepta como lenguaje. Por otro lado, el recíproco el teorem a @3]no es cierto,
por ejemplo, el lenguaje L& adm ite la gram ática no-am bigua 5 -> <r | OSO | 151
pero no es aceptado p o r algún autóm ata a pila determ inista, como se vio en la
sección 2L31

Lista de ejercicios de la sección ¡6.3]

Ejercicio 85. Argum ente porqué si A ^ w para alguna variable sintáctica A y


cadena w , existe un árbol de derivación con ra í/ A y rendim iento w. Además,
justifique el hecho de que dos derivaciones más-a-lar izquierda arrojan dos árboles
de derivación distintos.

Ejercicio 86. Argumente porqué la gram ática fl63) no es ambigua.

Ejercicio 87.Decida si la siguiente gram ática es ambigua o no. Si no lo es, pro­


ponga una que sí lo sea y que respete el espíritu de las órdenes de ejecución.

S -* CICLO-WHILE,
5 -> ASIC,
aC L O -W H IL E -> v h i l e COND do S,
COND -> COND o r COND | COND and COND.
COND -> EXP COMP EXP,
EXP -» EXP OP EXP | VARIABLE,
EXP -> 0 | 1 NUM | • • • | 9 NUM ,
VAR -+ a | b | • • • | 2,
COMP -> > | < |
OP -* + | - | •,
NUM -> NUM NUM | e \ 0 | 1 | • • • | 9.
ASIG VAR : = EXP.

Ejercicio 88. Desambigüc la gram ática:

5 a | b | c,
S -> [5] | {5} | ( 5 ) | 5 5 .
5 -► e.
Capítulo / ___________________________

Lenguajes libres de contexto

Rite capítulo por conveniencia se dividirá,en cinco secciones. E n las dos primeras
secciones se establece la equivalencia de los autómatas a pila con las gramáticas
libres de contexto, conceptos estudiados en los capítulos 5 y 6,respectivan»ente.
Efcta equivalencia corresponde a dos trabajos independientes de principios de los
años sesenta, el primero fue un reporte interno del M I T de la autoría de Chomsky
y el otro es un artículo publicado por Evey |ül. E n la tercera sección se presenta
el lema de bombeo para lenguajes libres de contexto |3], que en analogía con
los lenguajes regulares, su importancia radica en establecer un criterio útil para
concluir que ciertos lenguajes no son libres de contexto. En la cuarta sección
9e expone el comportamiento de los lenguajes libres de contexto bajo la unión,
intersección, concatenación y clausura. Finalmente en la quinta y última sección
se presenta el algoritmo C Y K |7. 16, 29] para decidir si una cadena pertenece o
no a una gramática dada.

7.1 D e g ra m á tic a s a a u tó m a ta s a pila

Sea G una gramática libre de contexto. En esta sección se establece un método


para construir un autómata a pila A tal que N{A) = L[G). La ¡dea es que
d autómata a pila simule las derivaciones más-o-larizquicrda de G. Antes de
establecer el algoritmo general, en lo que se muestra a continuación se concreta
esta idea a través de un ejemplo sencillo.

01
02 7 txmgnftjcB K hrw d e c o n te x to

Sea G la gramática

A - » 0 | 1,
d-*dd, (7.1)

y sea w = 10 + 1 6 L(G). Unasecuencia de derivaciones más-arla-izquierda para


esta cadena es la siguiente:

S = > d + d = > d d + d = > l d + d=>10 + d=>10+l. (7.2)

El plan es considerar los cambios en las derivaciones como los movimientos del
alfabeto de la pila. Se define el símbolo inicial de la pila c o m o S de tal forma
que la descripción instantánea inicial asociada sea (qo, 10 + 1,5).
Se desea que cada reemplazo efectuado en las derivaciones más-a-larizquicrda
se vean reflejados en un cambio en la pila, siempre que una variable sintáctica
sea la que se encuentre hasta arriba de la pila Por ejemplo, las primeras tres
derivaciones más-arla-izquierda de (f7\2$ aparecen en la tercera entrada de las
descripciones instantáneas de los movimientos deseados:

(qb. 10+ 1,S) (-(#). 1 0 + 1, d + d ) b (qb, 10 + l,dd + d)

(— (qb. 10 + 1,Id + d).

En el momento que aparece un símbolo terminal al comienzo de la pila y este


coincide con el primer elemento de la cadena, se eliminan ambos:

(qb, 10 + 1 ,1 d + d) |- (qo. 0 + 1,d + A).

Así sucesivamente, hasta que queda otra variable sintáctica hasta arriba de la
pila, para continuar con los reemplazos más-a-la-izquicrda. El objetivo es que
finalmente la pila se vacíe cuando se ha leído la cadena completa que es aceptada
por la gramática:

(qo, 10 + 1,5) b (qo, 0 + l,d + d) |— (qo, 0 + 1 , 0 + d)|—

b (%•+!•+d)b ^)b (<to, 1, l)b (Qo,e,e)-


Es importante notar que el cambio de estado no es necesario para simular las
derivaciones más-a-larizquierda de la gramática dada.
7.1 De g ra m á tic a » a « a itó m a tm « p ila 03

E n general, dada la gramática G - (T, V. S ,P) se considera el autómata a


pila A = ({</}.T, V U T. 6. q,S ), donde la función de transición <5 se define para
cada variable sintáctica A y símbolo terminal a, como sigue:

6 ( q ,e ,A ) - { ( q ,0 ) :A - > 0 e P ) , (7.3)
6(q, a. a) = {(q,c)}.

Ejemplo 63. Si se parte de la gramática (j7j}, el autómata a pila que resulta de


considerar la construcción anterior es A =■ ({qr}, {0,1,+}. {>1,5.0,1, + },<$.9,S),
donde:

6{q.e, A ) = {(q, A A ),(q . 0), (9 .1)},


¿(9 ,0 .0 ) = {(í,c)},

¿(<?,1,1) * { (« ,« )} ,
% ,+ ,+ ) - { ( ? ,* ) } •

E n lo que resta de la sección se prueba que en efecto AT(d) = L (G ). Dada una


cadena de derivaciones más-a-larizquierda S = 71 => 72 ••• => 7 * = w, primero
se demuestra inductivamente la siguiente afirmación para n = 1 .2 ,.... k.

P(n): si 7 n = x„a„ y Xni/n = u>, donde Xn es una cadena de


símbolos terminales y la cadena a„ comienza con una variable (7.4)
sintáctica o o fI= £ , entonces (9,w, S ) p- (9 ,1^,0 ,,).

La demostración de P ( l ) <5 fácil, pues en este caso 71 = S y solo se admiten


las descomposiciones S = eS y w = exv, es decir X\ = e, ai = 5 y j/i = w,
por tanto se cumple P ( l ) . pues (9.w, S ) p- (9,|/j.Q|) = (9.w. S ) en 0 pasos. Se
supone que se cumple P (n ) (hipótesis de inducción) y que 7 n 4-1 = Xn + +1
y Xn+i P n ^ i = w donde x n + 1 es una cadena de símbolos terminales y a n + 1
comienza con una variable sintáctica o es la cariena vacía. Sea 7 n = x non donde
Xn es una cadena de símbolos terminales. Y a que 7 „ => 'yn + 1 •existen dos casos
a considerar:

. Si o,, — entonces x nA£ => x n + 1a„ + 1 = xufl£ donde A -+ 0 es una


producción de P. Luego, existe r¡ € T* tal que Xn + 1 = Xn9 y la cadena
04 7 txmgnftjcB K hrw d e c o n te x to

tJn = Wfn + 1 satisface x„j/„ = te. Por hipótesis de inducción,

fa w, 5) p-(«,»»,*•) = (q,Wn + i,A€)\-(q,Wn+l, &)=(<!, Wn+UV<*n+l)-


Por definición del autómata a pila, (q, rf¡hi + 1 ,v a tt + i) p- (q. y n + 1 ,a n + i), por
tanto, (q,ur, S) p- (q, y» +!, a n + j).
. Si q„ = e. significa que 7 „ = w. Por tanto, > , + 1 = te, luego a n + 1 = £ y
Vn + 1 ~ l/r» - f- Por hipótesis de inducción se tiene que:

(q ,w , S ) p - (q.pn.Qn) = (q .y n + i . Q n + i ) = (q,e,e)-

Con esto se demuestra que toda cadena aceptada por la gramática G es aceptada
por pila vacía por el autómata a pila A. Resta demostrar que toda cadena acep­
tada por pila vacía por A es aceptada por G. Con este fin se prueba la siguiente
afirmación sobre números naturales, para toda variable sintáctica A' y cadena
de símbolos terminales un

Q (n ): si (q. te, X ) p - (<?,£,ff) en mía cantidad menor o igual a n ^


de movimientos, entonces X w.

Si (g,u?, X ) f— (g,f,f) significa que X -> e es una producción de P y w = e.


Se cumple trivialmente Q(l) pues X =* £■. Se supone cierta Q {n) (hipótesis de
inducción) y que (q, w , X ) p- (q , e, e) en n + 1 movimientos. El primer movimiento
involucra por fuerza a una producción del tipo X - i X \ X 2 •••X k. es decir:

(q,w , X ) | - (q.w , X t X 3 •• • X k) p- (*,£,*).

Sea w = x\&z •••x* una descomposición de w, tal que (q ,x¡x¡ + 1 ••- x k, Xi ) p-


(q, x%+ i •• •£*,£); en otras palabras, para cada i = 1 . 2 __ _ k. la cadena Xi es la
subeadena de w que se lee al eliminar a Xi de la pila en el proceso de lectura en
una cantidad de movimientos menor o igual a n. Por la propiedad ¡6J (q, x,, p-
(q,e,e). Si X i es un símbolo terminal, entonces por fuerza x¡ = AT¿, por tanto,
Xi ^ Xi en 0 pasos. Por otro lado, si X i es una variable sintáctica, por hipótesis
de inducción, X t ^ £j. En conclusión,
7.2 Do a u tó m a ta » a p iU a gr»™ A tica» 05

Lista de ejercicios de la sección ¡ T I ]

Ejercicio SO. Aplique el procedimiento (f7.-ip a la gramática del ejemplo (¡50)

7 .2 D e a u tó m a ta s a pila a g ra m á tic a s

En esta sección se establece un procedimiento general para construir una


gramática libre de contexto O = (V,E, P, 5) a partir de un autómata a pila
A = (Q ,E . P,<$, $,.ZO,0) tal que L(G) = JV(A). Dados un símbolo X del alfa­
beto de pila y dos estados p y q, la idea es asignarle una variable sintáctica \ p X 9]
que derive las cadenas que son leídas al pasar de p a q eliminando a X del tope
de la pila. Las producciones asociadas a cada variable sintáctica se establecen a
partir de las transiciones que definen a A. Si A tiene el lazo:

fl.X /c
et Y /e

entonces para cualquier a € T* se cumple (jta. A"a) \ - (q,e, o), por tanto, se
lee a al pasar de p a <7 eliminando a X del tope de la pila. Luego, a la variable
sintáctica \pXq\ se le asigna la producción

\pXq] -+ a.

Análogamente la transición instantánea genera la producción \pYq] — > e. Por


otro lado, si:

a,X/Y
06 7 trfingvmjos librea d o c o n te x to

es un lazo de A, entonces cualquier estado r, ( q . x , Y a ) j-2- (r,f, a) implica


( p , a x , X a ) [-1 (r.f.a), pues ( p , a x . X a ) f— ( q , x , Y a ) . En otras palabras, si x
es leída al eliminar a V del tope de la pila y pasar de q a r, entonces ax es leída
al borrar a X de la pila y pasar de p a r. Por tanto, se considera para cada
estado r la producción:
\ p Xr ] -4 a[qYr].
Si A tiene el lazo

a,X /YZ

Q r -0
para cualesquiera dos estados rj y r2,si zi es leída al pasar de q a ri al eliminar
a V del tope de la pila y x 2 es leída al pasar de r1 a r2 al eliminar a Z del tope
de la pila, entonces 0x 1X2 es leída al pasar de p a r2 al eliminar a X del tope de
la pila, pues para toda cadena del alfabeto de la pila a:

(p . 0X 1X 2*X a ) [- ( 9. X 1X2 ,Y Z a ) p- (r, ,x„ Z a ) (r2 ,c. a).

Por tanto, se ha de tomar en cuenta la producción:

\pX r2] - 4 a[qY n ][n Z r 2\.

Así sucesivamente. El lenguaje aceptado por la gramática G debería ser la unión


de los lenguajes derivados por todas las variables sintácticas de la forma [qoZoq],
donde q es cualquier estado: es decir las cadenas que leídas a partir de <jb Bogan
a un q eliminando a Z0 del tope de la pila y por tanto, vaciando la pila, en otras
palabras, las cadenas aceptadas por A.

Ejem plo 64. Sea A el autómata de un solo estado del ejemplo Con las ideas
anteriores se construye a ojo la gramática:

[qZ0q\ -4 a
\qaq\ -> a,
\qZoq\ -> t^qaq\\qZoq\.

con símbolo inicial \qZ0q\.

La construcción general es la siguiente. El conjunto de variables sintácticas


V se conforma por S y por todos los símbolos de la forma \pXq\, donde p y q
7-2 Do a u t ó m a t a » « p ila o g rn m A tic iw 07

son estados de Q y X es un símbolo del alfabeto de la pila J \ En la práctica,


muchas de esta s variables se pueden eliminar después por no ser viables, como se
m uestra en el ejemplo ¡Boj El conjunto de producciones se definen de la siguiente
forma:

• p ara cad a estado q se incluye la producción

S [qoZoq)\

• si (r, ff) 6 6(q, a. X ) donde a es mi símbolo de entrada, se


agrega la producción

IflXr] -+ a;
(7.6)
• si (r, f ) 6 ¿ (í, £, X ), se incorpora la producción

¡q X r] - + e.

• si (p. X i X 2 • • • X k) está en <5(g,a. X ), donde a 6 X U {c}


y k = 1 .2 ___ , entonces para cada lista de estados
n , r a ,. . . , rjt se añade la producción

faXrfc) a \p X iri] [ r iX 2r 2] • • • [r*_ iX fcrfc]:

Como es de esperarse, para todo símbolo del alfabeto de la pila X y para to d a


cadena del alfabeto de e n tra d a w y estados p y q:

[q X $ =*• m si y solo si (q, w. X ) p - (p,e, e). (7.7)

En particular, (j7TT}| implica que N (A ) = L(G ). En concreto, a continuación se


dem uestran las afirmaciones ()7.8j) y (fr.lQ) inductivam ente sobre los números
naturales.

P ( n ) : si \qXp\ w en m ía cantidad de pasos menor o igual a n,


entonces (9 , w, X ) p- (p.ff,e).

Si [gXpj tv en un paso, significa que existe la producción [qA'p] w. Por


tanto, w = a y (p, £) 6 ¿(<7. a. X ), donde a 6 X U {c}; luego ( 9. a. X ) |— (p, e, e).
Con esto se prueba P ( l) . Se supone que se cum ple P {n) (hipótesis de inducción)
y que [qXp] ^ w en n + 1 pasos. Por fuerza, la derivación debe ser de la siguiente
08 7 txmgnftjcB K hrw d e c o n te x to

forma:
[<?Ap] =>a [r 0 A 'in ][riA ' 2r 2] -• • [r*_iA *pj 4 w,
para a € X U {í}, algunos estadas r 0. r j , . . ., r* _ i y símbolos del alfabeto de la
pila A i, A2, . . . , A*. Sea w = 0 x 1X2 • • • X* una descomposición de w tal que para
cada i = 1, 2 , . . . , k.
¡ r í - i X i n ] é - X i,

donde rfc = p. P or liipótesLs de inducción (r¿_i,x¿, A¿) p- ( r , , í , f ) . Por la


propiedad § se tiene que p a ra cada i = 1. 2 , . . . . k:

(r<_ i, x<xi+i •• • X k . A»A,+i •• • X k ) p- ( n , Xk* X i + l - X t ). (7.9)

Por o tro lado, ya que (ro ,A i A2 •• • X k ) está en <5(g, a, X ), por tffDd:

(q .a x \X 2 “ ,Xfc, A ) | - (r 0 .x ix 2 --- , x k. A iA 2 - - X k )
p- ( r i , x 2X3 --- . x k. X 7X 3 - X k )
p* (r 2.X3X4 •• • ,Xfc,A3A 4 •• • A*)

] r (r k - i , x k , x k)
p- (r*;. e. e) = ( p f , f ).

Con esto se prueba P ( n -f 1).

Q (n): si ( 9, w, X 0 ) p* (p, e, £ ) para alguna cadena 0 del alfabeto


de la pila, en una cantidad de movimientos menor o igual a n , (7.10)
oitonccs (<?Ap| 4- tu.

Si (q, w. X 0 ) p- (p. e, 0 ) o í un movimiento para alguna cadena 0 , entonces w = o,


donde a e r u { £ ) y adem ás {q,e) debe pertenecer a <J(p,a, X ) lo que implica
que [gApj -► a sea una producción de P , en ¡>articular [qXp] ^ a. Con esto
se verifica Q (l). Se supone c ie rta Q (n) (hipótesis de inducción) y además que
( q .w ,X 0 ) p - (p ,e ,0 ) en n 4- 1 movimientos p a ra alguna cadena 0 . Entonces
existe un estad o r 0 y símbolos del alfabeto de la pila A j, X 2, . . . X k tales que:

(?. W. X B ) 1- (r„,x, X t X 2 - X k ? ) p- ( p . t . 0 ) . (7.11)

donde w = ax, con a € A U {¿}. Ya que (r0. X¡ X 2 ■• • A*) pertenece a ó(q, a. A ),


para cualquier lista de estados r ¡ , r 2. . . . r k .
7 -2 D o a u t ó m a t a » a p ila a g r m n M ic iu i_____________________________________________________________________ 0 0

-► a|roAfiri)(riAf2r 2) •• • (rfc-iXjtrfc). (7-12)

Eu particular, se cum ple Q7.12(| p a ra rk = p. Por (f7.11]>existe una descomposición


de x, x = X \X2 " x/t, y una lista de e s t a d o s r *_1 tales que:

( r 0. x , . X xX 2 ■• • X k0) p- ( r , ,£, X 2 •. • X fc/9),


( r , . i , Xi, X .+ , • • • p- (r»,ff? X í+ , • • • X fc0 ), i = 2 , . . . k - 1,(7.13)
(rk-i,Xk,Xk(3) p - ( p , f , . 5 ).

Por hipótesis de inducción, se tiene que:

Iro X in ) =$• X!,


|r iX 2r 2) =* x2.

(7.14)
|rfc_iX kP| 4> xfc.

Aplicando (fi'. 12| p ara r* = p, se concluye que (<?Ap] ^ o iiX q - • ■x k = w. Con


se prueba Q (n + 1).
(S to

Ejemplo 65. Sea A d a u tó m a ta a pila:

Según el instructivo anterior las variables sintónticas de la gram ática buscada


deben ser:
S, fab-VgDMqb-Xgil^o-VíM, k i* flb ), |?i Xfli|,
|í i A^j), 1^2-ATqbj, [feAgil,
donde X € { 0 ,1. Z»>}, es decir. V en principio consta de 32 x 3 + 1 variables.
Sin em bargo, muchas de ellas son símbolos no-generadores (ver definición en el
algoritmo QA.8) del apéndice). En algunos casos se puede verificar a o jo tomando
en cuen ta la propiedad [T77J Se pueden elim inar de inm ediato las variables [qoX$,],
faiA^o], [ífeAga] y para X 6 {0.1, Zb}, es decir, salen del juego antes de
10 0 7 lipnjpiftjcB Khrca d o c o n te x to

empezarlo 12 variables sintácticas. La razón de la eliminación, de cada uno de los


cuatro tipos de variable, es la misma. Por ejemplo, las variables del tip o [qb-Xgo]
se eliminan porque simplemente es imposible llegar de q0 a luego es absurdo
pretender además que exista una cadena w 6 tal que (qo.w, X ) p- (q o .e ,e ).
M ás adelante, en la construcción de producciones, se eliminan tam bién todas
aquellas producciones que involucren estas variables.
Las primeras producciones que se generan son las del tip o S -> [qoZ0q], donde
Q 6 {qo,qi-qi}- Com o la variable \qoZa<t)\ se ha eliminado, solo quedan dos pro­
ducciones de este tip o S -+ \qoZoqi] y S -* [qo^oft]- E» el cuadro ffiljsc m uestran
las producciones que se derivan a p a rtir de la información proporcionada por la
función de transición.

6 P
te ta producción ¿/sobrevive?
Qa.qo (9DZ090Í - f 0(91 O9 j 1Í90 ¿ 090] no
90.91 [90^ 0911 0 (9 i09ni[9o^o9il no
90.92 [90^ 092! *■+ 0(91 °9o!l90^o92l no
91.91 [90^o9ij ~+ 0 (9 i<19 iil9 i^ 'o 9 il sí
¿ ( 9o. 0 , Z o ) = {(91. 0 2 o )}
9 i,9 o [qoZoqo] - » 0(91091][91Z 090] no
91.92 (902092) -* 0(91091 ¡(912092] si
92.92 [90^ 092] - » 0 (9 i0 9 2¡{922 o 9 2j sí
<fc-91 (90^o9i¡ ° ( 9 i0<72l(<72^o9il no
93-90 Í90^o9o¡ “ ♦ 0(<y10(7i ][<ft2o9o] no
lista p ro d u cció n ¿Sobrevivo?
90.90 (9i“ 9 o ]-+ 0 (9 ,O q D!(90OqDl no
90.91 [91091] -♦ OfaiOgo K9DO91] no
90.92 [91Q72] - + 0(91093H90O92] no
9 i .9 i (9 i°9 il -* ° t9 i° ? ill9 i0 9 il sí
í ( í i , 0 ,0 ) = { ( ,! , 0 0 )}
91.90 Í9i09o] - > 0(9, 091](9i09b| no
91.91 (9i°92l -* 0(9i °<7i 1(9»O92I sí
92.92 [91092] - ♦ 0(91 Og2][gaO«(] sí
92.91 (91O91] - + 0(9i 0«p](9j 0 ffi] no
92.90 (9i°9ol - » 0(9iO<ft|[«ftOgr)l no

á(9 i , l , 0) = {(< p,c)} (91093] -♦ 1

S ( q í , e , Z o ) = {(9 3 ,*)} [93Z 092] - * t

¿(<73.1.0) = { ( * . « ) } [92O92] 1

C u a d ro 7 .1 C á lc u lo d o p ro d u c c io n e s a p a r t ir d o la función do tra n sic ió n .


7-2 Do a u t ó m a t a » « p ila o g rn m A tic a » 101

Hasta ahora, la gram ática que se h a calculado es la siguiente:

S —►|<7o^o9il>
S -* |9oZo92|<
|9o^ o9 i | ü |9i°9i||9i'Z b9i|'
\<loZiyq2\ -* ü l^ iü ^ ill^ Z o ^ l,
(90^ 092! -* O|^i 0^2 1[^2 -2To<¡te| .
fe , 0^,1 - > 0 | 9 l0<7, ||9 ,0 9 , |.
(fllOftl ->0|<7,0q,|(g,0q2|.
\qiOq?\ -* OfoOfeHfeOfe],
foOfla] -+ 1 ,
|<feO«72| -> 1 ,
|<7¿Z()<72| -+ £.

Por últim o, las variables [91O91] y [90^ 091] son símbolos no-generadores. Por
tanto, al borrar a todas las producciones que las involucran, la gram ática que
resulta finalmente es:

S —> [qoZoqzY
[9o^o92| “*
l í i ü ^ l -» OlftO^jlqaO^I,
I91G92I -+ 1 »
|92°92| 1,
[92 ^ 092] -* £•

7 .2 .1 A u tó m a ta s a pila d e te rm in is ta s y g ra m á tic a s
n o -a m b ig u a s

El motivo de e sta sección es convencer al lector de que la construcción vista


pora transform ar un autóm ata a pila en u n a gram ática arro ja u n a gram ática
no-ambigua cuando el au tó m ata a pila es determ inista. La ¡dea fundam ental es
que si una cadena w es aceptada por un autómata a pila determ inista por pila
vacía entonces la secuencia de m ovim ientos (q0,tv, Z 0) p- ( 9 ,£ ,e ) es única.
Sea A = (Q , E . r , ó, 90. 2íu,0) un a u tó m ata a pila determ inista y w u n a cadena
aceptada por G d ad a por <j7.6{| tal que L(G ) = N {A ). El sím bolo inicial S en
102 7 lipnjpiftjcB Khrca d o c o n te x to

principio e stá relacionado con to d a s las variables sintácticas de la form a [<?o2 bpj
donde p € Q. Sin embargo, solo puede existir un estarlo p tai que \qoZ0p] 4 w.
De hecho, si se supone que hay dos estados p» y p 2 con esa propiedad, entonces
por ({777} se te n d ría que (qo,w, Z 0) p- (p i,£ ,c ) y ($b,tu, Zo) p- (P2 , í , f ) . Como
a p a rtir de ((70, tu, Zo) hay un solo cam ino a seguir al leer la cadena te, por
fuerza p\ — p*. En conclusión, existe una sola derivación mAs-ar lar izquierda de
la form a S => [qoZopj. L a afirmación sobre números naturales ((7.15) implica en
particular que si te es una cadena aceptada p o r pila vacía, entonces existe una
única derivación mós-a-larizquierda (qbZnpj 4 te. Por lo anterior, existe entonces
una única derivación rnAs-a-la-izquierda S 4 tu. El teorem a [Tí] implica que la
gram ática G no es ambigua. R esta razonar porqué Q ' es c ie rta para todo número
natural.

Q '(n ): si {q,w, X $ ) p - (p ,e ,0 ) j>ara alguna cadena en u n a


única secuencia de movimientos en cantidad menor o igual (7 15 )
a n, entonces existe u n a única derivación m ás-a-la-izquierda
(qXp] 4 tu.

Primero, se ha de notar que Q7.15Q es una versión más específica de (f7.10)


por lo que se dan a continuación argum entos puntuales sobre la dem ostración
de (}7.10) p a ra dem ostrar @7.15fr. La afirmación Q '( l) es cierta, pues un solo
movimiento (g, tu, X fr) \ - (p. e. ()) arro ja una derivación más-a-la-izquierda d e la
form a (qAp) => a o faAp) => c, pero no ambos, pues el autóm ata es determ inista.
Se supone c ie rta Q 'in ) (hipótesis de inducción) y que existe una única secuencia
de n + 1 movimientos (<7, tu. X($) p- (p.s, &) para alguna cadena 0, en particular,
el ro y los símbolos X i , X 2 X k de (17.11[) son únicos. Se infiere entonces la
existencia de la producción Q7.12), en principio para cualquier lista de e sta d os
r i, r 2, . . . r*. y en particular para r* = p. De nuevo, como la secuencia ((7.11) es
única, la descomposición x = X \X 2 • • •z* y la lista de estados r %, r 2, . . . , rk _ j que
satisface l] 7.l3) son únicas tam bién. Por hipótesis de inducción, las derivaciones
más-a-la-izquierda Q7.14Q son de igual m anera únicas. Por tanto, la secuencia de
derivaciones más-a-la-izquierda:

[gApj => a(rn A iri][ri X 2r$] • • • [r*_i X*p)


4 a z i(r iA 2r 2] •• • (r*_iA*p)
4 a x iX f-lr k -iX k it

4 aziz2 --zfc = tu.


7 .3 In m » d o b o m b e o p a ra Ion icnguftjoa lih rm do c o n te x to 103

C onstituye la única derivación más-arla-izquierda \qXp] => w. Con eso se prueba


Q 'ín + l).

Lista de ejercicios de la sección ¡7T2|

Ejercicio 01. En notación de la construcción general dada en e sta sección, haga


los detalles para verificar que (|778} y (fr,10[i implican que L{G) = AT(A).

Ejercicio 02. Dado un autóm ata a pila A con n estados, ¿se puede construir otro
a u tó m ata a pila A ' con solo un estado ta l que N (/4) = AT(A')?

Ejercicio 03. A p artir del a u tó m a ta a pila:

<5(p,a, Zo) = {(p , a Z o )},


ó (p ,b .a ) = {(p,c)},
S(p.£.Z0) « {(?.£)};

encuentre una gram ática libre de contexto que acepte a N { A ) como lenguaje.
Describa al conjunto AT(A).

Ejercicio 04. Sean A un au tóm ata a pila determ inista y L un lenguaje aceptado
por A por estado final. Demuestre que existe u n a gram ática no-am bigua G que
acepta a L como lenguaje. Sugerencia: considere el lenguaje L 0 que se definió
en el ejercicio (75} A partir de la gram ática no-am bigua G c que existe para L 0,
construya o tra no-ambigua p a ra L.

7.3 L e m a d e b o m b e o para los lenguajes libres de c o n te x to

B i e sta sección se presenta un lem a de bom beo análogo al de lengufyes regulares.


Una p arte fundam ental de la prueba es el hecho de que to d a gram ática libre de
contexto G se puede rocscribir en Jbrma normal de Chom sky |6], es decir, con
todas sus producciones de la forina£]

A -> B C .
A —> o;

1 E n alg u n o s definiciones q u e se e n c u e n tra n e n la lite r a tu r a so Incluyen tam b ién p ro d u ccio n es


do l a fo rm a A -+ e.
104 7 lip n jp iftjcB K hrca d o c o n t e x to

donde A, B y C son variables sintácticas, a es un símbolo term inal y además


sin símbolos inútiles (ver definición en p. |l27). En el apéndice A se m uestra
que básicamente siempre se puede construir una, gram ática en form a normal
de Chomsky a p a rtir de una gram ática libre de contexto dada. La gram ática
resultante acepta el mismo lenguaje que la original, salvo la cadena vacía, como
se afirm a en el teorem a PI] A ntes de establecer el lem a de bombeo, es necesario
tom ar en cu en ta el siguiente hecho.

Propiedad 7. Sea G — (T. V, S, P ) una gram ática en form a normal de Chomsky.


Sea A un árbol de derivación de G con raíz S y rendim iento te € T*. Si la
longitud del cam ino —e sto es, el número de nodos conectados menos 1— m ás
largo de A es k, entonces
\w\ < 2* - 1.

Prueba. La demostración se establece por inducción sobre la longitud del camino.


Si la longitud del cam ino m ás largo de A es 1, significa que A está constituido por
la raíz y una sola hoja etiquetada con un símbolo term inal a, pues la gram ática
está en form a normal de Chomsky. Por tanto, w = a, luego |ic| < 2 1” 1.
Se supone que se cumple el teorem a para árboles de derivación cuyo camino
m ás largo tiene longitud k (hipótesis de inducción). Sea A un árbol con raíz S y
rendim iento te tal que la longitud del camino m ás largo es k + 1. D e S se derivan
dos ram as correspondientes a la producción S -* A B , pues com o k + 1 > 1 no
se puede comenzar con una derivación de la form a S —> a. Por otro lado, ningún
camino en los sub-árboles con raíz A o B pueda» ten er longitud mayor a k. P or
hipótesis de inducción los rendimientos correspondientes, digamos x y z tienen
longitud a lo m ás 2*” 1. Ya que w = x z , se tiene que:

\w\ = \xz\ = \x\ + \z\ < 2 fc- ‘ + 2 fc~* = 2*.


Teorem a 16 (lem a de bom beo para lenguajes libres de contexto). Sea L un
lenguaje libre de contexto. Entonces existe n natural tal que si w es cualquier
cadena de L con |tc| > n , entonces existe una descomposición de w de la form a
w = tw z x y que satisface:

B \. v x ¿ e,
B2. \vzx\ < n ,
Z?3 . para todo r > 0. uvr z x r y 6 L.
7 .3 In m » d o ho m b o o p a ra Ion ícnguftjoa lih rm do c o n te x to

Prueba. Sea L un lenguaje libre de contexto. Si L = 0 o L = { f} entonces se


cumple el teorem a por vacuidad. Si el lenguaje L 110 es el coujunto vacío ni el
conjunto {c}. se puede suponer sin pérdida de generalidad que L no contiene a
la cadena vacía; pues la condición «|w | > n» no aplica para w = e si n es un
número natural. Por d tcorcrm afU j se puede asum ir que G — (T, V. S. P ) es u n a
gram ática libre de contexto en forma normal de Chomsky ta l que I \G ) = L.
Sea m la cardinalidad de V , esto es, el núm ero de variables sintácticas y sean
n = 2m y te 6 T* tal que |ur| > n. Por la propiedad 0 todo árbol de derivación
cuyo cam ino m ás largo ten g a longitud m o menos tienen que derivar cadenas de
longitud a lo m ás 2m_l = ~ . Por tanto, los árboles de derivación con rendimiento
w tienen que ten er un camino de al menos longitud m 4- 1. Sea A un árbol de
derivación con rendim iento w y sea fc > m tal que A;-f 1 es la longitud del camino
más largo en A (se fija un camino m ás largo). Entonces, existen A u , A i , . . . , A k
etiquetas de k + 1 nodos representando las variables sintácticas correspondientes
al cam ino m ás largo. Como hay solo m diferentes variables existen al menos dos
que se repiten dentro de las últimas m + 1 variables, i e. ecisten índices i y j
tales que k - m < i < j < k y A , = A¡ (ver figuraf7d). Se considera la siguiente
descomposición de w - u vzxy:

. la cadena 2 es la subeadena de tü que se deriva del subárbol de A con raíz A¿\


• las cadenas v y x son las subeadenas del rendim iento del sul>árbol de A con
raíz A i que se encuentran a la izquierda y derecha, respectivam ente, de z: se
lia de notar que como no existen producciones unitarias se cum ple que v x ^ c;
. las cadenas u y y son las subeadenas de w que se encuentran a la izquierda de
v y la derecha de de x , respectivamente.

Al considerar la igualdad = A j = A es posible construir nuevos árboles de


dcrivnción a p artir de A . Se puede, por ejemplo, reem plazar el subárbol de A
con raíz con rendim iento vzx, por el subárbol de A con raíz A j que deriva a z.
Luego este nuevo árbol tiene raíz S y rendim iento u zy . Por tanto, tw °zxf}y € L.
P or o tro lado, si se reem plaza el subárbol de A con raíz A j por el subárbol
de A con raíz A j, entonces el nuevo árbol tiene como rendim iento a la cadena
ttz>2zx?y. Así sucesivamente se pueden construir árboles de derivación con raíz S
y rendim iento u v rz x r y para r > 3. R esta probar que |u 2x| < n . Ya que k —i < m ,
entonces la longitud del camino m ás largo en el subárbol de A con raíz A j no
puede pasar de m + 1 . P or el teorem a 0 la longitud de cualquier rendim iento del
subárbol do A con raíz A, no puede pasar de 2"* - n. En particular, |u 2 x| < n.

106 7 trfingvmjos librea d o c o n tr a to

Ao

• * Ai •

* ** * * A» » *

* * • *

*A a)
*
A Ak

F«g. 7.1 Á rbol d e deriv ació n c o n re n d im ie n to ur.

Ejem plo 66. Sea Loía = {0n l n2 n : n > 0}. En analogía al lem a <le bom beo para
lenguajes regulares, es posible usar el teorem a [IB] para probar que ¿012 no es
libre de contexto. Se supone lo contrario, es decir, que es libre de contexto.
Entonces, existe un n natural tal que para cualquier cadena w tal que |u?| > n
se puede descomponer de la form a te = tw z x y y además se satisfacen fli, f t y
JB-j. Sea tv = 0 " l n2n . Si [tizx| < n y v x ¿ e, entonces v z x no puede contener
7 .3 In m » d o ho m b o o p a ra Ion Icnguftjon lih rm do c o n te x to

a la vez el símbolo 0 y el símbolo 2, pues entre el últim o 0 y el prim er 2 hay


justam ente n posiciones. Existen entonces dos situaciones posibles. Si v z x no
contiene al símbolo 2. entonces v x consiste de símbolos 0 y 1, además contiene
al menos uno de estos símbolos, pues v x e. Luego, u tP zx °y = u z y no estA en
¿ 012, pues tiene n símbolos 2 y menos de n símbolos O o 1. Análogamente se
razona si u w x no contiene el símbolo 0.

Lista de ejercicios de la sección [7.3|

Ejercicio 95. Pruebe que los siguientes lenguajes no son libres de contexto.
1. { o W # : i > l , j > <};
2. {uruj: w es una cadena binaria};
3. {0n l" 2 ‘ : » < n } .

Ejercicio 96. U na gramática dependiente de contexto e s unacuA drupla (T. V, 5, P )


donde T es el conjunto de símbolos term inales, V es el conjunto de variables sin­
tácticas, S € V es el símbolo inicial, pero el conjunto el conjunto de producciones
P es de la forma:
<*->&< N < |£ l
donde o y j 3 son cadenas de (T U V)* y a contiene al menos u n a variable sintác­
tica. Al igual que antes, el lenguaje aceptado p o r una gram ática dependiente de
contexto es el conjunto de cadenas de símbolos term inales w tales que S te, cu
este caso se le llam a lenguaje dependiente de contexto. Un ejemplo de gram ática
dependiente de contexto es la gram ática G definida por:

S -> OS B C | OBC.
C B -> B C ,
IB 11,
OB —►01,
1C - > 12.
2C -> 22.

Demuestre que L(G ) = ¿oía, es decir el conjunto ¿012 del ejem plo |G6]es depen­
diente de contexto pero no es libre de contexto. Note que por definición, una
gram ática dependiente de contexto no adm ite producciones de la form a A -* e.
Lo que sí se cum ple es que si L es libre de contexto y no contiene a la cadena
vacía, entonces es dependiente de contexto.
108 7 lipnjpiftjcB Khrca d o c o n te x to

Ejercicio 97. Problemas de decisión de lenguajes libres de contexto. Sea G una


gram ática en forma normal de Chotnsky con m variables sintácticas. Pruebe que:
1. L (G ) f 0 si y solo si existe una cadena w con |u>| < 2TO que es aceptada.
2. L(G ) es infinito si y solo si existe w 6 L (G ) con 2™ < |ur| < 2*71+ 1.
En base a esto, diseñe un algoritmo que reciba como en trad a u n a gram ática libre
de contexto y regrese un «sí» o un «no» dependiendo si el lenguaje que acepta
es vacío o no. Haga lo mismo pero que la respuesta sea en función de que el
lenguaje sea infinito o no.

7 .4 P ro p ie d a d e s d e los lenguajes libres de c o n te x to

El siguiente teorem a resume las principales ideas expuestas en las secciones f>.3[
O y (Z 3

Teorem a 17. Sea L un lenguaje. Las siguientes afirmaciones son equivalentes:

I. L es aceptado por u n autómata a pila por estado final.


II. L es aceptado por un autómata a pila por pila vacía.
n i. L es un lenguaje Ubre de contexto.

En el capítulo 2 se presenta una construcción de un autóm ata finito determ i­


n ista p a ra la intersección de dos lenguajes regulares, en particular la intersección
de dos lenguajes regulares es tam bién un lenguaje regular. L a misma pregunta
es natural plantearse para dos lenguajes libres de contexto L y M . El teorem a
fI7| pudiera sugerir la existencia de una construcción análoga a la de la sección
12.2.1)pero a p artir de dos autóm ntas a pila. El prim er problema surge al tra ta r
de construir un nuevo alfabeto de la pila a partir de otros dos dados. De hedió,
esa construcción es imposible, pues en general no es cierto que la intersección
de dos lenguajes libres de contexto L n M sea libre de contexto. Como m uestra se
tiene al lenguaje del ejem plo ¡85) el cual se h a dem ostrado no ser libre de contexto
aunque sea la iitersección de dos que sí lo son [ejercicio (76):

{0nl”2n : n >0} = {0nl n2m: n, m > 0} n {0ml"2'* : rvm>0}.


En particular, por las leyes de De Morgan no es cierto que L \ M sea libre de
contexto [ejercicio ¡99]■ Sin embargo, el ejercicio ¡80) implica que si L y M son
libres de contexto, entonces tam bién lo son L U A / , L M y L %. Adicionalmcntc,
si uno d e los lenguajes es regular, se puede establecer sin problema el au tó m ata
a pila de la intersección.
7A I(im » d o ho m b o o p a ra Ion kmguftjnB Khr«w do c o n te x to 100

Teorem a 18. Si L es u n lenguaje libre de contexto y \1 es un lenguaje regular,


entonces L n \ f es libre de contexto.

Prueba. Sean .4 = (Q, JC, T, 6a - <3b- Zq. F ) un autóm ta a pila y B ■ (P. E , 7 , po, H )
un au tó m ata finito determ inista. P a ra finalizar esta sección, se presenta a con­
tinuación un procedim iento para construir un a u tó m ata a pila que acepta por
estado final a L (A ) n L (B ) como lenguaje. Sea

C = ( Q x P ,E , F V- (9o,Po). Zo, F x H )

el au tó m ata a pila tal que para caria a 6 E y X € T, ij((q, p), a, X ) es el conjunto


de los pares de la form a ((r. s), a ) tales que (r, a ) € 6(q, a , X ) y s = 7 (p, a ). P ara
todo n natural se cum ple que (ejercicio jlOOj:

P (n ): si (qb, w, Zq) f-j (q ,e, 0 ) para alguna cadena 0 , en u n a can­


tid ad de movimientos menor o igual a n y p = t(p d , w), en­
tonces ((<7o- Po),w- Z0 ) ((<?, p ) , f , 3).
(7.16)
Q (n): si ((<*,,P o ),w. Z 0) | ~ ((<7.p ) ,c ,£ ) en una cantidad de
movimientos m enor o igual a n, entonces («fo.tc. Z(í) (q ,e , /?)
y P = T (P o ,w )-

Como p y 9 son estados de aceptación de .4 y 5 , respectivamente, si y solo si


(p, <7) es un estado de aceptación d e C, entonces las afirmaciones Q7.16D implican
en particu lar que una cadena te es aceptada por A y B si y solo si es aceptada
p o rC . □

Lista de ejercicios de la sección [774

Ejercicio 98. Sea L = {On l fl : n > 0} y M — {amlF : m > 0. n > 0}. Verifique
que M « un lenguaje regular. Encuentre u n a gram ática libre de contexto que
acepte a L n A/ com o lenguaje.

Ejercicio 99. Pruebe que si L y M son libres de contexto, no necesariamente


L \ M (5 libre de contexto. Sugerencia: razone por contradicción.

Ejercicio 100. Pruebe las afirmaciones (fr-16¡) p a ra todo número natural.


110 7 lipnjpiftjcB Khrca d o c o n te x to

7 .5 A lg o ritm o de C o c k e -Y o u n g e r -K a s a m i

Eli esta sección se presenta un procedimiento conocido en la literatu ra como


algoritmo C Y K . D ada una gram ática G en form a norm al de Chomsky y una
cadena u>. el algoritmo regresa un «sí» o u n «no» dependiendo si te € L(G ). La
principal virtud del algoritm o CYK es que es eficiente en térm inos de complejidad
tem poral 0 ( n 3) |14, p. 305| donde n es la longitud de te. sin embargo, antes la
gram ática debe ser convertida en form a normal de Chomsky. lo que implica que
d núm ero de derivaciones pueda crecer mucho. De hecho, si |G| es el tam año
de la gram ática original - e s to es, la sum a de los tam años de las producciones
A -* q . donde el tam año de cada regla es a 4-1— entonces el tam año de la nueva
gram ática en form a norm al de Chomsky G ' es 0 (2 ? Ic l) c. /. |1& p. 7j.
Sea G una gram ática en form a normal de Chomsky con símbolo inicial S y
sea ter = 0 iú 2 ” ’ Qfi una cadena. El algoritmo CYK parte de una inedia tabla
indizada como la siguiente:

71 (!,»)
i : P,n)
3 11..i,

2 (>,2)
1 (*.*) (3,3) (n,n)
0, <h «3 •** On

A c a d a espacio en la ta b la con índice (i. j ) le corresponde el conjunto de


variables sintácticas Va = { A : A »*• 0 , 0 , 4. i ” ’aj) - P °r supuesto, Va puede
ser el conjunto vacío. I>a idea del algoritmo es ir llenando la ta b la de abajo-
hacia-arriba, hasta llegar al lugar en la tabla con índice ( 1. n ) por medio del
procedim iento inductivo (]7.17['. El símbolo inicial S pertenecerá al conjunto
asociado al índice (1, n) si y solo si 5 =4 aia¡ ■• • dn = te, es decir, si y solo si w
pertenece a L(G ).
Antes de establecer el procedimiento de llenado, es im portante notar que la
cadena 0 , 0 , 4.1 • • • a-> en la definición del conjunto Va tiene longitud j —i + 1 . Al
prim er renglón le corresponde los conjuntos de la form a Vu , las cadenas asociadas
a los conjuntos Vu tienen longitud 1 : las cadenas que definen a los conjuntos Va
del segundo renglón tienen longitud 2 , así sucesivamente liasta llegar a la única
cadena de longitud n que define el conjunto V\n en el renglón n.
7A I(im » d o ho m b o o p a ra Ion kroguftjoB Khr«w do c o n te x to 111

R. i n i c i a l para 1 < i < n , V a = { A : A -+ a,}, con esto


se llena el prim er renglón;
R . IN D U CTIV A se supone que se han calculado los conjuntos
hasta cierto renglón m . P a ra calcular a todos
los Vij del renglón m + 1 se procede de la si-
guicntc m anera: para k j - 1 . si
• B e V it,
• c e ^(fc+ i» y
. A -* B C es una producción de P
entonces A € Vi}.

El paso inductivo es necesario y suficiente, pues si A =*• a ia» + 1 es una


derivación de m ás de un paso, al estar la gram ática en form a normal de Chomsky,
tiene que comenzar con A => B C , para algunas variables B y C y por tan to existe
un k cutre * y j —1 tal que B a,o , + 1 • • a* y C ^ a* + ia* + 2 •• Oj. En otras
palabras, A € V¡j si y solo si existe k 1 y variables sintácticas B € V#
y C € V(fc+ 1)¿ tales que A -» B C es una producción de P.

Ejemplo 67. Sea G la gram ática en form a normal de Chomsky correspondiente


a la gram ática del ejercicio |BTj

S -» A C | A B | A D | A E .
B -> S C ,
D -¥ C S , (7.18)
E -+ B S,
A - 4 [,

c -o .
(7.19)

Sea u' - [ [ ] ] una cadena de longitud 4. P ara este ejemplo a i = [. 02 — C,


03 = ] y 04 = 3. El prim er renglón de la tab la indizada se llena a p a rtir de la
regla inicial:
112 7 lipnjpiftjcB Khrca d o c o n te x to

Eli proceso de la regla inductiva se explica en el cuadro [772J P uesto que S al final
del proceso se en cu en tra en la casilla (1,4) se concluye que [ C) ] 6 L{G).

j- i+ l Di p ro d u cció n ta b la
V*i 1*1 V'(* +
4
IM )
Vl2 1 v h = M > V -a - {A} n in g u n a 3
Mr») ■
2 v „ 2 V „ = {A ) S -¥ AC 2 0 ■ 0
V'-M 3 Vía = {C } V'44 = {<C } n in g u n a 1 A A c
C‘, 1
l i 3 3
4 p .4 )
1£ £ £ £ n in g u n a

II II II II

o o ii ii
V 'l 3
■> 3 tí B

S
• 13 n in g u n a
3
o 2 tí a tí
V24 n in g u n a
1 i A ü
V* o B -¥ S C L\3 1
r i 3
4 ü
Vu 1 V » i = M > V*x = { B } S - * A B 3 0 B
4 Vu 2 V,a = 0 VM = 0 n in g u n a 2 tí s tí
V u 3 Vxa = 0 Vw = 0 n in g u n a 1 A A C
l l 3
L\3 1

C u a d ro 7 .2 A plicación d e la re g la in d u c tiv a d el a lg o rtim o CTYK p a r a la gran » ¿tica \l. lfl| y la


cadena [ [ ] ] .

Lista de ejercicios de la sección 7.5

Ejercido 101. Escriba un program a que reciba como entrada un tex to y diga si
tse te x to incluye o no a la palabra reservada then.

Ejercicio 102. Escriba u n programa que reciba un texto de en trad a en el alfabeto


{ a ,b ,c . [ , ] . { . } . ( .) } y diga si tiene los paréntesis, corchetes y llaves equilibra­
dos. Sugerencia: considere la gram ática del ejercicio ¡88[
Capítulo U _________________________________________

Introducción a la computabilidad

A numera de cierre, en este capítulo se sintetizan las ideas básicas de la compu-


tabilidad a través de un au tóm ata más sofisticado: la m áquina de Turing |27j. Se
estudian además a los lenguajes recursivamente enum erables y a los lenguajes
rceursivos, y la relación de éstos últimos con los llamados problemas indecidibles.
Se concluye el texto con un esquem a global de la teoría de autóm atas y lenguajes
formales.
U na m áquina de Turing se parece mucho a un au tóm ata a pila: ambos tienen
estados, símbolos de entrada, transiciones y espacio jiara alm acenar datos de
e n tra d a La diferencia es que p a ra guardar la información la m áquina de Turing
usa la cinta, la cual es infinita en am bas direcciones. La cin ta se puede pensar
como una serie de cuadrados, c a d a uno d e los cuales puede guardar un solo
símbolo, hay además un apuntador o cabeza lectora que perm ite leer el símbolo
que se encuentra en la cita, tam bién es posible escribir símbolos en la cinta,
incluso el apuntador se puede mover en cualquier dirección de la cinta.
Como el lector puede imaginar, el conjunto de los lenguajes aceptadas por una
m áquina de Túring (los recursivamente enumerables) contiene estrictam ente al
conjunto de los lenguajes los libres de contexto. Además de un tip o aceptación
por estado final, análoga a los autóm atas finitos y a los autóm atas a pila, las
m áquinas de Turing incluyen una «aceptación» por parada, concepto ligado a
los lenguajes rceursivos. Posiblemente más im portante que la aceptación por
estado final, e sta noción perm ite una forinalización m atem ática del concepto de
algoritmo.

113
114 In tro d u c c ió n a U c o m p u ta b ih d a d

D e fin ició n y m o v im ie n to s en u n a m á q u in a de T u r in g

Una máquina de Tiiring M es una séptupla (Q, E , T, <5, q0, u . F ) donde cada
dem ento estÁ definido de la siguiente manera:

Q es un conjunto finito no vacío, llam ado a>r\junto de estados;


E es un conjunto finito no vacío, llam ado alfabeto de símbolos de entrada;
f es un subconjunto de E no vacío, llam ado alfabeto de la cinta;
6 es la función de transición definida en un subconjunto de Q x T con imagen
contenida en el conjunto de tripletas en Q x r u {-►, 4-}, es decir, para todo
estado q y símbolo de la c in ta X , si 6(q. X ) está, definida, entonces es de la
form a (ver figura(871):
6( q , X ) = ( p . Y d ) .
donde p 6 Q , Y € T y d es la dirección perteneciente al conjunto
4 ) es un elem ento de Q. llam ado estado inicial;
ü es el llamado símbolo blanco. el cual es un símbolo del alfabeto de cinta pero
no del alfabeto de entrada;
Zo es un elem ento de T . llamado símbolo tncial de la cinta;
F es un subconjunto de Q , llamado conjunto de estados de aceptación que
puede ser vacío.

X /Y

e r ~ - 0

8 .1 D iag ram as d e tra n sic ió n c o rre sp o n d ie n te s a la s ig u ald ad es 6 ( q o ,X ) = y


6(q, X ) = (p. Y , * - ) , d o n d e p es u n e s ta d o d e a c ep tac ió n .

A continuación se explica los movimientos de «lectura» de una cadena en


una m áquina de Turing tom ando como ejemplo la cadena binaria w = 1101. A
diferencia de los autóm atas que se han visto h asta el momento, una m áquina de
T\iring en realidad no necesariam ente lee to d a una cadena en trad a para llegar
o n o a un estado de aceptación, en lugar de eso. la m áquina de Turing puede
leer alguno de los símbolos, o todos, incluso ninguno de ellos. La cadena w es
aceptada si estando en el estad o y (solo) w en la cinta, se llega en algún
número finito de movimientos a un estado de aceptación.
115

Regresando al ejemplo, se comienza en el estad o qo. De m anera ilustrativa, el


lector puede imaginar u n a cin ta infinita que tiene en todas las casillas el símbolo
blanco excepto en 4 casillas donde se encuentran cada uno de los símbolos de la
cadena w y un apuntador señalando el símbolo blanco anterior a la casilla del
primer símbolo de w:

t
©
el cual es el estado inicial de la cinta; e sta situación se puede escribir formalmente
a través de una descripción instanánea. por ejemplo (<fc,Ul 101). El símbolo
blanco subrayado U indica que el apuntador lo señalaQ
La transición ¿(go, ü ) - {p, Y , -*} produce el cambio del estado q0 a p y el
siguiente cambio en la cin ta (se mueve el apuntador hacia la derecha, reem­
plazando a U por y ) :

|u|y|i|i|o|i|ü]ü
t
®
Este movimiento se escribe en térm inos de descripciones instantáneas como:

(<jb. U llO l) | (p, y 1101).

E stando el apuntador en 1 y en el estado p , la transición ¿(p, 1) = {q, X , <-}


produce el cambio de estado de p a q, se mueve el apuntador hacia la izquierda
y se reem plaza 1 por X:

l ü |y ¡ x |i |o |i i L i H
t
©

El movimiento se escribe (p, y ilO l) f— (^r,HA" 101). Así sucesivamente. Varios


movimientos se denotan a través de la clausura reflexiva y transitiva de (—,
en analogía a los autóm atas a pila o gram áticas, en este ejemplo se tiene que

1 O s í m b o l o b l a n c o a p a r e c e e n e l s e g u n d o t é r m i n o d e u n a d e s c r i p c i ó n i n s t a n t á n e a s o lo s i e s
s e ñ a la d o p o r e l a p u n t a d o r o a p a re c e e n m e d io d e s ím b o lo s n o - b la n c o s o d e l s ím b o lo b la n c o
s e ñ a la d o .
116 In tro d u c c ió n a U ro n ip m th ih d a d

(<jb, u l 101) p - (g ,K X 101). Se dice que la cadena u* es aceptada si a partir de la


situación inicial se llega a un estado de aceptación. En o tras palabras, el lenguaje
aceptado por u n a m áquina de Turing A/ es el conjunto:

L { M ) = {te € r * : (qo, y » ) b (q. aX j?), a , 0 € r , X € T q e F}.

Los lenguajes aceptados por una m áquina d e Turing se llaman recursivamente


enumerables. 0

Ejem plo 68. Sea L a d lenguaje de corclietes equilibrados. La m áquina d e Turing


M de la figura jfT2]checa si una cadena en de corclietes está equilibrada, es decir,
es la m áquina propuesta para cum plir L (M ) - L 0 . En efecto, la cadena □ [] es
aceptada, pues:

(9o,U□ □ ) b (9i • □ CJ) b (9i • t i □ ) b (« t. I X □ ) b («71, X X [ ] ) | -

(9i, X X U ) b (9 i , X X Ü ) b (9i, * * □_) b (<l2, X X { X ) b (« i, X X X X ) b

( 4 i, XXXXu) b (<&• X X X X ) b (<fc. X X X X ) b ( 93. X X X X ) b

(q3, X X X X ) \ - ( q 3, u X X X X ) \ - ( 94, U U X X X X ) .

La m á q u in a de T u r in g co m o un a lg o ritm o

Se dice que u n a m áquina de Turing M = (Q , E . T, <5, qo, U , F ) se para si estando


en un estado p y el apuntador en un sím bolo de cin ta X , ó(q. X ) no e stá definida.
Siempre se puede asumir que una m áquina de Ttaring se para si se lia llegado a un
estado de aceptación, pues basta indefinir a ¿( 4 . X ) si q € F para cualquier X .
Se puede dar el caso en que u n a m áquina de Turing pare en un estado que no sea
de aceptación: cu este caso la cadena en lectura no sería a c e p ta d a sin embargo,
muchas veces la condición de paro es más im portante que la de aceptación,
pues comúnmente las m áquinas de Turing son diseñadas para «com putar algo»
no p ara distinguir cadenas de un alfabeto y si es el caso, el proceso debe de
term inar en algún momento. Los siguientes ejemplos ilustran el punto.
3 E n el ejercicio[m ] se D am aron ta m b ié n re cu rsiva m en te enum erable.$ a los len g u ajes a c e p ta d o s
p o r la s g ra m á tic a s sin restriccio n es. E sto n o es pro b lem a, p u es e fe c tiv a m e n te so n el m ism o
tip o d e c o n ju n to s, es d e c ir, los len g u ajes a c e p ta d o s p o r la s g ra m á tic a s sin re s tric c io n e s son los
m ism os q u e los a c e p ta d o s p o r la s m á q u in a s d e T u rin g |8 , p . 189].
117

x,x ->

Flg. 8 .2 M á q u in a d e T ü rin g q u e v erifica c a d e n a s d e c o rc h e te s eq u ilib ra d o s.

Ejemplo 69. La m áquina de Tliring de este ejemplo es un modelo simple para


un algoritm o que b o rra el último símbolo de u n a cadena binaria dada.

i,u —►
U.U-» U.U4- 0,L1 —
*

0.0-*

U na lectura p ara la cadena 1110 es la siguiente:

fa 1y iii0 )H ® .liii0 )H tt.U H 0 )H « 1> iili0 )H « 11iiiI0 )|-


tot, U110)|-(91,11110U)h (92,11110)1— («3,1111 ÜU).

Rstos movimientos se pueden interpretar como el proceso de cómputo paso a


paso que recibe como en trad a a la cadena 1110 y arro ja como salida a la cadena
1111.

Ejemplo 70. Se e stá interesado en diseñar una m áquina de Turing que haga el
efecto de la función / sobre un número binario te. La función / se define como
/ ( i r ) = w - 1 si w es im par y / ( i r ) = ir + 1 si ir es par. Se ha de notar que
un núm ero binario es par si term ina en 0 y es impar si term in a en 1. Además, a
118 ln tr o d u c d á n a U c o m p u ta b ih d a d

un número impar restarle 1 es lo mismo que reem plazar el últim o 1 por un 0 y


sum ar 1 a un número par es equivalente a su stituir el últim o 0 por un 1. Estos
hechos hacen que el diseño sea particularm ente sencillo, de hecho es básicamente
igual a la m áquina del ejemplo §9]salvo que en lugar de borrar el último dígito
se cam bia de 0 a 1 y viceversa:

1,0 -¥

0,0 -¥

Un lenguaje L se llam a recursivo si existe u n a m áquina de Turing M tal que


L = L (M ) y para cualquier cadena w (en L o no) a partir de la situación inicial M
se para- independientem ente si se llega a un estado de aceptación. Las máquinas
de T uring de lenguajes recursivos son un buen modelo para un algoritmo que
resuelve un problema, esto es, una secuencia de pasos bien establecidos de tal
form a que siem pre term in a y produce una respuesta.
Es sabido que b s lenguajes Ubres de contexto y en particular los lenguajes
regulares son recursivos \S. p. 189|. Además, el lenguaje Loj2 es rocursivo pero
no libre de contexto (ejercicio (109) y ejemplo ¡00). P a ra dar un ejemplo d e un
lenguaje rocursivo pero no rccursivamente enum erable y m ás aún dar un ejem plo
de un lenguaje que no es recursivamente enumerable, es necesario pensar a la
m áquina de Turing como una cadena.

La m á q u in a de T u r in g c o m o una c a d e n a binaria

Sea A/ = (Q , { O .lJ .r , <f. go.LI. F ) una m áquina de Turing sobre el alfabeto bi­
nario. Se puede suponer sin pérdida de generalidad, que la m áquina se para
cuando llega a un estado de aceptación, y por tan to suponer que F consta de un
solo estado. P a ra asignarle a Al u n a cadena binaria, primero se establecen las
siguientes asignaciones para el conjunto de estados {qn - » es el único estado de
aceptación), el alfabeto de la cin ta y las direcciones:

Q = Í 9 o , <ii,-- qn 1} <-> ( 1 , 2 , 3 , . . . , n )
r= { 0l l,ü ,A flJ. . . X P} o ( l , 2 , 3 , . . . , « ) (8 .1)
{<-,-»} <-►(1,2).
110

Con la nueva notación, a la transición <5(i, j ) = (A, l. m ) se le asigna la cadena


c = 0‘10, 10fc10<10fn. Se h a de notar que la cadena c no tiene unos consecutivos,
así pues la codificación final de la m áquina de Ib rin g es la concatenación de
todas las cadenas correspondientes a las transiciones con u n a separación de dos
unos:
C illO all •11<*.

Ejemplo 71. Sea M la m áquina de Turing del ejemplo ¡7Ü[ Las transiciones con
la notación fl8J) son <5(1,3) = (2 ,3 .2 ), 6(2.2) = (2 .2 .2 ), <S(2.1) = (2,1,2),
6(2. 3) = (3 .3 .1 ), 6 (3.2) = (4 ,1 ,2 ), «5(3.1) = (4 ,2 ,2 ). La codificación de M en­
tonces es 0100010010001001100100100100100100110010100101001100100010001
00010110001001000010100110001010000100100. Por supuesto esta codificación
no es única, pues depende del orden en que fueron escritas cada una de las
transiciones.

A cada cadena binaria le corresponde por supuesto un número natural, se


puede hablar entonces de la t'-ésima m áquina de Turing, os decir, la m áquina
cuya codificación sea la cadena binaria asociada al natural i. Claro que existen
m uchas cadenas binarias que no representan a alguna m áquina de Ttoing. Por
ejemplo, a la cad en a 1000 le corresponde el nat ural 2* = 8 y no existe en principio
la m áquina A/s pues ninguna codificación válida comicn 2 a con 1. Si tc< es u n a
codificación no válida, se define la m áquina A/, como aquella que tiene solo un
estado y no tiene transiciones, en particular para estas codificaciones L ( M t ) — 0.
Sea
L o = { w t : w í $ L ( M i ) , i = 1 .2 ....} .

Teorem a 19. fZ lenguaje L d no es recursxvamente enumerable.


Prueba. Razonando por contradicción, sea A/ una m áquina de Ttoing tal que
¿D = L ( M ) . Como M es u n a m áquina sobre el alfabeto binario, entonces existe
un i ta l que A/< = A/. Sea u>, su codificación correspondiente. Si 1a € ¿ d entonces
Wi 6 L (A/). Como Af = A/,, u \ € L(Af.) por tan to ui, no puede estar en /,D y se
Dcga a una contradicción. De igual form a si wt £ ¿ n entonces u», 6 L (M t). como
M i = M entonces u \ € L (M ) = L n y se llega de nuevo a una contradicción. q¡

Sea L \j el lenguaje universal, esto es, el conjunto de cadenas binarias de la


form a x l l l y donde x es la codificación de una m áquina de Turing A/ sobre
el alfabeto binario y y es una cadena binaria en L (M ). Existe u n a m áquina de
T\m ng A/y tal que L\j = L ( M y j ) . A A/u se le llam a máquina de Turing universal.
Está lejos de ser obvio que ta l m áquina universal exista, por ejemplo, en principio
12 0 In tro d u c c ió n a U ro n ip m th ih d a d

no queda claro que pueda ten er un número finito de estados, pues el número de
estados de las máquinas de Túring que simula puede crecer indefinidamente.
Un enfoque clásico es definir primero las máquinas de Turing m uíti-cinta, en
este contexto constru ir a la m áquina de T\iring universal y luego probar que
las m áquinas de Turing m ulti-cinta son equivalentes a las m áquinas de una sola
cinta, c. /. (14, §9.2.3).

Teorem a 20. El lenguaje L\j es recursivamente enumerable perv no recursivo.

Prueba. Razonando por contradicción se supone que Lu es un lenguaje recursivo.


Por el ejercicio [IÜ71 el complemento de L\j tam bién lo es. Por tanto, existe una
m áquina de Turing A/ que acep ta al complemento de L v como lenguaje el cual
siem pre se p ara independientemente de la entrada. La idea de la demostración es
construir a p artir de A/ o tra m áquina M ' que acepte a L o como lenguaje y llegar
así a una contradicción. El bosquejo de la construcción de M ' es el siguiente:

. d a d a una cadena de entra d a w la m áquina M ' cambia e s ta cadena por la


cadena w l l l t c (ejercicio [1Q5¡.
• después la m áquina M ' sim ula a la m áquina M con esa entrada.

Entonces A/' acepta a una cadena binaria te = u>, si y solo si tc¡llite» no es


aceptado por A /u. Puesto que to d a cadena binaria te, tiene asociada una m áquina
de Turing A /,, por resultados pronos, la cadena tc¿l lltc¿ no es aceptada por A/u
si y solo si w, & Z.(A/¿) si y solo si te, 6 Lo- En otras palabras L (M ') = L o , se
llega entonces a m ía contradicción. q

P ro b le m a s d ecidíbles y un p o c o de filosofía

B i la sección f6.3.2jse h abla de que no existe algún algoritmo que arroja un «si» o
tm «no» dependiendo si una gramática dada es ambigua o no. ¿A qué se refiere
esto en térm inos formales? A continuación se explica el abuso de lenguaje. A
c ad a gram ática libre de contexto se le puede asignar una codificación en algún
alfabeto fijo E: el lenguaje asociado a nuestro problema-ejemplo es el conjunto:

L q = {tu € E* : w es u n a gram ática ambigua}.

El enunciado m atem ático preciso es: el lenguaje L g no es recursivo, pues eso


significa que no existe una m áquina de Turing que lo acepte como lenguaje y
121

FIg. 8 .3 C bntonción e n tr o tipo» d e lenguaje*.

que adem ás se pare siempre (eu el capítulo 6 uo se e sta b a en posición de d ar


tal afirmación). Se dice que un problem a es decidible si su lenguaje asociado
es recursivo, de lo contrario se dice que es mdccidiblc. Con e sta term inología
9e puede afirm ar que el problem a sobre la detección de ambigüedad en una
gram ática es indecidible.
Por otro lado, en el ejercicio [57] se pide al lector el diseño de un algoritmo
que reciba como e n tra d a una gram ática libre de contexto y regrese un «sí» o un
«no» dependiendo si el lenguaje que acepta es vacío o no. Se puede establecer
ese algoritm o de diferentes formas, tan tas como maneras tenga cada persona en
a itc n d c r el concepto vago de «conjunto ordenado y finito de operaciones que
perm ite liallar la solución de un problema», definición de algoritm o según la
últim a edición del Diccionario de la lengua española. La pregunta natural en
nuestro contexto es: ¿si existe un algoritmo que resuelve un problema, entonces
ese problema es decidible? E sta pregunta lleva inevitablemente a la tesis de
Chuvch-T\tring, la cual afirm a que si existe un algoritmo —o «método efectivo»—
que com puta algo de form a fehaciente entonces el mismo cálculo se puede hacer
con una m áquina d e Tu ring. La tesis de Churcb-Turing es u n a afirmación que
caracteriza la naturaleza de la com putación y no puede ser form alm ente probada,
pues como se ha dicho antes «un algoritmo que com puta algo de forma, efectiva»
x» es un concepto m atem ático.
122 I n tr o d u c c ió n a U r o n i p m t h i h d a d

Lista de ejercicios del capitulo 8

Ejercicio 108. Diseñe una m áquina de Turing que acepte como lenguaje al con­
ju n to Loi.

Ejercicio 104. Diseñe una m áquina de T\iring que reciba una cadena del alfabeto
binario, digamos 001100 y regrese o tra ordenada de tal form a que los ceros
aparezcan antes que los unos e. g. 000011.

Ejercicio 105. Diseñe una m áquina de Turing que d a d a una cadena binaria w la
transform e en la cad en a binaria tcl lite .

Ejercicio 106. Diseñe una m áquina de Turing que sum e dos números binarios.

Ejercicio 107. Pruebe que si £ es recursivo entonces su complemento también.

Ejercicio 108. Demuestre que el problema del paro es indccidible. Es decir,


pruebe que si L es el lenguaje de cadenas binarias de la form a x l l l y donde
x es una codificación de una m áquina de Turing que se para al recibir y. e n ­
tonces L no es recursivo.

Ejercicio 109. Pruebe que el lenguaje Lui2 es rccursivo.

Ejercicio 110. Busque en la lite ra tu ra la definición de máquina de Turing no-


determ inista y su relación con las m áquina de Turing vista cu este capítulo.
Apéndice A
Forma normal de Chomsky

R» este apéndice se expone un procedimiento seguro para construir una gram ática
en forma norm al de Chomsky G tal que L(G ) — L(G ) \ {c}, siendo G una
gram ática libre de contexto. El esquem a general es el siguiente:

1.® paso:
. eliminación de producciones vacías.
. eliminación de producciones unitarias.
• eliminación de símbolos inútiles.
2.° paso: conseguir que en todos los cuerpos de longitud (A .l)
m ayor o igual a 2 solamente aparezcan variables:
3 . " paso: descomponer los cuerpos de longitud mayor o
igual a 3 en una cascada de producciones de solo dos
varíales.

Cada paso del procedim iento flA.l} se especifica en las siguientes subsecciones.
P ara ejemplificar cad a p arte im portante se parte de la gram ática:

S - > 0 4 0 | 1D \ | B D .
A -> C , (A.2)
B -> S \ A,
C -> S \ e .

123
124 A . F orm a n o rm a l d e C h o m sk y

l.* f paso

E lim in a c ió n de p ro d u cc io n e s va cía s

D ada una gram ática G, la ta rc a en esta parte es construir una nueva gram ática
G ' sin producciones de la form a A e (llam adas producciones vacías) tal que
L ( G ') = L ( G ) \{ * } .
Sea G la gram ática QA.2|. Si se remueve ¡nocentementea a la producción
C -> £, la gram ática resultante no cumple con lo requerido, porque por ejem plo la
cadena 00 no sería aceptada, de hecho la producción C -> e influye directam ente
en la producción A -* C y finalmente en la producción S 0/10. El método
para la construcción de la nueva gram ática reconoce primero a las variables que
producen a la cadena vacía y después hace ajustes en todas las producciones con
el fin de no modificar el lenguaje aceptado, salvo la pertenencia de la cadena
vacía, por supuesto. El procedim iento se d etalla a continuación.
Lo prim ero es encontrar el subconjunto de variables sintácticas que sean sím­
bolos anulables. Se dice que una variable A es un símbolo anulable si A e. Si
G es u n a gram ática . entonces un algoritmo iterativo para encontrar todos los
símbolos anulables es el siguiente:

r . in ic ia l si A -* e es u n a producción de G, entonces
G es un símbolo anulable;
r . in d u c t iv a si B -> C\C<i • • Cfc es una producción de G (A.3)
donde c a d a C , es un símbolo anulable para
i = 1.2 k. entonces B es anulable.

Ejem plo 72. La siguiente ta b la indica el resultado de la búsqueda de símbolos


anulables de la gram ática QA.2| por medio del algoritmo

símbolos anulables número de iteración


V -------- 1
A 2
B 3
S 4

Por tanto, el conjunto de símbolos anulables de la gram ática (flOjl es {C , A, B . S },


es decir, en este caso todas las variables sintácticas son símbolos anulables.
125

So está ahora en posición de establecer el procedimiento para la construcción


de la nueva gram ática sin producciones vacías, a partir de u n a gram ática libre
de contexto G - (V, T , S. P ):

1.° Se encuentra el conjunto de símbolos anulables de G.


2.° Se construye Gf = (V .T . S, P '), donde el conjunto de
producciones P ’ se determ ina como sigue. P ara cada
producción

A - * X l X 2 - - X k, k > 1,

sea m la cantidad de símbolos X i que son símbolos


anulables. Si m ^ k, la nueva gram ática te n d rá 2m
versiones de e sta producción y si rn = k, 2m — 1 ver­
siones. C ada versión es de la form a A -► a ,, donde las
a i se establecen a p a rtir de considerar todas las posibles
combinaciones que resultan de elim inar de X \ X i • • •X k
ninguno, algunos (o posiblemente todos, en el caso
m ^ k) de los símbolos anulables.
3.° Se eliminan las producciones A -+ e.

Ejemplo 73. A continuación se construye una gram ática sin producciones vacías
a p a rtir de la gram ática QA.2), siguiendo el procedimien to (¡A.4[). El conjunto
{C . A . D. S} de símbolos anulables de la gram ática flA.2) h a sido encontrado en
d ejem plo [73} con ello se concluye el prim er paso. El siguiente paso se especifica
a» la siguiente tabla:

producción k m versiones generadas


S -> 0 A 0 3 1 S -> 0A0 | 00
S lfíl 3 1 S -» 1B1 | 11
S -> B D 2 2 S -+ B B | B | B
A -* C 1 1 A -* C
B -+ S 1 1 B -> S
B -¥ A 1 1 B -+ A
C -> S 1 1 C -> S
1 ü C -> £

P ara el últim o paso, solo se tiene que elim inar la producción C -¥ e. En resumen,
dcspuós de descartar producciones que se repiten, la gram ática resultante es:
126 A . Forrna n o rm a l do C h o m sk y

S -> O A O | 00 | \ B l | 11 | B B | B %
A -+ C , (A.5)
B -> S | A.
C -+ S .

E lim in a c ió n de p ro d u cc io n e s un itaria s

Una producción unitaria es una producción de la form a A —¥ B , donde las


variables A y B son sintácticas. El objetivo de e sta parte es d ad a una gram ática
G = (V.7\ S . P ) construir o tra gram ática G ' sin producciones unitarias tal que
L{G) = L(Cw). El esquem a general se expone a continuación.

1.° Se encuentra el conjunto de los pares unitarios (A, B )


d e G , es decir el conjunto de pares de variables sintác­
ticas (A, B ) tales que A =A B, m ediante el siguiente
algoritmo:

R . IN IC IA L (j4, A ) es un par unitario, pues siempre


se cumple que A A en cero pasos;
R. in d u c t iv a s i (A. B ) e s u n p a r u n i t a r i o y B -* C
es u n a p r o d u c c ió n u n ita r ia , e n to n c e s
(A.6)
( i 4 ,C ) e s u n p a r u n ita r io .

2.° Se construye G ' = (V, T , S , P1), donde el conjunto de


producciones P se determ ina como sigue. A c a d a par
unitario (A . B ) le corresponden las producciones del
tip o A —►q áeinpre que B -> a sea una producción
no u n ita ria do P . El conjunto de producciones P f se
conform a con la unión de todas las producciones pro­
ducidas a p artir de c a d a p a r unitario.

Ejem plo 74. En este ejem plo se construye una gram ática sin producciones uni­
tarias a p a rtir de la gram ática QA.5j. El prim er paso consiste en encontrar todos
los pares unitarios. La siguiente tabla m uestra el proceso de búsqueda a través
del algoritm o iterativo del primer punto del procedim iento QA.6¡>:
127

pares unitarios número de iteración


■ i + á n b - B J J Z W & 'S ) '
( A ,C ) ,( B ,S ) ,( B ,A ) ,( C ,S ) ,( S IB )
( A .S ) t ( B .C ) .( C ,B ) ,( S .A )
( A , B ) , ( C f A ) , ( S ,C )

El conjunto de producciones q ue le corresponde a cada par unitario, según el


segundo paso del procedim iento ( jO ) se expone en la siguiente tabla:

par unitario producciones asociadas


(A. A) ninguna
( B ,B ) ninguna
{C .C ) ninguna
( S .S ) S —* OAO | 00 | 1B1 | 11 | B B
(A C ) ninguna
(B, S ) B -+ 0 A Q | 00 | 1P1 | 11 | B B
(.B . A ) ninguna
(C ,S ) C —> 0A0 | 00 | \ B \ | 11 | B B
( S .B ) ninguna
{A ,S ) A -* 0A0 | 00 | 181 | 11 | B B
( B .C ) ninguna
(C .B ) ninguna
( S .A ) ninguna
(A .B ) ninguna
(C .A ) ninguna
(S .C ) ninguna

L a gram ática resultante es:

S -* 0 A 0 | 00 | 1J31 | 11 | BB.
B -> 0A0 | 00 | \ B\ | 11 | BB. (A.7)
C —►0/40 | 00 | 1/?1 | 11 | BB.
A 0A0 | 00 | l f í l | 11 | BB.

E lim in a c ió n de s ím b o lo s inútiles

Sea G = (V.T, P, S ) una gram ática ta l que L(G ) f 0. Se dice que mía variable
sintáctica o símbolo term inal es mi símbolo útil si existe una cadena w 6 7**
128 A . F orm a n o rm a l d e C h o m sk y

tal que S 4 a X 0 4 ti), para algunas cadenas o y ^ c n ( T u V)*. U n a variable


sintáct ica o un símbolo terminal se dice que es inútil si no es útil. A continuación
90 establece la estrategia general para eliminar de forma segura los símbolos
inútiles de la gramática dada G.

1.° Se encuentran todos los símbolos generadores de G. es


decir, aquellos símbolos X tales que X 4 w, para al­
guna cadena de símbolcs terminales w. El conjunto de
símbolos generadores se puede hallar a través del algo­
ritmo iterativo:

R. in ic ia l t o d o s ím b o lo te r m in a l e s g e n e ra d o r:
R. in d u c tiv a si A -* a es u n a p ro d u c c ió n d e G y cada
s ím b o lo d e a e s g e n e r a d o r e n to n c e s A es
u n s ím b o lo g e n e r a d o r ta m b ié n .

2.° Se construye la gramática G' = (V '.T , S, P ) elimi­


nando de V los símbolos no-gcncradorcs y también las
producciones de P que involucran a uno o más símbolos
no-gencradorcs. Se ha de notar que el símbolo S no se
elimina puesto que es claramente generador, pues se ha (A.8)
supuesto que L(G) £ 0.
3.° Se localizan todos los símbolos alcanzables de Gf, es
decir, aquellos símbolos X para los cuales existe una
derivación de la forma 5 4 otXfl, para algunas a y 0.
Se p u e d e n e n c o n t r a r lo s s í m b o l o s a l c a n a z a b l c s d e Gf a
tr a v é s d e l s ig u ie n te a lg o r itm o :

r . i n i c i a l el s ím b o lo S e s a le a n z a b le ;
R. i n d u c t i v a si A e s a le a n z a b le y A a e s tá e n P .
e n t o n c e s t o d o s lo s s í m b o l o s d e oc s o n
a lc a n z a b le s ta m b ié n

4.° Se eliminan todos los símbolos no-alcanzables de V ' y


T* y se eliminan todas las producciones de P ' que in­
volucren a uno o más símbolos no-alcanzables.

Ejem plo 75. El objetivo d d ejemplo es construir una gramática libre de contexto
sin símbolos inútiles que acepte el mismo lenguaje que la gramática (]A.7) a través
del procedimiento dA.8Q. Lo primero que se debe hacer es encontrar el conjunto
120

de símbolos generadores de QA.7), según el algoritmo establecido en el primer


punto de ({A.8 ). E sta ta re a se resume en la siguiente tabla:

símbolos generadores número de iteración


0,1 1
S ,B ,C ,A 2

Es decir, en este caso, todos los símbolos de V y T son generadores, por tan to al
aplicar el segundo paso la gram ática resultante G ' es igual que G . Lo que sigue
es encontrar el conjunto de símbolos alcanzables de G ' siguiendo el algoritm o
del tercer punto de QA.8Q:

símbolos alcanzables número de iteración


S í
O, A. 1, B 2

En o tras palabras, el único símbolo no-alcanzablo es C . Por tanto, según el


cuarto punto de flA!8fl, la gram ática buscada es:

S -♦ QAO | 00 | 1 11 1| B B .
B -> (L40 | 00 ||1 B 1 |1 11 1| B B . (A.9)
A —►0A0 | 00 | 1 * 1 | 1 11 1\ B B .

2.° paso

Se supone ahora que se parte de una gram ática sin producciones vacías, uni­
tarias y sin símbolos inútiles. P a ra cada símbolo term inal a que aparezca en un
cuerpo de longitud mayor o igual a 2 s crea una nueva variable sintáctica A
y una producción A -* a. En cada cuerpo de producción donde aparezca a, se
reemplaza por la nueva variable A. E ste simple procedimiento se ilustra en el
siguiente ejemplo.

Ejemplo 76. Se considera la gram ática ({A.9}. Al símbolo term inal 0 se le asocia
una nueva variable O y al símbolo term inal 1 la nueva variable /. L a gram ática
resultante es:
130 A . F orm a n o rm a l d e C h o m sk y

S -4 O A O I1OO |\ I B I \ I / / BB,
B -4 O A O 1IO O I I B I | BB.
A -4 O A O |1OO 1 I B I | / / BB, (A.10)
0 - 4 0,

/ - ► 1.

3 . " paso

Se parte ah o ra de una gram ática que tiene únicamente producciones de la form a


A -4 a, A -4 B C y
A —> B \B 2 • • • Bic (A. 11)
donde k > 3. P a ra cada producción tip o (jA .ll), se introducen k - 2 nuevas
variables sintácticas C |, C ? .. . . , C k-2 y se reem plaza QA.11|) por las producciones:

A -4 B \C \,
C\ -4 B^C í ,

Ck-2 -* B k -iB k -

Ejem plo 77. El objetivo de este ejemplo es aplicar el 3.or paso a la gram ática
QA.10Q. Asociada a la producción S -4 O A O se crea una nueva variable X
y se sustituye la producción por las producciones S -* O X y X -* AO . De
igual forma, asociada a la producción S -4 I B I se c re a una nueva variable Y
y se sustituye e sta producción por las producciones S TY y Y -¥ B I . Así
sucesivamente se razona con las otras producciones cuyo cuerpo tiene longitud
mayor o igual a 3. La gram ática resultate es:

5 -4 O X | OO | Í Y | I I | B B .
B - > O X \ 0 0 \ I Y \ I I \BB,
A -4 O X | OO | /V | / / | BB,
X -4 AO.
Y -4 B I ,
O - * O,
/ - 4 1.
131

H asta aquí se ha expuesto el procedimiento para transform ar una gram ática


libre de contexto en form a normal de Chomsky. Estos pasos son la esencia de la
dem ostración del siguiente teorem a, los detalles se pueden consultar en |14].

Teorem a 21. Sea G una gramática tal que L( G) contiene al menos una cadena
distinta de e. Entonces por medio del procedimiento QA.lft se puede construir
una gramática G' en form a normal de Chomsky tal que L( G' ) *=• L (G ) \ {c}.

Lista de ejercicios del apéndice

Ejercicio 111. Pruebe que u n a variable sintáctica es un símbolo anulable si y solo


si es reconocido por el algoritmo ({A.3).

Ejercicio 112. Dem uestre que el algoritmo iterativo del prim er punto del pro­
cedimiento ((A.6) encuentra efectivamente el conjunto de pares unitarios de la
gram ática dada.

Ejercicio 113. En |11, §7.1.1 y §7.1.2] se dem uestra que la gram ática resultante de
aplicar el procedim ento QA.8ft a la gram ática dada G adm ite el mismo lenguaje
que G y adem ás no tiene símbolos inútiles. Un detalle im portante es el orden de
eliminación: prim ero símbolos no-generadores y después símbolos no-alcan/ables.
S se invierte el orden de eliminación es posible que la gram ática resultante no
adm ita el mismo lenguaje que la gram ática d a d a Encuentre un ejemplo.
Lista de símbolos

£ P-
PP t ]yTUjns
h e PP . 1a r p ia r
-> P- 71r
1 P- Tí]
P- 3 ■
/-non P- \L ■
Lq P- 5C
Lqi P- R
La P- 5*
lm P- 61
L*t P- i.:
Lo P- 7!
Lo 12 P- 106
¿D P- 119
Lv P- 119

133
Referencias

1. A . V. Aho, M . S . I<am, R . S c th l y J . D . U llm a n , C om piladores: principio», técn ico » y


h erra m ien ta s, 2 .a ed ., P e a rso n y A ddison W csley, 2008.
2 . A . V . A ho y J . D . U llm an , F oundation* o f co m p u ta r science, W . H. FVecm an le C o ., New
Y ork, N Y , U S A , 1994.
3. Y . B a r Hilk l. M . P e rk » y E . S h am ir, « O n fo rm al p ro p e rtie s o f sim ple p h r a s o a tr u c tu r e
g ra m m a rs » , Z . P h o n e tik . S p rachuis». K o m m u n ik a tio n s fo rs c h , voL 14, 1961, 143 172.
4. D . C . C a n to r, « O n t h e a m b ig u ity p ro b lem o f b ack u s sy stem s» , J . A C M . vol. 9 . n ú m . 4 ,
1962, 477-479.
5. N. C hom sky, « T h re e m odeksfor th e d e s c rip tio n o f la n g u a je s» , IR E TYan». o n In fo rm a tio n
T heory, vol. 2 , n ú m . 3 , 1956, 113-124.
6 . ______ _ «O n c e r ta in fo rm al p ro p ertk w o f g ram m ars» , In fo rm a tio n a n d C ontrol, voL 2 ,
n ú m . 2 , 1959, 137-167.
7. J . C o c k e y J. T . S c h w a rtz , « P ro g ra m m in g lan g u ag cs a n d th e ir c o m p ile n » , r e p o rte té c n ic o ,
C o u ra n t In s titu to o f M a th o m a tic a l S ciences, 1970.
8. M . D . D a v is, R . Sigal y E . J . W ey u k cr, C o m p u ta b ility, c o m p lc n ty , a n d languagcs, A ca-
dem ic P rc a s. N ew Y ork, N Y , U SA, 2003.
9. J . E v cy , « A p p licatio n o f p u sh d o w n s to r e m achiites», Proc. Fall J o in t C o m p u te r C onfer-
ence, 1963, 215-227.
10. P . C . Ffecher, « O n c o m p u ta b ility by c e r ta in classes o f re stríe t e d tu rin g m achines», Proc.
P ourth A n n l S y m p o s iu m on Sw itchxng C ir c u it T h eo ry a n d Logical D esin g , 1963, 2 3 -3 2 .
11. R. W . F loyd, «O n a m b ig u ity in p h r a s e - s tn ic tu r e languages», C o m m . A C M , w l . 5 , n ú m .
10, 1962, 526-534.
12. D . S . G u n d e ra o n , H andbook o f m a th e m a tie a l m d u c tio n : theory a n d apphcation», C h a p m a n
a n d H a ll/C R C , 2010.
13. J . E . H o p c ro ft, T h eo ry o f m achine» a n d com putation», c a p . « A n n log n a lg o rith m for
m in im iz in g S tates in a finite a u to m a to n » , 189-196, A cadcm ic P ros», 1971.
14. J . E . H opcroft y J . D . lili m a n , In tro d u ctio n to a u tó m a ta theory, Umguages a n d c o m p u ta ­
tio n , 3.a ed.. A ddison-W esley, R eading. M ass., 2007.
15. D . A. H uffm an, « T h e sy n th e s is o f se q u e n tia l sw itching c irc u íts» , J. F ranklm In a L . vol.
257, n ú m . 3 , 1954, 161-190.
16. T . K asam i, «A n efficient re c o g n itio n a n d sy n ta x -a n a ly s is a lg o rith m for c o n te x t-fre c lan-
g ra je s» , r e p o rte técn ico , A ir F orcé C a m b rid g e R esearch L ab , 1965.

135
136

17. S. C . Klocno, A u tó m a ta stvdxc», c a p . « R e p re se n ta tio n o f e v en ta in ncrvc n e ta a n d fln ite


a u tó m a ta » , 3 -4 2 , P rin c e to n Univ. P re s s , 1936.
18. M . L ange y H. L e it. «T o C N F o r n o t t o C N F ? a n efficient j e t p re se n ta b le v ersión o f th e
cylc alg o rith in » . I n fo r. D idáctica, n ú m . 8 , 2009, 1-21.
19. W . S . M c C u lIo d i y W . P itts . «A logical calcu h is o f t h e Ideas in u n a n e n t in n erv io u s activ -
t y » , D u ll M a th . B iophysxcs, vol. 5, 1943, 115-133.
20. R . M c N a u g h to n y H. Y antada. « R egular o x p reatk m s a n d S tate g ra p h s for a u tó m a ta » , I E E E
Irán». E lectro n ic C o m p u te r», vol. 9 , n ú m . 1, 1960, 3 9 -4 7 .
21. G . H. M ealy, «A mrthnd for sy n th e n z in g ao q u en tlal circu ita» , Hc.ll System T eclm tcal J .}
voL 34, n ú m . 5, 1955, 1045-1079.
22. E . F . M o a ré , A u tó m a ta «Judies, c a p . « G e d a n k c n e x p e rim e n ta a n so q u e n tia l m achines»,
129 153, P rin c e to n U niv. P re ss, 1956.
23. A . G . O e ttin g e r , « A u to m a tic s y n ta c tic a n alv sis a n d th e pu sh d o w n sto re » , P roc. S ym p o sia
on A pplied M a th ., vol. 12, 1961, 104 129.
24. M . O . R ab in y D . S e o » . « F in ite a u tó m a ta a n d th e ír decisión problem a», I B M J . R esearch
and D e ve lo p m en t, vol. 3, núm . 2 , 1959, 115-125.
25. M . P. S ch u tzen b crg cr, « O n c o n te x t-fre e language* a n d pu sh d o w n a u tó m a ta » , In fo rm a tio n
and C ontrol, vol. 6 , n ú m . 3 , 1963, 246-264.
26. M . S ip ser, tn tro d u c h o n to the theory o f c o m p u ta tio n , 3 .• od., C oum e T e c h ., 2012.
27. A. M . 'R trin g , « O n c o m p u ta b lc n u m b e rs w ith a n a p p lic a tio n t o th e cn tach cid u n g sp ro b lem » ,
Proc. L ondon M a th . S o ciety, voL 2, n ú n t. 42, 1936, 230 265.
28. II. Y o-Sub y W . D erick, « O b tain in g s h o r te r reg u lar ex p ressio n s firom fin ite -s ta te a u ­
tó m a ta » , T heor. C o m p u t. S c i., vol. 370, n ú m . 1, 2007, 110-120.
29. D . H. Y o u n g er, « R eco g n itio n a n d p arsin g o f c o n te x t-fre e lan g u ag es in tim e n 3», In fo r m a ­
tion a n d C o n tro l, vol. 10, n ú m . 2, 1967, 189-208.
Glosario de términos

á r b o l d e d e r i v a c i ó n , BT] r e s p e c to a g ,f f 3 |
a l t u r a , (8% c o n c a te n a c ió n
r a f a , |B21 de cadenas, 0
r e n d im ie n to , F 3 d e le n g u a je s , 0
c o n d i c i ó n d e p a r o , ll l f i l
a lfa b e to , 0
b i n a r i o , ¡3] d e riv a c ió n , t a
d e c i n t a , |1 14) m A s -a -L v i z q u i e r d a , W
d e p i l a , ¡58) d e s c r i p c i ó n i n s t a n t á n e a . g g ) [115)
d e s í m b o l o s d e e n t r a d a , [TOJ © HUI d ia g r a m a d e tra n s ic ió n , 5 3 ® ÜÍ9
a lg o ritm o
CYK.fnq e s t a d o , 2 3 1®) © 0 2
p o r l l e n a d o d e t a b l a , ¡18) d e a c e p t a c i ó n , 2 3 ¡K J ©
a u tó m a ta d i s t i n g u i b l e , (TBj
a p i l a , ¡58) e q u i v a l e n t e . fTB¡
d e t e r m i n i s t a , fT2j in a c c e s i b l e , P 3 ]
e q u i v a l e n t e , [17] in i c i a l . 2 3 ¡ 5 0 ^ 3
fin ito d e te r m in a d a , 0 e x p r e s i ó n r e g u l a r , RB)
f i n i t o n o - d e t e r m i n i s t a , ¡58) e q u iv a le n te ,
c o n t r a n s i c i o n e s e , ¡55]
m í n i m o , ¡H ] función d e tra n sic ió n , 2 3 í®) Í®1
e x te n d id a , 2 3 © (55)
B a d c u s - N a u r , f o r m a . 178]
g ra m á tic a
cadena, 0 d e p e n d ie n te d o c o n te x to ,
lo n g itu d , 0 li b r e d e c o n t e x t o , (T5)
v a c ía , 0 s i n r e s t r i c c i o n e s , [51]
C h o m s k y , f o r m a n o r m a l , [lQ 3| a m b ig u a , [S J
c la u s u ra r e g u l a r , ¡51)
d e u n a lfa b e to , gj
d e u n le n g u a je , 0 h ip ó te s is d e in d u c c ió n , 0

137
138

toxico. 0 c u e r p o , |75|
to m a d e b om beo, p3¡ u n i t a r i a . |Í 2 5 |
p a r a le n g u a je s Ubres d e c o n te x to , |1 0 t| v a c ia , [171]
len g u aje. g
d e p e n d ie n te d e c o n te x to , |1(J71 s ím b o lo . 0
libre d e c o n te x to , 5 3 a l c u n / a b l c , [1 2 $
d e u n a u tó m a ta finito d e te rm in is ta , [13) a n u l a b l e , |l 2 4 |
d e u n a u tó m a ta finito no d e te r m in is ta , ¡29¡ de e n tra d a , Q 3 © © l1 ^
con tra n sic io n e s r .p g j g e n e r a d o r , [1 2 $
n h c r c n te m e n te am b ig u o , (5Sj i n ú t i l , fI77)
recu rsiv am en te e n u m e ra b le , [81} [11$ in i c i a l , 5 3
re g u la r, 0 in i c ia l d e c i n t a , (1141
u niversal, [119| in i c ia l d e p ú la , [5 $
t e r m i n a l , [75)
m á q u i n a d e T W in g , [114j s u b c a d e n a , [3}
u n i v e r s a l , [1191
t a b l a d e t r a n s i c i ó n , [T 3
p r in c ip io d e in d u c c ió n m a te m á tic a , [5] t e o r e m a d e M y H i l l - N r r o d e , [58
p r o d u c c i ó n , [75)
b a s e ,0 v a ria b le s in tá c tic a - 5 3

Potrebbero piacerti anche