You are on page 1of 310

) ) ) ) ) )

N o .D E U B R 0 ^ 7 ;3 - t . ie L _ L Z No. DEETIG. M ^ 4 -T ^

Teora de autmatas ) lenguajes formales


Dean Kelley
Departamento de Matemticas y Ciencias de la Computacin Gustavus Adolphus College

T raduccin:
Ma Luisa Diez Platas Facultad de Informtica Universidad Pontificia de Salamanca en Madrid

Revisin tcnica:
Luis Joyanes Aguilar Facultad de Informtica Universidad Pontificia de Salamanca en Madrid

PRENTICE

HALL

M adrid Mxico Santaf de Bogot Buenos Aires Caracas Lima Moi San Juan San Jos Santiago Sao Paulo W hite Plains

www.FreeLibros.com

CONSULTORES EDITORIALES:
SEBASTIN DORMIDO BENCOMO Departamento de Informtica y Automtica UNIVERSIDAD NACIONAL DE EDUCACIN A DISTANCIA LUIS JOYANES AGUILAR Departamento de Lenguajes, Sistemas Informticos e Ingeniera de Software UNIVERSIDAD PONTIFICIA DE SALAMANCA en Madrid

www.FreeLibros.com

DEAN KELLEY Teora de autmatas y lenguajes formales


No est permitida la reproduccin total o parcial de esta obra ni su tratamiento o transmisin por cualquier medio o mtodo, sin autorizacin escrita de la Editorial. DERECHOS RESERVADOS 1995 respecto a la primera edicin en espaol por PEARSON EDUCACIN, S. A. C / N ez de Balboa, 120 28006 M adrid

ISBN 0-13-518705-2

Depsito Legal: M-21607-2001 ltima reimpresin, 2001


Traducido de: AUTOMATA AND FORMAL LANGUAGES: AN 1NTRODUCTION PRENTICE HALL 1995 ISBN: 0-13-497777-7

Editor de la edicin en espaol: Juan Stumpf Diseo de cubierta: DIGRAF Composicin: AULA DOCUMENTAL DE INVESTIGACIN Impreso por ENCO Artes Grficas, S.L. , IMPRESO EN ESPAA - PRINTED IN SPAIN Este libro est impreso con papel y tintas ecolgicos

www.FreeLibros.com

A m is P adres . y a l to F u d d

www.FreeLibros.com

Contenido

Prlogo .................................................................................... ............. 0. Preliminares m atem ticos........................................................... 0.1 Lgica elem ental................................................................................... 0.2 Definiciones b sicas...................................................... :.................... 0.3 Operaciones con conjuntos.................................................................. 0.4 Relaciones y funciones........................................................................ 0.5 Induccin................................................................................................ 0.6 Cardinalidad........................................................................................... 1. Alfabetos y lenguajes.................................................................... 1.1 Alfabetos, palabras y lenguajes.......................................................... 1.2 Operaciones con cadenas..................................................................... 1.3 Operaciones con lenguajes.................................................................. Problemas ....................................................................................................... 2. Lenguajes regulares...................................................................... 2.1 Lenguajes sobre alfabetos.................................................................... 2.2 Lenguajes regulares y expresiones regulares.................................... 2.3 Autmata finito determinista.............................................................. /

xi 1 1 6 8 12 19 22 29 29 32 34 41 45
45 48 53

www.FreeLibros.com

VIII

TEORIA DE AUTMATAS Y LENGUAJES FORMALES

2.4 2.5 2.6 2.7 2.8 2.9 2.10

AFD y lenguajes................................................................................... Autmata finito no determinista......................................................... Equivalencia de AFN y AFD............................................................... 8-transiciones......................................................................................... Autmatas finitos y expresiones regulares........................................ Propiedades de los lenguajes regulares .......................................... . Aplicaciones de las expresiones regulares y los autmatas fin ito s..................................................................................................... Problemas .......................................................................................................

59 61 66 70 75 84 90 93

3.

L e n g u a je s in d e p e n d ie n te s d el c o n te x to ........................................ 105 3.1 Gramticas regulares.......................................................................... 105 3.2 Gramticas regulares y lenguajes regulares.................................... 110 3.3 Gramticas independientes del contexto.......................................... 114 3.4 rboles de derivacin o de anlisis y am bigedad........................ 117 3.5 Simplificacin de gramticas independientes del contexto.......... 122 3.6 Propiedades de los lenguajes independientes del contexto........... 136 3.7 Autmata de p ila.................................................................................. 144 3.8 Autmatas de pila y lenguajes independientes del contexto......... 151 3.9 Forma normal de G reibach................................................................. 162 Problemas ....................................................................................................... 168

4.

M q u in a s d e T u r in g ................................................................................. 171 4.1 Definiciones bsicas........................................................................... 171 4.2 Mquinas de Turing como aceptadoras de lenguajes..................... 178 4.3 Construccin de mquinas de T uring............................................... 184 4.4 Modificaciones de las mquinas de Turing...................................... 194 4.5 Mquinas de Turing universales........................................................ 205 Problemas ........................................................................."....:...................... 207

5.

M q u in a s d e T u rin g y l e n g u a j e s ........................................................ $ 5.1 Lenguajes aceptados por mquinas de T u rin g ................................ 5.2 Lenguajes regulares, independientes del contexto, recursivos y recursivamente enumerables............................................................ 5.3 Lenguajes recursivos y recursivamente enum erables.................... 5.4 Gramticas no restringidas y lenguajes recursivamente enum erables.......................................................................................... 5.5 Lenguajes sensibles al contexto y la jerarqua de Chom sky.......... Problemas .......................................................................................................

209 209 210 215 221 228 235

www.FreeLibros.com

CONTENIDO

IX

6. Resolubilidad.................................................................................. 6.1 El problema de parada........................................................................ 6.2 El problema de correspondencia de Post.......................................... 6.3 Irresolubilidad y lenguajes independientes del contexto............... Problemas ....................................................................................................... 7. Introduccin a la complejidad com putacio nal......................... 7.1 Complejidad espacial.......................................................................... 7.2 Complejidad tem poral........................................................................ 7.3 Introduccin a la teora de la com plejidad....................................... Problemas ....................................................................................................... Referencias y bibliografa ndice a n a ltic o .................

241 241 245 258 263 265


265 272 281 288

291

293

www.FreeLibros.com

Prlogo

Este libro es el resultado de las anotaciones tomadas en el curso de introduccin a la teora de la computacin, impartido en la universidad Gustavus Adolfus. Di cho curso abarca los temas de lenguajes formales y autmatas, mquinas de Tu ring y computabilidad a travs de la resolubilidad. El curso va dirigido a estu diantes de segundo ao de Ciencias de la Computacin y hasta ahora este curso tena como principal prerrequisito el haber seguido con anterioridad un curso so bre lectura y tratamiento de las demostraciones matemticas. El libro est dirigido a estudiantes con los conocimientos matemticos mni mos. El Captulo 0 trata d los preliminares matemticos necesarios para poder abordar la lectura del libro n su totalidad. El nivel de conocimientos matemticos en los captulos siguientes es ini cialmente bajo, pero se eleva a medida que los temas lo requieren y la capacidad del estudiante se incrementa. Tratar de evitar las demostraciones matemticas rigurosas en la medida de lo posible, en especial en los primeros captulos. Por tanto, se evitar dar muchos detalles de las demostraciones que sean tediosas. Por otro lado, tratar de presentar teoremas y definiciones de la forma ms preci sa posible. La mayora de mis razonamientos tienen la intencin de motivar mas que la de ser matemticamente completos o elegantes. Creo, adems, que los ejercicios contribuyen, en gran medida, al buen aprendizaje del proceso. Al final de cada seccin, los ejercicios planteados pre tenden ilustrar, revisar y ampliar los conceptos vistos en las mismas. Hay ejerc-

www.FreeLibros.com

XII

TEORIA DE AUTMATAS Y LENGUAJES FORMALES

cios desde bastante fciles a muy difciles. La mayora de los ejercicios ms f ciles pretenden reforzar las ideas vistas en la seccin, mientras que los ms dif ciles ilustran y amplan dichas ideas. Los Captulos del 1 al 7 terminan con unas colecciones de problemas. Di chos problemas pretenden animar al lector a investigar sobre los temas tratados. Generalmente (aunque no siempre), el material tratado en las colecciones de problemas representan lo que yo considero necesario para estar interesado en re alizar incursiones a travs de la lnea de desarrollo principal del texto. El texto consta de ocho captulos. A continuacin se realiza una breve des cripcin de cada uno de ellos. El Captulo 0 cubre los preliminares matemticos y lgicos. Consiste en una rpida revisin de la lgica y la teora de conjuntos, siendo un captulo bastante completo. Adems, en este captulo se repasan todos los conocimientos matem ticos necesarios para entender el resto del texto. En el Captulo 1 se presentan las definiciones bsicas y la notacin usada para alfabetos, cadenas y lenguajes. Se definen y estudian las operaciones ele mentales sobre cadenas y lenguajes. El Captulo 2 trata de los lenguajes y las expresiones regulares. Se definen los autmatas finitos y se establece la relacin de los mismos con los lenguajes regulares. Se introduce el no determinismo. Adems, se estudian las propiedades fundamentales de los lenguajes regulares (lema del bombeo, algoritmos de deci sin, etc.). El Captulo 3 introduce los conceptos sobre gramticas desarrollando, ade ms, las propiedades de las gramticas independientes del contexto y los aut matas de pila. Se presentan varias simplificaciones y formas normales de gram ticas. El Captulo 4 es el primero de los cuatro captulos cuyo tema central son las mquinas de Turing. Este captulo contiene definiciones bsicas, las distintas versiones de mquinas de Turing e introduce la idea de funciones Turing-computables y lenguajes reconocidos por las mquinas de Turing. El Captulo 5 estudia las relaciones entre las mquinas de Turing y los len guajes formales. Adems, establece la jerarqua de Chomsky. En el Captulo 6 se habla de la resolubilidad. Comienza con el problema de parada de las mquinas de Turing, despus trata el problema de la irresolubilidad del problema de la correspondencia de Post y presenta algunos problemas irresolubles para los lenguajes y gramticas independientes del contexto. El ca ptulo termina con el estudio de las funciones computables totales. El Captulo 7 es una introduccin a la complejidad computacional del reco nocimiento del lenguaje. Se estudia en funcin de los recursos de espacio y tiempo (de la mquinas de Turing).

www.FreeLibros.com

PRLOGO

XIII

Aunque la mayora del material presentado se corresponde con el contenido usual de un curso de introduccin a la teora, la novedad de este texto quizs ra dique en el nivel con el cual se enfoca. He tratado de transmitir todos estos con ceptos a estudiantes que no sean avezados matemticos, de forma que puedan comprenderlos al mismo tiempo que desarrollan su capacidad matemtica. Entiendo que ste es el material suficiente para cubrir un curso de un semes tre de cuatro das a la semana. Generalmente trato los Captulos del 1 al 5 en su totalidad, con la rapidez con que los estudiantes son capaces de asimilarlos. Este material es el corazn de cualquier curso de teora de lenguajes formales y no me importa tomarme el tiempo necesario para que los estudiantes puedan dige rirlo. Dependiendo de la audiencia, imparto algunas clases del Captulo 0 o sim plemente asigno trabajos a cerca del mismo. La mayora del material presente en el Captulo 0, proviene de un curso corto (2 crditos) de demostraciones mate mticas que una vez se imparti en la universidad. Siempre trato de desarrollar el Captulo 6 en su totalidad, aunque depende del tiempo que quede del semes tre. Al principio me sorprendi que, cuando el tiempo apremia, la resolubilidad puede ser presentada bastante bien por medio de conferencias cortas. Me gustara agradecer a mi amigo Ding-Zhu Du de la Universidad de Min nesota, Minneapolis, por sugerirme el Problema 1.7, el cual trata de la desigual dad de McMillan. El desarrollo anterior al Lema 2.8.3, usado en el lema de Ar den, fue sugerido por una de las primeras personas que revisaron este libro. Me gustara agradecerle, a l o a ella, por llamar mi atencin sobre el mismo (debido a Brzozowski). Me gustara tambin expresar mi aprecio a mis amigos T. J. Morrison y D. J. Malmanger por su estmulo y apoyo moral a lo largo de este pro yecto aparentemente infinito. Finalmente, me gustara dar las gracias a las si guientes personas por sus comentarios cuando revisaron el manuscrito: Moon Jung Chung (Michigan State University), Ronald K. Friesen (Texas A&M University), Micha Hofri (University of Houston), Robert Kline (West Chester Uni versity) y S. A. Kovatch (General Electric). Dean Kelley

www.FreeLibros.com

Teora de autmatas lenguajes formales

www.FreeLibros.com

o Preliminares matemticos

0.1

LGICA ELEMENTAL
Para el estudio de la teora de la computacin se necesitan tres herramientas ma temticas bsicas. Una de ellas es la notacin terica establecida, otra el dominio de los conceptos de funciones y relaciones, y la tercera son unos buenos conoci mientos de induccin matemtica. La capacidad para usar la notacin terica establecida depende, fundamentalmente, del conocimiento de las definiciones bsicas de smbolos y sus significados. Conocer las otras dos herramientas de pende de la capacidad para entender razonamientos lgicos. Por tanto, comenza remos con una presentacin -de las ideas fundamentales de la lgica para pasar a establecer los mecanismos matemticos requeridos. En lgica, una proposicin o sentencia es una frase de la cual se puede de terminar si es verdadera o falsa. Las frases 2 + 1 es 5, 3 > V8~ y 17 es un nmero primo son proposiciones, mientras que ven a nuestra fiesta, qu hora es? y esta proposicin es falsa no lo son. Si P y Q son proposiciones, se dice que P es equivalente a Q si para todos los casos tienen el mismo valor de verdad. Por eso las frases 3 < 5 y c es irracional son equivalentes, como lo son las frases V fe es un entero y 4 < 3, puesto que sus valores de verdad son los mismos. Si P es una proposicin, su negacin se denota por i P. Si P es verdadera, -i P es falsa, y si P es falsa, -> P es verdadera. < P se lee no P. Por ejemplo, si P es la proposicin 3 < 5, > P es 3 > 5. Dado que el valor de verdad d e >P

www.FreeLibros.com

TEORA DE AUTMATAS Y LENGUAJES FORMALES

depende del valor de verdad de P, podemos usar una tabla, llamada tabla de ver dad, para indicar la dependencia: p V F -i P F V

La tabla de verdad presenta los valores de verdad de i P correspondientes a los valores de verdad de P. La conjuncin de las proposiciones P y Q se denota por P a Q y se lee P y <2 La proposicin compuesta P a Q es verdadera slo cuando P y Q sean verdaderas simultneamente. Por eso podemos obtener la tabla de verdad si guiente: P V V F F Q V F V F P
a

V F F F

Es importante hacer notar que para una proposicin compuesta la tabla de verdad debe considerar todas las posibles combinaciones de los valores de ver dad correspondientes a los componentes de la misma. Considrense las conjunciones siguientes 1. 3 < V ! 7 y 25 = 52. 2. 3. 4. 3 < V77 y 26 = 52. 3 > V7 y 25 = 52. 3 > VT7y 26 = 52.

De estas cuatro proposiciones compuestas, slo la primera es verdadera. En todas las dems, al menos uno de los componentes es falso, lo que hace que la conjuncin sea falsa. La disyuncin de las proposiciones P y Q se denota por P v Q. Es verdadera cuando al menos una de las dos es verdadera. Otra forma de decir esto es que P v Q e s falsa solamente cuando P y Q son falsas a la vez. P v Q s e lee P o Q.

www.FreeLibros.com

PRELIMINARES MATEMTICOS

La proposicin P > Q se llama proposicin condicional y tiene la siguiente tabla de verdad p V V F F Q V F V F P-^Q V F V V

La condicional se lee si P entonces Q. Para entender los valores de verdad de P >Q, considrese la proposicin Si el sol brilla, entonces Carlos juega al bisbol. Para determinar cuando es verdadera esta proposicin, nos pregunta mos si la persona que la ha hecho est diciendo la verdad. Tenemos cuatro casos que corresponden a las cuatro lneas de la tabla de verdad precedente. En el primer caso (el sol brilla y Carlos juega al bisbol), se ha dicho la ver dad. En el segundo caso (el sol brilla y Carlos no juega al bisbol), no se ha di cho la verdad. En los dos ltimos casos (el sol no brilla y Carlos juega al bis bol; el sol no brilla y Carlos no juega al bisbol), no deberamos decir que la persona que hizo la proposicin es un mentiroso puesto que el sol no brilla y l, o ella, slo dijeron lo que ocurrira si el sol brillara. En la condicional P > Q, la proposicin P se llama hiptesis, condicin o antecedente , mientras que Q se llama conclusin o consecuente. La recproca de la condicional P >Q es la proposicin Q P. La contrapuesta de P >Q es ( ' Q) > ( ' P). Advierta que P Q y su contraposicin son equivalentes puesto que tienen los mismos valores de verdad para todos los casos, como muestra la siguiente tabla de verdad: p V V F F P ^Q V F V V ~ 'Q F V F V -I p F F V V V F V V

Q V F V F

Consideremos la proposicin P >Q a Q P. Es fcil ver que la proposi cin es. verdadera slo cuando P y Q tienen los mismos valores de verdad. Esta

www.FreeLibros.com

TEORA DE AUTMATAS Y LENGUAJES FORMALES

proposicin en forma abreviada es P Q, la cual se lee P si y slo si Q". Se llama proposicin bicondicional. Las proposiciones (P a Q) y ( - 1 P) v ( - 1 Q) son equivalentes (sta es una de las leyes de De Morgan; vase Ejercicio 0.1.2). Considrese la proposicin - .( / A f i) < - > ( - .P ) v ( - . Q) A causa de la equivalencia de proposiciones, obtenemos que ambos lados de la bicondicional tienen el mismo valor de verdad en todos los casos. Por tanto la bicondicional es verdad en todos los casos. Esto sugiere el siguiente teorema: T eorem a 0.1.1. Sea P y Q proposiciones para las cuales P o Q es siempre verdadera. Entonces P y Q son equivalentes. Por otro lado, si P y Q son equivalentes, en tonces la bicondicional P <-> Q es siempre verdadera. Un proposicin es una tautologa si es siempre verdadera. Fjese que si P y Q son equivalentes entonces, segn el teorema previo, P Q t s una tautologa. Por tanto, la equivalencia puede ser definida como: P y Q son equivalentes si P Q es una tautologa. Cuando la proposicin condicional P > Q es una tautologa, se escribe P => Q. De forma similar podemos escribir P < = > Q si la bicondicional P Q es una tautologa. Fjese, que substancialmente, esto no significa ms que la condi cional (o bicondicional) es una proposicin verdadera. La verdad de P >Q depende de los valores de verdad de P y Q. Por otro lado, {A a B) ( i A) v ( - 1 B) es una proposicin verdadera sea cuales sean los valores de verdad de sus componentes A y B. Esto puede ser representado por -i (A a ) = > ( - . A) v(-< B). Una contradiccin es una proposicin que siempre es falsa. Por tanto, la ne gacin de una tautologa es una contradiccin. Una frase abierta o funcin proposicional es una proposicin que contiene una variable. Por ejemplo, la frase x 2 + 2x+ 16 = 0 contiene la variable x, al igual que la frase jc fue el primer presidente de los Estados Unidos . La colec cin de objetos que pueden ser sustituidos por una variable en una frase abierta se llama conjunto de significados de esa variable. Llamaremos conjunto de ver dad de la frase abierta, al conjunto de objetos pertenecientes al conjunto de sig nificados para los cuales la frase abierta se convierte en una proposicin verda dera al sustituir la variable por ellos. Si se considera que el conjunto de signifi cados para la frase abierta x 2 + 2x + 16 = 0 es el de los nmeros reales, entonces el conjunto de verdad es vaco. Si el conjunto de significados incluye adems . 1 i VTT entonces el conjunto de verdad tiene algn elemento.

www.FreeLibros.com

PRELIMINARES MATEMTICOS

Si P es una frase abierta que contiene la variable x, se escribe P (x). Gene ralmente, cuando se muestra una frase abierta, el conjunto de significados para la(s) variable(s) que contiene es explcitamente declarado o se deduce fcilmen te del contexto. Ciertos operadores indican la forma de seleccionar elementos del conjunto de significados. Esos operadores son los cuantificadores universal y existencial. Una frase de la forma para todo x del conjunto de significados P (x) es ver dadera se dice que es una frase universalmente cuantificada. Esto indica que el conjunto de verdad de P (x) esta compuesto por todos los objetos pertenecientes al conjunto de significados de x. Esto, en forma abreviada, se escribe Vx P (x), lo cual se lee para todo x, P (x) . Fjese que Vx P (x) ya no es una frase abierta, puesto que su verdad o falsedad puede ser determinada. Por ejemplo, si P (x) es la frase abierta x + 1 > x y el conjunto de significados es la coleccin de todos los nmeros reales, entonces Vx P (x) es una proposicin verdadera. Una frase de la forma existe un x en el conjunto de significados para el cual P (x) es verdadera se dice que est cuantificada existencialmente. Esto in dica que algn elemento del conjunto de significados es un valor que, al sustituir a x, hace que P (x) sea verdadera. Lo cual quiere decir que algn elemento del conjunto de significados est tambin en el conjunto de verdad de P (x). Esto en forma abreviada, se escribe 3 x P (x) y se lee existe un x tal que P (x), o para algn x, P (x). Tenga en cuenta que 3 x P (x) ya no es una frase abierta. Teorem a 0.1.2. >(Vx P (x)) es equivalente a 3 x -> P (x).

Demostracin. Supongamos que - i V x P (x) es verdadera. Entonces Vx P (x) es falsa, y por tanto, el conjunto de verdad de P (x) no es todo el conjunto de significados de x. Entonces, el conjunto de verdad de <P (x) contiene algn elemento. Por tanto la proposicin 3 x P (x) es verdadera. Ahora supongamos que >Vx P (x) es falsa. Entonces Vx P (x) es verdadera, as que el conjunto de verdad de P (x) es todo el conjunto de significados de x. Por lo tanto, el conjunto de verdad de -i P (x) es vaco, lo que implica que 3x i P (x) es falsa. Con esto hemos demostrado que las dos proposiciones tienen exactamente los mismos valores de verdad y, por tanto, son equivalentes. Si P (x) es una frase abierta, entonces un contraejemplo para Vx P (x) es un elemento, t, del conjunto de significados de forma que P (t ) sea falsa. Se puede demostrar una proposicin de la forma Si para cada x P (x), entonces Q (x) probando que Vx (P (x) Q (x)) es verdadera. Esto puede ser refutado si se proporciona un contraejemplo. Por ejemplo, la proposicin si n es primo enton-

www.FreeLibros.com

TEORA DE AUTMATAS Y LENGUAJES FORMALES

ces 2 - 1 es primo podra ser refutada si se encuentra un contraejemplo tal como = 1 1 .

Ejercicios de la Seccin 0.1


0.1.1. Obtener la tabla de verdad para P v Q . 0.1.2. Probar que -i (P a Q) es equivalente a ( >P) v (-> Q). Probar que > (P v Q) es equivalente a ( >P) a ( i Q). Estas dos equivalencias se conocen como las leyes de De Morgan. 0.1.3. Probar que P a (Q v R) es equivalente a (P a Q) v (P a R) y que P v (Q a R) es equivalente a (P v 0 a (P v P). 0.1.4. Probar que P y >( P) son equivalentes. 0.1.5. Simplificar ' (( P)
v

( i0 ).

0.1.6. Simplificar -> ((-> Q) a ( > P)). 0.1.7. Son equivalentes P > Q y Q >P? 0.1.8. Cules de las siguientes proposiciones son tautologas? (a) P o - . ( - . P ) , (b) 1 (P v 0 <- 1P a 1 Q. (c) P v
1 P. 1 P)

(e) P a i P. (f) (Pa - P ) ^ Q .

(g) ( P < - > 0 - * ( P - 0 . a ((2 v -< 0 . (h) ( P 0 -1 P v g.

(d) (P v

0.1.9. Probar que las siguientes proposiciones son contradicciones: (a) (P - ) 0


a

(Pa

0.

(b) ((P v 0 a -i P) a ( >0 . (c) (P a 0 A ( i P). 0.1.10. Mostrar que >3 x P (x) es equivalente a Vx -> P (x).

DEFINICIONES BSICAS
Ahora veremos las nociones bsicas sobre teora de conjuntos. Un conjunto es una coleccin de objetos llamados elementos del conjunto. Si A es un conjunto y a es un elemento de A, se usa la notacin a e A (se lee a es un elemento de A ). Se usa la notacin b < A cuando es necesario indicar que b no es un elemento de A. Si sabemos que A contiene exactamente los elementos a\, < 22, a, lo indi camos escribiendo A = {0 1 , < 22 , . . . , an}. Por ejemplo, el conjunto de los nmeros naturales menores que 6 puede ser escrito A = {0, 1, 2, 3,4, 5}. Esta notacin

www.FreeLibros.com

PRELIMINARES MATEMTICOS

puede ser extendida a los conjuntos para los cuales no es posible listar todos sus elementos, tales como N = {0, 1, 2, ...} o N + = {1,2, 3, . . . }. Un conjunto slo se caracteriza por sus elementos y no por el orden en el cual se listan. Por eso {1, 2, 3} y {2, 1,3} denotan el mismo conjunto. Los conjuntos A y B son iguales si contienen exactamente los mismos ele mentos. Por tanto, si A = {1, 2, 3} y B = {2, 1, 3}, se puede escribir que A = B. Fjese que {a} y a no son lo mismo. Tenemos que a e A, pero a & {a}. Tambin el conjunto { {a, b ) } tiene un nico elemento que es el conjunto {a, b). Por otro lado, [ a , b } tiene dos elementos, a y b. Por consiguiente, {{a, b}} {a, b}. Si A y B son conjuntos y todos los elementos de A son tambin elementos de B, se escribe A c B y se dice que A es un subconjunto de B. Por ejemplo, si A = {1, 2, 3} y B = {0, 1, 2, 3 ,4 , 5}, se tiene A c 8 . Por otro lado, B no es un subconjunto de A, porque los elementos 0 ,4 y 5 de B no lo son de A. Obsrvese que s i A Q B y B ^ A simultneamente, entonces todos los ele mentos de A estn en B y todos los elementos de B estn en A. Por lo tanto, si A c B y B c A, tenemos que A = B. T eorem a 0.2.1. S i A c B y B c C , entonces A c C .

Demostracin. Sea x e A. Entonces, si A c B se obtiene que x e /?. Adems, puesto que B c C y x e B, tenemos que x e C. Por tanto, dado que x era un elemento arbitrario de A, resulta que A c C . Para completar las definiciones, es conveniente considerar un conjunto es pecial 0, llamado conjunto vaco o nulo , el cual no tiene elementos. El conjunto vaco es un subconjunto de todos los conjuntos; por lo cual se puede escribir 0 c A , para todo conjunto A. Algunas veces es conveniente describir el contenido de un conjunto en tr minos de una propiedad que sea caracterstica de todos los elementos del con junto. Sea P (x) una proposicin sobre x. La notacin {x| P (x)}, que se int erpre ta como el conjunto de todos los x tales que P (x), denota el conjunto de todos los x para los cuales P (x) es una proposicin verdadera. Por ejemplo, Z + = { x | x e N y x > 0 } describe el conjunto de los enteros positivos. A = {x|x e N y x < 5} es el conjunto {(), 1, 2, 3,4}. Supongamos que A es un conjunto. Definimos conjunto potencia de A como 2a = {S| B c A . Por ejemplo, sea A - {a, b,c}. Entonces 2A es el conjunto {0, {a}, {b}, {c}, {a,b}, {a,c}, {b , c }, {a, b, c}} Obsrvese que 0 e 2a y A e 2a Supongamos que / es un conjunto. Si para todo a e l tenemos que Aa es un conjunto, entonces {Aa | a e /} se llama fam ilia indexada de conjuntos. Por

www.FreeLibros.com

TEORA DE AUTMATAS Y LENGUAJES FORMALES

ejemplo, si para todo n > 0, A n = [-1 /n , l/n], entonces {An\n e Z +} es la fami lia de los intervalos cerrados desde - l / n a l / n para n = 1 , 2, 3 ...

0.3

OPERACIONES CON CONJUNTOS


En aritmtica se puede sumar, restar o multiplicar dos nmeros. En la teora de conjuntos existen tres operaciones que son anlogas a las anteriores. La unin de conjuntos A y B se denota por A u B y es un conjunto formado por los elemen tos que aparecen en A, en B o en ambos. Por tanto A kj B = {x | x e A o x e B}. La interseccin de A y B es el conjunto A n B = { x\ x e A y x e B } . Obsr vese que si x g A n B entonces se puede decir que x aparece simultneamente en A y B. Por ejemplo, si A = {0, 1, 2, 3, 4, 5} y B - {2, 3, 5, 9} entonces A u B = {0, 1 , 2 , 3 , 4 , 5,9} y A n f i = { 2 , 3 , 5 } . Obsrvese que Z + u {0} = N , mientras que N n Z + = Z +. Se dice que los conjuntos A y B son disjuntos si A n i 5 = 0.

T eorem a 0.3.1. 1. 2. 3. 4. 5. 6.

Dados los conjuntos A y B, se tiene lo siguiente: 0uA=A. 0 n A = 0. Si A c S , entonces A o B = A. Si A c B, entonces A u B = B. AnA=A=AuA. (a) A
u

B =B

kj A.

(b) A n B = B n A . 7. (a) A u ( f i u C ) = ( A u S ) u C . (b) A n ( B n C ) = ( A n B ) n C . 8. (a) A n ( f i u C ) = ( A n B ) u ( A n C). (b) A u ( B n C ) = ( A u B ) n ( A u C ) . Demostracin. Dejaremos la demostracin de la mayora de las propiedades para que sea realizada por el lector.

www.FreeLibros.com

PRELIMINARES MATEMTICOS

7.

(a) Un elemento x satisface A u ( 5 u Q x e A o x e ( B u C) x e A o ( x e B o x e C) ( j t e A o x e B) o x e C O x g (AuB) o xe C <=> x e ( A u 5) u C Por tanto tenemos que A u ( B u Q c ( A u B ) u C y tambin ( A u f i ) u C c A u ( B u C ) con lo que ambos conjuntos son igua les.

8.

(b) Un elemento x satisface x e A u ( # n C ) < = > x G A o x e (B n C ) <=> x g A o ( x e B y x e C ) <>(xe A o x e B) y ( x e A o x e Q <= > x g (A u B) y x e ( A u Q <=>x g ( A u B ) n ( A u Q con lo que tenemos que cada uno de estos conjuntos A u (B n Q y (A u B) n (A u Q es un subconjunto del otro. Por tanto los dos conjuntos son iguales.

Si A y B son dos conjuntos cualesquiera, el complemento de B con respecto a A (tambin llamado complemento relativo ) es el conjunto A - B = {x\ x e A y x g B } Por lo tanto, A - B esta compuesto por todos los elementos de A que no es tn tambin en B. Por ejemplo, si A = {0, 2, 4, 6, 8, 10} y B - {0, 1, 2, 3,4}, en tonces A - B = {6, 8, 10}, mientras que B - A = {1, 3}. Es conveniente pensar que todos los conjuntos aqu tratados se consideran subconjuntos de un conjunto universal U. Los complementos pueden ser forma dos con respecto a este conjunto universal. Si A es un conjunto, entonces U - A es el conjunto de todos los elementos que no estn en A. Conviene denotar tales complementos mediante A; de forma que U - A = A . Obsrvese que 0 = U y

V=0.

www.FreeLibros.com

10

TEORIA DE AUTMATAS Y LENGUAJES FORMALES

T eorem a 0.3.2. 1. 2. 3. 4. Demostracin.

Dados los conjuntos A y B: A - B =A n B . ( A n B ) = A u B. (Au B)=AnB. = A. Vamos a probar los Apartados 1 y 3 y dejaremos el resto para el lector.

Un elemento x satisface xe A -B xe A y x B < = >x e A y x e B <=>xe A n B Por lo tanto, tenemos que A - B c : A n B y A n B c : A - B , a s que tenemos que A - B = A n B con lo que (1) queda probado. Para el Apartado 3, un elemento satisface xe A u B < = > x i. A u B < = >x < A y x < .B <=>xeAyxeB < = >x e A n B Por lo tanto, tenemos que A u f i c A n B y A n B c A u B , con lo que los dos conjuntos son iguales. Tngase en cuenta que los apartados (2) y (3) del Teorema 0.3.2 se conocen como las leyes de De Morgan para conjuntos. Dados dos conjuntos A y B, su producto cartesiano , A x B, es el conjunto de todos los pares ordenados de los que el primer elemento proviene de A y el se gundo de B. As que, A x B = {(a, b)\ a e A y b e B] Por ejemplo, si A - {1, 2, 3} y B - {5, 6} entonces A x B = {(1, 5), (2, 5), (3, 5), (1, 6), (2, 6), (3, 6)}

www.FreeLibros.com

PRELIMINARES MATEMTICOS

11

Obsrvese que dos pares ordenados son iguales si y slo si los elementos correspondientes de los mismos son iguales. Por lo tanto (a, b) = (c, d) slo cuando a = c y b = d. Luego un par ordenado es distinto que un conjunto de dos elementos.

Ejercicios de la Seccin 0.3


0.3.1. Probar las siguientes afirmaciones: (a) Si A c B, entonces 2a c 2b. (b) S i / l n 5 = (4 u 8 , entonces A = B. (c) Si A = B entonces A r \ B = A u B. 0.3.2. Si A c B, entonces para todo conjunto C, se obtiene que A u C c B n C y A n C c f i n C . Probarlo. 0.3.3. Si A c C y B c D se cumple que C u D c / l u S ? 0.3.4. Probar o refutar las siguientes afirmaciones: (a) Si A u B - A u C, entonces B - C. (b) S i A n / = A n C , entonces B = C. 0.3.5. Sea {Z ?a | a e /} una familia indexadadeconjuntos.Seusar lanotacin u a s i Bapara indicar la unin de todoslos Ba y n a6Baparaindicar la inter seccin de todos los Ba. Probar que para todo conjunto A se cumplen las si guientes igualdades: (a) A Oe / Bq ) W fx e I r~ '1Ba)-

(b) A u (o a e / Ba) r \( s i (A kj Ba). 0.3.6. Demostrar las siguientes igualdades: (a) A - B = A - ( B n A ) . (b) B c A si y slo si A n B = 0. (c) (r>ae i Ba) - A = n ae i (Bn - A) . (d) ( A - B ) - C = ( A - C ) - ( B - C ) = A - ( B u C ) . (e) A r \ B = 0 y A n B = 0 s \ y slo si A = B 0.3.7. Son ciertos los siguientes resultados? ' (a) 2An 2 B = 2AnB. (b) 2/' u 2 i = 2AuB. 0.3.8. Los pares ordenados (x, y) se definen formalmente por medio de la siguiente igualdad (x,y) = {{a-}, {.v, y}. Usando la definicin anterior, mostrar que (a, b) = (c, d) si y slo si a = c y b = d.

www.FreeLibros.com

12

TEORA DE AUTMATAS Y LENGUAJES FORMALES

0.3.9. Dados los conjuntos A , B y C , probar que: (a) A x ( g n Q = ( A x B ) n ( / l x q . (b) A x ( B k j Q = ( A x B ) u ( A x Q. (c) A x ( B - Q = ( A x B ) - ( A x C ) .

RELACIONES Y FUNCIONES
Una relacin del conjunto A con el conjunto B es un subconjunto de A x B. Por tanto, si R c A x B y (a, t) e R, se dice que a est relacionado con b bajo la re lacin R. Por ejemplo, si A = {2, 3 ,4 , 5} y B = {1, 3, 5, 7, 9}, entonces R = {(2, 1), (2, 3), (5, 3), (5, 5)} es una relacin, y 2 est relacionado con 1 bajo esta relacin. Si A y B son el mismo conjunto, se dice que la relacin es una relacin so bre A. Por ejemplo, sea c N x N definida por (x , y) e R si y slo si x < y. R es la relacin menor o igual que sobre N . La relacin R c A x B define dos subconjuntos, uno de A y otro de B. Estos son Dom (R) = {a | a e A y (a, x) e R para algn x e B) Im ( R) = { b | b e B y (y, b) e R para algn y e A) y se conocen como el dominio y la imagen de R, respectivamente. Por ejemplo, si A = {<7. b. c, d , e} y B = {1, 2, 3,4, 5} con R = {(a, 1), (a , 2), (b, 5), (c, 4)}, entonces se tiene que Dom (R) = {a, b, c} e Im (/?) = { 1, 2 ,4 , 5} Si R c z A x B es una relacin de A con B, entonces el conjunto 7T1 = {(b , a)\(a, b) e /?} es un subconjunto de B x A. Por consiguiente, ella mis ma es una relacin de B con A. Llamaremos a R~] inversa de la relacin R. Sea A un conjunto no vaco. Una coleccin Jl de subconjuntos no vacos de A es una particin de A si se cumple lo siguiente: 1. 2. Si B y C son conjuntos en A . , entonces o bien B = C o B n C = 0. A= B.

Intuitivamente, una particin de A divide a A en partes no vacas disjuntas. Por ejemplo, sea A = {x|x e N y x < 10} y sea * = { { 0 , 2 , 4 } , { 1 , 3 , 5 } , { 6 , 8, 10},{7,9}}

www.FreeLibros.com

PRELIMINARES MATEMTICOS

13

una particin de A. Por otro lado, = { { 0 , 2, 4, 6}, {1,2, 3, 5, 7}, {9, 10}, 0} no es una particin. Veamos otro ejemplo interesante. Sea Q el conjunto de los nmeros racio nales. Para cada r e , sea

Por tanto >3/8 contiene a (3, 8), (6, 16), (9, 24) y as sucesivamente. Obsr vese que la coleccin F = {Qr\ r e Q} es una particin de N x Z +. Para verlo, primero obsrvese que si Qr y Qs son elementos de F y si (x, y) e Q, n Qs>en tonces s = x /y = r con lo que s = r y por tanto Qr = Qs. Puesto que 2 r c N x Z + para todo r, tenemos que U r s & ' N x Z +. Por otro lado, si (x, y) e N x Z +, entonces x / y e Q , y, por tanto, (x, y) e Qr, siendo r x /y . As (jc, y) e s q Qr. De todo ello se concluye que e q Qr = N x Z +. Vamos a ver un nuevo ejemplo de una particin de un conjunto que es la coleccin {Zo, Z , ..., Z m- 1 }, donde m es un entero positivo fijado y Z / se de fine como Z ; = {x\x e Z y x - i = km para algn entero k } Por ejemplo, si m = 3, tenemos Zo = {0, 3, 6, 9 ,...} , Z i = { ...,- 5 ,- 2 , 1,4, 7, ...} y Z 2 = {..., -4 , -1 , 2, 5, 8,...}. Supongamos que SI es una particin del conjunto X. Definamos una relacin sobre X mediante R = {(x, y) |x e y estn en el mismo conjunto de A } Por ejemplo, si X = {0, 1,2} y Jl = {{0}, {1,2}}, entonces R sera el con junto R = {(0, 0), (1, 1), (2, 2), (1,2), (2, 1)}. Una relacin definida'de esta manera tiene algunas propiedades interesan tes. Primero obsrvese que, si a e X y puesto que A es una particin de X, existe algn A e JZ para el cual a e A . Por tanto (a, ) e R. Segundo, si (a, b) e R ello significa que a y b estn en el mismo conjunto de A , con lo que tambin b y a estn en el mismo conjunto de A . Entonces (,b , a) e R. Finalmente si (a, b) e R y (b, c) e R entonces a, b y c estn en el mismo conjunto de A . En consecuencia tenemos que (a, c ) e R.

www.FreeLibros.com

14

TEORA DE AUTMATAS Y LENGUAJES FORMALES

En resumen, para la relacin R = {(x, y) | x e y estn en el mismo conjunto de A] tendremos lo siguiente: 1. (a, a) e R para todo a e X (propiedad reflexiva). 2. 3. Si (a, b ) e R, entonces (b, a) e R (propiedad simtrica). Si (a, b ) y (b, c ) estln en R, entonces (a, c) e R (propiedad transitiva).

Toda relacin que tenga estas tres propiedades se dice que es una relacin de equivalencia. Supongamos que R es una relacin de equivalencia sobre el conjunto X. Para cada x e X, se define el conjunto [x] = [y e X \ (x, y) e R }. El conjunto [a] se llama clase de equivalencia de x. Teorem a 0.4.1. Las clases de equivalencia de una relacin de equivalencia R sobre un conjunto X forman una particin de X. Demostracin. Para probar este teorema se necesita demostrar que las clases de equi valencia son disjuntas entre s y que'su unin es X. Primero veremos que son disjuntas entre s. Supongamos que z e [x] n [y]. Entonces (x, z) e R y (z, y) e R. Dado que R es transitiva, entonces (x, y) e R. Por lo tanto, x e [>'] e y e [x], y en consecuen cia (x, y) e R e (y, x) e R. Ahora bien, si 1 6 [x], entonces (t , x) e R y, debido a la transid vidad de R, (t, y) e R. Por lo tanto t e [y], con lo que se obtiene [x] c [y]. A la inversa, si t e [y] entonces (t , y) e R, y (/, x) e R, de lo que se de riva que t e [x] e [y] e [x]. De todo lo visto se sigue que si [x] n [y] * 0, enton ces [x] = [y]. Ahora bien, puesto q u e / f es una relacin de equivalencia sobre X, todo x e X debe satisfacer (x,x) e R, con lo que x e [x]. Esto significa que todo ele mento de X est contenido en una clase de equivalencia, con su mismo nom bre. De lo visto anteriormente se deduce el siguiente teorema: Teorem a 0.4.2. Cualquier particin A de un conjunto no vaco X define una relacin de equivalencia sobre X. Por lo tanto existe una relacin muy estrecha entre las relaciones de equiva lencia y las particiones.

www.FreeLibros.com

PRELIMINARES MATEMTICOS

15

Una funcin de ,4 a B es una relacin de A con B con unas caractersticas adicionales. El conjv ' ' f e A x B una funcin si Dom (f ) = A y si para cual quier pareja (x, y) y (x, r.) que pertenezcan a / entonces y = z- Esto significa que \ para todo elemento x ' - A existe ' inico y tal que (x, y) e /. Generalmente se escribe / : A B y se usa la notacin f ( x ) = y, donde (x, y) e /. De hecho, esta notacin puede ser c.v, elida a ; : . jnes en general, como se ha hecho con la /?-imagen del Ejercicio n,4.3. T eorem a 0.4.3. Sean las fu nciones/: A >B y g: A > B. Entonces f = g si y slo si / (x) = g (x) para t o d o A . Demostracin. Supongamos que/ = g. Sea .v un elemento de A. Entonces si y = /( x ) , se tiene que (x, y) e f y por tanto (x, y) e g. En consecuencia, y = g (x). A la inversa, supongamos que f ( x ) - g (x) para todo x de A y supongamos que (x,y) es un elm tm o arbitrano d e /. Entonces y = / ( x ) = g (x) con lo que (x, y) e g, obtenindose que/ c g. Por otro lado, si (x, y) es un elemento arbitra rio de g, tenemos que v g (x) = / ( x y por tanto (x, y) 6 / , obtenindose g c / . Se concluye finalmente q u e ,/= g. Para que / c A x 1' ea una fcr.dn, se requiere que Dom ( / ) =A. Esto es ms restrictivo que lo de eable p e; ios objetivos de este libro. Definiremos/fncin total como la e!;r de funcin ue hemos definido previamente. Definire mos funcin parcial o una n / q u e satisface las condiciones de que Dom ( / ) c A , y que m v. y) y ( x . . pertenecen a / , entonces y - Z- La nica dife rencia que aparece aLue es que ce ;a funcin parcial de A a i? el dominio de la funcin no necesita ser el conjunto en su totalidad. Usaremos el trmino fun cin, sin modificar, \ e. referir cualquier funcin parcialo total que cuali ficaremos slo cuarta a neceSea una funcin / : A > B. Si A e A, diremos que la imagen de X b a jo f es /(.Y) - {v e i : ; Si F e 5, la imagen : f T eorem a 0.4.4. 1. 23. *a de Y / (x) para algn x e X) fe s el conjunto

' (V) = j x e A ; (x) = y para algn y e Y]

Sea/ : A > B una funcin / (0) = 0. /({ * } ) = { f (x)} para todo e s A. SiX eFc itonce c /(F ).

www.FreeLibros.com

16

TEORA DE AUTMATAS Y LENGUAJES FORMALES

4. 5.

S i l c 7 c 5 , entonces /

1 (X) c / 1 (Y).

Si X e Y son subconjuntos de B, entonces f ~ l ( X - Y ) = f - \ ( X ) ~ f - { (Y).

Demostracin. La demostracin se obtiene fcilmente a partir de las definiciones pre cedentes, por lo que se deja la misma para el lector. Una funcin/ : A > B se dice que es uno a uno o inyectiva si, para cuales quiera (x, y) e / y (z, y) e / , entonces x - z . Esto quiere decir que si f ( x ) - f ( z ) entonces x = z. Una fu n c i n /se dice que es sobreyectiva si, para cualquier y e B, existe al gn x e A para el c u a l/ (x) = y. La fu n c i n /: N - N definida por f ( n ) = n es a la vez inyectiva y sobre yectiva. La funcin g: N N , donde g (r) = n + 1, es inyectiva pero no sobre yectiva, ya que no existe ningn x e N, tal que x + 1 = 0. La funcin h: R > R, donde h (x) = x2, no es ni inyectiva, ni sobreyectiva. S i /e s inyectiva y sobreyec tiva a la vez, se llama biyeccin o correspondencia uno a uno. Obsrvese que si /: A > B es sobreyectiva e n to n c e s /-1 ({>}) ^ 0 para todo b e B . S ' i f e s una bi yeccin, entonces, para todo b e B, f ~ ] ({}) es un conjunto con un nico ele mento. Por tanto c u a n d o /e s una b iy ecci n ,/-1 \ B >Ae s una funcin. Las funciones y las relaciones se pueden asociar de una manera adecuada. Sean las relaciones R ^ A x B y S c i B x C . Definimos la composicin de R y 5 como S R = {(a, c) e A x C \ para algn b e B, (a, b) e R y (>, c) e 5} Por tanto si R - { { 0, 1), (0, 2), (1, 1)} y S - {(1, a), (2, fr)}, tendremos que S R = {(0, ), (0, b), (1, a)}. Por otro lado, R 5 = 0, puesto que no hay smbo los que aparezcan simultneamente como primer componente de un elemento de R y como segundo componente de un elemento de S. Por tanto, en general, R S y S 0 R no son la misma. La composicin de funciones se realiza de la misma forma: g f = { (a, b) | para algn y, / ( ) = y y b =g (y)} Por ejemplo, sea/ : R -> R definida co m o /(x ) = x + 1 y g: R >R definida como g (X) = x2. Entonces tenemos que 8 / W = 8 (/(* )) = 8 (x + 1) = (x + l) 2
y

f 8 (*) =f (8 (x)) = f ( x 2) = x2 + 1

www.FreeLibros.com

PRELIMINARES MATEMTICOS

17

Ejercicios de la Seccin 0.4


0.4.1. Sean A y B los conjuntos A = ( 2, 3,4,5} y B= {1, 3, 5, 7, 9}. Sea R la relacin R = {(*,)') e A x B\ x<y] Listar los pares ordenados de R. 0.4.2. Demostrar las siguientes igualdades: (a) Dom (R~l) = Im (R). (b) Im (JT1 ) = Dom (R). 0.4.3. Sea R q A x B una relacin de A con B. Sea X c A. Definimos R-imagen de X como R (X) = {> 6 B\ (x , y) e R para algn x e X] Obsrvese que la /?-imagen de X es la imagen de la relacin R restringida al subconjunto X x B de A x B. Sean D y E subconjuntos de A. Probar las siguien tes igualdades: (a) ( D u ) = (D) u R (E). (b) R (D n E) = R (D) n R (). (c) Dom (R) = R-] (B). (d) Im (R) = R(A). 0.4.4. Sean las relaciones R q A x B y S q A x B. Entonces R u S c A x B e s tambin una relacin de A con B, al igual que R n S . Demostrar las siguientes afirma ciones: (a) Dom (R<u S) = Dom (R) u Dom (S). (b) Im (i? u S) - Im (R) u Im (5). (c) (R u S) (X) = R (X) v S (X) para cualquier X c A . (d) (7? u S)_l = R~] u S~K (e) ( n S J ' ^ J r ' o T 1. 0.4.5. Sea m = 5. Encontrar los conjuntos Zo, Z i, Z 2 , Z 3 , Z4. 0.4.6. Probar que {Zo, Z j , . . Z, _ j } constituye una particin de Z para un m > 0 de terminado. 0.4.7. Determinar si cada una de las relaciones siguientes es una relacin de equiva lencia sobre el conjunto A = {0, 1,2, 3, 4,5)

www.FreeLibros.com

18

TEORA DE AUTMATAS Y LENGUAJES FORMALES

(a) Rt = {(0, 0), (1, 1), (1, 2), (2, 2), (3, 3), (4,4), (5, 5)}. (b) /?2 = , u {(2,1)}.

(c) /?3= i ? i - { ( l ,2)}.


(d) R, = R2 u {(2, 3), (1, 3), (3, 1), (3,2)}. 0.4.8. Sea { Z o , Z i , Z 2 , Z 3 , Z 4 } la particin de Z definida en la pgina13.Cul esla relacin de equivalencia sobre Z que genera esta particin? 0.4.9. Sea [A\,A 2, ..., A m} una particin de A y [B\,Bz, ,B}unaparticindeB. Probar que el siguiente conjunto es una particin de A X B: {AxBj\i= 1,2 , . . . , m y j= 1,2, ...,} 0.4.10. Sean A y B los conjuntos definidos de la siguiente manera A= {0, 1,2,3}
y

* 5 = {-1, 0,l/2, l , 3 /2,2 ,3 ,4 } Cules de las siguientes relaciones son funciones totales, cules funciones par ciales y cules no son funciones? (a) / = {(0, 1), (1, 2), (2, 3), (3,4)} (b) /= { (0 ,0 ), (1,1/2), (2,1), (3, 3 /2)} (c) / = {(0,0), (1,1), (1,-1), (2, 3)} (d) /= { (0 , 0), (1,3), (2,2)} (e) /'= {(0, 0)} 0.4.11. Sean / : A > C y g: B >D dos funciones tales que, f{x) = g (x) para todo x e A n B. Probar q u e /u g es una funcin d e A u B e n C u D . 0.4.12. Sea/: A B una biyeccin. Probar q u e /-1 tambin es una biyeccin. 0.4.13. Demostrar que si / ' (f(X)) = X para todo X c A entonces/ es inyectiva. De mostrar que si f ( f ~ [ ( Y)) = Y para todo Y c B. entonces/es sobreyectiva. 0.4.14. Sea / : A >A una funcin para la cual / ( / (x)) = x para todo x e A. Probar que / es una relacin simtrica sobre A. 0.4.15. Sean las funciones f :A >B y g: C >D y supongamos que A n C = 0 y B n D = 0. Probar q u e /u g es sobreyectiva s i / y g lo son. Probar que / u g es inyectiva si / y g lo son. 0.4.16. Sean/y g las funciones definidas como

www.FreeLibros.com

PRELIMINARES MATEMTICOS

19

g= {(x,y)\xe Z + e y e N e y = -2 \x \ j Obsrvese q u e /c N x Z + y g c Z + x N de modo que f g y g /estn defini das. Describir/ g y g f. 0.4.17. Supongamos que A es un conjunto y que se define la relacin IA = {(a , )\a e A] (a) (b) Probar que a es una funcin. Probar que I,\ es una biyeccin.

(c) Sea/: X Kuna funcin. Probar que f 0 Ix = h f - / (d) S i/: X - Y es una biyeccin, demostrar q u e / / -1 = Jy y que/ " ' / = /*. 0.4.18. Dadas las funciones/: A nes son ciertas: (a) (b) B y g : B ^ C. Probar que las siguientes afirmacio

S i/y g son inyectivas, entonces g f tambinlo es. S i/y g son sobreyectivas, entonces g /tambin lo es.

0.5

INDUCCIN
Se dice que un subconjunto A de N es un conjunto inductivo si, para cada a e A, entonces a+ 1 tambin pertenece a A. Por ejemplo, el conjunto {5, 6, 7, ...} es inductivo, pero el conjunto {0. 2 .4 . 6. 8. 10. ...} no lo es. Para que un conjunto sea inductivo no puede tener un nmero finito de elementos. La mayora de los conjuntos de nmeros naturales que contienen el 0 no son inductivos. El hecho de que haya una nica coleccin de nmeros naturales que contenga el 0 y sea inductiva se conoce por el principio de la induccin matemtica (PIM). A continuacin se muestra una breve exposicin del principio de induccin matemtica. Dado A c N tal que satisface lo siguiente: 1. 2. O e A, , si n 6 A, entonces n + 1 e A,

entonces A - N . El principio de induccin matemtica es muy usado en matemticas. Pro porciona un mtodo apropiado para definir conjuntos de objetos en los cuales hay un primer objeto, un segundo objeto y as sucesivamente. En el mismo, se define el primer objeto y el n + 1 se define en trminos del ensimo.

www.FreeLibros.com

20

TEORA DE AUTMATAS Y LENGUAJES FORMALES

Por ejemplo, el factorial de un nmero natural puede ser definido inductiva mente como 0! = 1
y

(n + 1)! = (n + 1) n!,

para

n> 0

El PIM tambin se usa para probar planteamientos acerca de proposiciones que en uno u otro nivel pueden estar indexados mediante N . En tal prueba se muestra que la coleccin de ndices es inductiva y contiene el 0 y, que por consi guiente, es N . Por ejemplo, la proposicin n + 3 < 5 (n + 1) para todo nmero natural n se puede demostrar como sigue: Sea A = { n e N |n + 3 < 5 (n + 1)}. Debemos probar que A es N . Ob srvese que si n es 0 entonces se tiene que n + 3 = 3 y 5 (n + 1) es 5, de modo que la proposicin se cumple. Por tanto se obtiene que 0 pertene ce a A. Ahora supongamos que n e A. Tenemos que probar que n + 1 tambin est en A. Obsrvese que ( n + l ) + 3 = + 4 = ( + 3) + l. En tonces: 5 (( + 1) + l) = 5 n + 10 = 5 (/? + 1) + 5 > (;? + 3) + 5 > (n + 3) + 1 = (n + l) + 3 Por tanto la proposicin se cumple para n + 1 cuando se cumple para n, con lo que n + 1 e A cuando n e A. Por el PIM, se obtiene que A = N , as que la proposicin se cumple para todos los nmeros naturales. D Los pasos de una demostracin en la que se usa el PIM son bastante fciles de recordar. 1. 2. 3. Probar que la proposicin se cumple para 0. .

Suponer que la proposicin se cumple para n y probar que esto implica que se cumpla para n + 1. Deducir que la proposicin se cumple para todos los elementos de N .

La etapa 1 se conoce como etapa base o inicial. La suposicin de que la proposicin se cumple para n en laetapa 2 se conoce como hiptesis de induc cin. La etapa 2 se llama etapa de induccin.

www.FreeLibros.com

PRELIMINARES MATEMTICOS

21

Es conveniente usar el PIM para probar proposiciones sobre colecciones de nmeros naturales que no contienen el 0. Por ejemplo, la proposicin de la fr mula 1 + 2 + ... + (2 - 1) = n2 no tiene sentido (no es verdadera) para n - 0. Sin embargo, esta frmula se cumple para todo n > 1. En este caso el conjunto de in duccin elegido es distinto. Obsrvese que la frmula se cumple para n = 1. S ea^ S - { n e N | la frmula se cumple para 1 + n] Fjese en que 0 e S. Por tanto si n e S se tiene que 1 + 2 + ... + 2 (2 (1 + n) - 1) = (1 + n)2 'Con lo que se prueba que la frmula se cumple para n + 1. Es decir, n + 1 e S siempre que n e S. Para n + 1 se suma un valor apropiado en cada lado de la igualdad y se obtiene 1 + 2 + . . . + (2 (1 +n) - 1) + (2 (1 + ( + 1 ) ) - 1) = (1 + n f + (2 (1 + (n + 1)) - 1) = 1 + 2 (n + 1) + (1 + n)2 = (l+(+l))2 Entonces, por medio de PIM, se tiene que S = N y por lo tanto la frmula se cumple para todo n > 1. En la prctica, el conjunto 5 no se especifica. Si se expresa una propiedad como P (n) para todo n > k , la demostracin se realiza de la siguiente manera: 1. 2. 3. (etapa base ) Probar que P (k) se cumple. (etapa de induccin) Probar que si P (n) es verdadera entonces P (n + 1) es verdad para todo n > k. (conclusin ) Por las etapas 1 y 2 y el PIM, P (n) es verdadera para todo n>k. Por tanto, la demostracin del ejemplo precedente puede volver a reali zarse de esta forma: Sea n = 1. Entonces se tiene que 1 = l 2, con lo que la frmula se cum ple. Ahora se supone que la frmula se cumple para n > 1. Es decir, 1 + 2 + ... + (2(1 + n) - ! ) = (! + n)2 Entonces se obtiene que

www.FreeLibros.com

22

TEORA DE AUTMATAS Y LENGUAJES FORMALES

1 + 2 4-. .. + ( 2 ( 1 +

i )

~~ 1) + (2 (1 + (n + 1)) 1)

= (1 + )* + ( 2 ( l + (n + 1 ) ) - 1 ) = 1 + 2 (n + 1) + (1 + n)2 = (\+(n+\))2 con lo que la frmula se cumple para n + 1. Entonces, debido al PIM, la frmula se cumple para todo n > 1.

Ejercicios de la Seccin 0.5


0.5.1. Probar que, para todo n e M,

2o + 21+ ... + 2" = 2" + 11


0.5.2. Probar que, para todo n > 1,

21+ 22 + ... + 2" = 2" + 12

CARDINALIDAD
Para comparar los distintos tamaos de los conjuntos se usan funciones tre los mismos que son biyectivas, sobreyectivas o inyectivas. Dos conjuntos A y f son equivalentes si existe una biyeccin entre ellos. Se emplea la notacin A = B para denotarlo. Por tanto tenemos que { x, y, z} = { 1, 2, 3}, mientras que {x, y, z} 2 {1,2}. en

Ejemplo 0.6.1.

Veamos un ejemplo trivial. Sea{ / 1/ : N > {0, 1}} el conjunto de to das las funciones de N en {0,1}; entonces 7 2N. Para probar esto se necesita una biyeccin H \ J - 2:\ Por tanto, se necesita una regla que asocie cada fun cin de 7 con algn subconjunto de N. Para g e J, sea H (g) = {x|g (x) = 1}. Obsrvese que todas las funciones de jF tienen una imagen bajo H. Ahora proba remos que H es inyectiva y sobreyectiva. Para ver que H es inyectiva, sean g\ y gi unas funciones que pertenecen a 7 y supongamos que H (gi) = H (gi). Sea x e N. Debemos obtener que x H (gi) o x e H {g i). Si x s H (g) entonces, dado que H (gi) = H (gi), se ob tiene que gi (x) = g 2 (x) = 1. Por otro lado, si x H ( g i), entonces g i (x) = g 2 (x') = 0. Luego en ambos casos tenemos que gi (x) = g2 (x) para un x e N arbitrario, con lo que gt = g2.

www.FreeLibros.com

PRELIMINARES MATEMTICOS

23

Para ver que H es sobreyticiiva, sea A e - ' un subconjunto arbitrario de Se define la funcin g: N --> {0, 1} como
0, si ' \

1, si v

Obsrvese que g e J y que H(g) = A . Por ' uto paracualquier elemento A de 2n , sepuede encontrar unauncin en J formaque represente a A. De esto se deduce que H es sobreyectiva. T eorem a 0.6.1. Supongamos que A = C y B D con A n 3 = 0 y C n D = 0. Entonces AuB=CuD. Demostracin. Puesto que A = C y B = D existen ikis biyecciones g: A >C y h: B -> D. D efinam os/: A /> -> 0 como si .v e A j ; ( v), si v s B x i n pues. ><:;ue g y h lo son. Por consi

/U

Por el Ejercicio 0.4.15,/ e s b: guiente, A u B = C u D. Para cada nmero natural k > tos se usan como estndar de tan tos. Un conjunto A es finito si: 1. 2.

define con e!

{1. 2.......}. Dichos conjun ; se compararan otros conjun

A = 0, en cuyo caso A tier vardinalitkf.O. A = N*, en cuyo caso A ti , <ardial k.

Un conjunto es infinito si no es -:o. Por ejemplo, A = {a, b, c, d, c es infinito. Para simplificar, si A e su cardinalidad. inito o dinalidad 5 mientras que N ito escril;Reinos \A \ - k para representar

Supongamos que A es finito i:c cardinal k y que x< A. Obsrvese que {x} = {k + 1} por lo que A u {x} Hn es y su cardinal es k+ 1. Este resultado se obtiene a partir del Teoiv : x 0.6.1. y se extiende a: T eorem a 0.6.2. Si A y B son conjuntos c' ' nito y | A u i ? | = \A\ + \B\. ios finios itoncesA u B es tambin fi

www.FreeLibros.com

24
Demostracin.

TEORA DE AUTMATAS Y LENGUAJES FORMALES

Si A = 0, entonces A u B = B, con lo que


|; 4 u s | =

0+

| B | = |fl|

Si A & 0 y B 0, entonces sean / : A > N m y g: B > N las biyecciones a partir de las cuales se obtiene que \A \ = m y \B\ - n . Se define h\ N, > / / = {m + 1, m + 2 , m + n } como h (x) = m + x. Es obvio que h es una biyeccin y por tanto N = H. Obsrvese que N m u H - {1, 2 , m + n) =
A

N m+n y la f u n c i n / : A u B - > N n + m definida como frx) - f t o > sixeA | h g (x), si x e B es sobreyectiva e inyectiva. Por consiguiente, A u B es finito y l A u S l = m + n = | A | + |5 . Una propiedad muy utilizada para conjuntos finitos es el principio del palo mar. En esencia dice que si hay ms palomas que agujeros se debe poner ms de una paloma en el mismo agujero. Teorema 0.6.3. (Principio del palomar). Sean A y B conjuntos finitos con | / 4 | > | ? | > 0 y / : A >B una funcin. Entonces / no es inyectiva. Demostracin. La demostracin se realiza por induccin sobre | B \ .

Si |f i| = l y | A | > | Z ? | , entonces A contiene al menos dos elementos distin tos a\ y 2 - Pero entonces f { a \ ) - / { a i ) por lo q u e / n o es inyectiva. Por tanto el resultado se cumple para | B \ = 1. Ahora supongamos que el resultado se cumple para algn conjunto B tal que 0 < |B | <n. Entonces sea B un conjunto de forma que B\ = n + 1. Fijado un elemento b e B, obsrvese que | B - {b} \ - n . Supongamos que A es un con junto tal que |A | > |?| y f : A - ^ B . Consideremos los dos casos siguientes para r 1 {by Caso 1: Supongamos que |/ ' (b ) | > 2. En este caso habr dos elementos ai y 2 de A , de forma que a\ y 2 estn en / ' (b ) o, lo que es lo mismo, (2 ) = b. En este caso / no es inyectiva. Caso 2: Supongamos que | / * (>)| < 1. Obsrvese que \ A - f ~ l ()| > |/ i | - 1 > n = - {b} | . Se define la funcin g: A - f ~ l (b) > B - {>} como g W = / ( 4 Obsrvese que, como | B - f ~ l ()| =n y \ A - f ~ \ b ) \ > | 5 - { > } | , se satisface la hiptesis de induccin. Por lo tanto g no es inyectiva con lo que

www.FreeLibros.com

PRELIMINARES MATEMTICOS

25

existirn a\ y ai en A - f ~ l (b ) para los cuales a\ * <22 y g (a 1 ) = g (22). Por con siguiente, / ( a i ) = / ( a 2), de lo que se deduce que / tampoco es inyectiva. En ambos casos, si el resultado se cumple para cualquier conjunto B con n elementos, tambin se cumple para cualquier B con n + 1 elementos. Por tanto, y por el PIM, la proposicin se cumple para todo conjunto finito B con j# | > 0. Hay muchos ejemplos en los que se aplica este principio. Si 11 zapatos son elegidos al azar de una caja que contiene 10 pares de zapatos, al menos se obtie ne un par completo. Si n ^ m , entonces N N w. Corolario 0.6.4. Si A es un conjunto finito y B es un subconjunto propio de A, entonces A i-B. Hay dos tamaos para los conjuntos infinitos, grande y muy grande. Un conjunto A es enumerable si A = N . En este caso, | A | = No (alef cero). Un con junto es numerable si es finito o enumerable. El conjunto Z es enumerable mediante la fu n ci n /: N > Z definida por n , si n es par s in es impar

es una biyeccin, que transforma 0 en 0, 1 en -1 , 2 en 1, 3 en - 2 y as sucesiva mente. Teorema 0.6.5. Sea A un conjunto enumerable. Si f i e A es un conjunto infinito, en tonces B es enumerable* Demostracin. Puesto que A es enumerable, existe una b iy ec c i n /: N >A. Supon gamos que tenemos que f ( n ) - a n por lo que A puede ser enumerado como A = {o, i, } Sea o el menor subndice para el cual a0 e B. Sea n\ el menor subndice para el cual B - {a a}. Generalizando, sea nk el menor subndice para el cual ak B - {a0, ant, ...,a n4_,}. Puesto que B es infinito, B - {a0, a ,,..., a k_,} 0 para todo k, con lo que hemos construido una corres pondencia uno a uno entre N y B. Por tanto, B es enumerable. Puesto que los conjuntos finitos son numerables, se tiene que todo subcon junto de un conjunto numerable, es numerable. Obsrvese cada conjunto infinito contiene un subconjunto enumerable. Para probarlo, sea X infinito. Entonces X & 0, por lo cual se puede seleccionar un ele-

www.FreeLibros.com

26

TEORA DE AUTMATAS Y LENGUAJES FORMALES

ment de X, que llamaremos xo- Nuevamente, y puesto que X es infinito, tene mos que X - {xo} 5* 0 y se puede elegir x \ e X - {xo}. Una vez definidos cada uno de los elementos xo, *\> *k, se sabe que X - {xo, x \ , ..., xk] 0 con lo cual se puede seleccionar un xk + i e X - {x0, X], ...,xk} El conjunto {x | k = 0, 1,2, ...} es un subconjunto enumerable de X . Terminaremos este captulo mostrando un conjunto no numerable. Para ello usaremos una tcnica de demostracin muy eficaz llamada diagonalizacin. Teorema 0.6.6. El conjunto 2N no es numerable.

Demostracin. Supongamos que 2N es numerable. Dado que es un conjunto infinito, debe suponerse que 2>: es enumerable y que por lo tanto, puede ser enumerado de la forma 2N - {Ao , A \ , ...}. Sea D = { e N, n A }. Obsrvese que D c N y, por tanto, D = Ak para algn k. Consideremos dicho k. Si k e Ak, entonces puesto que Ak = D, k no puede estar en Ak. Por otro lado, si k < s Ak, entonces k & D y por tanto k debe estar en Ak. Ambas posibilidades nos llevan a una contradiccin. Por consiguiente, la suposicin de que 2N es enumerable es inco rrecta. Sabemos, por el Ejemplo 0.6.1, que la coleccin J de funciones de N en {0. 1} es equivalente a 2"x . Ahora por el Teorema 0.6.6, sabemos que J no es numerable. La tcnica de la diagonalizacin se usa para la refutacin de muchas afirma ciones. En la demostracin precedente no se ve claramente donde se usa dicha tcnica. Un ejemplo clsico de diagonalizacin es la demostracin de que el in tervalo abierto (0, 1) no es numerable. Supongamos que (0, 1) es numerable, pol lo que puede ser representado por el conjunto {ao, i, Entonces cada a ser representado por su desarrollo decimal y por convencin se usar la forma in completa tanto para los nmeros de esa forma como para los de forma completa. Por tanto, 0,25 se representar como 0,24999... Bajo esta representacin, dos nmeros en (0, 1) son iguales si y slo si los dgitos correspondientes son los mismos. Haremos una lista con los a ao-0.doodo\do2--. ai = O.diodi \d\2-. k = 0.dkodk\dk2- dkk

www.FreeLibros.com

PRELIMINARES MATEMTICOS

27

Para demostrar que (0, 1) no es numerable debemos encontrar un nmero z e (0, 1) tal que z ^ a para cualquier /. Sea z = O.zqZi-- donde lk5, si akk* 5 2. si akk= 5

Obsrvese que z difiere de cada au en al menos una cifra decimal y que 0 < z < 1. Por tanto, hemos encontrado el z que buscbamos, con lo que a no da cuenta de todos los nmeros pertenecientes a (0, 1). Aqu la diagonalizacin resulta obvia.

Ejercicios de la Seccin 0.6


0.6.1. Dados los conjuntos A y B, si A es finito A n B es finito? 0.6.2. Probar que si A c B y A es infinito, entonces B es infinito. 0.6.3. Dar, si es posible, un ejemplo de cada apartado: (a) Un subconjunto infinito de un conjunto finito. (b) Una familia {A\i e N ) de conjuntos finitos cuya unin sea finita. (c) Una familia {A| i s N de conjuntos finitos cuya unin no lo sea. (d) Una familia finita de conjuntos finitos cuya unin sea infinita. (e) Unos conjuntos finitos A y B tales que | A u B \ * \,41 + | B \ . 0.6.4. Probar que N x N es numerable usando la funcin / : X x N >X definida comof{n, m) = 2" 3'" adems del Teorema 0.6.5. 0.6.5. Mostrar que N* es enumerable para cualquier k = 1,2,... 0.6.6. Probar que R no es numerable.

www.FreeLibros.com

www.FreeLibros.com

1
Alfabetos y lenguajes

ALFABETOS, PALABRAS Y LENGUAJES


Todo lo descrito a continuacin tiene al menos dos cosas en comn: Programas escritos en algn lenguaje de programacin como Pascal. Palabras inglesas. Secuencias de smbolos que se usan para representar un valor entero. Frases escritas en algn lenguaje natural como el ingls. Primero, cada uno est compuesto por secuencias de smbolos tomados de alguna coleccin finita. En el caso de las palabras inglesas, la coleccin finita es el conjunto de las letras del alfabeto junto con los smbolos que se usan para construir palabras en ingls (tales como el guin, el apostrofe y otros por el esti lo). De forma similar, la representacin de enteros son secuencias de caracteres del conjunto de los dgitos {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}. Los programas de ordena dor escritos en Pascal y las frases en ingls tambin estn compuestos por sm bolos tomados de una coleccin finita. Sin embargo en estos, los conjuntos de smbolos son distintos. En el caso de los programas en Pascal, el conjunto de smbolos es una coleccin de identificadores legales de Pascal con una longitud menor o igual que una constante, palabras clave y palabras reservadas, smbolos especiales de Pascal y espacios en blanco tales como el retomo de carro, el ca rcter de salto de lnea y el espacio manual.

www.FreeLibros.com

30

TEORA DE AUTMATAS Y LENGUAJES FORMALES

Segundo, en todos los casos vistos las secuencias de smbolos que constitu yen los elementos en cuestin tienen longitud finita, aunque no existen limita ciones en cuanto a la longitud de las mismas. La nocin de secuencia finita de smbolos es el elemento principal a ser tra tado por este texto. Introduciremos la notacin y los nombres a usar para dichas secuencias. Un conjunto no vaco y finito de smbolos se conoce como alfabeto. Por ejemplo, el alfabeto ingls est formado por 26 smbolos. En otro contexto se puede considerar como alfabeto a la coleccin de todas las palabras inglesas co rrectas o la coleccin de todos los smbolos legales de Pascal (los identificadores de Pascal, palabras claves y reservadas, caracteres especiales, y as sucesiva mente). Si E es un alfabeto, o e X denota que es un smbolo de E. Por tanto, si E = { 0 , 1,2, 3, 4, 5, 6, 7, 8,9} podemos decir que 0 e E. Obsrvese que, puesto que un alfabeto es simplemente un conjunto finito no vaco, dados Ei y E 2 alfabetos, se tiene que Si u E 2 tambin lo es. Es ms, si Si n I 2 , Sj - Z 2 y Z 2 - Si son conjuntos no vacos, tambin son alfabetos. Una secuencia finita de smbolos de un determinado alfabeto se conoce como palabra sobre dicho alfabeto^ Si el alfabeto es el alfabeto ingls, algunas palabras pueden ser PROGRAM, DIGIT, MOON y BLEAK. Es ms, nuestra definicin permite que BXW TEEMRE y JIPOQPY sean tambin palabras. Nuestra experiencia nos lleva a identificar el trmino palabra con las palabras de algn lenguaje natural. Por esta razn, a menudo se usa el trmino cadena en lu gar de palabra con el fin de evitar esta idea preconcebida. A lo largo del texto se usarn por igual los trminos cadena y palabra. Obsrvese que si nuestro alfabeto base es el conjunto de todos los identifi cadores legales de Pascal cuya longitud es menor o igual que una constante, las palabras clave y reservadas, los smbolos especiales de Pascal, y as sucesiva mente, un programa en Pascal bien construido, es una cadena. De la misma for ma que basndonos en la definicin se pueden formar palabras incorrectas a par tir del alfabeto ingls tambin se pueden formar programas incorrectos sobre el alfabeto anterior. Aparentemente, las cadenas que constituyen programas en Pascal bien construidos deben cumplir ciertas restricciones, al igual que las pala bras inglesas legales se construyen de una determinada manera sobre el alfa beto ingls. Cada smbolo de un alfabeto es una cadena sobre dicho alfabeto. La cadena vaca , la cual se denota por el smbolo , es una palabra sobre cualquier alfabe to. La palabra vaca es una secuencia vaca de smbolos tomados de cualquiera

www.FreeLibros.com

ALFABETOS Y LENGUAJES

31

que sea el alfabeto en cuestin. La cadena vaca tiene ciertas propiedades que veremos ms adelante, _ . . . !i / Un lenguaje es un conjunto de palabras. Por tanto el conjunto {1,12, 123, 1234, 12345, 123456} es un lenguaje sobre el alfabeto compuesto por dgitos. De forma similar, la coleccin de palabras inglesas correctas es un lenguaje sobre el alfabeto ingls. Obsrvese que si Z es un alfabeto, tambin es un len guaje el formado por todas las cadenas con un nico smbolo. Los lenguajes pueden ser bastantes grandes, como es el caso de todas las palabras inglesas correctas o el lenguaje {1, 11, 111, 1111, 11111, ...} forma do por todas las cadenas finitas de unos. Obsrvese que este lenguaje es infinito (aunque cada cadena del mismo tenga longitud finita). Cuando un lenguaje tiene un tamao muy grande es difcil especificar que palabras le pertenecen. La espe cificacin de las palabras de un lenguaje es uno de los temas principales de este libro, y le dedicaremos gran parte del tiempo. Dado que un lenguaje es un conjunto de cadenas, se puede tener el lenguaje compuesto por ninguna cadena el lenguaje vaco. Este no es el mismo lengua je que el que consta de la cadena vaca {}. El lenguaje vaco se denota de la misma forma que el conjunto vaco, 0. Supongamos que Z es un alfabeto y w es una cadena sobre Z. Si L es el len guaje formado por algunas de las cadenas sobre Z y si w est en L, entonces se tiene que w e L y se dice que w es un elemento de L, o w es un miembro de L. Por tanto, 121 e {1.12, 121, 1212, 12121} Es necesario tener en cuenta el lenguaje compuesto por tocias las cadenas sobre el alfabeto Z. Se conoce como cerradura de Z o lenguaje universal sobre Z y se denota por Z*. Por ejemplo, si se tiene el alfabeto Z = {1}, entonces Z*={, 1, 11, 111, 1111,...} Para cualquier alfabeto, Z* es infinito (ya que los alfabetos son no vacos).

Ejercicios de la Seccin 1.1


1.1.1. De qu conjunto de smbolos se derivan las frases inglesas? 1.1.2. Por qu el lenguaje vaco 0 no es el rnismo que fe}?

www.FreeLibros.com

32

TEORA DE AUTMATAS Y LENGUAJES FORMALES

OPERACIONES CON CADENAS


Si w es una cadena sobre cualquier alfabeto, su longitud se denota mediante el smbolo | w | . La longitud de w es el nmero de smbolos que tiene la cadena. As que, si >v = 121 sobre el alfabeto = { 1 , 2 } , entonces |w | = 3 . La cadena vaca e, no tiene smbolos con lo que le = 0 . Si w y z son cadenas, la concatenacin de w con z es la cadena que se obtie ne al aadir a la cadena w la palabra z- Por ejemplo, si w = banana y Z = rama, la concatenacin de w con z es la cadena bananarama. La con catenacin de las palabras w y z se denota como wz o w - z . Obsrvese que se tie ne que | wz | = | w\ + |z | La concatenacin de la palabra vaca e con cualquier otra palabra w, no mo difica a la palabra w. Por esta razn, se comporta como la identidad con res pecto a la operacin de concatenacin. Vamos a introducir la nocin de potencia de una palabra sobre un alfabeto. Sea w una palabra; para n e N se define si n = 0 ww " ~ *, si n > 0

Por tanto, si w = 122 sobre el alfabeto = {1,2}, se tiene H =


=

122

w2 = 122122 w3 = 122122122 y as sucesivamente. Se dice que w ' es la potencia i-sima de w. Hasta ahora hemos usado el smbolo = de forma intuitiva, sin definirlo. Para ser ms precisos, definiremos la igualdad de cadenas como sigue: si w y z son palabras, se dice que w es igual a z, si tienen la misma longitud y los mismos smbolos en la misma posicin. Se denota mediante w = zLas nociones de sufijo y prefijo de cadenas sobre un alfabeto son anlogas a las que se usan habitualmente. S i w y j t son palabras, se dice que x es prefijo de w, si para alguna cadena y se obtiene que w = xy. Por ejemplo, si w es la cadena 121, entonces la cadena x = 12 es un prefijo de w e y - 1. Si se considera > = , entonces para w = xy se tiene que w = x, con lo que toda palabra puede conside rarse prefijo de s misma. Introduciremos el trmino prefijo propio para denotar aquellas cadenas que son prefijos de una palabra pero no iguales a la misma. Por

www.FreeLibros.com

ALFABETOS Y LENGUAJES

33

Tjso x = 121 es un prefijo de la cadena w = 121, pero no es un prefijo propio de w. Finalmente hay que tener en cuenta que la palabra vaca e es prefijo de cual quier palabra"^ Una cadena w es una subcadena o subpalabra de otra cadena z si existen las cadenas x e y para las cuales z = xwy. La inversa o transpuesta de una palabra w es la imagen refleja de w. Por ejemplo, si w = able entonces su inversa es elba. Para denotar la inversa de w se usa w1 . Una definicin ms precisa de la misma puede ser la siguiente: j _ {w, W a, si w = si w - ay por tanto a e l y y e E *

Por ejemplo, supongamos que x = able . Si se sigue la definicin anterior para calcular w 7 se tiene: x7= (able)7= (ble)7a = (le)7 ba = (e)7 Iba = (e)7 elba = zelba = elba Consideremos la concatenacin de las palabras ab y cd que forma abcd sobre el alfabeto ingls. Sabemos que (abcd)1= deba. Obsrvese que deba = (cd )7 {ab)1. Por lo tanto, si w e y son cadenas y si x = wy, entonces x7= (wy)l = y 1 wl. La inversa se deshace a s misma. Obsrvese que ((abcd Y y = (deba)1 = abcd En general, (x7)7= x.

Ejercicios de la Seccin 1.2


1.2.1. Sea = {1}. Se puede decir que para todo nmero natural n hay alguna pala bra w e E* para la cual | vvj = ni Si w es una cadena de Z* para la cual | w \ n, es nica? Qu ocurrira si Z = {1, ?}?

www.FreeLibros.com

34

TEORA DE AUTMATAS Y LENGUAJES FORMALES

1.2.2. Para una palabra w, se puede decir que

Encontrar una expresin para | vi>'+/ | en trminos de i,j y | w |. 1.2.3. La cadena vaca e es un prefijo propio de s misma? 1.2.4. Definir las nociones de sufijo y sufijo propio de una cadena sobre un alfabeto. 1.2.5. Obtener todos los prefijos, sufijos y subpalabras de la palabra w = bar sobre el alfabeto ingls. 1.2.6. Probar formalmente que (wy)' = y' w'.

1.3

OPERACIONES CON LENGUAJES


Las ideas de concatenacin, potencia e inverso se pueden extender al len guaje en su totalidad. Sean A y B lenguajes sobre un alfabeto. Se define el len guaje concatenacin de A y B como A B - {vv x \w e A y x e B) Por tanto, A B est formado por todas las cadenas que se forman concate nando cada cadena de A con todas las cadenas de B. Por ejemplo, si A = {casa} y B = {pjaro , perro), entonces A B sera el lenguaje {casapjaro, casaperro). Obsrvese que para formar el lenguaje concatenacin A B no es necesario que A y B sean lenguajes sobre el mismo alfabeto. Si A es un lenguaje sobre Xi y B es un lenguaje sobre 2 , entonces A B es un lenguaje sobre Z u 2 - Se suele escribir AB en lugar de A B, cuando la expresin resulta ambigua. Dado que para toda palabra x, x e = x = x, se obtiene que para cualquier lenguaje A, A {} = {} A = A . Es decir, el lenguaje cuyo nico elemento es la palabra vaca, se comporta como la identidad para la operacin de concatenacin de lenguajes. Al igual que para las cadenas, una vez que se ha definido la concatenacin de lenguajes, se puede definir la potencia. Sea A un lenguaje sobre el alfabeto . Definimos f \ |{}, si n = 0 |A A"~ *, si n > 1

Por tanto, si A = {ab} sobre el alfabeto ingls, se obtiene que

www.FreeLibros.com

ALFABETOS Y LENGUAJES

35

A = {e} A l =A = {ab) A 2 = A A 1= {abab} A 3 = A - A 2 - {abcibab } Interesa tener en cuenta que de esta definicin se obtiene que 0 = {}. Puesto que un lenguaje es una coleccin o conjunto de cadenas, se puede definir para el mismo la unin, interseccin y sublenguaje, al igual que se defi nen para los conjuntos en general. Si A y B son lenguajes sobre el alfabeto I , en tonces la unin de A y B se denota mediante A o B y est formada por todas las palabras que pertenecen al menos a uno de los dos lenguajes. Por tanto, A u 5 = {x | x e A o x e B} La interseccin de los lenguajes A y B es el lenguaje A n B = {x|x e A y x e B simultneamente} Luego, A n B est formado slo por las palabras que pertenecen a los len guajes A y B a la vez. Veamos un ejemplo. Consideremos el alfabeto L = { 0 , 1} y los lenguajes A = {e, 0, 1, 10,11} y B = {, 1,0110, 11010}. Entonces A u 5 = {.0. 1. 10, 11,0110, 11010}
y

A n B = {, 1} Antes de ver la relacin que existe entre la concatenacin y la interseccin e unin de lenguajes, es conveniente definir formalmente sublenguaje y la igual dad de lenguajes. Si A y B son lenguajes sobre un alfabeto X y si todas las cade nas de A son tambin cadenas de B, entonces se dice que A es un sublenguaje de B. Dado que esto se corresponde exactamente con el concepto de subconjunto visto en la teora de lenguajes, A c z B denota que A es un sublenguaje de B. Para los lenguajes A = {a, aci, aaa, aaaa, aaciaa} y B = {a" | n = 0, 1,2,...}, se tiene que A c B. Obsrvese que cualquier lenguaje L sobre el alfabeto es un sublenguaje de I*, es decir. L c Z*. Se dice que dos lenguajes A y B son iguales si contienen exactamente las mismas cadenas, es decir, son conjuntos iguales. Se denota con A - B . Los teore mas siguientes muestran la relacin que existe entre sublenguajes e igualdad.

www.FreeLibros.com

36

TEORA DE AUTMATAS Y LENGUAJES FORMALES

T eorem a 1.3.1. Sean A y B dos lenguajes sobre el alfabeto X. Entonces A - B si y slo s i A Q B y B q A. Demostracin. Supongamos en primer lugar que A = B. Tenemos que probar que A c f i y c A . Supongamos que x e A. Puesto que A y B tienen exactamente las mismas cadenas, se obtiene que x e B, de lo que se deduce que A c . Anloga mente, si x es una cadena que pertenece a B, entonces como A y B tienen exacta mente las mismas cadenas, se obtiene que x e A y por tanto B c A . Supongamos ahora que / I c f i y B c A . Esto significa que toda cadena de A est tambin en B y viceversa. Por tanto, A y B tienen exactamente las mismas cadenas, con lo que son iguales. El Teorema 1.3.1 proporciona una forma de determinar oportunamente si dos lenguajes son iguales. Lo usaremos para demostrar que la concatenacin es distributiva con respecto a la unin. T eorem a 1.3.2. i. ii. Dados los lenguajes A, B y C sobre un alfabeto L, se cumple que: A ( B u Q =A B u A C (B u Q A = B A u C A

Demostracin, (i) Probaremos primero que A (B u C) c;A B u A C. Sea x e A (B u C). Entonces x = w y para las cadenas w e A e y e B u C. Puesto que y e B u C. entonces y e B o y e C. Si y e B, entonces w y e A B, y por tanto, w y e A B u A C. Por otro lado, si y e C, entonces w y e A C, con lo que de nuevo tenemos que w y 6 A B u A C. En ambos casos se obtiene que A -(Bu Q
q

A B

A C

Para probar que A B u A C c z A ( B u C ) , supongamos que x e A B u A C. Entonces x e A B o x e A C . S i x e A B, entonces x = u v para las ca denas u e A y v e B. Puesto que v e B entonces v e B u C y, por tanto, uv e A (B u C). Por otro lado, si x e A C, entonces x = w y para las cadenas w e A e y e C. En este caso y puesto que y e C, se tiene que y e B u C, y por tanto, w y e A - ( B u C). Luego A B u A - C c z A ( B u C ) . Luego por el Teo rema 1.3.1 se obtiene que A - ( B u C ) = A B u A - C . La prueba de la parte (ii) es similar y se deja como ejercicio. La relacin que tiene la concatenacin con la interseccin no es tan buena como con la unin. Generalmente, la concatenacin no es distributiva con res pecto a la interseccin. Para verlo, supongamos que A = {a, e}, 5 = { e } y

www.FreeLibros.com

ALFABETOS Y LENGUAJES

37

C = { a } . Obsrvese que A B = { a , e } y A C - { a 2, a}, por lo tanto A - B n A - C = {a}. Por otro lado, B n C = 0, con lo que A (B n C) = 0. Si A es un lenguaje sobre algn alfabeto X, se define la cerradura de Kleene o cerradura de estrella de un lenguaje A como A* = ^ J = oA". Definiremos tambin la cerradura positiva de A como A + = I^J = i A n. Obsrvese que las ca denas de la cerradura de Kleene se forman ai realizar cero o ms concatenacio nes de las cadenas del lenguaje, mientras que la cerradura positiva se forma al realizar una o ms concatenaciones. Por ejemplo, supongamos que A = {a} sobre el alfabeto ingls. Entonces te nemos que A = { e } , A 1 = {}, A 2 = { a 2} y as sucesivamente. Por tanto A* = {e, a, a2, a 3, ...}. Por otro lado, A+ = {a, a2, a 3, ...}. Obsrvese que si X es un alfabeto, entonces X* est formado por todas las concatenaciones de 0 o ms smbolos de X. Precisamente, sta ser la coleccin de cadenas que constituyen el lenguaje universal, el cual tambin se denota por X*. Por tanto, nuestra notacin es consistente. Adems todo lenguaje sobre X es necesariamente un sublenguaje de X*. Es ms, si A es un lenguaje sobre X, se ob tiene que A c X* para todo n = 0, 1, 2, . . . , y por tanto, A* c X y A+ c X+. Ob srvese tambin que puesto que A n c A* para todo n , se tiene que A+ c A*. Final mente, puesto que 0o = {e} y 0 = 0 para todo n > 1, entonces 0* = {e} y 0+ = 0.

Ejemplo 1.3,1 Consideremos = {0, 1,2, 3, 4,5,6, 7, 8, 9} y definamos A como el len guaje formado por las cadenas que no contienen ninguno de los dgitos 2, 3,..., 9. Entonces 8 A, 0 e A y l e A. Tambin 000101001 e A. Obsrvese que si k> 1 y x e Ak entonces x = w\ w2 - W k donde las cadenas w e A. Puesto que las cadenas w no contienen los dgitos 2, 3,..., 9, la cadena x tampoco con tiene ninguno de esos dgitos. Por tanto x e A. Es decir, Ak c: A para k > 1. Por otro lado, si x e A, como e e A se puede poner que

la cual es una cadena de Ak. De aqu que Ac A* para k > 1, y por tanto A = A k para k > 1. De esto se obtiene que
oo o

A+= U Ak = J J A=A k= 1 Jt=l Adems dado que A = {e} c A, se deduce que A* = A u A+ = A kj A =A. Por tanto en algunos casos A* y A+ son el mismo.

www.FreeLibros.com

38

TEORA DE AUTMATAS Y LENGUAJES FORMALES

Si A y B son lenguajes sobre , definiremos la diferencia como A - B = { x | x e A y x g B} la cual es exactamente la misma definicin que se vio en la teora de conjuntos.

Ejemplo 1.3.2 Si A es como en el Ejemplo 1.3.1 y B es el lenguaje de todas las cadenas de ceros, entonces A - B es el lenguaje de todas las cadenas de ceros y unos que tienen al menos un 1. Definimos el complemento de un lenguaje A sobre el alfabeto como A = * - A la cual es tambin una definicin anloga a la dada para el complemento en la teora de conjuntos. Nuevamente nos referiremos al Ejemplo 1.3.1 para obtener que A es el lenguaje de todas las cadenas que contienen al menos uno de los d gitos 2, 3 ,..., 9. La concatenacin y la diferencia de lenguajes son incompatibles de forma similar a como lo eran la concatenacin y la interseccin. En general, A (B-C)^AB-AC. En el siguiente teorema se muestra una igualdad que relaciona las cerradu ras A+ y A*. Aunque el resultado es obvio intuitivamente hablando, conviene ofrecer una demostracin rigurosa de una parte del teorema puesto que es una buena forma de indicar cmo se demuestran tales igualdades. Teorema 1.3.3. Demostracin. xe A+ = A A* - A* A. Sea x e A +. De la definicin de la cerradura positiva se obtiene que i A k, as que para algn o > 1, se sigue que x e Akn.

Puesto queA t(, = A - A*0-1, se obtiene q u e x e A A k~ *, y por tanto o o o o X e U (A A'1 ) = A (_J A = A A*


n=0 n=0

Esto prueba que A + c A A*.

www.FreeLibros.com

ALFABETOS Y LENGUAJES

39

A la inversa, sea o o o o x e A A* = A U An = U (A A 1 ') j ,1=0 = o Entonces, para algn j > 0, se deduce que o o x 6 A Aj = A;+ 1 c ( J Ak = A +
k= 1

Por lo tanto A A* c A+. La demostracin de A+ = A* A es similar y se deja para el lector.

Consideremos el lenguaje A = {ab} sobre el alfabeto ingls.Tenemos que A+ = {(ab )11/ > 1} = {ab, abab, ababab, ...} Entonces podemos considerar el lenguaje (A+ )' para distintos exponentes i. Por ejemplo, si i = 2, se tiene (A+)2 = A + A += {ab ab, ab abab, ab ababab, ..., abab ab, abab abab, abab ababab, ...} Puesto que podemos obtener cada uno de los lenguajes (A+)', entonces tam bin se puede obtener (Apf. Es ms, puesto que (A+)= {e}, tambin se puede considerar que (A+)*. Luego parece que tiene sentido preguntarse cmo son los lenguajes que son cerraduras de cerraduras. Las repuestas son sorprendentemen te sencillas. Si x es una cadena de (A+)+, entonces, puesto que (A+)+ = i (A+ )k, tene mos que para algn n > 1, x e (A+)", y por tanto x = x\ X2 x, donde cada x e A+. Dado que x e A+ = i A', existe algn i > 1 para el cual x e A'1 . Por tanto cada Xi = y,\ y i,2 donde cada y,y e A. Por tanto se obtiene * = Oi.i y 1,2 yi,/,) - 0 2 ,i yi.i yi-t2) - (y,i y ,2 y,u) Pero sta es justamente una cadena perteneciente al lenguaje a ,|+,2 + -" + ". Es ms, puesto que t > 1 para cada i, se obtiene que t\ + t2 + ... + tn > 1 y,t,

www.FreeLibros.com

40

TEORA DE AUTMATAS Y LENGUAJES FORMALES

por lo que es una cadena de A+. Por tanto (A+)+ c A+. Por otro lado, puesto que A+ = (A+)* c i (A+)k = (A+)+, se obtiene que A+ c (A+)+, de lo que se des prende que A+ = (A+)+. De forma similar se puede demostrar que (A*)* =A*. Estos resultados se pueden interpretar como que no se aaden nuevas cadenas a los lenguajes A* o A+, aunque se vuelva a realizar sobre ellos cualquier tipo de cerradura. Esto des vela intuitivamente lo que significa el trmino cerradura. Tambin se puede desarrollar la idea de inverso o transpuesta de un lengua je. El inverso de un lenguaje A es A 1= {x' \x e A} Por ejemplo si A = {dog, bog}, entonces A1 = {god, gob}. Obsrvese que si se vuelve a realizar el inverso del inverso de todas las pa labras de un lenguaje, entonces se obtiene, de nuevo, el lenguaje original. Por tanto, (A1)1= A. El comportamiento del inverso es bueno para la mayora de las operaciones sobre lenguajes, como se muestra en el Ejercicio 1.3.18. El inverso de la concatenacin no slo invierte las palabras concatenadas de los lenguajes sino que tambin cambia el orden de la concatenacin de los len guajes, como se muestra en el siguiente teorema. Teorema 1.3.4. (A B)1= B1 A 1.

Demostracin. Sea x e (AB)1. Entonces x ! e AB, con lo que xJ = yz para las cadenas y e A y z e B. Por tanto, x = (xJ )' = (yz)1= z1 / . Pero dado que z e B, entonces z7 e B1. A dem s y e A, con lo que y 1 e A 1, y por tanto se obtiene que x e B1A1 , lo cual prueba que (A5)7 c Z ?7 A7. A la inversa, si x e B1A 1 , entonces x = uw para alguna palabra u e B1 y w e A 1. Pero entonces x 1= v / ul e AB, con lo que x7 e AB y x e (AB)1. Por eso Bl A7 c (AB)1, y por tanto (AB)1 = B1A7.

Ejercicios de ia Seccin 1.3


1.3.1. Para todo lenguaje A, Qu es A 0? 1.3.2. Sean A = {the, my} y B - {horse, house, hose} lenguajes sobre el alfabeto in gls. Obtener A B, A A y A B B. 1.3.3. Se supone que A = {e, a). Obtener A" para n = 0, 1,2, 3. Cuntos elementos tiene A" para un n arbitrario? Cules son las cadenas de A" para un n arbi trario? 1.3.4. Se supone que A = {e}.'Obtener A" para un n arbitrario.

www.FreeLibros.com

ALFABETOS Y LENGUAJES

41

1.3.5. Sean A = {e, ab} y B = {c<r/}. Cuntas cadenas hay en A" 5 para un n arbitra rio? 1.3.6. Sean A = {a} y B = {b}. Obtener A'1B,ABn y (AB )". 1.3.7. Sean A = {e}, B = [aa, ab, bb), C = {e, aa, ab} y D = 0 el lenguaje vaco. Obte ner A u B , A u C , A u D , B u D y A n B , B r\C , C n D, A n D. Suponer que F es un lenguaje cualquiera. Obtener F u D y F n >. 1.3.8. Probar la parte ii del Teorema 1.3.2. 1.3.9. Si A y B son lenguajes sobre para i = 1 ,2 ,3 ,..., probar que

L U
;= i

= U
i i

(A Bi)

1.3.10. Bajo qu condiciones A* = A+? 1.3.11. Obsrvese que para todo lenguaje A se tiene que 6 A*. Cundo 6 A+? 1.3.12. Probar que {e} = {} = {e}+. 1.3.13. En los Ejemplos 1.3.1 y 1.3.2 por qu no est en los lenguajes A - B y A? 1.3.14. Antes se obtuvo que A* = A u A += {} u A +. Cabra esperar que A+ = A" - {}. Probar que, en general, la expresin no es cierta. Cundo se cumplir que A+ = A* - {}? 1.3.15. Sean A y B dos lenguajes sobre . Probar que A n B = A u B y que A u B =A n B . 1.3.16. Obtener los lenguajes A, B y C tales que A (B - C ) ^ A B -A C . 1.3.17. Probar que (A*)* = A*, (A)+ = A* y (A+)* = A*. 1.3.18. Demostrar que se cumplen las siguiente igualdades para los lenguajes A y i? so bre el alfabeto : (a) ( A kj B)' =A,X ) B I (b) (A n B)' = A, n B l (c) (A)1= (A7) (d) (A+)'= (A ')+ (e) (A*)! = (A1)*

www.FreeLibros.com

42

TEORA DE AUTMATAS Y LENGUAJES FORMALES

PROBLEMAS
1.1. Sea Z = [a, b ,..., z] el alfabeto ingls. Definir la relacin < sobre Z \ de forma que x < y siempre que x preceda a y en orden alfabtico (ordenacin lexicogr fica). 1.2. Sea A un lenguaje sobre el alfabeto Z. Cundo se cumple A = A l 1.3. Sea Z = {a, b, c} y sea L = {c' xcJ\ i,j >0}, donde x se restringe a x = , x = aw o x = wb para algn w e Z. Se cumple que L = E*? Es cierto que L2 = Z*? 1.4. Sea Z = {a, b}. Lo siguiente es una definicin recursiva del lenguaje A: i. ii. iii. iv. 6/ 4. Si x e A, entonces axb y bxa pertenecen a A. Si x e y pertenecen a A, entonces xy pertenece a A. No hay nada ms en A.

(a) Probar que A = {w e Z* | w tiene el mismo nmero de aes que de bes } (b) Si b y estn en A qu ms palabras hay en A l (c) Dar una definicin recursiva para que A c [a, >}* contenga todas las pala bras que tienen el doble de aes que bes. 1.5. Un pa ln d ro m o es una cadena que se lee igual hacia adelante que hacia atrs. Por ejemplo, la palabraa es un palndromo, al igual que la cadena radar. Dar una definicin recursiva de un palndromo (obsrvese que es un palndromo). 1.6. Probar que para los lenguajes A y B, (A u B f = (A* B *)*. 1.7. Desigualdad de McMillan. Aunque la definicin de que un alfabeto es un con junto finito de smbolos es matemticamente correcta, plantea problemas cuan do se trata de aplicarla. Por ejemplo, si Z = {1, 11}, entonces l i l e Z , pero no est claro si 111 = 1 1 1 111 = 1 1 1 111 = 11- 1. El problema es que, aunque desde un punto de vista terico 11 es indivisible (es un nico smbolo y no un par de unos), no tenemos forma de representarlo. Por tanto, aunque w\ 1 11 y 11 1 parecen iguales, no lo son. Segn la igualdad de cade nas, se deben tener los mismos smbolos y en la misma posicin. En este proble ma se puede imponer una condicin a los alfabetos cuyos smbolos son cadenas sobre otros alfabetos. Esta condicin garantiza que no se tenga el problema an terior con respecto a la igualdad de cadenas. Se conoce como la desigualdad de MacMillan y se enuncia como sigue: Desigualdad de McMillan: Sea Z un alfabeto formado por r smbolos. Sean a\, a2, ..., aq cadenas no vacas sobre Z. Si el conjunto {ai, a2, aq} es un alfabeto, entonces >

www.FreeLibros.com

ALFABETOS Y LENGUAJES

43

/= i

La demostracin de la desigualdad de McMillan no es difcil pero requiere una profundizacin en ciertas ideas sobre cadenas. 1. Obsrvese que para las cadenas w\ y w2, |wj| + W '2 i = |mi W 2 I, cmo
( < \n

ser un trmino arbitrario de


/= 1

r"'0'

despus de que se realice el pro-

2.

ducto (pero antes de efectuar cualquier simplificacin)? Sea h = (Oh k, ...,Q \k = k , | +. . . + |a , |} Es decir, h es la coleccin de -tupias de los ndices de las a, que pueden ser usadas para formar cadenas de longitud k. Sea Mk = | /-|, que es el n mero de cadenas de las a que forman cadenas de longitud k. Probar que

= 1

k =n

3.

donde r = max {! 1 !. | aj \,.... | a | ). Por la parte 2. puesto que < i* para todo k. se obtiene que
< i

IH *
=t Probar que si

< n (t - 1) < nt

4.

se llega a una contradiccin y por tanto se cumple la desigualdad de McMillan. La desigualdad de McMillan se usa para deducir un resultado ms fuerte. Sean /|, /2, ..., lq, q nmeros naturales y Z un alfabeto con r= | z l . Existi rn q cadenas a\, a2,..., aq en F de longitudes l\, h , l q, respectivamente, que formarn un alfabeto si y slo si

www.FreeLibros.com

TEORA DE AUTMATAS Y LENGUAJES FORMALES

1.8. Cadenas exentas de cuadrados y exentas de cubos. Sea E un alfabeto. Una

cadena w e E* se dice que est exenta de cuadrados si w no es de la forma uv2 x para las subpalabras u,x y v, donde x e. La definicin de cadena exenta de cu bos es similar. La cadena w est fuertemente exenta de cubos si no contiene nin guna subcadena de la forma x2 a, donde x &e y a es el primer smbolo de x. 1. Probar que ninguna cadena de longitud mayor o igual que 4 sobre un alfa beto de cardinalidad 2 puede estar exenta de cuadrados. Sea w e E ' . Una cadena w' e E* para la cual | w| = | vv' | es una inter pretacin de w si se satisface la siguiente condicin: Sea 1 < i < | w\ y 1 <j < \ w \. Si los smbolos i-simo y y-simo de vv son distintos, entonces los smbolos i y j de W son tambin distintos. Por ejemplo, si vv = aaabab, entonces cdefgh y cdcece son interpreta ciones de w, sin embargo cdefgc no lo es. Probar que si w est exenta de cuadrados, exenta de cubos o estrictamente exenta de cubos, entonces toda interpretacin de vv tambin lo est. Una -cadena (omega cadena) es una secuencia infinita de smbolos sobre un alfabeto. Es decir, oo-cadenas son cadenas de longitud infinita. Sea w, una co-cadena exenta de cuadrados, exenta de cubos o estrictamente exenta de cubos sobre E en la cual aparecen todos los smbolos de E. Su pongamos que E' es un alfabeto que contiene estrictamente a E (es decir, E c E'). Probar que se puede construir una co-cadena a partir de vv, que es tar tambin exenta de cuadrados, exenta de cubos o estrictamente exenta de cubos (como lo es vv) y que contendr todos los smbolos de E'. Si una cadena u co-cadena w est exenta de cuadrados, se puede espe rar que u- contenga dos ocurrencias de la misma subcadena x, es decir, una subcadena de la forma xy = zx para la cual 1 < | j | = || < | x | . Algunas pruebas sencillas sugieren que la construccin de dicha w es ms difcil de lo que parece. De hecho, no es posible! Probar que si vv es una cadena o co-cadena que contiene una subcadena xy de forma que xy = z x y 1 < |>'| = |z| < |x|, entonces vv no est exenta de cuadrados.

2.

3.

4.

www.FreeLibros.com

2
Lenguajes regulares

2.1

LENGUAJES SOBRE ALFABETOS

No es una coincidencia el que la mayora de los lenguajes considerados hasta ahora hayan sido bastante sencillos. Los procesos vistos hasta ahora para deter minar qu cadenas pertenecen a un lenguaje sobre algn alfabeto resultan pe sados y laboriosos excepto para * y algn otro lenguaje sencillo. Nuestro obje tivo a partir de ahora ser la definicin de lenguajes esto es, especificar exac tamente qu cadenas componen un lenguaje . Ya que todos los lenguajes sobre son sublenguajes del lenguaje universal *, tiene sentido determinar primero cuntos sublenguajes tiene * para un alfabeto en particular. Comenzaremos estudiando el propio *. Como ejemplo, consideremos el alfabeto = [a, b}. Para todo nmero na tural n, hay slo un nmero finito de palabras sobre cuya longitud es n. (Cuntas hay?). An ms, dichas cadenas se pueden ordenar lexicogrficamen te. Por lexicogrficamente, se entiende la forma en la que estaran ordenadas en el diccionario. Por conveniencia, numeraremos como 0, despus numeraremos las palabras de longitud 1 y, en general, numeraremos las palabras de longitud n + 1 despus de las de longitud n. As tenemos

www.FreeLibros.com

46

TEORA DE AUTMATAS Y LENGUAJES FORMALES

e 0 a 1 b 2 aa 3 ab 4 ba 5 bb 6 aaa 7 y as sucesivamente De manera ms general, supongamos que tenemos un alfabeto arbitrario E. Puesto que todos los alfabetos son finitos, podemos asignar un orden arbitrario a los caracteres pertenecientes a E. As, sin prdida de generalidad, podemos es cribir E = {|, Cl2, J/i}

Numeraremos las palabras de E* de la misma forma. e < 3 1 a2 an a\a i 0 1 2 n n+ 1

a\ 2 n + 2 y as sucesivamente Esta tcnica de asignar nmeros naturales a las cadenas de un lenguaje, se puede realizar de forma ms precisa. Volviendo al ejemplo original, donde E = {a, b}, haremos que cada cadena sobre E sea representada por un nmero en binario, usando los dgitos 1 y 2 en vez de 0 y 1. Sea a el 1 y b el 2, entonces se obtiene 8 a b aa ab abaa 0 1 2 11=3 12 = 4 1211 = 19

De esta forma, cada palabra est representada por un entero nico. Esto no ocurrira si hubisemos usado el 0 para representar a a y el 1 a b, ya que a1 esta ra representada por 0, par^ todo i > 0.

www.FreeLibros.com

LENGUAJES REGULARES

47

O bsn c e que para todo nmero natural m , existe una nica representacin :1 m isr base n. Por eso podemos encontrar una cadena en Z* correspon diente a Si m > 0, entonces debemos obtener la representacin de m en base 2 sando 1 utos 1 y 2 en vez de 0 y 1). Para ello, se concatenan los caracteres que corresponden a los dgitos que aparecen en la representacin de m en base 2. As, si ni 3 2 , primero se convierte m a 11112 y entonces se concatenan las aes ia bes ha.-aa obtener aaaab. Hemos \ isto una forma de relacionar las cadenas de Z* con los nmeros nap rales, de na que cada cadena est representada por un nico nmero natural y cada mime, o natural representa a una nica cadena. Esto, esencialmente, defi ne una funcin de N a Z*, con lo que, de hecho, se ha esbozado la demostracin del siguiente eorema: Teorem a 2.1.1. Para todo alfabeto X. X* es infinito numerable.

Ahora ano ya sabemos el tamao de Z*, se puede determinar cuntos sublenguajes d Z* existen y, en consecuencia, cuntos lenguajes hay sobre el al fabeto Z. Teo 1.1.2. El conjunto de todos los lenguajes sobre Z no es numerable.

Demostrc ion. S. -ngam os que el conjunto de todos los lenguajes sobre Z es numeraLian. >s a dicho conjunto L . Puesto que L es numerable, puede ser enu: erado de ;a ; >rma Ao, Ai, Az , ... Usaremos el mtodo de la diagonalizacin para gar a una .: ntradiccin. Sabe: 'v . que Z* es numerable y por tanto puede ser enumerado como vo, .......S>.;; {v v ,-1 vv/ A}. Luego B est formado por las palabras que no pertecen ; uaje que tiene el mismo ndice que las mismas. Obsrvese que B ( . un con/! ,; ! de cadenas sobre Z y que, por tanto, es un lenguaje. De aqu que . =Ak, para algn k. Obsrvese que si B. entonces Wk no est en A k - B . Por tanto, ir* est y no est en Ak, lo cual es una contradiccin. Por otro lado, si a ; g B, entoaces, de la definicin de B, se obtiene que es una cadena de = B y es; :n B. Por tanto, W f. est y no est en B, con lo que se llega a otra ntradic Dado que w* debe o estar en B o no estar en B, la suposicin de qu el conjunto de todos los lenguajes sobre Z es numerable es falsa. Luego el conjunto no es numerable. El T< na 2.1.2 proporciona una idea acerca de la magnitud del problema de espedirn- lenguajes: hay una cantidad innumerable de lenguajes que especiar sobre un alfabeto en particular. No existe ningn mtodo de especificacin i lenguajes que sea capaz de definir todos los lenguajes sobre un alfabeto. Esto nifica ado un mtodo de representacin de lenguajes, hay lenguajes que

www.FreeLibros.com

48

TEORA DE AUTMATAS Y LENGUAJES FORMALES

no son representabas. Por otro lado, unos mtodos tienen mayor fuerza expresi va que otros, es decir, unos definen ms lenguajes que otros. Con el estudio de estos mtodos de investigacin podemos hacernos una idea de la naturaleza mis ma de la computacin.

Ejercicios de la Seccin 2.1


2.1.1. Para el alfabeto Z = [a, b] y usando la aplicacin E * - 4 N dada en este aparta do, cuntas palabras de longitud 3 hay? Y de longitud 5? Y de longitud kl Cul es el ltimo nmero asignado a las palabras de longitud 2? Y a las de longitud 5? Y a las de longitud kl 2.1.2. En el caso general de que haya n caracteres en el alfabeto Z cuntas palabras de longitud k habr? Si ordenamos las palabras de Z en orden lexicogrfico y les asignamos nmeros comenzando por el 0 para 8 Cul ser el nmero asig nado a la ltima palabra de longitud k ? 2.1.3. Usando los dgitos 1 y 2 en vez de 0 y 1, obtener la representacin binaria del nmero decimal 22. Cul es la palabra perteneciente a Z* = (a, b}* correspon diente al nmero (en base decimal) 22? 2.1.4. Ampliaremos la idea precedente para Z = [a, b, c) usando una representacin ternaria con los dgitos 1, 2, 3. Supongamos que a est asociado con 1, b con 2 y c con 3. Cul ser el entero decimal que corresponde a la palabra abbacca de Z*? Encontrar la palabra de Z* correspondiente a 20.

2.2

LENGUAJES REGULARES Y EXPRESIONES REGULARES


El primer mtodo para especificar lenguajes que vamos a estudiar define el con junto de lenguajes llamado lenguajes regulares sobre un alfabeto. Los lenguajes regulares son interesantes desde el punto de vista prctico porque pueden ser usados para especificar la construccin de analizadores lxicos programas que analizan un texto y extraen los lexemas (o unidades lxicas) que hay en el mis mo. Para un alfabeto Z dado, los lenguajes regulares sobre Z son interesantes desde el punto de vista terico porque ellos constituyen el menor conjunto de lenguajes sobre Z que es cerrado con respecto a las operaciones de concatena cin, la cerradura de Kleene y la unin de lenguajes y adems contiene el len guaje vaco 0 y los lenguajes unitarios {a} para a e Z.

Definicin 2.2.1. Sea Z un alfabeto. El conjunto de los lenguajes regulares sobre Z se define recursivamente como sigue:

www.FreeLibros.com

LENGUAJES REGULARES

49

(a) 0 es un lenguaje regular. (b) {} es un lenguaje regular. (c) Para todo a e , {a} es un lenguaje regular. (d) Si A y B son lenguajes regulares, entonces A u B, A B y A* son len guajes regulares. (e) Ningn otro lenguaje sobre Z es regular. Por tanto, el conjunto de los lenguajes regulares sobre E est formado por el lenguaje vaco, los lenguajes unitarios incluido {} y todos los lenguajes obteni dos a partir de la concatenacin, unin y cerradura de estrella de lenguajes.

Ejemplo 2.2.1 Dado = {a, b}, las siguientes afirmaciones son ciertas: 0 y {} son lenguajes regulares. {a} y {b } son lenguajes regulares. {a, b} es regular jorque es la unin de {a} y {&}. [ab] es regular. [a, ab, b] es regular. {a'|/ > 0} es regular. {a1b> \ i > 0 y j > 0} es regular. {(ab)| / > 0} es regular. El lenguaje de todas las cadenas sobre [a, b, c} que no tienen ninguna sub cadena ac es un lenguaje regular? Para responder a esta pregunta, consideremos que A es ese lenguaje. Si A es regular, entonces puede ser escrito en la forma que se indica en la definicin. Obsrvese que las unidades de construccin bsica son los lenguajes {a}, {b}, { c } , 0 y {}. Supongamos que w es una palabra per teneciente a A. Entonces vv comienza por 0 ms ces. Si las suprimimos obtene mos una subcadena w que no empieza por ningn carcter c. sta subcadena es tar constituida por aes, bes y ces, donde cualquier bloque de ces sigue a las bes. Es ms, no puede haber ningn bloque de ces al principio de vv'. Por eso se tiene w 'e ({a} u {>} {c}*)* y por tanto w e { c } * ( { a } u { b } {c}*)* de lo cual se obtiene Ac{c}*({a}u{fe}{c}T

www.FreeLibros.com

50

TEORIA DE AUTMATAS Y LENGUAJES FORMALES

Para probar la otra inclusin, obsrvese que si u es una cadena que tiene una subcadena ac entonces u< {c}*({a} u {b } { c } T ya que no hay forma de que una c pueda seguir a una a. Por tanto { c } * ({ a } u { } { c } y < z A Podemos simplificar la especificacin de un lenguaje regular introduciendo un especie de abreviatura llamada expresin regular. Convenimos en escribir a en lugar del lenguaje unitario {a}. Por tanto denota denota denota denota [a, b) {ab} {}*; {a}+

ab a* a+

Adems, se establece que el orden de precedencia de los operadores *, u y es * primero, el siguiente y u el ltimo. Esto reduce la necesidad del uso de pa rntesis y hace que las expresiones sean ms fciles de leer. Por ejemplo, una expresin ({ a } * { } )u {c}, se reduce a la expresin regulara*/? u c. A continuacin definiremos de forma recursiva lo que es una expresin re gular sobre el alfabeto X, usando la notacin convenida: 1. 2. 3. 4. 0 y e son expresiones regulares. a es una expresin regular para todo a e X. Si r y 5 son expresiones regulares, entonces r u s, r s y r* tambin lo son. Ninguna otra secuencia de smbolos es una expresin regular.

Comparando esta definicin con la definicin de lenguajes regulares se de duce que toda expresin regular sobre X denota un lenguaje regular sobre X. Por ejemplo, el lenguaje de todas las cadenas sobre {a, b, c) que no tiene ninguna subcadena ac se denota mediante la expresin regular c* (a u be*)*. Cuando sea necesario distinguir entre una expresin regular r y el lenguaje denotado por la misma, usaremos L (r) para denotar el lenguaje. En cualquier caso, si se afirma que w e r, ello equivale a decir que w e L (r). Si r y s son ex presiones regulares sobre el mismo alfabeto y si L (r) = L (s), entonces se dice que r y s son equivalentes . En el caso de que r y s sean equivalentes se puede es-

www.FreeLibros.com

LENGUAJES REGULARES

51

cribir r - s. Tambin se puede usar r c 5 en el caso de que L ( r ) c L (s). Obsr vese que para obtener r - s se debe demostrar que r c j c r . / Fjese que de la definicin de cerradura de estrella para lenguajes se obtiene que 0* = {e}, y en trminos de expresiones regulares se tiene que 0* = e. Por tan to, se podra omitir en la definicin de expresiones regulares. No obstante, como es una forma de abreviar 0*, se incluir , ms por conveniencia que por necesidad. Igualmente, abreviaremos la expresin rr por medio de r+. Obsrvese que hay muchas expresiones regulares que denotan el mismo lenguaje. Por ejemplo (ab)* y u ( i u ) f b denotan el mismo lenguaje: el len guaje de todas las cadenas con 0 ms aes y bes, que son tanto la cadena vaca como las que tienen una b al final. Por tanto, (a*bY = u ( a u l ) ) ' b. Se pueden simplificar las expresiones regulares reemplazndolas por otras equivalentes pero menos complejas. Por ejemplo, la expresin ab u u (a u b)* b puede ser sustituida por ab u (a*b)*. Existen muchas equivalencias con respecto a expresiones regulares basadas en las correspondientes igualdades de lenguajes. Las resumimos en el siguiente teorema. Teorema 2,2.2. tonces:
1.

Sean r, ,v y t expresiones regulares sobre el mismo alfabeto Z. En-

r u = juc.
r u 0 = r = 0 u r. r u r= r. ( r u i ) u = r u (.v u t). / = r = r. i'0 = 0 r ~ 0 . (rs) t = r (st). r ( s U ) = rs u rt y ( r u s ) l ~ t 1 u st. r* = /* = r V = (e U r)* ~ r* ( r u e ) = ( r u ) r = u r r .

2.
3. 4. 5.

7.

8.
9.
10.
11.

(r u s)* - (r u s Y = (r s*)* = (r'sf r = r* (,sr*)*. r (sr)' = (rs)* r.


(r*s)* = U ( r u s)a s.

12.

13. 14. 15.

(rs*)* = e u r (rus)*, s (r U )* (r u ) u s = sr*.

www.FreeLibros.com

52

TEORA DE AUTMATAS Y LENGUAJES FORMALES

Muchas de estas igualdades se pueden demostrar mediante reasociacin. Como muestra, consideremos la igualdad 11, r (.sr)* = (rs)* r. Si vv e r (sr)*, en tonces vv = ro (.si n ) ... (sn r) para algn n > 0. Puesto que la concatenacin es asociativa, se puede reasociar la ltima expresin, con lo que se obtiene w = (ro s i) (ri 52 ) (rn - 1 sn) rn e (rs)* r. De aqu se obtiene que r (sr)* c (rs)* r [o L (r (sr)*) c L ((rs)* r)]. Igualmente se puede probar que ( r s ) * r c r (jr)* con lo que se demuestra la igualdad. Para probar igualdades tambin se puede hacer uso de las igualdades ya co nocidas. Por ejemplo, si r = s*t, entonces r = / = ( e u 5+) t = ( e u ss*) t = u ss*t = t u sr
= iru

ya que s = e u j + por (8) por (5)


por(l)

lo cual prueba que r = s*t, implica que r = r u . /

Ejercicios de ia Seccin 2.2


2.2.1. Verificar, aplicando la definicin de lenguaje regular, que los siguientes son lenguajes regulares sobre Z = [a, b}:

(a) {'l > 0).


(b) {a11i > n } para un n > 0 fijado. (c) {vv e Z* | vv termina con a }.

2.2.2. Verificar que el lenguaje de todas las cadenas de unos y ceros que tienen al me nos dos ceros consecutivos, es un lenguaje regular. 2.2.3. Los identificadores de Pascal son cadenas de longitud arbitraria compuestas por caracteres alfabticos y por dgitos. Los identificadores de Pascal deben empe zar por un carcter alfabtico. Es este lenguaje un lenguaje regular? 2.2.4. Obtener una expresin regular que represente el lenguaje de los identificadores de Pascal. 2.2.5. (a) (b) Probar que (r u )* = r*. Probar que (b u aa*})) u (b u aab) (a u bab)* (a u bab) y a*b (a u ba'b)* son equivalentes.

2.2.6. Sobre [a,b,c) son equivalentes las parejas de expresiones regulares de cada apartado?

www.FreeLibros.com

LENGUAJES REGULARES

53

(a) (a u b)* a* y ((a u b) a)*. (b) 0** y e. (c) ((a u b) c)* y (ac u be)*. (d) b (ab u ac) y (ba u ba) (b u c). 2.2.7. Simplificar: (a) 0 * u a * u l) u ( a u 6)(b) ((aV)* (b*a*)*)*. (c) (a*b)* u (b*a)*. (d) (a u b)* a(a'U b)*. 2.2.8. Probar que (aa)* a = a (aa)*. 2.2.9. Simplificar las siguientes expresiones regulares: (a) (e u aa)*. (b) ( u aa) (e u aa)*. (c) a (e u aa)* a \ j . (d) a (e u aa)* ( u aa) u a. (e) (a u e) a*b. (f) ( u aa)* ( u aa) a v j a. i \ (g) ( u aa) ( u aa)* ( u aa) u ( u aa). (h) ( u aa) ( u aa)* (ab u b) u (ab u b). (i) (i) (1) ( a u b) ( u aa)* ( u aa) u f o u b). (aa)* a kj (aa)*.

(k) a*b ((a u b) a*b)* u a*b. a*b ((a u b) a*b)* (a u b) (aa)* u a (aa)* u a*b ((a u b) a*b)*.

AUTMATA FINITO DETERMINISTA


Consideremos el lenguaje regular A representado por c* (a u be*)*. Si dada una cadena vv se nos pregunta si vv pertenece a A, debemos analizar no slo los carac teres que aparecen en vv, sino tambin sus posiciones relativas. Por ejemplo, la cadena abc 5ciab est en A, sin embargo cabacbc no lo est. Podemos construir un diagrama que nos ayude a determinar los distintos miembros del lenguaje. Tal diagrama tiene la forma de un grafo dirigido con informacin adicional aa dida, y se llama diagrama de transicin. Los nodos del grafo se llaman estados y se usan para sealar, en ese momento, hasta qu lugar se ha analizado la cade-

www.FreeLibros.com

54

TEORA DE AUTMATAS Y LENGUAJES FORMALES

na. Las aristas del grafo se etiquetan con caracteres del alfabeto y se llaman transiciones. Si el siguiente carcter a reconocer concuerda con la etiqueta de al guna transicin que parta del estado actual, nos desplazamos al estado al que nos lleve la arista correspondiente. Naturalmente, nosotros debemos comenzar por un estado inicial, y cuando se hayan tratado todos los caracteres de la cadena co rrespondiente, necesitamos saber si la cadena es legal. Para ello se marcan ciertos estados como estados de aceptacin o estados finales. Si cuando ha sido tratada la cadena en su totalidad terminamos en un estado de aceptacin, enton ces la cadena es legal. Marcaremos el estado inicial con una flecha ( ) y alre dedor de los estados de aceptacin trazaremos un crculo. Por ejemplo, el diagrama de la Figura 2.1 acepta todas las cadenas que estn formadas por 0 ms aes seguidas por una nica b. Obsrvese que para toda ca dena de la forma ak b, para k > 0, el recorrido del diagrama termina en un estado de aceptacin. El recorrido del mismo con cualquier otra cadena de aes y bes (incluida la cadena vaca) termina en cualquier otro estado, pero ste no es de aceptacin. a

a, b

'4 '
a, b

Figura 2.1

Considrese el lenguaje A = {{ab)L\i > 1}, el cual est representado por la expresin regular (ab)+. Obsrvese que una cadena de este lenguaje ha de tener al menos una copia de ab. Por tanto, si se construye un diagrama de transicin para este lenguaje, el estado inicial no puede ser tambin estado de aceptacin. Es ms, si estando en el estado inicial se encuentra el carcter b, esto indica que la cadena no puede ser aceptada. Por tanto, hay dos transiciones a partir del esta do inicial, una para a y otra para b. La transicin correspondiente a , nos lleva a un estado en el que se espera encontrar como siguiente carcter de la cadena, una b. Si se obtiene b, entonces nos desplazaremos a un estado de aceptacin. Luego, si no hay ms caracteres a considerar, se habr identificado una cadena legal. Si no se han agotado los caracteres de la cadena, tomaremos la transicin apropiada que parta de dicho estado. El diagrama de transicin para A es el que se muestra en la Figura 2.2. ~7 Obsrvese que se tiene un nico estado de aceptacin. Si el anlisis termina en cualquier otro estado, la cadena no est correctamente construida: Obsrvese,

www.FreeLibros.com

LENGUAJES REGULARES

55

a, b a.

Figura 2.2

tambin, que una vez que se identifica un prefijo incorrecto, se realiza un des plazamiento a un estado que no es de aceptacin y se permanece en el mismo. Consideremos el lenguaje (ab)*. En este caso si se acepta la cadena vaca. Por tanto, el estado inicial tambin es de aceptacin. El diagrama de transicin correspondiente se muestra en la Figura 2.3.

b a

tr a, b

Figura 2.3

Vamos a etiquetar los estados del ltimo diagrama de transicin con las le tras q, para i = 0, 1,2. Obtendremos la Figura 2.4. Podemos representar el diagrama de la Figura 2.4 por medio de una tabla que indica el siguiente estado al que desplazarse, desde un estado combinado con un smbolo de la entrada (Figura 2.5).

b a

a, b

F ig u ra 2.4

www.FreeLibros.com

56

TEORA DE AUTMATAS Y LENGUAJES FORMALES

Obsrvese que la tabla para nuestro diagrama de transicin tiene, para cada par estado actual-entrada, un nico estado siguiente. Por tanto, para cada estado actual y smbolo de entrada, se puede determinar cul ser el estado siguiente. Se puede pensar que el diagrama representa la accin de alguna mquina. Esta mquina puede pasar por diferentes estados. El cambio de estado depende de la entrada y del estado en que se encuentre. Dicha mquina se llama autmata fin i to, una computadora ideal. El autmata finito se define en trminos de sus esta dos, la entrada que acepta y su reaccin ante la misma. Hay autmatas finitos de dos tipos, deterministas y no deterministas, dependiendo de cmo se defina la capacidad para cambiar de estado. El autmata que corresponde a la Figura 2.5 para (ab)* es determinista.
EstadcAEntrada a C t\ < ?2 < 7 2 b 92 (lo < 7 2

Formalmente, un autmata finito determinista M es una coleccin de cinco elementos. 1. 2. 3. 4. 5. Un alfabeto de entrada Z. Una coleccin finita de estados Q. Un estado inicial 5. Una coleccin F de estados finales o de aceptacin. Una funcin 5: Q x Z Q que determina el nico estado siguiente para el par (g, o) correspondiente al estado actual y la entrada.

Generalmente el trmino autmata finito determinista se abrevia como AFD. Usaremos M = (Q , Z, s\ F, 8) para indicar elconjunto deestados, el alfabe to, el estado inicial, el conjunto de estados finales y lafuncin asociada con el AFD M. Por ejemplo, el AFD correspondiente al ejemplo anterior se representa me diante M - (Q, Z, s, F, 5), donde Q = {< 70, qu < 72} Z {a,b} s = qo F = {q o )

www.FreeLibros.com

LENGUAJES REGULARES

57

8 se define mediante la tabla de la Figura 2.6.


6 ?o < 7 i (2 a < 7 1 < 2 Q 2 b < ? 2 qo < 1 2 Figura 2.6

La caracterstica principal de un AFD es que 6 es una funcin. Por tanto, 8 se debe definir para todos los pares (q, o) de Q x I . Esto significa que sea cual sea el estado actual y el carcter de la entrada, siempre hay un estado siguiente y ste es nico. Por tanto, para un par (q , a ) hay uno y slo un valor de la funcin (estado siguiente), (q , 0 ). En otras palabras, el estado siguiente est totalmente determinado por la informacin que proporciona el par (q, a). Se puede crear un diagrama de transicin a partir de la definicin de un AFD. Primero, creamos y etiquetamos un nodo para cada estado. Entonces, para cada celda q de la fila correspondiente al estado q, trazamos una arista desde q a qj, etiquetada con el carcter de entrada asociado a qj. Finalmente, se marca el nodo 5 con una flecha, y se trazan unos crculos en todos los nodos de F para in dicar' cules son los estados de aceptacin. Por tanto, el diagrama de transicin para el AFD M - {Q, , .y, F, 8}, donde Q = {qo, < 7 1} E = {a, b } ^={<70} s = qo y 8 representada mediante la Figura 2.7
8 < ? 0 9i a < ?o. < ? i < ? o
Figura 2.7

se muestra en la Figura 2.8.


a

------->

F ig u r a 2.8

www.FreeLibros.com

58

TEORA DE AUTMATAS Y LENGUAJES FORMALES

Consideremos otro ejemplo. El AFD M - {Q , X, s, F, 5} representado por Q = Wo, <?i, <?2, q 3 } Z = {a ,b } (*) J - 9 0 F={ < 70 , <?i,<?2 } y 8 dada por la tabla de la Figura 2.9. 5 < ? o < ? i < ? 2 < ? 3 a < ? o 9o qo < 7 3 b < ? i < 7 2 < 7 3 < ? 3
Figura 2.9

El diagrama de transicin correspondiente se muestra en la Figura 2.10.


a

------- ------------------ >---------- -------->-------------------- b (J% < ? 2 q3


a

Figura 2.10 "T Ejercicios de la Seccin 2.3 c^

2.3.1. Obtener la expresin regular que representa al lenguaje formado por todas la cadenas sobre {a, b} que tienen un nmero par de bes. Construir el diagrama de transicin para este lenguaje. 2.3.2. Construir el diagrama de transicin para el lenguaje dado por c* (a u be*)*. Convertir el diagrama en una tabla como la dada en la Figura 2.5, etiquetando los estados qo,q\, ... 2.3.3. Sea M= {Q, Z, s, F, 5} dado por
Q = {<?0,<7l,<72,?3}

= {0 ,1 } {^0 } 5= < ?0 y 8 dada por la tabla de la Figura 2.11.

www.FreeLibros.com

LENGUAJES REGULARES

59

5 Qo

0 < 72 < 73

1 < ?1 qa < 7 3

< 1 2 43 <7i

< 72

Figura 2.11

Construir el diagrama de transicin. Obtener la secuencia de estados por los que se pasa para aceptar la cadena 1 1 0 1 0 1 (el carcter del extremo izquierdo es el primero en ser analizado). 2.3.4. La Figura 2.12 es un diagrama de transicin correspondiente a un AFD? Por qu o por qu no?

H>-

cr

Figura 2.12

AFD Y LENGUAJES
Para trabajar con los AFD es necesario usar ciertas definiciones y notaciones. Si M es un AFD, entonces el lenguaje aceptado por M es L (Ai) = {vv e L* | w es aceptada por M } Por tanto, L (M) es el conjunto de cadenas que hacen que M pase de su esta do inicial a un estado de aceptacin. Por ejemplo, el lenguaje aceptado por el AFD (*), presentado en la ltima seccin, es L (.M) = {vv e [a, b } | vv no contiene tres bes consecutivas} Merece la pena hacer hincapi en que L (M ) est formado por todas las ca denas aceptadas por M, y no que es un conjunto de cadenas que son todas acep tadas por M. Para cada (q , a) de Q x I . 5 (q, a ) es un estado perteneciente a Q, y l mis mo puede ser emparejado con la entrada. Este par se transforma mediante 8 en un nuevo estado de Q. En particular, si q o es el estado inicial de M y se tiene

www.FreeLibros.com

60

TEORA DE AUTMATAS Y LENGUAJES FORMALES

como entrada la cadena C 1 G2 0 3 , el estado resultante se obtiene mediante la apli cacin de 8 ( 8 (8 (qo, Ot), G2), 0 3 ). Por ejemplo, para el AFD (*) de la ltima seccin, se tiene 8 ( 8 ( 8 ( 8 (qo, b), b), a), b ) = q\ para la cadena bbab. Obsrvese la aplicacin recursiva de M sobre la cadena. Advirtase, tambin, que escribir esta expresin es un proceso bastante laborioso. Nos pondremos de acuerdo en usar 8 (qo, bbab) para abreviar 8 ( 8 ( 8 ( 8 (qo, b), b), a), b). Para ser ms precisos, si q e Q y vv es una cadena de la forma a w' para algn a e E y una subcadena vv', definiremos 8 (q, w) como 8 (8 (q, a), w'). Diremos que dos AFD M\ y M i son equivalentes si L (M \) = L (Mi). Por ejemplo, sean M\ y M 2 sobre el alfabeto E = {a }, representados por los siguien tes diagramas de transiciones

Mi:

M2:

Ambos aceptan el lenguaje a+ y, por tanto, son equivalentes. Por otro lado, sea M 3 dado por el siguiente diagrama

My.

no es equivalente a Mi o Mz (por qu?). Obsrvese que M4 dado por el diagra ma de transicin siguiente

Mi: ----- >

es equivalente a M 3 y es ms sencillo" puesto que tiene menos estados. Los problemas del final del captulo estudian las dificultades que existen para deter minar si dos AFD son equivalentes y para transformar un AFD en otro equiva lente que sea ms sencillo.

Ejercicios de la Seccin 2.4


2.4.1. Sea M un AFD. Cundo pertenecer a L (Ai)? 2.4.2. Construir los AFD que aceptan cada uno de estos lenguajes sobre [a, b}: (a) {vv| toda a de w est entre dos bes }

(b) {w\w contiene la'subcadena abab}

www.FreeLibros.com

LENGUAJES REGULARES

61

(c)

{iv| vv no contiene ninguna de las subcadenas aaobb)

(d) {vv| vv tiene un nmero impar de aes y un nmero par de bes } (e) {w | w tiene ab y ba como subcadenas} 2.4.3. Sea S el conjunto de todos los AFD sobre el alfabeto . Sea R c z S x S larela cin definida de manera que: (Mu M2) est en i? si y slo si M\ esequivalente a M2 (como autmatas finitos). Probar que R es una relacin de equivalencia en S (y, por tanto, que la definicin de equivalencia de AFD es consistente con el uso matemtico habitual de los trminos).

AUTMATA FINITO NO DETERMINISTA


Si se permite que desde un estado se realicen cero, una o ms transiciones me diante el mismo smbolo de entrada, se dice que el autmata finito es no deter minista. A veces es ms conveniente disear autmatas finitos no deterministas (AFN) en lugar de deterministas. Consideremos el lenguaje a*b u ab*. Las cade nas pertenecientes a este lenguaje estn formadas por algunas aes seguidas de una b o por una a seguida de varias bes. El AFD que acepta A se representa por medio del diagrama de transicin de la Figura 2.13.

Figura 2.13 Aunque el lenguaje es relativamente sencillo, debemos detenem os en poder determinar si este diagrama de transicin corresponde al AFD de A. Primero se debe comprobar que reconoce slo las cadenas pertenecientes a A, y despus, si representa a un AFD. Para ello, debemos comprobar que las reglas de transicin constituyen una funcin, es decir, que de cada estado parte una y slo una transi cin para cada smbolo del alfabeto. Consideremos ahora el diagrama de transicin de la Figura 2.14. Obsrvese que este diagrama acepta slo las cadenas pertenecientes a A. Fjese tambin que las reglas de transicin no son una funcin de "Q x en Q porque no asigna un estado siguiente a los pares estado-entrada (< 74, a), (< 73 , a), (43, b), (< 72 , o) y (q2, b). Es ms, existe_ms de un estado siguiente correspondiente al par (qo, a).

www.FreeLibros.com

62

TEORA DE AUTMATAS Y LENGUAJES FORMALES

93

Figura 2.14

Este diagrama de transicin representa a un AFN. Finalmente, obsrvese que en este diagrama es ms fcil determinar qu lenguaje se acepta. Si tratamos de definir el trmino autmata finito no determinista, veremos / que la mayor parte de la definicin se puede obtener a partir de la de AFD. Es decir, tendremos un conjunto finito de estados Q, un alfabeto de entrada E, un estado inicial o de partida s, un conjunto de estados de aceptacin F y una regla de transicin. La nica diferencia que existe se encuentra en las reglas de transi cin. En un AFN, las reglas asocian pares (q, o) con cero o ms estados. Se pue de decir qu las reglas relacionan pares (q , a ) con colecciones o conjuntos de es tados. Esto significa que la regla es una relacin entre Q x E y <2. o sobre (Q x L) x Q. Por tanto, definiremos una autmata finito no determinista median te una coleccin de cinco objetos ( Q , E, s, F, A), donde 1. 2. 3. 4. 5. Q es un conjunto finito de estados. E es el alfabeto de entrada. es nno de los estados de Q designado como estado de partida. F es una coleccin de estados de aceptacin o finales. A es una relacin sobre (Q x E) x Q y se llama relacin de transicin.

Obsrvese que, puesto que A es una relacin para todo par (q , o) compuesto por el estado actual y el smbolo de la entrada, A (q, o) es una coleccin de cero o ms estados fes decir, A (q , a ) c Q], Esto indica que, para todo estado q, se pueden tener cero o ms alternativas a elegir como estado siguiente, todas para el mismo smbolo de entrada. Por ejemplo, el AFN descrito anteriormente para A = a b u ab* se repre senta por medio de
Q = {qo, q, <?2, <73, 94}

F = { q z , 43 , 94 } s = qo E = { a , }

www.FreeLibros.com

LENGUAJES REGULARES

63

y A dada por la tabla de la Figura 2.15.


A 9o 9i 92 93 94 a !<?b<?4) 9 i) 0 0 0 0 0 {94 } b (<?3)

Figura 2.15

Obsrvese que en la tabla de la relacin de transicin las celdas son conjun tos. El hecho de que existan celdas con 0, indica que no existe ninguna transi cin desde el estado actual mediante la entrada correspondiente. Que para un par estado actual-entrada exista ms de un posible estado siguiente indica que se puede elegir entre las distintas posibilidades. En el modelo no existe nada que determine la eleccin. Por esta razn, se dice que el comportamiento del aut mata es no determinista. Veamos otro ejemplo. Consideremos el AFN M = (Q .Z , s, F, A) dado por

Q= {< 7 0 ,< 7 1 ,< 72}


5 = qo

F = k/o}
y A dada por la tabla de la Figura 2.16. Este AFN tiene el correspondiente dia grama de transicin que se muestra en la Figura 2.17.

A < 7 0 9i 92

a <?i)

b 0 9o, 92 ) 0

0
(9o)

Figura 2.16

Figura 2.17

Este AFN acepta el lenguaje (ab u aba)*. Obsrvese que cuando se est en el estado q\, mediante el smbolo de entrada /?,*se puede pasar a dos posibles es tados siguientes. Se puede elegir entre uno de estos estados. De nuevo, la elec cin de un estado no est determinada por el modelo. Si para el reconocimiento

www.FreeLibros.com

64

TEORA DE AUTMATAS Y LENGUAJES FORMALES

de la cadena aba , se elige 4 2 como estado siguiente desde el par (q\,b) llegamos a un estado de aceptacin; sin embargo, si elegimos #0 no llegamos a un estado ' final. El anlisis de cadenas mediante los AFN parece que implica ciertas conje turas. Esta es una caracterstica del no determinismo: cuando se debe realizar una eleccin y dicha eleccin no puede ser determinada por el modelo, debemos acertar la correcta. En un modelo de computacin no determinista (del cual los AFN son una clase), asumimos que siempre se hace la eleccin correcta. Como con los AFD, si M es un AFN, definimos el lenguaje aceptado por M por medio de L (M) - {w\ w es una cadena aceptada por M) donde una cadena vv es aceptada por M, si M pasa de su estado inicial a un esta do de aceptacin o final al recorrer w (vv es consumida en su totalidad). Para determinar si una cadena pertenece a L (M), se debe recorrer el diagra ma de transicin correspondiente a M. Debemos encontrar un camino que termi ne en un estado de aceptacin cuando haya sido consumida toda la cadena. Du rante el recorrido, debemos elegir de forma no determinista la transicin de un estado a otro cuando existe ms de una para el mismo smbolo. Para afirmar que la cadena no est en L (Ai), debemos agotar todos las formas posibles de recorrer el diagrama de transicin para dicha cadena. Para diagramas de transicin senci llos, esto puede ocasionar un problema de gasto de tiempo. El siguiente ejemplo proporciona una forma de abordar este problema de una manera distinta, evitan do la bsqueda exhaustiva por el diagrama.

Ejemplo 2.5.1
....

s,

El diagrama de transicin de la Figura 2.18 corresponde a un AFN que acepta el lenguaje (a*b*)* (aa u bb) (a b*)*

www.FreeLibros.com

LENGUAJES REGULARES

65

La tabla para A viene dada por la Figura 2.19


A 4o 4i 92 43 a {<?0> <?3) 0 {4 2 } ( 44 } {94 ) b ' {4o-9i) {4 2 } {4 2 } 0 {44 }

< 74

Figura 2.19

La naturaleza recursiva del anlisis de cadenas que vimos para los AFD se manene en los AFN si la notacin se define con cuidado. Si X c Q, vamos a in terpretar A (X , a ) como el conjunto de estados { p \ q e X y p e A (q, a)}. Por tanto, A (X, o) es el conjunto de todos los estados siguientes a los que se puede llegar desde X con la entrada a. Obsrvese que A (X, a ) = { J 9 e x A (qr, a ) [re curdese que A (q, a ) es un conjunto para cualquier estado q\. Por eso, en el ejemplo precedente,

A ({<70, qi, #3}, 0 = {?0, <7i} v {< 72} U 0 = {< 70, <71,42}
Ahora obsrvese que para la cadena abaab, se obtiene que A (qo, a) = {4 0 , < 7 3 }, con lo que A (qo, ab) = A (A (qo, a), b)

= A({qo, qz},b) = {qo,q\} U 0

= {qo, q\)
Por tanto, podemos extender la notacin usada para los AFD a los AFN y escribir A (qo, abaab) para abreviar A (A (A (A (A (< 70 , a), b), a), a), b). En el Ejemplo 2.5.1, se tiene que A (qo, abaab) = {qo, < 7 1 , q4}. La coleccin A (qo, abaab) es el conjunto de todos los estados de M a los que se llega cuando se analiza la cadena abaab. Esta coleccin tienen en cuenta todos los posibles caminos o recorridos de M con esta cadena de entrada. A (qo, abaab) contiene al menos un estado de aceptacin, 74, lo que indica que algn recorrido de este dia grama para la cadena abaab termina en un estado de aceptacin. Por eso, abaab pertenece al lenguaje aceptado por este AFN.

www.FreeLibros.com

66

TEORA DE AUTMATAS Y LENGUAJES FORMALES

Ejercicios de la Seccin 2.5


2.5.1. Construir un AFD y el diagrama de transicin asociado que acepte el lenguaje

(ab u aba)*. Compararlo con el AFN del Ejemplo 2.5.1. 2.5.2. Obtener un AFN (que no sea AFD) que acepte el lenguaje ab* u alia. 2.5.3. Usar la tcnica precedente para determinar si las cadenas babba y aabaaba son aceptadas por el AFN del Ejemplo 2.5.1.
2.5.4. Sea M el AFN dado por Q = [qo, q\}, 2 = {a, b}, s = qo, F= {gi} y A dada en la

Figura 2.20. Determinar si a2b, ba y b2a estn en L (M). Dibujar el diagrama de transicin para M.
A 9o 9i a (< 7 o > <?i) 0 b l<7i) lo .i)

Figura 2.20

EQUIVALENCIA DE AFN Y AFD


Hemos definido la equivalencia para los AFD. Extenderemos esta definicin para la clase de todos los autmatas finitos (AFD y AFN) de forma que un aut mata M es equivalente a un autmata' M' si L (M ) = L (M ').
Ejemplo 2.6.1

Los autmatas representados en la Figura 2.21 son equivalentes. Obsrvese que uno es determinista y el otro no determinista. Sin embargo, ambos aceptan el mismo lenguaje, a f a u b)*.

. ' P )a' k

Figura 2.21

Ya que una funcin es un caso especial de relacin (es decir, las funciones son relaciones que poseen requerimientos adicionales), las funciones de los AFD se consideran como relaciones en los AFN. En consecuencia, todo AFD es un AFN. La coleccin de lenguajes aceptados por los AFN incluye a todos los len guajes aceptados por los AFD. De esto resulta que los AFN slo aceptan los len

www.FreeLibros.com

LENGUAJES REGULARES

67

guajes aceptados por los AFD. Por lo tanto, los AFN no son ms potentes que los AFD con respecto a los lenguajes que aceptan. Para probar esto, necesitamos demostrar que todo lenguaje aceptado por un AFN tambin es aceptado por al gn AFD. Sea M = ( Q , , s, F, A) un AFN. En la seccin anterior presentamos una for ma de recorrer M, de la cual se obtena la coleccin de todos los estados accesi bles desde el estado inicial en cada una de las etapas de anlisis de una cadena. Estas tcnicas proporcionan la base para construir un AFD M' = (Q \ E', / , F \ 8) que acepte el mismo lenguaje que Ai. Esencialmente, lo que se pretende es hacer que cada estado de Q' se corresponda con un conjunto de estados de Q. Cuando se analiza una cadena con M, sta se acepta cuando la coleccin final de estados contiene al menos un estado de aceptacin perteneciente a F. Por tanto, haremos que F sea el conjunto de estados de Q' que se correspondan con los conjuntos de estados (de Q ) que contienen un estado de F. Haremos corresponder a s' con el conjunto | .y}, ' = , y definiremos 5 de forma que nos desplacemos de un conjunto de estados de M a otro, como hace A.
Ejemplo 2.6.2

Consideremos el AFN M que acepta a u (ab)*, representado por el diagra ma de transicin de la Figura 2.22. Para este AFN, tendremos A (qa, a) = {q\, q2) A(qo,b) = 0 A({qi,q2},a) = 0 A ({q \,q 2}.b) = {qi] A (0, a)=A (0, b) = 0 A (<?3, a)= {q2} A (< 73, b) = 0 A (q2, a) = 0 A (q2, b) = {< y 3} %

-> 9i
a

Figura 2.22

Por tanto, el diagrama de transicin correspondiente al AFD M' que es equivalente a M viene dado en la Figura 2.23. Obsrvese que cada estado de M'

www.FreeLibros.com

68

TEORA DE AUTMATAS Y LENGUAJES FORMALES

[q2

0
a, b

Figura 2.23

corresponde a un conjunto de estados de M. Los estados de aceptacin de Af se corresponden con los conjuntos de estados de M que contienen estados de acep tacin. Se verifica fcilmente que la regla de transicin es una funcin. Por tanto M' = (Q, i', F , 5) donde
G '={0,{ }.{92}.3}.{9l.ft}}

r =z '= {< ?o}

f = { { ( 3 }, \q\, < 72}}


y 8 viene dada por la tabla de la Figura 2.24.
0 (<7o) {< 72} (4 3 } f<?i> <?2

a
0 {<7i><72) 0 i<?2) 0

b 0 0
{< 73 } 0 {4 3 }

Figura 2.24

Ahora demostraremos formalmente que todo lenguaje aceptado por un AFN es tambin aceptado por un AFD, con lo que probaremos que los lenguajes AFN y los lenguajes AFD estn formados por la misma coleccin de lenguajes. T eorem a 2.6.1. Sea M = (Q, , s, F, A) un AFN. Entonces existe un AFD M' = = ( Q s ' , F, 5) que es equivalente a M. Demostracin. Definamos M ' = (Q \ ' , F , 8) como sigue: sea s' = { 5 }, ' = , Q = 2^ (que es la coleccin de todos los subconjuntos de Q) y F la coleccin de

www.FreeLibros.com

LENGUAJES REGULARES

69

todos los subconjuntos de Q' que contienen estados de F. Tngase en cuenta que hem os incluido en Q' y F algn objeto m s que en el ejem plo anterior. Sin em , qn} de bargo, esto no alterar la construccin de M'. Para cada conjunto \qv q2 Q' y cada sm bolo de entrada o de 2, definirem os 8como 8 ({< ? / ,, qiv si y slo si A ({<?(,, qiv
q}, o) = {pup 2 , - ,Pk} q), o) = [pi,p 2 , - ,Pk}

Obsrvese que 8 , definida de esta form a, es u n a funcin de Q' x Z' en Q', puesto que est bien definida para todos los elem entos de Q' x Para probar que L (M) L (M'), debem os dem ostrar que para toda cadena w , 8 (/, vv) = {pup 2 , ...,pj } si y slo si A (.y , w) = [p\,p% ...,pj }, con lo cu al M' acepta v v si y slo si M acepta v v . Probarem os esto por induccin sobre la longi tu d de v v . Si la longitud de w es 0 (es decir, w= e), entonces A (5 , vv) = A (5 , e) = {.y} = 8 (.y', vv) Ahora supongam os que para toda cadena w de longitud m enor o igual que m se tiene que A (s , vv) = 8 (/, vv). Supongam os que u es u n a cadena de longitud m+ 1 . Entonces, existir algn oe Z, de form a que se obtiene que u = wo, don de w es u n a cadena de longitud m. E n este caso, 8 (/, vvo) = 5(8 (s\ vv), o). Ahora, por la hiptesis de induccin, dado que v v tiene longitud m, 8 (/, w) = P\,P2, -,Pj} si y slo si A (s, vv) = [p\,p 2 , ,Pj } Pero por la form a en la que hem os definido 8 , tendrem os que
8

({pi,j p2, -;P j}, O) = {ru r2 , ..., rk}

si y slo si A ({puP 2 , - ,Pj }, o) = {ru r2 , ..., rk] Por lo que 8 (/, vva) = {rt, r2, n } si y slo si A (s, wo) = {n, n, >'k}- E s decir, la igualdad se cum ple para cadenas de longitud m + 1 si se cum ple para cadenas de longitud m. Entonces por lo anterior tenem os que 8 (5', vv) es u nesta do de F si y slo si A (5 , vv) contiene algn estado de F. Por tanto, M' acepta v v si y slo si M acepta w . Obsrvese que, en la dem ostracin, el AFD M' correspondiente al AFN M contiene m uchos estados que no son accesibles desde el estado inicial. E n la prctica, es u n a buena idea em pezar con s' y aadir estados slo cuando son el resultado de u n a transicin desde u n estado previam ente aadido.

www.FreeLibros.com

70

TEORA DE AUTMATAS Y LENGUAJES FORMALES

Ejercicios de la Seccin 2.6


2.6.1. Construir el AFD correspondiente al AFN dado en la Figura 2.25. Qu lengua je es aceptado por dicho autmata?

a
t

b
------------ > '<P> _ > ___________ | Figura 2.25

2.6.2. Encontrar un AFN que acepte (ab u aab u aba)*. Convertir este AFNen un AFD. 2.6.3. Encontrar un AFN para (a u b'faabab. Convertirlo en un AFD. 2.6.4. Supongamos que M es un AFN que ya es determinista. Qu se obtendr siapli camos a M la construccin dada en el Teorema 2.6.1 ?

8-TRANSICIONES
Podemos ampliar la definicin de autmata finito no determinista para incluir transiciones de un estado a otro que no dependan de ninguna entrada. Tales tran siciones se llaman 8-transiciones porque al realizarse no consumen ningn sm bolo de la entrada. Por ejemplo, los AFN de las Figuras 2.26 y 2.27 contienen etransiciones. En el AFN de la Figura 2.26, el autmata puede cambiar su estado de cjo a q\ sin consumir nada en la^entrada. Obsrvese que q\ es el nico estado de acep tacin de este AFN. Si w es cualquier cadena de 0 o ms aes, este autmata cicla sobre qo hasta que consume las aes. Una vez que la cadena se vaca, se desplaza a q\ y lo acepta.

Figura 2.26 El AFN de la Figura 2.27 puede moverse del estado q 2 al estado qo sin con sumir nada en la entrada. En ambos AFN, la decisin de elegir una e-transicin se realiza de la misma forma que la de cualquier otra transicin con eleccin mltiple que exista en un AFN basndose en algo que no determina el mode lo. Por tanto, las e-transiciones son consistentes con el matiz no determinista de nuestra versin previa de AFN.

www.FreeLibros.com

LENGUAJES REGULARES

71

Figura 2.27

Si un AFN tiene e-transiciones, la relacin de transicin A asocia pares de < 2 x ( E u { e})x (2 con subconjuntos de Q. Es decir, A es una relacin sobre Q x (E u {e}) x Q. Se puede aadir una columna en la tabla de A para colocar los pares de la forma (q, e). jQuando hay e-transiciones en un AFN es conve niente suponer que cada estadoj tiene una 8-transicin que cicla en ese estadoj Usaremos esto para sistematizar el clculo de los AFN. Es decir, el AFN de la Figura 2.27 tendra la tabla de transicin de la Figura 2.28.
A < ? o < ?i < 7 2 a <7i) 0 {<7ol b 0 i<?2 0 e 0 0 <?o)

Figura 2.28

Para tratar de calcular el conjunto de los estados siguientes de un AFN que contiene e-transiciones, debemos tener en cuenta las e-transiciones anteriores y posteriores a la transicin etiquetada con o. Por ejemplo, consideremos el AFN M dado en la Figura 2.29. %

Figura 2.29

Como se ve en la Figura 2.29, el conjunto de estados siguientes al estado qo mediante la entrada a es el conjunto {q\,qn} debido a la 8-transicin que hay despus de la transicin con a. Igualmente, el conjunto de estados siguientes siendo q\ el estado actual y b la entrada, es el conjunto [qo, q2, qs} debido a la etransicin que existe antes de tomar la transicin con b. Obsrvese que A (qo, ahubbb) - {qo, q s } con lo que ababbb es aceptada por M.

www.FreeLibros.com

72

TEORA DE AUTMATAS Y LENGUAJES FORMALES

Se puede sistematizar el proceso para calcular el conjunto de los estados si guientes en un AFN con -transiciones. Para todo estado q e Q, definimos la ecerradura de q como e - c (q) = [p \p es accesible desde q sin consumir nada en la entrada} Ampliaremos est definicin para todo el conjunto de estados de la siguiente manera 7 1

c iqk) ({?/]q2> >q}) i_J e


k= 1 Por ejemplo, para el AFN de la Figura 2.30, se tiene que e -c f e ) = {4 3 }

Figura 2.30

ya que cada estado es accesible desde s mismo sin consumir ningn carcter de la entrada. Tambin se obtiene e -c (qo) = {qo, q \ ,q 7 )

e -c (4 4 ) = { < 7 1, < 72 , < 74 } Para q e Q y o 6 X se define d (q, a ) = {p | hay una transicin de q a p etiquetada con o} La coleccin d (q , a ) es la coleccin de estados que siguen directamente a q pasando por la transicin etiquetada con a. Ampliaremos la definicin de d a los conjuntos como sigue

www.FreeLibros.com

LENGUAJES REGULARES

73

d{{qv q2 ,.... q }, C ) 'J d(q k , a)


k; - I Por tanto, en el ejemplo precedente se tiene que

dO /o, a ) = {(i] dU t o ,b )= 0
d({cjy, < } ,b ) = \qf,qi) Obsrvese que e -c (d (q, o)) es el conjunto de todos los estados accesibles desde q, primero mediante una transicin con es y despus mediante una o ms e-transiciones. Por otro lado, d i(q), o) el conjunto de todos los estados accesibles desde q tomando primero una o ms e-transiciones y despus una transicin con i-. Finalmente, obsrvese que e -c id (e-c O/i a)) es el conjunto de todos los estados accesibles desde q tonua. . primero ;a o ms e-transiciones, despus una transicin con a y, por ltimo, una o ms -transiciones. Tngase en mente que permanecer en un estado es como ,o; ir una e-transicin. Por tanto, e -c (d (e -c (q), a)) es el conjunto todos i nados siguientes al actual q me diante la entrada a . Esto sister el cl; ;e conjuntos de estados siguien tes. Primero se obtiene e -c (q). ; o se c; \ -i:, d (e-c (q ), o) y despus se ob tiene la e-cerradura del conjunto do estados : -.antes.

Ejemplo 2.7.1 Considrese el AFN c, -transicioncs dado en la Figura 2.31. Usando la frmula anterior, obtendremos el conjunto ee los estados siguientes al estado q por medio del smbolo de la entrada a:

F ig u ra 2.31

www.FreeLibros.com

74

TEORA DE AUTMATAS Y LENGUAJES FORMALES

-c(<7 o) = {< 70, < 7 1} d (e-c (q0), a) = {q^, < 74} e-c ({< 73, < ? 4 }) = {^i, < 7 3 ,< 7 4 ,< 75}
As, mediante la entrada a, el conjunto de los estados siguientes es [quq-i, < 74, qs)- Es decir, A (< 70, a) = { < 71 , < 73, < 74, 9 5 }A partir de un AFN M = (Q, E, 5 , F, A) que tiene e-transiciones, se puede construir un AFN sin e-transiciones que acepte el mismo lenguaje. Se define M' = (Q, E, s, F , A') como F = F u {q \& -c(q )n F * & ) y A' (q, a ) = e - c (d (e -c (q), a)), como antes. Obsrvese que el autmata transformado M' no contiene e-transiciones. Ejemplo 2.7.2 El AFN de la Figura 2.31 se transforma en el AFN de la Figura 2.32, cuan do todas las e-transiciones son eliminadas mediante el proceso anterior.

Entonces, se deduce que la coleccin de lenguajes aceptados por los AFN con e-transiciones es la misma que la aceptada por los AFN sin e-transiciones. Se ve fcilmente que la proposicin inversa tambin es cierta. Por tanto, todos nuestros autmatas aceptan la misma coleccin de lenguajes. Para construir un autmata tendremos tres alternativas a elegir. Como veremos posteriormente, el uso de e-transiciones es conveniente para unir autmatas finitos.

www.FreeLibros.com

LENGUAJES REGULARES

75

Ejercicios de la Seccin 2.7


2.7.1. Calcular A (qo, abb) y A (c/o, abcrb) para el AFN de la Figura 2.29. 2.7.2. Obtener -c ({<7 1 , 74}) para el AFN de la Figura 2.30. 2.7.3. Obtener e-c (el (<73, /)) en el AFN de la Figura 2.30. 2.7.4. Usar la tcnica estudiada para calcular A Ui, b) en el Ejemplo 2.3. i . 2.7.5. Para el AFN dado en la Figura 2.33; (a) obtener la tabla de transicin para A,(b) obtener la -cerradura (q) para i - 0, 1,2, y (c) calcular A (qo, a), A (qo, b) y A (qo, c) para la Figura 2.33. a b e

---------------- > ---------------- >


q0 Q ,

p a

p a *
q2 Figura 2.33

2.7.6. Para el AFN del Ejercicio 2.7.5, obtener el AFN que se obtiene al eliminar las e-transiciones. Dar la tabla para A'.

AUTMATAS FINITOS Y EXPRESIONES REGULARES


Hasta ahora, hemos tratado de la relacin entre autmata finito y expresiones re gulares de una forma intuitiva. En esta seccin, formalizaremos dicha relacin por medio del teorema de Kleene (Teorema 2.8.4). De momento, vamos a ver al gunas propiedades de los lenguajes aceptados por autmatas finitos. Para un alfabeto I se pueden construir los AFN (y los AFD) que acepten palabras unitarias. Por ejemplo, el AFN de la Figura 2.34 acepta el lenguaje uni tario {}. Para ello se puede construir, incluso, una AFN que acepte el lenguaje vaco 0. Dicho AFN se muestra en la Figura 2.35. Obsrvese que este autmata no acepta ninguna cadena. ------- --------------------- f----------------- > Q , %
Figura 2.34

------ >.
Figura 2.35

Supongamos que M\ - (Qj, I i , .vi, F, Ai) y M 2 = (Q 2, E 2 , i'2 ,'^ 2 , A2) son AFN. Podemos unir Mi y M i en un nuevo AFN que acepte L ( M ) k j L ( M 2), aadiendo un nuevo estado inicial s y dos e-transiciones, una de s a j y otra de s a s2. La construccin formal de este nuevo AFN M = (Q ,Z , s, F, A) viene dado por X = I i u 2, F = F\ u F i y Q = Qi u >2 u {5 }, donde 5 es el nuevo estado

www.FreeLibros.com

76

TEORA DE AUTMATAS Y LENGUAJES FORMALES

inicial y A se define de forma que se incluyan todas las transiciones de Ai, A2 y las dos nuevas e-transiciones de s a si y s2. Conviene considerar las relaciones de transicin Ai y A2 como colecciones de ternas ordenadas t Q \ X 'L y .Q \ y f t x l x Q2, donde (q , a, p) significa que existe una transicin de q a p median te el carcter a (es decir, p e A, (q, a)). Usando esta notacin se puede definir A = Ai u A 2 u {(i, 8 , 1 ), (s, e, 5 2)} Por ejemplo, los AFN de la Figura 2.36, los cuales aceptan ab* y (ab )*, res pectivamente, se pueden unir formando el autmata con e-transiciones de la Fi gura 2.37, el cual acepta ab* u (ab)*.

qy
Figura 2.36

- q -2'

Figura 2.37

Sean M\ = (Q\, I i , 5 j, F\, Ai) y = (Qi, I 2, s2, F2, A2) dos AFN. Podemos unirlos para formar un AFN que acepte L (M\) L (M2). Se necesita un AFN que reconozca una cadena de L (M) y despus reconozca una de L (M2). Es decir, un recorrido hasta un estado de aceptacin para admitir la cadena en su totalidad, primero debe pasar por un estado de aceptacin de M\ y despus pasar (y term i nar) en un estado de aceptacin de M 2. Esto se realiza de forma no determinista

www.FreeLibros.com

LENGUAJES REGULARES

77

pasando del estado final de M\ al estado inicial de Mj_ por medio de una e-transicin. Por ejemplo, los AFN de la Figura 2.38 aceptan los lenguajes {a} y {}, respectivamente. Unindolos como hemos dicho, se obtiene un AFN que acepta el lenguaje {ab} (vase la Figura 2.39).

----- . ----------- ----------

q;

q;

----- > . ---------- - --------- >

qy

q ?

Figura 2.38

ay
Figura 2.39

Qf

Obsrvese que el autmata que se obtiene tiene como estado inicial el esta do inicial de M\ y como estado(s) final(es) el(los) estado(s) final(es) de M2. Por tanto, el AFN M = ( Q , Z, s, F, A) que acepta L (M \) L (M2) viene dado por

Q = Q\ u Qi
S = S\

F = F2 A = Ai u A 2 u (F\ x {e} x {2}) La relacin de transicin A incluye todas las transiciones presentes en los dos AFN junto con todas las ternas de la forma (q , , 2 )* donde q es un estado de aceptacin de M \ . Es decir, s2 e A (q , ) para todo q e F\, Se puede deducir un procedimiento para construir una AFN que acepte L (A/)* para el AFN M = ( Q, , s, F, A), como sigue. Primero, se aade un nuevo estado inicial / ; se har que este estado sea adems un estado de aceptacin con el fin de que sea aceptada. Entonces, se permite una -transicin desde s a el antiguo estado inicial s. Por tanto, M comenzar una vez que M' se encuentre en s'. Se tendr adems, una -transicin desde todos los estados de aceptacin has ta el estado inicial s'. Una vez que la cadena de-L(M) ha sido agotada, el anlisis puede continuar a partir del estado inicial de Af o terminar en s'. El autmata re sultante ser Af = ( Q Z, s', F , A'), donde

www.FreeLibros.com

78

TEORA DE AUTMATAS Y LENGUAJES FORMALES

Q' = Q v { s ' } A' = A u { ( / , e ,.v ) } u ( F x {e} x {5'}) Obsrvese que en la definicin de A' se incluyen las e-transiciones necesa rias adems de las del AFN M original. De la discusin anterior se obtiene el siguiente teorema. Teorema 2.8.1. El conjunto de lenguajes aceptados por un autmata finito sobre el al fabeto Z contiene 0 y los lenguajes unitarios {fl} para todo a e Z. Este conjunto es cerrado con respecto a la unin, concatenacin y la cerradura de estrella. Dada una expresin regular r para construir un AFN (con e-transiciones en todos los casos excepto para expresiones regulares triviales), podemos aplicar las tcnicas precedentes a los trminos de las expresiones regulares. Por tanto, todo lenguaje regular es aceptado por un autmata finito. Lo recproco tambin es cierto, como veremos en el Lema 2.8.3. Es decir, todo lenguaje aceptado por una autmata finito es tambin un lenguaje regular. Por lo tanto, el conjunto de los lenguajes regulares es el mismo que el conjunto de los lenguajes aceptados por un autm ata finito (Teorema 2.8.4). Consideremos el autmata finito M = ( Q , Z, ,v, F, A) y supongamos que s = qo es el estado inicial. Para todo estado q, sea A = {vt> e Z*| A (q\, vv) n F ^ 0} Es decir, A es el conjunto de las cadenas sobre Z que hacen que M pase des de q hasta un estado de aceptacin. Se dice que A es el conjunto de las cadenas aceptadas por el estado q. Obsrvese en que /Ao = L (M ). Advirtase, tambin, que es posible que A = 0. Si qt e F, entonces se obtiene que e A. Como ejemplo, consideremos el autmata finito de la Figura 2.40. En el mismo, se tiene que A5 = 0, A 4 = e, A2- e A i= b

A = a,

Ao = a b u ba

Supongamos que q e A (q, a). Entonces A contiene a oAj. De hecho, se tiene que A; = u {oAj\qj e A (q, o ) }

www.FreeLibros.com

LENGUAJES REGULARES

79

->

^4

Figura 2.40

Esto proporciona las tcnicas recursivas bsicas para obtener una expresin regular a partir de un autmata finito. Como muestra, consideremos el ejemplo anterior. Obsrvese que Ao = aA u M 3 , A 1 = b 2 u C 1A.5, A 2 = u aAf u bA 5 , A3 - 1A4 U M A5 = 0
5

A 4 = u aAs u bA$

Por tanto, se tiene un sistema de ecuaciones que se cumplen para L (Ai). Se puede resolver por sustitucin obteniendo que L (M) = a b u ba. Considrese el autmata finito dado por la Figura 2.41. Del mismo modo se obtiene que Ao = Ao u bA i A] =

>

Figura 2.41

Resolvindolo por sustitucin, resulta que A q = A q kj b y es imposible sim plificarlo ms. El siguiente lema muestra cmo resolver esto para obtener Ao = a b (que es lo que se espera tras inspeccionar el diagrama de transicin). Lema 2.8.2. (Lem a de A rden) Una ecuacin de la forma X = A X u B, donde g A, tiene una solucin nica X = A*B. Demostracin. Obsrvese que A~B = (A+ u .) B = A + B U :B = ('B) u B. Por tanto, A*B est contenida en toda solucin. Supongamos que X - fB u C e s una solu cin, donde C n B = 0. Si se sustituye la expresin anterior en la ecuacin X = A X u B, se obtiene

www.FreeLibros.com

80

TEORA DE AUTMATAS Y LENGUAJES FORMALES

A * 5 u C = A (A * B u C )u 5 = A+ B u AC u = A+ B u S u AC = (A+u e ) B u A C = A*B u AC Realizando en ambos lados la interseccin con C se obtiene C = A C n C (los otros trminos son 0). Por tanto, C c A C . Pero, como A, la cadena ms corta de A C debe ser ms larga que la cadena ms corta de C. Esto contradice que C c / l C a menos que C = 0. Luego se debe tener que C = 0 y, por tanto, A*B es la nica solucin. Consideremos el autmata finito de la Figura 2.42. Aqu se tiene Ao = aA i A\ = aAi u bA$ A i aA 3 u bA,

A3 = U ClAj U A4

Figura 2.42

Sustituyendo y aplicando el lema de Arden cuando sea necesario, se obtiene A4 = b* A3 = (7A3 u b+ u : 7 =a b A 2 = a+ b * u b+ A 1 = a (a+& *u > +) u b+ aa+ b * u ab+ u b+ Ao = A\ = a1 a+ b* u a2 b+ u ab+ Entonces se deduce el siguiente lema.

www.FreeLibros.com

LENGUAJES REGULARES

81

Lema 2.8.3. Sea M un autmata finito. Entonces existe una expresin regular r para la cual L (/) = L (M ). Del Lema 2.8.3 junto con las observaciones anteriores al Teorema 2.8.1, se obtiene el teorema de Kleene. Teorema 2.8.4. (Kleene) mata finito. Un lenguaje es regular si y slo si es aceptado por un aut

Ejercicios de la Seccin 2.8


2.8.1. Obtener un AFN que acepte e. 2.8.2. Obtener un AFN que acepte {a}. Obtener otro AFN que acepte {/>}. Usar las tcnicas vistas en esta seccin para unir estos AFN en uno que acepte el lengua je [a, b}. 2.8.3. Obtener un AFN que acepte (a u b)* kj (ab)+ 2.8.4. Obtener un AFN que acepte todas las cadenas de la forma bowwow, bowwowwow, bowwowwowwowwow,... Conseguir un AFN que acepte todas las cadenas de la forma ohmy, ohmyohmy, ohmyohmyohmy, ... Unir los dos AFN para que se acepte la unin de los dos lenguajes. Tngase en cuenta que los smbolos de un alfabeto no tienen por qu ser caracteres de longitud uno. 2.8.5. Sea M\ dado por la Figura 2.43 y M2 dado en la Figura 2.44. Obtener un AFN que acepte L (Mi) L (Mi). Obtener un AFN que acepte L (Mi) L (Mi).

r
< 7 , ^3

q2

-> q4
Figura 2.43

Pa

Figura 2.44

2.8.6. Sean M, = ({^j, q2, qi), {a, b}, [qi\, {#i}, Ai) y M 2 = ({p\,pi,pi,p 4},{0, 1}, PK [p\,pi\, Ai), donde Ai y A2 vienen dados en las tablas de la Fi gura 2.45. Obtener un AFN que acepte L(M\) L(Mi). Obtener un AFN que

www.FreeLibros.com

82

t e o r a d e a u t m a t a s y l e n g u a j e s f o r m a l e s

acepte L{Mi) L(M\) L{M\). Obtener finalmente, un AFN que acepte (L(M,))2u L (M ,). 0 1 A A < 7 i < 7 2 < 7 3 a (42, < ?3 ) 0 l3l b P\ P2 P3 P*
Figura 2.45

\Pl\ 0 {P2} >3}

0 [P)>P4} 0 0

0
{?i} (< ?3)

2.8.7. Obtener un AFN para (ab)* a partir de los AFN que aceptan {a} y {b}. 2.8.8. Obtener un AFN para (aa u b)* (bb u a)* a partir de los AFN que aceptan {a} y [b). 2.8.9. Obtener un AFN para ((a u b) (a u b))* u ((a u b) (a u b) {a u b ))* a partir de los AFN para {a} y {>}. 2.8.10. Si M = (Q,?,, s, F, 8) es un autmata finito determinista, entonces el comple mento de L (M) [es decir, * - L (M)) es aceptado por el autmata M (<2, Z, s, Q - F, 8). [M' es un AFD o un AFN? Obtener un AFD que acepte ab*ab. Obtener un autmata finito que acepte {a, b}* - ah"ab. 2.8.11. Demostrar que A = {aAj | q e A (q, a)}.

2.8.12. Obtener una expresin regular para el lenguaje aceptado por el autmata finito de la Figura 2.46. ->

Figura 2.46

www.FreeLibros.com

LENGUAJES REGULARES

83

2.8.13. Obtener una expresin regular para el AFD de la Figura 2.47.

a
->

a, b

Figura 2.47

2.8.14. Obtener una expresin regular para los lenguajes aceptados por cada uno de los autmatas de la Figura 2.48.

a. )

a, b

________I _

a, b

b. )

ft -

c. )

<?3

d. )

r
o

a, b

a'

a
Figura 2.48

. ----- -----> ^ ,Q4 < h

www.FreeLibros.com

84

TEORA DE AUTMATAS Y LENGUAJES FORMALES

PROPIEDADES DE LOS LENGUAJES REGULARES


Los resultados de la ltima seccin establecen la conexin entre autmata finito y expresin regular. Todo lo que es verdad para lenguajes regulares tambin es verdad para lenguajes aceptados por un autmata finito y viceversa. As, por ejemplo, la coleccin de lenguajes regulares es cerrada con respecto a la conca tenacin, unin y cerradura de estrella porque los lenguajes aceptados por un au tmata finito tambin lo son (Teorema 2.8.1). Es importante preguntarse si, dado un lenguaje L, L es regular? Desde lue go, si L es finito, es regular y se podr construir un autmata finito o una expre sin regular para ellos de forma sencilla. Tambin, si L es especificado ya sea por medio de un autmata finito o por una expresin regular, la respuesta es ob via. Por desgracia, hay relativamente pocos lenguajes que sean regulares y, en el caso de un lenguaje infinito, la bsqueda exhaustiva de una expresin regular o un autmata finito puede resultar intil. En este caso, se necesita obtener algunas propiedades que compartan todos los lenguajes regulares infinitos y que no estn presentes en los lenguajes no regulares. Supongamos que un lenguaje es regular y que, por tanto, es aceptado por un AFD M = ( Q , Z, s, F, 5), donde Q contiene n estados. Si L (M) es infinito, podre mos encontrar cadenas cuya longitud sea mayor que n. Supongamos que w = o\ a 2 ... a,, + i es una de las cadenas de longitud n + 1 que pertenece a L (Ai). Si tuviramos q\ = 8 (.?, a \)
<72 = 8

(^ 1 , ai)

y as sucesivamente, obtendramos los n + 1 estados, q\, q i , ..., <?+ j. Puesto que Q contiene slo n estados, los q no sern todos distintos. En consecuencia, para algunos ndices j y k, con 1 < j < k < n + 1, se obtendr que q j-q k - Por lo tanto, tendremos un ciclo en el camino que parte de s hasta un estado de aceptacin, segn se muestra en la figura 2.49.

www.FreeLibros.com

LENGUAJES REGULARES

85

Figura 2.49

Puesto que j < k, se tiene que la parte central, es decir, aj+ i ... tiene al menos longitud 1. Obsrvese adems que la cadena w' = a i ... a ci^ + i ... an+\ debe pertenecer tambin a L (M). Por esto, se puede dar vueltas en el ciclo tantas veces como se quiera, de forma que a\ ... aj(aj+ i ... cik)m cik+\ ... an+\ estar en L (M) para todo m > 0. Es decir, se puede bombear cero o ms veces la par te central y seguir teniendo una cadena que sea aceptada por el autmata. For malizaremos esto en el siguiente lema, conocido como lema de bombeo. Lem a 2.9.1. Sea L un lenguaje regular infinito. Entonces hay una constante n de forma que, si w es un cadena de L cuya longitud es mayor o igual que n, se tiene que w = uvx, siendo uvl x e L para todo i > 0, con | v| > 1 y | uv\ <n. El lema de bombeo presenta una propiedad que debe tener todo lenguaje re gular y nos facilita una forma de determinar si un lenguaje no es regular. Para demostrar que un lenguaje no es regular, se mostrar que, para cualquier valor n lo bastante grande, se tendr al menos una cadena de longitud n o mayor que fa lle al ser bombeada. Por ejemplo, considrese el lenguaje L = \ a ? \ i > 1} Toda cadena de L debe tener una longitud que sea un cuadrado perfecto. Su pongamos que L es regular y sea n la constante dada en el lema de bombeo. Ob srvese que a'r e L y que, por el lema de bombeo, tenemos a" = uvx de forma que 1 < | v| < n y u v l x e L para todo i > 1. Entonces se obtiene que n2 - \uvx\ < I uv2x I < n2 + n < (n + l) 2

www.FreeLibros.com

86

TEORA DE AUTMATAS Y LENGUAJES FORMALES

Es decir, la longitud de uv2x se encuentra, estrictamente, entre cuadrados perfectos consecutivos y, por tanto, no es un cuadrado perfecto. Luego uv2x no puede pertenecer a L. Es decir, L no puede ser regular.

Ejemplo 2.9.1 Consideraremos otro ejemplo. Sea el lenguaje L - {a"'bm\m >Q}. Se ve claramente que L es infinito y, si L es regular, podremos aplicar el lema de bom beo. Sea n la constante del lema y consideremos anbn, cuya longitud es mayor que n. Tendremos por tanto, que anbn = uvx para las cadenas u, v y x con | v| > 1 y \uv\ <n. Nos centraremos en v, teniendo en cuenta que \uv\ < n fuerza a que v est formado slo por aes. Supongamos que v = as para ,v> 1. Entonces, si u = ar, se tiene que x= an~< 'r+s)b". De lo que se deduce que u ^ x ara 2sa~l'r+^bn = an+sbn. Dado que s> 1, la cadena no puede pertenecer a L. Por tanto, L no puede ser regular ya que no satisface el lema de bombeo. Que {anbn \ n > 0) no sea regular y, por tanto, no sea aceptado por un autmata finito saca a la luz las propiedades comunes a todos los lenguajes regulares. Du rante el anlisis de una cadena por medio de un autmata finito, slo tenemos a nuestra disposicin, en cada paso, el estado y el smbolo actual. Cuando analiza mos las bes no tenemos informacin sobre cuntas aes han sido analizadas. Otra forma de decirlo es que la cantidad de memoria necesaria para aceptar o rechazar una cadena debe ser limitada. Si consideramos los estados como me moria, el hecho de que el conjunto de estados sea finito provoca dichas limita ciones. Podramos construir un autmata de estados no finito, que aceptara dicho lenguaje. Podra estar formado por un estado inicial que tambin fuera estado de aceptacin, con un camino para cada abn, para todo n > 0. Vase la Figura 2.50. Obsrvese que hay un nmero infinito de estados, por lo que la memoria en esta clase de autmatas no est limitada.

www.FreeLibros.com

LENGUAJES REGULARES

87

Adems de ser una herramienta que determina si un lenguaje es regular, el lema de bombeo proporciona los medios necesarios para determinar si un aut mata finito acepta cualquier lenguaje no vaco y si el lenguaje aceptado es finito o infinito. Teorem a 2.9.2. 1. 2. Sea M un autmata finito con k estados. L (M) 0 si y slo si M acepta una cadena de longitud menor que k.

L (M) es infinito si y slo si M acepta una cadena de longitud n, donde k < n < 2 k.

Demostracin. 1. Si M acepta una cadena de longitud menor que k. entonces L (M) * 0 . A la inversa, supongamos que L (M) * 0. Entonces existir algn w e L (M ). Necesitamos probar que L (M) contiene una cadena de longitud me nor que k. Si | w\ <k, quedar probado. Sin embargo, supongamos que | w\ >k. Gracias a lo expuesto con anterioridad al Lema 2.9.1, sabemos que debera haber un ciclo en el camino que se recorre para aceptar w y por tanto, se puede poner que w uvx para algunas cadenas u, v y x, donde u es la parte anterior al ciclo, v es la parte del ciclo y x es posterior al ciclo. Por tanto, | v > 1 y se tiene que u v lx e L (M ) para todo ?>(). En particular, u x e L(M ). Si |mx| <k, quedara probado. Apliquemos ahora el proceso anterior a u x Obsrvese que | mjc| < | iivx | , de modo que de aplicaciones repetidas del proceso precedente, eliminando cada vez la subpalabra central, siempre que la cadena siga pertene ciendo a L (M), podr obtenerse una cadena de L (M) cuya longitud ser menor que k. 2. Supongamos que w e L ( M ) con k < \ w \ <2k. En lo visto antes del Lema 2.9.1, se estableci que M debe tener un ciclo en el camino que acepta w y, por tanto, w - uvx para algunas cadenas u, v, x con | v j > 1. En consecuencia, uv'x e L (M ) para todo i, con lo que L (M ) es infinito. Al contrario, supongamos que L (M) es infinito. Entonces no todas las cadenas pueden tener longitud me nor que k, y por tanto existir alguna cadena w e L (M ) cuya longitud sea al me nos k. Si | w | < 2k, quedara probado. Si no, aplicando a w la construccin ante rior al Lema 2.9.1, se obtiene w - u v x , donde | vj > 1 y \uv\ <k, con lo que | v| <k. Ahora tenemos que |w > 2 k y que | v | <k, lo que produce que \ux\ >k. Como en la parte 1, si \ux\ < 2 k, quedara probado. De lo contrario, aplicaremos repetidamente este proceso a u x hasta encontrar unir cadena cuya longitud se encuentre entre k y 2 k - 1. v El Teorema 2.9.2 nos proporciona un procedimiento para decidir si L (M) es vaco y si L (M) es finito o infinito. Dado que los alfabetos son colecciones fini tas, podemos realizar dichos procedimientos en tiempo finito, con lo que pode-

www.FreeLibros.com

88

TEORA DE AUTMATAS Y LENGUAJES FORMALES

mos afirmar que los mismos nos facilitan algoritmos para resolver dichos pro blemas. Sin embargo, dichos algoritmos no son particularmente eficientes. Para los AFD hay una forma ms rpida de poderlo realizar, eliminando los estados que, para cualquier entrada, no sean alcanzables desde el estado inicial. L (M) no ser vaco si queda algn estado final. Entonces, si se eliminan todos los estados no finales desde los cuales no pueda ser alcanzado ningn estado no final y com probamos los ciclos, se puede determinar si L (M) es finito o infinito. Los problemas del final del captulo tratan otro problema de decisin, la equivalencia de lenguajes regulares. Una vez que hemos visto algunos ejemplos de lenguajes no regulares, hay otras tcnicas para comprobar la regularidad adems de usar el lema do bombeo. Supongamos que L y K son lenguajes sobre X. De las leyes de De Morgan para conjuntos se obtiene que (X* - L) u (X* - K) = X* - (L n K) Por tanto, se tiene que L n K = X* - (X* - ( L n K ) ) = r - ((X* - L ) \ j (I* - K)) Entonces, por el Ejercicio 2.8.10, sabemos que, si L y K son aceptados por un AFD, entonces X* - L y X - K tambin lo son. Por tanto, si L y K son regula res; entonces X* - L y X* - K tambin lo son. Tambin sabemos que la unin de lenguajes regulares es regular, as que (X" - L) u (X* - K) es regular y su com plemento X* - ((X' - L) u (X* - K)) tambin es regular. Por tanto, L n K e s re gular cuando L y K lo son. La interseccin es una tcnica muy usada para determinar la regularidad de los lenguajes. Por ejemplo, sea X = {0. 1, 2, 3, 4, 5, 6, 7, 8, 9}. Entonces, el len guaje de los enteros no negativos viene dado por L = 0 u {1,2, ...,9} X*. El lenguaje de todas las cadenas de dgitos terminadas en 0, 2, 4, 6, u 8 viene dado por L 2 = X* {0, 2, 4, 6, 8}. Obsrvese que ambos son regulares. El lenguaje de todos los enteros no negativos divisibles por 2, vendr dado por L = L\ n Lz y tambin ser regular.

Ejemplo 2.9.2 Sea = { , b}. Usaremos la interseccin para probar que el lenguaje L = {hvv7Jir e X} no es regular. Primero, fjese que por el lema de bombeo L\ = {a"b2ka"\n, k>()} no es regular. Segundo, Li = {akb"am\k, n, m> 0} es re gular (se denota mediante la expresin regular ab*a). Finalmente, obsrvese

www.FreeLibros.com

LENGUAJES REGULARES

89

que Lo in L = L\. Si L fuera regular, entonces L\ sera regular. Por tanto, L no puede ser regular.

Ejercicios de la Seccin 2.9


2.9.1. Probar que {ap\p es primo) no es un lenguaje regular. 2.9.2. Probar que {a"bd"bam*" | n, m > 1} no es un lenguaje regular. 2.9.3. Determinar si los siguientes lenguajes son regulares y decir o probar por qu si o por qu no. (a) (b) (c) (d) (e) (0 (g) {cfb2i\i> 1} {(<*)'|i a i} {aln\n> {} {a"b"a" + | ;, m > \ ] {i2| /z > 0} {w\w = w' para w e {a,b}*} {wxw'\w, r e [a, b}+]

2.9.4. Usar el procedimiento del Teorema 2.9.2 para decidir si L (M) es finito o infini to segn el autmata de la Figura 2.51.

b
i ------- b------ > . . ------- i ------ > . ----------- I --------- > -------------- i ------ > .

t
Figura 2.51

2.9.5. Usar las afirmaciones posteriores alTeorema2.9.2 paradeterminar si el AFD de la Figura 2.52 acepta un lenguaje no vaco. Siel lenguajeno es vaco, deter minar si'el lenguaje aceptado es finito o infinito. 2.9.6. Sea l = { a ,b ] . (a) Construir los AFD que acepten a 'b y ab'.

(b) A partir de los AFD de la parte (a),construir los AFDque acepten X* - a b y 2* - ab*. (c) A partir de los AFD de la parte (b), construir un AFD que acepte la unin (* - a b ) u (L* -ab*). (d) Usar el resultado de la parte (c) para construir un AFD que acepte el len guaje a*b n ab*.

www.FreeLibros.com

90

TEORA DE AUTMATAS Y LENGUAJES FORMALES

a,

a, b b
Figura 2.52

2.9.7. La construccin del Ejercicio 2.9.6, aunque efectiva, no es particularmente efi ciente. En la parte (c) se obtiene un AFN a partir de la unin y despus se trans forma en un AFD para la interseccin de lenguajes regulares sobre el mismo al fabeto haciendo uso del producto cartesiano. Sean M\ = (Q, Z, sj, 8 i) y M2 = (Q2, , 2 , F2, 62 ) dos AFD. Definir M = (Q x Q2, I , (su s2), F\ x F2, 5), donde (sj, 52 ) denota los pares ordenados de estados. La funcin de transicin 5 se define para todos los pares ordenados (q, p) 6 Q\ 'X Qi y para todo a e X, por medio de
8

((< ?,-, qj), a) = (81 (< 7,, a),

82

(pj, a))

(a) Construir los AFD correspondientes a a b y ab* sobre Z = a. /;}. (b) Usar esta tcnica para construir directamente un AFD que acepte a b n ab*. 2.9.8. Usar el lema de bombeo para probar que no es regular el lenguaje L\ dado en el Ejemplo 2.9.2. 2.9.9. Probar que {ww\ w e {a,b)*\ no es regular.

2.10

APLICACIONES DE LAS EXPRESIONES REGULARES Y LOS AUTMATAS FINITOS


Los autmatas finitos se usan frecuentemente en los problemas que implican el anlisis de cadenas de caracteres. Tales problemas incluyen problemas de bs queda e identificacin, tales como la bsqueda de la existencia de una cadena en un fichero o el reconocimiento de cadenas de entrada que satisfagan ciertos cri terios. Un autmata finito es, l mismo, un modelo de un procedimiento parareconocimiento de cadenas por medio de la expresin regular asociada. Por tanto, en la bsqueda de una cadena en un fichero, podemos aplicar el autmata finitc

www.FreeLibros.com

LENGUAJES REGULARES

91

de forma sistemtica a las cadenas del fichero hasta que se acepta la cadena o se termina el fichero. Un problema comn en la programacin de computadoras es el de tener la seguridad de que los datos de entrada de un programa son correctos. Por ejem plo, si se espera un entero sin signo como dato de entrada y el usuario confunde uno de los dgitos con un carcter no numrico, se puede dar todo tipo de resul tados impropios, desde una terminacin anormal hasta el clculo de resultados incorrectos (basura dentro, basura fuera). La programacin cuidadosa pretende construir un programa a prueba de balas, incluyendo unas rutinas de entrada que analicen la informacin introducida por el usuario y, de alguna forma, pre venir que se aplique informacin incorrecta al programa. Si pudiramos cons truir un autmata finito que aceptara solamente las cadenas que representan in formacin correcta, entonces tendramos un modelo para dicha rutinr. de entrada. Puesto que los autmatas finitos se corresponden con las expresiones regulares, el problema se reduce a especificar la informacin correcta por medio de expre siones regulares. En el caso de que la entrada est formada por enteros sin signo, el lenguaje vendr dado por / = {1, 2, 3 ,4 , 5, 6, 7, 8, 9} {0, 1, 2, 3 ,4 , 5, 6, 7, 8,9}*. Es f cil construir un autmata finito que acepte / (vase Figura 2.53).
1, 2, 9

a
Cualquier carcter
Figura 2.53

Tambin es sencillo traducir el autmata finito a un cdigo en un lenguaje de programacin; slo se necesita seguir el rastro de la posicin actual en la ca dena y del estado actual. A la vez que se recorre la cadena, se cambia de estado segn corresponda y, cuando se acaba la cadena, se comprueba a qu estado se ha llegado y, segn eso, se acepta o se rechazadla cadena. Las expresiones regulares se pueden usar para especificar las unidades lxi cas presentes en un lenguaje de programacin. Los autmatas finitos asociados

www.FreeLibros.com

92

TEORA DE AUTMATAS Y LENGUAJES FORMALES

se usan para reconocer dichas unidades (llamadas componentes lxicos). Dicho anlisis es una etapa importante en la compilacin de programas de ordenador. Por ejemplo, sea S el conjunto de caracteres de algn lenguaje de programacin, es decir, todos los caracteres que debe reconocer un compilador para dicho len/ guaje. Sea L c E el subconjunto de todas las letras y D c Z el subconjunto de to dos los dgitos. Supongamos que un comentario en dicho lenguaje comienza pol los caracteres y termina con el smbolo de final de lnea, el cual se denota mediante eol. Entonces una expresin regular para el componente lxico conoci do como comentario es - -(L-eol)*eol. Los identificadores del lenguaje pueden estar compuestos por letras, dgitos y subrayados, deben empezar con una letra y deben terminar con una letra o un dgito. Una expresin regular para estos componentes lxicos vendr dada por L ( u D u J * (L u D). Se puede construir un autmata fin io que reconozca este lenguaje regular y, por tanto, escribir un cdigo apropiado para el reconoci miento de identificadores. En la etapa de anlisis lxico de un compilador, hay un aspecto que'no estaba presente en el ejem plo de los enteros como entrada y es el hecho de que al tratar de reconocer un lexema se tienen distintas posibilidades. Por ejem plo, si la cadena actual fracasa como comentario, nos gustara com pro bar si puede ser un identificador y, si fracasa tam bin aqu, si puede ser cual quier otro com ponente lxico. Generalmente, en un compilador, el autmata finito que reconoce todos los componentes lxicos est ordenado de alguna manera y, sistem ticam ente, se aplica a la cadena hasta que se tiene xito o falla en todo. Si falla, la cadena no puede formar parte de un programa cons truido correctam ente.

Ejercicios de la Seccin 2.10


2.10.1. Escriba un cdigo, en su lenguaje de programacin favorito, para implementar

el autmata finito de la Figura 2.53.


2.10.2. Escriba un programa, en su lenguaje de programacin favorito, para implemen

tar e! autmata finito que acepta enteros con signo y sin signo.
2.10.3. Escriba una rutina, en su lenguaje de programacin favorito, que identifique n

meros reales con y sin signo (para simplificar, suponemos que los nmeros re ales no vienen representados en notacin exponencial, es decir, 1.23e-9).
2.10.4. Escriba una rutina, en su lenguaje de programacin favorito, que identifique

una cadena como un entero con y sin signo, un numero real con y sin sigho, un comentario o un identificador (mire el ejemplo que precede a los ejer cicios).

www.FreeLibros.com

LENGUAJES REGULARES

93

PROBLEMAS
2.1. El algoritmo de Moore. Sabemos que si L\ y Z ,2 son lenguajes regulares sobre X, entonces X* - L\ y 2T - L2 son lenguajes regulares y por consiguiente L\ n (Z - La) y 2 " 1 (X* - L\) tambin lo son. Sea L - {L\ n (X* - LO) u ( 2 ^ (X* - 1)) y obsrvese que, puesto que L es regular, es aceptado por una autmata M. Por el Teorema 2.9.2, podemos de terminar si M acepta alguna cadena (es decir, si L = 0 o no). Pero obsrvese que, si M acepta una cadena, entonces L contiene una cadena y, por tanto, L\ n (X* - 2) y 2 ^ (2* - L\) no pueden ser ambos vacos. Supongamos que tenemos L\ n (X* - 2) s*0- Entonces existir alguna ca dena que est en L\ y no en 2, y por tanto L\ * Li. Igualmente, si 2 n (X* - L\) * 0 , tambin llegaremos a que L\ 2 - Por otro lado, si M no acepta nin guna cadena, entonces L = 0 y, por tanto, L\ n (X* - Li) y Li n (X* - L\) sern ambos vacos. Es decir, no hay ninguna cadena en L\ que no lo est en 2, y vi ceversa, y as L| = La. Hemos probado que hay un algoritmo para determinar si dos lenguajes re gulares son el mismo. Sin embargo, nuestro algoritmo no es particularmente efi ciente, ya que primero tenemos que construir el lenguaje L, obtener un AFD para l y despus determinar si dicho AFD acepta alguna cadena. A continua cin veremos un algoritmo mucho menos complejo que el de Moore. Supongamos que M y M' son dos AFD sobre el alfabeto X. Para que la pre sentacin sea lo ms sencilla posible, supondremos que X= {a, b}. Primero re nombraremos los estados de M y M' para que todos los estados sean distintos. Supongamos que q\ y q{ son los estados iniciales de M y M \ respectivamente. Construiremos una tabla de comparacin que (en este caso) consta de tres columnas. Las entradas de cada columna son pares de estados (q, q'), uno de M y otro de M. La entrada de la columna 1 indica el par de estados que ser trata do en la fila correspondiente. La entrada de la columna 2 es el par de estados que sigue a los de la columna 1 mediante una transicin con a. Del mismo modo, la entrada de la columna 3 es el estado siguiente por medio de una transi cin con b. Por tanto, si (q, q ) estn en una entrada de la columna 1 y (p, //) y (r, r) son las entradas de la columna 2 y la columna 3 para la misma fda, entonces 8 (q, a) = p, 8' (q a ) = p', 8 (q, b) = r y 8' (q\ b) = r son las transiciones de M y M'. Construiremos la tabla fila por fila empezando por {q\, q f) como entrada de la columna 1 y primera fila. En general, si (< 7 , q ) est en la columna I de cual quier fila, rellenaremos la columna 2 y la columna 3 de fornp apropiada. Si cualquiera de las entradas de la columna 1 y la columna 2 no estn ya en la co lumna 1 se aadirn antes de seguir con la fila siguiente. Siempre que en la tabla (y para cualquier columna) encontremos un par (j), p') en el cual p es un estado final de M, pero p no es un estado final de M (o viceversa), se parar el proceso ya que habremos llegado a la conclusin de que

www.FreeLibros.com

TEORA DE AUTMATAS Y LENGUAJES FORMALES

M y M' no son equivalentes. De otro modo, el proceso parar cuando no quede ninguna fila por completar. En este caso, M y M' son equivalentes. Por ejemplo, los AFD de la Figura 2.54 no son equivalentes porque su ta bla es (parcialmente) como sigue: transicin a columna 2 transicin b columna 3

Columna 1

(< 7 i.< 7 i')


(<?2 , q i )
a

(quqi')
(<73. <?/)

{qi,q)
(< 7 1 . 93 ')

>

\<k

q3

Figura 2.54

Aunque la tabla no se ha completado, el proceso termina porque q\ es un estado final del primer AFD, pero < 73' no es un estado final del segundo. Por tan to, dichos AFD no son equivalentes. El algoritmo de Moore se puede ampliar apropiadamente para cualquier al fabeto . Simplemente se incluir una columna para cada smbolo de X. 1. 2. Son equivalentes los AFD de la Figura 2.55 de la pgina 95? Son equivalentes los AFD de la Figura 2.56 de la pgina 95?

:.2. Considrese el AFD dado en la Figura 2.57 de la pgina 96. Obsrvese que cier tos estados se comportan de la misma forma para toda cadena de entrada. Por ejemplo, si estamos en el estado q2 o q%y analizamos cualquier cadena de entra da no vaca, llegamos al mismo estado. De alguna forma la presencia de <72 y q% es redundante.

www.FreeLibros.com

LENGUAJES REGULARES

95

3 - i
/ i b

~
a[ la

<-

(J
Figura 2.55

->

(7
a, fc > ,c

Figura 2.56

Conviene obtener un AFD para un lenguaje que sea el AFD mnimo, en el sentido de que tenga un nmero mnimo de estados. Esencialmente, lo que hare mos ser eliminar todos los estados redundantes (segn vimos anteriormente). Sea M = (Q, 2, s, F, 8) un AFD. Los estados p y q son distinguibles si para alguna cadena x de *, se tiene que 8 (p, x) e F y 8 (q, x) & F, o viceversa. Si todos los pares de estados son distinguibles, M no tiene estados redundantes y, por tanto, ya es un AFD mnimo. Por otro lado, si M contiene uno o ms con juntos de estados no distinguibles, se puede eliminar la redundancia reempla zando cada conjunto por un nico estado.

www.FreeLibros.com

96

TEORA DE AUTMATAS Y LENGUAJES FORMALES

Figura 2.57

Los pares de estados equivalentes (no distinguibles) se pueden encontrar por medio de una tabla en la cual cada fila y columna corresponden a un estado. Inicialmente, se marcan como distinguibles las entradas correspondientes a un estado final y a un estado no final. Entonces, para cada par de estados que no se conocen como distinguibles, se considera p( = 8 (p, a) y qa = 8 {q, a ) para todo a e E. Si pa y qa son distinguibles por medio de la cadena x, entonces p y q son distinguibles por medio de la cadena ax. As, si la celda correspondiente a p, y q est marcada para alguna a, mar caremos la celda para p y q. Si para todo a e X, no est marcada la celda corres pondiente a /? y q. introduciremos (/;. q) en una lista asociada con (p, qa) para todo a. Si posteriormente se obtiene que p y q son distinguibles, se marcarn tambin p y q. Puesto que las celdas simtricas con respecto a la diagonal co rresponden a los mismos pares de estados, necesitamos menos de la mitad de la tabla. Es ms, las celdas correspondientes a la diagonal son no distinguibles. La tabla siguiente corresponde al AFD del ejemplo precedente.
<72 <73 <74 <75 <76 <77 <78
X X X

A'
X X X X X X X X X X X X X X X X X X X X X

q\

<72

<?3

<74

<?5

/6

<77

www.FreeLibros.com

LENGUAJES REGULARES

97

Las colecciones de estados no distinguibles son {q\, q }, {q2, <?}. { < y 4, q6),

{ } y {< 77}. En el AFD reducido que obtenemos reemplazaremos cada colec


cin de estados no distinguibles por un nico estado. Por tanto, el AFD reducido para nuestro ejemplo es el de la Figura 2.58.

1. 3.

Obtener los AFD mnimos que correspondan a los AFD de la Figura 2.59.

Sea E = {(a, b, c) | a, b, c e {0, 1}} el alfabeto formado por todas las 3-tuplas de ceros y unos. Trataremos cada 3-tupla como un vector columna, es decir, Entonces, una suma binaria tal como 0011 + 0101 1000 1 0 v0

se puede interpretar como la cadena 1. 2.

sobre X.

V/ \ Probar que el lenguaje L\ sobre Z, compuesto por todas las cadenas que representan sumas binarias correctas, es un lenguaje regular. Usar el lema de bombeo (Lema 2.9.1) para probar que el lenguaje L for mado por todas las cadenas que representan productos binarios correctos no es un lenguaje regular. Hay muchas formas de tratar la adicin. Cuando realizamos una suma, generalmente sumamos los pares de dgitos correspondientes y un valor previo para obtener un dgito resultante y un resto. Consideremos la suma binaria donde el valor de entrada es un 0 un 1. Si el valor previo es un 0, entonces se obtiene un resto slo si el par de dgitos son dos unos. Si

www.FreeLibros.com

98

TEORA DE AUTMATAS Y LENGUAJES FORMALES

Figura 2.59

el valor previo es un 1, entonces la nica forma de que un resto no sea un 1 es que el par de dgitos a sumar sean dos ceros. Vamos a usar la notacin (x, y)/z para denotar el par de dgitos (x, y) que representan a los sumandos y z para indicar el dgito que resulta al su mar x + y + (valor existente). Entonces, la suma binaria puede ser repre sentada mediante el diagrama de la Figura 2.60. Obsrvese que este diagra ma es muy semejante a un diagrama de transicin de un autmata finito. De hecho, tendremos dos estados distintos que corresponden a los valores previos, y unas transiciones entre los estados que dependen de los dgitos a sumar (entrada), as como de los valores actuales (estado), y de un estado

www.FreeLibros.com

LENGUAJES REGULARES

99

inicial (el valor es inicialmente 0). La nica diferencia entre este diagrama y el diagrama de transicin de un autmata finito es que en ste la salida se representa como el resultado de una suma. (0,1 )/1
( 0 , 0)/0

( 1, 0)/0

(1,0)/1 ____ _______________________ (1.D /0 estado = 0 t ______________________(0, 0)/1


Figura 2.60

-> __ l estado = 0

(0, 1)/0 (1 ,1)/1

Un transductor de estados finito determinista (autmata que produce una salida) es una 6-tupla M - (Q, Z, F, s, 8, x), donde Q es un conjunto fi nito de estados que contiene un estado inicial distinguible i ; E y F son alfa betos, siendo Z el alfabeto de entrada y F el alfabeto de salida; 8 es la fun cin de transicin, donde 8: Q X X > Q\ y x es la funcin de salida, donde t ! 2 x e ^ r. Obsrvese que, al igual que en los autmatas finitos vistos en este ca ptulo, 8 depende del estado actual y del smbolo de entrada actual, x tam bin depende del estado y la entrada actual y proporciona una salida. Es importante notar que no hay ningn conjunto de estados finales. Los transductores no se ocupan de aceptar la entrada, sino de transformarla en una salida. En este sentido, los transductores transforman cadenas de entrada en cadenas de salida. Es decir, computan una funcin de Z en F'. 3. Considrese una mquina expendedora de latas de soda. Por sencillez, su ponemos que hay un botn de seleccin y que la soda cuesta 0.30 dlares. Tambin suponemos que, una vez que se han introducido 0.30 dlares en la mquina, cualquier moneda que se introduzca posteriormente ser de vuelta. Crear un transductor de estados finito determinista que modele el comportamiento de la mquina expendedora. Cmo se debera construir el transductor de estados finito determinista para que acepte un lenguaje?

4.

2.4. Caracterizacin de los lenguajes regulares. L c c. En la Seccin 2.9 y en sus ejercicios, vimos lenguajes no regulares de la forma {a' | i satisface alguna condicin} Por otro lado, muchos lenguajes que son de esta forma son regulares, por ejemplo, los lenguajes Li = {A +' | i > 0} paf k = 0 ,1 ,... Es razonable pregun tarse bajo qu condiciones es regular un lenguaje de estas caractersticas. En este problema obtendremos un resultado que responder a dicha pregunta.

www.FreeLibros.com

100

TEORA DE AUTMATAS Y LENGUAJES FORMALES

Una progresin aritmtica es una secuencia de nmeros naturales igual mente espaciados. Por ejemplo. {4,7,10,...} es una progresin aritmtica. Toda progresin aritmtica tiene dos parmetros que la determinan completa mente: el punto de partida p y la diferencia comn q. Se puede definir una pro gresin aritmtica en trminos de esos dos parmetros: Ap(/ = {x|x = p + nq para algn n e N} Obsrvese que, segn esta definicin, un conjunto que contenga un nico nmero natural es una progresin aritmtica con q - 0. As, por ejemplo, {3} es la progresin aritmtica A30. 1. Sea Ap ( una progresin aritmtica. Probar que el lenguaje L dado a conti nuacin es regular. L= {a'\i e Apq} Un conjunto X de nmeros naturales es finalmente peridico si X es finito o si hay dos nmeros naturales <j > 0 y t > 1 para los cuales, si x > n 0, entonces x e X si y slo si x + t e X. Por ejemplo, el conjunto {2, 3, 7, 14, 103. 109. 115, 121, ...} es finalmente peridico con n0 = 103 y t = 6 . Fjese en que cualquier progresin aritmtica Al> tl es finalmente peri dica ya que, si .v > p, entonces x e A,,( si y slo si x = p + nq para algn n, si y slo si x + q = p + (n + 1) q e Apq. Es decir, se puede tomar no - p y t < ? 2. 3. Probar que la unin de dos progresiones aritmticas es un conjunto final mente peridico. Probar que la unin de un conjunto X finalmente peridico con una progre sin aritmtica Ai> t, es un conjunto finalmente peridico. Obsrvese que los Ejercicios 2 y 3 implican que la unin finita de pro gresiones aritmticas es un conjunto finalmente peridico. Probar que todo conjunto finalmente peridico es la unin finita de progre siones aritmticas. Indicaciones: Obviamente, si X es finito queda probado. Supongamos que X es infinito. El conjunto {*|,v < no) es finito. Qu rela cin existe entre el conjunto finito {.v|noA'<o + ! y el conjunto
{*|. > o + M?

4.

El resultado de los Ejercicios 3 y 4 es que un conjunto X es finalmente peridico si y slo si es unin finita de progresiones aritmticas. 5.
6.

Probar que si L e a * y {/Ifl'e L) es finalmente peridico, entonces L es regular. Probar que si L c a* es regular, entonces {/1a' e L] es finalmente peridi co. Indicacin: Aplicar el Ejercicio 4 y el lema de bombeo. Usar los Ejercicios 5 y 6 para probar que el lenguaje

7.

www.FreeLibros.com

LENGUAJES REGULARES

101

L = {a"2|/i> 1) no es regular. Indicacin: Considere el conjunto X= [n2\n > 1 } Es finalmente peridico?


8.

Aplicar los Ejercicios 5 y 6 para probar que los siguientes lenguajes no son regulares: (a) {ar \ n > \}

(b) {ap\p es un primo} (c) [an'\n > 1 }

2.5. Homomortismos y sustitucin. El Teorema 2.8.1 demuestra algunas propieda

des de cierre de lenguajes regulares: el conjunto de lenguajes regulares es cerra do respecto a la unin, concatenacin y cerradura de estrella. En este problema estudiaremos otras dos propiedades de esta clase de lenguajes. Sean los alfabetos Ej y 2 . Una sustitucin asocia cada smbolo a e I | con un lenguaje SeX $. Formalmente, definiremos una sustitucin como una fun cin / : Li > 2Zi tal que f(a) =S, donde a e | y S e 1% . Extender la sustitu cin a cadenas y lenguajes sobre d forma que /( ) =
f(w a )= f(w )f(a )

donde w e Z y a s Zi. Por ejemplo, sea I i = {a, b] y Z2 = {0, 1}. Se definen f( ) = {011 }* y f(b) = {1001, 01101}. Entonces
fia ba) = {011 }* {1001, 01101) {011 }*

< X >
f(ab*)

= |J

;=o

Q O O O f{at) = \ J f ( a ) f ( b ') = (J

1=0

1=0

{011 }* {1001, 01101 }

= {011}4 U
1=0

{1001,01101}* = {011}'' {1001,01101}*

1.

Sean los alfabetos X | y 2 y /u n a sustitucin, donde, para todo a e Z 1, f(a ) R c Li es un lenguaje regular. Sean a y b elementos de ). (a) Probar q u c/(a u b) =f(a) <Jf{b). (b) Probar que / (a") = / (a)*.

www.FreeLibros.com

TEORA DE AUTMATAS Y LENGUAJES FORMALES

(c) Sea /? c | un lenguaje regular. Probar que f(R ) es un lenguaje regu lar. Indicacin: Aplique induccin sobre el nmero de operadores en una expresin regular para R. Supongamos que/es una sustitucin en la cual, para todo a e Zj,/( ) contiene slo una cadena. Dicha sustitucin se llama homomorfismo. Si L c 1 , se dice que f (L) es la imagen homomrfica del lenguaje L. Si L e Z 2, se dice que/ ' (L) es la imagen homomrfica inversa del len guaje L. Por ejemplo, sea / : {a, b, c) > {a, b}* definida como f ( a ) - a , f{b) = ba y f(c ) = a. Entonces, si L\ = a* {b kj c)*, se obtiene que / (L]) = a*\ba u a)*. Si L2 = (aba u a)*, entonces la imagen inversa es / ' (L2) = {(a u c) a u (a u c))*. [Obsrvese que/(a) = /(c ) = a por lo que / (a) = a u c.] En este caso, L2 es un lenguaje regular y / - 1 ( 2) tambin lo es. Esto, como se ver en el Ejercicio 2, no es una coincidencia. 2. Probar que, si L es un lenguaje regular y / e s un homomorfismo, entonces /~ ' (L) es un lenguaje regular. La afirmacin anterior se puede generalizar. Si / es una sustitucin, entonces/ ' (L) es regular si L es regular. Uniendo los ejercicios 1 y 2, se tiene que la clase de lenguajes regulares es cerrada con respecto a la ima gen homomrfica y la imagen homomrfica inversa. Puesto que los homomorfismos y sus inversas preservan la regulari dad, se pueden usar para determinar si un lenguaje es regular o no. La idea es tomar un lenguaje que no se sabe si es regular y tratar de transformarlo por medio de homomorfismos en un lenguaje regular o no regular cono cido. Por ejemplo, se sabe que el lenguaje {anbn\n > 1} no es regular. Con sidere el lenguaje L = {a"ba" | n > 1}. Aunque el lema de bombeo se puede aplicar para deducir que L no es regular, por medio de homomorfismos lle garemos a la misma conclusin. Supongamos que L es regular. Sea / : [a, b, c} {a, b}* el homomorfismo definido previamente y considere mos L\ = / " ' (L) = /~ ' ({anba"\n > 1}). Ya que/ * (a) = a kj c, se obtiene que / - ' (a"ban) = {a'daVba'c'a'c"\i+j + k + l = n y r + s-f-f+M +l=/z} Por tanto
/ -l (L) = {a'dakclbacs a 'c "\ i+ j + k + l = r + s + t + u + 1}

Entonces
/ ' (L) n abe" = {a"bcn~ 11n > 1}

Ya que abc* es, claramente, regular y ya que suponemos que L es re gular y que / - 1 (L) es regular, debemos obtener que (anbc> ' ~ 1 1 n > 1 } tam-

www.FreeLibros.com

LENGUAJES REGULARES

103

bin es regular. Ahora sea g: {a ,b ,c J - {a, b}* el homomorfismo defini do mediante g (a) - a y g (b) = g (c) = b. Entonces se tiene g ( / " ' (L) n abe*) = g ({d'bc " ~ 11n > 1}) = {a"b" n > 1} Puesto que g es un homomorfismo, tendremos que {a"b"\n> 1} es regular, lo que es una contradiccin. Por tanto, no puede ser que {a"ban\ n > 1} sea regular. Probar que {a'bc11i > /> 1} no es regular. Probar que {a'ba' \ i j e i,j > 1} no es regular.

www.FreeLibros.com

Lenguajes independientes del contexto

GRAMTICAS REGULARES
Las expresiones regulares y los autmatas finitos nos proporcionan dos medios para especificar o definir lenguajes. Las expresiones regulares nos proporcionan una plantilla o patrn para las cadenas del lenguaje. Todas las cadenas se corres ponden con un patrn en particular y dichas cadenas sern las nicas que forma rn dicho lenguaje. Igualmente, un autmata finito especifica un lenguaje como el conjunto de todas las cadenas que lo hacen pasar del estado inicial a uno de sus estados de aceptacin. Tambin se podra intexpretar un autmata como un generador de cadenas del lenguaje, segn se plantea a continuacin. Un smbolo se genera al recorrer el camino etiquetado con dicho smbolo y que parte del es tado actual al siguiente. Se empieza con la cadena vaca y se obtiene una cadena del lenguaje cuando el recorrido llega a un estado de aceptacin. Por ejemplo, se considera el autmata finito dado por el diagrama de tran sicin de la Figura 3.1. Este autmata finito acepta el lenguaje regular a (a u bv) b. Imaginemos que se comienza en el estado inicial y se atraviesa el diagrama de alguna forma. Cuando un camino va de un estado a otro, la salida" es el smbolo que etiqueta dicho camino. Por tanto se podra obtener la cadena de salida aa2b pasando por los estados c\ - <72 - 1/3 - (3 - qj - < 75 . Se ve fcilmente que las cadenas generadas de esta forma sern aceptadas por este autmata fini to. Es ms, cualquier cadena aceptada por este autmata puede ser generada por este mtodo.

www.FreeLibros.com

106

TEORA DE AUTMATAS Y LENGUAJES FORMALES

n
a

Figura 3.1

Obsrvese que todas las cadenas del lenguaje precedente estarn formadas por una a seguida de alguna parte final . Si hacemos que E represente la parte final, lo dicho se puede representar simblicamente mediante S >aE. La flecha > se puede interpretar como puede ser o se compone de. La parte final de una cadena estar formada por una de las dos listas de aes o bes. Por tanto, para indicar las mltiples posibilidades que hay para E podemos escribir E A y E > B. Las dos listas de aes y bes se pueden expresar como A aA junto con A >b para indicar que una cadena de aes va seguida de una b o como B ~ ^b B junto con B >b, para indicar que una cadena de bes va seguida de otra b. En resumen, tendremos las siguientes expresiones S ^ aE E -^A E ^B A -> b A > aA B ^b B -^bB Estas expresiones pueden ser consideradas como reglas de sustitucin para la generacin de cadenas. El smbolo que se encuentra a la izquierda de la flecha se puede sustituir por la cadena de la derecha. Por ejemplo, podemos generar aab empezando por S, sustituyndola por aE, sustituyendo la E por aA y finalmente sustituyendo la A por b. Tendremos una secuencia de cadenas comenzando por S y terminando con aab. En cada paso, las letras maysculas (S , E y A) representan la parte de la cadena final que* toda va no se ha generado. Bajo estas circunstancias tiene sentido interpretar la fle cha en las expresiones precedentes como es sustituido por".

www.FreeLibros.com

LENGUAJES INDEPENDIENTES DEL CONTEXTO

107

Finalmente, introduciremos el smbolo | que ser interpretado como o. Si se usa este smbolo, las dos reglas E >A y >B, se pueden unir en E >A \B. La coleccin precedente de reglas para generar cadenas puede volverse a escri bir como sigue: 1. 2. 3. 4. S aE E -* A \B A > ciA | B B -$ b B \b

La cadena crb se puede generar a partir de 5 aplicando primero la regla 1 para obtener aE. Entonces, aplicando la regl1 2 se obtiene aA y aplicando la re gla 3 se obtiene aaA y aaaA\ finalmente, se puede aplicar la segunda parte de la regla 3 para obtener aaab. Podremos escribir una descripcin del proceso de ge neracin como S => aE => aA => aaA => aaaA => aaab donde la doble flecha => se interpreta como deriva, produce o genera. Usaremos la notacin E ^ > w para indicar que la cadena w se deriva a partir de 5 en 0 o ms etapas. Obsrvese que en este modelo hemos introducido una coleccin de nuevos smbolos para representar las porciones de cadena que no han sido generadas. Cuando las cadenas han sido completamente generadas, estarn formadas en su totalidad por smbolos del alfabeto , pero antes de llegar a esto se obtendrn ca denas formadas por smbolos del alfabeto y por nuevos smbolos. Los nuevos smbolos se llaman no terminales, para indicar que deben ser sustituidos por smbolos del alfabeto antes de que la cadena haya sido totalmente generada. Por otro lado, los smbolos del alfabeto se llaman terminales, para indicar que no es posible que sean sustituidos. Obsrvese, tambin, que el smbolo usado para representar a una cadena que no ha comenzado a generarse, debe ser necesaria mente un no terminal. Finalmente, observemos que hemos generado las cadenas del lenguaje de izquierda a derecha en las cadenas de las etapas intermedias por las que se pasa al aplicar las reglas, los no terminales deben aparecer sola mente en el extremo derecho. Esto refleja la forma en la que un autmata finito reconocera una cadena del lenguaje. Daremos la siguiente definicin: Definicin 3.1.1. Una gramtica regular G es una 4-tupla G = (, N, S, P). donde es un alfabeto, N es una coleccin de smbolos no terminales, S es un no terminal llamado smbolo inicial, y P es una coleccin de reglas de sustitucin, llamadas

www.FreeLibros.com

108

TEORA DE AUTMATAS Y LENGUAJES FORMALES

producciones, y que son de la forma A >w, donde A e N y w es una cadena so bre l u N que satisface lo siguiente: 1. 2. w contiene un no terminal como mximo. Si w contiene un no terminal, entonces es el smbolo que est en el ex tremo derecho de w.

El lenguaje generado por la gramtica regular G se denota por L (G). Por ejemplo, considrese la gramtica regular G = (Z, N, S, P), donde

1 = {a, b}
N = { S ,A } P :S ^b A A ^ aaA | b 18 Obsrvese que L ( G ) contendr todas las cadenas de la forma ba2nb y ba2". Es decir, L (G) = b (a2)* (b u e). Se puede demostrar, por induccin sobre n, que todas las cadenas de la forma ba2"b o ba2" estn en L (G) y, por induccin sobre la longitud de una derivacin, se demuestra que L (G) est contenido en b {a2)* (b u ). (La etaba base es para una derivacin de longitud 2). De la definicin se deduce que el lado derecho de una produccin es una cadena de I ( N u ). Obsrvese que puede ser el lado derecho de una pro duccin. En el ejemplo precedente, la produccin A > acaba con la generacin de una cadena (al igual que la produccin A -> b) ya que se borra el no ter minal A. Dado que las producciones emparejan no terminales de N con cadenas de I (/V u ), conviene representarlas como pares ordenados de iVx X* (N u ). Por tanto, el par (x, y) de N x I* (N u ) representa a la produccin x >y. Las producciones de P del ejemplo anterior se podran representar mediante P = { ( S ,b A ) ,( A ,a a A ) ,( A ,b ) ,( A ,e ) } Si se llega al acuerdo de escribir los no terminales con letras maysculas y los terminales con letras minsculas y adems se conviene que S se use como smbolo inicial, entonces una gramtica regular puede ser completamente espe cificada por medio de sus producciones. Por ejemplo, S > a 5 | b especifica com pletamente la gramtica regular que genera el lenguaje a b.

www.FreeLibros.com

LENGUAJES INDEPENDIENTES DEL CONTEXTO

109

Ejercicios de la Seccin 3.1


3.1.1. Usar las reglas de la Figura 3.1 para derivar ab, ab3, aa b. Es posible derivar ababl 3.1.2. Supongamos que tenemos las reglas S >aS\bT y 7" >aa. Dar una derivacin para abaa, aabaa y aaabaa. Probar como se deriva akba2 para k > \ . Es posible derivar las cadenas baa, b o aal 3.1.3. Obtener una gramtica regular para los siguientes lenguajes: (a) a*b u a (b) a*b\jb*a (c) (a*bUb*a) 3.1.4. La gramtica regular dada por S ^ bA | flfle A abaS B >babS genera un lenguaje regular. Obtener una expresin regular para este lenguaje. 3.1.5. En nuestra definicin de gramticas regulares se dijo que si en el lado derecho de una produccin hay un no terminal, ste debe estar situado en el extremo de recho. Esto corresponde a la generacin de cadenas de izquierda a derecha. Por esta razn, una gramtica regular tambin puede llamarse gramtica regular por la derecha. Una gramtica regular por la izquierda es aquella cuyas cade nas son generadas por la derecha, es decir, las producciones son pares de iV x (N u E ) X*. (a) Obtener una gramtica regular por la izquierda para el lenguaje {anbaa | n > 0). (b) Obtener las gramticas regulares por la derecha y por la izquierda para {w e {a,b, c}* | iv termina en b y toda c va seguida por una a] (c) Para toda gramtica G = (X, N, S , P) que sea regular (por la izquierda o pol la derecha), se puede definir la inversa de G como G1 = (X, N, S. P'), donde P '= { (A ,x ') \( A ,x ) e P] Por tanto, s i A - ^ a B es una produccin de G, entonces A >Ba es una pro duccin de G1 . Supongamos que G es una gramtica regular por la derecha. (.

www.FreeLibros.com

110

TEORA DE AUTMATAS Y LENGUAJES FORMALES

i. ii.

Probar que G1 es una gramtica regular por la izquierda. Probar que w e L (G) si y slo si w1 e L (G1) por induccin sobre el nmero de producciones usadas para obtener w.

Se puede deducir de la parte (c) que la clase de los lenguajes genera dos por gramticas regulares por la izquierda es la misma que la clase de los lenguajes generados por gramticas regulares por la derecha. Por eso habitualmente, el trmino gramtica regular se aplica para referirse a cual quier gramtica ya sea regular por la izquierda o regular por la derecha.

3.2

GRAMTICAS REGULARES Y LENGUAJES REGULARES


Supongamos que L es un lenguaje regular. Se puede obtener una gramtica regu lar que genere L por medio de un AFD M = ( Q , , s, F, 8) para el cual L - L (M). Definimos G = (N, X, S, P) por N-Q I =Z S =s P = {(q, ap)\ (q, a) p} u {{q, e)|<?e F] Es decir, q > ap siempre que 8 (q, a ) - p y q ^> z q es un estado de acep tacin del AFD. Por ejemplo, el AFD dado en la Figura 3.2 acepta el lenguaje a*b. La gra mtica regular correspondiente tiene las producciones q\ ~ ^ a q \\b q 2 q 2 -> aq 3 \ bq 3 1 8 qi aq?, | bq-i En esta gramtica los q son no terminales (una ruptura con la notacin usual, la cual puede ser restablecida slo con renombrar los q y cj\ como smbo lo inicial). Obsrvese que w e L (M) para w = a i 02 ... o significa que

8 (s, c?i 02

a
Q 2

a. b
t ) a, b
Figura 3.2

www.FreeLibros.com

LENGUAJES INDEPENDIENTES DEL CONTEXTO

111

para algn p e F. Si escribimos q + 1 = 8 (q, , o) con q\ = s, entonces se obtiene 8 (s, O


02

... 0) = b (q i,O i 02 ... o) = 8 (< ?2> 02 ... On)


= 8 (#3, 03 ... 0)

= 8 (<7, 0/j) = /? e F Ahora, puesto que q+ i = 8 (<?,, 0 ;), se obtiene que q - G y, por tanto, (ya que = <yi) 5 = q\ => 0 | q 2 => 0 l 0 2 q 3
=> 0] 02 ... On p => 01 02 ... On
0

/ g,+ i pertenece a

As que w e L (M) implica que w es generada por G; es decir, (M )c L (G ). A la inversa, si w es generada por G, mediante la derivacin siguiente q\ => 0i qi => 0i 02 < 7 3 => 0 1 02 ... 0 p => 01 02 ... 0 entonces en M tendremos

8(5, 01 02 ... 0) = 8(qi,0i 02 ... o)


- 8 (< 72, 02 0,i)

= 8(q3, 03 ... On)


= 8 (<7h, 0) -p g F
\

(ya que 5 = q i). Asi, que w e L (G) implica que w e L (M ), con lo que se tiene que L (G) c L (M). Entonces se deduce que L (G) = L (M).

www.FreeLibros.com

112

TEORA DE AUTMATAS Y LENGUAJES FORMALES

Tambin es posible partir de una gramtica regular G y construir un AFN M de forma que L ( G ) = L (M). Sea G = (N, X, S, P) una gramtica regular; se defi ne M - (Q, X, .y, F, A) mediante Q = N u {/}, s-S F = \f} y A se construye como se indica a continuacin, a partir de las producciones de P: 1. Si A a i ... a n B es una produccin de P con A y f como no termina les, entonces se aadirn a Q los nuevos estados q i, < 72 , <?- 1 y las transformaciones siguientes A (A, 2. donde/ es un smbolo nuevo

ai ... a) = A(<?i,a2 ... a) = ... =A(^,;_i,a) = B

Si A >a i ... c es una produccin de P, entonces se aadirn a Q los nuevos estados q\, < 72, qn - 1 y a A, las transiciones siguientes A (A, a i ...

a) = A (yi, a2 ... a,;) ... A (q _ 1 , a() f

La construccin de A se puede concebir a partir de cmo estn etiquetadas las aristas del diagrama de transicin correspondiente a M y entonces se aadi rn los estados necesarios para cada uno de los smbolos de la cadena. Por tanto, si A > a i ... a S, primero podramos etiquetar las aristas entre A y B con a i ... G y despus aadir n - 1 estados nuevos, en la arista resultante:

9 ------------ > ------------ > O 9 * ------------ >


A Por ejemplo, la gramtica regular S > aB | bA | e A > abaS B > babS dara como resultado el AFN cuyo diagrama de'transicin se muestra en la Fi gura 3.3. Si G es una gramtica regular y w e L (G ) con vv = a i ... a, entonces para los no terminales Aj, A2, ..., A , 1 , se tiene la derivacin B

Q ]

02

O ,,

www.FreeLibros.com

LENGUAJES INDEPENDIENTES DEL CONTEXTO

113

S = a i A\ => ... => 01 ... Gn- l A n - l => 01 ... 0, y entonces en el AFN resultante de esta construccin se tendr A (s,
01

... G) = A (Ai, 0 2 0 n) =

= A(A_ i, 0) = /

Por lo tanto, w e L ( M ) . A la inversa, si A (s, 0 i ... 0) = /, entonces 5 => 0 1 ... 0, con lo que w e L (G). Luego L (G) = L (M). Aunque hemos demostrado las tcnicas de construccin ms usuales, en re alidad hemos demostrado mucho ms:

Figura 3.3

T eorem a 3.2,1.

L es regular si y slo si es generado por una gramtica regular.

Por tanto, tenemos tres mtodos generales de especificacin de lenguajes: las expresiones regulares, los autmatas finitos y las gramticas regulares.

Ejercicios de la Seccin 3.2.


3.2.1. Construir una gramtica regular para el lenguaje regular aceptado por el aut mata finito de la Figura 3.4. 3.2.2. Construir un AFN para la gramtica regular S-> aS\bB\b B ^ cC C ^ S

www.FreeLibros.com

114

TEORA DE AUTMATAS Y LENGUAJES FORMALES

3.2.3. Construir un autmata finito para la gramtica regular S >abA | B | baB \ e A -> b S \b B ^ ciS 3.2.4. Obtener una gramtica regular para el lenguaje L= jiv e {a, &* | w no contiene la subcadena ca i 3.2.5. Obtener una gramtica regular para L = {a"b" \ n > 0}. 3.2.6. Una produccin regular por la izquierda es una produccin de la forma A >Bw, donde A y B son no terminales y w es una cadena de terminales. Una produccin regular por la derecha es una produccin de la forma A > wB. Por tanto, las gramticas regulares por la izquierda (vase Ejercicio 3.1.5) y las gra mticas regulares por la derecha contienen solamente producciones regulares por la izquierda y producciones regulares por la derecha, respectivamente. Pro bar que una gramtica regular no puede contener ambos tipos de producciones.

GRAMTICAS INDEPENDIENTES DEL CONTEXTO


Recordaremos que en nuestra definicin de gramticas regulares se requiere que el lado derecho de todas las producciones contenga al menos un no terminal. Es ms, cuando un no terminal est presente, debe aparecer al final de la cadena (final izquierdo o final derecho, dependiendo de sr es una gramtica regular por la izquierda o por la derecha). Para expresar esto formalmente, se requiere que las producciones satisfagan P c W x I 4 (N u e) (o, en el caso de la regularidad por la izquierda, P c /V x (N u e) X*). Este requerimiento restringe en gran me-

www.FreeLibros.com

LENGUAJES INDEPENDIENTES DEL CONTEXTO

115

dida la manera en la que se pueden formar las producciones y, en consecuencia, restringe las clases de lenguajes que se pueden especificar. Supongamos que se permite que P q N x ( N kj Z)*, de forma que las pro ducciones puedan tener cero, uno o ms no terminales que aparezcan en cual quier lugar del lado derecho de las mismas. Por ejemplo, la gramtica dada por 5 > afi | M A H> a\aS\bA A B > b \b S \a B B es una gramtica de este tipo. Observe que, en definitiva, esta gramtica no es una gramtica regular. Por otro lado, todas las gramticas regulares satisfacen este nuevo requerimiento en lo que respecta a la forma en la que se construyen las producciones y, por tanto, son gramticas de este tipo. De esta forma, tendre mos ms de un tipo general de gramticas. Definicin 3.3.1. Una gramtica independiente del contexto (GIC) es una 4-tupla G ^K X ^P l donde N es una coleccin finita de no terminales, es un alfabeto (tambin co nocido como conjunto de terminales), 5 es un no terminal determinado que se llama smbolo inicial y P c A 'x (N u X)* es un conjunto de producciones. >El lenguaje generado por la GIC G se denota por L (G) y se llama lenguaje independiente del contexto (LIC). Por ejemplo, puesto que toda gramtica regular es una GIC, se tiene que todo lenguaje regular es un LIC.jy Al igual que una gramtica regular, una GIC es una forma de probar cmo se generan cadenas en un lenguaje. Como con las gramticas regulares, usare mos la notacin => para indicar el acto de generar como opuesto a el cual es parte de una regla de produccin. Cuando derivamos una cadena, los no termina les representan la parte de la cadena que todava no se ha generado. En el caso de las gramticas regulares, la parte de la cadena no generada siempre aparece al final. En las GIC que no son gramticas regulares, puede haber ms de un trozo no generado y pueden aparecer en cualquier lugar de la cadena. Cuando la deri vacin se completa, todos los trozos no generados habrn sido sustituidos por cadenas (posiblemente vacas) de smbolos terminales. Consideremos la GIC dada por *

www.FreeLibros.com

116

TEORA DE AUTMATAS Y LENGUAJES FORMALES

La induccin sobre n prueba que esta gramtica independiente del contex to genera el lenguaje independiente del contexto {a"bn\ n > 0 } . Por el Captulo 2 sabemos que este lenguaje no es regular. Por tanto, hay lenguajes inde pendientes del contexto que no son lenguajes regulares. Es decir, el conjunto de los lenguajes independientes del contexto contiene al conjunto de los lenguajes regulares. Dedicaremos bastante tiempo al estudio de las gramticas independientes del contexto y los lenguajes independientes del contexto. Sin embargo, antes de continuar, debemos mencionar otras formas de expresar las gramticas regula res. Al generalizar, las gramticas independientes del contexto, debemos elimi nar todas las restricciones con respecto al lado derecho de las producciones, per mitiendo que el mismo pueda estar formado por cualquier cadena sobre N u~ L . Lo nico que debemos tener en cuenta en la generalizacin es la parte izquierda de las reglas de produccin. Una gramtica de estructura de frase es aquella en la que los lados izquierdos de las reglas de produccin pueden estar formados por cualquier cadena no vaca sobre i V u ! , las cuales contienen algn no termi nal. Por tanto, para una gramtica de estructura de frase, la coleccin de reglas de produccin P satisface

P c ( A f u 1)*N (N u 2)*

x(Wu I)*

Las gramticas de estructura de frase se conocen como de tipo 0 o gramti cas no restringidas. El trmino independiente del contexto, cuando se aplica a gramticas, su giere que debera haber gramticas que dependieran del contexto. Las gramti cas dependientes del contexto son gramticas de estructura de frase, en las cua les las producciones se restringen a a > P, tal que I a l < I f}|. Hay una forma normal para estas gramticas, en la cual toda produccin es de la forma 2 > a i (3 a i con (3 ^ e . Tales producciones permiten que el no terminal i A (X A sea reemplazado por la cadena P, slo cuando A aparezca en el contexto de a , y a 2. Las gramticas dependientes del contexto no pueden generar tantos lengua jes como las gramticas de estructura de frase, aunque permiten que las deriva ciones se realicen de forma predecible. Sin embargo, obsrvese que, puesto que |S | = 1 y le = 0 , es imposible derivar la cadena vaca en una gramtica que sea verdaderamente dependiente del contexto. A menudo, los lenguajes de progra macin se crean para ser dependientes del contexto con el fin de simplificar el proceso de la compilacin.

www.FreeLibros.com

LENGUAJES INDEPENDIENTES DEL CONTEXTO

117

Ejercicios de la Seccin 3.3


3.3.1. Dada la siguiente gramtica independiente del contexto

S^A A A - AAA \a\bA\Ab (a) Obtener una derivacin para la cadena b2aba2ba. (b) Probar cmo puede obtenerse una derivacin para bm' ab"'2a ... b'"2 " ab'2 "* para todo n > 0 y m, m2..... m2n+ 1 > 0 .
3.3.2. La gramtica G independiente del contexto dada por

S > aSb | aSa | bSa\bSb 16 no es una gramtica regular, aunque L (G) es un lenguaje regular! Obtener una gramtica regular G' tal que L (G') = L (G).
3.3.3. Obtener una gramtica independiente del contexto para cada uno de los siguien

tes lenguajes independientes de contexto: (a) {a"b" | m > n }

(b) {w c {a, b }*| w tiene el doble de aes que de bes } (c) {nbn\n < m < 2n}

(d) {a!"b"cpd q\m +n> p + q)

RBOLES DE DERIVACIN O DE ANLISIS Y AMBIGEDAD


Cuando una cadena se deriva mediante una gramtica independiente del contex to, el smbolo inicial es sustituido por alguna cadena. Los no terminales de esta cadena son sustituidos uno tras otro por otra cadena, y as sucesivamente, hasta que se llega a una cadena formada slo por smbolos terminales. No se puede re alizar ninguna sustitucin ms, puesto que no hay no terminales que puedan ser sustituidos. A veces, es til realizar un grfico de la derivacin, que indique de qu manera ha contribuido cada no terminal a formar la cadena final de smbo los terminales. Tal grfico tiene forma de rbol y se llama rbol de derivacin (o rbol de anlisis). Un rbol de derivacin para una derivacin dada se construye creando un nodo raz que se etiquet con el smbolo inicial. El nodo raz tiene unos nodos hijos para cada smbolo que aparezca en el lado derecho de la produccin usada para reemplazar el smbolo inicial. Todo nodo etiquetado con un no terminal tambin tiene unos nodos hijos etiquetados con los smbolos del lado derecho de

www.FreeLibros.com

118

TEORA DE AUTMATAS Y LENGUAJES FORMALES

la produccin usada para sustituir ese no terminal. Los nodos que no tienen hijos deben ser etiquetados con smbolos terminales. Consideremos la gramtica independiente del contexto S-> A B A a A \ a B -> b B \b La cadena aabbb puede ser derivada mediante S => A B => AbB=> AbbB => Abbb=> aAbbb => aabbb En la Figura 3.5 se presenta un rbol de derivacin para esta derivacin. Co menzamos en la raz S y generamos los hijos A y B. A y B son raz del subrbol correspondiente a la parte de la cadena final que ellos generan. Obsrvese que todos los nodos hoja estn etiquetados con smbolos terminales. Si se leen las hojas de izquierda a derecha, se obtiene la cadena aabbb.

Figura 3.5

Finalmente, obsrvese que hay muchas derivaciones posibles para la cadena aabbb, las cuales tambin tienen el rbol de derivacin anterior. Por ejemplo, S =$ A B => aAB=> aaB => aabB => aabbB => aabbb
y

S => A B => aAB=$ aAbB => a A bbB => aAbbb => aabbb Para esta cadena y esta gramtica, todas las derivaciones de aabbb tienen el mismo rbol de derivacin. Sin embargo, no tiene porque cumplirse siempre. Para verlo, considrese esta gramtica
*

S->SbS\ScS\a Podemos derivar la cadena abaca de dos formas distintas como sigue:

www.FreeLibros.com

LENGUAJES INDEPENDIENTES DEL CONTEXTO

119

1. 2.

S=> SbS=> SbScS => SbSca => Sbaca => abaca S => S c S => SbScS => abScS => abacS => abaca

El rbol de derivacin para la derivacin 1 es

I a mientras que el rbol para la derivacin


2

( a es

Obsrvese que los dos rboles son distintos, aunque las cadenas producidas son la misma. (La cadena derivada corresponde a los nodos hoja y se llama pro ducto del rbol de derivacin). Una gramtica se dice que es ambigua si hay dos o ms rboles de deri vacin distintos para la misma cadena. Una gramtica en la cual, para toda cade na w, todas las derivaciones de w tienen el mismo rbol de derivacin, es no am bigua. La ambigedad puede ser un problema para ciertos lenguajes en los que su significado depende, en parte, de su estructura, como ocurre con los lenguajes naturales y los lenguajes de programacin. Si la estructura de un lenguaje tiene ms de una descomposicin y si la construccin parcial determina su significa do, entonces el significado es ambiguo. Consideremos la sentencia Juan vio a un hombre con un telescopio. El significado de esta sentenciares ambiguo debi do a que con un telescopio puede describir al hombre que vio Juan o a la tc nica que Juan emple para ver al hombre. * Consideremos otro ejemplo de ambigedad que obscurece el significado de las expresiones. Sea la siguiente gramtica de asignaciones de expresiones:

www.FreeLibros.com

120

TEORA DE AUTMATAS Y LENGUAJES FORMALES

A ^I]= E Ia _ \b \c
e

-* e

e \e

\W _ \i

Los smbolos terminales han sido subrayados. La cadena a := b + c * a es una cadena de este lenguaje de sentencias de asignacin. Hay dos rboles de derivacin distintos para ella (vase Figura 3.6)
A A

a
Figura 3.6

Si pretendemos determinar cmo se calcula el valor de la derecha del opera dor de asignacin (el smbolo :=), se obtienen dos resultados posibles, b + (c * a) o (b + c) * a. En general, estos resultados no son iguales. En algunos casos, si la gramtica es ambigua, se puede encontrar otra gra mtica que produzca el mismo lenguaje pero que no sea ambigua. Por ejemplo, la gramtica S ^ A \B A ^a B ^ ci es ambigua porque tiene dos rboles de derivacin para la cadena a. Una gram tica equivalente que no es ambigua es S ^ ci Si todas las gramticas independientes del contexto para un lenguaje son ambiguas, se dice que el lenguaje es un lenguaje independiente del contexto in herentemente ambiguo. El lenguaje ' L - {alb->ck | i - j o j = k}

www.FreeLibros.com

LENGUAJES INDEPENDIENTES DEL CONTEXTO

121

es inherentemente ambiguo. Intuitivamente, una gramtica para L debe tener una clase de rbol de derivacin para generar las cadenas para las cuales i = j y otro para las cadenas en las cuales j = k. Si una cadena tiene i = j - k, tendr dos deri vaciones. Vimos anteriormente que una* cadena dada no puede tener ms de una deri vacin igual en una gramtica independiente del contexto no ambigua. Las deri vaciones distintas corresponden a la eleccin de distintos no terminales a expan dir. Por convencin, dos formas de generar una cadena tienen una nica salida. En una derivacin por la izquierda el no terminal que se expande es, siempre, el del extremo izquierdo. Por tanto para la gramtica S >SbS\ScS\ a una derivacin por la izquierda de abaca ser S => ScS=> SbScS => abScS => abacS => abaca Una derivacin por la derecha es aquella en la cual el no terminal que se expande es el del extremo derecho. Por tanto S => ScS=> Sea => SbSc => Sbaca => abaca es una derivacin por la derecha de la cadena dada. Obsrvese que las dos deri vaciones tienen el mismo rbol de derivacin:

Este rbol de derivacin tambin es compartido por otras derivaciones. En esta gramtica S => S b S => abS => abScS => abacS => abaca *

es una derivacin por la izquierda distinta de la precedente. La presencia de dos derivaciones por la izquierda distintas se corresponde con la existencia de dos rboles de derivacin distintos. Por tanto, una gramtica ambigua se caracteriza por tener dos (o ms) derivaciones por la izquierda para la misma cadena.

www.FreeLibros.com

LENGUAJES INDEPENDIENTES DEL CONTEXTO

123

Nos gustara establecer las restricciones necesarias para que las produccio nes se formen de manera que el rbol de derivacin resultante no sea necesaria mente complejo o intilmente sencillo. A la vez, no se pretende constreir la formacin de producciones hasta el punto de que no se pueda generar ningn lenguaje independiente del contexto a partir de los conjuntos de producciones que cumplan las restricciones. Pretendemos encontrar un modelo formal estn dar (o una forma normal) para las producciones. Como primer paso en el desarrollo del modelo, necesitamos limpiar las gra mticas para eliminar las producciones y smbolos intiles. Consideremos la gramtica independiente del contexto del ejemplo siguiente:

Ejemplo 3.5.1 S ^A a \B \D B -> b A aA\bA\B C >abel Obsrvese que C nunca formar parte de una derivacin que parta del sm bolo inicial, es decir, no existe S => aC(3 para toda cadena a y p de (WuZ)*. Por consiguiente, el smbolo C y la produccin C U abd son intiles en el sentido de que nunca podrn contribuir a la generacin de una cadena de L (G). El smbolo D se obtiene a partir de S pero nunca deriva una ca dena de smbolos terminales y, por tanto, nunca formar parte de una derivacin de una cadena de terminales. Por tanto, D tambin es intil, aunque por distinta razn. Por otro lado, el smbolo B es, en cierto modo, redundante, ya que deriva nicamente un smbolo terminal; por tanto, las derivaciones S = >B = >b y A B= = >b podran ser reducidas de forma que S => b y A => b, y eliminndose B. Finalmente, obsrvese que si se elimina la produccin C - abd, el smbolo terminal d no puede aparecer en ninguna cadena de terminales generada me diante la gramtica resultante. Por tanto, hemos identificado muchos aspectos en los que las gramticas in dependientes del contexto pueden ser depuradas. Cualquiera de e,sos problemas pueden ser eliminados sin afectar a la capacidad de generacin de la gramtica. Primero se eliminarn los no terminales que no deriven cadenas de terminales, tales como D en el Ejemplo 3.5.1. Sea G = (N, Z, S, P) una gramtica independiente del contexto. Transforma remos G en G' = ( N \ Z, S, P') de forma que L (G ) = L (G') y, para todo A e N ',

www.FreeLibros.com

124

TEORA DE AUTMATAS Y LENGUAJES FORMALES

se obtenga que A = = > w para algn w e 2T. Para realizarlo, construiremos iterati vamente el nuevo conjunto de no terminales N ' y el nuevo conjunto de produc ciones P' como sigue: Algoritmo 3.5.1. 1. Inicializar N ' con todos los no terminales A para los que A > w, es una produccin de G, con w e X*. Inicializar P' con todas las producciones A > vv para las cuales A e N ' y w e 1 *. Repetir Aadir a N ' todos los no terminales A para los cuales A vv, para algn vv e (/V' u )* que sea una produccin de P y aadirla a P'. hasta que no se puedan aadir ms no terminales a N '. Obsrvese que el bucle del paso 3 termina, ya que N y P son finitos. Esen cialmente, lo que estamos haciendo es recorrer hacia arriba todos los posibles r boles de anlisis a partir de las cadenas de terminales, anotando los no termina les (y las producciones) que se encuentren. Todo no terminal (y produccin) que no aparezca en N ', no contribuir a formar una subcadena de cualquier cadena final" de terminales que sea generada por la gramtica. Por tanto, su elimina cin no altera el lenguaje generado. Por ejemplo, en la gramtica del Ejemplo 3.5.1, esperbamos eliminar el no terminal D. Despus de aplicar el Algoritmo 3.5.1 a esta gramtica, obtendremos la siguiente: iS ^ Aci B A ^ a A \b A \B B >b C > abd Las gramticas independientes del contexto se han definido de forma que se permite que existan producciones que tengan e en el lado derecho. El Algorit mo 3.5.1 trata e como una cadena de un terminal. Por tanto, al transformar la gramtica ... . . . f .' S ^ A I * A -> aA | bB | B -^bB

2. 3.

www.FreeLibros.com

LENGUAJES INDEPENDIENTES DEL CONTEXTO

125

se obtendr la gramtica S > ciA | A -> aA 18 Las producciones de la forma A >e se llaman producciones e. A veces son necesarias, pero otras no son ni necesarias ni deseables. Podremos eliminarlas cuando no sean necesarias. A menudo, tras la transformacin de una gramtica, nos quedan produccio nes como C >abd que no se usan. La razn por la cual dicha produccin se en cuentra en la gramtica transformada es que, de la aplicacin de dicha produc cin, se obtiene una cadena de terminales. Sin embargo, su presencia no es de seable ya que nunca se podr derivar una cadena a partir del smbolo S que contenga el no terminal C. Es ms, puesto que el smbolo terminal d slo apare ce en una cadena que se obtenga a partir de dicha produccin, puede ser elimina do del alfabeto sin que el lenguaje generado sea alterado. El siguiente algoritmo elimina aquellos terminales y no terminales que no aparezcan en las cadenas que se deriven a partir de S. La gramtica transformada resultante garantiza que un smbolo X ser un terminal o no terminal de dicha gramtica si y slo si S => C/.X P para algunas cadenas a y (3 sobre (N u Z)*. Sea G = (N , Z, S, P) una gramtica independiente del contexto. Transforma remos G en la gramtica G' = (N ', Z', S, P') de forma que L (G) = L (G') y para todo X e i V ' n l ' , se tenga que S => a X P para las cadenas a y p de (N ' n Z ')'. Para realizarlo, se construirn iterativamente los conjuntos de terminales, no ter minales y producciones de la manera siguiente: Algoritmo 3.5.2. 1. 2. Inicializar N ' de forma que contenga el smbolo inicial S, e inicializar P' y l ' a 0. Repetir Para A e N ', si A > w es una produccin de P, entonces: 1. 2. 3. Introducir A w en P'. Para todo no terminal B de w, introducir B en N'. Para todo no terminal 0 de w, introducir a en Z'.

hasta que no se puedan aadir nuevas producciones. Obsrvese que, puesto que P, N y Z son finitos, el bucle de la etapa 2 siem pre termina. El algoritmo ha sido diseado para tener en cuenta todos los termi nales y no terminales que sean accesibles desde S. Si un terminal o un no termi nal no puede ser conseguido a partir de S, nunca ser incluido en N ' o Z'. Si un

www.FreeLibros.com

126

TEORA D AUTMATAS Y LENGUAJES FORMALES

no terminal no es accesible, entonces todas las producciones que lo tengan en su lado izquierdo sern tambin excluidas. Consideremos la gramtica del Ejemplo 3.5.1 que fue transformada median te el Algoritmo 3.5.1 en S -* A a \B B -*b A ^ a A \b A \B C abd La gramtica obtenida al aplicar el Algoritmo 3.5.2 es S -> A a \B ' A > a A | bA | B B -> b Obsrvese que la produccin C >abd ha sido eliminada, junto con el no terminal C y el terminal d. Hay que tener en cuenta que es importante el orden en el que los dos algo ritmos precedentes son aplicados a una gramtica. Consideremos la gramtica S >AB | a A ^ 7 Si aplicamos el Algoritmo 3.5.1 antes que el Algoritmo 3.5.2 obtendremos un resultado distinto al que obtendramos si aplicamos primero el Algoritmo 3.5.2 y despus el Algoritmo 3.5.1. S ^ AB j ci A ^a S AB | (2 | A >a j

Alg. 3.5.1

Alg. 3.5.2

Alg. 3.5.2.

5 > AB | C l A >a j

Alg. 3.5.1

S ) C l A ^a

Ahora dirigiremos nuestra atencin a las producciones s. Dichas prodicio nes son de la forma A . Indudablemente, si e L (G), no podremos eliminar tales producciones para que e pueda ser generado por la gramtica. De esto se deduce que, si no est en L (G), todas las producciones pueden ser elim i nadas. Se dice que un no terminal A es anulable si A = ^> . Para la eliminacin de las producciones , es crucial identificar los no terminales anulables. El siguien-

www.FreeLibros.com

LENGUAJES INDEPENDIENTES DEL CONTEXTO

127

te algoritmo identifica el conjunto 5\, de todos los no terminales anulables en una gramtica independiente del contexto G = (N, Z, S, P). Algoritmo 3.5.3. 1. 2. Inicializar con todos los no terminales A para los cuales existe una produccin e, A e. Repetir: Si B > w para algn w e ( J V u I ) " y todos los smbolos de w estn en A, aadir B a hasta que no se aadan ms no terminales a .

Por ahora, slo nos ocuparemos de las gramticas independientes del con texto G = (N , Z, S, P), para las que L (G) no contiene a e. Una vez que han sido identificados los no terminales anulables, se modifican las reglas de produccin con el fin de poder eliminar las producciones e. Esto se realiza sustituyendo pro ducciones de la forma B ^ > X \ X 2 ... X por las producciones que se formen al eliminar los subconjuntos de X que son anulables. Se debe tener cuidado en no incluir B - e, incluso si todos los X son anulables. Se crea el nuevo conjunto de producciones P' como sigue: Si B >X\ X 2 X, es una produccin de P, entonces en P' introducire mos todas las producciones de la forma B - Y\ Y2 ... Y, donde las Y satisfagan: Y = X si X, no es anulable. Y = X o
8

si X es anulable.

Y no es e para todo i (es decir, no se introduce en P' ninguna produccin de la forma B e) Es importante sealar que a partir de una produccin B > X\ X 2 ... X de P, se pueden conseguir nuevas producciones en P'. Por ejemplo, si B X X 2 y tanto X\ como Xj son anulables, se podran obtener las producciones B ^ > X x\X 2 \X x X 2 Consideremos la gramtica G: * S > aA A > aA I e
*

www.FreeLibros.com

128

TEORA DE AUTMATAS Y LENGUAJES FORMALES

Obsrvese que A es el nico no terminal anulable (y que e L (G)). Si con sideramos la produccin S > aA , tendremos que X\ = a y X 2 =A. Por tanto, aa diremos a la nueva coleccin las producciones S >a\aA. La gramtica que re sulta, tras considerar todas las producciones originales, ser 5 aA | a A aA | a Obsrvese que se ha eliminado la produccin e, A > . En una gramtica independiente del contexto, si L (G ) contiene e, se pueden eliminar todas las producciones de G menos una. Primero, se eliminan todas las producciones de G. Esto transformar la gramtica G en G' para la cual L ( G') = L (G) - {}. Despus se aade la produccin S >, la cual restituir al lenguaje generado. Las producciones de la forma A B, donde A y B son no terminales, se lla man producciones unitarias o no generativas. La presencia de producciones uni tarias no indica, necesariamente, que un smbolo es intil. Sin embargo, las pro ducciones unitarias hacen que la gramtica independiente del contexto sea inne cesariamente compleja. Por ejemplo, la aplicacin de una produccin de la forma A >B simple mente renombra un no terminal y aade un paso ms a la derivacin. Cualquier cadena que sea derivable a partir de B tambin lo ser a partir de A. Por tanto, se puede eliminar ese paso extra saltando por encima de B. Por ejemplo, si las pro ducciones de A y B son A -^B B ^ wj C donde C e N y w\ e (/V u L ) \ podemos eliminar la produccin A > B e incluir la produccin A vvi | C. Obsrvese que, al eliminar la produccin unitaria A >B, se introduce la produccin unitaria A >C. Se podra repetir este proce so hasta que no existiera ninguna produccin unitaria en la gramtica, pero se podra realizar otro planteamiento con el fin de eliminar la circularidad de este proceso. Obsrvese que, en el proceso precedente, la produccin unitaria A C se obtiene como resultado de las producciones A B y B - C de la gramtica ori ginal. Si conocemos todos los no terminales X tales que A =?> X, solamente me diante producciones unitarias, se podra entonces evitar introducirlas repetida mente e ir eliminando dichas producciones unitarias una a una. Para ver cmo se puede realizar este proceso, supongamos que tenemos las producciones

www.FreeLibros.com

LENGUAJES INDEPENDIENTES DEL CONTEXTO

129

B > C \ w\ C D D >W '2 Entonces se tiene que A => B => C => D. Obsrvese que las producciones A >vv1 1W 2 permiten que de A se deriven las mismas cadenas que se derivaban con las cinco producciones originales. Las nuevas producciones se obtienen a partir de las producciones no unitarias del conjunto de producciones original, creando una produccin A y para toda produccin no unitaria X y, donde X e { B ,C ,D } . A continuacin presentaremos esta tcnica de una forma ms precisa. Primero, para A e N se define Unitario (A) = {B e /V| A = ^> B usando solamente producciones unitarias} (Obsrvese que A e Unitario (A) puesto que A = ^> A mediante 0 produccio nes). Sea G = (N, E, 5, P) una gramtica independiente del contexto que no ten ga producciones e. Construiremos una gramtica independiente del contexto equivalente G' = (N, Z, S, P') en la que P' no contenga producciones unitarias, como se describe a continuacin: 1. Inicializar P' de forma que contenga todos los elementos de P. 2. Para cada A e N, obtener el conjunto Unitario (A). 3. Para cada A para el cual Unitario (A) ^ {A} Para cada B e Unitario (A) Para cada produccin no unitaria B > w de P aadir A - ) w a P /. 4. Eliminar todas las producciones unitarias que haya en P'.

Por ejemplo, en la gramtica S A | A a A -+ B B * tenemos C \b C ^ D | cib D ^b

www.FreeLibros.com

130

TEORA DE AUTMATAS Y LENGUAJES FORMALES

Unitario (S)= {S,A, B, C, D} Unitario (A) = {A, B, C, D} Unitario (B) = {B, C, D} Unitario (C) = {C, D] Unitario (>) = {D} El algoritmo introduce primero las producciones S > b|ab A -^b \a b B >ab\b C -* b \a b y entonces se eliminan las producciones S >A, A gramtica resultante es 5 > b \a b \A a A b\ab B > ab\b C > b | ab D -*b Esta gramtica puede simplificarse ms, por medio de las otras tcnicas. En lo visto anteriormente, hemos realizado la eliminacin de producciones en gramticas independientes del contexto de una forma bastante incmoda. Como ltima etapa en la simplificacin de gramticas independientes del con texto, presentaremos un modelo o forma normal para las producciones. Se dice que una gramtica independiente del contexto est en forma normal de Chomsky si no contiene producciones e y si todas las producciones son de la forma A a, para a e Z, o de la forma A BC, donde B y C son no terminales. Es decir, en la forma normal de Chomsky el lado derecho de cada produccin contiene un nico smbolo terminal o una par de no terminales. Obsrvese que, para una gra mtica en forma normal de Chomsky, el rbol de derivacin para cualquier deri vacin est bastante bien construido ya que, excepto en las hojas, el rbol es bi nario! Si G es una gramtica independiente del contexto y 8 (G ), G puede ser transformada en una gramtica en forma normal de Chomsky. Para ello, primero se eliminan todas las producciones 8 , los smbolos intiles y las producciones unitarias de G. Obsrvese que, una vez que se ha realizado lo anterior, si A >w es una produccin de G, se puede asegurar que | w\ > 1. Es ms, si | vr| - ], en tonces w es un smbolo terminal de Z, puesto que no hay producciones unitarias. B > C y C - D. La

www.FreeLibros.com

LENGUAJES INDEPENDIENTES DEL CONTEXTO

131

Por otro lado, si |h>| > 1, entonces w puede contener tanto terminales como no terminales. Ahora transformaremos G convirtiendo tales w en cadenas que con tengan slo no terminales. Supongamos que tenemos una produccin de la forma A > w, donde w = X\ X 2 ... Xn. Si X es un smbolo terminal, llamado a , sustituiremos X por un nuevo no terminal C0 y aadiremos la produccin C a. Una vez que se aplica a G est conversin, todas las producciones son de la forma A > w, don de vv es un smbolo terminal o una cadena formada slo por no terminales. La ltima etapa para la transformacin de G en forma normal de Chomsky, consiste en eliminar las cadenas con ms de dos no terminales que se encuentren en el lado derecho de una produccin. Para ello, si A > B\ B 2 ... Bn es una pro duccin con n > 2 , la reemplazaremos por n - 1 producciones A -> B\ D\ D\ >B 2 D 2 D~ 2 > Bn - 1 Bn En ellas, los D sern nuevos no terminales. En la gramtica transformada resultante, el lado derecho de cada produccin est compuesto por un nico ter minal o por una cadena de dos no terminales. Por lo tanto, todo lenguaje inde pendiente del contexto que no contenga puede ser generado mediante una gra mtica independiente del contexto en forma normal de Chomsky. Por ejemplo, consideremos la GIC S - > b A \ aB A ^ bAA j ciS \ a B ^ > a B B \b S \b Obsrvese que esta gramtica no contiene producciones , producciones unitarias ni smbolos intiles. Despus de la primera transformacin, la gramti ca se convierte en S - > C bA \ C a B A - Ch A A \C a S \a B -> Ca B B \C h S \b Ca ^ o, Cb >b

www.FreeLibros.com

132

TEORA DE AUTMATAS Y LENGUAJES FORMALES

En esta versin, el lado derecho de todas las producciones est formado por un nico smbolo terminal o por una cadena de dos o ms no terminales. Des pus de la ltima conversin, la forma normal de Chomsky de la gramtica ser S - > C hA \ C aA A > Cfr D l | Ca 5 1C l D \-* A A B
>

Ce , D'i | C) S | b

D2 > BB Si L es un lenguaje independiente del contexto que contiene 6 , se puede ob tener un gramtica independiente del conter.to en forma normal de Chomsky para L - {} y despus aadir a la misma, la produccin S > e. La gramtica re sultante estar en forma normal de Chomsky exceptuando la produccin e.

Ejercicios de la Seccin 3.5


3.5.1. Aplicar el Algoritmo 3.5.1 a las siguientes gramticas: (a) S aAb\cEB\CE A > clBE\eeC B ^ ff\D C ) gFB | ae D -^h S -> aB /I ->bcCCC\dA B e C >fA D Dgh

(b)

3.5.2. Aplicar el Algoritmo 3.5.1 a la siguiente gramtica: S ^ ci | oA | B j C A >ciB! . B >Aci C bCD D - ccc

www.FreeLibros.com

LENGUAJES INDEPENDIENTES DEL CONTEXTO

133

3.5.3. Aplicar el Algoritmo 3.5.2 a la siguiente gramtica independiente del contexto: 5 aAb A ccC B > dd\D C ^ ce O /

3.5.4. Aplicar el Algoritmo 3.5.2 a la siguiente gramtica independiente del contexto: S a\aA\B A aB\e B Aa D Wd 3.5.5. Eliminar los smbolos intiles de la siguiente gramtica por medio de los Algo ritmos 3.5.1 y 3.5.2: S->A\AA\AAA A > A5a| ACa | a B ABa\Ab\z C Cab | CC ) C>| C<| CEa E -> b 3.5.6. Obtener la coleccin de no terminales anulables que pertenecen a la siguiente gramtica: S - aA | bA | a A - aA | bAb 18 3.5.7. Obtener, para la siguiente gramtica, el nmero de no terminales anulables: S >ABaC A AB B >b * C-H>Z?|e n ^d

www.FreeLibros.com

134

TEORA DE AUTMATAS Y LENGUAJES FORMALES

3.5.8. Eliminar las producciones E de la gramtica: S - aA [bA | a A - aA | bAb I 3.5.9. Eliminar de la siguiente gramtica las producciones : S >AB A aA IabB \ aCa B^>bA\BB\z C > D -^dB \B C B \ 3.5.10. Eliminar de la siguiente gramtica las producciones e: S ^ | ciA | B A >B I B ^ Aci 3.5.11. Eliminar las producciones de la gramtica siguiente: S -> C /i ^A Z? f - le C -> Z)le D -> d 3.5.12. Simplificar la siguiente gramtica tanto como sea posible S >at\aaB
A -

B > bA B >e 3.5.13. El lenguaje asociado con la siguiente gramtica independiente del contexto con tiene e. Eliminar las producciones e excepto S . S ^ AB \ aB Ie
A >BBB | aB | a Ie

B ^ a | A t
%

3.5.14. Realizar una algoritmo para construir Unitario (A) siendo A un no terminal de una GIC.

www.FreeLibros.com

LENGUAJES INDEPENDIENTES DEL CONTEXTO

135

3.5.15. Eliminar todas las producciones unitarias de la siguiente gramtica inde pendiente del contexto: CBa\D 5 /I bbC B Se |ddd C e A \f\C D E\SABC gh E

3.5.16. Eliminar todas las producciones unitarias de la siguiente gramtica inde pendiente del contexto: S >Aa|Ba | B A -> Afile B -* a A \B B \z [Obsrvese que e e L (G)]. 3.5.17. Convertir las siguientes gramticas a forma normal de Chomsky: (a) S->AB\CA A -> a B > BC\AB C ^ ciB | b S->aAb\cHB\CH A dBH\eeC B -* ff\D C gFB | ah D >i E *jF F > dcGGG \ cF G ^kF H > Hlm

(b)

3.5.18. Probar que, al realizar la conversin a forma normal de Chomsky, se puede ele var al cuadrado el nmero de las producciones de una gramtica independiente del contexto.

www.FreeLibros.com

136

TEORA DE AUTMATAS Y LENGUAJES FORMALES

PROPIEDADES DE LOS LENGUAJES INDEPENDIENTES DEL CONTEXTO


Las gramticas en forma normal de Chomsky nos permiten obtener la relacin que existe entre la longitud de una cadena y el nmero de pasos de su deriva cin. Si se deriva , se obtiene a partir de una nica produccin S > . Se puede probar, mediante induccin, que si se puede derivar w y | w\ > 0 , entonces la de rivacin tiene exactamente 2\w \ etapas. Por etapa, entendemos una sustitucin. Escribir el smbolo inicial es una etapa, as como lo es sustituir a l o a cualquier otro terminal por el lado derecho de una produccin. Supongamos que G es una gramtica independiente del contexto en forma normal de Chomsky y consideremos el rbol de derivacin para una cadena cualquiera de L ( G ). Si un nodo tiene dos hijos, entonces los nodos hijos sern etiquetados con un no terminal y podremos tener al menos dos hijos ms del mismo. (Esto es debido a que G est en forma normal de Chomsky). Es decir, el nodo raz puede tener dos hijos, cada uno de sus hijos puede tener dos hijos y as sucesivamente. En cada nivel se pueden duplicar el nmero de nodos con res pecto al anterior. Por tanto, en el nivel k podremos tener 2k nodos. (El nivel 0 es el nivel del nodo raz). Por otro lado, si un nodo tiene un nico hijo, entonces dicho nodo hijo ser etiquetado mediante un terminal, debido nuevamente, a que la gramtica est en forma normal de Chomsky. Por tanto, todo smbolo terminal que etiquete a un nodo hoja corresponde a dos nodos, la hoja y su padre. Supongamos que el camino ms largo desde la raz a las hojas consta de m + 2 nodos (y m + 1 arcos). Entonces, el rbol de derivacin tiene m + 2 niveles (es decir, los niveles 0 , 1 ,..., m + 1 ) y los nodos del ltimo nivel (las hojas) son hijos nicos de sus nodos padre. En el nivel m hay, como mximo, 2'" nodos pa dre. Por tanto, si el camino ms largo de un rbol de derivacin consta de m + 2 nodos, entonces 2"' es la longitud mxima de la cadena derivada. Otra forma de decirlo es que, si la cadena derivada tiene longitud mayor que 2 '", entonces el ca mino ms largo debe contener ms de m + 2 nodos. Ahora, cada nodo del rbol de derivacin de una cadena se corresponde con la aplicacin de una produccin. Por lo tanto, la relacin que existe entre el n mero de producciones que comprende cada etapa y la longitud de la cadena de terminales resultante sugiere que una gramtica independiente del contexto en forma normal de Chomsky, genera un promedio de un terminal por cada dos producciones. El conocimiento de la relacin existente entre la longitud de la cadena y su derivacin en una gramtica independiente del contexto, nos permite demostrar el siguiente lema de bombeo para los lenguajes independientes del contexto.

www.FreeLibros.com

LENGUAJES. INDEPENDIENTES DEL CONTEXTO

137

Lem a 3.6.1. Sea L un lenguaje independiente del contexto que no contiene e. Entonces existe un entero k para el cual, si z e L y | z | >k, entonces z se puede volver a escribir como z = uvw xy con las propiedades siguientes:
1

| vwx | <k. Al menos o v o x no es 8 . uv'wx'y e L para todo i > 0.

2. 3.

Demostracin. Supongamos que G = {N,Y,,S,P) es una gramtica independiente del contexto en forma normal de Chomsky con L = L (G ). Sea n el nmero de no terminales de N y sea k = 2n. Supongamos que z e L con | z | > k. Vamos a considerar el camino ms largo del rbol de derivacin correspon diente a zPuesto que |z | > 2, este camino debe contener ms de n + 2 nodos. De los n + 2 ltimos nodos del camino, el ltimo corresponder a un terminal. Por tanto n + 1 de dichos nodos estn etiquetados con no terminales. Puesto que slo hay n no terminales en N, alguno se repetir. Supongamos que A est repeti do en el camino. Entonces se tiene que S => uvAxy => u v w x y - z

para algunas subcadenas u, v ,i v ,x e y. Puesto que slo hemos considerado los n + 2 ltimos nodos de este camino, el camino de A a vwx puede tener como m ximo n + 2 nodos. Por tanto | vwx | < 2 " segn las observaciones previas a este teorema. Adems, puesto que A = = >vAx, debemos obtener que A => v 'A j para algn i > 0. Por tanto, S => uv 'wx'y para todo i > 0. Finalmente, obsrvese que, puesto que A =>v/bc y puesto que G est en for ma normal de Chomsky, se debe tener que A => 6 C=> vAx=$ vwx para algunos no terminales B y C. Entonces B =4 v y C=^> A x o si no B vA y C => x. Ya que v y x son cadenas de terminales y no hay producciones 8 , en el primer caso se tiene que | v| > 1 con lo que v ^ 8 y, en el segundo cso, |x | > 1 con lo que x ^ 8 . En cualquier caso al menos uno de ellos no es 8 . Al igual que el lema de bombeo para lenguajes regulares, el lema de bom beo para lenguajes independientes del contexto nos proporciona la posibilidad de probar si ciertos lenguajes no son independientes del contexto. Para ello, usa-

www.FreeLibros.com

138

TEORA DE AUTMATAS Y LENGUAJES FORMALES

remos esencialmente el mismo planteamiento que en el caso de los lenguajes re gulares. Por ejemplo, el lenguaje L = {albJ \j = i2} no es independiente del contexto. Supongamos que L es independiente del contexto. Probaremos que es imposible. Si L es independiente del contexto, entonces se puede aplicar el lema de bombeo y por tanto habr un k que satisfaga las condiciones del Lema 3.6.1. Conside remos z = akbk . Desde luego, z e L y \z\ > k. Por tanto, z se puede descompo ner en z = uvwxy y se puede asegurar que uv'wx'y e L para todo / > 0 , tal que | vx | > 1 y | vwx | < k. Obsrvese que, si v = arbs para algn r y s, entonces V = (arbs) y, por tanto, u v lw y tiene bes antes de aes con lo que no puede pertenecer a L. Defor ma similar, si x = arbs, tampoco pueden ser bombeados. Por lo que debemos ob tener que v-a r o v = br o tambin v = a' y x-b s y x-b 5 y x~as

para algn valor de r y s. En el primer caso se tiene u v 2wx2y = ak +r+sbk~ En el segundo caso tenemos u v 2wx2y = akbk~+r+s En ambos casos, cuando al menos uno de los dos r o s son mayores o igua les a 1 (como se requiere en el lema de bombeo), la cadena resultante no puede pertenecer a L. En el tercer caso, se obtendr u v iwxiy = cik+{i- x)rbkl +{i- {)s el cual no pertenece a L para toda i a excepcin de un nmero finito. Por tanto, L no puede ser independiente del contexto puesto que para l no se cumple el lema de bombeo. El lema de bombeo tiene otros usos adems de demostrar que un lenguaje no es independiente del contexto. Primero vamos a considerar el siguiente pro blema: para una GIC G arbitraria, L (G) es finito?

www.FreeLibros.com

LENGUAJES INDEPENDIENTES DEL CONTEXTO

139

Supongamos que G = (N, X, S, P) es una GIC arbitraria que est en forma normal de Chomsky. Se supone que N tiene n elementos. Entonces, de la demos tracin del Lema 3.6.1, se sabe que, si una cadena de L (G) tiene una longitud mayor que 2" ~ ', entonces L (G) es infinito. A la inversa, puesto que la coleccin de terminales de G es finita, si L (G) es infinita, entonces alguna cadena de L (G) contiene ms de 2 n ~ 1 smbolos. Supongamos ahora que z e L (G ) es la cadena ms corta de L (G) con la propiedad de que | z | > 2" ~ 1. Pediremos que
2- 1

< \z | < 2 " - + 2 "

Para verlo, supongamos que |z | > 2 "- 1 + 2". Entonces, de la demostracin del Lema 3.6.1, se deduce que 2 = uvw xy y u w y e L (G), para las subcadenas u, v, w, x, e y apropiadas. Entonces, puesto que | uwx\ < 2", se obtiene que | uwy\ >

\z\ - 2 '1> 2 " - 1. Por otro lado, | uwy\ < \ uvwxy \ = | z | . Pero se haba supuesto que z era la cadena ms corta de longitud mayor que 2 '' ~ 1 y, por tanto, se llega a una contra diccin. Por consiguiente, 2 - i < j-j <2- > + 2 '
En consecuencia, L (G) es infinito si y slo si existe un z e L (G) para el cual

2 " ~ ' < |s | < 2 " ~ ] + 2 "


Hay un nmero finito de cadenas sobre y, si es necesario, podremos comprobar si pertenecen a L ( G ). De aqu que tengamos un algoritmo para com probar si un lenguaje independiente del contexto es finito o no. Obsrvese que, en la eliminacin de estados intiles, proporcionamos de forma inadvertida un algoritmo que responde a otras cuestiones sobre un lengua je especificado por una gramtica independiente del contexto. L (G) es no vaco si y slo si su smbolo inicial genera una cadena de terminales. Tenemos un al goritmo para eliminar los no terminales que no generan cadenas de terminales. Por tanto, L ( G) - 0 si el smbolo inicial no pertenece a la coleccin de no termi nales de la gramtica transformada. Otra cuestin a tratar sobre los lenguajes independientes del contexto, hace referencia a sus miembros: Dado un lenguaje independiente del contexto L sobre el alfabeto X y una cadena w e X*, vv e L o no? L em a 3.6.2. Sea G - (N . X, 5, P) una gramtica independiente del contexto que no tie ne producciones y que est en forma normal d Chomsky. Sea x una cadena de X*. Se puede determinar, para cada A e N y para cada subcadena w de x, si A => vv.

www.FreeLibros.com

140

TEORA DE AUTMATAS Y LENGUAJES FORMALES

Demostracin. Sea n = \x | . Puesto que hay muchas subcadenas de x, las nombraremos mediante su posicin inicial y su longitud. Sea wj la subcadena que comienza en la posicin i y tiene una longitud j. Probaremos que el lema se cumple para todo wj. Lo realizaremos por induccin sobre la longitud de la subcadena, es decir, sobre j. Supongamos que / = 1. Entonces | wj\ = 1 y, por tanto, wy es un smbolo terminal. Como la gramtica est en forma normal de Chomsky, para algn no wj si y slo si existe una produccin A > wj en P. terminal A se tiene que A Es posible determinarlo, ya que P es finito. Ahora supongamos que j > 1 y que la afirmacin se cumple para toda subca dena de longitud menor que j. Obsrvese que A wj si y slo si A >BC para algn par B y C de no terminales para los cuales B => wk y C=> w +k ,j-k para algn k entre 1 y j - 1. Entonces tanto wk como w +k j - k tienen longitud menor * que j y, por la hiptesis de induccin, es posible determinar si B = = > wk y si C =5> Wj +k j- k - Adems podemos determinar si A =4 wj para cada i entre 1 y n y cada j entre 1 y n - i + 1 . En la demostracin anterior se observa que si j = n entonces se puede deter minar si S= = > w\j w\n x Es decir, se puede determinar si x
6

L ( G) para cada x e I .

Se cumple que .v s L (G) si y slo si S => x y, por el Lema 3.6.2, sabemos que es posible determinar si S => .v. Naturalmente, no es lo mismo saber que algo es posible, que hacerlo. Se conocen varios algoritmos para determinar si x e L (G ). Vamos a presentar uno llamado algoritmo de CYK y que se debe a Cocke, Younger y Kasami. El algoritmo de CYK simplemente construye con juntos Nj de no terminales que generan las subcadenas wj de x. Una vez hecho, si S e N\, entonces x e L (G) (donde |jc[ = n). Obsrvese que se elimina mucho trabajo por el hecho de que no pueden existir subcadenas de longitud mayor que n - i + 1 que empiecen en la posicin i. El algoritmo de CYK, se enuncia como sigue:
1

Para cada i = 1 , 2 ,..., n, sea Mi = {A \A >w \}

Es decir, N\ es el conjunto de todos los no terminales que producen el /-simo smbolo de x

www.FreeLibros.com

LENGUAJES INDEPENDIENTES DEL CONTEXTO

141

2.

Para j = 2, 3 ,..., n, hacer lo siguiente: Para i = 1, 2 , n - j + 1, hacer lo siguiente: a. Inicializar N j = 0. b. Para k = 1, 2, 1, aadir a Nj todos los no terminales A para los cuales A BC, con B e Nik y C e N+k,j-k-

3.

Si S e N \n, entonces x e L (G ).

Obsrvese en que el algoritmo de CYK requiere que se tenga una gramtica independiente del contexto en forma normal de Chomsky. El algoritmo para la construccin de los conjuntos de no terminales N j sigue la idea de la demostra cin del Lema 3.6.2. En la etapa 2b, que es en la que se construyen los N, se emparejan los no terminales de Nk con los de N+k,j-k, y se trata de encontrar los en el lado derecho de las producciones. Cuando se obtienen tales lados dere chos, se aade a Nj el no terminal que est en el lado izquierdo de la produccin dada.

Ejemplo 3.6.1 Consideremos la gramtica independiente del contexto

A ^ 3 A jci B CC| b C ^A B \a Para la cadena x= bbab, se tiene la siguiente tabla donde cada casilla rep resenta al conjunto Nj: j~ b b a j=
1 1

7= 2
0

7=3 A S, C

/= 4 s ,c

B B A, C B

j -2
7

A, S s,c

=3 I I

Ya que S est en N i4, x se genera a partir del smbolo inicial 5. Por tanto, x est en el lenguaje generado por esta gramtica.

www.FreeLibros.com

142

TEORA DE AUTMATAS Y LENGUAJES FORMALES

Supongamos que Gy = (N i, Xj, Si, P\) y G 2 = (iV2 , 1 2 , S2 , P 2) son dos gra mticas independientes del contexto para las cuales N\ y N 2 son disjuntos. Defi niremos la gramtica independiente del contexto G = (N , X, S, P), donde N = N i u N 2 u {S} Z = Zi u l 2 /> = />, u /> 2 u { ( S ,S ,) , (S, S2) } siendo S un nuevo smbolo. Es decir, P contiene las producciones de P\ y P 2, adems de dos nuevas producciones S > Si | S2. Se ve fcilmente que L ( G ) '= L (G i) u L (G2). Primero, si w e L (Gi), entonces se tiene que Si =4 w, con lo que S => Si => w y, por tanto, se tiene que w e L (G). De forma similar, si w g L (G2), entonces se tiene que w e L (G ) y, por tanto, L (Gi) u L (G2) c L (G). Por otro lado, si w e L (G), entonces S => w. Pero S >S 1 1S2 son las ni cas producciones que tienen en su lado izquierdo el smbolo S. Entonces o bien S => Si =$ vv o S =$ S2 = = >w Ahora bien, como Ni n N 2 = 0, slo se pueden usar en Si => w, con lo que si S => Si w, se deduce que w e similar, si S => S 2 w, se obtiene que w e L (G2). L (Gi) u L (G 2 ). Con lo que hemos demostrado el siguiente producciones de P\ L (G \). De un modo Por tanto, L (G) c teorema:
2

Teorema 3.6.3. Si L\ y L 2 son lenguajes independientes del contexto, entonces L\ u es un lenguaje independiente del contexto.

Es decir, el conjunto de los lenguajes independientes del contexto es cerra do con respecto a la unin. Este conjunto tambin es cerrado con respecto a la cerradura de estrella. Teorema 3.6.4. lo es. Si L es un lenguaje independiente del contexto, entonces tambin

Demostracin. Sea L - L (G) para G = (N, X, S, P). Constituiremos una gramtica inde pendiente del contexto G' = (N \ I , S', P') que genere L*, de forma que N' - N u S', T), donde S' y T son nuevos smbolos, y aadiremos las produc ciones S' S T Ie y T > S T I e. Obsrvese que si w, W2, ..., wn e L (G), se tiene

www.FreeLibros.com

LENGUAJES INDEPENDIENTES DEL CONTEXTO

143

S '= * S T = * S S T

=4S . . . S T
( h trm in o s)

=> S ... S e
==> W l W 2 . . . w n

Por tanto, L * c L (G').

Teorema 3.6.5. La concatenacin de lenguajes independientes del contexto es inde pendiente del contexto. Demostracin. Vase el Ejercicio 3.6.5.

En los Teoremas 3.6.3, 3.6.4 y 3.6.5 hemos enunciado tres propiedades de cierre de los lenguajes independientes del contexto. Desgraciadamente, los len guajes independientes del contexto no son cerrados con respecto a la intersec cin. El lenguaje L - {/7?'c'| >0} no es independiente del contexto, como se demostr en la aplicacin del lema de bombeo (Lema 3.6.1). Obsrvese que L\ = {ab ^ c ^ \i,j> 0 } es generado por la gramtica independiente del contexto

A - aAI C ^ bCc I y el lenguaje Lo = {ab'cJ \ i, j > 0 } es generado por S^A C A >aAb\e C ^ cCl y, por tanto, son lenguajes independientes del contexto. Pero se tiene que L - L \ n L 2 , y con lo que, la interseccin de lenguajes independientes del con texto no es necesariamente un lenguaje independiente del contexto. Adems, los lenguajes independientes del contexto no son cerrados con res pecto a la complementacin. Si denotamos Z* - L mediante L. entonces

L\C\L2- (i u Li)

www.FreeLibros.com

144

TEORA DE AUTMATAS Y LENGUAJES FORMALES

Ya que la unin de lenguajes independientes del contexto produce un len guaje independiente del contexto, obsrvese que, si al complementar lenguajes independientes del contexto siempre se obtuvieran lenguajes independientes del contexto, la interseccin anterior debera haber sido independiente del contexto.

Ejercicios de la Seccin 3.6


3.6.1. Probar que cada uno de los siguientes lenguajes no son independientes del con texto. (a)
{ab'c'\ i > 1}

(b) {ab'cj \j> i} (c)


{ab^ck\ i < j < k ]

(d) {a'| / es primo} (e) {w e [a, > , c}*| w tiene el mismo nmero de aes que de bes y ces }
{a"b"c'"\n < m < 2n)

(f)

(g) {ww| w e {a, b }*}. 3.6.2. Determinar si el lenguaje generado por S >ciciA B BaA\b A > rS 16 1 es finito o infinito. 3.6.3. Determinar si bba, bab y babba estn en L (G) correspondiente a la gramtica G del Ejemplo 3.6.1, usando el algoritmo de CYK. 3.6.4. Sea G = (N, X, S, P) una G1C. Al igual que en la demostracin del Teorema 3.6.4,construir G - (Ar . X. S , P'). Demostrar que L (G ) c V \ 3.6.5. Demostrar el Teorema 3.6.5.

AUTMATA DE PILA
Hemos visto que las gramticas independientes del contexto amplan la capaci dad para especificar lenguajes al incluir algunos lenguajes que no son reconoci dos por un autmata finito. En esta seccin consideraremos un autmata que ser capaz de reconocer todo lenguaje independiente del contexto. Intuitivamente, el problema que se plantea con los autmatas finitos es que slo tienen capacidad para una memoria finita. Lenguajes independientes del contexto tan sencillos como {anb"\n > 0} necesitan guardar gran cantidad de in-

www.FreeLibros.com

LENGUAJES INDEPENDIENTES DEL CONTEXTO

145

formacin; se debe verificar no solamente que todas las aes preceden a las bes, sino que adems se tienen que contar las aes. Puesto que el nmero de aes es arbi trario, necesitamos establecer una limitacin sobre el nmero de aes que se pueden contar. El lenguaje independiente del contexto {wcw'^we { a ,b ,c } } necesita algo mas que una capacidad sin lmites para contar los smbolos. Adems se deben guar dar los smbolos de la cadena w para compararlos con los smbolos de la cadena w'. En esta seccin definiremos un autmata que cuenta con un mecanismo que permite almacenamiento ilimitado y opera como una pila. Este autmata se lla ma autmata de pTcL)En la siguiente seccin, se estudiar la conexin que existe entre los autmatas e pila y los lenguajes independientes del contexto. <Qin autmata de pila se comporta de forma similar a como lo hacen los aut matas finits/del Captulo 2. En todo momento se encuentran en un estado y el cambio de estado depende del estado actual y de una informacin adicional. En el caso de los autmatas finitos del Captulo 2, la informacin adicional con siste en el smbolo de entrada actual. En el caso de los autmatas de pila, se in cluyen el smbolo de entrada actual y el smbolo que est en ese momento en la cima de la pila. Adems de cambiar de estado, el autmata de pila cambia, tam bin, la cima de la pila. Definicin 3.7.1. Un autmata de pila no determinista (ADPND) es una 7-tupla, M - (>, Z, T, A, s, F, z ) donde Q es un conjunto finito de estados Z es un alfabeto de entrada r es un alfabeto llamado alfabeto de la pila A es una regla de transicin se. Q es el estado inicial o de partida z e r es el smbolo inicial de la pila F c Q es el conjunto de estados finales o de aceptacin. De nuestra descripcin anterior se deduce que una regla de transicin, para obtener el siguiente estado y la accin a realizar sobre la pila, debe conocer el estado actual, el smbolo de entrada actual y la cima actual de la pila. Por consi guiente, A se define por medio de ternas de la forma (q , a , y), donde q es un es tado de Q, a es un smbolo de E u {} y y e T. El resultado de aplicar A a dicha terna es una coleccin de pares (p, w), donde "p e Q es el estado siguiente y >v e T * es la cadena que se introducir (o apilar) en la pila en lugar del smbolo Yque estaba antes all. Por tanto, se puede definir la relacin A como

www.FreeLibros.com

146

TEORA DE AUTMATAS Y LENGUAJES FORMALES

AC 2

X (E U

{}) X T X <2 X r*

Ya que estamos definiendo un autmata de pila no determinista, cabe espe rar que A no tiene por qu ser una funcin. Por tanto, si aplicamos A a la terna (< 7 i, a, b) se obtiene el conjunto {(< 72 , cd), {qi, dc), (9 3 , efe)}, del cual se elige de forma no determinista uno de los pares, de manera que el autmata de pila cam bia para reflejar dicha eleccin. Obsrvese que, puesto que los pares resultantes pertenecen a g x T y y a que e P , se puede tener que de A (q, a, b) se obtenga (p, ). Esto indica que el estado siguiente es p y que el smbolo b se elimina (o se desapila) de la cim a de la pila. Al definir A c Q x (E u {}) x T x Q x T*, se fuerza a que A deba conside rar un smbolo de la pila en todos sus movimientos. Es decir, no es posible nin gn movimiento si la pila est vaca. Por esta razn, se supone que inicialmente la pila contiene algn smbolo z, que es el smbolo inicial de la pila. Por otro lado, un movimiento tal como

A (q, , a) = {(pf aa)}


indica que el ADPND puede cambiar a un estado p y apilar una a en la pila sin consumir ningn smbolo de la entrada. Finalmente, obsrvese que si A (q, 0 , y) = 0 , no es posible ningn movimiento desde el estado q con el smbo lo de entrada <3 y con el smbolo de la pila y. En este caso, el ADPND parar su ejecucin. Consideremos el autmata de pila no determinista definido por

Q = {q\,qi, 23, < ?4 } I = { a ,b } r= { A ,B } Z= A F = {q,} s = q\


y A dado por la siguiente tabla:

A
q\
< ?2

{a, A ) {(q2, BA), (q4,A )}

ib, A )

( ,A )

(a,B)
*

0b ,B )

(, B)

{(?4, )} i {(<74, )}

f e BB)}

{(<?3,)} {(<73, )}

< 7 3

www.FreeLibros.com

LENGUAJES INDEPENDIENTES DEL CONTEXTO

147

Ya que A depende del estado actual, el smbolo de entrada actual y el sm bolo actual de la cima de la pila, la tabla tiene filas que corresponden a los es tados y columnas que corresponden a los pares de smbolos de entrada y de la pila. Obsrvese que no hay transiciones para todas las temas posibles de estado, smbolo de entrada y smbolo de la pila. Por tanto, si el ADPND pasa a un esta do para el cual no se especifica un estado siguiente y una accin de la pila para los smbolos actuales de la pila y la entrada, el ADPND no puede volver a reali zar ningn movimiento. En otras palabras, su actividad termina. En particular, cuando el autmata est en el estado < 74, que es el estado de aceptacin, no hay ninguna transicin sea cual sea el smbolo de la cima y de la entrada. Las acciones que realiza un ADPND son sencillas. La transicin A (< 72, a, B) {(qi, BB)} apila B sobre la pila y no cambia el estado. La transi cin A {q2, b, B) = {(<73 , s ) } desapila la B y cambia de estado. La transicin A [q i, a, A) = {{qi, BA), (< 74, )} indica que se realizar la eleccin de una accin de forma no determinista. Como, para esta transicin, el ADPND empieza en el estado q\ con A en la cima de la pila, esta transicin indica que o bien se apila B y se pasa al estado <72 o si no se desapila A y se pasa al estado de aceptacin < 74 . Si se realiza esto ltimo, el ADPND parar. Por otro lado, si el ADPND se mueve al estado c/2, entonces obsrvese que cada vez que a aparece en la entrada se apila una B en la pila. Es ms, puesto que el ADPND permanece en el estado qi hasta que se encuentra la primera b y entonces se mueve al estado < 73 , ninguna b puede preceder a una a. Finalmente, en el estado 73 slo se consideran las bes y. cuando se encuentra cualquier b. se desapila B de la pila. (Slo pueden desapilarse las Bes que fueron apiladas, debi do a encontrarse una a en la entrada). El lector podra verificar que las nicas cadenas que pertenecen al lenguaje {anbn | n > 0 } u {}, son las nicas cadenas de entrada que, una vez que han sido consumidas, causan que el ADPND termine en el estado final q 4 . El autmata de pila no determinista del ejemplo anterior acepta el lenguaje {a"bn|n > 0 } u {<7 } puesto que las cadenas que una vez consumidas causan que el ADPND se mueva de su configuracin inicial a su estado final son exacta mente las cadenas que pertenecen al lenguaje anterior. Procederemos a formali zar qu significa que un ADPND acepte un lenguaje pero primero introducire mos una notacin usual. Durante el procesamiento de una cadena, se pueden describir las sucesivas configuraciones por las que pasa el ADPND en funcin de su estado actual, de los contenidos de la pila y de la entrada no leda. La terna (q , w, u ), donde q es el estado actual, w es ia cadena de entrada restanta y u el contenido de la pila (con el smbolo de la cima en el extremo de la izquierda), se llama descripcin ins tantnea (DI) del autmata. Describe la configuracin del autmata de pila en

www.FreeLibros.com

148

TEORA DE AUTMATAS Y LENGUAJES FORMALES

un instante en particular. Indicaremos un movimiento de una configuracin a otra situando el smbolo i- entre dos descripciones instantneas (Y/i, aw, bx ) t- (7/ 2 , w, yx) representa un movimiento que resulta de (< 72 , y) e A (q\, a, b). Podemos denotar los movimientos con un nmero arbitrario de pasos por medio de t- y (donde * indica cero o ms pasos y + indica uno o ms pasos). Ahora definiremos formalmente lo que significa que un autmata de pila no determinista acepte un lenguaje. Definicin 3.7.2. Sea M = ( Q , Z, T, s, z, F, A) un autmata de pila no determinista. El lenguaje aceptado por M se denota por L (M) y es el conju'o L (M) = {w E* I (.y, w, z) t- (p, e, u) para p e F y e F ) Obsrvese que la aceptacin requiere que M se mueva a un estado final cuando la cadena w se agote. M puede terminar o no con la pila vaca. (Sin em bargo, obsrvese que cuando la pila se vaca el ADPND debe parar, ya que todas las transiciones requieren un smbolo de la pila).

Ejemplo 3.7.1 Supongamos que queremos construir un autmata de pila no determinista que acepte el lenguaje L ~ { w e {, >}'| vv contiene la misma cantidad de oes que de bes } Debemos contar el nmero de ocurrencias de aes y bes. Esto puede reali zarse introduciendo smbolos en la pila cuando se lee algn carcter de entrada y extrayndolo cuando se lee otro. Sea M el ADPND dado por
2

= k/!-<?2 } 2 = [a,b] r = {A, B, Z} s = q\ z =Z F {< ? 2}

y la regla de transicin A dada por la lista

www.FreeLibros.com

LENGUAJES INDEPENDIENTES DEL CONTEXTO

149

A (q u zrZ) = {(q2,Z)} A (qu a ,Z ) = { ( q u AZ)} i A (qu b ,Z ) = {(qi,BZ)};. A (qu a, A) = {{q\,AA)} A (q\, b, A) = {q\, e)} A (?i, a, B) ={(?,,)} A (qu b,B )= {(qh BB)} Para procesar la cadena abba, M realiza los siguientes movimientos:

(qi, abba, Z) l- (q\t bba, AZ) s \-(qi,ba,Z ) h- (q\, a, BZ) h (qi, e, Z) I- (q2, , Z) y el ADPND para en el estado de aceptacin q% . Luego el abba est en L (M).

Ejemplo 3.7.2

Podemos hacer uso del hecho de que los smbolos pueden ser recuperados de la pila en orden inverso a como fueron introducidos. Consideremos el len guaje L = {wcw 11w e {a, b] *}. Un ADPND que acepta L debera introducir los caracteres de entrada en la pila hasta que se encuentra una c y, entonces, compa ra los caracteres de la entrada con la cima de la pila, desapilando la pila si concuerdan. Un ADPND M para el mismo puede ser dado mediante

Q -{c i, q2, <?3} ={,>} T ={a, b,z} s = q\ z = smbolo inicial de la pila F={<?3} y A viene dado por la lista siguiente:

www.FreeLibros.com

150

TEORA DE AUTMATAS Y LENGUAJES FORMALES

A {qu a, z)={(q\,az)} A (< 7 i, a, ) = {{qu a)} A(q,a, b) = {(qh ab)} A(qi,b, z)= {(qu bz)} A (q\,b, a)= {(qu ba)} A (qu b,b)= {(qu bb)}

A ( q u c, z)= {(q2, z)} A (q u c, a)={(q 2, fl)} A (q u c,b)= {(q2, b)} A (q2, a, a)= \ {q2, e)} A{q2, b,b)={{q2, e)} A (q2, .,Z)= {(qi, z)}

Cada autmata finito no determinista se puede interpretar como un ADPND que nunca opera sobre la pila. Por ejemplo, consideremos el AFN cuyo diagrama de transicin es P2

O
Sea el ADPND M dado por < 2 = {qi, qz) T = {z},el smbolo inicial de la pila s =qi y A dado por A
q\ qi

(. z)
{(<?2,)} U<72,z)}

Est claro que M acepta el mismo lenguaje que el autmata finito.

Ejercicios de la Seccin 3.7


3.7.1. Obtener un ADPND que acepte {a"b" \ n > 0}. 3.7.2. Describir el proceso realizado por el ADPND M de] Ejemplo 3.7.1 sobre las ca denas abaababb y abaa. Son aceptadas por M? 3.7.3. Describir el proceso que realiza el ADPND M del Ejemplo 3.7.2 sobre Jas cade nas c, abcba, abcab y babbcbbab. 3.7.4. El lenguaje L = {ww 1| > v e {a, /;}+} es similar al lenguaje del Ejemplo 3.7.2, ex cepto porque no hay ningn carcter que marque el lmite entre w y w Por tan to, para que un autmata de pila no determinista acepte L tendr que existir una eleccin no determinista en un punto medio que pasa de apilar caracteres en la

www.FreeLibros.com

LENGUAJES INDEPENDIENTES DEL CONTEXTO

151

pila a compararlos y desapilarlos. Usar el ADPND del Ejemplo 3.7.2 como pun to de partida y construir un ADPND que acepte L aadiendo o eliminando las transiciones apropiadas. 3.7.5. Obtener los ADPND para los siguientes lenguajes: (a) [anb2n\n> 0 } {anb"'\n <m<3n} {a"bm\ n >0 y m * n ) {w[C\V2 1 W|, W2 s {a,b}* y w ^ wj} (b) [anbm cn+m\ n >0 y m > 0 } (c) (d) {we {a,b}\w contiene una a ms que bes] (e) (f)

3.7.6. Qu lenguaje ser aceptado por el M dado a continuacin Q= {quq 2, qi) Z = {a,b} F = E u {z}, donde z es el smbolo inicial de la pila s-q \

F = {q3}
y A viene dado por la tabla A
<7i <72

(a. z) {(</;. .). ((]?.)}

(a. b)

ib, a)

(b. b)

m , o

{(<72./;)}

{(cn,b))

Cul ser el lenguaje aceptado si se cambia F por F = [q, (2, < 73 }? 3.7.7. Obtener un ADPND que acepte ciaba. La presencia de un dispositivo de me moria en un autmata puede permitir que se economicen estados. Un autmata finito no determinista para el lenguaje precedente, necesariamente tiene al me nos cuatro estados y, por tanto, un ADPND para este lenguaje que ignore su pila deber tener, al menos, cuatro estados. Obtener un ADPND para adba que slo tenga dos estados.

AUTMATAS DE PILA Y LENGUAJES INDEPENDIENTES * DEL CONTEXTO


El principal resultado de esta seccin es que los autmatas de pila no determinis tas aceptan los lenguajes independientes del contexto. Esto requiere que, para cada lenguaje independiente del contexto, debamos poder encontrar un autmata

www.FreeLibros.com

152

TEORA DE AUTMATAS Y LENGUAJES FORMALES

de pila no determinista que lo acepte y a la inversa, para cada lenguaje aceptado por un autmata de pila no determinista, obtener una gramtica independiente del contexto. Primero demostraremos que cualquier lenguaje independiente del contexto es aceptado por un autmata de pila no determinista presentando un mtodo de construccin para dicho ADPND. Sea G = (N, X, S, P ) una gramtica independiente del contexto. Desearamos construir un autmata de pila no determinista que acepte L (G). El ADPND que construiremos debera poder verificar que todas las cadenas de L (G) son derivables. La idea principal es construir un ADPND que pueda realizar una deriva cin por la izquierda para cualquier cadena del lenguaje. Representaremos la de rivacin guardando en la pila los no terminales del extremo derecho de la deri vacin, mientras que la parte izquierda (compuesta totalmente por terminales) es idntica que la cadena de entrada que se ha ledo. Empezaremos por introducir en la pila el smbolo inicial (de G). En cada una de las etapas posteriores realizaremos una de estas acciones: 1. 2. Si el smbolo que est en la cima de la pila es un no terminal A, lo susti tuiremos por el lado derecho de la produccin para A, A vv, o Si el smbolo de la cima de la pila es un terminal y se corresponde con el siguiente smbolo de la entrada, los desapilaremos de la pila.

Estas acciones imitan una derivacin por la izquierda para la cadena de en trada. Si se agota la cadena de entrada y en la cima de la pila se encuentra el smbolo inicial de la pila, aceptaremos la cadena puesto que es posible la deriva cin de la misma. Obsrvese que el no determinismo se presenta en la etapa 1 cuando se elige el lado derecho de alguna produccin para que sea introducido en la pila. Para definir dicho autmata de pila no determinista M, sean Q = { q \,q 7 ,q 2 ) F = AuZu{z, F = {q i) s = q\ y la regla de transicin A est compuesta por cuatro tipos de transiciones: 1. A (qi, e, z) = {(<?2 , Sz)}, la cual se corresponde con la introduccin del smbolo inicial en la pila.

donde z es un smbolo inicial de la pila


2

(y es distinto de todos los smbolos de N u

www.FreeLibros.com

LENGUAJES INDEPENDIENTES DEL CONTEXTO

153

2. 3. 4.

A (< 72 , e, A) = {(< 72 , w )\A - w es na produccin de P} para cada no terminal A de N. A (q2y a, a) = {(<72 , )} para cada smbolo terminal A (< 72 , , z) = {(9 3 , z)}. a de X.

Ejemplo 3.8.1 Sea G una gramtica independiente del contexto cuyas producciones son
S aSa|bSb|c.

Obsrvese que (G) = {wcvv^l w g {a, b}*}. El autmata de pila no deter minista correspondiente tiene la siguiente regla de transicin
A (qu e, z) = {(<72 , Sz)} A (< 72 , e, S) = {(<72, aSa), {q2, bSb), (< 72 , o)} A {q% a,a) = A (< 72 , b, b) ~ A (^2, c, c) = {(<72 , e )} A (< 72 , e, z) = {(<73 , e)} La cadena abcba es aceptada mediante la siguiente secuencia: (< 7 1 , abcba, z) H (< 72 , abcba, Sz) l- (< 72 , abcba, aSaz) h (c/2 , beba, Saz) se extrae un smbolo de la pila i- (< 72, beba, bSbaz) H (/2 , cba, Sbaz) otra extraccin l- (< 72 , cba, cbaz) l- (qi, ba, baz) otra extraccin l- (< 72 , , az) otra extraccin l- (72 , , z) otra extraccin H (< 73 , , z) se acepta

Supongamos que se ha construido un ADPND a partir de una gramtica in dependiente del contexto, de la forma vista anteriormente. Obsrvese que si se tiene que (< 72 , x, Aa) t- (< 72 , *, (Ja)

entonces, en la gramtica es posible que A => (3. Por tanto, si w = a \a 2 ... a,, es aceptada por el ADPND, debemos tener que

www.FreeLibros.com

154

TEORA DE AUTMATAS Y LENGUAJES FORMALES

(42, a i 2 ... a, Sz ) H (<72, a i 2

P iz )

I- (q2, <32 ... n, P iz ) h (<72, Ct, az) i~ (<72, , z)

H (93, , z)
y por tanto se obtienen las derivaciones siguientes
5

ciPi => d ia 2P 2 = > .. .= > a\2 ... an - w

Por consiguiente, si w es aceptada por un ADPND, entonces w se deriva de la gramtica. A la inversa, supongamos que tenemos una gramtica en forma normal de Chomsky. Si S => 102 ... an, entonces tendremos una derivacin de a\2 ... an, por la izquierda y de la forma

S =>/\iOCi => a\(X\ => ci\A2(X2 =$ a\d20*2

^1^2 a > \

Por tanto, en un ADPND derivado de esta gramtica, se puede tener la se cuencia

(<72, a\a2 ... a, Sz) h (<72, i 2 . . a, ci\<X\z) 1- (cj2, C 12 ... a, a i z) h (<72, e, z)


1- (<73, e, z)

Es decir, el ADPND acepta la cadena vv - a\az ... a. Por tanto, se deduce el siguiente teorema: T eorem a 3.8.1. Si L es un lenguaje independiente del contexto, entonces existir un ADPND para el cual L - L (M ). El Teorema 3.8.1 representa la mitad de nuestro objetivo. Nuestra tarea pen diente es demostrar su inverso, es decir, que cualquier lenguaje aceptado por un ADPND es independiente del contexto. Para generalizar, necesitaremos tomar un ADPND arbitrario y probar cmo se obtendr una gramtica independiente del contexto que genere el lenguaje aceptado por l. Con el objeto de simplificar el problema, trataremos con uno equivalente, desde el principio, en el cual el ADPND se comporte correctamente.

www.FreeLibros.com

LENGUAJES INDEPENDIENTES DEL CONTEXTO

155

Sea M un ADPND arbitrario. El lenguaje aceptado por la pila vaca de M se define como

N(M )=[w\(q\,w,z)h(p,',)}
En este caso, q\ es el estado inicial de M y p es cualquier estado de Q. N (M) es, sencillamente, el conjunto de todas las cadenas que conducen a M des de el estado inicial, a cualquier estado en el cual la pila est vaca. Puesto que to das las transiciones se definen en funcin de un smbolo de la pila, tal configura cin es una configuracin de parada de M. Obsrvese que para un ADPND, no se cumple necesariamente que N (M) = L (M). Por ejemplo sea M, cuyas transiciones son A ( q \ ,a , z)= {(q \,a z)}

A(q\,b,z)= {(qi,)}
A ( q \ , a , a ) = {(<73 , a)} donde Q = {qy, qz, q^}, F = { < 7 3 }, z es el smbolo inicial de la pila y q\ es el esta do inicial. Obsrvese que N (M) = {b} mientras que L (M) - {a2}. Sea M una ADPND. Podemos transformar M en un ADPND M' tal que L (M) = N (M '). Resultar que M' tendr un nico estado final. Primero observemos que si M nunca desapila z de la pila, se realiza por me dio de una transicin de la forma (q , e) e A (q, t , z) para algunos estados q y q y algn x e F u {e}. Puede ser que q' e F o no. Se sustituyen todas las transi ciones donde q no est en F por nuevas transiciones (p\, z) para un nuevo estado p\. Se sustituyen todas las transiciones en las que q est en F por (p2, z) para un nuevo estado p 2 y se incluye pz en F. Despus de realizar esto, N (M) = 0 pero L (M) no ha variado. Entonces se aaden estados y transiciones, de forma que, una vez que M entre en un estado final, vace su pila. Para todo q e F, se aaden las transiciones A (q, , y) = {(p 3 , y)}, A (p 3 . . Y) = (P3 . )}, A (p 3 , , z) = {(P4>)} Despus de hecho esto, se obtiene que F = {^4 }. El ADPND esultante, M'. acepta cadenas en un nico estado final con la pila vaca. Por tanto, L (M') = N (MO = L (M). Adems se requiere que todas las transiciones sean de la forma y A ( q , a , A ) = {c \,c 2,...,c n} para todo y e T para todo y e V - {z }

www.FreeLibros.com

156

TEORA DE AUTMATAS Y LENGUAJES FORMALES

donde cada c = (p, e) o c = (p, B C ). Es decir, cada transicin incrementa o decrementa el contenido de la pila en un nico smbolo. Para construir un gramtica independiente del contexto para un ADPND, in vertiremos el proceso de la ltima seccin para que una derivacin simule los movimientos que un ADPND realiza para aceptar una cadena. Para ello, en cada etapa, la parte correspondiente a la cadena parcialmente generada formada por no terminales, reflejar el contenido de la pila, mientras que el prefijo que for man los terminales es la parte de la cadena que ya ha sido procesada. Una confi guracin de un ADPND contiene un estado adems del contenido de la pila. Ya que la derivacin que simular el movimiento de un ADPND depende del estado actual, queremos que nuestra gramtica independiente del contexto lleve tam bin el rastro de los estados por los que se pasa. Una solucin de este problema nos lleva a usar no terminales de la forma [qAp], donde interpretaremos [qAp] => w como la accin del ADPND correspondiente, que saca A de la pila y se mueve del estado q al estado p mientras consume la cadena de entrada w. Ya que se requieren ciertos criterios para formar las transiciones, se sim plifica el proceso de enuriteracin de las producciones correspondientes. Si (.q , e) e A (q, a , A), la produccin correspondiente es [7,-Aqj) -> a , ya que el ADPND pasa del estado q al estado q y desapila A de la pila sobre el smbolo de entrada a. Por otro lado, si ( q j, B C ) e A (q , a, A), obsrvese que la entrada a produce que A sea eliminado de la pila, pero entonces B y C seran rechazados. Ya que el ADPND acepta cuando est la pila vaca, B y C deben ser eliminados necesaria mente. Su eliminacin se obtiene por medio de los cambios de estado apropia dos. Por tanto, si (q j , B C ) e A (q,a, A), incluiremos todas las producciones de la forma [qAqm] > a [qj Bq n] [q Cqm\. donde q y qm pueden ser cualquiera de los estados de Q. Finalmente, tendremos como smbolo inicial [szqj], donde s es el estado ini cial, z es el smbolo inicial de la pila y q es el (nico) estado de aceptacin del ADPND. Ejemplo 3.8.2 Consideremos el ADPND cuyas transiciones son las siguientes

A(qi,a,z) ={(quM)) 2. A (q,a,A)= {(q,,AA)} 3. A ( q u b,A) = {(<?2,)}

1.

4.

5. 6.

A (q2, A (q2,
A (q2,

b,A) = { (< ? 2 >)} e, A) = {(qi, )1 . z) = {(#? )}

donde z es el smbolo inicial de la pila, F= { < 73 } y q\ es el estado inicial. Obsr vese que este ADPND slo pasa al estado de aceptacin cuando la pila est va

www.FreeLibros.com

LENGUAJES INDEPENDIENTES DEL CONTEXTO

157

ca. Adems, todas las transiciones son de la forma requerida. En una derivacin de la gramtica asociada, tendremos como smbolo inicial [q\zq-i] y las transi ciones 3,4, 5 y 6 se traducen fcilmente como las siguientes producciones: [q\Aq2] -> b lqiAq2) - > ble [qizq-i] - e Las transiciones 1 y 2 generan las siguientes producciones: De J: [q\zq<\-> a[q\Aq\] [q\Z.q\}\a [q{ Aq2] [q2zq\\\a[q\Aqi\ [qizq [q\zq2] -> a [q\Aq\] [q\zq2]\a[q\Aq2] \q2zq2)\a[qx Aq3\ [q^zq2] [q\zq*\ -> a [q\Aq\] [q\zq |*. [q\ Aqi\ [qizq Ia [q\Aq{] [qjzxfr] [q\Aq\] -> a [q\Aqx] [q\Aq(\\a [q\Aq2] [q2Aqx\\ci [q\Aqj\ [qyAqx \ [q\Aq2] a [q\Aq\] [q\Aq2]\a [q\Aq2] [q2Aq2]\a [q\Aq3\ [,qyAq2] [q\Aq - a [q\Aq\] [q\Aqi\\a [q\Aq2] [q2Aq^}\a [q\Aq [q^Aq

De 2:

La cadena aabb es aceptada por este autmata con l siguiente secuencia de configuraciones: (q\. aabb, z) l- (qi, abb, Az)
1- (< 72, e. z) h (q,, bb,AAz) l- (q2, b, Az) 1- (#3, e, e)

La derivacin correspondiente en la gramtica precedente es [q\zqi] = > a [q\Aq2] [q2zqi\ = aa[q\Aq2\ [q2Aq2] [q2zqi\ => aab [qiAqiqizqz] => aabb [q2zqi\ => aabb (Obsrvese que el primer q en cada cadena perteneciente a la derivacin, corresponde al estado actual en la secuencia del ADPND. Adems, las secuen cias de smbolos centrales se corresponde con el contenido dla pila cuando es aceptada aabb). A menudo, esta construccin crea gramticas complicadas. Por ejemplo, en el caso precedente, los smbolos no terminales [qizq\\, [q^zq 1 ], [qizqi], [qiAq\\, [qyAq, [q^Ac/i] y \q 3zq 3}. nunca aparecen en el lado izquierdo de una produc-

www.FreeLibros.com

158

TEORIA DE AUTMATAS Y LENGUAJES FORMALES

cin. Por tanto, dichos smbolos nunca podrn aparecer en una derivacin de una cadena de terminales. A pesar de haber introducido una complejidad no desea ble, esta tcnica de construccin se puede usar para cualquier ADPND cuyas re glas de transicin satisfacen las condiciones. Se puede aplicar las tcnicas de simplificacin vistas en la Seccin 3.5 a la gramtica resultante, con el fin de eli minar las partes intiles. Obsrvese que, de la forma de construir una gramtica a partir de un ADPND que satisfaga las condiciones dadas, se obtiene que (q , uv,Ax) h- (cjj, v, x) por medio de las operaciones que realiza un autmata de pila, entonces en la gra mtica resultante se tendr [q Acjj | u

Es decir, si el ADPND elimina A de la pila cuando se lee la cadena u y pasa del estado q al estado q j , entonces el no terminal [q Aq ] puede derivar u. A la inversa, obsrvese que, si en alguna derivacin se tiene fq Aqk ] a [q Bq r] [qr Cqk ]

entonces A puede ser sustituido por BC en la pila cuando se lea a y se pasar del estado q al estado qj. Por otro lado, si [q Aq ] => a es una derivacin con un nico paso, entonces A (q , a, A) contiene (q , e), con lo que A podr ser desapilado al consumirse la cadena de entrada a. Por tanto, si [q Aq ] => u. la secuencia de cadenas de termi nales y no terminales que forman la derivacin se corresponde con la secuencia de movimientos que realiza un ADPND para el cual (q , uv, Ax ) h (cj, v, x). Por tanto, cualquier cadena de terminales generada por la gramtica es aceptada por el ADPND, y viceversa. Enunciaremos el siguiente teorema:

Teorem a 3.8.2. Si L es aceptado por un ADPND. entonces L es un lenguaje inde pendiente del contexto. Los autmatas de pila no deterministas nos proporcionan otra alternativa para caracterizar los lenguajes independientes del contexto. Es tan fcil probar que un lenguaje es un lenguaje independiente del contexto, demostrando que es aceptado por un ADPND, como probar que es independiente del context si es generado por una gramtica independiente del contexto. A veces incluso es ms fcil describir un ADPND que una gramtica. Adems, el modelo del ADPND

www.FreeLibros.com

LENGUAJES INDEPENDIENTES DEL CONTEXTO

159

nos facilita la tarea de probar ciertas propiedades de los lenguajes inde pendientes del contexto. T eorem a 3.8.3. Si L\ es un lenguaje independiente del contexto y L-i es un lenguaje re gular, entonces L\ n L2 es un lenguaje independiente del contexto. Demostracin. Sea M\ = (>i, Zi, T, si, z, F\, Ai) un ADPND que acepta el lenguaje L\. Sea M 2 = (Q2, Z 2 , S2, F2, 8 ) un autmata finito determinista que acepta el len guaje regular L 2. Construiremos un ADPND que acepte L\ n L 2 mediante la combinacin de M\ y M 2. Este ADPND simular paralelamente las acciones de Mi y M 2 y aceptar una cadena cuando y slo cuando M\ y M 2 acepten una. De finiremos el ADPND M = ( Q , Z, T, s, z, F, A) como sigue:
Q = Qp\ x Q2
S = (S\,S2)

F = F\ x F 2 __ . Z=ZiuZ
2

y la regla de transicin A se define de forma que se tiene que ((<?, P l), x) G A {{q, q}), a, b) si y slo si
8

(pj , a) = p y (qc , x ) e Ai (q , a, b). Es decir, , , ) y


8

A ((q , p j ), a , b ) = { ((<7*, p ), x) I(qk , x) e Ai

{pj , a) = {p }}

Obsrvese que los estados de M se etiquetan mediante pares que representan los estados en las que estarn M\ y Mi, respectivamente, tras procesar la entrada. Una cadena se acepta si provoca que M termine en un estado (q,p), donde q g F\ y p g Fi. Es decir, se acepta si M\ acepta la cadena acabando en el estado q y M 2 acepta la cadena acabando en el estado p. La induccin sobre el nmero de pasos de una computacin prueba que (5 , w, z) f- ((q, p), , u ) con c/g F y p g F 2, si y slo si (si, w, z) h (?, e, u) y 8 (.V 2 , w) = p . En la Seccin 3.7, descubrimos que la interseccin de lenguajes inde pendientes del contexto no tena que ser necesariamente un lenguaje inde pendiente del contexto. Es decir, la familia de los lenguajes independientes del contexto no es cerrada bajo la interseccin. El Teorema 3.8.3 prueba que esta fa milia es cerrada bajo la interseccin regular. Por ejemplo, el lenguaje L = {a"bl \ n > 0 y n 100} es un lenguaje inde pendiente del contexto. Aunque dicha propiedad puede ser probada mediante la construccin de una gramtica independiente del contexto que lo genere o de un

www.FreeLibros.com

160

t e o r a d e a u t m a ta s y le n g u a je s f o r m a le s

ADPND que lo acepte, es ms elegante demostrarlo aplicando el teorema. Obsrvese que L\ = {a'b"\n > 0} es un lenguaje independiente del contexto. Adems, sabemos que L 2 = a b * y L 3 = {a100/?100} son regulares. Por tanto, L 4 = Lj - L-i tambin es regular, ya que los lenguajes regulares son cerrados con respecto a la diferencia de lenguajes. Entonces tendremos que L = L\ n L\ y, por tanto, segn el teorema, L es independiente del contexto. El Teorema 3.8.3 tambin se puede usar para demostrar que algunos len guajes no son independientes del contexto. Por ejemplo, sabemos que {anb"cn | n > 0} no es independiente del contexto. Sea L - {w e {a, b, c}*\w contiene el mismo nmero de aes, bes y ces) Entonces L no es independiente del contexto, porque si lo fuera, entonces {anbncn | n > 0} = L n {a Ve*) tambin lo sera.

Ejercicios de la Seccin 3.8


3.8.1. Obtener una secuencia de descripciones instantneas para el ADPND del Ejem plo 3.8.1, que acepte la cadena babebab. En qu punto fallara el intento de aceptar la cadena abcabl 3.8.2. Obtener un ADPND que acepte el lenguaje generado por la siguiente gramtica independiente del contexto: S ) ciAA A > bS\aS\a 3.8.3. Obtener un ADPND que acepte el lenguaje generado por la gramtica inde pendiente del contexto S > aSb | aSbb Ie 3.8.4. Construir una ADPND que acepte el lenguaje generado por la gramtica inde pendiente del contexto S >aABB | aAA A ^ aBB 1 B bBB | A 3.8.5. Demostrar cmo se convierte un ADPND arbitrario en uno para el cual todas las transiciones son de la forma A (q , a, A) = {ci, C 2 , ...c}, donde cada c = (p, e) o c = (p, BC).

www.FreeLibros.com

LENGUAJES INDEPENDIENTES DEL CONTEXTO

161

3.8.6. Obtener una derivacin de a3b3 mediante la gramtica del Ejemplo 3.8.2. 3.8.7. Aplicar la construccin precedente al ADPND dado por M = (Q, L, F, s, z, F, A), donde Q = { < 71 , q2, qi, q4}, F = {q 3), s = q[, 1 = {a , b }, T = {A ,B ,z } y A como se muestra a continuacin A{qua,z)={(q\,Az)} A (qiy b,A) = {(q2, )} A (< ? 4, e, z) = {(< 7 i, Az)}A (< 72, e, z) = {(q-i, e)} A (qi,a,A )= {(q4, e)} 3.8.8. Obtener una gramtica independiente del contexto que genere el mismo lengua je que el ADPND M = (<2, E, T, s, z, F, A), donde Q= {q\,q2}, 2 = {a, b], T = {a,z}, s = q\, F= {q2} y A dado mediante A (q u a, z)= {(tfi.az)} A ( q u b, a)= {(q,aa)} A (< 71 , a, d)={(q 2,e)} 3.8.9. Obtener una grmatica independiente del contexto para el lenguaje aceptado por el ADPND M = (Q, E, T, s, z, F, A), donde Q = {q, q2, 9 3 }, Z= {a,b}, T = {A, z}, Z es el smbolo inicial de la pila, F = { < 73 }, y A dado por A (q, a, z) = {{qy,Az)} A (qi,a,A )= {(<?], A)} A b, A) = {(< 72e)} A(q2, e, z)= {(43 , e)} Obsrvese que este ADPND no satisface las dos condiciones requeridas para la construccin de una GIC. 3.8.10. Sea M = {Q, I , T, s, z, F, A), donde Q= [q\, q2, q^q*}, E = {a, b }, T = {X, z}, s = q\,z es el smbolo inicial de la pila, F = 0 (es decir, este ADPND slo acepta cadenas cuando la pila se vaca), y A dado por A (7i, b, z) ={(qi,Xz)} A (qu b, X) = {(<71 , XX)} A (< 7 i, a , X ) = {(q2,X)} A(qi,C,z) = :((<?i,e)'} A (q2, b, X) = {(q2, e)J A(q 2,a,z) = {(?i,z)}

Despus de realizar los cambios necesarios para que este ADPND satisfaga las condiciones requeridas para construir una gramtica independiente del contexto, obtener una gramtica independiente del contexto para el lenguaje aceptado por este autmata.

www.FreeLibros.com

162

TEORA DE AUTMATAS Y LENGUAJES FORMALES

3.8.11. Obtener una gramtica independiente del contexto que genere el lenguaje acep tado por el ADPND M =(Q, , T, s, z, F, A) donde . .

Q={ q u q i ) Z={ a, b} T = {A, z}, y z es el smbolo inicial de la pila s = qi F = \ qi } ' y A viene dado por A (<?i, a, z) = {{q\, Az)} A (< 7 1 , b,A) = {(^i, AA)) A {q\, a, A) = {(<72 , )) 3.8.12. Demostrar que {anbn | n > 0 y n no es mltiplo de 5} es un lenguaje independiente del contexto. 3.8.13. Sea L = [ab^ck\i j o j ^ k ) (a) Probar que L es. un lenguaje independiente del contexto.

(b) Probar que si es cualquier alfabeto para el cual L c *, entonces * - L no es independiente del contexto. (Indicacin: Considrese el lenguaje *T* abe). 3.8.14. Considrese el lenguaje formado por todas las cadenas sobre {a, b } que contie nen el mismo nmero de aes que de bes, pero que no contienen la subeadena aab. Es un lenguaje independiente del contexto? 3.8.15. Probar que el conjunto de los lenguajes independientes del contexto no es cerra do con respecto a la complementacin. Es decir, en general no es cierto que L y L* - L sean lenguajes independientes del contexto.

3.9

FORMA NORMAL DE GREIBACH


La forma normal de Chomsky es una de las formas normales que se usan para las gramticas independientes del contexto. Otra forma normal que tiene una gran importancia terica y prctica es la forma normal de Greibach. En la forma norma de Greibach, se restringe la posicin en la que pueden aparecer los termi nales y los no terminales. Empezaremos presentando"dos resultados usuales.

T eorem a 3.9.1. Si A a B j es una produccin de una gramtica independiente del contexto y si B - Pi | P2 I ! son todas las producciones que tienen a B en

www.FreeLibros.com

LENGUAJES INDEPENDIENTES DEL CONTEXTO

163

su lado izquierdo, entonces la produccin A > a B y se puede reemplazar por A - Piyl a p 2y | ... I a(3m y sin que vare el lenguaje generado por la gramtica. Demostracin. Sea G la gramtica original y sea G' la gramtica que resulta de la transformacin. Tenemos que probar que L (G) = L (G'). Primero demostrare mos que L (G') c L (G). Supongamos que w e L (G'). Si la derivacin de w no contiene ninguna de las producciones A a(3,y, entonces w e L( G) y queda probado. Por otro lado, si la derivacin de w usa una produccin A > afi, y, en tonces en G se puede usar A => aB y => cxp,- y para derivar w. Por tanto, vv e L (G). Entonces se tiene L (G') c L (G). Para demostrar que L (G) c L (G'), consideremos que w e L (G). Si A >a B y no se usa en la derivacin de w, entonces, puesto que todas las otras producciones de G estn en G', we. L (G') y quedar probado. Si n -? aB y se usa en la derivacin de w, entonces en algn momento, B debe ser reemplazado por uno de los P. Esto se puede hacer de forma inmediata unificando ambos pa sos en uno A => a(3, y. Pr tanto, w es derivable en G', con lo qu w e L (G') y se obtiene que L (G) c L (G') Por ejemplo, consideremos la gramtica independiente del contexto cuyas producciones son 5 a | aa L Bab | abBc P > >haabS \ bba
4

Si realizamos la sustitucin presentada en el Teorema 3.9.1, obtendremos la gramtica S >a | acacdiS \ aabba \ baabSab | bbaab I abbacfbS c | abbbac 0 B > baab\ bba Obsrvese que las producciones de B, B > baabS | bba no desaparecen, pero no podrn formar parte de ninguna derivacin. Sin embargo, con el fin de sim plificar la gramtica resultante, una de las tcnicas de simplificacin vistas en la Seccin 3.5 podra eliminar dichas producciones intiles. Una produccin de la forma A - oo4, donde a e (N u Z)!, se conoce como recursiva por la derecha. De forma semejante, una produccin recursiva por la izquierda ser de la forma A > Aa. Las producciones recursivas por la derecha ^producen rboles que se expanden por la derecha, mientras que los rboles co rrespondientes a las producciones recursivas por*la izquierda se expanden por la izquierda. En muchas aplicaciones correspondientes a las gramticas, no es de seable que exista recursividad por la izquierda. El siguiente teorema proporciona

www.FreeLibros.com

164

TEORA DE AUTMATAS Y LENGUAJES FORMALES

una forma de eliminar la recursividad por la izquierda en las gramticas inde pendientes del contexto. T eorem a 3.9.2. Sea G una gramtica independiente del contexto y A un no terminal de G. Si A - A a 1 1Aa .21... | Aa son todas las producciones para A, que son recursi vas por la izquierda, y si A > (3i | P2 I I Pm son las restantes producciones para A, entonces se puede construir una gramtica equivalente introduciendo un nue vo no terminal Z y reemplazando todas las producciones precedentes por A - pi | P2 1... | p, | p,Z | p 2 Z | ... | P,Z

&

Z - ai | a 2 ... | a | aiZ| a 2Z |... | aZ


Demostracin. Obsrvese que en ambos casos las cadenas denvables de A mediante el uso de una o ms producciones, forman un lenguaje regulas*,{ pi , p 2 , { a i , a 2 ,...,a}* .

Considrese la gramtica independiente del contexto dada mediante < r -'* . 5 >5a|S>|c/4 A ^ Aa | a I Obsrvese que hay producciones recursivas por la izquierda con S y A en su lado izquierdo. Aplicando el teorema al no terminal S e introduciendo un noter minal nuevo Zi, se obtiene la siguiente gramtica transformada que es inde pendiente del contexto 5 > cA | cAZ\ Z\ > a | b\aZ\ \ bZ\ ^ A a | ci IE Entonces, aplicando el teorema al no terminal A e introduciendo un no ter minal nuevo Z2 , se obtienen las producciones
6

^ cA j cAZ\

Z\ > a | b | aZ\ | >Zi A > ci | C 1Z 2 1 | Z2 Z2 - a | C 1Z 2 %

Obsrvese que al eliminar las producciones recursivas por la izquierda se introducen nuevos terminales y producciones recursivas por la derecha.

www.FreeLibros.com

LENGUAJES INDEPENDIENTES DEL CONTEXTO

165

Definicin 3.9.3. Una gramtica independiente del contexto est en forma normal de Greibach (FNG) si todas las producciones son de la forma A >aa, donde a es un smbolo terminal y a e ( l u N)*. Obsrvese que esta formal normal requiere que toda produccin tenga un smbolo del alfabeto como primer smbolo del lado derecho de las producciones. Por tanto una gramtica en FNG no puede tener producciones recursivas por la izquierda. Es ms, puesto que cada produccin requiere que haya al menos un smbolo del alfabeto, una gramtica independiente del contexto en FNG slo puede generar lenguajes no vacos que no contengan e. Es posible construir una gramtica independiente del contexto en forma normal de Greibach,para cualquier gramtica independiente del contexto que no contenga e. El algoritmo para realizar esto consiste en diferentes etapas. Supongamos que L es un lenguaje independiente del contexto no vaco que no contiene e. Primero, sea G = (, N, S, P ) una gramtica independiente del contexto en forma normal de Chomsky que genera L. Supongamos que N = {A\, A 2, ..., <4,ih donde Ai =S. Entonces modificamos las producciones de forma que si A r >A^a es una produccin, entonces r < s . Supongamos que he mos modificado las producciones de forma que para 1 < i < k, si A, >Aj a, en tonces i <j. Demostraremos como modificar las producciones para Ak+\. Si A k + 1 > Aj a es una produccin con k + 1 >j, se genera un nuevo conjun to de producciones para reemplazar las Ay que aparecen en el lado derecho de las producciones, por el lado derecho de todas las producciones de la forma Aj >(3, como se vio en el Teorema 3.9.1. Cuando se realicen dichas sustituciones, se ob tendrn producciones de la forma Ak + 1 >Ar a. Puede ocurrir que k + \ < r o que r < k + 1. Si k + 1 < r, se tendr una produccin de la forma deseada. Si r < k + 1, deberemos repetir el proceso. Puesto que solamente hay k ndices me nores que k + 1 , despus de repetir el proceso k - 1 veces, se habrn eliminado todas las producciones de la forma Ak + 1 >A r a para las cuales r < k + 1. Por tanto, las producciones que quedarn, sern todas de la forma Ak + 1 >A r a , con k + 1 < r. Obsrvese que las producciones para las cuales k + i - r son produc ciones recursivas por la izquierda que pueden ser eliminadas mediante el Teore ma 3.9.2 introduciendo un no terminal nuevo Z* + j. Repetiremos el proceso para cada uno de los no terminales originales desde Ai hasta A. Por tanto slo se tendrn producciones de las tres formas siguientes:
1 2

. Ak-> Aj a, con k < j . Ak - aa, para a e Zk - a , para a e ( N u {Z, Z 2, ..., Z}>*

3.

www.FreeLibros.com

166

TEORIA DE AUTMATAS Y LENGUAJES FORMALES

Obsrvese que, puesto que An es el no terminal con mayor ndice, todas las producciones para A n deben ser del tipo 2. Es decir, en el extremo izquierdo del lado derecho de una produccin para A, debe haber un smbolo terminal. Tam bin, toda produccin para A_ i debe tener en el extremo izquierdo del lado de recho, un terminal o A n. Si tiene A, puede ser reemplazado por el lado derecho de una de sus producciones como se hace en el Teorema 3.9.1. Dichas produc ciones comenzarn con un terminal. Luego procederemos a transformar las pro ducciones correspondientes a A n- 2, A _ 3 y as sucesivamente, hasta que el lado derecho de todas las producciones correspondientes a los no terminales origina les comiencen con un terminal. Finalmente, consideraremos las producciones para Z\, Z% ..., Z. Puesto que inicialmente tenamos una gramtica independiente del contexto en forma nor mal de Chomsky y slo hemos aplicado los Teoremas 3.9.1 y 3.9.2, ninguna de las producciones Z, > a tendr otro Z en el extremo izquierdo de su lado dere cho. Por tanto, todas la producciones correspondientes a los Z/ tendrn termina les o A al principio de su lado derecho. Para los que tengan al principio del lado derecho alguna A, aplicaremos una vez ms, el Teorema 3.9.1 y todas las pro ducciones resultantes estarn en la forma deseada. La transformacin vista nos da pie para enunciar el siguiente teorema: T eorem a 3.9.4. Todo lenguaje independiente del contexto no vaco, que no contiene la palabra vaca e, se puede generar mediante una gramtica independiente del con texto G = (V, , S, P ) en la cual todas las producciones son de la forma A > ciw para A e N , a e ' L y w e N * . Consideremos la gramtica independiente del contexto en forma normal de Chomsky (cuyos no terminales han sido etiquetados convenientemente) Ai > A 2 A 21 ci A2 >A 1 A 2 1 b Obsrvese que las producciones A 1 >A 2A2 Ia ya se encuentran en la forma necesaria para realizar la primera etapa. (Las producciones deben satisfacer A - Aj a para i < j slo cuando hay un no terminal en el lado derecho. Por tanto Ai > a es aceptable). Consideraremos las producciones correspondientes a A 2. La produccin A 2 > b se acepta, pero A 2 >A 1A 2 no. Debemos substituir A 1 , ob teniendo las producciones A 2 >A 2A 2A 2 \ C 1A 2. Eliminamos la recursividad por la izquierda y obtenemos el conjunto de producciones* % Aj > A2 A2 I A2 > a M | a A i Z \ b \ bZ

www.FreeLibros.com

LENGUAJES INDEPENDIENTES DEL CONTEXTO

167

Finalmente, substituimos A i de forma apropiada para que el lado derecho de todas las producciones comience con un terminal. Esto produce Ai - a A 2 A 2 \ a A 2 Z A 2 \ b A 2 \ b Z A 2 \a
A 2 >a A 2 \ a A 2 Z\ b\ b Z

Z >a A 2A 2 \ a A 2 Z A 2 \ b A 2 \ b Z A 2 \ a A 2 A 2 Z
\a A 2 Z A 2 Z \ b A 2Z \ b Z A 2 Z

Obsrvese que todas las producciones de la forma dada en el Teorema 3.9.4 son necesariamente de la forma apropiada para la FNG. Por tanto, se obtiene el siguiente corolario: C orolario 3.9.5. Todo lenguaje L independiente del contexto y no vaco, que r.o con tenga e, puede ser generado mediante una gramtica independiente del contexto en forma normal de Greibach. Una definicin alternativa para la FNG requiere que todas las producciones sean de la forma A >aw para A e N, a e E y w e N*. Las dos definiciones de FNG son equivalentes (Ejercicio 3.9.5).

Ejercicios de la Seccin 3.9


3.9.1. Eliminar la recursividad por la izquierda de S >Sa | aAc | c -4 >Ab\ba 3.9.2. Eliminar la recursividad por la izquierda de S >aSb | e.

3.9.3. En las observaciones anteriores al Teorema 3.9.3, la afirmacin ninguna de las producciones Z >a, tienen otro Zj en el extremo izquierdo del lado derecho de la produccin, depende de que el lado derecho de todas las producciones correspondientes a A, empiece con un terminal o con Aj A, para algn j y algn k. Probarlo por induccin sobre el nmero de aplicaciones del Teorema 3.9.1 y 3.9.2. 3.9.4. Pasar a forma normal de Greibach (a) 5 aSb | ab (b) S >AA | a A-> SS\b (c) S >Sa | Sb | cA A ) A a | o I

www.FreeLibros.com

168

TEORIA DE AUTMATAS Y LENGUAJES FORMALES

3.9.5. Probar que la siguiente definicin de forma normal es equivalente a la Defini cin 3.9.3: Una gramtica independiente del contexto G = (N, . S, P) est en forma normal de Greibach si toda produccin de P es de la forma /i > aw para A e N, a e Z y w e N*.

PROBLEMAS
3.1. Consideremos el lenguaje L = {a''c'|> l} del Ejercicio 3.6.1 (a). Este lenguaje no es un lenguaje independiente del contexto puesto que, para un k dado, pode mos elegir z = akbkck y demostrar que ninguna eleccin posible de las subcadenas u, v, w, x e y satisface el lema de bombeo (3.6.1). Este lenguaje presenta uno de los mayores inconvenientes que tiene el lema de bombeo: no hay forma de decir qu parte de la cadena puede considerarse como la parte uwx. Esta incertidumbre nos lleva a considerar una variedad de subcasos que pueden resul tar tediosos, a pesar de usar una tcnica efectiva. En este primer ejercicio trata remos de presentar una versin ms fuerte del lema de bombeo que nos permita controlar el enfoque que se d a las partes de la cadena que son bombeadas. Sea G = (N, L, 5, P) una gramtica independiente del contexto en forma normal de Chomsky con /Vj = k, y sea n = 2k + 1. Supongamos que z (G) con |z > n, y que marcamos al menos n posiciones de z (es decir, queremos distinguir las partes marcadas de las que no lo estn). Queremos encontrar un camino en el rbol de derivacin para w, anlogo al visto en el lema de bombeo. Construiremos el camino partiendo de la raz y descendiendo por la izquierda o por la derecha. Descenderemos por el subrbol izquierdo o por el subrbol dere cho para determinar que subrbol genera el mayor nmero de posiciones de z que estn marcadas. El camino resultante se extiende desde la raz hasta una de las posiciones marcadas. Obsrvese que cualquiera de los nodos del rbol de anlisis (y que estn presentes en el camino que hemos encontrado), tienen cero, uno o dos hijos, y cada uno de los hijos es, a su vez, raz de un subrbol que puede generar o no posiciones marcadas. Si un nodo del rbol tiene dos hijos que son raz, de subrboles que generan posiciones marcadas, Se llamar punto de rama. 1. Probar que, para cada punto de rama presente en el camino que hemos construido, tenemos al menos la mitad de descendientes marcados que para el punto de rama anterior. Probar que el camino construido contiene al menos k + 1 puntos de rama. El resultado visto es un resultado ms dbil que el que se debe a W. Ogden. Nos referiremos a l como lema de Qgden. Lema de Ogden. Sea L un lenguaje independiente del contexto. Entonces existe una constante n para la cual, si z e L y tenemos al menos ;? posicio nes de z marcadas, podemos escribir que z = uvwxy, de forma que

2.

www.FreeLibros.com

LENGUAJES INDEPENDIENTES DEL CONTEXTO

169

1. 2.

vx tiene al menos una posicin marcada. vwx tiene como mximo n posiciones marcadas. Para todo i > 0, uv wx'y e L.

3. 3.

Demostrar el lema de Ogden. Indicacin: Por el Ejercicio 2, hay al menos k+ 1 puntos de rama en un camino elegido convenientemente. Apliqese la demostracin del lema de bombeo para el ltimo de los k + 1 .

2. En los problemas siguientes se puede usar el lema de Ogden. 1. Aplicar el lema de Ogden para demostrar que el lenguaje (a W 'l i > 1 } no es independiente del contexto. 2. Usar el lema de Ogden para demostrar que {abjckd l\i = 0 o j = k = l} no es un lenguaje independiente del contexto. 3. Usar el lema de Ogden para demostrar que {a!b]ck\ i <j < k] no es independiente del contexto. 4. Es un lenguaje independiente del contexto el lenguaje {a'bjck\i&j, j * k e i ^ k}l Por qu o por qu no? Qu ocurre con {abjck\ i * j y j * k ) l 3. Sea L = {ww\w e [a, >}*}. En el Ejercicio 3.6.1 (g) se propuso que se demos trar que L no era independiente del contexto. Demostrar que L, el complemen to de L en {a, b}*, es independiente del contexto. Indicacin: Obsrvese que cualquier cadena de longitud impar sobre {a, b}*, automticamente pertenece a L. Por otro lado, cualquier cadena de longitud par de L se puede escribir como ii\X\V\UiX2V7, donde xi y x%estn en {a, b}, x \ * X 2 y |mi| = | 2 1 y k i l = IV 21 Considrese la unin de dos lenguajes independientes del contexto, uno de los cuales contenga slo las cadenas de longitud impar sobre {a, b} y el otro con tenga las cadenas de la forma U\X\V\U2X2Vz.

www.FreeLibros.com

170

TEORIA DE AUTMATAS Y LENGUAJES FORMALES

3.4. Un tipo de autmata similar al ADPND, es- el autmata de pila con dos pilas y es una 7-tupIa M = (Q, Z, T, A, s, F, z). En ste, Q, Z, T, s y F son los mismos que en los ADPND, pero la relacin de transicin A es de la forma A c Q x f Z u {e})xrxrx<2 x r * x r* Obsrvese que, cuando describimos una transicin de A, se tiene en cuenta un smbolo de cada una de las pilas. Por ejemplo, una transicin de la forma A (q, a, Ti, x2) = {(p, a, e)} cambiara del estado q al estado p, sustituira el sm bolo Ti de la primera pila por el smbolo (o cadena) a, y desapilara el smbolo %2 de la segunda pila. 1. 2. 3. Probar que cualquier lenguaje independiente del contexto es aceptado por un autmata de pila con dos pilas. Probar que el lenguaje L= {a'b'c1| i > 0} es aceptado por un ADP con dos pilas. Describir una tcnica por medio de la cual el lenguaje L sea reconocido por un ADP con dos pilas L= {a'bc'd'\i>0}

3.5. Se dice que el deterninismo est presente en un autmata cuando no se puede elegir cmo se comportar en cada estado. Una condicin que debe cumplirse para que un autmata de pila sea determinista es que no puede haber ms de un elemento en los conjuntos A (q, o, x). Sin embargo, esto no es suficiente para garantizar el determinismo. Considrese el ADP que contiene las transiciones A (q, a, A) ={ (p, w) } A (q, e, A)={(p\ w' )} Obsrvese que este ADP tiene que elegir cmo comportarse una vez que se encuentra en el estado q. Por tanto, incluso si todos los conjuntos A (q, o, t) contienen un nico elemento, puede seguir habiendo no determinismo. Defini mos un autmata de pila determinista (ADPD) como un ADP en el cual no hay ninguna configuracin para la cual el ADP tenga que elegir entre ms de un mo vimiento. En otras palabras, un ADP es determinista si (a) cada A (q, a, A) tiene un elemento como mximo, y (b) si A (q, a, A) s* 0, entonces A (q, e, A) = 0. Un lenguaje independiente del contexto es un lenguaje independiente del contexto determinista (LICD) si es aceptado por un ADPD. 1. 2. 3. Probar que todo lenguaje regular es un LICD. Probar que no todo LICD es regular. Obviamente, cualquier LICD es un LIC ya que todo ADPD es un ADPND. Usar esto para demostrar que no todo LIC es un LICD. Indicacih: En el Problema 3.3, se obtuvo un lenguaje independiente del contexto cuyo com. plemento no era independiente del contexto.

www.FreeLibros.com

4
Mquinas de Turing

4.1

DEFINICIONES BSICAS
Recordemos que la coleccin de los lenguajes regulares constituye un subcon junto propio de los lenguajes independientes del contexto. Por tanto, se puede decir que los autmatas finitos son menos potentes que los autmatas de pila, con respecto a la capacidad que tienen para aceptar lenguajes, Por otro lado, hay muchos lenguajes que no son independientes del contexto, algunos de los cuales son bastante sencillos, tales como [anbnd '\n > 0 }
y

{i w | vv e IT} En este captulo vamos a estudiar un tercer tipo de dispositivo para recono cimiento de lenguajes, la mquina de Turing. Las mquinas de Turing son ms generales que cualquier autmata finito y cualquier autmata de pila, debido a que ellas pueden reconocer tanto los lenguajes regulares como los lenguajes in dependientes del contexto y, adems, muchos otros tipos de lenguajes. Aunque sean ms potentes que los dos tipos de autmatas anteriores, todos ellos son bas tante similares con respecto a los componentes y las acciones que realizan. Cuando pasamos de los autmatas finitos a los autmatas de pila, introduji mos un dispositivo para almacenamiento de memoria, la pila, que proporcion la

www.FreeLibros.com

172

TEORA DE AUTMATAS Y LENGUAJES FORMALES

posibilidad de recordar la cantidad de informacin necesaria para el reconoci miento de los lenguajes independientes: del contexto. Una pila es bastante res trictiva debido a que el acceso a la informacin que tenemos est limitado a la cima de la pila. Para poder acceder a los datos que se encuentran debajo de la cima, necesitamos sacar el dato de la cima dato que puede que no deseemos que se pierda. Por ejemplo, si pretendemos reconocer {a'lbncn\n > 0} por medio de un au tmata de pila no determinista, deberamos contar el numero de aes que apare cen en la cadena de entrada introduciendo algunos smbolos en la pila. Despus, para contar las bes, deberamos desapilar los smbolos de la pila. Y, cuando lle gue el momento de contar las ces, la pila estar vaca nuestro recuento se ha br perdido. El problema subyacente no es la carencia de memoria, sino la forma en la que est organizada. Supongamos que permitimos que la pila sea recorrida sin necesidad de desapilar nada. Es decir, igual que antes, se puede apilar y desapilar pero, ade ms, permitimos que los datos que se encuentran bajo la cima puedan ser con sultados. Podramos reconocer {anbn t \n > 0} apilando un smbolo en la pila por cada a, como hacamos antes. Para reconocer las bes podramos situar un apuntador que apunte a la cima de la pila, de forma que por cada b el apuntador descienda por la pila. De esta forma, cuando leamos la parte de las ces que con tiene la cadena de entrada, podremos usar el recuento realizado anteriormente, ya que no ha sido destruido. La capacidad de recorrer la pila aade una capaci dad substancial al proceso de reconocimiento. Aunque se debera experimentar con distinto tipos de organizacin de la memoria y sus operaciones, la organizacin introducida por las mquinas de Turing es bastante sencilla. Consiste en una coleccin de celdas de almacenamiento que se extiende infinitamente en ambas direcciones esencialmente es una cin ta infinita. Cada celda es capaz de almacenar un nico smbolo. La coleccin no tiene una celda primera ni ltima y, por tanto, tiene una capacidad de almacena miento ilimitada. A los contenidos de las celdas se puede acceder en cualquier orden. Adems, tendr, asociada con la cinta, una cabeza de lectura/escritura que puede moverse sobre la cinta y por cada movimiento leer o escribir un sm bolo. Veamos la siguiente definicin: Definicin 4.1.1. Una mquina de Turing es una 7-tupla M = (Q, X, T, s, b, F , 8 ), donde Q es un conjunto finito de estados X es un alfabeto de entrada r es una alfabeto llamado alfabeto de la cinta *

www.FreeLibros.com

MQUINAS DE TURING

173

s e Q es el estado inicial b e T es el smbolo blanco (y no est en X) F c Q es el conjunto de estados finales o de aceptacin 5: Q x T Q x T x {L, R) es una funcin parcial que se llama funcin de transicin

En esta definicin se supone que el valor inicial de todas las celdas de la cinta es el smbolo b. La definicin requiere que b . X. Generalmente, permiti mos que I g F - {&}. La funcin de transicin 5 transforma pares (q, a ) forma dos por el estado actual y los smbolos de la cinta en temas de la forma (p, t, X), donde p es el estado siguiente, t es el smbolo escrito en la cinta y X es un movi miento de lectura/escritura de la cabeza, que puede ser L o R, segn que el movi miento sea hacia la izquierda o hacia la derecha (nos imaginamos que la cinta se extiende de izquierda a derecha). Por ejemplo, la transicin 5 (< 7 1 , a) = (# 5 , b, R) provoca que la mquina de Turing pase de una configuracin a b

T
Posicin actual de la cabeza He a la configuracin Estado interno
<71

T
Posicin actual de la cabeza lie Estado interno q\

Haremos hincapi en que una funcin parcial no est necesariamente defini da para todo elemento del conjunto del que se realiza la transformacin. Por tan to, puede que 5 no tenga una imagen para algn par Q x T . Obsrvese que las transiciones dependen nicamente del estado actual y del contenido de la celda sobre la que se encuentre la cabeza de lectura/escritura. Por tanto, cualquier cadena de entrada se debe presentar a la mquina sobre su

www.FreeLibros.com

174

TEORA DE AUTMATAS Y LENGUAJES FORMALES

cinta. Esto es debido a que se requiere que I c F - ( & } (y que b no es un smbo lo de entrada). Consideremos la mquina de Turing definida mediante Q = {<?i, < 72} X = {a, b] T={a, b,b}

F={qi}
s = qi y 5 dado por (<?l, a) = (qi, a, R ) d (q\, b) - (qu a, R )
8 8

(.71, 6 ) = (<72, b,L)

Esta maquina empieza sus operaciones en el estado q\. Si el contenido de la celda de la cinta sobre la que se encuentra la cabeza de lectura/escritura es a, la transicin que se puede aplicar es 8 (q\, a) = (q\, a, R). La mquina de Turing sobreescribir la a que est en la cinta con otra a (es decir, no se producira nin gn cambio en el contenido de la cinta), se mover una celda hacia la derecha y permanecer en el estado q\. Cualquiera de las siguientes aes que haya en la cin ta, ya sea en esta nueva posicin como en cualquier otra que est a la derecha, no se cambiar, sin embargo las bes sern sustituidas por aes (por medio de la transicin 8 (q\, b ) = {q\a, R)). Si la mquina de Turing encuentra un blanco (el smbolo b), se mover una celda hacia la izquierda y pasar al estado final qi. No hay ninguna transicin desde el estado q 2, con lo que la mquina de Turing parar'una vez que llega a ese estado. Estos grficos representan las distintas etapas del proceso para la mquina de Turing dada, que empieza con una configuracin inicial muy sencilla: a b b a
<71

b ,

b ,

T
a

Estado a a
<71

T
b , a a

Estado q\ a a b a a

T
a
<72

Estado a b

Estado

Estado q\

Estado

Representar las configuraciones de una mquina de Turing de esta forma es bastante pesado. Cualquier configuracin viene determinada por el estado ac tual, el contenido de la cinta y la posicin de la cabeza de lectura/escritura sobre

www.FreeLibros.com

MQUINAS DE TURING

175

la cinta. A continuacin veremos las dos notaciones que ms se emplean para representar esta informacin de una manera ms conveniente. La primera repre senta una configuracin como un par (q, W\GW2), donde q es el estado actual, wi es la cadena de la cinta que precede a la celda sobre la que se encuentra la ca beza de entrada/salida, a es el smbolo de la cinta sobre el que se encuentra la cabeza de entrada/salida y w2 es la cadena que hay a continuacin de la cabeza de entrada/salida. Por tanto, en el ejemplo anterior la configuracin inicial de nuestra maquina de Turing podra ser (q\, babba), la segunda sera (q, abba) y as sucesivamente. Otra notacin alternativa viene dada por una cadena ]Ci2 ... aic-iqiciic... an que representa a la configuracin (q, \vaku)\ es decir, la cabeza de entrada/salida se coloca sobre la celda que contiene a* y el estado ac tual es q. Obsrvese que la cadena a\a 2 ... cik- \qak ... an indica que la cabeza de entrada/salida se encuentra sobre el smbolo de la cinta que aparece siguimdo al estado. Por tanto, la primera de las dos configuraciones del ejemplo anterior se puede representar como q\abba y aq\bba. Usaremos estas dos notaciones in distintamente. Las configuraciones de una mquina de Turing se conocen como descripciones instantneas (DIS) Sea cual sea la notacin que utilicemos, denotaremos el paso de una confi guracin a otra por medio del smbolo ya familiar i- . Por tanto, en el ejemplo anterior se tiene que (q\, abba) t- {q\, abba) h (q\, aaba ) f- (q\, aaaa) H (q\, aaaab) h (q2, aaaa) o qiabba h aq\bba y- aaq\ba i- aaaq2a Las notaciones h y ms, respectivamente.
h

aaciq\a

aaaaq\b .

tienen el significado usual cero o ms o una o

Veamos otro ejemplo en el que consideraremos la siguiente mquina de Turing

< 2 = {q\, < ?2 > <?s} Z - {a, b } r = { , b, b} F={qi) s = q\


y la funcin de transicin 5. dada por

www.FreeLibros.com

176

TEORA DE AUTMATAS Y LENGUAJES FORMALES

(< 7 1 , a) - (q\, a, L) d ( q u b ) = (qi,b, L)


8 8 8 8 8

(<?i, b) = (< 72 , b, R) (q2, a) - ((73 , a, L) (< 72 , b ) = (< 73 , (< 72 , 5) ~ (? 3 , L)

Esta mquina de Turing examinar la cinta hacia la izquierda hasta que se encuentre con la primera celda en blanco. Entonces parar y se colocar sobre el blanco. Por tanto, deberamos tener (q i, aababb) (< 7 1 , aababb ) l- (< 7 1 , aababb) (qi, aababb) h (q\,baababb) t- (q2, aababb) H (^ 3 , baababb) o aabq\abb H aaq\babb 1- aq\ababb l- q\aababb H q\baababb i- qiaababb h q^baababb Obsrvese que, cuando 8 (q, a) est indefinido y la configuracin de la m quina de Turing es (q, w\a\V2), es imposible que pase a otra. Entonces se dice que la m quina de Turing est parada. Puede que q e F, siendo F el conjunto de estados finales, o puede que no. De cualquier forma, muchas veces nos gustara dotar de significado a la parada en un estado de F. De hecho, para simplificar, supondremos que 110 se definir ninguna transicin para cualquier estado de F, por lo que la mquina de Turing se parar siempre que llegue a un estado final. Sin embargo, en cualquier caso, la secuencia de todos los movimientos que con ducen a una configuracin de parada se llama computacin. Consideremos la mquina de Turing dada por Q = {<?i, qi)
L= { < s r , > }

r = {a , b , b } s = q\ F=0 y
8

definida por b ( q i , a ) = (q2, a , R )


8 8 8

(qi, b) = (< 72 , b, R) (qu b) = {q2, b, R) (< 72 , a) = (qu a, L)

www.FreeLibros.com

MQUINAS DE TURING

177

5 (<?2 , b ) ..O/i, b, L) (< 72 , &) ~ (c/i, b, L ) Si en esta mquina de ng se ca con la cabeza de lectura/escritura sobre la a de una cadena de la Forma abw, se tiene la siguiente secuencia de mo vimientos: qiabw H uqzbw t- q\abw H aqjbw La mquina de Turin;' mover tiempo indefinido con la cabeza de lectura/escritura desplazndo de dere i a izquierda alternativamente. ste es un ejemplo de mquina de Turing que n, :a parar (se dice, siguiendo la termi nologa de los programas de omputaci; que la mquina se encuentra en un bucle infinito). Esta situacin es funda) ental en la teora de las mquinas de Turing y se representar p; r ( 7 , wiOU'} - 00 o w\qo\V2 t- * > . Ello indica que la mquina de Turing, que empr 6 con a configuracin inicial \v 1qow 2, nunca se detendr.

Ejercicios de la Seccic
/4 ...

.I

Construir una mquina de Turingru analice una cadena sobre [a, b}+ despla zndose por la cinta ce i quierda a d: echa y que reemplace todas las bes que aparezcan por una r. .quin ring debera comenzar con la cabeza so bre el primer smbolo C que es?:; a la izquierda) de la cadena y terminar con la cabeza sobre e blanco fin; ( i blanco que sigue a la a o la c que est ms a la derecha en la cadena tran . nada). Turing re cuando se le presente una cadena de

4.1.2. Construir una mqui ir

L = { ; ' | n, m > i \ !os dos no son 0 a la vez} Comenzar el procesainihto con Ir; eza situada sobre el primer smbolo (el que est ms a la izquierda) de la cauetia. 4.1.3. Construir una mquir Turing numere todos los enteros binarios, en or den numrico sobre s cinta cuaiv. menee con (q 1; 0>). Es decir, la maquina de Turing podra ejecwrsc de esa furnia: (<yi,0 />) (q\,\_b) i- (</],
1 0 > )

(q, Ufe) ... ^

Obsrvese que esta'mquina nunca par.a. 4.1.4. Construir una mqui r :e Turin;: ; onmere sobre su cinta, todos los enteros binarios en orden wrn rico sep; r > .> s por blancos t> y que comience con (q^Ob).

www.FreeLibros.com

178
4.2

TEORA DE AUTMATAS Y LENGUAJES FORMALES

MQUINAS DE TURING COMO ACEPTADORES DE LENGUAJES


Una mquina de Turing se puede comportar como un aceptador de un lenguaje, de la misma forma que lo hace un autmata finito o un autmata de pila. Coloca mos una cadena w en la cinta, situamos la cabeza de lectura/escritura sobre el smbolo del extremo izquierdo de la cadena w y ponemos en marcha la mquina a partir de su estado inicial. Entonces w es aceptada si, despus de una secuencia de movimientos, la mquina de Turing llega a un estado final y para. Por tanto, w es aceptada si qw t- w\pwz para algn estado final p y unas cadenas vv y w2. (Haremos hincapi en que se ha supuesto que la mquina de Turing para cuando llega a un estado final). Entonces, se obtiene la siguiente definicin:

Definicin 4.2.1. Sea M = ( Q , E, T, s = q\, b, F, 8 ) una mquina de Turing. Entonces el lenguaje aceptado p o r M es L (M) {w e E* | q\w h- w\pw 2 para p e F y w e Y*}

Ejemplo 4.2.1

Consideremos que se disea una mquina de Turing que acepta el lenguaje regular a* sobre E = {, b}. Comenzando con el smbolo que est ms a la iz quierda en una cadena, realizaremos un anlisis hacia la derecha, leyendo cada smbolo y comprobando que es una a ; si lo es, realizamos un desplazamiento hacia la derecha. Si encontramos un blanco (b ) sin que se haya ledo ningn smbolo que no fuera a , paramos y aceptamos la cadena. Si, por otro lado, en contramos un smbolo que no es ni a ni b , podemos parar en un estado que no es de aceptacin. Sea Q = { , q2), s = q\ y F= {q2}, y sea 5 definida por
8 8

(<?i, a) = {qu a, R) (#i, b) - {q2, b, R)

Obsrvese que esta mquina de Turing para en el estado q2, slo si se ana liza una cadena de 0 ms aes. Para rechazar una cadena que no es aceptable, lo nico que hay que hacer es evitar que se llegue a un estado final. En el Ejemplo 4.2.1, las cadenas que no son aceptables, provocan que la mquina pare en un estado que no es final. Ob srvese que si la mquina de Turing entra en un bucle infinito, no se puede lle gar a un estado final (se sigue suponiendo que no hay transiciones definidas para los estados finales). Otra alternativa para rechazar una cadena es entrar en un bu cle infinito. El lenguaje del Ejemplo 4.2.1 podra ser aceptado por

www.FreeLibros.com

MQUINAS DE TURING

179

M = ( [ q \ ,q i ,q z } ,q \ , {a,b}, { a ,b ,b } ,b , { < 7 3 }, 5) donde


8

est definida mediante


8 8 8

(qu a) = (qu a, /?), (q\, b) - (q2, b, R), (qu t> ) = (qz, b, R),

8 8 8

(q2, a) = (q 2, a, (q2, b) = (q2 >b, (q2, b) = (q2, b,

R) R) R)

Obsrvese que si se encuentra una b, la mquina de Turing pasa al estado q2. En el estado q2, la mquina de Turing siempre se mueve hacia la derecha.

Ejemplo 4.2.2

Consideremos el lenguaje {anb"\n> 1}. Para reconocer este lenguaje, no slo se debe contar el nmero de aes y bes sino que tambin se tiene que verifi car que todas las aes aparezcan a la izquierda de todas las bes. Una forma de abordar este problema es eliminar una por una las aes y las bes que estn en sus posiciones correspondientes. Es decir, empezar con la a que est ms a la iz quierda y convertirla en algn otro smbolo; entonces, nos desplazamos hacia la derecha hasta que encontramos la primera b. Entonces la convertimos en otro smbolo y nos desplazamos hasta la a que est ms a la iquierda. Repetimos este.proceso hasta que no queden aes y bes. Sea q\ el estado inicial y supongamos que usamos una c para reemplazar a una a y una d para reemplazar a una b. Las transiciones
8 _(<?i, a) 8

= (q2, c, R), (q2, a) = (q2, a, R ),

8 8

(q2. d) = (q2, d, R ) (q2, b) = (< 73, d, L)

provocan que la mquina de Turing reemplace la a que est ms a la izquierda por una c y analice la cadena hacia la derecha, hasta encontrar una b. Esta b se sustituye por una d. Las transiciones

S(qi,d) =(q i,d,L)


8 (<?3, 8

a) = (7/3, a, L) f e , c) = (<?|, c, R)

provocan que la mquina de Turing retroceda hacia la izquierda hasta la a que est ms a la izquierda. Puesto que la mquina de Turing slo puede pasar al es tado <73 mediante as transiciones del primer conjunto, se puede asegurar que una c precede a la a que se encuentra situada ms a la izquierda. Si se acaban todas las aes, la mquina de Turing estar en el estado q\ y si tuada sobre la celda de la cinta que contiene una d como resultado de la ltima

www.FreeLibros.com

180

TEORA DE AUTMATAS Y LENGUAJES FORMALES

transicin presente en el conjunto precedente. Se debe realizar una comproba cin final para ver si todas las bes han sido convertidas en des. Las transiciones
8 8

(< 7 i,/) = (< ?4, d, R) (< ?< ,, d ) = (< ?4, d, R) 8 (< 74, b) = (^5 , b, L)

llevan a cabo dicha comprobacin y, si dicha comprobacin tiene xito (es de cir, si no quedan bes), deja a la mquina de Turing en el estado q$ y situada so bre la ltima d. Por tanto, la mquina de Turing que acepta {a"b" | n > 1} ser M = ({qi,q2, #3 . ? 4. 9 5 }, {a, b), {a,b, c,d},q\,b, {< ?5}, 8 ) donde 8 est representada por las
10

transiciones precedentes.

El Ejercicio 4.2.6 prueba que el lenguaje {anbncn\n > 0} es aceptado por una mquina de Turing. Aunque se sabe que este lenguaje no es independiente del contexto, las mquinas de Turing pueden aceptar algunos lenguajs que un autmata de pila no determinista no puede aceptar. Un lenguaje que es aceptado por una mquina de Turing se conoce como lenguaje recursivamente enumerable (a menudo se abrevia como lenguaje R.E.). El trmino enumerable proviene de que dichos lenguajes son aquellos cuyas ca denas pueden ser listadas (enumeradas) por una mquina de Turing. Esta clase de lenguajes es bastante grande, incluyendo los lenguajes independientes del contexto. Recurdese que, para que una mquina de Turing acepte un lenguaje, no ne cesita parar sobre cualquier cadena de entrada. Slo necesita parar en un estado de aceptacin para aquellas cadenas que pertenezcan al lenguaje. De hecho hay lenguajes R.E. para los cuales ninguna mquina de Turing que los acepte para con todas las entradas (naturalmente, cualquier mquina de Turing para dichos lenguajes debe parar para toda cadena que pertenezca realmente al lenguaje). La subclase de los lenguajes recursivamente enumerables que son aceptados por al menos una mquina de Turing que para con toda cadena de entrada (dependien do de si la cadena es aceptada o no), se conoce por la clase de los lenguajes re cursivos. Ms tarde volveremos a hablar sobre los lenguajes recursivos y recur sivamente enumerables. Puesto que las mquinas de Turing pueden leer y escribir sobre su cinta pueden convertir la entrada en salida. Hemos hecho uso de esto en el recono cimiento del lenguaje {a"b"\n > 1 }; cuando transformbamos las cadenas de aes y bes en cadenas de ces y des. La transformacin de la entrada en salida es el primer propsito de las computadoras digitales; por tanto, una mquina de Tu ring se considera como un modelo abstracto de una computadora. Se supone que

www.FreeLibros.com

MQUINAS DE TURING

la entrada para la mquina de Turing est formada por todos los smbolos de la cinta que no son blancos. La salida est formada por cualquiera de los smbolos que queden en la cinta cuando la computacin termina. Por ejemplo, considrese la mquina de Turing M - ( Q , Z, F, s, b, F, 8) donde Q = {q \,q i, < 73} 2 = {a,b} Y = {a, b, b} s = qi F = {q i) y 8 dado por 8 {<j\, a) - (qi, b, R), 8 (q 1 , b ) = (q 1 , a, R), 8 (qu b) = (qi, b, L), 8 {q2, a) = (< 72 , a, L) 8 (q2, b ) = {q2, b, L) 8 (q2, b) = (4 3 , b, R)

Esta mquina de Turing complementa las cadenas sobre el alfabeto E. Es decir,convierte las aes en bes y viceversa. Si se comenz con la configuracin ((q \, aiCJ2 0;)> para con la configuracin (^ 3 , cti 2 oc,), donde o. es a si o es b y viceversa. Obsrvese que las mquinas de Turing pueden ser consideradas como la implementacin de una funcin de cad en a/d efin id a mediante f { w ) = u cuando se cumple qsw h q/u, donde qs es el estado inicial y q/es un estado final. Por con veniencia y claridad, se requiere que la cabeza de lectura/escritura empiece y termine, respectivamente, sobre el smbolo de las cadenas de entrada y salida que est situado ms a la izquierda. Daremos la siguiente definicin: Definicin 4.2.2. Se dice que una funcin de cadena / es Turing computable si existe una mquina de Turing M = ( Q, Z, T, q\, t?, F, 8) para la cual q\w h q/u para al gn q& F, cuando/(vv) = u. Aunque la computabilidad de Turing se ha definido slo para funciones de cadena, se puede extender fcilmente esta definicin a las funciones integrables, como se muestra en el siguiente ejemplo.

Ejemplo 4.2.3 Supongamos que tenemos Z = {a, b] y que representamos los enteros posi tivos mediante cadenas de aes. As, el entero positivo n estara representado por a". La funcin suma f(n ,m ) = n + m podra ser implementada mediante la trans-

www.FreeLibros.com

182

TEORA DE AUTMATAS Y LENGUAJES FORMALES

formacin de anbam en an+mb. Podramos obtener una mquina de Turing apro piada para la suma, que estara representada por M = (Q , , F, s, b, F, 8 ), donde
Q = {<?l,<72, < 73, < ?4 , <?s}

F={qs} y 8 dada por las siguientes transformaciones:


(qi, a) = (qu a , 8 (4 1 , fe) = (< 72 , a,
8

R), R), R),

(q 3, a) = (94 , fe, L) 8 (< 74 , a) = (q4, a, L)


8

8 (9 2 , a) = (9 2 , a,

8 (< 74 , fe) = (< 75 , fe, -K )

8(92, fe) = (43, A

I)

Esta mquina de Turing simplemente desplaza la fe hacia el final, a la dere cha de a+m. Para ello, se crea una a extra. La mquina de Turing recordar que se ha creado una a al pasar al estado q2 una vez que se ha encontrado la fe, y entonces se escxibir una fe sobre la a que est al final de la cadena^ Obsrvese, tambin, que cuando termina, la mquina de Turing sita su cabeza de lectu ra/escritura sobre la a que se encuentra ms a la izquierda.

Ejercicios de la Seccin 4.2


. / 4.2.1. Transformar la mquina de Turing del Ejemplo 4.2.1 para que, cuando reciba una cadena que deba aceptar, pare en un estado de aceptacin con la cabeza de lectura/escritura sobre el primer blanco que tenga la cadena. /4.2.2. Construir una mquina de Turing que acepte el lenguaje {a2"\n > 0} sobre
E = {a, b}.

4.2.3. Mostrar la ejecucin de la mquina de Turing del Ejemplo 4.2.2 cuando se par te de cada una de las siguientes configuraciones: (q\,aabb ), (q\,aab ) y
(q\, aaabbb).

4.2.4. Disear una mquina de Turing que acepte el lenguaje {a"b"\n> 0}. Obsrvese que, adems de tener en cuenta lo visto en el Ejemplo 4.2.2, debemos compro bar la cadena vaca. Transformar la mquina de Turing para que no pare si en cuentra una cadena no aceptable. 4.2.5. Disear una mquina de Turing que acepte el lenguaje {a"b"\n > 1} por medio de la eliminacin de las aes y bes que estn en \os extremos opuestos de la cade na. Es decir, usando nuevamente c y d, la cadena aaabbb sera primero transfor mada en caabbd, despus en ccabdd y, por ltimo, en cccddd. 4.2.6. Disear una mquina de Turing que acepte {anbnd' \ n > 0}.

www.FreeLibros.com

MQUINAS DE TURING

183

4.2.7. Construir las mquinas de Turing que acepten los siguientes lenguajes sobre I={a,>}: a) aba*b Jtf) {vv| la longitud de w es par}
[a"b"|n > 1 y m n }

J$) {w| w contiene el mismo nmero de aes que de bes] (e) (f) [a"bm an+m\ n >0 y m > \] {anb"a"b"'\n>0 y m > 0 }

(g) {anb2n\n> 1 } (h) {vvw|vv e {a, b}+} (i) {w\w = w '}

(j)
(k)

{"2| > l
{a2"| n > 0}

4.2.8. Ejecutar la mquina de Turing del Ejemplo 4.2.3 sobre las entradas a2ba3 y crb. Cmo se comportar esta mquina de Turig cuando se sume 2 + 0? 4.2.9. Una forma de abordar el mtodo del Ejemplo 4.2.3 que suma n + m es aadir anb a a'n cuando la cadena de entrada viene dada por a"ba"'. Entonces la cadena original a"b se debe eliminar de la cinta. Construir una mquina de Turing que implemente la suma de esta forma. 4.2.10. Para todo nmero natural, ya sea par o impar, construir una mquina de Turing que calcule la funcin de paridad de los nmeros naturales, es decir, que compute

4.2.11. En el Ejercicio 4.2.10 hemos transformado cadenas de smbolos en cadenas for madas por un nico smbolo. Hay algunos lenguajes que pueden ser reconoci dos por medio de esta tcnica. Si L es un lenguaje (de un tipo apropiado como se ver ms tarde), la funcin caracterstica de L, transforma una cadena w sobre el alfabeto en una cadena con un nico smbolo 0 1 , dependiendo de si w pertenece a L o no. Es decir, % L se define como

Construir una mquina de Turing que compute sobre E= {a, b):

(w) para el siguiente lenguaje

www.FreeLibros.com

184

TEORA DE AUTMATAS Y LENGUAJES FORMALES

(a) L = aba b (b) L = {w | la longitud de w es par} (c) L= {anb2n\ri >0} Son recursivos estos lenguajes? Son recursivamente enumerables? 4.2.12. La mayora de las tareas diarias pueden ser interpretadas como transformacio nes de cadenas. Por ejemplo, para comprobar la paridad se requiere que las ca denas de n bits se transformen en cadenas de n + 1 bits en las cuales, o bien hay un nmero par de bits 1 (paridad par) o un nmero impar de bits 1 (paridad im par). Construir una mquina de Turing que transforme cadenas de ocho ceros y unos en cadenas de nueve ceros y unos, en las cuales el nmero de unos sea siempre impar. Iniciar la mquina de Turing en la celda que contiene el bit del extremo izquieido de la cadena. Se supone que el bit de paridad es el noveno bit por la izquierda. 4.2.13. Dada la -tupia de nmeros naturales (i, 2, ,*), la proyeccin p de ( 1 , 2- , n) es n. Es decir, p devuelve el '-simo componente de la -tupia. Construir una mquina de Turing P que compute la funcin proyeccin p.

4.3

CONSTRUCCIN DE MQUINAS DE TURING


Como el lector puede deducir de las observaciones y ejercicios previos, las m quinas de Turing pueden desempear muchas actividades adems del reconoci miento de lenguajes. De hecho, las mquinas de Turing se toman como modelos tericos de las computadoras, un tema que trataremos ms tarde. Por ahora nos centraremos en la forma de simplificar la construccin de una mquina de Tu ring. La idea bsica es construir una coleccin de mquinas de Turing sencillas y combinarlas de diferentes formas con el fin de crear una ms compleja. Podemos combinar dos mquinas de Turing permitiendo que compartan la misma cinta y, que cuando una termine su ejecucin, la otra empiece. El conte nido de la cinta cuando comienza la ejecucin de la segunda mquina de Turing, est formado por todo lo que dej la primera mquina de Turing, y la cabeza de lectura/escritura de la segunda se situar, al comienzo de la ejecucin, sobre la celda de la cinta sobre la que termin la primera.

Ejemplo 4.3.1 Sea M i dada por

Q1 = [q\,qi, < 7 3 ,< 74}


l= {a] T = {a,b}

www.FreeLibros.com

MQUINAS DE TURING

185

Si=qi

= {^4 } con 8 j de la forma siguiente:


8i {q\,) = {q2, a, R) 81 (qu b) = (<?2, b, R )
81

(< 72, a) = (< 72, a, R)

1( < 72,b) = ( <73, b, L)

81 (?3, b) = (< 74 , b, R)

? 4 ,, / ? ) 8 : (< 73, a) = (<


Sea M2 dada por

Ql={P\,P2)
I y T los mismos de M\

si = p\
Fl = {P2 }

con 82 como se escribe a continuacin:


82 (pi,a) = (p2, a, R) 82 O, & ) = (pz, a,j)

>i b

Obsrvese que M\ busca el primer blanco que haya a la derecha de donde ha comenzado, mientras que M2 escribe una a y para. (La a se escribe inde pendientemente del contenido de la celda actual). Al combinar estas dos mqui nas de Turing de forma que una computacin de M\ vaya seguida por una de M2, obtenemos un dispositivo que primero busca hacia la derecha el primer b y despus escribe una a en todas las celdas. Representaremos la combinacin de estas dos mquinas de Turing mediante M\M2 para indicar que la computacin de M\ va seguida por la computacin de Mi. Vamos a definir formalmente la combinacin o composicin de mquinas de Turing como sigue: y Definicin 4.3.1. Sean M\ y M2 dos mquinas de Turing sobre el mismo alfabeto de entrada Z y el mismo alfabeto de la cinta T, doiide
' M i = ( G , , i , r , s h b, F u y

8 1)

www.FreeLibros.com

M2 - (02, z, r, .92, b, f 2, 82)

186

TEORIA DE AUTMATAS Y LENGUAJES FORMALES

Se supone que Q\ n Q2 = 0- La composicin de las mquinas de Turing M\ y M 2 es la mquina de Turing M = (Q, E, r, s, b, F, 8 ), que se denota M \M 2, donde
Q = Q\ u Q2

s = s1 F=F2

(< ?, a) =

si q e Q\ y 8 1 (g, a ) * (p, x, X) para todo p e F\ 8 2 (< 7 , a ), si q e Q 2 (s2, T,X), si q e <2| y 8 1 (^, a ) = (p, x, X) para algn p e F\
81

(q, a ),

Obsrvese que la composicin M 1 M 2 se comporta como M\ hasta que M\ llega a un estado final. En ese momento cambia al estado inicial de M 2 y se com porta como M 2 hasta que termina. En nuestro ejemplo previo, M 1M 2 tendra las transiciones dadas mediante n y y( > O 8 (qi, a) = {c2, a, R) 8(T3, a ) - ( p i,a , R) 6 (q \,b ) = (q2,bJ), 8 (<?3. & ) = (p\, b}:R) V
8 8

(q2, a) = (q2, a, R ), (q2, b) = {qi, b, L),

8 (p\, ) = (p2,0, R) 8 O , b) = [p% ,

con s = q\ y F = {p2}Nos vamos a referir a la mquina de Turing M\ del Ejemplo 4.3.1 como RbEs decir, R& busca el primer blanco que haya a la derecha de la posicin actual de la cabeza. Consideremos una cinta a a a b a a b b b

T
Posicin actual de la cabeza La mquina de Turing compuesta Rt,Rb terminara en la posicin

www.FreeLibros.com


MQUINAS

ne TURING

1 87

T
Posicin de la cabeza mientras que la mquina de Turing compuesta Rt,RbRr> terminar: : en ia posiei

T
Posicin de la cabeza Otra forma de especificar las transiciones es el uso de una t : '>i;s. La tabla de transiciones correspondiente a R, sera

(q, O)
< 7 i < 7 2 < 7 3

a*b (q2, a , R) (< 72 - 0 . R)

< 5= b

(q2, t>, R)
C q i,b ,L ) (< 74 , b, R)

(<74.0. R)

Obsrvese que una de las columnas se especifica para un s ' >de la c en particular y la otra especifica el resto de smbolos de la cin .. trans. , 8 {c2, ) = (c2, o, R) de la columna etiquetada con o ^ b indica que, para smbolo de la cinta 0 que sea distinto de b, la mquina de Turii ; e cribe a en cinta, se mueve a la derecha y permanece en el estado q 2 . A ur : ai principio habamos especificado R, slo para el alfabeto de la cinta F = la. b J, ahora he mos especificado Rt, para todo alfabeto de cinta que incluya 1) cc :i bano Consideremos la ipquina de Turing cuya tabla de transicin es b c^b (q2, O, L) (< 93, V ti) (< ?4, a , L)

8 '<?! < 72 < 73

a = (<72, (<72,

b, L) b, L)

(<?4, b, L)

www.FreeLibros.com

188

TEORA DE AUTMATAS Y LENGUAJES FORMALES

donde F = {q4} y s = q\. Esta mquina de Turing busca hacia la izquierda el pri mer smbolo de la cinta que no sea blanco y termina con la cabeza de lectura/es critura sobre dicha celda. Esta mquina de Turing ser denotada por Lj, (la b se usa para denotar cualquier smbolo excepto 6 ). Combinando Lg y R se obtie ne RbLb, donde la cabeza de lectura/escritura se sita sobre el smbolo de la cinta que precede al primer b que hay a la derecha de la posicin actual. Por tanto, si empezamos sobre

T
Posicin de la cabeza la mquina de Turing combinada terminara en

T
Posicin de la cabeza En el Ejemplo 4.3.1 vimos una mquina de Turing [Mi) que escriba un ni co smbolo como salida. Ser conveniente especificar una mquina de Turing que escriba como salida un nico smbolo, a, y que permanezca sobre dicha cel da. Vamos a especificar esta mquina de Turing donde s = q\ y F = {4 3 } me diante la siguiente tabla:
8

(q , a) < 7 1 < 7 2

ae T (< 72, a, R) (<?3, 0 , L)

Si denotamos esta mquina de Turing mediante el smbolo a. que escribe como salida, podemos componerla con otras. Por ejemplo, R/,aR buscara el pri m er que hubiera a la derecha de la posicin actual de la cabeza, escribira una a en la celda y se movera a la siguiente celda por la derecha. Se deseara poder combinar las mquinas de Turing sencillas de modo que se consiguiera una mquina de Turing sencilla bajo unas condiciones deterrrtinadas. Por ejemplo, supongamos que Lf,R va seguida por una mquina que escriba una a si la celda es un blanco o escriba una b si la celda contiene una a. Se nece

www.FreeLibros.com

MQUINAS DE TURING

189

sita bifurcar el camino de ejecucin. Consideremos la mquina de Turing cuya tabla de transicin es 5 (q, 0 ) < ?i
<?2

o =b (<?2 , b, L ) f e , t> , R)

c =a (< ?4 >a, L )

(< 73, a, R) (< ?5 , a, R)

<74

(<75, t> , R)

donde F = {q$, q} y s = q\ (obsrvese que no hay transiciones para q?, o qs). Su pongamos que componemos esta mquina de Turing con las mquinas de Turing que escriben a y b de forma qtie, si termina en el estado < 7 3 , se inicia la ejecucin de la mquina de Turing que escribe a y, si termina en el estado q$, la ejecucin que comienza ser la de la mquina de Turing que escribe b. Hemos provocado una bifurcacin en la ejecucin y se podra denotar mediante el diagrama

hemos representado la mquina de Turing que causa la bifurcacin mediante las flechas. Por ejemplo, una mquina de Turing que analiza una cadena convirtiendo toda a en b y toda b en a, se podra representar \,J 7

a =a

o =b

Obsrvese que hemos marcado con una flecha la mquina de Turing senci lla que comienza la secuencia de ejecucin, al igual que hicimos con el estado inicial de un autmata finito. Es ms, puesto que no hay ningn estado siguiente a R cuando el smbolo actual de la cinta es b, entonces en ese caso, la mquina compuesta se debera parar. / * Las flechas mltiples pueden ser eliminadas de varias formas. Por ejemplo, si r = {a, > , c, b}, la mquina compuesta denotada por

www.FreeLibros.com

190

TEORA DE AUTMATAS Y LENGUAJES FORMALES

a,

b, b >R

realiza lo mismo que la mquina compuesta _________ a _________ I ^ R ----------- - ----------- >R

Es decir, se mueve una celda hacia la derecha y entonces, si el smbolo que hay en ese lugar es a, b o b se mueve nuevamente hacia la derecha. Igualmente, la mquina de Turing denotada por a, b, c, h >R

R o por

E > I o por R

b c b

I
^ T? >K

---- >R

o incluso por RR o R \ simplemente mueve la cabeza de lectura/escritura dos celdas hacia la derecha (obsrvese que, puesto que T est formado solamente por los smbolos a , b , c y b, todos los smbolos de la cinta producen el segundo R). Un caso muy comn es que se tenga una ramificacin para un smbolo espe cfico de la cinta y otra para todos los dems. Esto se puede denotar de varias formas. Por ejemplo, si T = {a, b, c, b}, entonces

Q =a R ---------<I*_3-------- >b busca hacia la derecha la primera celda que contenga un smbolo que no sea a y escribe una b en ese lugar. El diagrama

a R ------------- 3------------> b denota lo mismo.

www.FreeLibros.com

MQUINAS DE TURING

191

Consideremos el problema del desplazamiento de una cadena sobre la cinta una celda a la derecha. Supongamos que se requiere que la cadena a desplazar sea precedida y seguida por blancos. Por tanto, desearamos transformar bwb en bbw (el smbolo donde estar situada la cabeza de lectura/escritura se indica me diante el smbolo de subrayado). Si suponemos que el alfabeto de la cinta, T, es {a, b, b}, dicha mquina de Turing podra ser construida como se muestra a con tinuacin:

Esta mquina de Turing mueve, uno a uno, todos los smbolos de la cadena hacia la derecha hasta que encuentra el b que preceda originalmente a la cadena. Entonces, se mueve hacia la derecha y para. Dos de los caminos pueden ser abreviados como

RB R --------------------------- > L2 ---------- ----------------- bRa -

o =5
R

El smbolo o en bRo significa que la mquina compuesta recuerda el sm bolo que ha sido sobrescrito con el b. (Originalmente se realiz por medio de dos caminos separados). Esta mquina de desplazamiento hacia la derecha es re lativamente sencilla y til. La denotaremos mediante Sr . Consideremos el proceso de reconocimiento de [ w w ' \ w e }. Una forma sera comparar los smbolos que estn en los extremos derecho e izquierdo. Si concuerdan, entonces los eliminamos y repetimos el proceso, lia cadena ser aceptada cuando todos los smbolos hayan sido eliminados. Por otro lado, si dos smbolos fallan al ser comparados, terminamos de forma inmediata en un estado que no es de aceptacin. Empezamos con bub y esperamos descubrir que u = w w l. Consideremos la mquina de Turing compuesta

www.FreeLibros.com

192

TEORA DE AUTMATAS Y LENGUAJES FORMALES

o*
0=5

>

----- g ^ r ----- > L a* T

Para en un estado de aceptacin

Para en un estado que no e s de aceptacin

Obsrvese que aqu estamos abreviando los caminos posibles al recordar dos smbolos de la cinta o y x. Los estados en los que termina esta mquina de Turing son estados de aceptacin o no y son denotados por las tres trayectorias con distintas condiciones. Recordemos que la aceptacin de un lenguaje requiere solamente que la m quina de Turing pare en un estado de aceptacin si la cadena facilitada est en el lenguaje. Por tanto, una alternativa a la mquina compuesta precedente, podra ser

o#6
c= 6 O* T

0= T

- Lr.

Para en un estado de aceptacin

t)c

Esta mquina se detiene en un estado de aceptacin para las cadehas de la forma w w 1 y, para todas las cadenas que no son de esta forma, no parar, sino que escribir b de forma infinita.

Ejercicios de la Seccin 4.3


4.3.1. Cmo se podra realizar la mquina de Turing compuesta M2M\ del Ejemplo 4.3.1? % 4.3.2. Construir formalmente la mquina de Turing compuesta del Ejemplo 4.3.1 (dar Q, F, s y 5).

www.FreeLibros.com

MQUINAS DE TURING

193

4.3.3. Construir las siguientes mquinas de Turing:

L, Sita la cabeza de lectura/escritura sobre el primer b que haya a la izquier da de la posicin actual de la cabeza. Rf, Sita la cabeza de lectura y escritura sobre el primer smbolo no b que haya a la derecha de la posicin actual de la cabeza. R Mueve la cabeza de lectura/escritura una celda hacia la derecha a partir de su posicin actual. L Mueve la cabeza de lectura/escritura una celda hacia la izquierda a partir de su posicin actual.
4.3.4. Qu efecto produce Sr sobre baabbbbl Qu efecto produce S% sobre

baabbbbccbl 4.3.5. Cons'ruir una mquina de desplazamiento hacia la izquierda S por medio de la composicin de mquinas de Turing. Por ejemplo, podra transformar babb en abbb.
4.3.6. Construir una mquina de copia C. C debera transformar bwb en bwbwb. 4.3.7. Usar la C obtenida en el Ejercicio 4.3.6 (igual que otras mquinas de Turing

elementales) para construir una mquina de Turing que compute f(n,m) = nm (es decir, la multiplicacin de enteros). 4.3.8. La sustraccin de nmeros naturales no est definida para todos los pares puesto que la diferencia puede ser negativa. Definir la operacin resta modificada como
nn m = i I 0,

m,

si n

> tn si n o n

Construir una mquina de Turing que compute n - m (la mquina de Turing de bera tomar ba"ba' b y devolver ba" ~mb). 4.3.9. Construir una mquina de Turing que acepte {wcw\w {a,b}*}. 4.3.10. Sea L (, ni) = (a"bn~m\n, m >0} (el operador resta modificada, se defini en el Ejercicio 4.3.8). Para unos n y m dados, construir una mquina de Turing que acepte L (n, m). !
4.3.11. Construir una mquina de Turing que acepte {w| w = w'}. 4.3.12. (a) Construir una mquina de Turing que compute la funcin entera

f(n) = L /2J, donde LxJ representa a la funcin cuyo resultado es el m ayor entero m enor o igual que x.
(b) Construir una mquina de Turing que, dados una cadena w y un entero n < | vv| , site la cabeza de lectura/escritura sobre el n-simo smbolo de w (a partir de la izquierda).

www.FreeLibros.com

194

TEORA DE AUTMATAS Y LENGUAJES FORMALES

(c) Construir una variante de SR, S'r, que no requiera que la cadena vaya pre cedida por un smbolo b. Por ejemplo, S'K transformara abbabb en babbabb. (d) Construir una mquina de Turing que acepte {ww\w e *}, haciendo uso de las mquinas de Turing obtenidas desde el apartado (a) al (c).

MODIFICACIONES DE LAS MQUINAS DE TURING


Hay otras definiciones de las mquinas de Turing que son equivalentes a la nuestra. Algunos de esos modelos alternativos son mucho ms complicados aun que todos tienen la misma potencia computadonal (o de clculo). Muchas de ellas dotan de mayor flexibilidad al diseo de una mquina de Turing que re suelva un problema en particular. Vamos a ver primero unas pequeas variacio nes de nuestra definicin original. Recurdese que la mquina de Turing sencilla L, sita la cabeza de lectu ra/escritura sobre el primer b que haya a la izquierda de la posicin actual. Para hacerlo, buscamos fuera de la celda actual y retrocedemos. Esto es debido a nuestra definicin que requiere que por cada transicin se mueva la cabeza de la cinta. La funcin de transicin estaba definida como 5:>xr <2 x r x {R, L} y puede ser modificada como
8:

Q x T -> Q x T x {/?, L, 5}

donde 5 significa permanecer, es decir no mover la cabeza de lectura/escritu ra. Por tanto 8 (q, o ) = (p , o', S) significa que se pasa del estado q al p, se escribe a ' en la celda actual y la cabeza se queda sobre la celda actual. Obsrvese que en esta definicin est contenida la nuestra, puesto que sta es una extensin de la" mquina de Turing que hemos definido. Por otro lado, una mquina de Turing, para la cual est definida 8 ( q , o) = [p, o', S ), se puede simular por medio de una mquina que correspon da a nuestra definicin original, aadindole simplemente los estados y movi mientos de la forma 8 (q , a ) = ( p a ', R) y 8 ( p \ x) = (p, x, L) y/o de la forma 8 (q , o) = ip', L) y 8 {p\ t) = (p, x, R ) para todo x e T. Por ejemplo, sea M\ una mquina cuyas transiciones estn definidas me diante la tabla

www.FreeLibros.com

MQUINAS DE TURING

195

5 (q, a ) < 7 1
92

o*b (< 72 , O, L) (< 72 , 0 , L)

o=b (q2, 0 , L) (<?3, S)

donde s - q\ y F = { < 7 3 }. Obsrvese que esto es la implementacin de una mqui na de Turing que tiene la capacidad de no moverse. Consideremos M 2 como una mquina de Turing que responde a nuestra definicin y, que se deriva de M\ por medio de esta transformacin, cuyas transiciones se presentan en la tabla

8 (q, a)
<71 . <72 < 74

c *b (q2, O, L) (q2 , O , L)

a=b (q2 , a, L)

(< 74, b, L) (< 7 3 , b, R)

(< 7 3 , 0 , R)

donde s - q \ y F = {g3}. Otra modificacin sencilla de nuestra mquina de Turing bsica es aquella mediante la cual cada celda de la cinta se divide en subceldas. Cada subcelda es capaz de contener un smbolo de la cinta. La cinta b a a b a a b b b

tiene cada celda subdividida en tres subceldas. Se dice que esta cinta tiene mlti ples pistas. Puesto que cada celda de esta mquina de Turing contiene mltiples caracteres, el contenido de las celdas de la cinta puede ser representado median te rc-uplas ordenadas. En el ejemplo anterior, las celdas de la cinta contienen (b, a, a), (b, a, a ) y (b , b, b). Por tanto, los movimientos que realice esta mquina dependern de su estado actual y de la -tupia que represente el contenido de la celda actual. ___ .... Supongamos que T es un alfabeto de cinta. Una mquina de Turing que tie ne una cinta de k pistas, cada una de las cuales contiene un smbolo de T, puede interpretarse como una mquina de Turing cuyo alfabeto de cinta estuviera for mado por todas las -tupias sobre T. Por ejemplo, si T = {a, b, b } y M es una mquina de Turing de 2 pistas cuyas celdas contienen pares de smbolos de T, se puede considerar que su alfabeto de cinta es F x f . Vindolo de esta forma est

www.FreeLibros.com

196

TEORA DE AUTMATAS Y LENGUAJES FORMALES

claro que una mquina de Turing multipista no tiene ms potencia que nuestra mquina de Turing original. Sin embargo, hace que sea ms fcil la construccin de mquinas de Turing que resuelvan ciertos problemas.

Ejemplo 4.4.1 Supongamos que queremos construir una mquina de Turing que sume dos nmeros binarios. Para ello, podemos construir una mquina de Turing de tres pistas. Se supone que la entrada sern dos nmeros binarios que ocupen las dos pista superiores de la cinta. Suponemos que sus dgitos se alinean por la dere cha, que sus representaciones binarias son de la misma longitud (lo que se pue de conseguir rellenndolas con tantos ceros como sea necesario) y que la cabeza de lectura/escritura se sita sobre la celda del extremo izquierdo de la cadena. Por tanto, si tuvisemos que sumar 101 y 10, la cinta debera contener b b b
1 0 0 1 0

b b b

l b

Cabeza e! La mquina de Turing realizar la suma en la tercera pista. Por tanto, el al fabeto de cinta estar formado por las ternas: ( b ,b ,b ) (0 , 0 ,*) (0 , I b ) ( 1 , 0 , b) (L 1 ,0 ) (0 , 0 , 1 ) (0 , 1 . 1 ) ( 1 , 0 , i)

( 1 , 1 , b) (0 , 0 , 0 ) (0 , 1 . 0 ) (LO. 0 )

(1, 1, 1) (M , 1 )

Esta mquina de Turing primero buscar hacia la derecha el extremo dere cho de los nmeros que van a ser sumados. Entonces sumar pares de dgitos, desde la derecha hacia la izquierda, llevando la cuenta de los resultados que se obtengan y sumando a quienes corresponda. Por tanto, se obtiene (suponiendo que q\ es el estado inicial): 5 ( .o ) = | (!i 0 ' ' >' } ( e .a ,L ) , si <>*>' si o = (fe, b, tr)

www.FreeLibros.com

MQUINAS DE TRING

197

5 (92, (O, O, b)) = (q2, (0 , 0 , 0), L)


6 f e (O, l ,b)) = (q2, (O, 1, 1) ,L )

8 (93 , (O, O,b)) = (92, (O, O, i), L) 8 (93, (O, 8(93, ( 1 ,


1 ,b)) =

(q3, (O, 1 . G), L)

5 (92, ( 1, 0 , b)) = (92, ( 1, 0 , 1), L)

8 (93, ( 1 ,0 , &)) = (93 , ( 1 ,0 . 0). L)


1 ,b'))= (93 , ( 1 , i-

5 (92, ( 1 , 1, fe)) = (93, ( 1 , 1,0), L)


8 (92 , (fe, b, fe)) = ( 94, (b ,

,) cj i

fe, 0), S)

8 (92, (fe, fe,fe)) = (94, (fe, b I). 5 )

r S % Obsrvese que se necesita que esta mquina de Turing tenga de no moverse. La mquina de Turing transformar fe fe fe en fe fe fe fe fe 0 1 0 1 0 1 1 1 0 1 fe fe fe fe fe
la

posibilidad

1 0

0 1

1 0

fe

fe

Otra m o d ificacin sen cilla (y bastante com n) que puede realizar : nues tra defin icin de m quina de T u rin g es que se u se una cinta que se exiieinia in fi nitam ente en una nica direccin . G eneralm en te, se tiene una cinta que: se e x tiende infinitam ente h acia la derecha. N o est perm itido re aliz ar nin miento h acia la izquierda a partir de la ce ld a del extrem o izquie: luego, cu alquier m quina de T u rin g de esta form a, puede ser sim ula de las que responden a nuestra d efin icin o rig in al. P ara ca d a com put; dos, com o la celda que se encuentra en el lm ite izquierdo. U na m quina de T u rin g con una cinta fin ita en un sentido puedo sim ular n ovi-

o.
-

)esde r una

:i.; sim

plem ente m arcarem os una de las celd as de nuestra cinta in fin ita por ios dos la

dos p is tas. S e a M una m quina de T u rin g con una cinta infin ita en lo s dos sentidos. L a m quina de T u rin g M ', que tiene una cinta infin ita en un sentido, puedo .m ular a M si tiene una cinta con d os pistas. L a cinta su perior contiene la in ion nacin
una m quina de T u rin g con la cinta infin ita en lo s d i s e n t i d o s pero con correspondiente a la parte derecha de la cinta de M , a partir de un p feren cia dado. L a pista in ferio r contiene la parte izq u ierd a de la cinta orden in verso). Por tanto, si la cinta de M contena le re

de

vl (en

www.FreeLibros.com

198

TEORA DE AUTMATAS Y LENGUAJES FORMALES

\
Punto de referencia la cinta de M' podra ser como * * b a b a a b b b

Hemos usado un smbolo especial, *, para marcar el lmite izquierdo de la cinta. Cuando M tuviera que pasar el punto de referencia, M' tendra que encon trarse con la celda marcada con *. Si M est trabajando sobre las celdas que estn a la derecha del punto de referencia, M' est trabajando sobre la pista superior. Cuando M trabaja sobre las celdas que estn a la izquierda del punto de refer encia, M ' trabaja sobre la pista inferior. Cuando M pasa el punto de referencia, M' se encuentra con los *, cambia de direccin y cambia de pista sobre la que trabajar. Una modificacin de nuestra definicin, que es ms complicada, es la m quina de Turing multicinta. Esta mquina de Turing tiene varias cintas, cada una de las cuales tiene su propia cabeza de lectura/escritura. Las cabezas de lectu ra/escritura se controlan independientemente (es decir, al mismo tiempo, no tie nen que moverse en la misma direccin, ni realizar el mismo nmero de movi mientos, ni incluso, hacer nada a la vez). En un slo movimiento, esta mquina de Turing 1. Cambia de estado dependiendo del estado actual y del contenido de las celdas de todas las cintas, que estn analizando actualmente las cabezas de lectura/escritura. Escribe un nuevo smbolo en cada una de las celdas barridas por sus ca bezas de lectura/escritura. y7 Mueve cada una de sus cabezas hacia la izquierda o h\cia la derecha (de forma independiente al resto de las cabezas). '

2. 3.

Por tanto, la funcin de transicin para una mquina de Turing con n cintas, es de la forma 5: <2 x T " > x T " x [L, R }n donde una transicin de la forma

www.FreeLibros.com

MQUINAS DE TURING

199

8 (q, (ai, a 2, a ) ) = {p, (ti, t 2,

x), (XU X2, , X,,))

significa que cambia del estado q a p, reemplaza a,- por X en la cinta i y mueve la cabeza de la cinta i en la direccin X. Ejemplo 4.4.2 Las mquinas de Turing multicinta simplifican en gran medida alguna de las actividades que nos gustara hacer con mquinas de Turing. Consideremos el proceso de reconocimiento de {a"b'x\n> 1 }. ste es bastante laborioso en una mquina de Turing con una nica cinta. Es mucho ms fcil realizarlo con una mquina de Turing con dos cintas. Supongamos que, inicialmente, colocamos la cadena a analizar en la cinta 1 y que q\ es el estado inicial. Si la cabeza de lectu ra/escritura de la cinta 1 est situada inicialmente sobre el carcter del extremo izquierdo de la cadena, las cuatro transiciones siguientes son fundamentales para el reconocimiento (cualquier otra transicin sera para cadenas mal forma das y se puede suponer que llega a un estado que no es de aceptacin): (qu (a, b))'= (<?i, (a, a), (R, R)) S(q u (b,h)) = (q2, (,b, b), (S, L)) 8 (< ?2, (b, a)) = (< 72, (b, a), (/?, L)) 8 (92 , (fe, b)) = {q. (b. b),(R,L))
8

Aunque una mquina de Turing multicinta parece bastante distinta y posi blemente ms potente que nuestra mquina de Turing definida originalmente, las dos son equivalentes en el sentido de que cada una de ellas puede ser simulada por la otra. Sea M\ una mquina de Turing con k cintas. M\ puede ser simulada median te una mquina de Turing,M2, que tenga una nica cinta dividida en 2k + 1 pis tas. Cada una de las cintas de M\ corresponde a dos pistas de M 2. Una pista al macena el contenido de la cinta de M\ correspondiente, mientras que la otra se usa para guardar un marcador que afecta a la posicin de la cabeza correspon diente a esta cinta de M f^La ltima de todas las pistas de la cinta de M 2 se usa para guardar los marcadores de final. Los marcadores de final indican las posi ciones de los marcadores de la cabeza que estn ms a la izquierda y ms a la derecha. Cada movimiento de M\ es simulado por M 2, realizando un barrido con su cabeza de lectura/escritura, primero de izquierda a derecha y despus de dere cha a izquierda. La cabeza de M 2 comienza en la celda marcada cmo extremo izquierdo (por el marcador de final izquierdo). Para simular un movimiento de la mquina M\ de k cintas, M 2 hace un barrido hacia la derecha almacenando (por medio de estados), para cada una de las cabezas, los smbolos marcados como principio del anlisis. Si la cabeza de M 2 encuentra el marcador de final derecho,

www.FreeLibros.com

200

TEORIA DE AUTMATAS Y LENGUAJES FORMALES

quiere decir que la mquina de Turing ha recorrido todos los smbolos que todas las cabezas de M\ analizan y, por tanto, ya tiene bastante informacin como para determinar un movimiento. Despus realiza un barrido hacia la izquierda, actua lizando el contenido de la cinta y ajustando los marcadores de la cabeza como corresponda, hasta que encuentre el marcador de final izquierdo. Obsrvese que cuando M 2 realiza este barrido necesita tener la posibilidad de mover los marca dores a la izquierda o la derecha de sus posiciones actuales. De esto se deduce que el patrn de movimiento que realiza la cabeza de lectura/escritura durante el barrido consiste en dos desplazamientos a la izquierda seguidos de dos desplaza mientos a la derecha y, por ltimo, un desplazamiento hacia la izquierda. Final mente, M 2 pasa al estado correspondiente al estado siguiente de M \ . Otra modificacin que se puede hacer en nuestra mquina de Turing origi nal es permitir que la cinta tenga muchas dimensiones. Por ejemplo, una cinta de dos dimensiones que se extienda hacia abajo y hacia arriba, al igual que hacia la derecha y hacia la izquierda. Dependiendo del estado actual de la mquina de Turing y del smbolo analizado, cambia de estado, escribe un smbolo en la cel da actual y se mueve a la izquierda, a la derecha, hacia arriba o hacia abajo. Por tanto, la funcin de transicin para esta mquina de Turing ser de la forma
8:

Q x Y - ^ Q x T x [L, R, U, D]

Una mquina de Turing multidimensional simula, fcilmente, una mquina de Turing estndar. Simplemente realiza todas sus computaciones en una nica dimensin. Una mquina de Turing estndar tambin puede simular una mqui na de Turing multidimensional y, por tanto, la complejidad y flexibilidad adicio nal que se debe a la mltiple dimensin, no es una capacidad real. Para simular una mquina de Turing de dos dimensiones mediante una mquina de Turing es tndar, primero asociaremos una direccin a todas las celdas de la cinta. Una forma de hacerlo es fijar, de forma arbitraria, un lugar en la cinta a partir del cual se asignarn las coordenadas a las celdas de la misma forma que se realiza en el plano de coordenadas. Por ejemplo,

-1,1 -1,0
0 ,0 0 ,-1

1,1 1,0 2 ,0

www.FreeLibros.com

MQUINAS DE TURING

201

Entonces, usaremos una cinta de dos pistas para simular la mquina de Tu ring. Una pista se encargar de almacenar el contenido de las celdas y la otra las coordenadas. Segn esto, si la celda (1,2) contiene una a y la celda (-3, 12) con tiene una b, la cinta de la mquina de Turing que realiza la simulacin ser como a
1

b *
2

Obsrvese que se ha introducido un nuevo smbolo para separar los valores de las coordenadas. Para simular un movimiento de una mquina de Turing de dos dimensiones, esta mquina calcula la direccin de la celda a la que se move ra la mquina de Turing de dos dimensiones. Entonces, localiza en la pista infe rior la celda con dicha direccin y cambia el contenido de la celda en la pista su perior. Finalmente, una modificacin importante que se puede introducir en nuestra definicin original es la eliminacin del requerimiento de que la regla de transi cin sea una funcin. Esta mquina de Turing se llamar mquina de Turing no determinista, ya que para un estado actual y el smbolo actual de la cinta, puede haber un nmero finito de movimientos a elegir. Por tanto, la regla de transicin, A, de dicha mquina, satisface A (q, a) c Q x T x {L, R} Por ejemplo, si la mquina de Turing tiene una transicin A (qi, a) = {(q\,b , R), (<?2 , a, L)} entonces los movimientos {q\, abbab) t- (q\, abbbb) y (q\, abbab) l- (qz, abbab)

son posibles. Ya que cualquier mquina de Turing determinista es tambin no determinis ta, es lgico'qe una mquina de Turing determinista se puede simular mediante una no determinista. Tambin una mquina de Turing determinista puede simu lar una no determinista. Por tanto, no se gana ninguna potencia adicional a causa del no determinismo. Para ver como se realizara la simulacin, sea M\ una mquina de Turing no determinista que acepta algn lenguaje. Describiremos una mquina de Turing (determinista) Mi, que ser de tres cintas, que simule M\. Tngase en cuenta que, para cualesquiera estado actual y smbolo de la cinta de Mi, hay un nmero

www.FreeLibros.com

202

TEORA DE AUTMATAS Y LENGUAJES FORMALES

finito de movimientos para realizar a continuacin. Numeraremos dichos movi mientos 1,2, Puesto que tanto Qi como Ti de Mi son conjuntos finitos, slo existir un niimero finito de pares de estado actual y smbolo de la cinta. Por tanto, se puede obtener el par que tenga el mayor niimero de posibles movi mientos a realizar a continuacin. Sea este nmero n. Entonces cualquier com putacin para M i se puede representar mediante una secuencia finita de nmeros elegidos entre 1 y n, donde cada nmero representar el movimiento elegido para ser realizado a continuacin en esta etapa de la computacin. No toda se cuencia finita de nmeros entre 1 y n representan computaciones vlidas puesto que puede que haya menos de n elecciones para algn par estado-smbolo de la cinta. En la mquina de Turing de tres cintas, M 2, la primera cinta almacenar la entrada y la segunda generar, de fornia sistemtica, secuencias finitas de nme ros entre 1 y n. Para cada secuencia, M 2 copiar la cadena de entrada en la terce ra cinta y simular M\ sobre esta cinta usando la secuencia almacenada en la se gunda cinta como gua para realizar la computacin. Si una de las secuencias elegidas hace que M\ acepte la cadena, entonces dicha secuencia ser generada por A2 y la cadena ser aceptada. Si ninguna de las secuencias elegidas provoca la aceptacin por parte de M\, entonces tampoco M 2 la aceptar. Obsrvese que este razonamiento se redacta en trminos de la aceptacin de lenguajes. Las mquinas de Turing no deterministas se interpretan como acepta dores de lenguaje. Adems se puede generalizar este razonamiento fcilmente, para simular una mquina de Turing multicinta no determinista. En esta seccin hemos descrito varias modificaciones a realizar sobre nues tra mquina de Turing original, ninguna de las cuales tiene mayor o menor po tencia que la original. Entonces, cabe preguntarse por qu nos hemos molestado en estudiarlas si ninguna de ellas aporta ninguna ganancia en cuanto a capacidad computacional, o por qu no nos hemos centrado en la ms sencilla de todas ellas. Una de las razones es que, a p a rtir de ahora, conocemos formas distintas de resolver problemas m e d i a n a s mquinas de Turing. Si una de ellas resol viera un problema, de forma ms fcil que la original entonces, sin temor a per der generalidad, usaremos dicha variante. Otra razn an ms profunda para el estudio de dichas modificaciones y sus equivalencias con el original, es que con esto se comprende an ms la actuali dad de las mquinas de Turing. Cualquier computacin que se pueda realizar por medio de una de las nuevas mquinas cae dentro de la categora de computable por una mquina de Turing y, por tanto, es mecnicamente computable. Esto apenas ha sido un recorrido exhaustivo por las modificaciones que se pueden realizar a las mquinas de Turing. Ms adelante nos extenderemos sobre otras variaciones de la definicin original tratada en este captulo.

www.FreeLibros.com

MQUINAS DE TURING

203

Ejercicios de la Seccin 4.4


4.4.1. Eliminar dl Ejemplo 4.4.1 la restriccin de que el ms corto de los dos nme ros binarios deba ser rellenado con ceros. /4.4.2. Construir una mquina de Turing de tres pistas que reste el nmero binario de la segunda pista del nmero binario de la primera y deje el resultado en la tercera pista. Hacer otra, suponiendo que la mquina de Turing es de dos pistas y que el resultado se deja sobre la segunda. Hacerlo, tambin, para que el resultado quede en la primera. 4.4.3. Construir una mquina de Turing de tres pistas que determine si el nmero bina rio que est en la primera pista es menor que el de la segunda. Si es menor, es cribir el carcter 5 sobre la tercera pista y si no lo es, escribir los caracteres GE sobre la tercera pista. Cmo se podra incluir una forma de comprobar la igual dad? 4.4.4. Una mquina de Turing puede comprobar si un nmero binario mayor que 2, es primo. Para ello se escribir dicho nmero en la pista 1. La mquina de Turing escribir el nmero 2 en binario en la segunda pista y copiar la primera pista en la tercera. Entonces restar la segunda pista de la tercera tantas veces como sea posible (dejando el resultado en la tercera). En realidad, este proceso lo que hace es dividir el nmero de la pista uno entre el de la pista dos y deja el resto en la tercera. Si el resto es 0, entonces el nmero no es primo. Si no es 0, enton ces el nmero de la pista dos se incrementa. Si el nmero de la primera pista es igual al de la segunda, entonces el nmero es primo por qu? Si el nmero de la pista 2 , es menor que el de la 1 , se repite el proceso anterior para el nuevo n mero de la pista 2. Construir una mquina de Turing que realice este proceso de comprobacin. 4.4.5. Las mltiples pistas sirven para realizar el reconocimiento de las frases de un lenguaje de forma no destructiva. La cadena en cuestin se sita sobre la prime ra pista y se usa una pista adicional para realizar el anlisis de los smbolos (como contrapartida a la eliminacin o sobreescritura de los mismos). Esto se realiza situando marcadores en la segunda pista sobre o bajo los smbolos de la primera pista que han sido ya considerados. Construir una mquina de Turing que reconozca el lenguaje {wcw\w e {a,b}}. 4.4.6. Sea M una mquina de Turing con cinta infinita en los dos sentidos cuyas tran siciones son 5 {q, o) < ? i 42 <3- a (?i> c, R) (< ?2, a, L) o -b (< qub , R) (< 72, d,L) a =b (< ?2, b,L) (< ?3, b, S)

www.FreeLibros.com

204

TEORA DE AUTMATAS Y LENGUAJES FORMALES

Supongamos que q\ es el estado inicial de M. Construir una mquina de Turing con cinta infinita en un sentido que simule las acciones de M para una cadena de entrada situada en cualquier posicin de la cinta de M. 4.4.7. Disear una mquina de Turing con cinta infinita en un sentido que, cuando co mience con la configuracin (qu wb), aceptar L = { w e {a, b)*\w contiene al menos una a} (Nota: Tngase en cuenta que, para que una cadena sea aceptada, la mqui na de Turing tiene que parar en un estado de aceptacin). 4.4.8. Describir la ejecucin de la mquina de Turing de dos cintas del Ejemplo 4.4.2 sobre la cadena a2b2. 4.4.9. Construir una mquina de Turing de dos cintas que reconozca el lenguaje L ~ {mv; | w e {a, fr}+}. Supngase que, inicialmente, las cadenas a analizar estn situadas en la cinta 1 . 4.4.10. Supngase que M es una mquina de Turing de dos cintas con un alfabeto de cinta F {2, >}. Definir cada una de las partes de una mquina de Turing de cinco pistas M' que simule el movimiento 8 (q\, (a, b)) = (qi, (b, a), (R, L)) de M. 4.4.11. Supngase que se define una mquina de Turing multicabeza, como una que tiene una nica cinta pero varias cabezas de lectura/escritura sobre la cinta. Cada movimiento depende tanto del estado actual como de todos los smbolos reconocidos por las cabezas. En cada movimiento, si ms de una cabeza est so bre la misma celda, se decide segn lo convenido previamente. (a) Construir una maquina de copia con dos cabezas que, en la cinta, trans forme bwb en bwbwb. (b) Obtener, de forma similar a como se simul una mquina de Turing con k cintas mediante una mquina de Turing con una cinta, una simulacin de una mquina de Turing multicabeza mediante una mquina de Turing con una sola cinta de dos sentidos. 4.4.12. Cmo se puede simular una mquina de Turing que responda a nuestra definicin, mediante una mquina de Turing multicinta? Cmo puede una mquina de Turing multicabeza, simular una mquina de Turing que cumpla la definicin original? 4.4.13. Construir una mquina de Turing con una cinta de dos dimensiones que dibu je una tabla 2 x 3 y que empiece por la celda de la esquina inferior izquierda. 4.4.14. Construir una mquina de Turing, segn nuestra descripcin original, que gene re todas las secuencias de los nmeros 1, 2 y 3 sobre su cinta, de forma que las secuencias menores aparezcan primero y las que tengan la misma longitud apa rezcan en orden lexicogrfico. Cmo se podra generalizar para las secuencias de los nmeros 1 , 2 ,..., n?

www.FreeLibros.com

MQUINAS DE TURING

205

4.4.15. Construir una mquina de Turing no determinista que acepte el lenguaje L {mv|we {a, b}+}. 4.4.16. Construir una mquina de Turing no determinista que acepte L= {xww'y\x,y, w e [a, b}+ y | x | > | y | } Cmo se podra resolver este problema de forma determinista? 4.4.17. Explicar con cuidado por qu la sentencia Si ninguna de las secuencias elegi das nos lleva a una aceptacin por parte de M\, entonces M 2 tampoco aceptar es verdad con respecto a la descripcin de la simulacin de una mquina de Tu ring no determinista mediante una mquina de Turing (determinista).

MQUINAS DE TURING UNIVERSALES


La mquina de Turing universal es una mquina de Turing que, a partir de una descripcin adecuada de una mquina de Turing M y una cadena de entrada w, simula el comportamiento de M sobre la cadena w. En esta seccin describire mos dicha mquina de Turing. Necesitaremos este desarrollo posteriormente, cuando estudiemos la jerarqua de lenguajes y la resolubilidad, pero tambin nos servir para fortalecer la conexin casi intuitiva, entre las mquinas de Turing y las computadoras digitales modernas. Lo primero que debemos hacer es encontrar la manera de describir una m quina de Turing arbitraria M = ( Q , Z, T, s, b, F, 8 ) ya que su descripcin sirve de introduccin a la mquina de Turing universal. Esto requiere que la descripcin sea codificada a partir de un alfabeto finito. Estableciendo unas sencillas con venciones, una codificacin de ese tipo es algo realmente sencillo. Para empezar, se requiere que M tenga un nico estado de aceptacin. La transformacin de una mquina de Turing arbitraria en una que tenga un nico estado final es un proceso bastante sencillo. Simplemente se aaden las transi ciones y los estados necesarios para que la mquina de Turing pueda pasar de cada estado de aceptacin q al nuevo estado de aceptacin p que ser nico, y la cabeza de lectura/escritura se dejar en la posicin en la que estaba cuando se haba llegado a q. Entonces se supone que Q = {q \ , q2, , qn), donde q\ es el estado inicia] y q 2 es el nico estado final de M. Es ms, suponemos T = {ai, o2 , donde O es el blanco. Partiendo de estas suposiciones, M estar completamente deter minado por medio de su furtcin de transicin. Luego, para codificar M, slo hay que codificar 8 . Para ello, representamos q\ por \,*q2 por 11 y as sucesivamente. De forma similar, representamos a,- por una cadena de i unos. Finalmente, r e p r e sentamos las directivas para la cabeza de lectura/escritura de forma que L se r 1

www.FreeLibros.com

206

TEORA DE AUTMATAS Y LENGUAJES FORMALES

y R ser 11. Si usamos los ceros como separadores, podemos codificar una tran sicin tal como 5(43, Ci) = (<74, a 3, L) mediante la cadena 011101011110111010. De ello se sigue que M tiene una co dificacin representada por una cadena finita de ceros y unos. Es ms, dada una codificacin, podemos decodificarla correctamente. Una mquina de Turing universal M se puede implementar como una m quina de Turing de tres cintas cuyo alfabeto de entrada contenga ceros y unos. La primera cinta contiene la codificacin de M con su cabeza situada sobre el cero inicial de la cadena de ceros y unos. La segunda cinta contiene la codifica cin del contenido de la cinta de M con su cabeza situada sobre el uno que perte nece a la codificacin del smbolo actual. La tercera cinta se usa para guardar el estado actual de M. Inicialmente, esta ltima cinta contiene la versin codificada del estado inicial de M (estado q\, al que le corresponde un uno ) rodeado por blancos. La cabeza de lectura/escritura se sita sobre el primer uno de la cadena codificada. M analiza y compara el contenido de las cintas segunda y tercera con el de la primera cinta, hasta que encuentra una transicin para la configuracin codifi cada o hasta que agota todas las posibilidades. Si no se encuentra una transicin correspondiente a la configuracin, M u para, como debera hacerlo M. En otro caso, M u se comporta como lo hara M. Si M con la cadena w, para, entonces M parar cuando tenga en sus cintas la codificacin de M y la codificacin de w. Es ms, la cadena final que quede en la cinta de M u ser la codificacin de la cadena que hubiera quedado en M. Cuando M para, M, puede decir si est en el nico estado de aceptacin y, segn esto, moverse a uno de sus estados de aceptacin o no.

Ejercicios de la Seccin 4.5


4.5.1. Sea M dado por
Q = {<?i- < 72, < 73, # 4 , < 75, <76, q i , q%)

Z = {a,b}, T={a, b, h),


s = q {<76,47}

con 8 definida como sigue:

www.FreeLibros.com

MQUINAS DE TURING

207

8 (9 1, fe) = (q\ , fe, R ) 8 f e , a ) = f e , fe, /?) 8 f e , fe) = f e , fe, #) 8 (92,) = (92, a, 8 (92, fe) = (92, fe, /?) 8 (92, fe) = f e , fe, ) 8 f e , fe) = (97, fe, R)

5 f e , fe) = f e , b , L)
8 f e , ) = 8 f e , fe) = (98, fe, L) 8 f e , a) = (94, a, ) 8 f e , fe) = f e , fe, L) 8 (94, fe) = (95, fe, /?) 8 (95, a) = (91, a, L) 8 f e , fe) = f e , fe, /?)

8 (98, a) = 8 (98, fe) = 8 (98, fe) = f e , fe, ) Convertir M en una mquina de Turing con un nico estado.

4 .5 .2. Obtener una codificacin completa de la mquina de Turing dada por


8 (91, C7t) = f e , Ci, R) 8 (91, o 2) = f e , o i t L) 8 (93, O) = (92, o 2, L)

4 .5 .3 . Obtener un algoritmo que determine si una cadena w e { 0 , 1 }+ es una mquina


de Turing codificada.

4 .5.4 . Hacer un bosquejo de un procedimiento que enumere las codificaciones de todas las mquinas de Turing. Indicacin: En el Ejercicio 4 . 1.4 . se poda enumerar, en or den, todos los nmeros enteros binarios. Combinar esto con el Ejercicio 4 .5.3. El Ejercicio 4 .5 .4 . tiene una consecuencia importante que ser la siguiente: 4 .5 .5. Demostrar que el conjunto de las mquinas de Turing es numerable.

PROBLEMAS

En este captulo hemos visto que nos es posible aumentar la capacidad de computacin de una mquina de Turing estndar, por mucho que se complique la estructura de la cinta. Se puede probar que es posible limitar su potencia si se restringe la manera en la que se usa la cinta. Una restriccin posible es limitar el nmero de celdas de la cinta que pueden ser usadas por la mquina de Turing, basndose en la longitud de la cadena de entrada. Por tanto, podra haber ms espacio disponible para las computaciones de cadenas largas que para las cortas. Definiremos una autmata linealmente acotado (ALA) como una mquina de Turing no determinista M = (Q, , F, s, fe, F, A), en la cual el alfabeto de cinta con tenga dos smbolos especiales < y >.M comienza con la configuracin f e , < w >) (donde 91 es el estado inicial de M). No se permite que M reemplace los smbolos < o >, ni que mueva su cabeza a la izquierda de < o a la derecha de >. Obsrvese qu un autmata linealmente acotado tiene que realizar su computacin en las nicas celdas de la cinta que estaban originalmente ocupadas por la cadena de entrada. Por ejemplo, consideremos el ALA definido por

www.FreeLibros.com

208

TEORA DE AUTMATAS Y LENGUAJES FORMALES

Q = {quqi] 2 ={a,Z>} T = {a, b, <, >} s = qi F = {q2) y A dado por A (^i, <) = (<7i, <, R) A(q\,a) = (qu b,R) &{q\,b) = (qu a, R) A(q\,>) = (q2, >,S) Este ALA complementa sus cadenas de entrada convirtiendo las aes en bes y viceversa. Obsrvese que, aunque puede reconocer y trabajar sobre los smbo los < y >, no puede reemplazarlos o moverse ms all de ellos. Supongamos que un ALA comienza siempre con su cabeza situada sobre el smbolo <. 4.1. Obtener un ALA que acepte el lenguaje {a"b"c" | n> 1}. 4.2. Obtener un ALA que determine si sus cadenas de entrada tienen longitud impar. Suponer que las cadenas de entrada pertenecen a {a, b}*. 4.3. Obtener un ALA que determine si sus cadenas de entrada, tomadas de [a, b}* son un palndromo. Un autmata linealmente acotado puede tener cintas con mltiples pistas. En el caso de las pistas mltiples, las celdas disponibles para la computacin si guen restringidas a las que originalmente ocup la cadena de entrada. Por ejem plo, si ti- = aban es la cadena de entrada para un ALA con dos pistas, la cinta podra ser como < < a b a a > >

(donde se supone que las celdas en blanco contienen > ). 4.4. Construir un ALA con dos pistas que acepte el lenguaje
>

0}

donde ni es la funcin factorial. (Indicacin: Dividir la cadena repetidamente entre 2, 3, 4, ... situando el divisor en la segunda pista. Cundo y cmo se po dr determinar si hay n\ aes en la primera pista?) , 4.5. Sea k > 0 un entero fijado. Construir un ALA que, cuando se le den dos enteros n y m (como a'1 y a"'), determine si n - m es divisible por k.

www.FreeLibros.com

5
Mquinas de Turing y lenguajes

5.1

LENGUAJES ACEPTADOS POR MQUINAS DE TURING


En el Captulo 4 hemos introducido las mquinas de Turing y estudiado algunas de sus propiedades. En particular, el desarrollo de una mquina de Turing uni versal sugiere que una mquina de Turing puede ser concebida de forma anloga a un programa de una computadora y, por tanto, las mquinas de Turing podran modelar los mecanismos de computacin. Estableceremos esta conexin a lo lar go del Captulo 6 , donde estudiaremos los lmites de un mecanismo de computa cin mediante el estudio de la resolubilidad. En este captulo, estudiaremos las clases de lenguajes que son aceptados por mquinas de Turing. Al realizarlo, lle garemos a un problema general en todas las mquinas de Turing. Este problema se llama problema de parada. El problema de parada ser la clave para tratar la resolubilidad. Terminaremos con un teorema (el teorema de la jerarqua) que re lacionar todos los tipos de lenguajes estudiados. Recordaremos que una cadena vv sobre algn alfabeto es aceptada por una mquina de Turing M, cuando una computacin que empez con vv en la cinta de M y con M en su estado inicial, termina con M en un estado final. Por otro lado, vv puede ser rechazada de dos formas, ya sea porque M para en algn estado que no es de aceptacin o porque M nunca para. Los dos mtodos de rechazo de ca denas no son equivalentes. Por tanto, hemos dfinido los lenguajes recursivamente enumerables como los lenguajes que son aceptados por una mquina de Turing (de alguna forma) y los lenguajes recursivos como los lenguajes acepta

www.FreeLibros.com

210

TEORA DE AUTMATAS Y LENGUAJES FORMALES

dos por alguna mquina de Turing que siempre para sobre alguna entrada. For malmente, daremos la siguiente definicin: Definicin 5.1.1. Un lenguaje L sobre un alfabeto E se dice que es recursivamente enu merable si es aceptado por alguna mquina de Turing. Es decir, L es recursiva mente enumerable si para alguna mquina de Turing M tenemos que L = { w e E* | qw h upv para p e F y u, v e T*} (donde q es el estado inicial de M y F es el conjunto de estados finales de M). Un lenguaje L es recursivo si L es recursivamente enumerable y hay alguna mquina de Turing que para sobre todas las entradas que acepta L. De esta definicin se deduce que todo lenguaje que es recursivo, tambin es recursivamente enumerable. En la Seccin 5.4 veremos que hay lenguajes que son recursivamente enumerables, que no son recursivos.

Ejercicios de la Seccin 5.1


5.1.1. Probar que L es recursivo si y slo si la funcin caracterstica de L, % /., es una funcin Turing computable (vase Ejercicio 4.2.11). (Por esta razn, si L es un lenguaje recursivo y T es una mquina de Turing que acepta L y para sobre to das las entradas, entonces se dice que T decide L, puesto que para toda cadena w, T decide si w est en L o no.) 5.1.2. Supongamos que M es una mquina de Turing que para sobre todas las entradas y que acepta el lenguaje L. Transformar M en M', donde L - L (M') y M' recha za las cadenas porque no para.

5.2

LENGUAJES REGULARES, INDEPENDIENTES DEL CONTEXTO, RECURSIVOS Y RECURSIVAMENTE ENUMERABLES


Sea M = (<2, E, s, F, 8 ) un autmata finito determinista. Se puede construir una mquina de Turing M ' - ( Q ', E', T, / , b, F', 8 ') para la cual L (M) = L (M ') por medio de: Q' - Q u {q'}, E' = E r = E u {&} F, = m donde q' es un nuevo estado que no est en Q

www.FreeLibros.com

MQUINAS DE TURING Y LENGUAJES

211

8' 8'

(q, o) = (8 (q, a), a , R), (< 7 , b) = (q\ b, S),

para q e Q y

e If

para todo q e F, donde S es la directiva de cinta no moverse

La mquina de Turing resultante analiza sus cadenas de entrada de izquier da a derecha. Con cada smbolo de entrada cambia su estado para reflejar el co rrespondiente cambio de estado en el autmata finito. Cuando se encuentra un b en el extremo derecho de la cadena de entrada, pasa a un estado de aceptacin slo si el autmata finito aceptara la cadena. Obsrvese que, ya que nunca puede haber en M pares de la forma (q, b), de finiendo 8 ' igual a 8 en lo que sea posible y 8 ' (q , b) = ( q \ b, S ) para el estado q e F, 8 ' se convierte en una funcin de trarsicin bien definida. Puesto que todo lenguaje regular puede ser aceptado por un autmata finito determinista, tendremos el siguiente teorema: T eorem a 5.2.1. Si L es un lenguaje regular, entonces L es tambin un lenguaje recursivo.

Por el Ejemplo 4.2.2 sabemos que hay una mquina de Turing que para sobre todas las entradas y que acepta {a"b"\n > 1 }. Por el Ejemplo 2.9.1 sabemos que este lenguaje no es regular. Por tanto, hay lenguajes recursivos que no son regulares. Sea M un autmata de pila no determinista. Podemos construir una mquina de Turing que emule el comportamiento de M en lo que se refiere a a la acepta cin o rechazo de cadenas. Para esto debemos tener en cuenta los cambios de es tado de M y los cambios que se producen en la pila de M cuando est recono ciendo una cadena. Para simplificar, usaremos una mquina de Turing con dos cintas. La cinta 1 almacenar la cadena de entrada y la cinta 2 almacenar el contenido de la pila de M. Un apilamiento corresponde a un movimiento hacia la derecha seguido por una actualizacin de la cinta 2. Por tanto, la cabeza de lec tura/escritura de la cinta 2 siempre analizar el smbolo de la cima de la pila. Los cambios de estado de la mquina de Turing reflejan los cambios de estado de M. Consideremos un ADPND M dado por Q = {q\,qi, < 73}, 1 = {a, b}, r= b, }, s =q\

F ~ {< 7 3 }
(q,a, z) = {{q\,az)} A (qi, b, a)= {(q2, )} A (< 72 , , z) = {(< 73 , )}

A(<?i,, z)={(<?3, )},


A{q\, a, a ) =
{(<?!, c a ) } ,

A (q2, b, a) = {(<72 , )},

www.FreeLibros.com

212

TEORIA DE AUTMATAS Y LENGUAJES FORMALES

Este ADPND acepta el lenguaje independiente del contexto {a"bn\n >0}. La mquina de Turing que construiremos empezar en el estado q . La cabe za de lectura/escritura de la cinta 1 comienza sobre el smbolo del extremo iz quierdo de la cadena de entrada y la cinta 2 est vaca (es decir, todos los smbo los son blancos). Primero, marcaremos el fondo de la pila en la cinta 2. Por tanto, tendremos las transiciones 5 (q\ (a, b)) = (<?i, (a , z), (S , 5))
8

(q\ (b, b)) = (qu (b,z), (5, S))

(La directiva 5 de la cinta indica, de nuevo, que la correspondiente cabeza de la cinta no se mueve). Los dos casos en los cuales este ADPND realiza un apilamiento se ejecuten primero mediente un movimiento hacia la derecha de la cabeza de la cinta de la pila (cinta 2 ) y escribiendo un nuevo carcter sobre ella. En este momento, el carcter de entrada es consumido mediante el movimiento de la cabeza de la cinta 1 hacia la derecha. Por tanto, tendremos las transiciones b ( q \,( a ,z ) ) = (pi, (a, z), (S , R ))

8 (qu (a , a)) = (p \, (a, a), (S , R))


8

(/?i, (a, b)) = (q i, (a, a), (R , 5))

las cuales apilan aes sobre la pila. Adems p\ es un nuevo estado. Cuando se de sapila el ADPND, en la cinta 2 la cabeza realiza un movimiento hacia abajo, es decir, hacia la izquierda. Por tanto, tenemos las transiciones
8 8

(qi, (b , a )) = (< 72 , ( b , a), (R, L)) (q2, (b , a)) = (q2, ( b , a), (R, L))

Finalmente, la cadena se acepta cuando ha sido totalmente consumida y se ha vaciado la pila. La transicin del ADPND A (< 72 , , z) = {(< 73 , )} corres ponde al movimiento
8

(<?2 , (b, z)) = (< 73 , (b , z ), (5, L))


t

de la mquina de Turing. Dado que los lenguajes independientes del contexto son los que acepta un autmata de pila no determinista, tendremos el siguiente teorema: T eorem a 5.2.2. Si L es un lenguaje independiente del contexto, entonces L es un len guaje recursivo. Si realizamos la interseccin de dos lenguajes recursivos, obtenemos un len guaje recursivo. Para probarlo, supongamos que M\ y Mi son dos mquinas de

www.FreeLibros.com

MQUINAS DE TURING Y LENGUAJES

2 1 '

Turing que paran sobre toda cadena. Entonces, si w e L (M), sabemos que M parar en un estado de aceptacin y, si w < L (M), M parar en un estado qi no es de aceptacin para cada i - 1,2. Sea M una mquina de Turing que tier dos cintas. La cadena de entrada w estar en la cinta 1 y se har una copia de c en la cinta 2. La mquina M emular a M\ mediante la cinta 1 hasta que M\ pa: . Si Mi para en un estado que no es de aceptacin, entonces M tambin para en u r > estado que no es de aceptacin. Por otro lado, si M\ aceptara w, entonces emulara a M 2 mediante la cinta 2 (con la copia de vv). Si M 2 parara en un estado que no es de aceptacin, entonces M tambin para en un estado que no es < ' aceptacin. Sin embargo, si M 2 aceptara w, entonces M acepta vv. Por tamo w e L (.M) si y slo si w e L (Mi) y w e L (M2), con lo que obtenemos que L (M) = L (Mi) n L (M2). Finalmente, obsrvese que para toda entrada, M pa; .'. ya que M\ y M 2 tambin lo hacen. Por tanto, L (M) es un lenguaje recursi\ . Veamos el siguiente teorema: T eorem a 5.2.3. Si L\ y L 2 son lenguajes recursivos, entonces L\ n L 2 tambin lo es.

Por el Captulo 3 sabemos que L = {ab'cl \ i> 0 } es la interseccin de d< lenguajes independientes del contexto, pero que l mismo no es independien!: del contexto. Por medio de los Teoremas 5.2.2 y 5.2.3 se obtiene que L es iva lenguaje recursivo. Por tanto, el inverso del Teorema 5.2.2 no se cumple. Es de cir, hay lenguajes recursivos que no son independientes del contexto.

Ejercicios de la Seccin 5.2


5.2.1. Si L es regular, L es recursivamente enumerable? Por qu? 5.2.2. El autmata finito determinista M acepta las cadenas de longitud par sob e

X= {a, b}. Construir una mquina de Turing, a partir de este autmata, c' acepte L (M). M=(Q, Z, 5, F, 5) donde
Q={q\,qt)

z = {a ,b }
s = qi

F ={<?,}
*

8 (qi,) = 5(qi,b) = q2
8

(q2, a) = 8 (q2, b) = qy *

5.2.3. Usar la tcnica vista en esta seccin para construir una mquina de Turing tv

acepte el lenguaje aceptado por el siguiente autmata finito determinista:

www.FreeLibros.com

214

TEORA DE AUTMATAS Y LENGUAJES FORMALES

5.2.4. Usar la tcnica de construccin de esta seccin para construir una mquina de

Turing que acepte las mismas cadenas que el ADPND dado por

0={<7l, qi)
Z= {a,b} r = { a , b ,z } y A dado por A (qu , z) = {(q2,z)} A(q\,a, z) = {(tfi.az)} A ( q u b,z) = {(qubz )} A (< 7 i, b, b) = {(qubb)}
5.2.5. (a) Cmo se podra tratar la transicin

s =qi F={qz}

A(qi,a, a) = {(qu cta)) A(<?i, b, ) = {(<?i,)} A (9 1 , a, b)= {(4 i,)}

A (q , a, b) = {(p ,

)}

a la hora de constaiir una mquina de Turing que corresponda a un ADPND? (b) Como podra tratarse una transicin de la forma A (q, a, b)={{q\,b), (q2, a)} al construir una mquina de Turing que corresponda a un ADPND? Obsr vese que, puesto que los ADPND tienen muhas posibilidades de ser no de terministas, se nos puede plantear un problema de estas caractersticas. {Indicacin: Qu sabemos acerca de las mquinas de Turing no determi nistas?) (c) Usar las respuestas a los apartados (a) y (b), adems de la tcnica de cons truccin de mquinas de Turing para ADPND, con el objeto de construir una mquina de Turing que acepte el lenguaje aceptado por el ADPND si guiente:

www.FreeLibros.com

MQUINAS DE TURING Y LENGUAJES

215

Q~ 2

<?3> <?4, <?5, <76 }

.V= < 71

= {a, 6 } T {a,b,z)

F={%}

y A dado por:

A fai.e, z)= {(<?6. )} a, z) = { (<?2. babz)} A (<?2, a, b) = {(<?2, > < t> ), (c/3, babb) } &(qi,b, b) = {(< 74, 8 )}
A (</i,

A (<74, a , a ) = {(<75 , e)} A (95.

b) = {(93, e))

A (<75 . e, z ) = {(<76. )}

{Ntese que el lenguaje aceptado por este autmata es {a" (bab)n\ n > 0}.] 5.2.6. Definir formalmente la tcnica de construccin del Ejercicio 5.2.5, que constru ye una mquina de Turing M' que acepta el mismo lenguaje que un ADPND M = 2 , Z , T , s,F,z, A ). 5.2.7. En la construccin de una mquina de Turing a partir de un ADPND, se asegura que la mquina de Turing construida para con todas las cadenas, por tanto es posible afirmar que los lenguajes independientes del contexto son recursivos (en vez de slo recursivamente enumerable)? 5.2.8. Probar que la unin de dos lenguajes recursivos es un lenguaje recursivo. La unin de dos lenguajes recursivamente enumerables arbitrarios es tambin un lenguaje recursivamente enumerable? 5.2.9. Probar que la interseccin de lenguajes recursivamente enumerables es un len guaje recursivamente enumerable. 5.2.10. Probar que el siguiente lenguaje L sobre el alfabeto Z= {a, b) es un lenguaje recursivo. (Indicacin: Encontrar un lenguaje independiente del contexto apro piado para realizar la interseccin). L - {w | h' contiene el mismo nmero de aes que de bes y no contiene ninguna subcadena aab)

LENGUAJES RECURSIVOS Y RECURSIVAMENTE ENUMERABLES


Supongamos que L es un lenguaje recursivo sobre el alfabeto E. Entonces, hay una mquina de Turing M = (Q , , F, s, b, F, 8 ) que para sobre toda entrada y acepta L. Considrese la mquina de Turing M' = (Q, I , T, s,b, Q - F, 8 ). Ob srvese que cualquier cadena de L hace que M' pare en algn estado de F y, por tanto, M' rechaza todas las cadenas de L. Por otro lado, si w g L, M parar en al gn estado que no es de F. cuando w est en su cinta al principio de la computa-

www.FreeLibros.com

216

TEORA DE AUTMATAS Y LENGUAJES FORMALES

cin. Es decir, M para en algn estado de Q - F. Pero entonces, M' tambin pa rar y, por tanto, si w g L, entonces w e L (M ') As, L (M ') = Z s - L. Es ms, ya que M para sobre todas las cadenas, entonces M' tambin lo hace. Finalmente, tendremos el siguiente lema: Lem a 5.3.1. Si L es un lenguaje recursivo, entonces Z* - L es un lenguaje recursivo.

sta es una propiedad de los lenguajes recursivos que, en general, no se cumple para los lenguajes recursivamente enumerables. Para verlo, supongamos que Z es un alfabeto. Ya que Z* es numerable, podemos enumerarlo como Z* = {vvi, W2, W 3 , ...}. En la seccin de las mquinas de Turing universales indi camos que todas las mquinas de Turing sobre I podan ser enumeradas (por medio de las cadenas de smbolos generadas para representar las mquinas de Turing codificadas). Por tanto, podremos listar todas las mquinas de Turing so bre Z como M i, M 2, Sea L = {w | w es aceptado por M) Este lenguaje es recursivamente enumerable, pero su complemento no. Primero, veremos que L es recursivamente enumerable, obteniendo una m quina de Turing M que acepte L. M ser una composicin de varias mquinas de Turing. Si se tiene una cadena w sobre Z, obsrvese que w = w,- para algn i. M primero generar w\, w2, ... hasta que encuentre un i para el cual w = w. Enton ces M generar la (codificada) -sima mquina de Turing M, codificar w, y pasar de la codificacin de M y w a la mquina de Turing universal U que emule M sobre w. Si M para y acepta w, entonces U para en un estado de acep tacin y, por tanto, M para y acepta w. Por otro lado, M puede que pare sin aceptar w o puede que no pare. En am bos casos, M no para y no acepta w. As, w e L (M ) si y slo si w e L (M). Segundo, observemos que 2T L no es recursivamente enumerable. Para ello, supongamos que J7 L es recursivamente enumerable. Entonces debe ser aceptado por una mquina de Turing, que llamaremos Consideremos. w. Si wj e L ( M j ) , tendremos que Wj e L = Z* - L ( ) y, por tanto, w g L (A/y). A la inversa, si wj L ( Mj ) , entonces wj L y, por tanto, se tiene que wj e Z* - L = = L (Mj). En ambos casos se llega a una contradiccin, luego el lenguaje Z* - L no es aceptado por ninguna mquina de Turing. Veamos el siguiente teorema: T eorem a 5.3.2. Hay un lenguaje recursivamente enumerable L para el cual Z * - L no es recursivamente enumerable. Obsrvese que el lenguaje L descrito aqu no puede ser recursivo porque, si lo fuera, su complemento tambin lo sera y, por tanto, L sera recursivamente

www.FreeLibros.com

MQUINAS DE TURING Y LENGUAJES

217

enumerable. Luego tendremos un lenguaje recursivamente enumerable que no es recursivo. Por consiguiente, la inversa de la sentencia que dice que todo lenguaje recursivo tambin es recursivamente enumerable no es cierta. Como ya hemos comentado, las mquinas de Turing pueden considerarse como modelos de computacin mecnica. Una mquina de Turing que realiza una tarea ya sea reconocer un lenguaje o realizar un patrn sobre una cinta multidimensional modela un proceso. Los procesos que siempre terminan se llaman algoritmos y, por tanto, una mquina de Turing que para sobre cualquier cadena, es un modelo de algoritmo. Esto significa que, para los lenguajes recur sivos, hay un algoritmo que determina si una cadena w est en un lenguaje L. Este algoritmo ser modelado por una mquina de Turing que para sobre cual quier entrada y acepta L. Por otro lado, si L es recursivamente enumerable pero no recursivo, no hay una mquina de Turing que pare sobre todas las entradas y acepte L. De esto se deduce que no hay ningn modelo de algoritmo que determine si w e L, para una cadena arbitraria w. El problema de los miembros (est w en L?) para los lenguajes recursivamente enumerables arbitrarios que no son recursivos es un ejemplo del problema de irresolubilidad, que es un problema para el cual no hay ningn algoritmo que pueda dar una respuesta al mismo, ya sea negativa o posi tiva. Trataremos estas cuestiones en el Captulo 6 . El Teorema 5.2.3 junto con los Ejercicios 5.2.8 y 5.2.9 muestran que el con junto de los lenguajes recursivos es cerrado con respecto a la unin y la intersec cin. Tambin los lenguajes recursivamente enumerables son cerrados con res pecto a la unin y la interseccin. La demostracin de que la interseccin de len guajes recursivamente enumerables es recursivamente enumerable es similar a la de los lenguajes recursivos y fue vista en el Ejercicio 5.2.8. La demostracin de que la unin de lenguajes recursivamente enumerables es tambin un lenguaje recursivamente enumerable proporciona una tcnica de demostracin muy til e interesante. T eorem a 5.3.3. Si L\ y Lz son lenguajes recursivamente enumerables, entonces L\ u L2 es tambin recursivamente enumerable. Demostracin. Si L\ y L 2 son recursivos, entonces sabemos que su unin tambin es recursiva y, por tanto, recursivamente enumerable. Luego para este caso queda ra probado. Supongamos que, al menos uno de los dos, es recursivamente enumerable pero no recursivo. Sea L r= L (M), donde M = (Q, Z, T(, s, b , F, 8 ,) son mqui nas de Turing para i = 1 e i = 2. Vamos a hacer, un esbozo de la construccin de una mquina de Turing M = (Q, , T, 5 , t> , F, 8 ) que acepte L\ u Lj- En otras pa labras, M acepta w si y slo si w es aceptada por al menos una de las M, M ser

www.FreeLibros.com

218

TEORA DE AUTMATAS Y LENGUAJES FORMALES

una mquina de Turing con dos cintas que simular simultneamente M\ en la cinta 1 y A2 en la cinta 2. Si M\ o M 2 para en un estado de aceptacin, M tam bin para y acepta la cadena de entrada. Si una de la dos para en un estado que no es de aceptacin antes de que la otra pare, M centrar su atencin en la m quina de Turing que todava no par. Si, para la cadena vv, ninguna de las mqui nas de Turing para (y por tanto vv g L\ \ j L2), M nunca parar y, por tanto, nunca aceptar vv. Esta simulacin se realiza incluyendo en Q los pares de Q\ x Q 2 y permi tiendo todo movimiento de la forma

8 (0?i, < ? 2 > , (ai, 02)) = (pi,p2 ), (ti, x2), (Xi, X2 ))


donde para cada = 1 , 2 ,
8 / ((i, O) = (p, t , X) es una transicin de M. Adems, para incluir las situaciones en las que una de las mquinas de Tu ring para en un estado que no es de aceptacin antes de que la otra pare, necesi tamos incluir las transiciones que permitan que M siga simulando la otra mqui na de Turing. Por ejemplo, si M\ parara en el estado < 73 , que no es de aceptacin (en este caso, M\ no tendra ninguna transicin desde <73 sobre cualquier smbolo de la cinta), deberamos incluir en M todas las transiciones de la forma

8 ((< ?3, < ? ), (ai, o2)) = ((<73 , p), (O], t2), (S, X2 ))
donde 82 (q , 0 2 ) = (/?, ^ 2, X 2) es una transicin de M2. Si hiciramos esto para to dos los estados en los cuales M\ o M 2 para sin aceptar ninguna cadena, entonces M no parara en todas ellas cuando M\ y Mi parasen sin aceptar una cadena por qu se considera aceptable este comportamiento? Finalmente para cada par (q\, q2) en los cuales q\ q2 es un estado de acep tacin de su correspondiente mquina de Turing, incluiremos las transiciones de la forma 8

((<?], < ? 2), (ai, a2)) = (< 7 , (ai, a2), (5, 5))

donde q e Q es un nuevo estado que es el nico estado de aceptacin de M.

La demostracin del Teorema 5.3.3 sugiere una tcnica que puede ser usada para probar que cualquier lenguaje recursivamente enumerable cuyo comple mento es recursivamente enumerable debe ser un lenguaje recursivo. Para pro barlo, supongamos que L y L* - L son ambos recursivamente enumerables. Usa remos el mtodo de construccin usado en la demostracin del Teorema ,5.3.3 para construir una mquina de Turing que acepte L u (E* - L). Naturalmente, esta unin es 2*,<pero puesto que , n ( I * - L ) = 0, cualquier cadena w e X* es-

www.FreeLibros.com

MQUINAS DE TURING Y LENGUAJES

219

tar solamente en uno de los dos. As, si tenemos las mquinas de Turing M\ y M 2 que aceptan L y X* - L, respectivamente, entonces para cualquier w e l * so lamente una de las dos mquinas de Turing parar y aceptar w. Modificaremos la mquina de Turing M de la demostracin precedente puesto que, si M\ parase y aceptase w, entonces M la aceptara, mientras que si M i aceptase vv, entonces M parara y la rechazara. Luego tenemos una mquina de Turing que para todas la entradas, para y acepta L. Por tanto, se puede deducir el siguiente teorema: Teorem a 5.3.4. Si L es un lenguaje recursivamente enumerable para el cual X* - L tambin es recursivamente enumerable, entonces L es un lenguaje recursivo. Un lenguaje es enumerado por una mquina de Turing M si, sobre su cinta, genera las cadenas del lenguaje separndolas mediante algn marcador. Obsr vese que, si el lenguaje es finito, la mquina de Turing puede parar. Por otro lado, si el lenguaje es infinito, entonces la mquina de Turing no parar. Si L es enumerado por la mquina de Turing M, entonces podemos construir una mquina de Turing M' que acepte L. M' tiene una cinta ms que M, la cual usa como cinta de entrada. Para analizar la cadena w , la sita sobre esta cinta. Entonces, M' simular M sobre la(s) otra(s) cinta(s), excepto cuando M' genere una cadena, ya que entonces M' parar y comparar la cadena que acaba de ser generada con la cadena vv. Si coinciden, M' para en un estado de aceptacin, en otro caso, M' contina. De esto se deduce que todo lenguaje enumerado por una mquina de Turing es recursivamente enumerable. Por otro lado, si L es recursivamente enumerable, entonces podemos cons truir una mquina de Turing que los enumere. Para ello, supongamos que M es una mquina de Turing que acepta a L. Podemos construir una mquina de Tu ring M' con tres cintas, que enumere L. La idea bsica es la siguiente: Las cade nas de L sern enumeradas sobre la cinta 1. Sobre la cinta 2, M' generar las ca denas de X* siguiendo un cierto orden. Sobre la cinta 3, M' simular las acciones que realiza M sobre las cadenas generadas. Si una cadena fuera aceptada por M, entonces M' la escribira en la cinta 1, por tanto enumerara L. Ntese que, ya que slo se requiere que L sea recursivamente enumerable y no necesariamente recursiva, la simulacin de las acciones de M sobre una cadena puede producir problemas si M nunca para sobre esa cadena. Este problema se puede evitar consiguiendo que M' simule secuencias (fini tas) de movimientos de M cada vez ms largas, mas que intentando procesar las cadenas completamente. M' genera las cadenas en orden lexicogrfico (alfabti co). Supongamos que X = {ci, 02,..., a,,}. Prifnero, M' genera la cadena vaca, e. Entonces M' genera todas las cadenas de longitud 1 en el orden Gi, a 2 , o n. Despus M' genera todas las cadenas de longitud 2; O1 G1 , 0 \0 z , ...,

www.FreeLibros.com

220

TEORA DE AUTMATAS Y LENGUAJES FORMALES

GiG, a^Oi, O2G2, > OiOn, ..., o no n, y as sucesivamente. (Obsrvese que el or den en el que son listadas, determina el orden lexicogrfico de las cadenas). Para organizar las simulaciones de secuencias de movimientos de M sobre dichas cadenas, M' genera primero y simula un movimiento sobre ella. En un segundo paso, M' simula dos movimientos sobre (si es posible), genera Gi y si mula un movimiento sobre ella. En tercer lugar, M' simular tres movimientos sobre , dos sobre O, y entonces genera 0 2 y simula un movimiento sobre ella. La cinta 2 se usa para llevar cuenta de las cadenas generadas y del nmero de movimientos realizados sobre ellas. Por tanto, despus de i pasos, la cinta 2 con tendr i cadenas sobre Z* as como el total de movimientos realizados sobre ellas. En los siguientes pasos, M' procesa cada una de las i cadenas incrementan do adems el contador de movimientos para cada una de ellas, copindola en la cinta 3 y simulando M sobre ella con el nmero de movimientos especificado. Si M acepta la cadena, entonces M' la copia en la cinta 1. Ntese que, de esta forma, se elimina el problema de que M nunca pare so bre una cadena especfica. Cualquier cadena de L se genera sobre la cinta 2 y se acepta durante la simulacin de M. Por tanto, cualquier cadena de L aparece en la cinta 1. Veamos el siguiente teorema: Teorem a 5.3.5. Un lenguaje L es recursivamente enumerable si y slo si L es enumera do por alguna mquina de Turing. Por tanto, la capacidad de ser enumerado por una mquina de Turing, carac teriza completamente a los lenguajes recursivamente enumerables.

Ejercicios de la Seccin 5.3


5.3.1. En la construccin de la demostracin del Teorema 5.3.3, si M\ y Mi rechazaran una cadena al pararse en un estado que no es de aceptacin, la mquina de Tu ring M rechazara la cadena al no pararse. Realizar un esbozo de la forma en la que se debe construir M para que tambin pare en un estado que no es de acep tacin. 5.3.2. Usar la misma construccin anterior para probar que L\ n enumerable si L\ y 2 son recursivamente enumerables.
2

es recursivamente

5.3.3. Esbozar la mquina de Turing descrita mediante las observaciones anteriores al Teorema 5.3.4. Cmo se determina si la que acepta la cadena es M\ o M2 ? 5.3.4. Supongamos que L\, Li , ..., L son lenguajes que forman una particin de *. Si todos los L son recursivamente enumerables, probar que cada uno de ellos tam bin es recursivo.

www.FreeLibros.com

MQUINAS DE TURING Y LENGUAJES

221

5.3.5. La tcnica descrita en esta seccin para enumerar un lenguaje recursivamente enumerable mediante una mquina de Turing no es muy eficiente. Las cadenas se escriben repetidamente sobre la cinta 1 , puesto que una vez que su contador de movimientos tiene una valor mayor o igual que el nmero de movimientos, M necesita aceptarlas y sern escritas en la cinta 1. Sugerir una tcnica para eli minar esta redundancia (teniendo en cuenta que puede que sea necesario que las cadenas se queden en la cinta 2 para que pueda continuar el proceso de genera cin de 2 T, en orden lexicogrfico). 5.3.6. Supongamos que L es recursivamente enumerable pero no recursivo, Probar que, para toda mquina de Turing M que acepte L, hay un nmero infinito de cadenas que pueden hacer que M no pare.

GRAMTICAS NO RESTRINGIDAS Y LENGUAJES RECURSIVAMENTE ENUMERABLES


A travs del estudio de lenguajes que hemos realizado, hemos tratado dos tcni cas para especificarlos. Podemos especificar un lenguaje describiendo un proce dimiento para reconocer sus cadenas. Estos procedimientos tomaron la forma de autmatas de varios tipos. Alternativamente, se puede especificar un lenguaje por medio de una tcnica que genere sus cadenas. Las gramticas nos proporcio nan este mtodo. Tanto en las gramticas regulares como en las que son independientes del contexto, se restringi la manera de formar las producciones. Hasta qu punto se pueden relajar estas restricciones y hacer que todava tengan sentido los len guajes resultantes? Es ms, cmo se pueden relacionar dichos lenguajes con los que son aceptados por las mquinas de Turing? Si representamos las producciones de las gramticas regulares por medio del producto cartesiano de conjuntos, stas sern pares de N x Z* (N u e) (para gramticas regulares por la derecha), que indican que el lado izquierdo de la pro duccin debe estar formado por un nico no terminal, mientras que el lado dere cho de la produccin debe estar compuesto por cualquier cadena de terminales seguida por un no terminal. Al pasar a las gramticas independientes del contex to, la estructura de la parte derecha de las producciones se hizo menos restricti va; es decir, se permiti que fueran pares del producto N x ( N u 2)*. Ahora, el lado derecho podr contener cualquier nmero de no terminales, mientras que el lado izquierdo sigue restringido a un nico no terminal. Aunque en una gramtica independiente del contexto la estructura del lado derecho de las producciones parece ser lo ms general posible, podemos dar al menos dos sugerencias con respecto al lado izquierdo. Se debera poder permitir que en el lado izquierdo hubiera cadenas no vacas de no terminales e incluso cadenas de no terminales y terminales. De las dos, las cadenas no vacas de ter-

www.FreeLibros.com

222

TEORA DE AUTMATAS Y LENGUAJES FORMALES

mnales y no terminales a la vez, es la forma ms general. Segn esto, nuestras producciones podran ser pares del producto (N u X)4 ' x (N u )*. De esta mane ra hemos eliminado todas las restricciones en cuanto a la manera de formar las producciones. (Obsrvese que, si se permitiera que el lado izquierdo de una pro duccin fuera la cadena vaca, se tendra la posibilidad de tener ms de un punto de partida para las derivaciones, lo que no es deseable. Por tanto, no permitire mos como lado izquierdo de una produccin). Veamos la siguiente definicin: Definicin 5.4.1. Una gramtica no restringida (que tambin se conoce como una gra mtica estructurada por frases) es una 4-tupla G = ( N, Z, S, P ), donde N es un alfabeto de smbolos no terminales Z es un alfabeto de smbolos terminales con N n Z = 0 S e N es el smbolo inicial P es un conjunto finito de producciones de la forma a >(3, donde a e ( i V u Z ) + y p e ( J V u Z f (es decir, P c (N u Z)+ x (N u Z)* y es un conjunto finito). Obsrvese que cualquier gramtica regular o independiente del contexto es adems una gramtica no restringida. Como cabra esperar, tenemos una poten cia generativa mayor que la que tienen las gramticas independientes del contex to o las regulares, debido a que la gramtica es menos restrictiva con respecto a la formacin de las producciones. Por ejemplo, consideremos la gramtica no restringida dada por S -*a S B C \a B C CB > BC aB ab bB -> bb bC be cC cc (En estas gramticas mantenemos las convenciones adoptadas al estudiar las gramticas regulares y las gramticas independientes del contexto. Es decir, S si gue siendo el smbolo inicial, las minsculas los terminales y las maysculas los no terminales). En la cadena que resulta al sustituir el smbolef inicial, siempre hay el mis mo nmero de aes, Bes y Ces. Es ms, todas las aes preceden a las Bes y a las Ces. La produccin CB >BC nos permite intercambiar los no terminales C y B, obteniendo una cadena de la forma a"B C n. Las producciones aB > ab y

www.FreeLibros.com

MQUINAS DE TURING Y LENGUAJES

223

b B - ^ b b , transforman toda B en b, obtenindose anb"C". Finalmente, las pro ducciones bC be y cC >cc transforman la cadena en anbncn: Por otro lado, si n - 1, esta gramtica puede derivar abe por medio de S => aBC => abC => abe. Si ri> 1, entonces la cadena anbnc'1 se deriva por me dio de S "=* an ~ 'S ( B C )" ~ 1 => a" (B C )" 4 a '7 /C n aW
1

Por tanto, en G se deriva cualquier cadena de la forma anbncn para n > 1. De esto se deduce que L (G) = {a"bncn\n > 1}. Luego con esta gramtica podemos derivar lenguajes que no son independientes del contexto. Veamos otro ejemplo de la potencia generativa de las gramticas no restrin gidas. Consideremos la gramtica S >ACaB, CB > DB | E, AD ^AC, A E -^e Ca > aaC aD > Da aE ^ Ea

Esta gramtica genera L = {a \ k > 0}. Para hacemos una idea de cmo se generan cadenas en L, consideremos la derivacin a 2 = a4. Tendremos S ACaB => AaaCB => AaaDB => AaDaB => ADaaB => ACaaB => AaaCaB => AaaaaCB => AaaaaE => AaaaEa => AaaEaa => AaEaaa = = >AEaaaa => aaaa A y B actan como marcadores de final de la cadena de aev que estn siendo generadas. C se desplaza hacia la derecha al duplicarse el nmero de a<?.? hasta que est junto a entonces se transforma en una D. D se desplaza hacia la dere cha hasta que encuentra una A , y entonces se convierte en C. Cuando CB es reemplazada por E, termina la generacin de aes. Entonces la E se desplaza ha cia la izquierda hasta que encuentra la A, momento en el cual se elimina AE. Supongamos que G es una gramtica no restringida. Se pueden listar todas las vv para las cuales S => w, es decir, todas las cadenas que son derivadas en un slo paso. El nmero de cadenas de este tipo que se puede obtener ser finito, puesto que la coleccin de producciones de la gramtica es finita. Tambin po dremos hacer una lista de las cadenas que se derivan en dos pasos, en tres pasos, y as sucesivamente. Cada una de estas colecciones ser tambin finita. De lo que se deduce que L (G ) puede ser listada de esta forma. Lo que quiere decir que podra haber una mquina de Turing que enumerase L (G). Esto no nos sorpren de puesto que las gramticas generan cadenas en un orden determinado.

www.FreeLibros.com

224

TEORA DE AUTMATAS Y LENGUAJES FORMALES

Aplicando el Teorema 5.3.5 a las observaciones anteriores podemos deducir el siguiente teorema: T eorem a 5.4.2. Si G es una gramtica no restringida, entonces L ( G ) es un lenguaje recursivamente enumerable. Tambin se cumple que todo lenguaje recursivamente enumerable es gene rado por una gramtica no restringida. Para verlo, supongamos que L es un len guaje recursivamente enumerable que es aceptado por una mquina de Turing M = ( Q , Z, T, s = q i, b, F, 8 ). Vamos a construir una gramtica no restringida, G con base en M. Si w e L (M), entonces q\\v xq/y, donde q j e F es un estado de aceptacin de M y x e y son cadenas de ( T {b})*. La gramtica G produce la cadena w, mediante una derivacin hacia atrs, desde xq/y a q\\v, eliminando despus, q\. G se define como G = (N, Z, S, P), donde N es la colecin de smbo los N = ( r - Z) u Q u {Ai, A 2, 5}, siendo Ai, Ai y S son unos smbolos nuevos. Las producciones de P son de cuatro tipos. Primero queremos que G derive una configuracin final de la forma xq/y. Esto se consigue mediante las produc ciones de la forma S -* b S \S b \A \A 2 A2 >aA 21 A2a | q para toda a e T - {/>} y toda q e F. (Obsrvese que b e F c M con lo que bS y Sb pertenecen a (/V u Z).) Introducimos Aj como un marcador, que solamente se elimina al final de la derivacin. Mediante dichas producciones se obtienen derivaciones de la forma S = $ b ... t>A\xqjyb ... b para todo x e y pertenecientes a (F - {&})' y los estados finales q de F. Pues to que estamos realizando un proceso hacia atrs para que M acepte una cade na, debemos pasar de la configuracin xqfy a q\\v, lo que significa que necesita mos reemplazar A\xqy por A\q\w. Para ello aadimos a P las producciones de la forma bpj qa, donde 8 (q, a) - (qj, b, R ) es una transicin de M, y las pro ducciones de la forma q} cb cq a para cualquier smbolo c de F. donde 8 (q, a) = (qj, b, L) es una transicin de M. El primer tipo de producciones (co rrespondientes a los movimientos hacia la derecha), deshacen lo hecho por la transicin de M, al sustituir la b por la a y desplazarse al no terminal que se en cuentre a la izquierda de a. En las producciones correspondientes a los movi mientos hacia la izquierda, se reemplazan las cadenas de la forma qcb por las cadenas de la forma cqa, donde c es cualquier smbolo que se encontraba ori ginalmente a la izquierda de la cabeza de M. Por tanto, para la transicin

www.FreeLibros.com

MQUINAS DE TURING Y LENGUAJES

225

8 (q, a) = (q, b, L) correspondiente a un movimiento hacia la izquierda, debe mos aadir todas las producciones de la forma q cb cq a, donde c e T. Finalmente, puesto que pueden quedar blancos h y algunos smbolos A\ y q\, limpiaremos la cadena por medio de las producciones

A\q\ > b -> Como un ejemplo muy sencillo de la construccin de dicha gramtica, con sideremos la mquina de Turing M = ( Q , X, T, s = q\, b, F, 8 ), teniendo Q = { q u q 2,q i ) E={a} T = {a ,b } F={qs} h ( q \, ) = (q\,a, R ) h { q u b ) = {q2, b ,R )

? 3 > L) 8 (q2, 6) = (<


Esta mquina de Turing acepta a*. Aplicando la construccin anterior, ob tendremos los siguientes grupos de producciones: S ^ & S |S & |A iA 2 A2 aA2\A2a\qi aq\ >q\a bqi - q\b qiab >aq2b q-ibb >bq2b A\q\ 1 b-> e j para el primer paso

para las transiciones que mueven la cabeza de M hacia la derecha para las transiciones que mueven la cabeza de M hacia la izquierda

para el ltimo paso

Para comprender la conexin que existe entre la forma en la"que M acepta una cadena y la forma e n la que G genera la misma cadena, consideremos w = a2. M acepta w por medio de las siguientes {ransiciones: q\a 2 \- aq\a l- a 2q\b i- a 2bq 2b H (?q^bb

www.FreeLibros.com

226

TEORA DE AUTMATAS Y LENGUAJES FORMALES

Esto corresponde a que G primero genera A\crq:,bb y despus retrocede desde esta configuracin de M &A\q\a2, posteriormente borra la subcadena A\q\. Finalmente, tendremos la siguiente derivacin S => Sb Sbb A \A 2bb => A\aA2bb => A\a 2A 2bb

=> A ia 2q^bb => A \a2bq2b => A\a 2q\bb => A\aq\abb => A \q\a2bb =>/4 i< 7 ia 2 => a 2 T eorem a 5.4.3. Si L = L ( M) es un lenguaje recursivamente enumerable y G se cons truye de la form a que hemos descrito anteriormente, entonces L = L (G). Demostracin. versa. Tenemos que demostrar que si w e L (M), entonces w e L (G) y vice

Primero, supongamos vv e L (M). Entonces se debe cumplir que q\w h xqfy para las cadenas x e y de ( T - {&})*. A partir de la construccin de G que hemos visto, obtendremos S =>&... bA ixqjyb ... b Esto siempre es posible, puesto que de la primera coleccin de produccio nes construida, podramos derivar cualquier cadena de esta forma. Ahora supongamos que M aplica la transicin 5 (q, b) = (q, c, L), durante la computacin que acepta w, obtenindose las siguientes configuraciones a i ... anqb\ ... b,\-a\ ... an-\q c b 2 ... bm Puesto que la transicin dremos
8

(q , b\) = {q, c, L) produce qanc > anqb\ de G, ten

a\ ... anqib\ ... bm => a\ ...a -\q jc b 2 ... bm que es correcto en una derivacin de G. Aplicaremos un razonamiento similar para los movimientos de M hacia la derecha. Mediante un razonamiento inducti vo, obtendremos que b ... bA\xqfyb ... b => b ... bAyq\wb ... b

Finalmente, aplicando la limpieza de producciones para eliminar A\q\ y todos los blancos, tendremos S => w. Es decir, w e L (G). A la inversa, si w e L (G), entonces S => w, y por tanto se tiene

www.FreeLibros.com

MQUINAS DE TURING Y LENGUAJES

227

S =>b ... t>A\xqyb ... b =>&... bqiwb ... b => w con lo que obtenemos que xqjy => qyw. Puesto que q\\v corresponde a la confi guracin inicial de M cuando comienza el procesamiento de vv, un razonamiento inductivo sencillo probar que q\\v h xqjy y, por lo tanto, w e L (M). Uniendo los Teoremas 5.4.2 y 5.4.3, obtendremos el siguiente resultado: T eorem a 5.4.4. Un lenguaje L es recursivamente enumerable si y slo si L - L (G) para alguna gramtica G, no restringida. Los lenguajes que se obtienen a partir de las gramticas no restringidas son exactamente los mismos que son aceptados por mquinas de Turing.

Ejercicios de la Seccin 5.4


5.4.1. Qu lenguaje genera esta gramtica? 5 >Ba a. Set > Bb Sb >e, B->bS\BB\b Es un lenguaje independiente del contexto? Es regular? 5.4.2. Obtener una gramtica no restringida para cada uno de estos lenguajes (a) {a"b'a"b"\n>Q} (b) { a 'b ^ \ i <j < k} (c) {ww|vve {a, b} }

(d) {www\w e {, b}*} 5.4.3. Algunos textos definen una gramtica no restringida como aquella en la cual to das las producciones son de la forma a > (3, donde a e (iVu ) N ( iV u I f y (3 igual que en nuestra definicin. Es decir, a contiene al menos un no terminal. Esta fue la definicin que dimos en la Seccin 4.3, de manera informal. Probar por qu las gramticas de este tipo no tienen ni mayor ni menor potencia gene rativa que las que corresponden a nuestra definicin. (Indicacin Cmo se po dra transformar una gramtica de este tipo en una del otro? A qu afecta dicha transformacin?) * 5.4.4. Hacer un esbozo del diseo de una mquin de Turing que enumere L (G) para una gramtica no restringida G (Indicacin: Considrese una mquina de Tu ring que tenga al menos tres cintas. La cinta 1 es la cinta de salida sobre la cual

www.FreeLibros.com

228

TEORA DE AUTMATAS Y LENGUAJES FORMALES

se enumera L (G), la cinta 2 contiene la lista de las producciones de G y la cinta 3 es la cinta de trabajo. Buscar una forma para que dicha mquina de Turing ge nere, en primer lugar, las cadenas que se derivan de G en un slo paso, ordena das de alguna manera sobre la cinta 3 y que luego las copie sobre la cinta 1; des pus genere las cadenas que s derivan de G en dos pasos, y as sucesivamente). 5.4.5. En las observaciones anteriores al Teorema 5.4.3 y en su demostracin se plan tean, implcitamente, dos requerimientos que deben cumplir las mquinas de Turing que se transforman en gramticas no restringidas. Primero, la mquina de Turing debe ser no supresora. Es decir, no puede tener ninguna transicin de la forma 8 (<j, a) ~{p,b,X) para cualquier a * b. Segundo, se supone que la m quina de Turing, cuando pare (al aceptar una cadena), lo har con su cabeza de lectura/escritura sobre el primer blanco seguido de la cadena que no sea de blancos, el cual estar a la izquierda de la cinta. (a) Probar que si L es aceptado por una mquina de Turing M arbitraria, enton ces L ser aceptada por una mquina de Turing M' no supresora. (b) Construir una mquina de Turing no supresora que acepte el lenguaje {anbm| n, m > 0 }, y que pare sobre el primer blanco que vaya seguido de la cadena que queda sobre su cinta. (c) Usar la tcnica vista en esta seccin para obtener la gramtica no restringi da asociada a este lenguaje. (d) Obtener una derivacin (usando la gramtica de la parte c) y la secuencia de las DI de la mquina de Turing de la parte b que se obtienen al aceptar la cadena crba. 5.4.6. Probar que. si L y Li son lenguajes recursivamente enumerables, entonces L\Lo y L) son lenguajes recursivamente enumerables.

5.5

LENGUAJES SENSIBLES AL CONTEXTO Y LA JERARQUA DE CHOMSKY


Entre las gramticas no restringidas y la forma restringida de las gramticas in dependientes del contexto, se pueden definir varias gramticas con diferentes ni veles de restriccin. No todas producen una clase de lenguajes interesante, pero unas que si lo hacen son las que forman el conjunto de gramticas sensibles al contexto. Las gramticas sensibles al contexto producen una clase de lenguajes que est estrictamente situada entre los lenguajes independientes del contexto y los lenguajes recursivos.

Definicin 5.5.1. Una gramtica G = (N, I , S, P) es una gramtica sensible al contexto si todas las producciones son de la forma a > [3, donde a , (3 e (N u E)+ y

l a ! < | p| .

www.FreeLibros.com

MQUINAS DE TURING Y LENGUAJES

229

Por ejemplo, la gramtica dada por


S abe | a Abe Ab > bA Ac >Bbcc bB > Bb aB > aa\aaA es una gramtica sensible al contexto. Esta gramtica genera el lenguaje {d lb'lcn|n > 1 }, con lo que tenemos un ejemplo de un lenguaje sensible al con texto que no es independiente del contexto. Recordemos que toda gramtica independiente del contexto se puede poner en forma normal de Chomsky, en la cual las producciones son de la forma A - > a o tambin A => BC. Puesto que las producciones de esta forma satisfacen la definicin de gramticas sensibles al contexto, se deduce que toda gramtica independiente del contexto es tambin una gramtica sensible al contexto. Por tanto podremos enunciar el siguiente lema: Lem a 5.5.2. El conjunto de los lenguajes sensibles al contexto contiene el conjunto de los lenguajes independientes del contexto. La restriccin de que el lado derecho de las producciones en una gramtica sensible al contexto sea al menos tan largo como el lado izquierdo hace que la gramtica sea no contrctil. Puesto que la cadena vaca tiene longitud 0, pode mos deducir de la definicin que L (G ), para cualquier gramtica G sensible al contexto. A veces es conveniente que la cadena pertenezca al lenguaje que ha sido generado por una gramtica sensible al contexto. Luego extenderemos nuestra definicin con el fin de permitir producciones de la forma S (siendo S el smbolo inicial), con tal de que S no aparezca en el lado derecho de cual quier produccin. Lem a 5.5.3. Sea G - (N, E, S, P ) una gramtica sensible al contexto. Entonces, exis te una gramtica Gi = (A/j, , Si, Pi) sensible al contexto, para la cual L (G) - L (G i) y Si nunca aparece en el lado derecho de una produccin de P\. Demostracin. Sea N\ = {Si} N, donde Si es un smbolo nuevo. Sea P\ el conjunto definido por Pi = P u {Si a | S a es una produccin de G}. Obsrvese que P\ satisface la condicin de que Si nunca aparete en el lado derecho de una pro duccin. Es ms, si S =4 w es una derivacin en G, entonces alguna produccin S ^ cc es el primer paso de la misma (es decir, se tiene que S = > , > w). Pero

www.FreeLibros.com

230

TEORA DE AUTMATAS Y LENGUAJES FORMALES

entonces > a es una produccin de P\ y, por tanto, Si => a => w es una deri vacin de Gi. As w e L (G) si y solo si w e L (<?i). Supongamos que G = (N , Z, S, P ) es una gramtica sensible al contexto y que w e L (G). Si w = e, entonces se tiene que S > e. Si w * e, entonces habr alguna derivacin tal que 5 => a i => ... a, = w. Puesto que una gramtica sensible al contexto es no contrctil, se debe cumplir que

Iai| < |oc2| <... < |am| = |w|


Si m > | vv | (es decir, la derivacin se realiza en ms pasos que smbolos tie ne w), entonces existir algn i , j y p para los cuales

|a,| = |a+i| = = Icc +j | = p


Es decir, durante j + 1 pasos de la derivacin, la cadena que se est generan do no crece en longitud. Ahora bien, puesto que N y Z son conjuntos finitos, ten dremos que | A ^ u Z | - k para algn k , y por tanto hay k 1 cadenas posibles de longitud p. Si el nmero de pasos de la derivacin donde la cadena parcialmente derivada tiene longitud p es mayor que el nmero de cadenas posibles de dicha longitud (es decir, si y + 1 > k p), entonces al menos dos de los a,-, a , + 1 , ..., a j+j deben ser el mismo. Entonces, en este caso, podemos eliminar de la derivacin al menos un paso. Es decir, si a , = a.s -, entonces

ai =>... => < xr => a +1 = = > => o cin= w

eliminando a , + i => ... => a.,, con lo que se obtiene una derivacin ms corta. La idea es que si w es derivable en G entonces hay alguna derivacin de w que no es demasiado larga . Lo que indica que hay un algoritmo para determi nar si w e L (G). Es decir, podemos obtener una mquina de Turing que para so bre toda entrada y que acepta L (G). L em a 5.5.4. Sea G = (N, Z, S, P) una gramtica sensible al contexto. Entonces existe una mquina de Turing T, que para sobre toda entrada y acepta L (G). Demostracin. Vamos a describir una mquina de Turing, M, no determinista con tres cintas que acepta L (G). La cinta 1 es la cinta de entrada. La cinta 3 guarda la de rivacin de la cadena de entrada w, si existe tal derivacin. La cadena 2 contiene las producciones de G, donde la produccin u v se representa mediante ubv. Una computacin de M con una cadena de entrada w consiste en las tres eta pas siguientes:

www.FreeLibros.com

MQUINAS DE TURING Y LENGUAJES

231

1. Se escribe la cadena Sb en la cinta 3. 2. M genera las producciones de G sobre la cinta 2.

3. Hasta que M para, se repiten los pasos siguientes: 3a. Se elige una produccin ubv de la cinta 2. 3b. Si bxb es la cadena que se encuentra ms a la derecha en la cinta 2 (la que se deriv ms recientemente), se elige, si existe, un ejemplo de una subcadena u de x. Si no hay una subcadena u de x, entonces M para. 3c. Se reemplaza por v la subcadena u de la cadena bxb anterior y se escribe sobre la cinta 3 la cadena x que se obtiene, seguida por bxb. (Por tanto, si bxb es la cadena bx\ux/ib, escribiramos x' = xvx 2 sobre la cinta 3, y a continuacin se pondra bxb.) 3d. Si x - vv, entonces M para en un estado de aceptacin. 3e. Si x ' est en la cinta 3, pero en otro lugar, entonces M para y recha za vv. 3f. Si \x'\ > | w |, entonces M para en un estado que no es de acepta cin. Ya que slo hay un nmero finito de cadenas de ( i V u I ) cuya longitud es menor o igual que | vv|. toda derivacin para, entra en un ciclo o deriva una ca dena de longitud mayor que jvv|. Todas estas posibilidades se contemplan en (3b), (3d), (3e) o (3f). Por tanto M para sobre todas las cadenas. Como se vio en las observaciones que preceden a este teorema, toda cadena de L ( G ) se puede derivar mediante una derivacin no cclica. Si vv se deriva mediante tal deriva cin, M simula la derivacin y para. El Teorema 5.5.5 se obtiene a partir del Lema 5.5.4. Teorema 5,5.5. Si L es un lenguaje sensible al contexto, entonces L es recursivo.

Consideremos el conjunto de todos los lenguajes sensibles al contexto con L = {a, b). Dado que todo conjunto de no terminales es finito, supongamos que los renombramos, con lo que obtenemos N c {A i, A2, ...} si G = (/V, Z, S, P) es cualquiera de las gramticas sensibles al contexto. Suponemos que A\ es, siem pre, el smbolo inicial. Vamos a codificar todas las gramticas sensibles al con texto sobre {a, b} como cadenas de 0 y 1 . Primero codificaremos los smbolos a y b como 00 y 001. Despus codifica remos cada no terminal A; como 01'. Representaremos la flecha ( ) de las pro ducciones mediante 0011 y la coma (,) mediante 00111. Toda gramtica sensible

www.FreeLibros.com

232

TEORA DE AUTMATAS Y LENGUAJES FORMALES

al contexto, se puede describir como una cadena de producciones separadas por comas (usando la flecha, para separar los lados izquierdo y derecho de las producciones) y, por tanto, se puede codificar como una cadena de ceros y unos, formadas como hemos visto. Obsrvese que cualquier gramtica sensible al contexto puede ser descodifi cada fcilmente. Ntese, tambin, que no todas las cadenas de ceros y unos rep resentan gramticas sensibles al contexto, pero que dada una cadena, se puede decir fcilmente si representa a una gramtica sensible al contexto sobre {a, b}. Si generamos cadenas de ceros y unos en orden lexicogrfico (alfabtico), podemos comprobar si cada una de ellas representa a una gramtica sensible al contexto codificada. Por tanto, podemos encontrar la i- sima gramtica G sensi ble al contexto codificada mediante la generacin de cadenas en este orden hasta que se genera la -sima cadena que es una gramtica sensible al contexto codifi cada. Luego podremos indexar las gramticas sensibles al contexto sobre {a, b), de forma significativa, G\, G 2, ... Ahora, supongamos que enumeramos {a, b}* en orden alfabtico, como w\, vt'2 , ... Definimos L - {w\ w < L(G)}. Podemos probar de forma bastante sencilla que L es recursivo. Dado w e {a, b}*, determinamos i para el cual w = w. Entonces generamos G y determinamos si w = w, e L (G) usando el al goritmo anterior (Lema 5.5.4). Componemos las mquinas de Turing apropiadas para obtener una mquina de Turing M que pare sobre todas las entradas con L = L(M ). Probaremos que ninguna gramtica sensible al contexto genera L, reali zando una sencilla diagonalizacin. Supongamos que L - L{G) para alguna gra mtica sensible al contexto G sobre {a, b). Entonces G - G para algn i. Si w e L - L (G ), entonces mediante la definicin de L obtenemos que w g L ( G ), lo que es una contradiccin. A la inversa, si w < L = L ( G ), enton ces, nuevamente por la definicin de L, w e L. Lo que de nuevo es una contra diccin. Por tanto concluimos que ninguna gramtica sensible al contexto sobre {a, b } genera L. De ello se deduce que L es un lenguaje recursivo que no es sen sible al contexto. Luego tendremos el siguiente lema: Lem a 5.5.6. Hay lenguajes recursivos que no son lenguajes sensibles al contexto.

Obtendremos el siguiente teorema, a partir de los Lemas 5.5.2 y 5.5.6. y del Teorema 5.5.5. Teorem a 5.5.7. Los lenguajes sensibles al contexto contienen, propiamente, a los len guajes independientes del contexto A su vez, los lenguajes recursivos contienen propiamente a los lenguajes sensibles al contexto.

www.FreeLibros.com

MQUINAS DE TURING Y LENGUAJES

233

]r M59, oam Chomsxy clasific las gramticas en cuatro familias. Las gram t i as :io estrmgidas, sensibles al contexto, independientes del contexto y regulu : i que conocen como gramticas de tipo 0 , de tipo 1 , de tipo 2 y de tipo X i ; ; ::ect /mente. Los lenguajes que resultan de dichas gramticas tam bin se . iTitif :an como ler guajes de tipo 0, 1 , 2 y 3. Como ya hemos visto, todo le i maje i (dependiente, del contexto que contiene la cadena vaca se genera medi ir :: usa j ramtica independiente del contexto en la cual S >e es !a nica produc : i E. zuaJmente, hemos demostrado que todo lenguaje sensible al con texto c : >ul ;ne (: se deriva de una gramtica limpia en la cual S >e es la nic ] i j .lucci in . Dejando a un lado los problemas que se derivan de la pala bra v i i, irm s que todo lenguaje de tipo i es tambin de tipo i - 1 , teniendo un tipo de :. ::l,i< n propia. ii i erax< ,ia de lengua jes se conoce como la jerarqua de Chomsky La Fi gura 5 .1 il'Jitr las relaciones, que existen.

Regulares Independientes del contexto

Lenguajes sensibles al contexto Lenguajes recursivamente enumerables Figura 5.1

\ bin h tre 1 texte . qua q

I m s c no: > 2s ergua ii Jeme i i l cr ic

: los tipos de lenguajes/gramticas estudiados por Chomsky, tam lidiado los lenguajes/gramticas recursivas que se encuentran en ;s recursivamente enumerables y los lenguajes sensibles al con; defi nir otras familias de lenguajes y su lugar dentro de la jerar >presentado.

C : -\i \:rn s esta seccin y captulo con el teorema de la jerarqua, el cual resu n : t .1 as tS relaciones entre lenguajes/gramticas que hemos descrito. eorem a 5.: i. Sob e un alfabeto dado, el conjunto de los lenguajes recursivamente en u rif i -bles. < :> atiene propiamente al conjunt de los lenguajes recursivos que contie; i pi op unence al conjunto de los lenguajes sensibles al contexto que con tiena j ! ; r :im nte al; conjunto de lenguajes independientes del contexto, que a su
%

www.FreeLibros.com

234

TEORIA DE AUTMATAS Y LENGUAJES FORMALES

vez contiene propiamente a los lenguajes regulares. Resumiendo, sea L x la representacin del conjunto de lenguajes x. Entonces se tiene
re g u la r C X ,c . d.c. C

JL re c u rsiv o

r.e.

Ejercicios de la Seccin 5.5.


5.5.1. Si una gramtica sensible al contexto puede contener la produccin S e, por qu se requiere que S nunca aparezca en el lado derecho de una produccin? 5.5.2. En la mquina de Turing descrita en la demostracin del Lema 5.5.4, dnde se presenta el no determinismo? 5.5.3. En la mquina de Turing M descrita en la demostracin del Lema 5.5.4, por qu M debe generar las reglas de produccin de G sobre la cinta 2? 5.5.4. Aunque la mquina de Turing vista en el Lema 5.5.4 proporciona un modelo de un algoritmo para los elementos de una gramtica sensible alcontexto, ste no es eficiente. Este ejercicio estudia un algoritmo ms eficiente. Sea G = (N , Z, 5, P) una gramtica sensible al contexto. Para determinar si w e L (G), lo podemos hacer, fcilmente, comprobando si e e L (G). Suponga mos que w e Z* y que | w | = n > 0. Sea 7o = {5} y, en general, sea Tm = {a e (N u Z)+1S => a para k< m y |a l <} (a) Probar que Tm - Tm- \ u {al (3 a para P 6 T,_ | y ja l < n }

(b) Probar que Tm= A n B para los conjuntos A = { a e (A?wZ)| |a | </i} B = {a s (N u )* | S = > a en no ms de m pasos} Obsrvese que: i. ii. i i iSi S => a y Ia | < n, entonces se obtiene que a e T,, para algn m. Si S no deriva a o si Ia I > n, entonces a e = T, para todo m. T, _ ] c T,.

iv. Si T, I = r entonces T, = Tm+l = ... (c) Probar que (iv) es cierto Por tanto, para determinar si w e L (G) calcularemos Tq, Tt y as su cesivamente, hasta que obtengamos que Tm_ i = T,= ... En este momento, ya se han generado todas las cadenas de longitud menor o igual que n, con lo que basta con que comprobemos r,_ | para w. Si w e Tm.. , entonces iv e L (G); en otro caso, w i L (G).

www.FreeLibros.com

MQUINAS DE TURING Y LENGUAJES

235

(d) Sea G la gramtica dada por las producciones S aSBC\aBC, CB BC, aB > ab, 1. 2. bB >bb bC -> be cC cc

Usar el algoritmo para probar que abac i L (G). Usar el algoritmo para determinar si abaa y aabbcc son cadenas de L (G).

5.5.5. Dada una cadena de ceros y unos, proponer una tcnica que determine si dicha cadena representa a una gramtica sensible al contexto sobre {a, b] codificada de la forma descrita en el Lema 5.5.6. 5.5.6. Codificar A\ aAiA\\b Aia oAi | ab I7 A2 >bb mediante el mtodo descrito en el Lema 5.5.6. 5.5.7. Sea G - (N, Z, S, P) una gramtica no restringida. Sea c un smbolo terminal que 110 pertenece a Z. Construir una gramtica sensible al contexto G' basada en G, con G' = (A,Zu {c}, S, P') para la cual w e L (G) si y slo si vvc* e L (G ') para algn k > 0 . 5.5.8. Sea C un mecanismo de alguna clase. Supongamos que podemos enumerar C mediante M\. M i ... y que hay un algoritmo que, dado un mecanismo M de C y una entrada w, determina si M acepta ir. Probar que no todos los lenguajes re cursivos sobre el alfabeto Z son aceptados por un mecanismo de C. 5.5.9. El conjunto de los lenguajes sensibles al contexto es cenado con respecto a la unin, la concatenacin o la cerradura de estrella? Por qu?

PROBLEMAS
5.1. Si L\, Li son lenguajes recursivamente enumerables sobre Z, Es VJT*i U re~ cursivamente enumerable? Por qu? 5.2. Probar que el complemento de un lenguaje independiente del contexto es recursivo. 5.3. Si L\ es recursivo y L2 es recursivamente enumerable, probar que L\ - 2 es recursivamente enumerable. 2 - L\ es recursivo? Es recursivamente enume rable? 5.4. Si L\ y L2 son lenguajes recursivamente enumerables sobre Z, esbozar la cons truccin de unamquina de Turing que acepte L\Li y L\. (Indicacin: considerar mquinas de Turing no deterministas).

www.FreeLibros.com

236

TEORA DE AUTMATAS Y LENGUAJES FORMALES

5.5. Nuestro razonamiento de que los lenguajes generados por gramticas no restrin gidas son recursivamente enumerables (Teorema 5.4.2) se basaba en la capaci dad de poder obtener una mquina de Turing que enumerase las cadenas del lenguaje de forma ordenada. Se puede obtener un razonamiento alternativo me diante la construccin de una mquina de Turing no determinista que acepte las cadenas del lenguaje. Sea G una gramtica no restringida. La mquina de Turing M que constru yamos elegir de forma no determinista una derivacin de G y la simular sobre su cinta. Entonces comparar la cadena derivada con la cadena de entrada y, si coinciden, la aceptar. Si no coinciden, M simular otra derivacin, y as sucesi vamente. Si la cadena de entrada est en L (G), entonces M simular una deriva cin de la misma; en otro caso M nunca parar. Para realizar la simulacin, primero se escribe el smbolo inicial S sobre la cinta. Entonces M entra en un bucle, el cual puede que termine despus de un cierto numero de pasos. Cada paso corresponde a una eleccin de una produc cin de G realizada de forma no determinista, que se tratar de aplicar, y de una posicin en la cadena que est en la cinta, y a la cual se pretende aplicar la pro duccin. Una vez que se selecciona la posicin, M comprueba si dicha posicin comienza con una secuencia de smbolos que se corresponden con el lado iz quierdo de la produccin seleccionada y, si es as, se reemplaza la secuencia por el lado derecho de la produccin. Este bucle se repite hasta que M elija, de for ma no determinista, que quiere salir del mismo. Entonces ser cuando se com pare la cadena generada con la cadena de entrada para comprobar si coinciden. 1. Obsrvese que el no determinismo est presente en tres momentos de la si mulacin que M realiza: en la eleccin de la produccin a usar, en la elec cin de la posicin inicial y al tomar la decisin de salirse del bucle. Por qu es necesario que exista no determinismo cuando se decide la salida del bucle? Describir la mquina de Turing M. a. b. c. 3. Cmo se pueden representar las producciones de G de forma que se pueda elegir entre ellas de forma no determinista? Qu cinta y qu alfabeto se necesitan incluir? Describa la mayora de los componentes de M.

2.

Describir con cuidado todos los pasos necesarios para realizar una vuelta del bucle. a. b. En qu afecta el no determinismo a la eleccin de una produccin? En la posicin inicial? En la salida del bucle? Cmo se aplica una produccin que se haya elegido y para cuya par te izquierda se encuentre una concordancia?

www.FreeLibros.com

MQUINAS DE TURING Y LENGUAJES

237

En el Problema 4.1, se vio que el lenguaje L = {cibncn| n > 1 } era aceptado por una autmata linealmente acotado. Esto sugiere que existe una conexin entre los lenguajes sensibles al contexto y el autmata linealmente acotado. 1. Probar que si G es una gramtica independiente del contexto entonces existe un autmata linealmente acotado que acepta L (G). Para simplificar, supongamos que L (G) no contiene la cadena vaca. (Indicaciones: Consi drese un autmata linealmente acotado con dos pistas en el cual las pro ducciones de G se codifican mediante los estados y las transiciones. Revi sar la demostracin del Lema 5.5.4). Tambin se cumple el inverso de lo anterior. Es decir, si M es un au tmata linealmente acotado, entonces L (M) es un lenguaje sensible al con texto y, por tanto, existe una gramtica sensible al contexto que lo genera. Las observaciones que preceden al Teorema 5.4.3. presentan una tcnica para la construccin de una gramtica basada en una mquina de Turing arbitraria. Obsrvese que todas las producciones que se obtienen son no contrctiles excepto Aq\ y b >e. En el caso de que la mquina de Turing fuera un autmata linealmente acotado, no sera necesaria la pro duccin b >e porque un autmata linealmente acotado nunca puede pasar sus marcadores de final. Si se omite la produccin A\(\ >, entonces el lenguaje que se genera ser {A\q\\v\w e L (M)}. Obsrvese que si M es un autmata linealmente acotado, dicho lenguaje difiere de L (M) en que toda palabra tendr un prefijo no deseable. Puesto que en una gramtica inde pendiente del contexto no podemos borrar smbolos, no se tiene la capaci dad para eliminar dichos prefijos. Sea M = (Q, Z, T, c\, b, F, A) un autmata linealmente acotado y su pongamos que i L (M). Definiremos una gramtica sensible al contexto G = (N, Z, S , P) para la cual L(G) = L (M ). La gramtica sensible al con texto que construyamos generar dos copias de una cadena y simularemos las acciones de M sobre una de las copias. Si M acepta la cadena, G elimi na la cadena que se obtiene de la ejecucin de M, dejando solamente la ca dena que se acepta. Para que G sea sensible al contexto, vamos a evitar la necesidad de tener producciones que eliminen smbolos, construyendo no terminales que contengan una gran cantidad de informacin. Si a y b perte necen a Z y q e Q, N tendra (como smbolos no terminales) pares de la forma (a, <b> ), (a, qb), (a, q <b) bq>), (a , q < b > ), (a, <qb>), (a, <bq>) N contiene todos esos pares para todo a, b e Z y para todo q e Q. [Obsrvese que si se sustituye un no terminal (a, bq>) por el terminal a no violamos la condicin de contrctil.] En todos los casos, el primer elemen to representa el smbolo terminal que se encuentra originalmente en dicha

www.FreeLibros.com

TEORA DE AUTMATAS Y LENGUAJES FORMALES

posicin y que no ser alterado durante la simulacin de M. El segundo elemento se usa en la simulacin de M , como describiremos brevemente. N tambin contiene los smbolos 5 y A. S es el smbolo inicial de G y A se usa para generar cadenas de pares que representan la cadena de entra da para M. Las producciones para S y A son S > (a, qi < a) A | (a, q < a > ), A (a, a) A I{a, a> ), para todo a e X (q es el estado inicial de M) para todo a e Z

Dichas producciones pueden generar cadenas de la forma *7i ^ ^i|) (^2> ^ 2) fah* '* >)

Obsrvese cmo es la cadena formada por los segundos elementos


<71 < a/,i2 ... at >

la cual representa una configuracin inicial de M sobre la cadena de entra da formada por los primeros elementos. 2. Proponer una forma para construir las producciones que simulan la compu tacin de M sobre la cadena formada por los segundos elementos de una cadena de pares ordenados. Indicaciones: Dichas producciones se forma ran con los no terminales que pertenecen al conjunto anterior (*). Para ver un ejemplo, consideremos el funcionamiento de un ALA M (con un estado inicial q\ y un estado de aceptacin qn) que acepta el lenguaje formado por las cadenas de aes y bes en las que al menos hay una a y una b. M acepta aba de esta forma: q\ < aba > y- < q\aba > t- < aqiba > (- < abq^a > 1- < abaq^ > 1- < abaq\ > Si la cadena generada por G se corresponde con una cadena de L (M), la simulacin de M llegar a un estado de aceptacin y terminar, cuando dicha simulacin se realice sobre la cadena formada por los segundos ele mentos. Ser en este momento, cuando deseemos transformarla en una ca dena formada por los primeros elementos que sea una cadena de smbolos terminales. Esto se realiza mediante las producciones de la forma ( (a, q < b) a, (a, < qb) - a, (a, qb) -> a, (a, qb>) a, y de la forma (a, bq>) - a, (a, q<b) >a, (a, < qb) -> a, * (a, < bq) >a

para todo q e F y toda b e l .

www.FreeLibros.com

MQUINAS DE TURING Y LENGUAJES

239

(2)

(a, x) b > ah, b (a, x) - ba, para toda b e Z y (a, x) e N

3. 4.

Por qu se necesita que las producciones de ( 1) dependan de q, pero las de (2) no? a. b. Obtener un A L A que acepte el lenguaje de los palndromos sobre

{a,b}.
Usar la tcnica anterior para transformar un A L A en una gramtica sensible al contexto. a > P una produccin no contrctil (es decir, I a | < ! (31). Construir una secuencia de producciones no contrctiles, de forma que el lado derecho de cada una tenga una longitud menor o igual a 2 y que pro duzca p a partir de a (es decir, a => (3 por medio de dichas producciones). Construir una secuencia de producciones de la forma uAv > uwv (es decir, a > (3 donde a s { N K j Y f N { N v j Y)* y p e (N u I)* + (N u Z)*)

Sea

1.

2.

lo cual produce los mismos resultados que AB CD.

3.

Demostrar que todo lenguaje sensible al contexto se genera mediante una gramtica sensible al contexto en la cual cada produccin es de la forma uAv - > vi-'vpara ve e L + y , v e (IV u X)'.

www.FreeLibros.com

www.FreeLibros.com

6
Resolubilidad*

6.1

EL PROBLEMA DE PARADA
En la Definicin 4.2.2 definimos que una funcin / es Turing computable, o computable, si existe una mquina de Turing que computa/(>v) para toda w per teneciente al dominio d e /. Un ejemplo de funcin computable es la funcin ca racterstica de un lenguaje recursivo. [Recurdese que la funcin caracterstica, % l , es la funcin que vale 1 (s) 0 (no) dependiendo de si el argumento perte nece al lenguaje o no]. De forma intuitiva, sabemos por el Captulo 5, que la funcin caracterstica de un lenguaje recursivamente enumerable que no es re cursivo, no es computable, ya que existen algunas cadenas de dicho lenguaje para las que la mquina de Turing que lo acepta, no para. Por lo tanto tenemos ejemplos de funciones computables y no computables. Por otro lado, en este captulo estudiaremos ciertas cuestiones acerca de la computabilidad, en funcin de las situaciones en las cuales el resultado de la computacin es s o no (o lo que es igual, 1 0). Los problemas de este tipo se llaman problemas de decisin y dicha clase de computabilidad se conoce como resolubilidad. Por ejemplo, el problema dada una gramtica independiente del contexto G, L (G) es vaco? es un problema del tipo mencionado anteriormente. Obsr vese que hay un nmero infinito de casos para este problema ano por cada gramtica independiente del contexto. Adems, para cada caso, se puede deter minar una respuesta afirmativa o negativa (vase Seccin 2.6).
* N O T A : E n la je rg a m a te m tica e in fo rm tica, se usa el t rm in o d e c id ib ilid a d " c o m o traduccin del trm in o d e cid ab ility . N o so tro s no lo h em o s a d o p tad o d e b id o a n o fig u rar en el DRAE.

www.FreeLibros.com

242

TEORA DE AUTMATAS Y LENGUAJES FORMALES

Otro ejemplo sera la pregunta dada una gramtica sensible al contexto y una cadena w, w e L (G)? Nuevamente obsrvese que hay infinitos casos de este problema. Cada uno de ellos se determina mediante una gramtica sensible al contexto y una cadena. Es ms, cada uno tiene una respuesta s o no (vase Seccin 5.5). Se dice que los problemas de decisin son resolubles * si existe un algorit mo que es capaz de responder s o no a cada uno de dichos casos. Si el algoritmo no existe, se dice que el problema es irresoluble. Los problemas de los ejemplos anteriores son ambos resolubles puesto que existe un algoritmo para ellos. Quizs el problema irresoluble ms conocido es el problema de parada para mquinas de Turing. El problema de parada es el siguiente: Sea M una mquina de Turing arbitraria con un alfabeto de entrada E. Sea w e T . Parar M con la cadena w como cadena de entrada? Un caso del problema de parada est formado por la pareja mquina de Turing-cadena de entrada. Una solucin a dicho problema sera un algoritmo que, para cualquier caso, respondiera s o no de forma correcta, es decir, un al goritmo lo bastante general como para responder correctamente al problema de parada para cualquier combinacin de mquina de Turing y cadena de entrada. Al final de nuestro estudio sobre las mquinas de Turing pusimos de relieve la estrecha relacin que existe entre ellas y los algoritmos. En el Captulo 5 es pecificamos dicha relacin: nuestro modelo de algoritmo es una mquina de Tu ring que para sobre todas las entradas. Por tanto, podemos buscar una solucin al problema de parada, buscando, entre la informacin que tenemos sobre mqui nas de Turing y cadenas de entrada, una mquina de Turing que pare sobre todas las entradas y proporcione una respuesta positiva o negativa. En la Seccin 4.5 hablamos de la mquina de Turing universal y, en particu lar, presentamos una tcnica para codificar las mquinas de Turing sobre cual quier alfabeto de entrada X como cadenas de ceros y unos. Hay una cantidad nu merable de cadenas de ceros y unos y, desde luego, no todas tienen por qu ser una codificacin de una mquina de Turing. Por tanto como mximo hay un n mero numerable de mquinas de Turing con un alfabeto de entrada X. Se pueden enumerar las mquinas de Turing sobre I , como M \, M 2 , ... Adems, puesto que X* tambin es numerable, podemos enumerarlo como X* = {xv\, W 2 , ...}. Consideremos el lenguaje 6 .

L = {w | w no es aceptada por M }
* V e r n o ta d e la p g in a a n te rio r.

www.FreeLibros.com

RESOLUBILIDAD

243

Se puede afirmar que L no es un lenguaje recursivamente enumerable. Para demostrarlo, supongamos que L es un recursivamente enumerable. Entonces L debe ser aceptado por alguna mquina de Turing, llamada M*. Consideremos w*. Obsrvese que, si w* e L, entonces Wk no debe ser aceptada por Mk, con lo que Wk L (Mk) = L, lo que es una contradiccin. Por otro lado, si vv < L, entonces ya que L = L (Mk), se obtiene que vv L (Mk) y, por tanto, w* debe estar en L, lo que es otra contradiccin. De esto se deduce que no hay ninguna mquina de Tu ring que acepte L y que, por tanto, no puede ser recursivamente enumerable. Ahora supongamos que el problema de parada tiene solucin. Es decir, que hay una mquina de Turing que para sobre todas las cadenas de entrada y, que ante una descripcin de una mquina de Turing y una cadena de entrada (ambas codificadas), se puede determinar si M para sobre la cadena de entrada. Enton ces, se puede construir una mquina de Turing M i que acepte el lenguaje ante rior. Sea w una cadena. Primero, M l enumera w i, wi, ... hasta que encuentra el k para el cual w = w*. Entonces M genera Mk y pasa el cdigo correspondiente a Wk y Mk a la supuesta mquina de Turing, la cual determina si Mk para sobre la entrada w*. Si se obtiene que Mk no para sobre la entrada Wk, entonces M l para y acepta wk = w (por qu?). Por otro lado, si se obtiene que Mk para sobre la en trada Wk, entonces se pasan los cdigos correspondientes a Mk y Wk a la mquina de Turing universal que simula Mk sobre Wk- En este caso, la mquina de Turing universal parar, determinando si Mk acepta w*. Si Mk acepta Wk, entonces M l para y rechaza w ^ Si Mk no acepta entonces M l para y acepta Wk. Por tanto, w e L (M l ) si y slo si w e L y, entonces, se obtiene que L - L (M l ). Esto, a su vez, contradice el hecho de que L no es recursivamente enumerable. Por tanto, no puede haber un algoritmo general que d respuesta al problema de parada para una combinacin arbitraria mquina de Turing-cadena de entrada. Luego podemos enunciar el siguiente teorema: Teorema 6.1.1. El problema de parada para las mquinas de Turing es irresoluble.

Podemos usar la irresolubilidad del problema de parada para demostrar que otros problemas tambin son irresolubles. Una forma de hacerlo es demostrando que, si un determinado problema se puede resolver, entonces el problema de pa rada tambin es resoluble. Por ejemplo, el problema de la cinta en blanco consiste en el problema de decidir si una mquina de Turing parar cuando comience con unaxinta en blan co. Para demostrar que el problema de la cinta en blanco es irresoluble, demos traremos que, si fuera resoluble, el problema de parada tambin lo sera. Enton ces, consideremos que el problema de la cinta* en blanco es resoluble. Sean M una mquina de Turing y w cualquier cadena. Sea M ' la mquina de Turing que comienza con una cinta en blanco, luego escribe w sobre la cinta y se ejecuta

www.FreeLibros.com

244

TEORA DE AUTMATAS Y LENGUAJES FORMALES

como si hubiera comenzado con la configuracin q\\v (donde c\ es el estado ini cial de M). Obsrvese que M ' es una mquina de Turing que al principio tena la cinta en blanco. Si obtenemos un algoritmo que determine si una mquina de Turing arbitraria que comienza con una cinta en blanco para, podremos determi nar si M para. Pero M ' para si y slo si la mquina de Turing M original, para con la cadena w como entrada. Por tanto podramos obtener una solucin para el problema de parada si existiera un algoritmo general para el problema de la cinta en blanco. Esto contradice el Teorema 6.1.1 y, por tanto, el problema de la cinta en blanco es tambin irresoluble. La tcnica que relaciona el problema de parada con el problema de la cinta en blanco de forma que nos permite deducir a partir de la irresolubilidad del pro blema de parada la irresolubilidad del problema de la cinta vaca, se llama re duccin. Se dice que el problema de parada se reduce al problema de la cinta va ca porque la resolubilidad del problema de la cinta vaca nos permite deducir que la resolubilidad del problema de parada (Un problema X se reduce al proble ma Y si, al obtener la solucin de Y, se puede obtener la solucin de X.)

Ejercicios de la Seccin 6.1


6.1.1. Demostrar que si el problema de parada se puede resolver, entonces todo len guaje recursivamente enumerable es recursivo. 6.1.2. Sea M una mquina de Turing con un alfabeto de entrada Z. Sea w, una codifi cacin de M sobre {0, 1}. Sea L = {w,w | M para sobre la cadena de entrada codificada como w } Demostrar que L es recursivamente enumerable. Demostrar que L no es recur sivo. 6.1.3. El problema de la entrada en un estado para mquinas de Turing se puede enunciar como sigue: Para una mquina de Turing arbitraria M = (>, Z, F. s, b, F, 8 ), el estado q y la cadena w e *, entrar M en el estado q cuando comience con la cadena tv? Demostrar que este problema es irresoluble aplicando la reduccin corres pondiente al problema de parada. 6.1.4. El problema de la vacuidad, es L (M) = 0 para una mquina de Turing arbitra ria, tambin es una problema irresoluble. Demostrar que este problema es irre soluble mediante la reduccin del problema de la cinta en blanco al mismo 6.1.5. Mediante reducciones apropiadas, demostrar que cada uno de los problemas si guientes es irresoluble:

www.FreeLibros.com

RESOLUBIIJDAD

245

(a) Para una mquina de Turing M con un alfabeto de entrada , es L (M) = *? (b) Para las mquinas de Tuung M\ y Mi arbitrarias son L (M\) = L (A2)? (c) Para una mquina de Turing M arbitraria con el alfabeto de cinta F y a e r , si M comienza con la cinta en blanco, escribir el smbolo a en la cinta alguna vez?

EL PROBLEMA DE CORRESPONDENCIA DE POST


Los problemas irresolubles que hemos visto hasta ahora ataen a las propiedades de las mquinas de Turing. El hecho de que el problema de parada sea irresolu ble tambin tiene consecuencias en otra reas. En muchos casos, es difcil obte ner dichas consecuencias a partir del problema de parada. En esta seccin vamos a obtener la irresolubilidad del problema de correspondencia de Post (al que nos referiremos como PCP). Un caso del PCP se llama sistema de correspondencia de Post y est com puesto por tres elementos: un alfabeto X y dos conjuntos A y 5, de cadenas de Z+, donde ambos tienen el mismo nmero de cadenas. Supongamos que A = {u\, U -2, U k ) y 5 = {vj, V 2 , v } . Una solucin para este caso (es decir, una solucin para el problema de correspondencia de Post) es una secuencia de ndices /j, 2 ,..., in, para los cuales ... un = v;,v,\... v. Por ejemplo, si E = {a, b}, A = {a, abaaa , ab) y B = {aaa,ab, /;}, la solu cin a este sistema de correspondencia de Post viene dada mediante |= 2 . 2 = 3 = 1, e 4 = 3 ya que U2U\U\U?, = abaaaaaab - V 2V1 V 1V 3. Conviene interpretar el sistema de correspondencia de Post como una colec cin de bloques de la forma u v Por tanto, el sistema de correspondencia visto anteriormente ser a acia i= 1
*

abaaa 5 ab i =2

>

ab b i=3

Una solucin se corresponde con la forma en la que se colocan los bloques uno al lado del otro, de manera que la cadena formada con las celdas superiores se corresponda con la cadena formada con las celdas inferiores. Por tanto, la so lucin anterior se representa

www.FreeLibros.com

246

TEORA DE AUTMATAS Y LENGUAJES FORMALES

abaaa ab

a aaa

a aaa < 3= 1

ab b

;,= 2

2= 1

(4= 3

Consideremos el sistema de correspondencia de Post dado por ab aba /'= I baa aa i =2 aba baa

i=3

Obsrvese que cualquiera de las soluciones debe empezar con i\ = 1, ya que ste es el nico bloque donde ambas cadenas empiezan por la misma letra. El si guiente bloque para esta solucin debe comenzar con una a en la celda superior; de aqu que o bien 2 = 1 o 2 = 3. Pero h - 1 no sirve ya que obtendramos ab aba i =1 ab aba 2= l

donde las cadenas superior e inferior no pueden ser iguales. Por tanto, ii debe ser 3, obtenindose ab aba i - 1 aba baa <2-3

De forma similar se puede demostrar que 3 debe ser 3, obtenindose ab aba aba baa (2= 3 aba baa /3= 3

'i = 1

Pero este razonamiento es infinito, ya que nunca podremos elegir un ndice que consiga que la cadena superior llegue a tener la misma longitud que la infe rior. Luego este sistema de correspondencia de Post no tiene solucin. El problema de determinar si un sistema de correspondencia de Post arbitra rio tiene solucin es el problema de correspondencia de Post (PCP). En los ejemplos precedentes, fue posible obtener un razonamiento (o una construccin especifica) que resolviera cada uno de los casos de PCP existentes. En general, pensamos que no hay ningn algoritmo que decida si un sistema de correspondencia de Post tiene solucin. Probaremos esto, demostrando que si

www.FreeLibros.com

RESOLUBILIDAD

247

PCP fuera resoluble entonces se podra resolver el problema de parada para las mquinas de Turing; es decir, el problema de parada para las mquinas de Tu ring se reducira al PCP. Primero modificaremos el PCP y demostraremos que si el PCP fuera resoluble entonces el PCP modificado tambin lo sera. En el PCP modificado (PCPM), buscaremos una solucin para el sistema de correspondencia de Post en la cual la secuencia de ndices debe comenzar por 1 (es decir, se debe tener que i'i = 1). De esta forma, buscaremos una secuencia de ndices 1, 2, ..., in para la cual u\u 2 ... un = v\v2 ... vn . Primero demostraremos la conexin necesaria entre PCPM y PCP. Lem a 6.2.1. Si el PCP es resoluble, entonces el PCPM tambin es resoluble.

Demostracin. Sean A = {mi, 112,..., Uk} y B = {vi, V 2 , v * } una muestra del PCPM con el alfabeto X. Supongamos que cada u = ala 2 . . . a y cada Vi=b]b2 ... b , donde las aes y las bes son smbolos del alfabeto X. Para cada i, sea y = a] $a 2 $ ... $aim .$ y z - $b] $b ,2 ... $bn

donde $ es un nuevo smbolo que no est en X. Obsrvese que y es justamente u aadiendo $ a cada uno de sus smbolos, y z es v,- con $ como prefijo de cada uno de sus smbolos. Sea % otro smbolo que no pertenece a X y sea
>0 = $ > l , Z0 = -Zl

yk+ \ = %,

zx+1 = $%

Consideremos un ejemplo del PCP dado por el siguiente conjunto de blo ques:
yo zo y1 Zl

yk Zk

yk + 1 Zk+ 1

Podemos afirmar que esta muestra del PCP tiene una solucin si y solo si el original de PCPM dado por A y B tiene solucin. Para probar esto, obsrvese que, si i, 2 ,..., ir proporciona una solucin para esta muestra de PCP, entonces ya que todos los z empiezan por $ y slo yo empieza por $, debemos considerar que 'i = 0. Es ms, ir debe ser k + 1 puesto que slo y* + 1 y Zk+\ coinciden en su ltimo smbolo. Por tanto, si hay una solucin para esta m uestra de PCP, debe estar formada por 0, i2, i %,..., k+ 1. Es decir, debemos tener yo
yk +1

zo

C /f+ 1

www.FreeLibros.com

248

TEORA DE AUTMATAS Y LENGUAJES FORMALES

o, de forma equivalente, $ah $ah $ ... $ a lm i $ ...$ % = $&!, $ bh $ ... $biH$ ... $% Si se ignoran los signos $, se obtiene

u\u2 ... ur V \V 2 ... vir


lo que es una solucin de la muestra de PCPM anterior. Por tanto, si el PCP es resoluble, entonces el PCPM es resoluble. El Lema 6.2.1 nos da la capacidad de demostrar que un PCP es irresoluble mediante la demostracin de que el PCPM es irresoluble. Esto simplifica nuestro problema puesto que el PCPM es ms estructurado. Demostraremos que si el PCPM fuera resoluble, entonces el problema de parada para mquinas de Turing tambin lo sera, y, por tanto, el PCPM no puede ser resoluble. Supongamos que el PCPM es resoluble, es decir, que existe un algoritmo general que se puede usar para determinar si cualquier muestra del PCPM tiene solucin. Entonces, nuestro objetivo es demostrar que hay un algoritmo que pue de determinar si una mquina de Turing M arbitraria, parar cuando empiece con una cadena arbitraria w sobre su cinta. Para realizarlo, observaremos que cualquier mquina de Turing puede con vertirse en una mquina que slo para en un estado de aceptacin. Es fcil de ha cer, puesto que si la mquina de Turing para en un estado que no es de acepta cin, se le pueden aadir transiciones que provoquen que la mquina entre en un bucle infinito. Obsrvese que el lenguaje aceptado por la mquina de Turing transformada es el mismo que el que acepta la mquina de Turing original. Lue go vamos a suponer que cualquier mquina de Turing es de esta forma. Ahora supongamos que M = (Q , E, T, s, b, F, 5) es una mquina de Turing y w es una cadena sobre E. Vamos a demostrar cmo construir una muestra del PCPM para la que la capacidad de determinar si existe una solucin, implique que M tenga la capacidad de parar sobre la entrada w [y, por tanto, determinar si
we L

(M)].

Sea $ un smbolo que no pertenece a T. Construiremos las listas /I = {i, 2 ,..., i(n} y B = {vi, V 2 , ..., V/,} del PCPM mediante cinco grupos. Para simplificar, representaremos dichas listas como bloques. El primer grupo estar formado por un nico bloque

M I V i

$
$qiw$

www.FreeLibros.com

RESOLUBILIDAD

249

en el que q\ es el estado inicial de M. El segundo grupo de bloques est formado por el bloque

$ $
y todos los bloques de la forma a
0

donde a es un smbolo no blanco de T. El tercer grupo se deriva de las transiciones de M. Si 5 (q , O) = (p, t, R), aadimos el bloque qo W Si 5 (q, O) = (p, x, L), incluimos el bloque de la forma

pyi para y e T ~ [b}. Si S (q, b) - (p, t, R), aadimos el bloque qS xp$ y si 5 (q, b) = [p, x, L), aadimos todos los bloques de la forma

Y<?$
PTC$ para toda y e T - {&}. El cuarto grupo se deriva del conjunto de estados de aceptacin de M. Para cada q e F y para todas o y x pertenecientes a T - {&}, aadimos los bloques aqx < 7 a^$ q$ $91 $q 9$$ . y s

www.FreeLibros.com

250

TEORA DE AUTMATAS Y LENGUAJES FORMALES

Ejemplo 6.2.1
Supongamos que M tiene el estado inicial 171 y el estado de aceptacin <73 con las transiciones dadas por la tabla

8 {q a) q\ q2

a =a (qi, b, R) (9 3 , a, L)

< 5= b (<?2. a, L) (qu a, R)

G= b (< ?2 , b, L) (< ?2, a, R)

Sea w ~ ab. La muestra del PCPM dada por la mquina de Turing y esta cadena estara representada por los siguientes bloques: Grupo 1: $ i= 1 Grupo 2:

a a i= 1 qxci bq2
i' = 5

b b i =3
para 8 (7 = 4

Grupo 3:

aq\b q^aa i~ 6
a<7i$

bq\b q2ba i=7 bq\$ q2bb$ i= 9 bq2a qiba

para 5 (qh b) = (q2, a, L)

q2ab%

para 8 (7/,, b) = (q2, b, L)

aq2a q^aa
'=10

para 8 (q2, a) = (4 3 , a, L)

= 11

qib aq\ i = 12

para 8 (< 72, b) = [q\, a. R)

www.FreeLibros.com

RESOLUBILIDAD

251

<72$ <72$ i = 13

para 8 {q2, b) = (q2, a, R)

aq-a < 7 3
i =14

aq-ib < 7 3 =15


><73$ < 73$ =19

bq-i < 7 3 (=16

bq^b < ?3
i =17

aq$>
< 73$ / = 18 $<?3

$qb
$<73

$< 73

= 20
ff3 $ $

i= 21

i r
i =22

Supongamos que tratamos de encontrar una solucin para dicha muestra de PCPM. Debemos empezar con

Esto deja un resto de q\ab$ en los v ,- que se debe ajustar a los u. Eligien do M 5W 3M 4, compensamos dicho resto e introducimos un nuevo resto de bqib%. Este resto puede ser cubierto mediante 3W 12M 4, lo que introduce un nuevo resto baq)%. Si seguimos realizando composiciones y generando restos (realizando en algn caso un retroceso cuando se realiza un mala eleccin entre todas las op ciones disponibles), se obtiene la solucin:
$
ndice

q\a bq2

b $ b b $ b

q2b aq\

$ b aq$ bq2a b $q3b a b ab% q,ba b $93 a b s b q2

$<M b $<?3b $ 43 $$ $ $43 b $93 $

3 4 3

12
x

4 3

11

21

2 3

20

3-21

22

La cadena formada mediante esta solucin es:


$71 ab $bq2b$baq 1%bqiab Sc]}bab$qj ab Sq^bSqi $ $

www.FreeLibros.com

252

TEORA DE AUTMATAS Y LENGUAJES FORMALES

Obsrvese ab e L (M), por lo que ser aceptada mediante la computacin


q\ab h bq2b (- baq\ H bq2ab Y- qbab

Las configuraciones individuales de esta computacin se separan mediante los signos $ y en el orden en que aparecen en la cadena formada en la solucin del PCPM. Si repasamos la forma en la que se definieron las u y las v en la construc cin de la muestra del PCPM para las mquinas de Turing M, nos vemos obliga dos a elegir el bloque
1 VI $ $<?1W$

para empezar una solucin (si es que existe alguna). La parte q\w que aparece entre los $ de vi representa la configuracin inicial de M como comienzo de la computacin de w. Entonces, si vv empieza por 0 y si 6 (q 1 , 0 ) = {qu, x, R ), cons truimos el par (u, v) como q\Q vqk de forma que, para compensar el resto que le falla a la cadena del cuadrado su perior, debemos construir la siguiente configuracin de M en el cuadro inferior. Entonces el resto se rellena aadiendo los smbolos restantes que faltan de w en las cadenas superior e inferior. Por tanto, aadiremos todos los pares de la forma

0,
0

$ $

Cuando en los cuadrados superiores se consigue la cadena que hay en el cuadrado inferior de la primera caja, la cadena inferior debe crecer para repre sentar la siguiente configuracin de M. Extenderemos la cadena de la misma for ma. En cada etapa, la cadena inferior va un paso por delante de la cadena supe rior, por tanto, cada vez que la cadena superior completa una configuracin de M, la cadena inferior tiene que construir la siguiente configuracin. Cada uno de los restos es necesario para incluir los pares (u, v) apropiados, de forma que la cadena superior concuerde con la inferior una vez que se llega a una configura cin M que sea de aceptacin.

www.FreeLibros.com

RESOLUBILIDAD

253

Primero obsrvese que, si la cadena de las u es de la forma a $ y la cadena de las v,- es de la forma a$;t$, entonces podemos am pliar lasw,- a a$x$ y las v,- a a$JC$y$, donde y representa la configuracin de M un movimiento despus. Ade ms, la cadena de las v,- es la nica cadena que se puede corresponder con la nue va cadena de las Para probarlo, supongamos que la cadena de las u es a $ mientras que la ca dena de las v; es a$Oi(j2 ... OtqOk + i o* + m$ para algn m > 0. Adems, su pongamos que 8 (q , (?* + 1 ) = (</, x, R). Las otras posibilidades son similares. Los bloques que nos permiten ampliar la cadena de las u son g,
ca

para / = 1 , 2 , , k

el bloque q<5k+ 1 xp bloques de la forma


0 0

/ ;

para i ~ k + 2 ,..., k + m

y finalmente el bloque

La cadena que se obtiene en las v es C X $C T i ... C):qOk + 1 ... Ok + ,$0 1 ... GkXpCk +2 0A + mS Obsrvese que y = O ... OkXpOk +2 k + > n es exactamente la configura cin de M que resulta de esta transicin. Es ms, puesto que en este proceso no hay ningn par (w, v) que se pueda elegir, no hay otra cadena de v que se pueda obtener. Recurdese que hemos supuesto que una mquina de Turing M para slo cuando acepta una cadena de entrada. Lem a 6.2.2. M para sobre la entrada w si y slo si hay una solucin de la muestra deri vada de PCPM. Demostracin. Supongamos que M para sobre la entrada w. En ese caso hay una se cuencia de configuraciones de M que comienza con q\\v y termina en un estado

www.FreeLibros.com

254

TEORA DE AUTMATAS Y LENGUAJES FORMALES

de aceptacin. Supongamos que dicha secuencia se representa mediante las ca denas x\, X2, X k para algn k. Segn lo visto anteriormente, podemos construir una secuencia de u de la forma $jci $jc2 $Xt- i$ y una secuencia de v,- de la for ma $xi$x 2 ... $Xk- \$xi$. Ya que M para en la configuracin x ^ debemos tener que X k - y q z para algn estado q e F y las cadenas y y z pertenecientes a P . Si al menos una de las dos cadenas no es una cadena vaca, podemos ampliar la ca dena u y la cadena v por medio de uno de los pares (u , v) del cuarto grupo y po siblemente distintos de

a,Oi

$ $

lo que hace que la cadena de las u sea como $jcj$X2$ ... $ X k - i$x*$ y la cadena de las V ,- como $*i$X2 $ ... $x*_ i $ X k $ Xt. donde x ^ tiene al menos un smbolo me nos que x ^ Repetimos esto, reduciendo la cadena que se encuentra entre el lti mo par de $ de la v hasta obtener cadenas de la forma: u:
v,-: $ x i $X 2$ . . . $ X k $ . . . $ $ X |$ X 2 $ . . . S x k S x i s S . . .

$q$

El ltimo grupo de pares (w, v) contiene un bloque de la forma q$$

$
el cual se puede aadir para obtener cadenas iguales. Por tanto, si M para sobre la entrada vv, podemos obtener una solucin para la muestra derivada del PCPM. A la inversa, supongamos que M no para sobre la entrada vv. Por lo anterior, las cadenas de las u y las v, de la muestra derivada del PCPM representan confi guraciones de M consecutivas. Ya que M nunca pasa a un estado de parada (to dos los cuales son de aceptacin), no se puede aadir ninguno de los pares (u, v;) pertenecientes al cuarto grupo. Por induccin se demuestra que el desa rrollo de las cadenas u y v siempre tiene un nmero distinto de signos $ y, por tanto, esta muestra del PCPM no tiene solucin. Entonces podemos deducir el siguiente teorema:

Teorema 6.2.3.

El PCP no es resoluble.

Demostracin. Sea M una mquina de Turing arbitraria y vv una cadena arbitraria (su ponemos que M para slo cuando acepta una cadena). Si el PCP es resoluble, en/

www.FreeLibros.com

RESOLUBILIDAD

255

tonces por el Lema 6.2.1 podemos determinar si tiene solucin la muestra del PCPM derivada de M. Por tanto, por el Lema 6.2.2 se puede determinar si M para sobre la entrada w. Ya que M era una mquina de Turing arbitraria y w una cadena arbitraria, existe un algoritmo para resolver una muestra arbitraria del problema de parada, lo que contradice el Teorema 6.1.1. Por tanto el PCP no es resoluble.

Ejercicios de la Seccin 6.2


6.2.1. El sistema de correspondencia de Post representado por aaa aa = 1 tiene solucin. Encontrarla. 6.2.2. Tiene solucin este sistema de correspondencia de Post? ab aba /'= 1 bba aa i= 2 aba bab i- 3 baa abaaa i= 2

6.2.3. Para cada uno de los siguientes sistemas de correspondencia de Post, obtener una solucin o demostrar que no existe. a aa i= 1 a aaa i= 1 ab a (= 1 bb b i =2 aab b (= 2 ba bab i=2 a bb (= 3 abaa ab (= 3 b aa i=3 ba ab i' = 4

(c)

www.FreeLibros.com

256

TEORA DE AUTMATAS Y LENGUAJES FORMALES

(d)

ab aba i= 1 aa aab

baa aa =2 bb ba

aba baa =3 abb b


=3

(e)

(f)

ab bb i= l

aa ba i =2

ab abb

bb bab
= 4

6.2.4. Aunque el PCP es irresoluble, se puede modificar el problema fcilmente para que sea resoluble. Demostrar que hay un algoritmo de decisin para el PCP co rrespondiente al sistema de correspondencia de Post con un alfabeto con un ni co smbolo. 6.2.5. Demostrar que, en la demostracin del Lema 6.2.1, si hay una solucin para la muestra del PCPM dada por A y B, entonces la instancia derivada del PCP tam bin tiene solucin. 6.2.6. Segn lo tratado despus del Lema 6.2.1, se pretende que la conversin de una mquina de Turing M en una mquina que slo para cuando acepta una cadena, sea una conversin fcil. De hecho, la conversin consiste en dos pasos. (a) Obtener una tcnica para identificar los estados que no son de aceptacin en los cuales M = (O. I . F. ,s\ b, F, 8 ) parara si entrara en ellos. (b) Supongamos que q es un estado que no es de aceptacin desde el cual no hay transiciones. Demostrar de qu forma se pueden construir transiciones que provocaran que M nunca parase en el caso de que entrara en q. 6.2.7. Para la mquina de Turing del Ejemplo 6.2.1 y la cadena w = abb, tiene solu cin la muestra derivada del PCPM? Qu ocurrira si w = al 6.2.8. Un mtodo alternativo para demostrar que el PCPM es irresoluble se obtiene a partir de las gramticas no restringidas. (a) Demostrar que el problema de los elementos de un lenguaje recursivamen te enumerable es irresoluble. (El problema de los elementos de lenguajes recursivamente enumerables se puede enunciar como sigue: Hay un al goritmo para decidir si w e L para un lenguaje L recursivamente enumera ble y una cadena arbitraria w?) * (b) Sea G = (N , I , S, P) una gramtica no restringida y w e T Construir tina muestra de PCPM de la siguiente manera: Sea u\ = F y vi = FS =>, donde F es un smbolo que no pertenece a /V u l. Por tanto, obtenemos el bloque

www.FreeLibros.com

RESOLUBILIDAD

257

F FS=> i= I Para cada x e N u E, aadiremos el bloque


A "

x Sea E un smbolo que no pertenece a iVu L, y aadimos el bloque => wE E Para cada produccin a >(5 de P, aadir un bloque a

I jl
Finalmente, aadir el bloque =>

i.

Para la siguiente gramtica no restringida y la cadena una muestra del PCPM: S->aASB\aBb aA aa aB ab bB -> bb

construir

ii.

Obtener una derivacin de a 3/;3 mediante esta gramtica.

iii. Obtener una solucin para la muestra del PCPM que hemos construido. (c) Esbozar una demostracin de la siguiente sentencia: Si G es una gramtica no restringida y w e + es una cadena, la muestra del PCPM construida como en la parte (b) tiene solucin si y slo si vv e L (G). (d) Probar que si el PCPM es resoluble entonces el problema de los elementos de un lenguaje recursivamente enumerable es tambin resoluble (demos trando que el PCPM es irresoluble).

www.FreeLibros.com

258

TEORA DE AUTMATAS Y LENGUAJES FORMALES

6.2.9. Demostrar que el PCP sigue siendo irresoluble incluso si los sistemas de corres pondencia de Post se restringen sobre alfabetos de dos smbolos. 6.2.10. Usar el PCP para demostrar que el problema de la vacuidad para las gramticas sensibles al contexto es irresoluble. [El problema de la vacuidad para gramti cas sensibles al contexto es, Para una GSC arbitraria G, L (G) = 0?]. Indica cin: Una consecuencia del Problema 5.6 es que, para cualquier autmata li nealmente acotado M, podemos construir una gramtica sensible al contexto que genere L (M ). Queremos demostrar que PCP es resoluble si el problema de la vacuidad para gramticas sensibles al contexto es resoluble, para ello consi deraremos un ALA que acepte slo las cadenas y para las cuales /, 4 :=Vf | ... v=y.

IRRESOLUBILIDAD Y LENGUAJES INDEPENDIENTES DEL CONTEXTO


En el Captulo 3 mostramos algoritmos para algunos problemas de decisin para gramticas y lenguajes independientes del contexto. En particular, obtuvimos una solucin para el problema de los elementos de lenguajes independientes del contexto, para el problema de si una gramtica independiente del contexto gene ra alguna cadena de terminales (el problema de la vacuidad), y para el problema de si una gramtica independiente del contexto genera o no, un lenguaje infinito. Adems dedujimos que muchas de las preguntas que se pueden responder para lenguajes regulares se convierten en preguntas irresolubles para gramticas inde pendientes del contexto. La irresolubilidad del PCP proporciona una herramienta til para demostrar la irresolubilidad de algunos problemas. Nuestro prim er planteamiento para demostrar que una pregunta acerca de gramticas o lenguajes independientes del contexto es irresoluble es demostrar que, si fuera decidible, entonces el PCP sera decidible. Para cada una de las pre guntas demostraremos cmo se construye una gramtica independiente del con texto a partir de un sistema de correspondencia de Post arbitrario, de forma que, si la pregunta acerca de las gramticas fuera decidible, entonces una muestra ar bitraria del PCP sera tambin decidible. Supongamos que 2, A y B es una muestra del PCP, arbitraria, donde A es u \,u 2,...,u k y B es vi, V 2 , ..., v, listas de cadenas sobre . Supongamos que C - {ai, 2 ,..., ak} son smbolos que no pertenecen a E. Vamos a construir dos gramticas independientes del contexto Ga y Gb que se derivan de A, B y C. Sea Ga = ({Sa}, u C, Sa, Pa) y Gb = ({Sb}, C, Sb, Pb ), donde Sa y Sb son smbolos nuevos. El conjunto de producciones Pa contiene todas las produc ciones de la forma Sa > u Sa a \ u a para *= 1 ,2 ,..., k. Igualmente, Pg contiene todas las producciones de la forma Sb v Sb a | v a para i = 1 , 2 ,..., k.

www.FreeLibros.com

RESOLUBIUDAD

259

Obsrvese que el lenguaje generado por Ga se compone de todas las cade nas no vacas de la forma
u|u2 ... uin_xunanain_x ... ai2at

De forma similar, Gb genera todas las cadenas no vacas de la forma


v / .v jj... vn_ xvina i an_ ] ... a ha h

Si la muestra anterior del PCP tiene una solucin, donde

U hU 2 ... U in_lU n= VjjVjj ...


entonces se obtiene que la cadena
... un_lundian_ l ... ah a t[ e L (Ga) n L (Gb)

A la inversa, si para una cadena w se tiene que w e L (G a ) r i L (G b), enton ces vv debe ser de la forma
w = w'ain an_l ... a i2a it

para un w' e L + y un sufijo a/i:a,ti _, ... a2aiv Pero la nica forma en que se puede generar este sufijo es generando el prefijo utui2 ... u\n , un de Ga y el prefijo v/,v2 ... vn_]vn de Gb; por tanto
w= un_ |unaina n_ , ... 2

= vivi2 ... Vin_{Vinainan_\ ... a2a] y entonces la cadena utu 2 ...

es una solucin del ejemplo del PCP. De lo que se deduce que dicha instancia del PCP tiene una solucin si y slo si L (Ga ) o L (G b) * 0.

T eorem a 6.3.1. El problema de la interseccin vaca para las gramticas inde pendientes del contexto es irresoluble. Demostracin. Supongamos que este problema es resoluble. Entonces hay un algorit mo para decidir si L (Gi) n L (G 2) = 0. Sean A, B y Z una muestra del PCP. Por la construccin anterior, se derivan las dos gramticas Ga y Gb- Usaremos el al goritmo para decidir si L (Ga) o L (Gb) = 0. E*sta muestra del PCP tiene solu cin si y slo si L (Ga) o L (Gb) * 0. Por tanto, podemos determinar si una muestra arbitraria del PCP es resoluble, lo que contradice el Teorema 6.2.3.

www.FreeLibros.com

260

TEORA DE AUTMATAS Y LENGUAJES FORMALES

Recurdese que una gramtica independiente del contexto es ambigua si hay dos derivaciones por la izquierda que son distintas para la misma cadena. La gramtica independiente del contexto S ^ > a S B \S S \e B -> b es ambigua, ya que hay dos derivaciones por la izquierda de a 2b2. Por desgracia, en general no es posible determinar si una gramtica inde pendiente del contexto es ambigua. Es decir, la cuestin de la ambigedad de gramticas independientes del contexto , es G una gramtica independiente del contexto ambigua?, es irresoluble. Para probarlo, vamos a suponer que la pre gunta es resoluble; es decir, que hay un algoritmo que decide sobre ella, para una gramtica independiente del contexto. Demostraremos que el PCP debera ser resoluble. Una vez ms, sean Z , A y 8 una muestra arbitraria del PCP y construyamos, como antes, las gramticas Ga y G b Definimos una nueva gramtica G basada en Ga y G b . Sea G - ({5, Sa , Sb }, X, S, P), en la cual el conjunto de produccio nes P viene dado mediante Pa u P b u {5 >Sa , S >Sb }. Obsrvese que G ge nera L (Ga ) u L (G b ). Es ms, debido a la estructura de las producciones de G,\ y G b , todas las derivaciones de G son derivaciones por la izquierda. Se ve fcilmente que las gramticas Ga y Gb no son ambiguas. Por ejemplo, en L (Ga ) cualquier cadena que termina con a se debe derivar a partir de la pro duccin Sa > UiSAa. Igualmente podramos decir qu producciones se aplicaron en etapas posteriores. Entonces se deduce que si G es una gramtica independiente del contexto ambigua, entonces lo es porque hay una cadena vv para la cual S => 5/i => w = y tambin S => Sb = > w = v/,v/2 ... vn an ... a2aix Es decir, w e L (G a) o L (G b). Pero L (G a ) tener una solucin de esta muestra del PCP. L (G b) & 0 es equivalente a ... unan ... ai2a

Por tanto, si hay un algoritmo para determinar si una gramtica inde pendiente del contexto es ambigua, entonces podemos determinar si existe una solucin para una muestra arbitraria del PCP. Esto es una contradiccin y por tanto podemos enunciar el siguiente teorema: * T eorem a 6.3.2. El problema de la ambigedad para gramticas independientes del contexto es irresoluble.

www.FreeLibros.com

RESOLUBILIDAD

261

Aunque el PCP es til para demostrar la irresolubilidad de muchos proble mas sobre lenguajes y gramticas de contexto libre, tambin hay otros mtodos. Este mtodo implica el problema de la vacuidad para mquinas de Turing (vase Seccin 6.2). Supongamos que M = (Q, , T, s = q\, b, F , 8 ) es una mquina de Turing y supongamos que q \w \- x \ ( - ... \ - x n es una computacin de M [con w e L (A/)]. Entonces la cadena q\w$x\ $X2$X $ ... se llamar computacin v lida (en la misma se supone que $ es un smbolo que no pertenece a F). Obsr vese que cada configuracin x es una cadena de F* QV' y que no empieza ni ter mina con b. Necesariamente xn tambin es una cadena de T* FT*. Obsrvese que toda computacin vlida de M se puede considerar como una cadena sobre F u Q u {$}. Definimos el conjunto de las computaciones no vli das de M como el complemento del conjunto de las computaciones vlidas con respecto a T u Q u {$}. Es lgico preguntarse cmo sera una cadena que consta de una computa cin no vlida. Si la cadena w es una computacin no vlida, entonces w satisfa ce una de las siguientes condiciones:
1

. w no es de la forma )()$>]$>2 $ $ $ , donde y es una configuracin de M si i es par o sino y f es una configuracin de M si i es impar. . yo no es de la forma q\x para algn x e I*.

3. yk no es una configuracin de aceptacin de M\ es decir, y* r * FF*. 4. 5. No se cumple que y t- yf+ i para algn i par. No se cumple que y f r- y, + | para algn i impar.

El conjunto de las cadenas que satisfacen la condicin 1 forma un lenguaje regular, al igual que los conjuntos que satisfacen las condiciones 2 y 3. Por tan to, las cadenas que satisfacen las condiciones 1 2 3 constituyen un lenguaje regular (Teorema 2.8.1). Por consiguiente, se puede construir un autmata finito para este lenguaje y entonces obtener una gramtica regular (y, por lo tanto, in dependiente del contexto). Los conjuntos de cadenas que satisfacen las condiciones 4 y 5 son lenguajes independientes del contexto. Para probarlo, construiremos un autmata de pila no determinista M que acepte el lenguaje de la condicin 4. M selecciona de forma no determinista una i para la cual y va precedido por un nmero par de signos $. Entonces analiza y y, cuando lo hace, introduce x en l pila, donde y,-1- a; est en M. Una vez-que M ' encuentra el $ del final derecho de y, compara y + 1 con el contenido de la pila, estrayendo los smbolos que coinciden. Obsr vese que se obtendr una coincidencia slo si y+ i = x R. Si en algn momento un smbolo no coincide, M' analiza la cadena restante y la acepta. Obsrvese que

www.FreeLibros.com

262

TEORA DE AUTMATAS Y LENGUAJES FORMALES

sera sencillo hacer que la pila tambin se vaciara cuando se hace una acepta cin. La construccin para el lenguaje que cumple la condicin 5 es similar. Por tanto, el conjunto de las computaciones no vlidas es la unin de dos lenguajes independientes del contexto y un lenguaje regular, y adems es un len guaje independiente del contexto. (Teorema 3.6.3). Es ms, podemos construir una gramtica independiente del contexto para este conjunto a partir de los dos ADPND y la gramtica regular. Entonces, hemos demostrado lo siguiente: L em a 6.3.3. El conjunto de las computaciones no vlidas de la mquina de Turing M es un lenguaje independiente del contexto. Entonces se puede demostrar el Teorema 6.3.4. T eorem a 6.3.4. Para una gramtica independiente del contexto arbitraria, la pregunta L (G) = Z*? es irresoluble. Demostracin. Supongamos que este problema es resoluble. Demostraremos que el problema de la vacuidad para mquinas de Turing es resoluble, con lo que se contradice el Ejercicio 6.1.4. Sea M = (Q , Z, r , q\, b, F, 5) una mquina de Turing arbitraria. Por el Lema 3.3, podemos construir una gramtica independiente del contexto G que genere todas las computaciones no vlidas de M. Obsrvese que L (M) = 0 si y slo si L (G) = Z*. Por tanto, si esta pregunta fuera decidible. entonces la pregunta de la vacuidad tambin lo sera. A partir del Teorema 6.3.4 se deducen varios resultados. Por ejemplo, si G\ es una gramtica independiente del contexto y G 2 es una gramtica que genera Z* (donde Z es el alfabeto de terminales de Gi), entonces la pregunta L (Gi) = L (G 2 )? es equivalente a la del teorema. Por tanto, no se puede deci dir si L (Gi) = L (G 2 ) para dos gramticas Gi y G2 arbitrarias, independientes del contexto. Si R es un lenguaje regular arbitrario y G\ es una gramtica independiente del contexto, la sentencia Es L (Gi) = R T no es resoluble. Para demostrarlo, consideramos R = ~L*, donde Z es el alfabeto de los terminales de Gi. Una vez ms se puede observar que Es L (G) = R T es equivalente a la sentencia del Teorema 6.3.4.

Ejercicios de la Seccin 6.3

6.3.1. Es decidible el siguiente problema? Sea G una gramtica regular arbitraria y G2 una gramtica independiente del contexto arbitraria. L (G|) n L (G i ) = 0?

www.FreeLibros.com

RESOLUBILIDAD

263

6.3.2. Los lenguajes L (Ga ) y L (GB) tienen una propiedad interesante. Si L (Ga) r> L (Gb) es regular, entonces es vaca. Demostrar esta propiedad. Para ello utilice el hecho de que para una gramtica independiente del contexto G, el problema L (G) es regular? es irresoluble. 6.3.3. Supngase que no hay ninguna computacin vlida de M. En qu afecta esto a L(M)7 6.3.4. Construir expresiones regulares para cada uno de los lenguajes de las condicio nes 1, 2 y 3, vistos antes del Lema 6.3.3. 6.3.5. Demostrar que L (G\) c L (G ?_) es un problema irresoluble para las gramticas independientes del contexto G\ y Gz6.3.6. Demostrar que es irresoluble que R c L (G) para un lenguaje regular R arbitra rio y una gramtica independiente del contexto G. 6.3.7. Para una gramtica G, independiente del contexto, arbitraria y para un lenguaje R regular arbitrario, la pregunta Est L (G) c RT es una pregunta decidible? [Indicacin: L (G) ciR si y slo si L (G) n R = 0 Qu sabemos sobre el len guaje L (G) n R Qu sabemos sobre la resolubilidad del problema de la va cuidad para L{G) n R l

PROBLEMAS
6.1. En este problema vamos a usar una tcnica distinta para llegar a la conclusin del Teorema 6.3.1, es decir, el problema de la interseccin vaca para las gram ticas independientes del contexto es irresoluble. Sea M (Q, X ,r , = q\ , b, F, 8 ) una mquina de Turing para la cual el sm bolo $ F. Recurdese que una manera de representar configuraciones de una mquina de Turing consiste en hacerlo mediante las cadenas de la forma Oia 2 ... OkqOk+ 1 ... o, donde los a e T y q e Q. Es decir, una configuracin es una cadena sobre F* QT*. Sean AB- { z e T <2F e y l- z est en M} $z | jy, z e T* QT* e y l- z est en M }

1. Demostrar que A y B son lenguajes independientes del contexto, fIndica cin: Esbozar un ADPND que acepte A (o B) y aplicar el Teorema 3.8.2.] 2. Demostrar que los lenguajes L \y Li son lenguajes independientes del con texto, donde Li = (A$) ( u r F r $ )
L2 = q{L* $ (5$)* ( e u r ' F T* $)

3.

Demostrar que L\ n L2 es exactamente el conjunto de la computaciones vlidas de M.

www.FreeLibros.com

264

TEORA DE AUTMATAS Y LENGUAJES FORMALES

4.

Supngase que el problema de la interseccin vaca para gramticas inde pendientes del contexto fuera resoluble. Construir un algoritmo que res ponda al problema Es vaco L (M) para una mquina de Turing M arbitra ria? Deducir que el problema de la interseccin vaca para lenguajes inde pendientes del contexto no es resoluble. Sea M una mquina de Turing que, para cada cadena de entrada, realiza al menos tres movimientos. (Obsrvese que cualquier mquina de Turing puede transformarse en una de este tipo). Demostrar que el conjunto de las computaciones vlidas de M es un lenguaje independiente del contexto si y slo si L (M) es finito. [Indicacin: S L (M) es finito, entonces el conjunto de las computaciones vlidas tambin es finito, con lo que quedara proba do. Por otro lado, si L (M) es infinito y las computaciones vlidas forman un lenguaje independiente del contexto, entonces hay una computacin v lida de la forma W |i>W 2$W 3$ ... con | w2\ de un tamao para el que se pue da aplicar el lema de Ogden (vase Problemas 3.1 y 3.2).] Demostrar que para una gramtica G arbitraria, independiente del contex to, el hecho de saber si L (G) es un lenguaje independiente de contexto, es irresoluble. Demostrar que es irresoluble saber si L(G) n L(G 2) es un lenguaje in dependiente del contexto, para las gramticas independientes del contexto G i y G2.

6.2. 1.

2.

3.

www.FreeLibros.com

7
Introduccin a la complejidad computacional

En la Seccin 4.4 demostramos que las distintas definiciones de una mquina de Turing no incrementaban la potencia computacional del modelo bsico. Hicimos esto para demostrar que una mquina de Turing de un tipo puede simular una mquina de Turing de otro tipo. Cuando se simulan las acciones de una mquina de Turing de un tipo ms complejo mediante una que corresponde a nuestra definicin bsica, es habitual que se consuma la mayora del espacio y del tiempo. El modelo de mquina de Turing que se use no afecta a la potencia computacional o a la capacidad para decidir un problema. Sin embargo, los requerimientos de espacio y tiempo para una computacin se ven claramente afectados por el modelo elegido. La comple jidad de una computacin mide los requerimientos de la misma en cuanto a es pacio y tiempo. En este captulo haremos una breve introduccin de la teora de la complejidad computacional con respecto a los autmatas y lenguajes.

7.1

COMPLEJIDAD ESPACIAL

La complejidad de una computacin se mide por la cantidad de espacio y tiempo que consume. Las computaciones eficientes tienen unas exigencias de recursos pequeas (considerando pequeas de una manera relativa). Los recursos que necesita una computacin que acepta cadenas de algn lenguaje, puede depender

www.FreeLibros.com

266

TEORA DE AUTMATAS Y LENGUAJES FORMALES

del tamao (longitud) de la cadena de entrada. Empezaremos por considerar los recursos espaciales. Definicin 7.1.1. Sea M una mquina de Turing con k cintas. Supongamos que, sobre cualquier entrada de longitud n, la cabeza de lectura/escritura de M consulta al menos S (ri) celdas de cualquiera de las cintas, donde S: N N es una funcin. Entonces se dice que M tiene una complejidad espacial S (ri) o que es una m quina de Turing espacialmente acotada por S (ri). Tambin se dice que L (M) es un lenguaje con complejidad espacial S (ri). Ejemplo 7.1.1 Consideremos el lenguaje L= [xyzy!\x,y<= X \ j e I/} Una mquina de Turing no determinista con dos cintas, que acepta el len guaje L tiene la entrada > v sobre la cinta 1. Cuando recorre w, averigua (de for ma no determinista) dnde empieza y, lo copia en la cinta 2. Contina el recorri do despus de copiar y, ignorando z,, y entonces debe averiguar (de forma no de terminista) donde empieza yR. Mientras recorre yR, compara los smbolos de la cinta 1 con los de la cinta 2. Suponiendo que la mquina de Turing comienza con la cabeza de la cinta 1 situada sobre el primer smbolo de la entrada, obsr vese que se recorre w en su totalidad, al igual que los b que siguen a u\ Es ms, en la cinta 2 se analizan tanto y como los blancos anteriores y posteriores. Por tanto, una cota espacial para esta mquina de Turing es S () = max [n + l,n + 2 ] - n + 2 Obsrvese que, cualquier S': N > N para la cual 5 (ri) < S' (n ) tambin es una cota espacial. Ya que una mquina de Turing recorre al menos una celda de cada cinta, la cota espacial debe ser al menos 1. Para tratar la complejidad espacial, a veces conviene suponer una mquina de Turing que tenga una nica cinta de lectura y una o ms cintas de trabajo. Vamos a modificar la definicin de complejidad es pacial para que signifique que las cabezas de lectura/escritura de las cintas de trabajo recorran como mximo S (ri) celdas. Debido a esto, no contamos las cel das recorridas sino que simplemente analizamos la cadena de entrada. Por lo tanto en algunas circunstancias puede darse el hecho de que la complejidad es pacial sea menor que la lineal. * Recurdese que en la Seccin 4.4 simulamos una mquina de Turing de k cintas mediante una mquina de Turing de una cinta con 2 k+ 1 pistas. Luego

www.FreeLibros.com

INTRODUCCIN A LA COMPLEJIDAD COMPUTACIONAL

267

podemos usar la misma simulacin para nuestra mquina de Turing con k cintas de trabajo y una cinta de entrada. Es ms, si S (n ) es una cota espacial para la mquina de Turing con k cintas, la simulacin no usar ms de S (n) celdas de las 2 k + 1 pistas de sus cintas de trabajo, ya que S (n) tambin es una cota espa cial para la simulacin. Por tanto tenemos el siguiente teorema: T eorem a 7.1.2. Si una mquina de Turing con k cintas de trabajo y cuya cota espacial es S (n) acepta el lenguaje L, entonces una mquina de Turing con una cinta de trabajo y cota espacial S (n) tambin lo acepta. El Teorema 7.1.2 dice que el nmero de cintas de trabajo usadas al aceptar un lenguaje, no afecta a la complejidad espacial de L. De hecho, podemos com primir mediante un factor constante la cantidad de espacio de cinta que se usa al aceptar un lenguaje, codificando distintos smbolos de la cinta en uno. Por ejem plo, si el alfabeto de la cinta est formado por a, b y b, podramos considerar una codificacin de pares de smbolos. Esto podra aumentar el tamao del alfabeto de cinta, pero tambin reducira el espacio de cinta a la mitad. T eorem a 7.1.3. Sea L un lenguaje aceptado por una mquina de Turing M con k cintas de trabajo, cuya cota espacial es S (n). Para todo c > 0, hay una mquina de Tu ring espacialmente acotada por cS (n) que acepta L. Demostracin, (esbozo) Sea r un entero que satisface que re > 1. Codificaremos el alfabeto de la cinta de M como bloques de r smbolos. Usaremos las transicio nes de M para definir las nuevas transiciones basadas en los bloques de r sm bolos. Como resultado del Teorema 7.1.3, podemos comparar el comportamiento asinttico de las cotas espaciales cuando comparemos los requerimientos espa ciales de las mquinas de Turing. Por tanto, la mquina de Turing M\ con cota espacial Si ( n ) - n 2 + 2 n + l y la mquina de Turing M i con cota espacial 5 2 () = 3n 2 - 1, tienen ambas la misma complejidad espacial S (n) - ir. Por otro lado, una complejidad espacial de n 3 es menor que las complejidades espaciales n4 o 2 . Recuerde que una DI de una mquina de Turing tiene en cuenta tanto el es tado actual como el contenido actual de la cinta. As, una cota espacial para una mquina de Turing proporciona una cota sobre el tamao de una DI. Si unimos la informacin que aporta una cota espacial con lo que sabemos acerca del tama o de los conjuntos de estados y de smbolos de cinta, obtendremos una cota para el nmero de movimientos que se realizan en una secuencia de aceptacin. Por ejemplo, una mquina de Turing con k cintas de trabajo con un conjunto de estados Q , un alfabeto de cinta V y una cota espacial S (n) tiene n + 2 posiciones

www.FreeLibros.com

268

TEORA DE AUTMATAS Y LENGUAJES FORMALES

para su cabeza de entrada, S (n) posiciones para las cabezas de lectura/escritura de cada una de las k cintas de trabajo, I contenidos posibles para cada una de las cintas de trabajo, y | Q\ elecciones a realizar para obtener el estado actual. Por tanto, hay un mximo de |(7| (n + 2) | r | fcS^ (S (n))* posibles DI. Enton ces, si M acepta su entrada en ms de \Q\ (n + 2 ) IFI (S (n))k movimientos, entonces hay alguna' DI repetida. Esta computacin de aceptacin contiene un bucle que puede ser omitido. De lo que se deduce que, si M acepta una entrada de longitud n, lo har en | Q\ (n + 2) I Fl*5^ (S (n))k movimientos como mxi mo. Obsrvese que si S (n ) > log n entonces se puede encontrar una constante c para la cual \Q\ (n + 2) IF I k S (S (n))k < cs (vase Ejercicio 7.1.2). Tendre mos el siguiente lema: Lem a 7.1.4. Sea M una mquina de Turing Je k cintas con complejidad espacial S (n), donde S (n) > log n. Entonces existe una contante c para la cual, si w es una en trada cualquiera con longitud | w| = n, de modo que: 1. 2. M tiene como mximo c5 ^ descripciones instantneas. Si M acepta vi-, entonces lo hace en c s movimientos como mximo.

Para eliminar los bucles (es decir, la secuencia de DI repetidas) de una com putacin de aceptacin de M, tenemos el siguiente corolario: C orolario 7.1.5. Sea M una mquina de Turing de k cintas con complejidad espacial 5 (n), donde S (n) > log n. Entonces existe una constante c para la cual, si M acepta la entrada w, entonces existe una computacin a i i- < X 2 i- ... i- cx, donde los o. son distintos y m < c i{n). En la Seccin 4.4 se demostr que las mquinas de Turing deterministas y no deterministas son iguales en cuanto a capacidad de aceptacin. La simulacin de una mquina de Turing no determinista mediante una determinista realizar una bsqueda exhaustiva de todas las secuencias finitas de movimientos hasta obtener una computacin de aceptacin (si existe). De hecho, vamos a ver que es posible que bajo ciertas circunstancias, se pueda construir una mquina de Tu ring determinista que acepte el mismo lenguaje que una no determinista y cuya complejidad espacial sea el cuadrado de la complejidad de la no determinista. Primero, observemos que, si M es una mquina de Turing de k cintas no de terminista, podemos construir una mquina de Turing determinista M\ de forma que. dadas dos DI de M, I\ e compruebe si I\ t- h . M\ intentar obtener siste mticamente, una transicin de M que produzca h a partir de I\. Si encuntra una, la acepta o devuelve verdad. Si no encuentra ninguna, la rechaza o de vuelve falso.

www.FreeLibros.com

INTRODUCCIN A LA COMPLEJIDAD COMPUTACIONAL

269

Supongamos que 1\ e h son DI de M y m > 0. Definimos el predicado PRO DUCE (/], h , m) que devuelve la respuesta a la pregunta I\ lo para algn t< m l Obsrvese que PRODUCE (/i, h , ni) se comporta como sigue: 1. 2. 3. 4. Si m = 0 e I\ - Ij, devuelve verdadero. Si m = 1 e I\ i- h , devuelve verdadero. Si m > 1 y PR O D U CE (/], /', [ f] ) y PRODUCE (/', I2, |_fJ) devuelven verdadero, entonces devuelve verdadero . En otro caso, devuelve falso .

Aadiendo una cinta de trabajo que funcione como una pila para la mquina de Turing determinista M i, podemos calcular el predicado PRODU CE (/i, h , m). En cada llamada recursiva, M\ introduce I\, h e T en la pila. To dos tienen una longitud mxima de S (n ). En este caso, para determinar si M acepta la entrada w, podemos evaluar PRODUCE (/), I/, ni), donde /i es una DI inicial de M, //-es una DI de aceptacin y m ~ c s (n\ [Obsrvese que m puede ser codificado en modo binario usando como mximo S (n ) log c bits o celdas. Lue go, en cada apilamiento se podran introducir (3 + log c) S (n) smbolos en la pila.] Ya que el parmetro m es dividido por dos en cada llamada recursiva, se hacen como mximo 1 + [log cs * w )1 = 1 + f S (n) log c] llamadas. Por tanto, la pila necesita un espacio igual a (1 + [S (n) log <?]) ( 3 + 5 (n) log c). Es decir, M\ tiene una cota espacial ci (S (n ))2, donde S (n) es la cota espacial de M y c\ es una constante. Ya que M i es determinista, podemos usar una mquina de Turing determinista con complejidad espacial o (5 (n ) ) 2 que acepta el mismo lenguaje que la mquina de Turing no determinista M, y la cual usa un espacio de 5 (n) para aceptar una cadena. Obsrvese que lo anterior depende totalmente del valor de S (n). Para la en trada w de longitud |vv| = n, si sabemos el valor de S (n), podemos calcular m = cs (li>y determinar las DI I \ , h t con una longitud apropiada, para determi nar si M puede aceptar w de forma determinista en un espacio c\ (S (n ))2. Si no sabemos el valor de S (n), no podemos determinar la longitud mxima de una DI o la longitud mxima de una computacin de aceptacin. Definicin 7.1.6. Se dice que una funcin S (n ) es totalmente construible* en espacio si hay una mquina de Turing Ms que tiene una cota espacial 5 (n) y, para toda en trada de longitud n, Ms usa exactamente las S (n) celdas de su cinta de trabajo.
* N O T A : A p e sa r d e q u e e ste trm in o n o se en cu e n tra en la ltim a ed ic i n del D R A E , lo acu am o s d e b id o a que es el ad je tiv o q u e m e jo r e x p re sa el h e ch o d e q u e u n a fu n ci n se construye.

www.FreeLibros.com

270

TEORA DE AUTMATAS Y LENGUAJES FORMALES

Obsrvese que si S (n ) es totalmente construible en espacio entonces, dada una entrada w de longitud |w | = n, podemos usar Ms para distinguir las S (n ) celdas de la cinta de trabajo. La mquina de Turing Mi precedente, puede usar dichas S (n ) celdas para generar la DI y calcular m = cs< 'n\ Ntese que Ms es ne cesariamente una mquina de Turing determinista y, por tanto, la mquina de Turing compuesta M , construida a partir de Mi y Ms tambin es determinista. Finalmente, obsrvese que por el Teorema 7.1.2, M ' tiene una cota espacial de (S (n))2. Luego hemos demostrado el siguiente teorema: Teorema 7.1.7. (Teorema de Savitch) Si S (n ) es totalmente construible en espacio y M es una mquina con Turing no determinista de complejidad espacial S (n), en tonces hay una mquina de Turing M' determinista, con complejidad espacial (S (n ))2 para la cual L (M) = L (M'). Los lenguajes acotados espacialmente forman una jerarqua en funcin del espacio requerido para que sean aceptados. Definicin 7.1.8. La familia de los lenguajes aceptados por mquinas de Turing deter ministas con complejidad espacial S (n) es ESPACIOD (S (n )). La familia de los lenguajes aceptados por mquinas de Turing no deterministas con complejidad espacial S (n ) es ESPACION (S ()). Estas clases se conocen como clases de complejidad espacial. Resumiremos en el Teorema 7.1.9, las relaciones que, segn hemos visto, existen entre estas clases de complejidad. Teorema 7.1.9. Sean Si, 5 2 y 5 funciones de N en N . Supongamos que Si (n) < S2 () para todo n, y que c > 0. Entonces 1. 2. 3. . 4. 5. ESPACIOD (Si (n)) c ESPACIOD (S2 ()). ESPACION (S, (n)) c ESPACION (S2 ()). ESPACIOD (S (n )) c ESPACION (S (n)). ESPACIOD (S (n )) = ESPACIOD (c S ()). ESPACION (S ()) c ESPACIOD ((S (n))2).
*

La inclusin de la parte (1) del Teorema 7.1.9 es propia bajo determinadas circunstancias. Vamos a ofrecer el siguiente teorema, el cual no demostraremos:

www.FreeLibros.com

INTRODUCCIN A LA COMPLEJIDAD COMPUTACIONAL

271

T eorem a 7.1.10.

Si S2 (n) es totalmente contruible en espacio y

n-o S 2 (n) y si S\ (n ) > log n y


2

(n) > log n, entonces existe un lenguaje

L ESPACIOD (S2 (n)) - ESPACIOD (Si (n )) Obsrvese que el Teorema 7.1.10 no requiere que Si (n) < S 2 (n) para todo n. Si, adems de los requisitos que necesita el Teorema 7.1.10, tambin tenemos que S] (n) < S 2 (n ) se cumple para todo n, entonces ESPACIOD (Si ()) c ESPACIOD (S2 ())> es decir, se cumple la inclusin propia. Definicin 7.1.11. Si una mquina de Turing determinista con complejidad espacial S (n) = aun + ak - \nk ~ 1 + ... o, acepta el lenguaje L, entonces se dice que L es un lenguaje de la clase ESPACIOP. Si la mquina de Turing que acepta L es no determinista y tiene cota espacial polinmica, entonces L es un lenguaje de la clase ESPACIONP. Obsrvese que, puesto que
ciknk + ak-\nk~ 1 + ... o< ((*| + l-- 1 1 + ... + |oI) nk

por el Teorema 7.1.3 se obtiene que ESPACIOD ( aknk + ak _ \nk~ 1 +


...

a0) c ESPACIOD (nk)

Por tanto, podemos caracterizar ESPACIOP = 1 ESPACIOD (nk). De manera similar, ESPACIONP = 1 ESPACION (nk). Obsrvese que el teo rema de Savitch (Teorema 7.1.7) dice que ESPACIONP = ESPACIOP ya que ESPACION (nk ) c ESPACIOD( nk).

Ejercicios de la Seccin 7.1


7.1.1. Sea M una mquina de Turing de una cinta, definida mediante las transiciones que damos ms abajo_y en la que #3 es el nico estado de aceptacin y <71 es el estado inicial. Supongamos que el alfabeto de la cinta es {a, b, b}. Obsrvese que L(M) = {a2k + lb\k> ()}. Construir una mquina de Turing M' para la cual L (M') = L (M), pero de forma que W tenga como smbolos de la cinta codifica ciones de pares de smbolos de la cinta de M (vase Teorema 7.1.3).

www.FreeLibros.com

272

TEORA DE AUTMATAS Y LENGUAJES FORMALES

A{q\,a) = {(q2,a,R )}, A(<?2, b)= {(qx b,R)}

A(q 2,a) = {(ql,a,R )}

7.1.2. En este problema derivamos la constante c del Lema 7.1.4, haciendo referencia a las observaciones que preceden al Lema 7.1.4. (a) Para log n < S (), demostrar que log|r| (n + 2) < (k + 1) S (n) con lo que

(n + 2) < | r l (+1)S<").
(b) Usar la parte (a) para demostrar que (n + 2) (5 ())* < | r | (2*+ (c) Obtener una constante c para la cual | Q \ (n + 2) ITI * \ s (n))k < cs

7.1.3. A cul de las clases de complejidad espacial pertenecen los siguientes tipos de lenguajes? Lenguajes regulares, lenguajes independientes del contexto, lengua jes sensibles al contexto. 7.1.4. Demostrar que, si una mquina de Turing con cota espacial S (n) > log n acepta el lenguaje L, entonces existe una mquina de Turing con una cota espacial S (n ) que acepta el lenguaje L y que para sobre todas las cadenas. (Por tanto, los lenguajes espacialmente acotados son lenguajes recursivos).

7.2

COMPLEJIDAD TEMPORAL
Aunque el espacio es un recurso importante de cualquier mquina de Turing, el tiempo de computacin tambin es importante. En esta seccin consideraremos que la complejidad temporal de las computaciones de mquinas de Turing, de pende del tamao de la cadena de entrada. El tiempo se mide por el nmero de movimientos que hace una mquina de Turing.

Definicin 7.2.1. Sea M una mquina de Turing de k cintas. Supongamos que M realiza como mximo T (n) movimientos sobre toda cadena de longitud n y para una funcin T: N >N . Entonces se dice que M tiene complejidad temporal T (n) o que es una mquina de Turing con cota temporal T (). Adems se dice que L (M) es un lenguaje temporalmente acotado por T (ri) o con complejidad tem poral T (n). Obsrvese que, para que una mquina de Turing lea su entrada, debe reali zar al menos n + 1 movimientos. Por tanto, T (n) > n + 1 para cualquier cota temporal T (n). Ejemplo 7.2.1 Consideremos el lenguaje L = {xcx!\x e X '}. Para reconocer el lenguaje L con una mquina de Turing de una cinta, podemos recorrer la entrada de atrs

www.FreeLibros.com

INTRODUCCIN A LA COMPLEJIDAD COMPUTACIONAL

273

hacia adelante comparando los smbolos del comienzo con los smbolos del fi nal hasta que encontremos la c central. Cada recorrido completo a travs de la entrada requiere 2 1 movimientos, donde t es la longitud actual de la cadena de entrada no comparada. En cada recorrido completo, t se reduce en 1. Esto contina hasta que t = 1 (la c est en el centro). Por tanto, tenemos que T{n) = n2 + n - 2 Tambin podramos reconocer L usando una mquina de Turing de dos cintas. La mquina de Turing copia los smbolos de la entrada en la segunda cinta hasta que encuentra la c central. Entonces, en cada paso mueve la cabeza de la segunda cinta hacia la izquierda, comparando los smbolos de la segunda cinta con los de la primera. Esta mquina de Turing requiere n + 1 movimientos para reconocer una entrada de longitud n. Por tanto, para sta, T (n) = n + 1. El Ejemplo 7.2.1 sugiere que la complejidad temporal est relacionada con el nmero de cintas disponibles para realizar la computacin. El Teorema 7.1.3 deca que si se trataran los smbolos de las mltiples cin tas de forma ingeniosa, como un nico smbolo, podramos reducir linealmente el espacio requerido para la computacin. Se puede aplicar lo mismo en el caso del tiempo; teniendo en cuenta ciertas restricciones, se puede incrementar lineal mente la velocidad de una computacin. Supongamos que M es una mquina de Turing de una cinta. Consideramos M', la cual se deriva de M por medio de la unin de m smbolos de la cinta en uno slo. (El alfabeto de la cinta de M ' debera ser P = F ", donde F es el alfabe to de la cinta de M). Entonces, cuando la cabeza de lectura/escritura de M entra en un bloque de m celdas de la cinta, entra o por el lado derecho o por el izquier do. Al principio, la cabeza de lectura/escritura de M se encuentra sobre la celda del extremo izquierdo del primer bloque de m celdas. M ' puede usar los estados para guardar en qu lugar del bloque de m celdas, que corresponde a una nica celda de la cinta de M', se encuentra la cabeza de M. Una vez que la cabeza de M entra en un bloque de m celdas, realiza una secuencia de movimientos antes de salir. Dichos movimientos pueden cambiar el contenido del bloque de m celdas. Es decir, cuando la cabeza de M ' se mueve desde una celda de la cinta, debemos escribir en dicha celda el bloque de m smbolos que se corresponde con el conte nido de la cinta de M cuando su cabeza se mueve desde el bloque de m celdas correspondiente. Podemos determinar, qu tiene el bloque de m celdas mirando simplemente el comportamiento de M sobre la cinta que contiene el blo.que de m smbolos. Por tanto, dado un bloque de m smbolos, podemos determinar qu bloque de m smbolos lo sustituir. Es decir, podemos determinar que escribir M sobre su cinta cuando retira su cabeza del smbolo actual. Consideremos la mquina de Turing M que calcula la funcin de cadena f((a b )n) = (ab)n+ \ para la cual se tienen las siguientes transiciones:

www.FreeLibros.com

274

TEORA DE AUTMATAS Y LENGUAJES FORMALES

A (qu a) = (q2, a, R) A (q2, b) = (4 1 , b, R ) A (qu b) = (< 73 , a, R) A (< 73 , &) = (q4, /?)

A (qu b) = (<75, b, S) A (q 2, a) = (q5, a, S) A (4 3 , a) = (q5, a, S) A (4 3 , b) = (q5, b, S)

(aqu, el estado inicial es q\, y <74 es el nico estado final), Para construir una mquina de Turing M', que una las dos cintas de celdas de M en una sola celda, necesitamos un alfabeto r = {aa, ab, b a bb, bb, ab, ba, bb, bb } Obsrvese que esto es esencialmente F x F . Las transiciones de M ' tienen en cuenta las acciones que realiza M sobre cada bloque de smbolo de las dos cintas. Por tanto, M ' tiene las siguientes transiciones: A' ip u ab) = (ph ab, R) A ' (pu ab) = (p3, ab, R) A' (p u ba) = (pa, ba, R) A' (pu bb) = (p3, bb, R) A' (pu bb) = (p2, ab, R) A' (pu aa) = (p3, aa, R) A' (pu bb) = (p3, bb, R) A' (pu bb) = (p3, W , R)

Obsrvese que, para una computacin de M sobre la entrada (ab)", se cum ple que T (n) = 2 n + 2, mientras que para la computacin correspondiente a M ' sobre la entrada (ab)" se cumple T ' (n) = n + 1 . Esto, todava se puede mejorar. Si sabemos el contenido de los bloques de m smbolos que ocupan las celdas que se encuentran a la izquierda y a la derecha del bloque actual de m celdas de M, podemos determinar sus contenidos despus de que M mueva su cabeza hacia la izquierda o hacia la derecha del bloque ac tual de m celdas. Por tanto, podemos determinar el contenido de las celdas de las dos cintas que se encuentran a la izquierda o a la derecha de la celda de la cinta actual de M '. Puesto que M requiere al menos m movimientos para salir de la re gin de 3 m celdas, podemos simular al menos m movimientos de M ajustando las celdas de las tres cintas de M ' y moviendo su cabeza. Supongamos que M ' mueve su cabeza una celda hacia la izquierda, dos cel das hacia la derecha y despus una celda a la izquierda, guardando (por medio de los estados) el contenido de las celdas que se encuentran a la izquierda y la derecha de la celda actual. En este momento, tenemos informacin suficiente como para determinar cul ser el contenido de esas tres celdas, cuando M mue va su cabeza fuera de las 3m celdas correspondientes. En cuatro movimientos, M' puede actualizar el contenido de las celdas derecha, izquierda y actual do for ma adecuada y mover su cabeza al lugar que corresponde a la posicin de la ca beza de M cuando ha llegado al final de dichos movimientos. Por tanto, en ocho

www.FreeLibros.com

INTRODUCCIN A LA COMPLEJIDAD COMPUTACIONAL

275

movimientos M ' simula al menos m movimientos de M. Si M hace T (n ) movi mientos, M ' hace como mximo 8 1 T movimientos. m 11 Aunque hemos centrado nuestra atencin sobre una mquina de Turing de una cinta, no se plantea ningn problema si extendemos lo visto a una mquina de Turing de k cintas. Sin embargo, antes se supona que la entrada se le propor ciona a M ' en forma codificada. Si M es un mquina de Turing de k cintas con k> 1, podemos construir una mquina de Turing M ' como antes pero aadindo le la capacidad de recibir la misma cadena de entrada de M y codificarla. M ' simplemente recorre la cinta sobre la que se encuentra la entrada, codificndola y uniendo m smbolos en uno, escribiendo el resultado en la segunda cinta. Esta segunda cinta se convierte en la cinta de entrada, mientras que la primera pasa a ser la cinta de trabajo. Obsrvese que realiza n movimientos para recorrer la en trada y movimientos para mover la cabeza de lu nueva cinta de trabajo a la posicin de comienzo de la cadena de entrada codificada. Por tanto, en n + I~ml+ 8 r ~ r l movimientos, M ' puede realizar la misma computacin que M hace en T (n) movimientos. Consideremos la cantidad n + f~ ] + 8 p -'-]. Primero observemos que, para cualquier nmero x, [ x ~ |< x + l. Segundo, obsrvese que, cuando n > 6 , T (n )> 7. Finalmente, supongamos que inf por lo tanto, para cual quier constante d existe un N tal que, para n > N, tenemos > d. Suponiendo que n > N > 6 , obtenemos:

/ = (n + 2 ) + + m
8

^ ^ + 7< m

< 2n+ + S ^ - + T (n )< m m ^ 2 T{n) l T in ) + T (n) + 1 d dm m


\
\

dm

Por tanto, dado un c > 0, podemos ajustar m y d de forma que el nmero de movimientos de M' sea como mximo cT (). sta es la aceleracin lineal que buscbamos.

www.FreeLibros.com

276

TEORA DE AUTMATAS Y LENGUAJES FORMALES

Teorema 7.2.2. Sea k > 1. Supongamos que inf _ > < * >~ Si la mquina de Turing de k cintas con complejidad temporal T (), acepta el lenguaje L, entonces, para c > 0, la mquina de Turing de k cintas con complejidad temporal cT (n ) tambin acepta L. Obsrvese que si L es aceptado por una mquina de Turing de una cinta con cota temporal T (/?), entonces tambin es aceptado por una mquina de Turing de k cintas con complejidad temporal T (n ) para k> 1. Por tanto, obtenemos el si guiente corolario: Corolario 7.2.3. Sea inf _> Si una mquina de Turing que tiene complejidad temporal T (n) acepta L, entonces, para todo c > 0, una mquina de Turing con complejidad temporal cT (n) acepta L. Si T\ (n ) < Ti (n) para todo n y L es un lenguaje con complejidad temporal T\ (n ), entonces L tambin tiene complejidad temporal T2 (n). En particular, si L es un lenguaje con complejidad temporal
T 1 ( n ) = cik n k

cik

_1

nk ~ 1+

... +

ao

obsrvese que T\ (n) < ( | a* + | a* - 1 1 + ... + | ao I) nk para todo n. Aplicando lo anterior con

IQk I + Ia * - 1 1+ .. + | o l
se obtiene que L tiene complejidad temporal nk. En el Ejemplo 7.2.1, vimos cul era la complejidad temporal de L = [ x c d |jcg X*}. Cuando usbamos una mquina de Turing con una cinta, la complejidad temporal era de n2. Sin embargo, con dos cintas, L tiene compleji dad temporal n. De esto se obtiene el siguiente teorema: Teorema 7.2.4. Si L es aceptado por una mquina de Turing de k cintas con compleji dad temporal T (t) y si inf _> = 00, entonces L es aceptado por una mqui na de Turing de una cinta que tiene complejidad temporal (T ())2. Demostracin. Si una mquina de Turing de una cinta con complejidad temporal T (), acepta el lenguaje L , entonces, puesto que T () < (T (n ))2 para todo n, L tambin es aceptado por una mquina de Turing de una cinta con complejidad ( T (n ))2. Supongamos que L se acepta mediante una mquina de Turing con k > 1 cintas y cota temporal T (n). Consideramos una simulacin de una mquina de Turing de k cintas por medio de una mquina de Turing de una cinta, como vimos en la Seccin 4.4. Despus de t movimientos, los marcadores de cabeza pueden estar

www.FreeLibros.com

INTRODUCCIN A LA COMPLEJIDAD COMPUTACIONAL

277

2 1 celdas ms all. Cada movimiento de la mquina de Turing de k cintas corres ponde a un barrido de todas las celdas marcadas que se analizan mediante las k cabezas, seguido por un barrido hacia atrs para actualizar los marcadores de ca beza y el contenido de las celdas. El barrido hacia atrs realiza cinco movimien tos por celda. Por tanto, t movimientos de la mquina de Turing de k cintas co rresponden a 12? movimientos de la simulacin. Luego T (ri) movimientos pue den requerir

T(n)
12 t = 6 (T (n ))2 + 6T (n) t= l movimientos en la simulacin. La simulacin se puede acelerar va el Teorema 7.2.2 a (T (ri))2. A continuacin definiremos unas clases anlogas a las clases de compleji dad espacial ESPACIOD y ESPACION: Definicin 7.2.5. La familia de los lenguajes aceptados por mquinas de Turing deter ministas con complejidad temporal T (ri) es TIEMPOD (T (ri)). La familia de los lenguajes que aceptan las mquinas de Turing no deterministas con complejidad temporal T (ri) es TIEMPON (T (ri)). Dichas clases se llaman clases de compleji dad temporal. T eorem a 7.2.6. 1. 2. 3. 4. Si Ti (ri) < T2 (ri), entonces TIEMPOD (Ti (n)) c TIEMPOD (T2 ()). Si T\ (ri) < T2 (ri), entonces TIEMPON (Ti ()) c TIEMPON (Tz (ri)). TIEMPOD (T (ri)) c TIEMPON (T (ri)). Si inf _> co =< x > , entonces TIEMPOD (T (ri)) - TIEMPOD (cT (ri)) para todo c > 0 .

Las partes 1 y 2 del Teorema 7.2.6 dicen que todo lenguaje con complejidad temporal Ti (ri) tambin tiene complejidad temporal Ti (ri) para T2 (n) mayor que Ti (ri). Es lgico preguntarse cunto ms grande debe ser T- (n), ya que hay lenguajes con complejidad temporal T2 (ri) que no tienen complejidad temporal Ti (ri). La parte 4 del Teorema 7.2.6 dice que si Ti (ri) satisface inf _*, entonces T2 (n) debe ser mayor que una constante multiplicada por Ti (ri). El Teorema 7.2.8 el cual presentaremos sin realizar su demostracin, nos propor ciona las condiciones suficientes para que existan lenguajes que pertenezcan a TIEMPOD (T2 ()) que no estn en TIEMPOD (Ti (n)). El Teorema 7.2.8 de pende de la siguiente definicin, la cual es anloga a la Definicin 7.1.6.

www.FreeLibros.com

278

TEORA DE AUTMATAS Y LENGUAJES FORMALES

Definicin 7.2.7. Una funcin T (n) es totalmente contruible en tiempo si existe una m quina de Turing acotada temporalmente mediante T (n) que tenga exactamen te una duracin de T (n) sobre todas las cadenas de longitud n. T eorem a 7.2.8. Si Tz (n) es totalmente construible en tiempo y

i n f 7i ( n ) l og( 7i PQ) _ 0
-*> Tz (n)

entonces existe un lenguaje L e TIEMPOD (Tz (n)) - TIEMPOD (Ti (n)). El Teorema 7.2.9 presenta la relacin que existe entre tiempo y espacio. T eorem a 7.2.9. Si L e TIEM POD (/( )), entonces L e ESPACIOD (/(/?)).

Demostracin. Supongamos que la mquina de Turing que realiza como mximo f ( n ) movimientos sobre la cadena de longitud n, acepta el lenguaje L. Entonces M puede inspeccionar 1 + f(n ) celdas de la cinta como mximo, y por tanto L e ESPACIOD ( f( n ) + 1). P e ro /(n ) + 1 < 2 /( ) , ya que las cotas temporales son al menos n + 1, luego por el Teorema 7.1.3, L e ESPACIOD ( / (ti)). Hay una forma importante de relacionar el tiempo determinista y el tiempo no determinista. Supongamos que M es una mquina de Turing 110 determinista con una cota temporal T (n ). Vamos a contar (y limitar) el nmero de posibles DI de M. Si M tiene k cintas, entonces M puede inspeccionar T (n) + 1 celdas como mximo durante el tiempo T (n). Por tanto, en T (n) movimientos una cinta puede llegar a contener como mximo una cadena de longitud T (n) + 1. Si T es el alfabeto de la cinta de M, hay I r | r (") + 1 cadenas de longitud T (n ) + 1 posi bles. ste es el nmero de cadenas que M puede dejar sobre su cinta. Puesto que hay k cintas, existen | r | A(r^") + 1) cadenas posibles que describen el contenido de las cintas de M despus de realizar T (n) movimientos. Es ms, cada cabeza de lectura/escritura puede estar sobre una de las T (r) + 1 celdas posibles de cada una de las k cintas. Si Q es el conjunto de estados de M, entonces el nmero de DI posibles sobre una cadena de entrada n es \Q \ ( T ( n ) + l ) k | r | ^ r W + 1 > < c7' (,,) para una constante c elegida de forma apropiada. Sistemticamente, vamos a buscar una DI de aceptacin que sea accesible desde la DI inicial de M mediante T (n) movimientos y usando una mquina de Turing determinista que genere y compruebe dichas DI. Primero buscaremos las DI a las que se pueden acceder en un nico movimiento, luego las que son accesibles en dos y as sucesivamente,

www.FreeLibros.com

INTRODUCCIN A LA COMPLEJIDAD COMPUTACIONAL

279

hasta llegar a T (n ) movimientos. Sea r la longitud de una DI. Suponiendo que generamos las DI una tras otra sobre la cinta, realizaremos como mximo 3 r mo vimientos para generar y comprobar cada DI. En cada etapa hay como mximo DI siguientes. Por lo tanto, cada etapa requiere como mximo 3?r/( "f mo vimientos. En esta bsqueda hay como mximo T (n ) etapas, de modo que dicha bsqueda requiere 3 rT (n) c 1 (n) movimientos. La longitud de una DI es como mximo r = 1 + k (T (n) + 2); por tanto, dada una constante d elegida de forma apropiada, la bsqueda requiere d 1 (n) movimientos como mximo. Veamos el siguiente teorema: T eorem a 7.2.10. Si una mquina de Turing no determinista con complejidad temporal T (n ) acepta L, entonces existe una mquina de Turing determinista con comple jidad temporal d Tin\ para alguna contante d, que tambin acepta L. Es decir, si L e TIEMPON (T ()), entonces hay una constante d para la cual L e TIEMPOD ( d TW).

En el Lema 7.1.4 se observ que si M tiene complejidad espacial S (n ) > log n, entonces podemos limitar el nmero de DI distintos que M tiene, por cs para alguna constante c. Si M es una mquina de Turing determinista, entonces que la misma DI aparezca dos veces, indica que M entra en un bucle y, por tanto, nunca para o no acepta la cadena. De esto se deduce que se puede construir una mquina de Turing M', determinista, que simule M y lleve la cuen ta de los movimientos sobre una cinta adicional. Si la cuenta supera cs ^n\ la si mulacin tiene DI de M repetidas, y en consecuencia M ' para y rechaza la cade na. Est claro que M ' tiene una cota temporal de 2cs ^n\ Si aplicamos el Teorema 7.2.2 se obtiene el siguiente teorema:

Teorem a 7.2.11. Si L s ESPACIOD (5 ()) y S { n )> \o g n , entonces L e TIEMPOD (c5 ('!)) para una constante c.

En la Definicin 7.1.11, agrupamos en una clase todos los lenguajes que aceptaban las mquinas de Turing deterministas con cota espacial polinmica y todos los que aceptaban las mquinas de Turing no deterministas con cota espa cial polinmica, en otra. El teorema de Savitch demuestra que esjas dos clases de lenguajes son la misma puesto que se pasa de espacio no determinista a espa cio determinista slo con elevar al cuadrado la cota espacial. Del Teorema 7.2.10 se puede deducir que no se puede obtener un resultado tan bueno para las clases de complejidad temporal ya que el pasar del no determinismo al determinismo, eleva a un exponente la cota temporal.

www.FreeLibros.com

280

TEORA DE AUTMATAS Y LENGUAJES FORMALES

Definicin 7.2.12. La clase T se compone de todos los lenguajes que acepta una m quina de Turing determinista que tiene una cota temporal polinmica. La clase 5\!P se compone de todos los lenguajes que aceptan mquinas de Turing no de terministas que tengan una cota temporal polinmica. Obsrvese que, para todo n ak nk + ak - \ nk~ 1 + ... + a0 < (|a* | + |a * - i | + ... + | o |) nk as que, aplicando el Corolario 7.2.3, se obtiene TIEM POD (ak nk + ak _ i nk ~ 1 + ... + a0) c TIEMPOD (nk) De lo que se deduce que podemos caracterizar T como iP=U i > i De forma similar, * iT = ( J n>i TIEMPON (nk) TIEMPOD (nk)

Finalmente, puesto que TIEMPOD (nk) c TIEMPON (n k) para todo k, obte nemos que T c A 5P. Desgraciadamente, esto queda un poco lejos de los conoci mientos que tenemos. Uno de los problemas ms importantes que todava no ha resuelto la ciencia de la computacin es la cuestin de la igualdad de 5P y iT . Responder afirmativamente implica tener que demostrar que todo lenguaje de H jP tambin es de T. Esto requerira encontrar alguna forma de transformar una mquina de Turing no determinista con cota temporal polinmica en una mqui na de Turing determinista con cota temporal polinmica (los polinomios no tie nen por qu ser del mismo grado). El Teorema 7.2.10 dice que podemos realizar la transformacin de una mquina de Turing no determinista a una determinista e incrementamos la cota temporal en una cantidad exponencial. Esto no quiere decir que la transformacin que necesitamos sea imposible, slo que no sabemos cmo realizarla. Por otro lado, demostrar que T requiere que encontremos un lenguaje que est en pero no en T. Si L es dicho lenguaje, debemos demostrar qu no hay ninguna mquina de Turing con cota temporal polinmica que acepte L. De todas formas, hay lenguajes d e9 T que no sabemos si estn en T o no lo estn.

www.FreeLibros.com

INTRODUCCIN A LA COMPLEJIDAD COMPUTACIONAL

281

Ejercicios de la Seccin 7.2


7.2.1. Demostrar que, si una mquina de Turing de k cintas con cota temporal T (n) = en para k > 1 y una constante c acepta L, entonces, para todo e > 0, hay una mquina de Turing con cota temporal (1 + e) n que acepta L. 7.2.2. Es cierto que TIEMPOD (2r ) c TIEMPOD (2r +")? Por qu?

7.3

INTRODUCCION A LA TEORIA DE LA COMPLEJIDAD


En la Definicin 4.2.2, definamos que una funcin de cadena / e s Turing computable si existe una mquina de Turing M que, dada una cadena de entrada w, calcula u siempre que/(vv) = u. Una funcin de cadena que es Turing computable se dice que es computable en tiempo polinmico si hay una mquina de Tu ring que la calcula y tiene una cota temporal polinmica.

Definicin 7.3.1. Se dice que un lenguaje L\ es reducible en tiempo polinmico a un lenguaje L 2 si hay una funcin de cadena computable en tiempo polinmico para la cual/ (u) L 2 si y slo si u e L\. Las reducciones en tiempo polinmico son importantes para determinar a cual de las clases (T o pertenece un lenguaje, como indica el siguiente teo rema. T eorem a 7.3.2. a. b. Si L\ es reducible en tiempo polinmico a L 2, entonces Si L 2 e T entonces L\ e P. Si
2

e 9T entonces L\ e $T.

Demostracin, (b) Supongamos que L 2 e OiT y q u e /e s una funcin que reduce L\ a L 2 en tiempo polinmico. Para comprobar s una cadena w est en L \, podemos calcu lar/(w ) en tiempo polinmico y entonces usar una mquina de Turing no determinista con una cota temporal polinmico para L2 , para comprobar si f ( w ) e Z,2 . Puesto que la composicin de polinmicos con polinmicos es tam bin polinmico, queda demostrado. La demostracin de (a) es similar. La notacin L\ <p L 2 se usa para indicar que L\ es reducible a 2 en tiempo polinmico. Obsrvese que si L\ <p L 2 , entonces determinar si w e L\ no es ms difcil que determinar si f ( w ) e L2 , d o n d e /e s la funcin que reduce L\ a L2 en tiempo polinmico.

www.FreeLibros.com

282

TEORA DE AUTMATAS Y LENGUAJES FORMALES

Definicin 7.3.3. Para toda clase C de lenguajes, un lenguaje L se dice que es C-difcil (o difcil para la clase C ) si, para todo L' e C, L' <p L. Es decir, todos los lengua jes se reducen a L en tiempo polinmico. En particular L es \!P-difcil si para todo lenguaje L' e 9T, L' <,, L. Obsrvese q u e la definicin del lenguaje C-difcil L, no dice nada sobre dnde est L. Es decir, L puede estar o no estar en C. Definicin 7.3.4. Si L es C-difcil y L e C, entonces se dice que L es C-completo.

En particular, si L es f7\P-difcil y L tambin es un lenguaje que pertenece a 5\P, entonces L es 5\!P-completo. T eorem a 7.3.5. S i L es un lenguajeAP-completoy L e T, entonces T = 9{T.

Demostracin. Sea el lenguaje L\ e % {T. Entonces, puesto que L es ;AP-difcil, tene mos que L \< P L. Ya que L e C P , aplicamos el Teorema 7.3.2, con lo que Li e fP. El Teorema 7.3.5 nos proporciona un medio para establecer la igualdad en tre fP y 9 iT . Es decir, podemos demostrar que T = demostrando que un len guaje A^P-completo est en P. Naturalmente, esto requiere que tengamos un len guaje 2\P-completo. Vamos a construir un lenguaje \(!P-complelo y demostrare mos que lo es. El Teorema 7.3.8 y su corolario nos muestran una forma, relativamente fcil, para obtener lenguajes S\;P-completos. El primer lenguaje fA!P-completo que encontramos es el lenguaje llamado Lsat. Se compone de todas las expresiones booleanas codificadas para las que una asignacin de valores de verdad, hace que sean evaluadas como verdaderas. Una variable booleana es un variable que toma los valores de verdadero o falso. Vamos a representar verdadero mediante 1 y falso por medio del 0. Se lla ma literal a una variable o su negacin. Recordemos las conectivas lgicas a (y/conjuncin), v (o/disyuncin) y la negacin vistas en el Captulo 0. Dichas conectivas se usan para formar expresiones booleanas. Una clusula es un tipo de expresin booleana que consiste en la disyuncin de literales. Por tanto, y v z v x es una clusula. Una asignacin de valores de verdad para un conjunto de variables booleanas es una asignacin de los valores 0 y 1 a las variables boo leanas del conjunto. Una clusula X es satisfactible* si hay una asignacin de valores de verdad para sus variables que hacen que X sea verdadera. Una colec
* N O T A : A c u am o s e ste t rm in o p o r c o n sid e ra r q u e e x p re sa , m e jo r q u e c u alq u iera que ap arec e en el el sig n ific a d o d e lo q u e se q u ie re definir.

DRAE.

www.FreeLibros.com

INTRODUCCIN A LA COMPLEJIDAD COMPUTACIONAL

283

cin de clusulas es satisfactible si hay una asignacin de valores de verdad para las variables de las clusulas que satisface todas las clusulas simultneamente. Por ejemplo, sea
C = [ x l V X2, X ] V X 2 V X 3, X l V X 2 V X 3}

Una asignacin de valores de verdad que sea satisfactible para C es x\ = 1, X2 = 0 y X3 = 1. Todas las colecciones de clusulas No son satisfactibles. Por ejemplo, el conjunto D = {xi,xi v x 2 , xi VX2 } no es satisfactible. El problema de la satisfactibilidad* (SAT) es el problema de decidir si es satisfactible una coleccin de clusulas arbitraria. Obsrvese que hemos descrito un problema de decisin: Dado un conjunto de clusulas, Es satisfactible dicho conjunto de clusulas? Podemos transfor mar SAT en un lenguaje Lsal por medio de la codificacin de las muestras de SAT. Supongamos que una muestra de SAT contiene las variables X],X2 , podemos codificar x como el smbolo & seguido por i escrita como una cade na binaria (de ceros y unos). Para representar un ejemplo de SAT necesitamos un alfabeto = {*,, V , 0, 1}, donde se usa para representar la negacin. Sea Lsat = {vv e
2

*| w representa un conjunto satisfactible de clusulas)

Dada una clusula codificada y una asignacin de valores de verdad para las variables, podemos evaluar la clusula en tiempo polinmico. Por tanto, dada una asignacin de valores de verdad podemos determinar, en tiempo polinmi co, si se satisface un conjunto codificado de clusulas. Por tanto Lsat est en 9{,T puesto que una mquina de Turing no determinista puede determinar si w e Lsat, buscando primero una asignacin de valores de verdad y despus evaluando las clusulas en tiempo polinmico. As, tendremos el siguiente lema: Lema 7.3.6. Lsat e

Por tanto, si podemos demostrar que Lsat es fA!P-difcil, tendremos un len guaje A/'-completo. Para demostrar que Lsat es AP-difcil debemos buscar un lenguaje L e H jP y reducirlo a Lsat en tiempo polinmico. Ya que L es arbitrario, no no depende de ninguna de las caractersticas de L, slo de que est en OiT. Es decir, slo sabemos que L es aceptado por ua mquina de Turing no determi*. V e r n o ta de la p g in a an terio r.

www.FreeLibros.com

284

TEORA DE AUTMATAS Y LENGUAJES FORMALES

nista con cota temporal polinmica. Tenemos la suficiente informacin como para realizar una reduccin en tiempo polinmico! Supongamos que L e es aceptado por una mquina de Turing M no de terminista que tiene una cota temporal polinmica T (n ). Dada una entrada w - G 1 G2 ... o para M, la vamos a transformar en una muestra de SAT, Ew, de forma que E w es satisfactible si y slo si w e L. Obsrvese que Ew es, necesaria mente, una coleccin de clusulas; por tanto, la transformacin debe incluir las variables booleanas y la disyuncin. Si M acepta una cadena de longitud n, hay una computacin, que lleva a una aceptacin que requiere como mximo T (ri) pasos. Por el Teorema 7.2.4, pode mos suponer que M tiene una nica cinta. Supongamos que numeramos las cel das de la cinta de M, que ocupa la entrada, como .1, 2 , n y las celdas que se encuentran a la izquierda del primer smbolo se numeran como 0 ,- 1 , ... Obssrvese que en T (n) movimientos, M slo puede consultar las celdas con los nme ros T (ri), - T (ri) + 1,'..., T (ri) + 1. Por tanto, las posiciones que ocupa la cabeza de M durante la computacin se pueden especificar mediante variables boolea nas Hj para 0 < i < T (ri), - T (ri) (ri) + 1, donde Hj = 1 significa que la ca beza de M analiza la celda j despus del movimiento i. Supongamos que M tiene los estados qo, q \ , ..., qp, donde qo es el estado ini cial de M y q, es el nico estado de aceptacin. Vamos a definir unas variables booleanas Qj asociadas a la computacin, de forma que sern verdaderas si, des pus del movimiento i. M pasa al estado q, donde 0 < i < T (n) y 0 < j < p. Finalmente, supongamos que el alfabeto de la cinta de M es r = {to. Ti, ..., T,}, donde Xo es el blanco (es decir, Xo = t>). Definimos las varia bles booleanas Sjk para 0 < i < T (n), - T (ri) <j < T (ri) + 1, y 0 < k < m, cuyo va lor ser verdadero si y slo si despus del movimiento i, la celda j contiene x*. Luego toda computacin de M corresponde a una asignacin de valores de ver dad para las variables H, Qj y Sjk Obsrvese que, aunque una computacin de M induce una asignacin de va lores de verdad para las variables, lo inverso no es cierto. Es decir, una asigna cin de valores de verdad arbitraria para las variables, no necesita corresponder a una computacin de M. Podemos transformar el problema de determinar si M acepta w en uno en el cual el conjunto de clusulas Ew sobre H,, Qj y Sjk es sa tisfactible si y slo si M acepta vv en T (ri) movimientos. Hay cuatro situaciones necesarias para que una asignacin de valores de verdad corresponda a una computacin de aceptacin de M. La asignacin de valores de verdad debe reflejar lo siguiente: 1. La cabeza de lectura/escritura slo puede analizar una celda, cada celda puede contener un nico smbolo y M puede estar en un nico estado.

www.FreeLibros.com

286

TEORA DE AUTMATAS Y LENGUAJES FORMALES

(Aqu d = -1 si X = L y d = 1 si X = R). Las clusulas


Hj H ij

v v

Q is Q,s

v Siji v H + 1j + v Sijt v < 2 + 1 , /

H i j v Q is v S i j t V S + i j j

se satisfacen cuando la expresin booleana anterior es verdadera. El caso espe cial de que repetimos una DI de aceptacin se expresa como
H ij A Qip A Sjt A H + l ' j A Q i + \ ' p A 5, + \ , j , t

(Aqu qp es un estado de aceptacin de M. La siguientes clusulas son ver daderas cuando esta expresin es verdadera:

v Hj v
Hj H ijv

v Sji v H i + Q ip v Sy, v Q i+ Qip y Sijt v 5 /+ 1 J,,


Qp

\j Up

Aadiremos tales clusulas a *,. Obsrvese que el nmero de clusulas de depende de T (n) y del nmero de estados y smbolos de la cinta de M.Puesto que el nmero de estados y smbolos de la cinta no depende de la longitud de la cadena de entrada, el nmero de clusulas es polinmico en T(n), es decir T(). Es fcil darse cuenta de que las restricciones que se obtienen a partir de las clusu las de Ew, fuerzan a que las asignaciones de verdad para las variables booleanas correspondan a computaciones de aceptacin de M. Por lo tanto, w e L si y slo si Ew es satisfactible. . Obsrvese que tenemos (T(n) + 1) ( p+ 1) + 2 (T(n) + l ) 2 + 2 (m + 1) (T (n) + l )2 variables. Ya que las clusulas pueden contener una variable o su negacin, hay al menos c (T (n) + 1 ) 2 variables distintas y sus negaciones para una constante c elegida apropiadamente. Por tanto, el nmero mximo de literales que puede ha ber en una clusula es c (T (n ) + l) 2. De lo que se deduce que el tamao de Ew es como mximo T {n)r c (T (n) + l)2, lo cual estar acotado por algn polinmico en T (n), llamado T(ny La codificacin de cada variable requiere un espacio que estar acotado por el logaritmo del nmero de variables*, ya que codificamos los ndices de las variables en binario. Sin embargo, esto requiere que las variables tengan un nico ndice y, por lo tanto, se deben volver a indexar antes de codifi carlas. Esto se realiza en tiempo polinmico en la longitud de Ew, lo que a su vez

www.FreeLibros.com

INTRODUCCIN A LA COMPLEJIDAD COMPUTACIONAL

287

es polinmico en T (n). La reduccin de L a sat requiere tiempo polinmico y, de esa forma, Lsat es 5\^rP-difcil. Vamos a demostrar el teorema de Cook. Teorema 7.3.7. (Cook) L^t es A,-completo.

Una vez que se ha obtenido un lenguaje ^!P-com pleto, la reduccin de len guajes nos proporciona una tcnica para demostrar que otros lenguajes son !Ain completos. Lema 7.3.8. Si L\ es AP-completo y L\ <p L 2, entonces L 2 es 5^!P-difcil.

Demostracin. Supongamos que L e Entonces, puesto que L\ es ^P-completo, hay una fu n ci n / 1 , computable en tiempo polinmico, de forma que f \ : L - ) L \ con la propiedad de que w e L si y slo s i/i (w) e L\. Puesto que L\ <p L 2, hay tambin una funcin computable en tiempo polinmico que es fe. L\ - La, con lo que u e L\ si y slo si / 2 (u) e L2. Obsrvese que w e L si y slo si f \ (w) L\ si y slo si (fi (w)) e L 2 . Es ms, puesto que f \ y f 2 son computables en tiem po polinmico en la longitud de sus argumentos, / 2 ( / 1 (w)) es computable en tiempo polinmico en la longitud de f \ (w), lo que por medio del Teorema 7.2.9 es polinmico en la longitud de w. Por tanto, la funcin / 2 (/i (w)) compuesta, es computable en tiempo polinmico. De lo que se deduce que L <p L 2, y, por tanto, L 2 es ^P-difcil. Corolario 7.3.9. Si L\ es S^P-completo y L 2 completo. con L\ <p L 2, entonces L 2 es ^ in

Este corolario nos muestra una tcnica para obtener otros lenguajes que sean ^ in co m p leto s. Dado un lenguaje L de 9{_P, si podemos reducir a L, en tiempo polinmico, un lenguaje que sea incompleto, entonces L tambin es J^n-completo. Cuando nos encontramos con un lenguaje que se sospecha que es SY/jP-completo, podemos aplicar fcilmente este corolario y demostrar que lo es. Otras veces, L puede ser similar a un lenguaje L, que hemos demostrado que es V^n-completo. A veces la similitud permite que la demostracin de que L' es 5\P-completo pueda ser adaptada para demostrar lo mismo con respecto a L.

Ejercicios de la Seccin 7.3


7.3.1. Hemos tratado las clusulas codificadas como cadenas sobre el alfabeto v , *&, 0, 1}. Dada una*asignacin de valores de verdad, se podra codificar de forma que pudiera ser analizada por una mquina de Turing que pudiera evaluar la clusula codificada?

www.FreeLibros.com

288

TEORA DE AUTMATAS Y LENGUAJES FORMALES

7.3.2. Describir cmo una mquina de Turing puede evaluar un conjunto de clusulas en tiempo polinmico. 7.3.3. Describir una tcnica para volver a indexar los literales de mico en el tamao de Ew. en tiempo polin

7.3.4. Demostrar que, si T () es un polinmico en n, entonces la siguiente expresin tambin lo es: ak T(n)k + ak. \ T(n )k ~ 1 + ... +ai T{n) + ao

PROBLEMAS
7.1. Hemos mostrado muchos lenguajes que son 3\P-co'mpletos. En este problema vamos a estudiar un lenguaje derivado de un problema llamado 3SAT. 3SAT es un problema de satisfactibilidad como SAT, excepto porque las clusulas impli cadas en el mismo estn formadas por tres literales (en SAT no se restringi el nmero de literales). Obviamente, una mquina de Turing que acepte Lsat, se puede adaptar para que acepte L3sM . La modificacin que se necesita consiste en una submquina que comprueba que la muestra codificada est formada por clusulas que con tienen exactamente tres literales. El resto de la mquina Lsat no se tiene por qu cambiar. Por tanto, e 5\5?. Para realizar la reduccin en tiempo polinmico de Lsat a se necesita tomar cadenas que potencialmente pertenecen a LiM y hacer que parezcan cade nas de L3saf. En vez de tratar este problema a nivel de lenguaje, lo vamos a tratar a nivel de clusula. Es decir, cogeremos una muestra de SAT y la transformare mos en una muestra de 3SAT. Supongamos que tenemos un conjunto de clusulas C: es decir, tenemos una muestra de SAT. Si todas las clusulas estn formadas por tres literales, quedar probado. Si todas las clusulas no estn formadas por tres literales, de bemos convertir C en C', de forma que todas las clusulas de C' estn formadas por tres literales, por lo tanto C es satisfactible slo si C lo es y, por tanto, cual quier asignacin de valores de verdad que satisfaga C , tambin satisfar C. Su pongamos que c es una clusula de C que no contiene tres literales. Podemos considerar tres casos. La clusula c puede contener uno, dos, o ms de tres lite rales. Supongamos que c contiene dos literales, entonces c = *i v jr2. Podemos construir dos clusulas ci y c2 con tres literales a partir de c y con la propiedad de que una asignacin de valores de verdad que sea satisfactible para el conjun to {ci, c2) induce una asignacin de valores de verdad para las variables de c, y viceversa. Sea a una nueva variable booleana (la cual no aparece en ninguna de las clusulas de C), Obsrvese que cj = .Y | v j 2 v a*y C 2 = x vjc2v a son las dos clusulas que se queran. t 1. Supongamos que c es una clusula que est formada por un nico literal. Demostrar cmo se construye un conjunto D de clusulas que tengan la

www.FreeLibros.com

INTRODUCCIN A LA COMPLEJIDAD COMPUTACIONAL

289

propiedad de que ninguna asignacin de valores de verdad para D, que lo satisfaga, induce una asignacin de valores de verdad para la variable x, y viceversa. Indicacin: Se puede realizar con cuatro clusulas. En el caso de que c sea una clase compuesta por ms de tres literales, podemos construir un conjunto de clusulas que tengan la propiedad desea - Sean da. Para ello, supongamos que c es la clusula x\ v j:2 v ... vxk a i , a 2, ..., a* - 3 unas nuevas variables booleanas. Sea D la clusula forma da por *i v x2 v ai, x2 v (X | v a 2, x3 v a 2 v a?, xk. i v xkv a*_3. Obssrvese que D cumple la propiedad deseada. Es decir, una asignacin de , ..., xkque haga que c sea verda valores de verdad para las variables x\, x2 dera, induce una asignacin de valores de verdad que satisface D, y vice versa. Por tanto, una coleccin de clusulas se puede transformar en una co leccin de clusulas que estn formadas por tres literales con la propiedad de que una asignacin de valores de verdad que satisface el conjunto origi nal, induce una asignacin de valores de verdad para el conjunto transfor mado y viceversa. 2. 3. Demostrar que la transformacin anterior se puede realizar en tiempo polinmico. Demostrar que Z ,3S at es 5\!P-completo.

www.FreeLibros.com

www.FreeLibros.com

Referencias y bibliografa

El material para realizar este libro proviene de muchas fuentes, al igual que la forma en la que se presenta. En este pequeo comentario vamos a mencionar ciertos temas que provienen de fuentes particularmente importantes. En la bibli ografa que aparece a continuacin, se enumeran muchas de las fuentes que el autor us para preparar este texto. Sin embargo, no se pretende que este comen tario y la bibliografa sean particularmente exhaustivos o completos. El Problema 1.8 se debe a Salomaa [11]. El Lema 2.8.2 es una modificacin de un teorema de Arden [1], Este lema se usa para desarrollar el Lema 2.8.3, el cual se basa en un trabajo realizado por Brzozowski [2], ste tambin proporcio na una tcnica elegante para derivar un autmata finito a partir de una expresin regular. El Problema 2.4 procede del Harrison [4], La Seccin 4.3 debe sus or genes a Lewis y Papadimitriou [7], Su libro trata de la construccin de mquinas de Turing, ms de lo que nosotros lo hemos hecho. Los libros mencionados anteriormente, as como los libros restantes, se usa ron para gran parte del desarrollo y la presentacin. Los excelentes libros de Le wis y Papadimitriou [7], Harrison [4] y Hopcroft y Ullman [5] son clsicos en esta materia. Los otros tres son apropiados para ser estudiados despus de este libro, como es Wood [13]. El primero de los libros de Hopcroft y Ullman [5] es un compendio sobre lenguajes formales, teora de autmatas y complejidad computacional, que se desarrollan an ms en (6 ]. Los libros de Linz [8 ], Carroll y Long [3], Rayward-Smith [10], Martin [9] y Sucjkamp [12] son introducciones sobre este tema y son similares a este libro. Los cinco son una excelente refer encia durante la lectura de este libro.

www.FreeLibros.com

292

TEORIA DE AUTMATAS Y LENGUAJES FORMALES

REFERENCIAS
[1] A r d e n , D. N. Delayed Logic and Finite State Machines, in Theory ofComputing Machine Design. Ann Arbor, MI: University of Michigan Press, 1960. [2] BRZOZOWSKI, J. A. Derivatives of Regular Expression, Journal of the Association for Computing Machinery, 11, no. 4 (October 1964), pp. 481-494. [3] CARROLL, JOHN, and D arrell LONG. Theory of Finite Autmata with an Introduction to Formal Languages, Englewood Cliffs, NJ: Prentice Hall, 1989. [4] HARRISON, MlCHAEL. Introduction to Formal Language Theory, Addison-Wesley Series in Computer Science. Reading, MA: Addison-Wesley, Inc., 1978. [5] HOPCROFT, J ohn E., and JEFFREY D. U llm an . Formal Languages and Their Rela tion to Autmata, Addison-Wesley Series in Computer Science. Reading, MA: Addison-Wesley, Inc., 1969. [6 ] HOPCROFT, J ohn E., and JEFFREY D. u llm a n . Introduction to Autmata Theory and Computation, Addison-Wesley Series in Computer Science. Reading, MA: Addison-Wesley, Inc., 1979. [7] Lewis, H. R., and C. H. P apadim itriou . Elements of the Theoiy of Computation, Englewood Cliffs, NH: Prentice Hall. 1981. [8] Linz, P eter . An Introduction to Formal Languages and Autmata, Lexington, MA: D. C. Heath and Compny, 1990. [9] M artin , J ohn C. Introduction to Languages and the Theory of Computation, New York: McGraw-Hill. Inc.. 1991. [10] R ayw ard -S m ith , V. J. ,4 First Course in Formal Language Theory, Computer Science Texts Series. Oxford. UK: Blackwell Scientific Publications. 1983. [11] SALOMAA, A r t o . Morphisms on Free Monoids and Language Theory, in For mal Language Theory: Perspectives and Open Problems, ed. Ronald V. Book. New York: Academic Press, Inc. [12] SDKAMP, Thomas A. Languages and Machines, An Introduction to the Theoiy o f Computer Science, Addison-Wesley Series in Computer Science. Reading, MA: Addison-Wesley, Inc., 1988. [13] WOOD, DERICK. Theory of Computation. New York: John Wiley & Sons, Inc., 1987.

www.FreeLibros.com

Indice analtico

b , 173 V x, 5 3x ,5 e ,6 = , 22 e , 30 0,31 0o, 35 <p , 281 v , 282 i- , 148, 175 => , 107 ->,106 2*, 37 3SAT, 288

Alfabetos, palabras y lenguajes, 29 Ambiguas, gramticas, 119 Ambigedad, problema para GIC, 260 Analizador lxico, 48 rbol de anlisis, 117 Arden, lema de, 79 Arden, D.N., 281, 292 Autmata de pila (ADPND), 144 finito determinista (AFD), 53 finito no determinista (AFND), 61 linealmente acotado (ALA), 207, 237

A
Aceleracin lineal, 273 ADPND, 144 AFND, 61 ALA, 207 y LSC, 237 Alfabeto, 30

B
Bicondicional, proposin, 4 Biyeccin, 16 Blanco, smbolo, 173 Bombeo, lema de para lenguajes independientes del contexto, 136

www.FreeLibros.com

294

TEORA DE AUTMATAS Y LENGUAJES FORMALES

para lenguajes regulares, 85 Book, Ronald V., 292 Booleana expresin, 282 variable, 282 Brzozowski, J. A., 291, 292

C
C-completos, lenguaje, 282 C-difciles, lenguaje, 282 Cadena, 30

0,44
aceptada por una mquina de Turing, 209 caracterstica de un lenguaje, funcin, 182 complementacin, 181 concatenacin, 32 exenta de cuadrados, 43 exenta de cubos, 43 exponenciacin, 32 fuertemente exenta de cubos, 43 funcin, 99 igualdad de, 32 interpretacin de, 44 inversa, 33 longitud de, 32 rechazada por una mquina de Turing, 209 representacin ternaria de, 48 Transpuesta, 33 vaca, 30 Caracterizacin de lenguajes regulares, 99 Cardinalidad, 22, 23 Carroll, John, 291,292 Cerradura de estrella (*), 31, 37 Kleene, 37 positiva (+), 37

propiedades de los lenguajes independientes del contexto, 143 Cinta compresin, 266, 272 entrada, 266 infinita, 172 Clusula, 282 Cocke, Younger y Kasami, algoritmo de (CYK), 140 Complejidad de clases espacial, 270 temporal, 271, 272, 276 Complejidad, teora de, 281 Complemento de cadenas, 181 de un conjunto, 9 de un lenguaje, 38 relativo, 9 Componente lxico, 48 Composicin de funciones, 16 de mquinas de Turing, 185 de relaciones, 16 Computable, funcin, 241 Computacin de una mquina de Turing, 176 no vlida, 260 vlida, 260 Concatenacin de cadenas, 32 de lenguajes, 34 Condicional, 2 antecedente, 3 conclusin, 3 condicin, 3 consecuente, 3 contrapuesta, 3 hiptesis, 2 proposicin, 2 recproca, 3 y

www.FreeLibros.com

NDICE ANALTICO

295

Conjuncin, 2 Conjunto cardinalidad, 22, 23 ' complemento, 9 de cadenas aceptadas, 78 de significados, 4 de valores de verdad, 4 directo, 72 disjunto, 8 elemento de, 6 enumerable, 25 equivalente, 7 familia indexada, 7 finalmente peridico, 1 0 0 finito, 23 igualdad, 7 inductivo, 19 infinito, 23 interseccin, 8 leyes de De Morgan para, 10 no numerable, 26 nulo, 7 numerable, 25 potencia, 7 producto cartesiano, 1 0 unin de, 8 universal, 9 vaco, 7 Construible, funcin totalmente en espacio, 269 totalmente en tiempo, 278 Contraejemplo, 5 Cook, teorema de, 287 Correspondencia uno-a-uno, 16 Cuantificacin existencial, 5 universal, 5 CYK, algoritmo, 140 Chomsky, jerarqua de, 233 Chomsky, Forma normal de, 130 Chomsky, Noam, 233

D
De Morgan, leyes de, 4, 5 para conjuntos, 1 0 Decidir un lenguaje, 210 Derecha, derivacin por la, 121 Derecha, produccin regular por la, 144 Derecha, producciones recursivas por la, 163 Derecha, gramtica regular por la, 109,222 Derivacin rbol, 117 por la derecha, 1 2 1 por la izquierda, 1 2 1 Descripcin instantnea (DI), 147,267 Determinista, autmata de pila, 170 Determinista, Autmata finito, 53 definicin, 56 equivalente, 60 equivalente a AFND, 6 6 estados redundantes, 94 mnimo, 95 Determinista independiente del contexto, lenguaje, 170 DI, 147, 267 Diagonalizacin, 26 Difcil, 282 Directo (de un AFD), conjunto, 72 Disjunto, conjunto, 8 Distinguible, estados, 95 Disyuncin, 2 Dominio de una relacin, 12 Dos pilas, autmata de pila con, 172 Du, Ding-Zhu, xii

E
-transiciones, 70 Elemento, 6

www.FreeLibros.com

296

TEORIA DE AUTMATAS Y LENGUAJES FORMALES

Eliminar un no terminal, 108 Entrada, cinta de, 266 Enumerable, conjunto, 25 Equivalencia autmata finito, 6 6 clase, 14 conjuntos, 2 2 de autmatas finitos deterministas, 59 expresiones regulares, 50 proposiciones, 1 Espacial, complejidad, 270 Espacialmente acotada, mquina de Turing, 265 Espacialmente acotados, lenguajes y lenguajes regulares, 272 ESPACIOD (S O)), 270 ESPACION, 270 ESPACION (,S ()), 270 ESPACIOP, 271 Estado, 53 cadenas aceptadas por, 78 de aceptacin, 53 distinguible, 95 inicial, 53 no distinguible, 95 problema de la entrada, 244 Estados no distinguibles, 95 Estructura de frase, gramtica con, 116, 2 2 1 Exenta de cuadrados, cadena, 43 Exenta de cubos, cadena, 43 fuertemente, 43

Finito, autmata, 56 como generador de cadenas, 105 determinista, 53, 56 equivalencia de, 6 6 equivalencia de AFND y AFD, 6 6 y expresiones regulares, 75 Finito, conjunto, 23 Forma normal, 116, 123 Chomsky, 130 Greibach, 162, 163, 168 Fuertemente libre de cubos, 43 Funcin biyeccin, 16 cadena, 99 composicin de, 16 computable, 241 computable polinmica en tiempo, 281 d e A a B , 15 factorial, 208 no computable, 241 proposicional, 4 proyeccin. 184 sobreyectiva, 16 total, 15 totalmente constru ble en espacio, 269 totalmente construible en tiempo, 278 transicin (de un AFD), 57 Turing computable, 181, 241

G
Generacin de smbolos, 105 Gramtica con estructura de frase, 116, 2 2 1 independiente del contexto, 115, 233 no ambigua, 119 no contrctil, 229

F
Factorial, 20 funcin, 208 Familia indexada de conjuntos, 7 Finales, estados, 53 Finalmente peridico, conjunto, 100

www.FreeLibros.com

NDICE ANALTICO

297

no restringida, 116, 2 2 0 , 2 2 1 , 227, 233 regular, 105, 107, 233 regular por la derecha, 109, 221 regular por la izquierda, 109 sensible al contexto, 116, 228, 233 tipo 0, 116, 233 tipo 1, 233 tipo 2, 233 tipo 3, 233 Greibach, forma normal de, 162, 163 definicin, 168

H
Harrison, Michael, 291, 292 Homomrfica imagen de un lenguaje, 1 0 2 inversa, 1 0 2 Homomorfismo, lenguaje, 101 Hopcroft, John E., 291, 292 I Igualdad de cadenas, 32 de lenguajes, 35 Imagen de una funcin, 15 de una relacin, 1 2 inversa homomrfica, 1 0 2 Independiente del contexto, gramtica (GIC), 233 ambigua, 119 ambigedad, problema de, 260 definicin, 114 lenguaje generado por, 114 problema de la interseccin vaca, 258, 264

Independiente del contexto, lenguaje (LIC), 115 determinista, 170 inherentemente ambiguo, 1 2 0 lema de bombeo, 136 propiedades de, 135 propiedades de la cerradura, 143 Induccin, 19, 20 conclusin, 2 1 demostracin, 2 0 etapa, 2 0 etapa base, 2 1 hiptesis, 2 1 Inductivo, conjunto, 19 Infinito, conjunto, 23 Inherentemente ambiguo, lenguaje independiente del contexto, 1 2 0 Interpretacin de una cadena, 44 Interseccin de conjuntos, 8 de lenguajes, 35 de lenguajes recursivamente enumerables, 215 regular, 159 Inversa de una relacin, 1 2 de Fbajo una funcin, 15 imagen homomrfica, 1 0 2 Inverso de cadenas, 33 de lenguajes, 40 Irresolubilidad y lenguajes independientes del contexto, 258 Izquierda, produccin regular por, 114 Izquierda, gramtica regular por, 109 Izquierda, derivacin porv 121 Izquierda, produccin recursiva por, 163 Jerarqua Chomsky, 233 teorema, 209, 233

www.FreeLibros.com

298

TEORA DE AUTMATAS Y LENGUAJES FORMALES

K
Kleene, cerradura de, 37 Kleene, teorema de, 81 Kovatch, Sally, A., xiii

L
^3sat >283 ^sat >283 Lenguaje, 30 aceptado por pila vaca, 155 aceptado por un ADPND, 148 aceptado por un AFD, 59 aceptado por un AFND, 64 aceptado por una mquina de Turing, 178,209 complejidad espacial de 265 complemento, 38 concatenacin, 34 cota espacial, 272 decidir, 2 1 0 diferencia, 38 enumerado por una mquina de Turing, 219 espacialmente acotada y recursiva, 271 generado por una GIC, 115 generado por una gramtica regular, 108 homorfismo, 1 0 2 igualdad, 35 imagen homrfica inversa, 1 0 2 independiente del contexto, 115 interseccin, 35 inversa, 40 O iT, 292 5\!P-completo, 282 5V >difcil, 282 operaciones, 34 potencia, 34

recursivo, 180, 209, 210, 215 recursivamente enumerable, 180, 212,215 sensible al contexto, 228 sustitucin, 1 0 1 temporalmente acotada, 272 unin, 35 universal, 31 vaco, 31 Lewis, Harry, R., 291, 292 Lexema, 48 Lexicogrficamente ordenado, 45 Linealmente acotado, autmata (ALA), 207 lenguajes sensibles al contexto, 237 Linz, Peter, 291, 292 Literal, 282 Long, Darrell, 291, 292 Longitud de una cadena, 32

M
Malmanger, Debra J. xii Mquina de Turing multidimensional, 199 Mquina de Turing determinista, 201,267 Mquina de Turing multicinta, 198 Mquina de Turing con cinta infinita en una direccin, 197, 198 Mquina de Turing con cinta multipistas, 195 Martin John C., 291, 292 Me Millan, desigualdad de, xii, 42 Mnimo, AFD, 95 Modificacin del problema de correspondencia de Post (PCPM), 246 Moore, algoritmo de, 93 Morrison, T. J., xiii .

www.FreeLibros.com

NDICE ANALTICO

299

Muestras del problema de decisin, 241,242

condicional, 3 conjuncin, 2 disyuncin, 2 negacin, 1

N, 7 N+, 7
Negacin de una proposicin, 1 No ambigua, gramtica, 119 No computable, 241 No determinista, autmata de pila (ADPND) definicin, 145 lenguaje aceptado por, 148 No determinista, autmata finito (AFND), 61 definicin, 62 equivalencia con AFD, 6 6 No distinguible, estado, 96 No contrctil gramtica, 225 produccin, 238 No numerable, conjunto, 26 No restringida, gramtica, 116, 220, 221,227, 233 y lenguajes recursivamente enumerables, 2 2 0 No vlida de una mquina de Turing, computacin, 260 5\P-clases de lenguajes, 280 P-difcil, lenguaje, 282 5\!P-completo, lenguaje, 282 Nulo, conjunto, 7 Numerable, conjunto, 25 O O cadena (omega-cadena, 44 Ogden, lema, 168,264 Operadores lgicos bicondicional, 4

P
(P clase de lenguajes, 279 Palabra, 30 Palndromo, 42 Palomar, principio del, 24 Papadimitriou, Christos, 291, 292 Parada en una mquina de Turing, 176 Parcial,f uncin, 15 Paridad, funcin de, 183 Particin, 12 PCP, 245, 246 Pila, autmata de, 144 determinista, 170 y lenguajes independientes del contexto, 151 PIM. 19 Positiva, cerradura, 37 Post, sistema de correspondencia de, 245 Post, problema de correspondencia de (PCP), 245 muestra de, 245 solucin de una muestra, 245 Potencia de cadenas, 32 de lenguajes, 34 Potencia, conjunto, 7 Prefijo, 32 Principio de induccin matemtica (PIM), 19 Problema de la interseccin vaca para GIC, 259, 264 Problema de la vacuidad, 244 para GSC, 258

www.FreeLibros.com

300

TEORA DE AUTMATAS Y LENGUAJES FORMALES

Problema de parada en las mquinas de Turing, 209, 241, 242 Problema de los elementos de un lenguaje recursivamente enumerable, 256 Problema de decisin, 241 cuestin de la ambigedad para GIC, 260 muestras de, 241, 242 Post, problema de correspondencia de, 245, 246 Problema de correspondencia de Post modificado, 245, 246 problema de la cinta en blanco, 243 problema de la interseccin vaca para GIC, 259, 264 problema de la vacuidad para GSC, 258 problema de los elementos de lenguajes recursivamente enumerables, 256 problem a'de parada de las mquinas de Turing, 209, 241 problema del estado de la entrada, 244 SAT, 283 satisfactibilidad, problema de la, 283 vaduidad, 244 Problema irresoluble, 217, 242 Problemas resolubles, 242 Produccin e, 125 Produccin no generativa, 128 Producciones, 108 no contrctil, 238 no generativa, 128 recursiva por la derecha, 163 recursiva por la izquierda, 163 regular por la derecha, 114 regular por la izquierda, 114

unitaria, 128 Producto cartesiano, 10 Progresin aritmtica, 100 Propiedades de lenguajes independientes del contexto, 135 de lenguajes regulares, 84 Proposicin, 1 bicondicional, 4 condicional, 13 conjuncin, 2 disyuncin, 2 equivalente, 1 negacin, 1 Proposicional, funcin, 4 Proyeccin p, funcin, 184 Prueba de balas, 91

Q
Q (nmeros racionales), 13

R (nmeros reales), 16 7?-imagen de una relacin, 14, 16 Rayward-Smith, V. J 291, 292 Recursivamente enumerable (r.e.), lenguajes, 209, 215 abreviatura, 180 interseccin, 215 problema de los elementos de, 256 unin de, 217 Recursivos, lenguajes, 180, 209. 210. 215 Rechazar una cadena de entrada % (mquina de Turing), 178 Reduccin, 244 en tiempo polinmico, 281 Redundantes, estados, 95

www.FreeLibros.com

NDICE ANALTICO

301

Reflexiva, relacin, 14 Regular, gramtica, 105, 233 definicin, 107 lenguaje generado por, 108 por la derecha, 109 por la izquierda, 19 y lenguajes regulares, 108, 1 1 0 Regular, interseccin, 159 Regulares, expresiones, 50 equivalente, 50, 51 precedencia de operadores, 50 Relacin composicin de, 16 de A a B, 12 dominio de, 1 2 imagen de, 1 2 inversa de, 1 2 /?-imagen de, 14, 16 reflexiva, 14 simtrica, 14 sobre A, 1 2 transicin, 62 transitiva, 14 Relativo, complemento, 9 Regular, lenguaje, 48, 49 Resolubilidad, 241

Sensible al contexto, gramtica (GSC), 116,228 problema de la vacuidad, 258 y ALA, 237 Sentencia abierta, 4 Smbolo no terminal, 107 Simtrica, relacin, 14 Subcadena, 33 Subconjunto, 7 Sublenguaje, 35 Sudkamp, Thomas A., 291, 292 Sufijo, 32 Sustitucin, lenguaje, 101

T
Tautologa, 4 Temporal, complejidad, 271 clases de, 276 de una mquina de Turing, 272 Temporalmente acotado, lenguaje, 272 Temporalmente acotada, mquina de Turing, 272 Teora de la complejidad computacional, 281 Terminal, smbolo, 107 Ternaria, representacin de una cadena, 48 Tiempo polinmico, funcin de cadena computable en, 281 Tiempo determinista, 278 Tiempo polinmico, reducible, 281 TIEMPOD (S (n)), 277 TIEMPON (T ()), 277 Tipo 3, gramtica, 233 Tipo 2, gramtica, 233 TipOl , gramtica, 233 Tipo 0, gramtica, 116, 233 Total, funcin, 15

S
Saida Alfabeto de (de un transductor de estados finito determinista), 99 Funcin de (de un transductor de estados finito determinista), 99 Saloma, Arto, 291, 292 SAT, 283 Satisfactibilidad, problema de la (SAT), 283 Satisfactible (clusula), 282 Savitch, teorema de, 270

www.FreeLibros.com

302

TEORA DE AUTMATAS Y LENGUAJES FORMALES

Totalmente construible en espacio, funcin, 269 Totalmente construible en tiempo, funcin, 278 Trabajo, cintas de, 266 Transductor de estados finito determinista, 99 alfabeto de salida, 99 funcin de salida, 99 Transicin, 53 e, 70 diagrama, 53 funcin, 56 relacin, 62 Transitiva, relacin, 14 Turing, mquina de, 171, 172 cadena aceptada por, 209 cadena rechazada por, 209 cinta infinita en una direccin, 197, 198 cinta multipista, 195 complejidad espacial de, 265 complejidad temporal, 272 composicin de, 185 computable, 2 0 2 computacin de, 176 computacin no vlida, 260 computacin vlida de, 260 decidir un lenguaje, 2 1 0 determinista, 201, 267 directiva de permanecer, 194 espacialmente acotada, 265 lenguaje aceptado por, 178, 209 lenguaje enumerado por, 219 multi-cinta, 198 multidimensional, 199 no determinista, 201, 202, 267 no supresora, 228 opcin de permanecer, 194

parada, 176 problema de parada, 209, 241 rechazar una cadena, 178 representacin de una configuracin, 175 temporalmente acotada, 272 universal, 205 Turing computable, funcin, 241 Turing computable, funcin de cadena, 181

U
Ullman, Jeffrey D., 291 292 Unin de conjuntos, 8 de lenguajes, 35 de lenguajes recursivamente enumerables, 215 Unitarias, producciones, 128 Universal, conjunto, 9 Universal, lenguaje, 31 Universal,, cuantificador, 5 Universal, mquina de Turing, 205

V
Vaca, cadena, 30 Vaco, lenguaje, 31 Vlida, computacin de una mquina de Turing, 260 Verdad, conjunto de, 3 Verdad, asignacin de valores de, 283 Verdad, tabla de, 1

W
a

Wood, Derick, 291, 292

www.FreeLibros.com

You might also like