Sei sulla pagina 1di 134

Lenguajes Formales

y Autmatas

Gua de Estudio de

Ingeniera en Sistemas
Computacionales
Cuatrimestre II
Vigencia periodo escolar Enero Abril 2014

RECOMENDACIONES GENERALES.

EL SISTEMA EDUCATIVO UNIVERSITARIO AZTECA, ES UNA


INSTITUCIN EDUCATIVA DEL ESTADO DE CHIAPAS CON CRITERIOS
DEFINIDOS PARA LOS CUALES TRABAJA DA A DA.
NUESTRAMISIN ES FORMAR JVENES PROFESIONISTAS, CON
APTITUD EMPRENDEDORA, QUE LES PERMITA INCORPORARSE Y
DESARROLLARSE CON XITO EN EL CAMPO LABORAL.
NUESTRAVISIN ES PROMOVER EDUCACIN DE CALIDAD PARA
COADYUVAR CON EL DESARROLLO DE NUESTRO ESTADO.
AS COMO TRABAJAR CON VALORES QUE NUESTRA COMUNIDAD
EDUCATIVA DESTACA, COMPROMISO CON LA SOCIEDAD, HONESTIDAD,
AMOR Y DISCIPLINA.
POR TAL MOTIVO, SISTEMA EDUCATIVO UNIVERSITARIO AZTECA
BRINDA A SUS ESTUDIANTES ESTA GUA DE ESTUDIO, ELABORADA CON
LA PARTICIPACIN DE SUS CATEDRTICOS, COORDINADA POR ESTA
INSTITUCIN EDUCATIVA, ORIENTADA HACIA EL MODELO EDUCATIVO POR
COMPETENCIAS MISMAS QUE SE DEFINEN COMO LA COMBINACIN DE
DESTREZAS, CONOCIMIENTOS, APTITUDES, ACTITUDES.
ESTE MODELO EDUCATIVO COMO SE HA DICHO, BUSCA QUE LOS
CONOCIMIENTOS CONSTRUIDOS POR ESTUDIANTES Y CON EL APOYO DE
LOS DOCENTES AL INTERIOR DEL AULA SEAN TRANSVERSALES Y
APLICADOS EN SITUACIONES PROBLEMTICAS DE LA VIDA DIARIA QUE
LES PERMITAN DESARROLLARSE CON XITO EN EL CAMPO LABORAL.
POR ESTE MOTIVO, ESTA GUA DE ESTUDIO SE COMPONE DE ELEMENTOS
CLAVE, PROPSITO DE LA ASIGNATURA Y DE CADA UNO DE LOS
BLOQUES QUE LA COMPONEN, AS COMO EJERCICIOS DIAGNSTICOS,
FORMATIVOS Y SUMATIVOS QUE EXPLOREN EL ANTES, DURANTE Y
DESPUS DEL PROCESO DE ENSEANZA-APRENDIZAJE Y CON ELLO
ABORDAR LAS TRES DIMENSIONES DE APRENDIZAJE, CONCEPTUAL,
PROCEDIMENTAL Y ACTITUDINALMENTE.
SISTEMA EDUCATIVO UNIVERSITARIO AZTECA:
TE DESEA XITO ESCOLAR EN TU COMUNIDAD EDUCATIVA.

INGENIERA EN SISTEMAS COMPUTACIONALES


ASIGNATURA:

LENGUAJES FORMALES Y AUTMATAS.

MODALIDAD

MIXTA

CUATRIMESTRE:

SEGUNDO.

LNEA DE FORMACIN:
CRDITOS:

OBJETIVO:

AL TERMINAR EL CURSO, LOS ALUMNOS


CONOCERN LAS BASES TERICAS DE LA
COMPUTACIN, AS COMO LA RELACIN CON
LOS ASPECTOS PRCTICOS DE LA TEORA DE
LENGUAJES,
LA
COMPATIBILIDAD
Y
LA
COMPLEJIDAD.

ESTRUCTURA DEL CURSO


BLOQUE II.
MAQUINAS DE
TURING Y
COMPUTABILID
AD DE
PROBLEMAS.
BLOQUE I.
AUTMATAS
FINITOS.

LENGUAJES
FORMALES Y
AUTOMATAS

BLOQUE III.
COMPLEJIDAD DE
PROBLEMAS.

NDICE
PRESENTACIN .................................................................................................... 6
BLOQUE I. AUTMATAS FINITOS ....................................................................... 9
1.1 QU ES UN AUTMATA? ............................................................... 10
1.2 SISTEMAS DE ESTADOS FINITOS .................................................. 11
1.2.1 Ejemplo 1: ............................................................................................. 13

1.3 AUTMATAS FINITOS DETERMINSTICOS. ................................... 14


1.3.1 Ejemplo 1: ............................................................................................. 15

1.4 CADENAS, ALFABETOS Y LENGUAJES .......................................... 19


1.4.1 Lenguajes Regulares ............................................................................ 23

1.5 MAQUINAS EQUIVALENTES ............................................................ 26


1.5.1 Autmatas Finitos no Determinsticos ................................................... 27
1.5.2 Autmatas Finitos con Movimientos ...................................................... 29
1.5.3 Autmatas Finitos de dos Direcciones .................................................. 31
1.5.4 Autmatas Finitos con Salida Maquinas Moore y Mealy ....................... 35

BLOQUE II MQUINAS DE TURING Y COMPUTABILIDAD DE PROBLEMAS 38


2.1 MAQUINA DE TURING. ..................................................................... 38
2.1.1 Definicin .............................................................................................. 40
2.1.2 Ejemplos ............................................................................................... 41

2.2 CONSTRUCCIN DE UNA MQUINA DE TURING.......................... 42


2.3 LENGUAJES ACEPTADOS POR MQUINAS DE TURING .............. 44
2.4. HIPTESIS O TESIS DE CHURCH .................................................. 48
2.5 MAQUINAS DE TURING COMO ENUMERADORES ........................ 48
2.6 MAQUINAS DE TURING RESTRINGIDAS ........................................ 49
2.7 FUNCIONES RECURSIVAS .............................................................. 49
2.8 FUNCIONES PARCIALES ................................................................. 49

2.8.1 FUNCIONES INICIALES ...................................................................... 50


2.8.2 Funciones Recursivas Primitivas .......................................................... 51

2.9 FUNCIONES RECURSIVAS PARCIALES ......................................... 52


2.9.2 El Problema de Correspondencia de Post ............................................ 53

BLOQUE III. COMPLEJIDAD DE PROBLEMAS ................................................. 64


3.1 ANLISIS DE ALGORITMOS ............................................................. 65
3.2 COMPUTABILIDAD ............................................................................ 67
3.3 HIPTESIS DE CHURH ..................................................................... 69
3.4 COMPLEJIDAD DE UN ALGORITMO................................................ 70
3.5 RECURSOS INFORMTICOS ........................................................... 70
3.6 CASOS PARA EL ESTUDIO DE LA COMPLEJIDAD ........................ 71
3.7 MEDIDAS ASINTTICAS Y RDENES DE COMPLEJIDAD ............ 71
3.7.1 REGLAS PRCTICAS .......................................................................... 73

3.8 REGLAS PARA CALCULAR EL TIEMPO DE EJECUCIN EN EL


PEOR CASO DE LOS DISTINTOS TIPOS DE INSTRUCCIONES. ......... 73
3.9 ESPACIO Y TIEMPO POLINOMIAL ................................................... 76
3.10 LA CLASE DE PROBLEMAS NP ..................................................... 98
3.10.1 PROBLEMAS P Y NP ......................................................................... 99

3.11 MTODOS POR DESPLAZAMIENTO Y REDUCCIN. ................ 114


BIBLIOGRAFA .................................................................................................. 133

PRESENTACIN

Toda comunicacin involucra la utilizacin de un lenguaje. As por ejemplo las


personas se comunican con el resto en los diferentes idiomas conocidos como
lenguajes naturaleso con las maquinas con lenguajes artificiales a travs de un
conjunto de smbolos. Se define lenguaje como un conjunto de palabras, tambin
llamadas cadenas o sentencias que estn formadas por smbolos de un alfabeto.

As por ejemplo el idioma espaol est formado por un conjunto de palabras


compuestas por letras (smbolos del alfabeto espaol). Una gramtica da cuenta
de la estructura de un lenguaje, es decir de las sentencias que lo forman,
proporcionando las formas validas en que se pueden combinar los smbolos del
alfabeto. En el caso del espaol las oraciones deben ajustarse a una gramtica.

Una consideracin importante es la distincin entre lenguajes formales, que son


los que se trataran en esta antologa y lenguajes naturales. Se puede decir que la
diferencia

estriba

en

que

los

lenguajes

formales

obedecen

reglas

preestablecidas y por tanto se ajustan a ellas. Sin embargo los lenguajes naturales
(utilizados por el hombre) las reglas gramaticales que rigen su escritura han sido
desarrolladas con posterioridad para explicar esta ltima. Por otro lado tambin se
abordar la teora sobre autmatas o maquina abstracta que no es ms que un
dispositivo terico capaz de recibir y transmitir informacin. Para realizar esta labor
manipula cadenas de smbolos que se le presentan a la entrada produciendo
otras cadenas de smbolos a su salida mediante un conjunto de estados que
contienen la informacin necesaria para poder deducir, dado un smbolo de
entrada, cul ser el smbolo de salida en cada momento.

En cuanto a la utilidad prctica terica de esta asignatura, el bloqueI se ocupa de


las gramticas, que permiten la especificacin de lenguajes formales. El bloque II
(mquinas de Turing) es fundamental para el estudio de la computabilidad. El

ltimobloque temtico (lenguajes regulares y lenguajes independientes de


contexto) son importantes para la construccin de compiladores: el primero para la
construccin de analizadores lxicos y el segundo para la construccin de
analizadores sintcticos.

En el criterio de Evaluacin se sugiere abordar por cada parcial un 50% de


Examen terico-prctico, 20% de Entrega de Ejercicios, 20% Prcticas de
Programacin y 10% participacin.

OBJETIVO GENERAL

En este material se estudia los modelos de mquinas computacionales, de


gramticas formales y de los lenguajes correspondientes. Es importante que el
alumno comprenda no solamente la forma en que funciona cada autmata, sino
sobre todo la correspondencia entre autmatas, lenguajes y gramticas, y la
relacin jerrquica entre ellos.

BLOQUE I.AUTMATAS FINITOS

PROPSITO
DEL BLOQUE I

La Teora de Lenguajes Formales y


Autmatas es la base para el desarrollo
de compiladores, interpretes, software y
traductores. Por tanto se pretende dar a
conocer al alumno las maquinas
abstractas que forman la base de la teora
de la computacin, sus caractersticas y
limitantes, estudiar los lenguajes
formales y sus propiedades e Introducir
los conceptos bsicos de computabilidad
y complejidad computacional. Por ltimo,
se busca que en este bloque de
informacin que el estudiante conozca las
tcnicas de construccin de Autmatas
finitos para resolver cuando una
secuencia de smbolos forma parte de un
lenguaje regular.

Instrucciones: Investigue en ACM o algn otro medio digital acreditado las


siguientes preguntas:
Qu es un Autmata?
Cul es su aplicabilidad
Que impacto tiene en el rea de la Computacin y la Electrnica.

Muestre 2 Ejemplos de su Aplicacin.

Cul es la relacin existente de la Teora de Conjuntos y los autmatas


Que es un diagrama de Transiciones

Introduccin

Antes de entrar en materia es primordial comprender lo siguiente:


Por qu es importante la teora de lenguajes formales y autmatas?
Qu es un lenguaje formal?
Conocemos lenguajes naturales...
Espaol, alemn, ingls, chino, rabe...cuando nacemos no sabemos ningunose
puede aprender cualquier lenguaje (por lo menos si se ha nacido en un entorno
adecuado)

El lenguaje es una secuencia de fonemas o smbolosque forman slabas, palabras,


frases, prrafos, captulos, novelas, libros, bibliotecas...que tiene una sintaxis
(fontica u ortografa)que tiene una gramtica (reglas de concatenacin y
construccin de palabras para formar frases)(que tiene un estilo (forma de unir
frases para generar textos)).

Por tanto los lenguajes formales sern meramente smbolos con una gramtica
formal para agruparlos.

1.1 QU ES UN AUTMATA?

Dispositivos mecnicos o electrnicos o biolgicosque en un punto de tiempo


estn en un estadoque dado una razn (por ejemplo una seal de entrada)
cambian de estado.

Ejemplos son: reloj mecnico o electrnico, mquina para lavar, todo un


ordenador, elcerebro?, actualmente ya se han construido relojes biolgicos con
trozos de DNA artificial y sntesis de protenasque visualizan su cambio de estado
con luz fluorescente.

10

En el contexto de esta asignatura los autmatas sern mquinas matemticas con


estados y funcionesde transicin (donde se puede aadir entrada, salida, memoria
interna modificable, etc.).

En los aos 60 se descubri:Los conceptos de gramticas (formales) y de los


autmatas que describen el mismo fenmenoy estn muy relacionados con los
algoritmosy de esta manera surgi la Teora de Computabilidad y la Teora de
Complejidad, es decir,la bsqueda de respuestas a las preguntas tales como:
Qu

es

computable?

Cuntos

recursos(memoria,

espacio,

tiempo,

transiciones) se necesitan?

Es decir, la Teora de los Lenguajes Formales (y de los Autmatas) esto permite


responder a otras preguntasesenciales de la Informtica, por ejemplo:
Tesis de Church: Todo lo que es computable se puede calcular con una Mquina
de Turing.Existen problemas que no son computables.
Por tanto en pocas palabras sin los Lenguajes formales y autmatas: No hay
lenguajes, no hay compiladores, no hay programas, prcticamente no habra nada.

1.2 SISTEMAS DE ESTADOS FINITOS

Un autmata finito o mquina de estado finito es un modelo matemtico de un


sistema que recibeuna cadena constituida por smbolos de un alfabeto y determina
si esa cadena pertenece al lenguajeque el autmata reconoce.Las mquinas de
estado

finito

son

una

herramienta

muy

til

para

especificar

aspectos

relacionadoscon tiempo real, dominios reactivos o autnomos, computacin


reactiva, protocolos, circuitos,arquitecturas de software, etc. El modelo de FSM
(Finite State Machine) es un modelo que poseesintaxis y semntica formales y
que sirve para representar aspectos dinmicos que no se expresan enotros
11

diagramas.Los nodos representan los posibles estados de aquello que se desea


modelar. Las etiquetasrepresentan eventos que provocan un cambio. Las aristas
determinan de qu manera cada estado,dado un evento, deriva en otro estado.

Como una perspectiva complementaria podemos mencionar que un autmata


finito es considerado un modelo matemtico de una mquina que acepta cadenas
de unlenguaje definido sobre un alfabeto A. Que consiste en un conjunto finito de
estados y un conjuntode transiciones entre esos estados, que dependen de los
smbolos de la cadena de entrada. Elautmata finito acepta una cadena x si la
secuencia de transiciones correspondientes a lossmbolos de x conduce desde el
estado inicial a un estado final.

Si para todo estado del autmata existe como mximo una transicin definida para
cadasmbolo del alfabeto, se dice que el autmata es determinstico (AFD). Si a
partir de algnestado y para el mismo smbolo de entrada, se definen dos o ms
transiciones se dice que el autmata es no determinstico (AFND).

Formalmente un autmata finito se define como una 5-uplaM = <E, A, d, e0, F>
dondeE: conjunto finito de estadosA: alfabeto o conjunto finito de smbolos de
entradad: funcin de transicin de estados, que se define como- d: E x A E si el
autmata es determinstico- d: E x A P(E) si el autmata es no determinstico
(P(E) es el conjunto potenciade E, es decir el conjunto de todos los subconjuntos
de E)e0: estado inicial; e0 EF: conjunto de estados finales o estados de
aceptacin; F EGeneralmente se asocia con cada autmata un grafo dirigido,
llamado diagrama de transicinde estados. Cada nodo del grafo corresponde a un
estado. El estado inicial se indica medianteuna flecha que no tiene nodo origen.

12

Los estados finales se representan con un crculo doble.

Si existe una transicin del estado ei al estado ej para un smbolo de entrada a,


existe entoncesun arco rotulado a desde el nodo e i al nodo ej; es decir que (ei, a)
= ej, se representa en eldiagrama

1.2.1 Ejemplo 1:

13

Ejemplo 2:
Autmata finito determinstico que acepta el lenguaje

1.3 AUTMATAS FINITOS DETERMINSTICOS.


Definicin formal:

Es un conjunto finito de estados, tpicamente Q.Un alfabeto de smbolos de


entrada, tpicamente .Un estado es el estado inicial / de comienzo, tpicamente
q0.
Cero o ms estados finales / de aceptacin; este conjunto es tpicamente F.
Una funcin de transicin, tpicamente . Esta funcin:Toma un estado y un
smbolo de entrada como argumentos.Regresa un estado.
Una regla de se escribira como (q,a) = p, donde q y p son estados, y a es un
smbolo de entrada.

Intuitivamente: Si el AF est en un estado q, y se recibe una entrada a, entonces


el AF va al estado p (nota: q = pOK).

14

Podemos pensar de un autmata como un dispositivo que lee desde una cinta con
smbolos y querealiza cambios de estados internamente:auto
Dibujamos los autmatas como grafos dirigidos (no introducimos el concepto
matemtico degrafos formalmente), los estados representan los nodos del grafo, y
dibujamos una arista atribuidacon un smbolo entre dos nodos si existe una
transicin correspondiente.

Es decir, el estado inicial est marcado por una flecha y los estados finales estn
marcados condoble crculo.
1.3.1 Ejemplo 1:
Un AFD que acepta la cadena de 0s y 1s donde los nmeros de ceros y unos es
par: cerounopar

15

16

Ejemplo 2: Un Autmata A que acepta L = {x01y : x, y {0,1}*}


-

El DFA acepta cadenas que tienen 01 en alguna parte de la cadena

El lenguaje del DFA es el conjunto de cadenas que acepta

{w | w tiene la forma x01y para algunas cadenas x y y que consisten slo de


0s y 1s}

El Autmata A = ({q0, q1, q2}, {0,1}, , q0, {q1})

Autmata representado con una tabla de transiciones:

q0

q2

q0

q1

q1

q1

q2

q2

q1

Autmata representado con un diagrama de transiciones:

1
Start

q0

0
0

q2

q1

0,1

Convenciones
Se utilizan algunas convenciones para evitar mencionar el tipo de cada nombre,
para esto utilizamos las siguientes reglas:
Los smbolos de entrada son a, b, etc., o dgitos.
Las cadenas de smbolos de entrada son u, v, ..., z.
Los estados son q, p, etc.

17

Diagrama de Transiciones
Un AF se puede representar por medio de un grafo; los nodos representan
estados; un arco de p a q se etiqueta con el conjunto de smbolos de entrada a tal
que (q,a) = p.
No hay arco si a no existe.
El estado de inicio se indica con la palabra start con una flecha.

1
Start

q0

0
0

q2

q1

0,1

Los estados de aceptacin tienen doble crculo.


Extensin de a Rutas
Intuitivamente, un FAacepta una cadena w = a1a2...an si hay una ruta en el
diagrama de transiciones que:
Empieza en el estado de inicio,
Termina en un estado de aceptacin, y
Tiene una secuencia de etiquetas a1, a2, ..., an.
Ejemplo 3:

18

1.4 CADENAS, ALFABETOS Y LENGUAJES


Cadenas o Palabras
Una secuencia finita de smbolos de un alfabeto es una palabra sobre dicho
alfabeto.
1: 0, 1, 00, 01, 11, 000, 1001101
2: a, aa, abb, ababa
3: napa, palabra
6: a, ab, aab, aaab, abab

Escribimos la palabra vaca, es decir, la palabra que no contiene ningn smbolo,


como

.Usamos

normalmente

letras

minsculas

para

anotar

palabras,

preferiblemente desde el final del alfabeto.El smbolo no pertenece a ningn


alfabeto, la longitud de una palabra sobre un alfabeto es el nmero de
smbolos que contiene.
1 : w = 0 =) |w| = 1, w = 1001101 =) |w| = 7
2 : w = a =) |w| = 1, w = ababa =) |w| = 5
3 : w = napa =) |w| = 2, w = palabra =) |w| = 3
6 : w = ab =) |w| = 2, w = aab =) |w| = 1 o |w| = 2 ??

Dependiendo del alfabeto puede resultar difcil dividir una palabra en sus
smbolos. Si se puede dividir todas las palabras sobre un alfabeto solamente de
una manera en sus smbolos, se llama tal alfabeto libre. Solemos usar solamente
alfabetos libres.
|| = 0
El conjunto de todas las palabras que se pueden formar sobre un alfabeto ms la
palabra vaca se llama el universo del alfabeto W().
W() = {} [ {w | w es palabra sobre}
CW()
19

es palabra de cualquier universo, perteneceW().


La cardinalidad del universo es infinito (pero contable o enumerable, vemos ms
adelante lo que significa).
Si el alfabeto es libre (o mejor decir, un generador libre), escribimos *por W().
Podemos concatenar palabras, entonces sean w, v y u palabras en *.

20

Alfabetos
Un alfabeto es un conjunto finito no vaco de smbolos.

Usamos metasmbolos (tal como {, }, =, y la coma) para escribir sobre lo que


hablamos. Desde el contexto siempre ser claro, si se trata de un smbolo del
alfabeto o si se trata de un metasmbolo.

Usamos subndices para distinguir diferentes alfabetos.


Usamos normalmente las minsculas como alfabeto = {a, . . . , z}, en los ejemplos
normalmente letras desde el principio del alfabeto.
Cardinalidad del alfabeto (nmero de elementos del alfabeto): || > 0, || <

Lenguajes
Un lenguaje es cualquier subconjunto del universo sobre algn alfabeto, es decir,
o tambin

21

Ejemplo:

22

1.4.1 Lenguajes Regulares

Un lenguaje regular es un tipo de lenguaje formal que satisface las siguientes


propiedades:Los lenguajes ms sencillos que se considerarn son los lenguajes
regulares, es decir, los que se pueden generar a partir de los lenguajes bsicos,
con la aplicacin de las operaciones de unin, concatenacin y * de Kleene un
nmero finito de veces.

23

Puede ser reconocido por:un autmata finito determinista y un autmata finito no


determinista.
Un autmata de pila, un autmata finito alterno, una mquina de Turing de solo
lectura.
Es generado por:
Una gramtica regular y una gramtica de prefijos
Es descrito por:
Una expresin regular
Lenguajes Regulares sobre un Alfabeto
Un lenguaje regular sobre un alfabeto dado se define recursivamente como:
El lenguaje vaco

es un lenguaje regular

El lenguaje cadena vaca {} es un lenguaje regular


Para todo smbolo a {a} es un lenguaje regular
Si A y B son lenguajes regulares
Entonces A B (unin), AB (concatenacin) y A* (clausura o estrella de Kleene)
son lenguajes regulares
Si A es un lenguaje regular entonces (A) es el mismo lenguaje regular
No existen ms lenguajes regulares sobre
Todo lenguaje formal finito constituye un lenguaje regular. Otros ejemplos tpicos
son todas las cadenas sobre el alfabeto {a, b} que contienen un nmero par de
aes o el lenguaje que consiste en varias aes seguidas de varias bes.
Si un lenguaje no es regular requiere una mquina con al menos una complejidad
de (log log n) (donde n es el tamao de la entrada).
En la prctica la mayora de los problemas no regulares son resueltos con una
complejidad logartmica.
Un lenguaje formal infinito puede ser regular o no regular. El lenguaje L = {an, n >
0} es regular porque puede ser representado, por ejemplo, mediante la expresin
regular a+. El lenguajeL= {an bn, n > 0} es un lenguaje no regular dado que no es

24

reconocido por ninguna de las formas de representacin anteriormente


enumeradas.

Propiedades de Lenguajes Regulares


Dado que la longitud de las cadenas de los lenguajes regulares no est acotada,
los lenguajes regulares incluyen siempre cadenas cuya longitud es mayor que el
nmero de estados del autmata que las reconoce. Lo anterior implica que para
cadenas cuya longitud es mayor al nmero de estados, al menos un estado ser
visitado mas de una vez, llamemos a ese estado el estado k. Sea i el estado
inicial y j un estado final.

Figura.-

El lema del bombeo

En la figura, u es una cadena que lleva al automata del estado i al k pasando por
una variedad de estados, por esa razn se dibuj con linea punteada; v es una
cadena que lleva al autmata del estado k de nuevo al k pasando por un numero
indefinido de estados, que por supuesto depende de la longitud de la misma
cadena y finalmente t es una cadena que lleva al autmata del estado k al j.

El lema del bombeo, nos dice que si uvt es una cadena tambin lo debe de ser ut
, as como uvvt y en general uv n t n si es que el lenguaje en cuestin es un
lenguaje regular.La utilidad de este lema radica precsamente en decidir si un
lenguaje es regular o n, puesto que no queremos perder el tiempo buscando un
autmata finito que reconozca un lenguaje que ni siquiera es regular.
Formalmente, el lema del bombeo puede ser expresado de la siguiente manera:

L nz( z L, | z | n ) uvti( z uvt, | v | 1, uv i t L)

25

Recuerde que |z| se lee la longitud de la cadena z, y tambin recuerde que el


operador existe nos permite cambiar nuestra eleccin de n, as como de u,v y t,
en cambio para una cierta eleccin de estas variables el operador para todo nos
permite demostrar que el lenguaje no es regular mediante un contraejemplo.

1.5 MAQUINAS EQUIVALENTES


Una Mquina de Estado Finito (Finite State Machine), llamada tambin Autmata
Finito es una abstraccin computacional que describe el comportamiento de un
sistema reactivo mediante un nmero determinado de Estados y un nmero
determinado de Transiciones entre dicho Estados.

Las Transiciones de un estado a otro se generan en respuesta a eventos de


entrada externos e internos; a su vez estas transiciones y/o subsecuentes estados
pueden generar otros eventos de salida. Esta dependencia de las acciones
(respuesta) del sistema a los eventos de entrada hace que las Mquinas de
Estado Finito (MEF) sean una herramienta adecuada para el diseo de Sistemas
Reactivos y la Programacin Conducida por Eventos (Event Driven Programming),
cual es el caso de la mayora de los sistemas embebidos basados en micro
controladores o microprocesadores.

Las MEF se describen grficamente mediante los llamados Diagramas de Estado


Finito (DEF), llamados tambin Diagramas de Transicin de Estados. Existen
bsicamente las siguientes maquinas de estado:
Mquinas secuenciales de Mealy:
Dada una palabra de entrada genera otra de salida, los smbolos de salida
dependen del estado y del smbolo de entrada.

Mquinas secuenciales de Moore


Dada una palabra de entrada genera otra de salida, los smbolos de
salidadependen slo del estado.

26

Autmatas probabilsticos o estocsticos


En su funcionamiento interviene el concepto de probabilidad, asociada a
que se produzca una determinada transicin.

1.5.1 Autmatas Finitos no Determinsticos

Son autmatas en cuyo diagrama de transicin existen varios arcos etiquetados


con elmismo smbolo saliendo del mismo estado, o bien hay transiciones no
existentes.En un momento dado, en un AFND puede suceder lo siguiente:
Existen varias transiciones posibles aplicables.
No existe ninguna transicin aplicable (mquina no totalmente definida).

- Las transiciones de los AFND pueden ser inciertas.


- Un AFND acepta una cierta cadena si es posible que tras analizarla el autmata
quedeen uno de los estados de aceptacin.

27

28

1.5.2 Autmatas Finitos con Movimientos

29

30

1.5.3 Autmatas Finitos de dos Direcciones


Un 2DFA es un quinteto

M (Q, , , q0 , F )
Donde: : Q Q {L, R}
De manera que un 2DFA es un DFA que despues de cambiar de un estado a otro,
se puede mover a la izquierda en la cinta de entrada en lugar de hacerlo siempre
hacia la derecha como los FA's convencionales.

Una descripcin instantnea (ID) del 2DFA tiene la forma xqy donde x es la parte
de la cadena de entrada que se encuentra a la iquierda de la "cabeza" de lectura
del autmata, q es el estado en el que se encuentra el sutmata y y es la parte de
la cadena de la entrada que est a la derecha de la cabeza de lectura. El carcter
que leer el autmata es entonces el primero de y.

Entre dos instantneasconsecutivas se utiliza el smbolo para indicar la


transicin de una ID a otra en un solo paso

I k 1 I k
*

Usamos para indicar que de una instantnea se puede llegar a otra en varios
pasos
El lenguaje que reconoce un 2DFA es:
*

L( M ) {w | q0 w wp

p F)

Ej. El siguiente 2DFA reconoce cadenas formadas de 0's y 1's donde no haya dos
1's consecutivos. Para hacerlo, recorre la cadena de entrada de iquierda a
derecha y al encontrar el primer 1 cambia al estado q1 para "recordar" que ya
encontr un 1 y esta buscando el segundo 1 recorriendo la cadena de entrada a la
derecha. Al encontrar el segundo 1 cambia al estado q 2 y cambia de sentido
buscando ahora hacia la izquierda al menos un 0, si lo encuentra regresa al

31

estado inicial q 0 y continua su recorrido hacia la derecha. Todos los estados son
finales, es:
a)

(q0 ,0) (q0 , R)

b)

(q0 ,1) (q1 , R)

c) (q1 ,0) (q1 , R)

d) (q1 ,1) (q2 , L)

e) (q2 ,0) (q0 , R)

f) (q2 ,1) (q2 , L)

Para la entrada 0100101

La secuencia de ID's sera:

q0 0100101 0q0 100101 01q 00101 010q 0101


1
1
0100q1101 010q2 0101 0100q 101 01001q1 01
0

01001q2 01 010010q 1 0100101q1


0
El comportamiento del 2DFA puede observarse en el siguiente diagrama para la
misma entrada, solo considerese que cuando el autmata cambia de sentido, en
lugar de desplazarse permanece en el mismo lugar de la cinta de entrada pero lee
el carcter de la izquierda si cambi su sentido hacia la izquierda y el de la
derecha si cambi su sentido a la derecha en lugar desplazarse y de siempre leer
el carcter de la derecha.

q0

q0

q1

q1

q1
q2

q0

q1

q1
q2

q0

32

q1

Las columnas de estados ubicadas entre smbolos de la cadena de entrada se


conocen como secuencias cruzadas. Las secuencias vlidas deben cumplir con
las siguientes caractersticas:
-

Deben ser de longitud impar

Los estados "Derechos" deben ocupar posiciones impares

Los estados "Izquierdos" deben ocupar posiciones pares

No debe haber estados repetidos en una secuencia

Los estados "Derechos" son aquellos a los que la transicin hacia ellos tiene
implcito un avance hacia la derecha y los "Izquierdos" son los que al hacer una
transicin hacia ellos simpre se hace un avance hacia la izquierda.

Decimos que la secuencia q1 , q2 ,..., qk verifica por la derecha a la secuencia

p1 , p2 ,..., pl bajo el smbolo b cuando se asegura la posibilidad de que esas dos


secuencias se ubicaran a la izquierda y derecha respectvamanete bajo el smbolo
b en el diagrama de transiciones de estados para alguna cadena que forme parte
del lenguaje que reconoce el autmata comenzando por la derecha. Decimos que
la verifica por la izquierda si se comienzara por la izquierda.

Para averiguar cuales secuencias verifican a cuales bajo el smbolo b podemos


seguir el siguiente procedimiento recursivo:

Base: La cadena nula concuerda por la iquierda y por la derecha a la cadena nula
1 Regla .- Si la secuencia q3 ,..., qk concuerda con la secuencia p1 , p2 ,..., pl por la
derecha bajo el smbolo b y adems

(q1 , b) (q2 , L)
Entonces, la secuencia q1 , q2 ,..., qk concuerda con la secuencia p1 , p2 ,..., pl por la
derecha bajo el smbolo b.

33

2 Regla .- Si la secuencia q2 ,..., qk concuerda con la secuencia p2 ,..., pl por la


izquierda bajo el smbolo b y adems

(q1 , b) ( p1 , R)
Entonces, la secuencia q1 , q2 ,..., qk concuerda con la secuencia p1 , p2 ,..., pl por la
derecha bajo el smbolo b.

3 Regla .- Si la secuencia q1 , q2 ,..., qk concuerda con la secuencia p3 ,..., pl por la


izquierda bajo el smbolo b y adems

( p1 , b) ( p2 , R)
Entonces, la secuencia q1 , q2 ,..., qk concuerda con la secuencia p1 , p2 ,..., pl por la
izquierda bajo el smbolo b.

4 Regla .- Si la secuencia q2 ,..., qk concuerda con la secuencia p2 ,..., pl por la


derecha bajo el smbolo b y adems

( p1 , b) (q1 , L)
Entonces, la secuencia q1 , q2 ,..., qk concuerda con la secuencia p1 , p2 ,..., pl por la
izquierda bajo el smbolo b.
Determinando cuales secuencias verifican a cuales por la derecha, podemos
obtener un NFA a partir de un 2DFA.
Ejemplo, Obtengamos un NFA equivalente al 2DFA del ejemplo anterior.
para este autmta, las secuencias vlidas son solamente:

q0
q1

q0 , q2 , q1
q1 , q2 , q0
Bajo el smbolo 0 concuerdan:
nul por la derecha a nul

Base

nul por la izquierda a nul

Base
34

q0 por la derecha a q0

(1), Regla 2 y (a)

q1 por la derecha a q1

(1), Regla 2 y (c)

nul por la izquierda a q 2 q0

(2), Regla 3 y (e)

q1 por la derecha a q1 q 2 q0

(5), Regla 2 y (c)

De la misma forma obtenemos las concordancias bajo el smbolo 1


Con esa coleccin de concordancias revisamos si en base a una de las cuatro
reglas, y la tabla de transciciones del autmata de dos sentidos podemos
aumentar la coleccin. cuando ya no se pueda aumentar dicha coleccin
descartamos las concordancias por la izquierda y en base a las concordancias por
la derecha formamos la tabla de transiciones del autmata de un solo sentido.
Para el ejemplo, la tabla ser:

Concordancias Concordancias
por la derecha por la derecha
bajo 0

bajo 1

[q0 ]

[q0 ]

[q1 ]

[q1 ]

[q1 ] , [q , q , q ]
1
2
0

[q0 , q2 , q1 ]

[q1 , q2 , q0 ]

[q1 ]

1.5.4 Autmatas Finitos con Salida Maquinas Moore yMealy

Las mquinas de Mealy y Moore son circuitos sncronos. Un circuito sncrono es


un circuito digital en el cual sus partes estn sincronizadas por una seal de reloj.
En un circuito sncrono ideal, cada cambio en los diferentes niveles lgicos es
simultneo. Estas transiciones se realizan despus de un cambio de nivel de una
seal llamada reloj. Idealmente la entrada a cada elemento de almacenamiento
35

alcanza su valor final antes de que la siguiente seal de reloj ocurra, por lo tanto el
comportamiento de un circuito se puede predecir exactamente. Se requiere se
cierto retardo para cada operacin lgica, por lo que existe una mxima rapidez en
el que cada sistema sncrono puede responder. El anlisis de un diagrama de
tiempos puede darnos esta rapidez.

Una mquina de Mealy es una mquina de estados finita, donde las salidas estn
determinadas por el estado actual y la entrada. Esto significa que en el diagrama
de estados se incluye una seal de salida para cada arista de transicin. Por
ejemplo, en la trayectoria de un estado 1 a un estado 2, si la entrada es cero la
salida puede ser uno, y se debe poner sobre la arista la etiqueta 0/1.

En contraste, la salida de una mquina de estado finito Moore (mquina de


Moore), depende solo del estado actual y no depende de la entrada actual. Por lo
tanto, losestados de una mquina de Moore son la unin de los estados de la
mquina de Mealy y el producto cartesiano de estos estados y alfabeto de entrada
(posibles entradas).
Definicin formal:
Una mquina de Moore se define como una tupla (secuencia finita) de 5{S, , , T,
G} que consiste de:
Un conjunto finito de estados ( S )
Un conjunto finito llamado alfabeto de entrada ( )
Un conjunto finito llamado alfabeto de salida ( )
Una funcin de transicin (T : S S) que dirige a cada estado y a una
entrada al siguiente estado.
Una funcin de salida (G : S ) que dirige a cada estado al alfabeto de salida.
El nmero de estados en una mquina de Moore es mayor o igual al nmero de
estados a su correspondiente mquina de Mealy.
Una mquina de Mealy es una tupla de 6 (S, S0, , , T, G), que consiste de:

36

Un conjunto finito de estados ( S )

Un estado inicial S0 el cual es un elemento de (S)

Un conjunto finito llamado alfabeto de entrada ( )

Un conjunto finito llamado alfabeto de salida ( )

Una funcin de transicin (T : S S)

Una funcin de salida (G : S )

37

BLOQUE II MQUINAS DE TURING Y COMPUTABILIDAD DE


PROBLEMAS

INSTRUCCIONES:

LEE,

REFLEXIONA

CONTESTA

LOS

PLANTEAMIENTOS CORRESPONDIENTES.
QU ENTIENDES POR AUTMATA.
CON EL APOYO DE LA LECTURA DEFINE QU ES UNA MQUINA
TURING.

2.1 MAQUINA DE TURING.


Este tipo de autmata (para los fines de esta Antologa, usaremos esa palabra
para denotar a una mquina terica) fue propuesto por Alan Turing, mientras
estudiaba modelos algortmicos utilizando un modelo computacional: bsicamente
consta de un mecanismo de control y un flujo de entrada que concebiremos como
una cinta, adems, ests mquinas poseen una cabeza de lectura que pueden
desplazar hacia atrs o hacia adelante y tambin pueden escribir en la cinta. El
mecanismo de control slo puede hallarse en uno de un nmero finito de estados,
uno de tales estados lo denominaremos estado inicial y nos representar el estado
en el cual la mquina comienza los clculos; mencin aparte merece un segundo
estado especial del conjunto de estados de la mquina: el estado de parada o
detenimiento el cual se caracteriza porque marca el final de los clculos al llegar la
mquina a este.

La idea subyacente es el concepto de que una mquina de Turing puede verse


como un autmata ejecutando un procedimiento efectivo definido formalmente,
donde el espacio de memoria de trabajo es ilimitado, pero en un momento
determinado slo una parte finita es accesible.

38

LA COMPLEJIDAD DE LOS CLCULOS EN UNA MAQUINA DE TURING.

Consideremos la ejecucin de una transicin en una mquina de Turing como un


paso en los clculos de la mquina y definamos como complejidad temporal en
una mquina de Turing el nmero de pasos que se ejecutan durante los clculos.
Por otra parte, la complejidad espacial en una mquina de Turing se define como
el nmero de celdas de la cinta que dicho clculo requiere. Es importante hacer
notar que la complejidad espacial y temporal no tienen que ser en lo absoluto
iguales, por ejemplo, durante la ejecucin de un clculo: supongamos que una
mquina escribe 100 veces en la misma celda, ello significa que el clculo tiene
complejidad temporal de 100 pero complejidad espacial de 1. Otro aspecto a
tomar en cuenta es que las complejidades espacial y temporal no son del todo
independientes entre s, debido a que en n pasos, una mquina de Turing tiene
acceso a un mximo de n+1 celdas de la cinta. Por consiguiente, si la
complejidad temporal de una mquina de Turing es n, entonces la
complejidad espacial del clculo no ser mayor que n+1.

Al evaluar la complejidad de un algoritmo, se manejan entonces variaciones en el


rendimiento del mismo, identificando para ello las situaciones del mejor y peor
escenario de desempeo, buscando con ello garantizar que cualquier aplicacin
del algoritmo se halle en ese intervalo. Lo que se acostumbra en la prctica es
adoptar un punto de vista pesimista y definir la complejidad por su rendimiento en
el peor de los casos, aunque, aun as, las condiciones necesarias para estudiar un
algoritmo varan de acuerdo con la situacin en la que se ejecuta; es decir, en un
ambiente de aplicacin, no siempre bastan las evaluaciones del peor caso, mejor
caso o incluso del caso promedio; en cambio, hay que considerar el ambiente en
el que se ejecutar el algoritmo.

Finalmente, se hace nfasis en que al evaluar complejidad en una mquina de


Turing no se toma en cuenta el conocimiento preciso de los mecanismos
involucrados para la ejecucin del algoritmo, por lo que los resultados obtenidos
39

son vlidos en las computadoras ms antiguas como las ms modernas. La


importancia de ello se da a notar en el momento en el que se consideran
algoritmos con complejidades temporales o espaciales cuya ejecucin no llega a
ser en absoluto prctica.

2.1.1 Definicin

Definimos una mquina de Turing como una 7-tupla M = (Q, , , s, , F, ), donde


Q

Es un conjunto finito de estados


Es un alfabeto de entrada
Es un alfabeto llamado alfabeto de la cinta

sQ Es el estado inicial

Es el smbolo blanco

FQ Es el conjunto de estados finales o de aceptacin


: QQ {L, R}

Es una funcin parcial que se llama funcin de

transicin.

La mquina de Turing posee una cinta dividida en celdas, cada celda es capaz de
almacenar un smbolo. Adems posee una cabeza lectora/escritora que lee y
escribe un smbolo en la cinta. Inicialmente la cinta contiene b en todas sus
celdas. La funcin de transicin transforma pares (q, ) en ternas de la forma
(p, t, X), donde p es el siguiente estado, t es el smbolo escrito en la cinta y X es el
movimiento de la cabeza lectora/escritora, que puede ser L o R.

40

2.1.2 Ejemplos

Por ejemplo, la transicin(q1, a) = (q5, b, R) provoca que la mquina pase de una


configuracina la configuracinSe puede dar una descripcin instantnea de la
mquina de Turing similar a la de los ADPND, para la transicin anterior sera el
carcter subrayado indica la posicin de la cabeza lectora/escritora.
(q1, abb) (q5, bbb)

Otra posibilidad es anteponer el estado actual al carcter sealado por la cabeza


lectora/escritora como se muestra
q1abbbq5bb

MQUINAS DE TURING COMO ACEPTADORES DE LENGUAJES


Sea M = (Q, , , s, , F, ) una mquina de Turing. Entonces el lenguaje
aceptado por M esL(M) = {w* | q1w*w1pw2 para pF y wi*}

Los lenguajes aceptados por las mquinas de Turing se conocen como lenguajes
recursivamente enumerables.

41

El siguiente grafo muestra una mquina de Turing transforma una cadena de la


formaanbam enan+mbmediante la siguiente funcin de transicin:
(q1, a) = (q1, a, R)
(q1, b) = (q2, a, R)
(q2, a) = (q2, a, R)
(q2, ) = (q3, , L)
(q3, a) = (q4, b, L)
(q4, a) = (q4, a, L)
(q4, ) = (q5, , R)
La siguiente mquina de Turing reconoce el lenguaje anbn.
(q1, a) = (q2, c, R)
(q2, a) = (q2, a, R)
(q2, d) = (q2, d, R)
(q3, b) = (q3, d, L)
(q3, d) = (q3, d, L)
(q3, a) = (q3, a, L)
(q3, c) = (q1, c, R)
(q1, d) = (q4, d, R)
(q4, d) = (q4, d, R)
(q4, ) = (q5, , L)

2.2 CONSTRUCCIN DE UNA MQUINA DE TURING


La mquina de Turing consta de un cabezal lector/escritor y una cinta infinita en la
que el cabezal lee el contenido, borra el contenido anterior y escribe un nuevo
valor. Las operaciones que se pueden realizar en esta mquina se limitan a:
avanzar el cabezal lector/escritor para la derecha;
42

avanzar el cabezal lector/escritor para la izquierda.

El cmputo es determinado a partir de una tabla de estados de la forma:


(Estado,valor)

(\nuevo estado, \nuevo valor, direccin)

Esta tabla toma como parmetros el estado actual de la mquina y el carcter


ledo de la cinta, dando la direccin para mover el cabezal, el nuevo estado de la
mquina y el valor a ser escrito en la cinta.

Con este aparato extremadamente sencillo es posible realizar cualquier cmputo


que un computador digital sea capaz de realizar.

Mediante este modelo terico y el anlisis de complejidad de algoritmos, fue


posible la categorizacin de problemas computacionales de acuerdo a su
comportamiento, apareciendo as, el conjunto de problemas denominados P y NP,
cuyas soluciones en tiempo polinmico son encontradas segn el determinismo y
no determinismo respectivamente de la mquina de Turing.

De hecho, se puede probar matemticamente que para cualquier programa de


computadora es posible crear una mquina de Turing equivalente. Esta prueba
resulta de la Tesis de Church-Turing, formulada por Alan Turing y Alonzo Church,
de forma independiente a mediados del siglo XX.

La idea subyacente en el concepto de mquina de Turing es una persona


ejecutando un procedimiento efectivo definido formalmente, donde el espacio de
memoria de trabajo es ilimitado, pero en un momento determinado slo una parte
finita es accesible. La memoria se divide en espacios de trabajo denominados
celdas, donde se pueden escribir y leer smbolos. Inicialmente todas las celdas
contienen un smbolo especial denominado blanco. Las instrucciones que
determinan el funcionamiento de la mquina tienen la forma, si estamos en el

43

estado x leyendo la posicin y, donde hay escrito el smbolo z, entonces este


smbolo debe ser reemplazado por este otro smbolo, y pasar a la leer la celda
siguiente, bien a la izquierda o bien a la derecha. La mquina de Turing puede
considerarse como un autmata capaz de reconocer lenguajes formales. En ese
sentido es capaz de reconocer los lenguajes recursivamente e numerables, de
acuerdo a la jerarqua de Chomsky. Su potencia es, por tanto, superior a otros
tipos de autmatas, como el autmata finito, o el autmata con pila, o igual a otros
modelos con la misma potencia computacional.

2.3 LENGUAJES ACEPTADOS POR MQUINAS DE TURING


Definicin. Un lenguaje L sobre un alfabeto se dice que es recursivamente
enumerable si es aceptado por alguna mquina de Turing. Es decir, L es
recursivamente enumerable si para alguna mquina de Turing M tenemos queL(M)
= {w* | qw*upv para pF y u, v*}
(Dondeq 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.

Lenguajes regulares, independientes del contexto, recursivos y recursivamente


enumerables
Sea M = (Q, , s, F, ) un autmata finito determinista. Se puede construir una
mquina de Turing M = (Q, ', , s, , F, ) para la cualL(M) = L(M) por medio
de:
Q = Q {q}, donde q es un nuevo estado que no esta en Q.
' =
= {}
F = {q}
44

(q, ) = ((q, ), , R), para qQ y


(q, ) = (q, , S), para todo qF, donde S es la directiva de cinta
nomoverseTeorema.

Si L es un lenguaje regular, entonces L es tambin un lenguaje recursivo.


Sea M un autmata de pila no determinista. Podemos construir una mquina de
Turing que emule el comportamiento de M. Supongamos un MT con dos cintas, la
primera contendr la cadena de entrada y la segunda se utilizar para almacenar
la pila. Un apilamiento se emula moviendo la cabeza de la segunda cinta a la
derecha y escribiendo el smbolo que se apilar.

Consideremos el siguiente ADPND dado por


Q = {q1, q2, q3},

s = q1,

= {a, b},

F = {q3},

= {a, b, z},
(q1, , z) = {(q3, )},

(q1, a, z) = {(q1, az)},

(q1, a, a) = {(q1, aa)},

(q1, b, a) = {(q2, )},

(q2, b, a) = {(q2, )},

(q2, , z) = {(q3, )},

Este ADPND reconoceanbn. La mquina de Turing empezar en el estado q.


Primero se marca el fondo de la pila en la cinta 2. Por tanto, tendremos las
transiciones
(q, (a, )) = (q1, (a, z), (S, S))
(q, (, )) = (q1, (, z), (S, S))

Para realizar un apilamiento y consumir un smbolo se tendrn las transiciones


(q1, (a, z)) = (p1, (a, z), (S, R))
(q1, (a, a)) = (p1, (a, a), (S, R))
(p1, (a, )) = (q1, (a, a), (R, S))

45

Las cuales apilan aes sobre la pila. Para desapilar tendremos


(q1, (b, a)) = (q2, (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(q1, , z) = {(q3, )} corresponde al
movimiento de la mquina de Turing.
(q2, (, z)) = (q3, (, z), (S, L))
Teorema. Si L es un lenguaje independiente del contexto, entonces L es tambin
un lenguaje recursivo.
Teorema. Si L1 y L2son lenguajes recursivos, entoncesL1L2tambin lo es.
Teorema 5.3.1. Si L es un lenguaje recursivo, entonces *Les un lenguaje
recursivo.
Teorema 5.3.2. Hay un lenguaje recursivamente enumerable L para el cual*Lno
es recursivamente enumerable.
Teorema 5.3.3. Si L1 y L2 son lenguajes recursivamente enumerables,
entoncesL1L2es tambin recursivamente enumerable.
Teorema 5.3.4. Si L es un lenguaje recursivamente enumerable para
elcual*Ltambin es recursivamente enumerable, entonces L es un lenguaje
recursivo.
Teorema 5.3.5. Un lenguaje L es recursivamente enumerable si y solo si L es
enumerado por alguna mquina de Turing.
Definicin 5.4.1.Una gramtica no restringida (que tambin se conoce como una
gramtica estructurada por frase) es una 4-tuplaG = (N, , S, P), donde

Nes un alfabeto de smbolos no terminales


es un alfabeto de smbolos terminales conN =
SNes el smbolo inicial
46

P Es un conjunto finito de producciones de la forma ,


donde (N )+ y (N )* (es decir, P (N )+ (N )*
y es un conjuntofinito ).

Teorema 5.4.2. Si G es una gramtica no restringida, entonces L(G) es un


lenguaje recursivamente enumerable.
Teorema 5.4.3. Si L = L(M) es un lenguaje recursivamente enumerable y G se
construye de la forma descrita, entonces L = L(G).
Teorema 5.4.4. Un lenguaje L es recursivamente enumerable si y solo si L = L(G)
para alguna gramtica G, no restringida.
Definicin 5.5.1. Una gramticaG = (N, , S, P) es una gramtica sensible al
contexto si todas las producciones son de la forma, donde, (N )+ y | |
| |.
Teorema 5.5.2. El conjunto de los lenguajes sensibles al contexto contiene al
conjunto de los lenguajes independientes del contexto.
Teorema 5.5.3. SeaG = (N, , S, P) una gramtica sensible al contexto. Entonces,
existe una gramtica G1 = (N1, , S1, P1) sensible al contexto, para la cualL(G) =
L(G1) y S1nunca aparece en el lado derecho de una produccin deP1.
Teorema 5.5.4. Sea G = (N, , S, P) una gramtica sensible al contexto.
Entonces, existe una una mquina de Turing T, que para sobre toda entrada y
acepta L(G).
Teorema 5.5.5. Si L es un lenguaje sensible al contexto, entonces L es recursivo.
Teorema 5.5.6. Hay lenguajes recursivos que no son lenguajes sensibles al
contexto.
Teorema 5.5.7. Los lenguajes sensibles al contexto contienen, propiamente, a los
lenguajes independientes del contexto. A su vez, los lenguajes recursivos
contienen, propiamente, a los lenguajes sensibles al contexto.
Teorema 5.5.8. Sobre un alfabeto dado, el conjunto de los lenguajes
recursivamente enumerable contienen propiamente a los lenguajes recursivos que
contienen propiamente al conjunto de los lenguajes sensibles al contexto que
47

contienen propiamente al conjunto de los lenguajes independientes del contexto.


Que a su vez, contienen propiamente los lenguajes regulares.
Lregular Li.c. Ls.c. Lrecursivo Lr.e

2.4. HIPTESIS O TESIS DE CHURCH


En la teora de la computabilidad, la tesis de Church-Turing (tambin conocido
como la conjetura de Church-Turing, tesis de Church, la conjetura de la Iglesia, y
la tesis de Turing) es una hiptesis combinadas ("Tesis") acerca de la naturaleza
de las funciones cuyos valores son efectivamente calculable, es decir, computable.
En trminos simples, se establece que "todo lo computable es computable por una
mquina de Turing".
Se hicieron varios intentos en la primera mitad del siglo 20 para formalizar la
nocin de computabilidad:
Los tres procesos de clculo (la repeticin, el clculo de , y la mquina de Turing)
mostraron ser equivalentes-los tres enfoques definen la misma clase de funciones.
Esto ha llevado a matemticos y cientficos informticos para creer que el
concepto de computabilidad es exactamente caracteriza por estos tres procesos
equivalentes. De manera informal la tesis de Church-Turing afirma que si algn
mtodo (algoritmo) que existe para llevar a cabo un clculo, el mismo clculo
tambin puede ser llevada a cabo por una mquina de Turing (as como por una
funcin recursiva definida por, y por un - la funcin).

2.5 MAQUINAS DE TURING COMO ENUMERADORES


Sea una mquina de turing M multicinta que posee una cinta de solo escritura
(salida) cuyo cabezal no se desplaza nunca a la izquierda.
M escribe cadenas sobre la cinta de salida separadas por un smbolo especial de
separacin#.
Contenido de la cinta de salida: x1#x2#...#xn#...dondexi lenguaje generado por
m: g(m) = fx1#x2#: : :#xn#: : :gntese que l = g(m) es finito a no ser que m no pare
48

nuncatodo lenguaje recursivo puede ser generado por una mquinade turing en
orden lexicogrfico

2.6 MAQUINAS DE TURING RESTRINGIDAS


Se pueden imponer ciertas restricciones a la TM y de todos modos mostrar que
aceptan el mismo lenguaje.TM con cinta semi-infinita.

La cinta es infinita en un sentido, la cadena de entrada se coloca al principio de la


cinta la cual no contina a la izquierda. Tambin se incluye la restriccin de no
poder escribirB (blank) en la cinta.

Se puede demostrar que un TM normal se puede simular con una TMsemi-infinita


usando dos caminos, uno que simula la cinta a la izquierda dela cadena de
entrada y otro que simula la otra parte de la cinta.
X0 X1 X2 . . .
*X1 X2 . . .

Los estados en la TM semi-infinita son los que tiene la TM original junto con U o L
para representar arriba (U) o abajo (L), adems de un par de estados para
preparar la TM semi-infinita.

Las transiciones en la cinta de arriba son iguales a las de la TM original, y las de


abajo son contrarias (si la TM original se mueve a la derecha, la TM semi-infinita
inferior se mueve a la izquierda y al revs, si se mueve a la izquierda la TM
original la otra se mueve a la derecha). Solo se tiene que tener cuidado en las
situaciones en donde se cambia de un camino al otro.

2.7 FUNCIONES RECURSIVAS


2.8 FUNCIONES PARCIALES
49

Cualquier dato puede ser codificado como una cadena de ceros y unos (y en
consecuencia como enteros no negativos).
Funciones totales vs. Funciones parciales
Ejemplos
Funcin total de NxN: +
Funcin parcial de NxN: div

Todas las funciones computables son funciones parciales de la forma:

f : n m
Donde m y n son enteros no negativos
2.8.1 FUNCIONES INICIALES

Funcin cero:
Funcin sucesor:

( x) x 1

Proyecciones:

23 (7,6,4) 6

EJERCICIO: Cul es el resultado de

11 (7) 7

02 (6,5) ()

22 (6, ( (5)))

la siguiente llamada a funcin?


Combinacin:

f : k n
f g : k m n

k
m
g :
f g x ( f x , g x )

Composicin:

f : k n
f g : k m

n
m
g :
f g x f g x

Ejercicios:

13 33 (4,6,8)

Recursividad primitiva:
suma 0 x = 0
suma (y + 1) x = 1 + (suma y x)
50

2.8.2 Funciones Recursivas Primitivas

Funciones recursivas primitivas: construidas a partir de las funcionesinciales


aplicando un nmero finito de combinaciones, composiciones y recursiones
primitivas
Algunas funciones recursivas primitivas:

Funciones constantes

k mn

Correspondencia entre cualquier tupla de 5

k35

elementos y el valor 3
Correspondencia entre cualquier tupla de 3

k53

elementos y el valor 5

Algunas funciones recursivas primitivas:


Funcin predecesor

pred (0) ()
pred ( y 1) 12 ( y, pred ( y ))
Funcin monus (x-y)

monus( x,0) x
monus( x, y 1) pred (monus( x, y ))
Algunas funciones recursivas primitivas:

Funcin equal:

eq( x, y) 1 (( y x) ( x y))
51

Funcin not:

monus (k12 eq )
Funciones tabulares:

Todas las FRP son totales


Existen funciones computables que no son FRP:
Div es computable y es parcial !!

En 1928 Ackerman, present una funcin computable, total y no recursiva


primitiva: La funcin de Ackerman:

A(0, y ) y 1
A( x 1,0) A( x,1)
A( x 1, y 1) A( x, A( x 1, y ))

Las funciones totales computables se conocen como -recursivas


Los matemticos pensaron que las FRP abarcaban todas las funciones totales
computables.

2.9 FUNCIONES RECURSIVAS PARCIALES


Son aquellas que se construyen a partir de funciones inciales aplicando un
nmero finito de combinaciones, composiciones, recursividades primitivas y
52

minimalizaciones. Las funciones recursivas parciales son un sper conjunto de las


recursivas primitivas
Tesis de Church: La clase de las funciones recursivas parciales contiene todas las
funciones parciales computables.
Nadie ha podido demostrar que esta afirmacin es falsa.
La tesis de Church es equivalente a la tesis de Turing

Ejercicio 1:
monus(0, pred(1))=0

f(0)=1

monus(1, pred(2))=0

f(1)=2

monus(2, pred(3))=0

f(2)=3

monus(3, pred(4))=0

f(3)=4

monus(4, pred(5))=0

f(4)=5

monus(5, pred(6))=0

f(5)=6

f es total

2.9.2 El Problema de Correspondencia de Post


El Problema de Correspondencia de Post es un problema de decisin indecidible
que fue propuesto por Emil Post.

Resulta til para realizar pruebas de indecibilidad. El problema puede ser descrito
como sigue:

Dado un diccionario bilinge que contiene pares de frases, es decir, listas de


palabras, que significan lo mismo, decidir si existe una frase que significa lo mismo
en ambos lenguajes.
Planteamiento del problema
La entrada del problema est formada por dos listas finitas de caracteres de algn
alfabeto . Ambas listas de igual longitud:

53

L1 = u1, un
L2 = v1, vn
El alfabeto contiene al menos dos smbolos.Una solucin a este problema es
una secuencia de ndices
i1,, ik, 1 ij n, tales que
ui1,uik = vi1vik
El problema de decisin consiste en saber si existe una solucin para el problema
planteado.

Ejemplo:
Sea = {a; b} y sean dos listas L1 y L2 siguientes:
i

ui

Vi

aba

bbb

Aaa

aab

Abab

bb

baba

Una solucin al problema es la secuencia 1, 4, 3, 1


u1u4u3u1 = aba + bb + aab + aba = ababbaababa
v1v4v3v1 = a + babba + abab + a = ababbaababa
Si eliminamos u4 y v4 de ambas listas, el problema ya no tienesolucin
Se puede asegurar que el problema es Indecidible

1.- Realice un autmata finito determinista de un objeto utilizada en la vida diaria y


dibuje su diagrama de transiciones.
Objeto: bolgrafo.
Las entradas posibles al sistema son: x1=pulsar x2= no pulsar. La respuesta
ante una misma entrada no siempre es la misma.

54

Depende tambin de la historia de las entradas anteriores. Dicha historia de


entradas anteriores se resume diciendo que el sistema est en un estado dado.
Todo lo que puede pasar en la vida til de un bolgrafo es que su punta est
dentro o est fuera. La respuesta depende de la entrada aplicada y de si est
dentro o fuera. Adems, en la definicin de autmata finito debe haber un estado
inicial. Podemos elegir un bolgrafo que inicialmente tuviera la punta dentro.

Solucin.-

2. Descrbalas cadenas que acepta el autmata finito determinista representado


en el siguiente diagrama de transiciones:

Solucin:
La expresin regular es: digito* letra (digito letra)*

55

La descripcin es: cadenas formadas por cero o ms dgitos y al menos una letra,
estando esta (o estas) en cualquier posicin.

3.- Disee un diagrama de transiciones para reconocer expresiones aritmticas de


longitud arbitraria que comprenden enteros positivos separados por signos de
suma, resta, multiplicacin o divisin.
Solucin:

4.- Modifique el siguiente esqueleto de diagrama de transiciones de manera que


est completamente definido y acepte las mismas cadenas que antes.

Solucin:

5. Queremos construir un autmata finito M tal que L(M)={xmynzp | m, n y p son


enteros no negativos}. Es correcta la siguiente solucin?
56

Correcta

b) Incorrecta

y
y

z
y

z
Solucin: B.
No admite la cadena yz.
6.- El lenguaje que consiste en aquellas cadenas que no contienen tres xs
consecutivas es el lenguaje complementario del que consiste en aquellas cadenas
que s contienen tres xs consecutivas. Este ltimo lenguaje es regular, puesto que
puede representarse mediante la expresin regular: (xy)* xxx (xy)*. A
continuacin se muestran los respectivos diagramas de los autmatas que
reconocen los dos lenguajes anteriores.
Solucin.-

x
y

y
x

7.- Escriba un cdigo en lenguaje natural o en un lenguaje de programacin que


ejemplifique un analizador lxico directamente a partir del siguiente diagrama de
transiciones:
57

Solucin:
Estado := 1;
Leer el siguiente smbolo de entrada
WHILE El ltimo smbolo ledo no sea el de Fin de Cadena DO
CASE Estado OF
1: CASE Smbolo actual OF
Letra : Estado := 2 ;
: : Estado := 3 ;
Dgito : Estado := 5 ;
ELSE Salir a rutina de error ;
END (* del CASE interno *)
2: CASE Smbolo actual OF
Letra : Estado := 2 ;
Dgito : Estado := 2;
ELSE Salir a rutina de error ;
END (* del CASE interno *)
3: IF Smbolo actual <> = THEN Salir a rutina de error END ;
4: IF Smbolo actual <> NIL THEN Salir a rutina de error END ;
5: IF Smbolo actual <> dgito THEN Salir a rutina de error END ;
ELSE Salir a rutina de error ;
END (* del CASE externo *)
58

END (* del WHILE *)

IF ( Estado=1 OR Estado=3 ) THEN Salir a rutina de error END ;

8.- Construya una tabla de transiciones a partir del diagrama del ejercicio anterior.

9.- La interseccin de una coleccin finita de lenguajes regulares siempre es


regular. Basta probar pues que el lenguaje descrito en el enunciado coincide con
la interseccin de una coleccin finita de lenguajes regulares del alfabeto {x, y, z}.
Una tal coleccin la constituyen los lenguajes L1, L2 y L3 donde:

L1 es la coleccin de todas las cadenas de x, y y z con un nmero impar de xs


L2 es la coleccin de todas las cadenas de x, y y z con un nmero impar de ys
L3 es la coleccin de todas las cadenas de x, y y z con un nmero par de zs
Las cadenas que pertenezcan al lenguaje L =L1 L2 L3 habrn de verificar las
tres condiciones anteriores. Podemos demostrar que los lenguajes L1, L2 y L3 son
regulares mostrando los autmatas finitos que los reconocen:

10.Elabore una lista de los autmatas finitos deterministas basados en el alfabeto


{x, y} que tengan un estado; y luego los quetengan dos estados.

Solucin:
59

x
1

x
z

x
z

6
z

Recordemos que un autmata finito determinista cumple:


- Existe un estado inicial.
- De cada estado parte un arco (y slo uno) por cada una de las entradas posibles.

10.a) Autmatas con un slo estado. Dos posibilidades.

El primero acepta cualquier cadena.


El segundo es el que no acepta ninguna cadena. Es posible gracias a que hemos
admitido que el conjunto de estados de aceptacinpuede ser vaco.

Si el autmata debiera tener siempre al menos un estado de aceptacin, para


analizar el lenguaje vaco se deberautilizar el diagrama de la figura, el cual ya no
es de un solo estado por ejemplo:

60

10.b) Autmatas con dos estados.

Recordemos que al ser determinista, en cada estado debe haber un arco y slo un
arco para cada smbolo de alfabeto. Elprocedimiento para contar los autmatas
es:
N de autmatas= (N de arcos posibles en cada estado) N de estados posibles actuales
Como para un mismo smbolo (en cada estado) debe haber un nico arco, el
nmero de arcos posibles en cada estado es igual alnmero de arcos diferentes
en cada estado.

N de arcos diferentes=NA= (N de smbolos de alfabeto)(N de estados siguientes


posibles)

Por tanto:
N de estados posibles actuales=N de autmatas N de

N de autmatas = [(N de smbolos de alfabeto) (N de estados posibles


siguientes)] N de estados posibles actuales
= [(2*2)]2= 16. Esto correspondera como sigue:

61

Representacin Grafica con Autmatas.-

Hay otras 16 combinaciones, con la nica variacin respecto a las anteriores es de


considerar como estado de aceptacin slo el 1.

62

63

BLOQUE III. COMPLEJIDAD DE PROBLEMAS

COMPLEJIDAD DE LOS CLCULOS

Introduccin al estudio de complejidad de los clculos.

La ciencia de la computacin es un cuerpo sistematizado del conocimiento


concerniente al clculo, que sesostiene en dos reas fundamentales: La Teora de
la Computabilidad, basada en las ideas y los modelosfundamentales subyacentes
al clculo, y las tcnicas de la ingeniera para el diseo de algoritmos.

La Teora de la Complejidad computacional estudia losrecursos requeridos para


resolver un problema como son el tiempo y el espacio; por su parte la teora de
lacomputabilidad se interesa en expresar los problemas como algoritmos sin tener
en cuenta la informacin sobrelos recursos necesarios para ello.
Para abstraer las variaciones entre los diferentes sistemas computacionales se
utiliza una mquina deTuring como un referente fijo, considerado como un modelo
de mquina isofrmica a cualquier otro sistemainformtico.

La Tesis de Church-Turing nos dice que si la mquina de Turing no puede resolver


un problema, ninguna otracomputadora podr hacerlo, puesto que no existe
algoritmo

para

resolver

el

problema.

Por

esa

razn,

laslimitaciones

corresponderan a los procesos computacionales y no a la tecnologa.


El concepto de algoritmo es el de un procedimiento sistemtico y muy bien
especificado para realizar una tarea determinada. Uno de los principales objetivos
de esta Unidad es presentar una idea de cmo se clasifican los problemas de
acuerdo con su complejidad. Diremos que un problema es complejo si su
resolucin requiere de un algoritmo complejo.
Existen dos medidas importantes de la complejidad de una estrategia de solucin
o algoritmo:
64

La primera medida de un algoritmo es su certeza, es decir, la total confianza de


que cuando el algoritmo es aplicado en un cierto problema, encontrar la solucin
correcta o bien indicara que el problema no tiene solucin.

La otra medida es la complejidad de un algoritmo, es decir, la cantidad de trabajo y


recursos involucrados por aquella persona o sistema de cmputo que lleva a cabo
cada uno de los pasos.

En los algoritmos donde se buscan soluciones numricas el principal indicador de


la medida de trabajo o complejidad es el conteo total de las operaciones
aritmticas realizadas desde el inicio del programa, algoritmo, hasta la obtencin
de la solucin; de manera inherente a tal conteo, la complejidad del clculo puede
ser vista desde el punto de vista temporal y/o espacial; es decir, consideramos
que un clculo es ms complejo que otro si requiere mayor tiempo para concluirse,
desde luego, suponiendo que ambos algoritmos son llevados a cabo en entornos
idnticos de ejecucin (mismo tipo de mquina, por ejemplo); por otra parte, el otro
punto de vista, el espacial, nos dice que un algoritmo es ms complejo que otro si
requiere mayor cantidad de espacio para llevarse a cabo (por ejemplo espacio en
memoria).

De lo anterior, podemos asumir que la complejidad tanto espacial como temporal


puede variar dependiendo del sistema donde se ejecute el clculo, por ello, para
evitar estas variaciones en el anlisis de la complejidad de un clculo, se requiere
considerar un sistema computacional (o sistema de clculo) fijo: tal sistema, para
nuestro anlisis, es la mquina de Turing, pues esta tiene muchas caractersticas
semejantes a la de los computadores digitales modernos.

3.1 ANLISIS DE ALGORITMOS


65

La Teora de la Complejidad Computacional es la parte de la teora de la


computacin que estudia los recursos requeridos durante el clculo para resolver
un problema. Un clculo resulta complejo si es difcil de realizar. En este contexto
podemos definir la complejidad de clculo como la cantidad de recursos
necesarios para efectuar un clculo.

As, un clculo difcil requerir ms recursos que uno de menor dificultad. Los
recursos comnmente estudiados son el tiempo (nmero de pasos de ejecucin
de un algoritmo para resolver un problema) y el espacio (cantidad de memoria
utilizada para resolver un problema). Un algoritmo que resuelve un problema pero
que tarda mucho en hacerlo, difcilmente ser de utilidad. Igualmente un algoritmo
que necesite un gigabyte de memoria no ser probablemente utilizado. A estos
recursos se les puede aadir otros, tales como el nmero de procesadores
necesarios para resolver el problema en paralelo. Si un clculo requiere ms
tiempo que otro decimos que es ms complejo y lo llamamos complejidad
temporal. Por otro lado, si un clculo requiere ms espacio de almacenamiento
que otro decimos que es ms complejo, en este caso hablamos de una
complejidad espacial. Es claro que el tiempo que se requiere para efectuar un
clculo en un computador moderno es menor que el requerido para hacer el
mismo clculo con las mquinas de las dcada pasadas, y seguramente que el
tiempo en una mquina de la prxima generacin ser mucho menor. El estudio
de los procesos computacionales, conduce a una clasificacin de los problemas
en dos grandes clases: los problemas con solucin y los problemas sin solucin.
Los problemassolucionables, requieren gran cantidad de recursos como tiempo y
espacio de almacenamiento. El anlisis requerido para estimar el uso de recursos
de un algoritmo es una cuestin terica, y por tanto necesita un marco formal. El
formalismo y abstraccin constituye un mtodo necesario para la programacin,
considerada como disciplina cientfica en la que se prioriza la actividad de diseo y
razonamiento, sobre la de depuracin mediante prueba y error en un contexto
artesanal.

66

Los problemas que tienen una solucin conorden de complejidad lineal son los
problemas que se resuelven en un tiempo que se relaciona linealmente con su
tamao. Aunque actualmente la mayora de los algoritmos resueltos por
lasmquinas tienen como mximo una complejidad o costo computacional
polinmico, es decir, la relacin entre el tamao del problema y su tiempo de
ejecucin es polinmica. stos son problemasagrupados en la clase P. Los
problemas con costo no polinomial estn agrupados en la clase NP.
Estosproblemas no tienen una solucin algortmica, es decir, una mquina no
puede resolverlos en untiempo razonable.
Existe una escala para medir la complejidad, la que incluye, entre otros: P,
Resoluble en tiempopolinmico; P-completo, los problemas ms difciles en P. NP
problemas con respuestas positivasverificables en tiempo polinmico y NPcompleto, los ms difciles problemas de NP. Muchas de estasclases tienen una
co-clase que contiene los problemas complementarios a los de la clase original.
Por ejemplo, si X est en NP, el complemento de X est en co-NP. Sin embargo,
no debe entenderseque NP y co-NP sean complementarios; hay problemas que
pertenecen a ambas clases, yotros que no estn en ninguna de los dos. Cada
cierto tiempo se duplica el nmero deinstrucciones por segundo que los
computadores pueden ejecutar. Los profanos y no tan profanospiensan que esto
puede inducir a muchos programadores a pensar que basta esperar algunos
aospara que problemas que hoy necesitan muchas horas de clculo puedan
resolverse en pocos segundos, soslayando la necesidad de evaluar y obtener
algoritmos eficientes. Este artculo pretendedeshacer tal suposicin, mostrando
que el factor predominante que delimita lo que es soluble en untiempo razonable
de lo que no lo es, es precisamente el algoritmo elegido para resolver el problema.
El hombre es creativo por naturaleza, la tecnologa le ofrece un mundo de
posibilidades de exploracin, por tanto, no debe sustraerse de los beneficios que
sta le provee. Particularmente, el advenimiento de nueva tecnologa debe
tomarse como un estmulo para buscar algoritmos ms eficientes.

3.2 COMPUTABILIDAD
67

Es conveniente suponer que un sistema computacional es fijo (abstracto), con la


finalidad de eliminar las variaciones de un sistema a otro. Brookshear elimina
estas variaciones de anlisis en sistemas diferentes y evala la complejidad de
clculo suponiendo un sistema fijo basado en una mquina de Turing, ya que
supone que a partir de ella puede trasladar sus resultados a otros sistemas y
mantener la complejidad. Un lenguaje de programacin (el preferido por usted)
tiene un poder expresivo ya que permite escribir cualquier algoritmo (una idea) en
ese lenguaje. Sin embargo, suponemos que existen algunos algoritmos que no
pueden representarse haciendo uso de ese lenguaje. Surge la interrogantede si
esto se debe a una limitacin del lenguaje o es una limitacin de los procesos
algortmicos en general (no existe algoritmo). Nos preguntamos, si el lenguaje no
permite escribir un algoritmo o esque no existe un algoritmo que pudiera calcular
dicha funcin. Consideremos una clase que contienetodas las funciones
computables. Una funcin es computable si existe un algoritmo para ella,
sinimportar como pueda implantarse o expresarse ese algoritmo. Puede
construirse un conjunto que contenga todas las funciones computables, para ello
se utiliza un mtodo muy usado por los matemticos, el mtodo recursivo
generacional. Este mtodo permite que a partir de un conjunto bsico de funciones
computables, consideradas como funciones iniciales, puedan construirse las
dems combinndolas en forma recursiva y as obtener el conjunto mayor de
todas las funciones computables.

Puede demostrarse, aunque no es el objetivo de este artculo, que una funcin de


esta clase puedecalcularse por medio de una mquina de Turing. La Teora de la
Complejidad Computacionalse basa en un enfoque no funcional, en donde
interesa como se lleva el clculo y su complejidad enfuncin de los recursos que
utiliza. La Teora de la Computabilidad se interesa en hallar una solucina un
problema, mas no se interesa por los mtodos especficos de expresar una
solucin algortmicaen un sistema computacional; es decir, no interesa cmo se
pueda implantar.

68

3.3 HIPTESIS DE CHURH


La hiptesis de Churh nos dice que una funcin computable puede identificarse
con la clase de las funciones parcialmente recursivas. Una funcin parcialmente
recursiva F: X X es aquella cuyo dominio constituye un subconjunto de X, por
ejemplo en la funcin div: Zx Z Z, el par (x, 0)no est en el dominio de F, puesto
que no se puede dividir entre cero. La base de la jerarqua deestas funciones
computables consiste en un conjunto de funciones inciales, a partir de las
cualesse construyen las funciones recursivas primitivas mediante composicin de
funciones. Todas estasfunciones son computables, sin embargo, existen funciones
que no son primitivas pero son computables, de estas funciones se dice que no
son totales sino parcialmente recursivas. Inicialmente se pens que todas las
funciones recursivas primitivas eran computables, pero Ackerman propuso
laconocida funcin que lleva su nombre A(0,y)=y+1, A(x+1,0)=A(x,1) y
A(x+1,y+1)=A(x, A(x+1,y)), lacual es computable pero no es recursiva primitiva.
Como esta hiptesis no pone lmites al nmero depasos o cantidad de
almacenamiento necesario para la funcin, supone que las funciones parcialmente
recursivas son computables. Una funcin no es computable a menos que pueda
limitarse el clculo por adelantado o determinar que el clculo terminar o no en
algn momento. Las mquinas de Turing constituyen una herramienta de
verificacin, pues adems de servir como aceptadores de lenguajes formales,
pueden considerarse como una calculadora de funciones de los enteros a los
enteros. Las funciones calculadas por una mquina de Turing se conocen como
funciones parcialmente recursivas, y stas incluyen a las funciones computables.

69

3.4 COMPLEJIDAD DE UN ALGORITMO


Definicin
La complejidad o eficiencia de un algoritmo se define como el orden de magnitud
de los recursos informticos que requiere el algoritmo para ser ejecutado.

Utilidad
El estudio de la complejidad de los algoritmos permite evaluar su coste, y as:
1 Comparar algoritmos entre s.
2 Averiguar si un algoritmo es factible.
Aspectos que intervienen en el clculo de complejidades
Cules son los recursos informticos que hay que estimar.
En qu casos (para qu tipo de entradas) hay que estimar la complejidad.
Qu significa calcular el orden de magnitud.
Qu reglas prcticas existen para calcular complejidades.

3.5 RECURSOS INFORMTICOS

Recursos considerados
Los recursos informticos a evaluar son el tiempo (de ejecucin) y/o el espacio (de
memoria) requeridos por los algoritmos. Ambos dependen claramente del tamao
de la entrada, por lo que se trata de calcular las funciones TA y EA tales que:
TA(n) = tiempo requerido para la ejecucin del algoritmo A con una entrada de
tamao n.
EA(n) = espacio de memoria requerido para la ejecucin del algoritmo A con una
entrada de tamao n.

70

Cmo estimar los recursos


El clculo del tiempo (similar para el espacio) no debe depender ni del lenguaje de
programacin utilizado, ni del compilador, ni de la mquina elegida. Solucin:
TA(n) = nmero de operaciones bsicas que realiza el algoritmo A con una
entrada de tamao n donde una operacin bsica es aquella cuyo tiempo de
ejecucin se puede acotar superiormente por una constante, independientemente
del tamao de la entrada, la mquina, etc.

3.6 CASOS PARA EL ESTUDIO DE LA COMPLEJIDAD


Las funciones TA y EA no slo dependen del tamao de la entrada, sino tambin
de su contenido: no se tarda lo mismo en ordenar 10 nmeros ya ordenados que
en ordenar 10 nmeros totalmente desordenados!

Los casos de estudio ms habituales son los siguientes:

El peor caso, caso extremo en el que el nmero de operaciones a ejecutar


(o el espacio requerido) es el mayor posible.

El caso medio o caso probabilstico, que representa una situacin


intermedia (su evaluacin suele requerir tcnicas estadsticas).

El clculo en el peor caso asegura que los recursos reales consumidos, sea
cual sea el contenido de la entrada, nunca rebasarn el valor calculado.

3.7 MEDIDAS ASINTTICAS Y RDENES DE COMPLEJIDAD

La complejidad de un algoritmo es importante fundamentalmente cuando el


tamao de la entrada es grande (si hay que ordenar un conjunto de 5 elementos,
la eficiencia del algoritmo no importa demasiado, puesto que en cualquier caso
ser razonable).

71

Por ello, para analizar las funciones TA o EA bastar con estudiar su


comportamiento asinttico, es decir, cmo se comportan cuando el tamao de la
entrada, n, es grande.

Existen varias medidas para estudiar el comportamiento asinttico de una funcin.

Una de las ms habituales es la medida O(f ) (O grande de f ) que se describe a


continuacin, que permite obtener cotas superiores.

Conjuntos O(f ) ms importantes y su ordenacin

O(1) complejidad constante


O(log n) complejidad logartmica
O(n) complejidad lineal
O(np) complejidad polinmica (p=2: cuadrtica, p=3: cbica)
O(2n) complejidad exponencial
O(n!) complejidad factorial
O(1) O(log n) O(n) O(n log n) O(np) O(2n) O(n!)
72

3.7.1 REGLAS PRCTICAS

Resumen de los puntos anteriores


Calcular la complejidad de un algoritmo A= estudiar el comportamiento asinttico
de las funciones TA/EA (dependientes del tamao n de la entrada al algoritmo) en
el peor caso o en un caso medio.
= encontrar una funcin f : N R+ tal que en el peor caso/caso medio se tenga
TA/EA 2 O(f ).

Observacin
Dado que los conjuntos O(f ) proporcionan cotas superiores, se tratar de
encontrar la menor de todas las funciones f : N R+ tales que TA/EA O(f ) (por
ejemplo, si TA/EA O(n2), evidentemente tambin es TA/EA O(n3), pero ... lo
segundo no aporta nada!).

Consideraciones previas
Todo algoritmo est compuesto por una secuencia de instrucciones.
Existen unas reglas prcticas para calcular el coste de cada uno de los posibles
tipos de instrucciones. La complejidad de un algoritmo se basa en el coste de las
instrucciones que lo componen pero el clculo depende de si el algoritmo es o no
recursivo.

3.8 REGLAS PARA CALCULAR EL TIEMPO DE EJECUCIN EN EL


PEOR CASO DE LOS DISTINTOS TIPOS DE INSTRUCCIONES.
REGLA 1: INSTRUCCIONES ELEMENTALES
Se llama instruccin elemental a las operaciones de entrada/salida, asignaciones y
expresiones aritmticas en las que no est involucrada ninguna variable que
dependa del tamao de la entrada del algoritmo.
73

REGLA 2: SECUENCIA DE INSTRUCCIONES

REGLA 3: INSTRUCCIONES DE SELECCIN

REGLA

4:

INSTRUCCIONES DE REPETICCION

Nota: la complejidad de un bucle PARA i DESDE a1 HASTA a2 HACER J se


calcula igual que la de un bucle MIENTRAS salvo que en el caso PARA el coste
de la condicin B se puede ignorar puesto que es siempre constante.

74

REGLA 5: LLAMADAS A SUBPROGRAMAS


En el caso de instrucciones que sean llamadas a otros algoritmos(subprogramas),
el coste de la instruccin ser el coste del subprograma:
EDI

CLCULO DEL TIEMPO DE EJECUCIN EN EL PEOR CASO DE UN


ALGORITMO

Depende de si el algoritmo es o no es recursivo.

SI EL ALGORITMO ES NO RECURSIVO

Su complejidad es el mximo de las complejidades de las instrucciones que lo


componen (la complejidad de cada una de estas instrucciones se calcula
aplicando las reglas anteriores).

SI EL ALGORITMO ES RECURSIVO

Para calcular la complejidad de un algoritmo recursivo es necesario realizar los


dos siguientes pasos:

Plantear la ecuacin recurrente asociada con el tiempo de ejecucin T del


subprograma.
Resolver la ecuacin recurrente anterior (es decir, encontrar una expresin no
recursiva para el valor de T).
Las familias de recurrencias ms habituales son:

1 Ecuaciones recurrentes obtenidas mediante sustraccin


2 Ecuaciones recurrentes obtenidas mediante divisin
75

Recurrencias obtenidas mediante substraccin

RECURRENCIAS OBTENIDAS POR DIVISIN.

3.9 ESPACIO Y TIEMPO POLINOMIAL


ALGUNOS PROBLEMAS QUE SONPROBABLEMENTE INTRATABLES
Para empezar probaremos que dos problemas requieren realmente tiempo
exponencial. En un caso, reducimos nuestro problema a un lenguaje el cual, por el
76

teorema de jerarqua, se sabe que requiere espacio exponencial y en


consecuencia tiempo exponencial. En el segundo caso, mostramos como reducir
nuestros problemas a todos los lenguajes en tiempo exponencial no determinstico
y entonces exponer por un teorema de jerarqua de tiempo no determinista [Cook
1973a] que entre ellos debe haber uno que realmente requiera, digamos, espacio
2n.Ahora debemos considerar un problema que tiene que ver con expresiones
regulares, esto es, idear algo tal que (a) por lo menos se requiere espacio 2 cn/

log

para resolverlo y (b) este requerimiento puede ser probado fcilmente. Despus

de que, consideremos un problema de lgica que no fue ideado mucho antes de


que su complejidad fuera analizada y donde la prueba de la exponencialidad est
fuera de ser directa.

Expresiones Regulares con Exponenciacin


Considrese una expresin regular sobre un alfabeto, para el cual se asume por
conveniencia que no contiene a los smbolos , 0 o 1. Sea r i la representacin
de la expresin rr r (i veces), en donde i est escrita en binario. La expresin r
puede incluir el operador (exponenciacin). Por ejemplo, (a 11 + b 11) 10
establece que:
{aaaaaa, aaabbb, bbbaaa, bbbbbb}.
Asmase que el operador tiene una precedencia ms alta que los otros
operadores. Debemos mostrar que esencialmente requiere espacio exponencial,
esto es, espacio 2p(n), para algn polinomio p(n), si es una expresin regular con
exponenciacin que denota todas las cadenas sobre su alfabeto (recuerde que ,
0 y 1 son usados como operadores y no son parte del alfabeto). Primero damos
unalgoritmo espacio-exponencial para el problema.

Teorema (13.14)
El problema de si una expresin regular con exponenciacin denota a todas las
cadenas sobre su alfabeto puede ser resuelto en espacio exponencial.

77

Demostracin:
Dada una expresin regular de longitud n, debemos expandir los s para obtener
una expresin regular ordinaria y mostrar que tiene longitud de a lo mas n2n.
Entonces, debemos convertir sta expresin a un AFN de a lo mas n2n+2 estados y
probar que si el AFN acepta a *. (Ntese que ste ltimo paso debe ser hecho
sin conversin a un AFD, pues el AFD deber tener 2n2n+2 estados).
Para eliminar las s trabajamos de adentro hacia afuera. Probaremos por
induccin sobre j que una expresin con s, que tiene longitud m, con j 0s y 1s,
tiene una expresin regular ordinaria equivalente de longitud a lo mas m2j. Base j
= 0. El resultado es inmediato.

Induccin Lea la expresin r de longitud m desde la izquierda hasta que se


encuentre el primer . Entonces lea de regreso hasta el argumento r1 de la
izquierda de donde se encontr a . Asmase que tiene la precedencia ms alta,
as su argumento debe ser un smbolo simple o debe estar entre parntesis; en
consecuencia sta extraccin es fcil. Sea r = r2r1 ir3. Reemplace r por r =
r2r1r1 r1r3, en donde r1 es escrito i veces. Por la hiptesis de induccin r
tiene una expresin regular ordinaria equivalente de longitud a lo mas (m + (i
1)|r1|)2jlog2 i smbolos. Como 2jlog2 i = 2j/iy como |r1| m, vemos que:

Si r es de longitud n, entonces seguramente m = n y j n, as la expresin regular


ordinaria equivalente tendr longitud de a lo msn2n.

Ahora, usando el algoritmo del Teorema 2.3 podemos producir un AFN de a lo


mas 4n2n= n2n+2 estados. Suponiendo de manera no deterministica smbolo por
smbolo, una entrada a1a2 que el AFN no acepta. Usando n2n+2 celdas,

78

podemos, despus de cada suposicin, calcular el conjunto de estados que han


entrado despus de que el AFN ha ledo la secuencia de los smbolos
conjeturados hasta ahora. La entrada necesita no ser escrita abajo, puesto que
podemos calcular el conjunto de estados incorporados de este conjunto en
cualquier smbolo de la entrada. Si conjeturamos siempre una secuencia de
entrada en la cual no se incorpore ningn estado que acepta el AFN, aceptamos;
la expresin original no denota a *. Por el Teorema de Savitch podemos llevar a
cabo ste proceso de manera deterministica usando espacio n24n. Es fcil
concebir una codificacin del AFN que puede ser almacenada en O (n32n) celdas,
pues cerca de n bits son suficientes para codificar a un estado y el alfabeto de
entrada no es mas grande que n. Como n24n> n32n, se sigue que n24nes una cota
superior sobre el espacio requerido.

Debemosproporcionarunacotainferiorde2cn/lognparaalgunaconstantesobreelespaci
orequeridoparaelproblema
dearriba.Observequeproporcionandounaciertacantidaddeespacioserequieretambin
probarquelamismacantidaddetiempoes requerido(aunqueloopuestonoesverdad).
Teorema(13.15)
Existeunaconstantec>0talqueparacadaMTqueaceptael
lenguajeLrcxdeexpresionesregularesconexponenciacinquedenotaaquetomaame
nudomsque2cn/lognespacio(yporlotanto 2cn/logntiempo).
Demostracin:
ConsidreseunaMTMdeunacintasimpledeterministaespacio
acotado2n .Paracadaentradaxdelongitudn.

constryaseuna
quedenota,endonde

expresinregularconexponenciacinEx
eselalfabetodeEx,siysolosiMnoaceptaax.Porloquehacemos
denotetodoslosclculosdeMsobrex.

79

queEx

consistedetodos

lossmbolosdelacintadeM,lossmboloscompuestos[qX],donde

qesunestadoyXunsmbolodelacintaysmboloquesirvede
marca#.Asmaseque,0yel1nosonsmbolosdemarcado.
UnacadenayennoesunacadenadeaceptacindeMsobrexsi
ysolosiunaomsdelassiguientesaseveracionessonverdaderas.
LaDIinicialestequivocada.
Nohayunestadodeaceptacin.
CadaDInosesiguedeunapreviaporunmovimientodeM.

Enloquesigue,usamosconjuntosdesmbolospararepresentarla
expresinregularqueeslasumadestossmbolos.Destamanera,
si={a1 ,a2 ,...,an },entoncesusamosacomounataquigrafa
paralaexpresinregulara1+a2++an.Demanerasemejante
tambinusamosaparaestablecerlaexpresinregularqueeslasumadetodoslossmbol
osenexceptoa.

Unaexpresinregularquedenotatodaslascadenasquenoempiezan
conlaDIinicialestadadapor:
START =+(#)+A1+A2++
An +(n+1)(+)(2n1)(
B)+(2n+1)(#)

Endonde
0a1]) *
A=1 ([q
Ypara 2in,
Ai =i(ai)
80

Elpenltimoterminodenotaa n+1seguidoporhasta2nn1
smbolosseguidosporcualquiercosamenosporunblanco,ydenota
cadenastalesquealgunaposicinentren+1y2ndelaprimeraDI
2nn1estnescritosenbinario,

nocontieneunblanco.Comony

lalongituddestetrminoesproporcionalan.Elltimotrmino
denotacadenas,enlascualesel2n+1-e

si

nosmbolonoes#,lacualtambinesdelongitudproporcionalan.Lostrminosrestantes
tienensulongitudproporcionalalognyhayn

+3detalestrminos.

Destamaneralalongituddelaexpresionesproporcionalanlogn.
Curiosamente,lalongituddelaexpresinquedenotaunafalsaDI
inicialdominalalongituddelosotrostrminosenEx.
Unaexpresinregularqueobligaaquelacondicinqueestahy
quenoaceptaelestadoestardadapor:
FINISH=({[qX]}|qesunestadofinal)
Estaexpresin esdelongitudconstantedependientesolodeM.
Finalmente,seaf(W,X,Y)elsmboloquedenotaaZtalquesiW,XyYsonlas
posicionesi1,iei+1deunaDI,entoncesZentoncesestar
enlaposicinidelasiguienteDI.Entoncessea
MOVE=+ (W,X,Y) WXY

(2n1)(f(W,X,Y))

Estoes,MOVEeslasuma,sobreunnmeronitodetercias
(W,X,Y)desmbolosen,deaquellascadenasconW,XyY
ocupandoposicionesconsecutivasenunaDIquetieneunsmbolo
incorrecto2nposicionesaladerecha.Como

lalongituddecada

trminoeslinealenn,lalongituddeMOVEeslinealenn.
La

expresindeseadaesEx=START+

FINISH+MOVE.SiM

entonceselclculoaceptadonoestenEx.Sialguna
n
81

aceptaax,

#[q0a1 ]a2anB2

cadenaynoestenEx,entoncesdebedeempezar

n #,cadaDIdebeseguirlapreviaporunmovimientodeM,ylaaceptacindebedeocurriren
algunaparte. DestamaneraMaceptaax.PorlotantoEx=siysolosiM noaceptaax.
Ahora,seaMunamquinadeTuringqueaceptaellenguajeLque
puedeseraceptadoen2nespacioperonoen2n j/nespacio.El
teoremadejerarquaparaelespacioaseguraquetalMexiste.
SupngasequehabaunaMTS(n)espacioacotadaqueaceptaal
conjuntoLrexdeexpresionesregularesconexponenciacindenotando
a,conunacodicacinconvenienteLrextieneunalfabetonito.
Entoncespodramosreconocer Lcomosigue.

DexdelongitudnconstruyaEx,cuyalongitudesproporcionala
nlogn.PodemosconstruirEx proporcionalenespacioanlogn deunamaneraobvia.
CodicarEx

dentrodelalfabetodeLrex.ComoMtieneun

nmeronitodesmbolos,lalongituddelacodicacindeEx

es

cnlognparaalgunaconstantec.EnespacioS(cnlogn),determinesiEx
estenLrex,siesas, rechacex,sinoaceptax.
La

cantidadtotaldeespacioeselmximoentrenlognyS(cnlogn).

PuesningunaMTqueusamenosde2n/nespacioyqueaceptaaL existe,debeserque:
nlogn+S(cnlogn)>2n /n

delocontrarioLpodraseraceptadoenespacio2n /npoeelLema
12.3.Asexisteunaconstanted>0talquesiS(m)fuesemenorque2dm/logm
paratodonmeromenosparaunconjuntonitodem,

entonces(13.4)serafalso.

SesiguequeS(m)2dm/logm para algunaconstantedyunnmeroinnitodems.

Corolario
82

Lrexescompletoparaespacioexponencialconrespectoalareduccin
entiempopolinomial.

Demostracin:

Enelteorema13.15dimosunareduccinentiempopolinomialpara
LrexquefuncionaparacadalenguajeLenDSPACE(2n).Habramos
podidogeneralizarlofcilmentealreducircualquierlenguajeen
DSPACE(2p(n)),paraalgnpolinomiop,aLrex.

DebemosobservarquelacotanlognsobrelalongituddeEx

es

crticaparaelTeorema13.15,aunqueparasucorolariohabramos
podidopermitirquelalongitudseaalgnpolinomioen|x|.Si,por
ejemplo,solopodramosprobarque|Ex||x|2 ,entoncesnuestra
cotainferiorquerequeramossobreelespacio

Lrexdebihabersido2d n

enlugardelaquetenamos.

Teorasdelacomplejidaddeprimerorden
Ahora

debemosconsiderarunproblemaquerequiereporlomenos

tiempo2cn,sernodeterminista,yqueseaconocidoquesepueda
resolverenespacioexponencialydoblementetiempoexponencial.
Comotambinpuedemostrarsequeelproblema esnodeterminista tiempoexponencial
difcilconrespectoalasreduccionesentiempo
polinomial,probandounacotainferiorqueesmejorconrespectoala

83

cantidaddetiemponodeterministaseraunamejorasobreel
teorema12.10,locualesmuypocoprobable.

Unlenguajedeprimerordenconsistedeundominio(porejemplo,los
enterosnonegativos),unconjuntodeoperaciones(porejemplo,+,*),unconjuntodepredi
cados(porejemplo,=,<)unconjuntode
constantesescogidasdeldominio,yunconjuntodeaxiomas
deniendoelsignicadodelosoperadoresypredicados.Paracada

teorapodemos

denirellenguajedeexpresionesverdaderassobrelasconstantes,operadores,predicado
s, variables,losconectoreslgicos,,yyloscuanticadoresy.
Ejemplo
(N,+,,=,<,0,1),endondeNestlosenterosnonegativos,es

conocidacomoteorade

nmeros.Elfamosoteoremadeincomplets
deGodelestablecequeellenguajededeclaracionesverdaderasen
teoradenmerosesindecidible.MientrasqueelresultadodeGodel
precedentealasmquinasdeTuring,noesdifcilmostrarsu
resultado.SiunaMTMaceptacuandoempiezaconunacintaen
blanco,lohaceporunclculoenelcualninguna

DIesmasgrande

quealgunaconstantem.Podemostratarunenteroi,enbinario,
comounclculodeMconDIsdelongitudm.

La

aseveracindequeMaceptaa,elcualsesabequees

indecidible,puedeserexpresadocomoim(Em(i)),endondeEmes
unpredicadoqueesverdaderosiysolosiieslacodicacindeun
clculoqueconduceauna

aceptacindeconDInomasgrandeque

m.(Algunosdelosdetallesestnenelejercicio13.37.)Desta

manera

lateoradenmerosesunateoraidecidible.

Hay

unnmerodeteorasdecidiblesconocidas.Porejemplo,

(R,+,=,<,0,1),lateoraderealesconadicin,esdecidible,y

84

debemosmostrarquerequieredemanerainherentetiempono
deterministicoexponencial.Silosrealessonreemplazadosporlos
racionales,obtenemosquelaoracindearribaesotravezverdadera,
puessinlamultiplicacin,esimposibleencontrarunaaseveracin
comox(xx=2)queesverdaderaparalosrealesperonoparalos

racionales.La

teoradeenterosconadicin(Z,+,=,<,0,1),llamadaaritmticaPresburger,esdecidible,y
sesabequerequiere

tiempodoblementeexponencialnodeterministico.Estoes22

esuna

cn

cotainferiordelacomplejidaddetiemponodeterministicodela

aritmticadePresburger.

Ejemplo
Antesdeproseguir,consideremosunnmerodeejemplosenlateora
derealesconadicin.xy(y=x+1)esverdadero:dicequex+1 esunrealsixloes.
xy[x = yz(x<zz<y)
z(y<zz<x)]
Tambinesverdadero:establecequeentredosnmerosreales

diferentespodemos

encontraruntercerreal;estoes,losrealesson densos.Laoracin
yx(x<yx=y)
Esfalsa,puesparacadanmerorealyexisteunnmerorealmas
grande.Notequenotenemosmaneradedecidirsiunaoracines
verdadera;ladecisindepende

de

laspropiedadesyaconocidasdelos

nmerosreales,conloqueseasumeellectorestfamiliarizado.
Unprocedimientodedecisin

paralosnmerosrealescon

debemosempezarnuestroestudiodelosrealesconadicinpordar
unprocedimientoquerequiereespacioexponencialytiempo
doblementeexponencial.Paraempezar,pongamosnuestra
85

adicin

declaracindadaenformanormal,endondetodoslos
cuanticadoresseaplicanalaexpresinentera.Esfcilobteneruna
expresinenstaformasiprimero

renombramoscuanticadoresde

variablesyasellassernnicas yentoncesaplicamoslasidentidades.
(x(E))=x(E)
x(E1 )E2=x(E1E2)
Ycuatroreglassimilaresobtenidasdelasanterioresporintercambiar
yy/oreemplazandopor.Esteprocesonoesmsdeldoble
delongituddelaexpresin;losnicossmbolosquesepudieron

agregaralaexpresin

sonunpardeparntesisporcuanticador. Ahora tenemoslaformula

Q1x1 Q2 x2Qmxm F(x1,x2 ,...,xm )(13,5)


EndondelosQissoncuanticadoresylaformulaFnotiene
cuanticadores.FesporlotantounaexpresinBooleanacuyos
operandossontomos,untomoesunaconstanteBooleanaouna
expresindelaformaE1 opE2 ,endondeopes=o<yE1

yE2

son

sumasdevariablesylasconstantes0y1.SabemosqueFesdesta
formaporqueningunaotracombinacintienesentido.Estoes,+
puedeseraplicadosoloavariablesyconstantes,<e=
relacionanconexpresionesaritmticasylosoperadoresBooleanos
puedenseraplicadossoloaexpresionesquetienencomoposibles
valoresaFalso/Verdadero.

Paradeterminarlaveracidadofalsedadde(13.5)sustituimos
repetidamenteparaelcuanticadormsinternounacuanticacin
acotada,lacualessmbololgicoor(enlugarde)oand(en
lugarde)deunnmerogrande,peronito,nmerodetrminos.
Supngasequeen(13.5)sejanlosvaloresx1,x2 ,...,xm1 .Cada

86

solose

tomoinvolucradoconxmpuedeponerseenlaformaxmopten

dondeopes<,=

o>ytesdelaformam1c0+.cixi,i=1endondeloscissonracionales.Supngasequetodos
estostomos

sonxmopti,1ik,endondet1t2tkparalosvalores

dadosdex1 ,...,xm1 .Paraalgnvalordexmenelrango


ti<xm<ti+1 ,cadatomotieneelmismovalordeverdad.Desta
maneralaveracidadde(13.5)esdependientedel actualvalordexm ensterango.
Estonosconducealaobservacinquelostisparticionanla

lnea

real

enunnmeronitodesegmentosylaveracidadde(13.5)depende
solodelsegmentoenelcualestxmynodelactualvalordexm .De
stamanerapodemosprobar(13.5)probandounodelosvaloresde
xmdecadaunadeunnmeronitoderegionescomolosugierela

Figura13.6.

variarn,realmentenosabemos

Comolosvaloresdex1,x2,...,xm1
elordendelostis.Masaun,probandoxm=ti,paracadai,
2
87

xm=1(ti+tj)paracadai=j,yxm=.Sabemosqueno
importaelordendelostis,estamossegurosdetenerunaxmrepresentativaencadainterva
lodelaFigura13.6ytambinenlos
mismostis,endondelostomosconeloperador=puedenllegara serciertos.

SesiguequesiQm=,entoncesxmF(x1 ,...,xm )puedeser


reemplazadoporestoes,porelsmbololgicoordek(k+1)/2+2trminos,cada
unodeloscualesesFconunasubstitucindexm.SiQm=,se
puedehacerunreemplazosimilarsustituyendopor.

SiFtienektomos,F

tienek[k(k+1)/2+2]tomos,ademsF

tienealomask3

tomos,parak3.Tambin,siloscoecientesen
lostomosdeFsonelradiodelosenterosdealomasrbits,
entonces,despusdeagrupartrminos,resolverparaxmycalculando
elpromediodedostis,encontramosqueloscoecientesenlostomosdeF
sernproporcionesdeenterosconnomasde4r+1
sesiguequecomoa,b,cydsonenterosder-bits,

Eslaproporcindeenterosmsr-bits,y

88

bits.Deesto

Eslaproporcindeunenterode(2r+1)bitsyunenterode2r-bits.
Parar1,entonces,loscoecientesenF

nosonmsdecinco

veceslalongituddeloscoecientesdeF.

Siserepiteelprocesodearribaparaeliminartodosloscuanticadores
yvariables,nalmenteproduceunaformulaconsolooperadores

lgicos,=

<yconstantes.Lasconstantessonproporcionesde
enterosdealoms5mrbits.Elnmerodetomosesaloms
entreconstantesde5mrbits,y

comocadatomoesunarelacin
k,myrsonmenoresquen,lalongitud

delaexpresinesaloms

dn
n
22 ,paraalgunaconstantec(notequen3

2n
22 ).Podemosevaluar

untomodelaformaa/b<c/d

alcalcularadbcycomparndolo

con0.Destamanera,laexpresinnalenterapuedeserevaluada
enelcuadradodesulongitud.Enconsecuencianuestro
procedimientodedecisintoma22

dn

tiempo,paraalgunaconstanted.

Elprocedimientocomolohemosdadotambintomaespacio
doblementeexponencial.Masaun,podemos

reducirelespacioaun

espaciosimplementeexponencialalevaluarFrecursivamente.
Estamoslistosparaverquenecesitamossolounconjuntonitode
valoresparacadaxi.Losvaloresxi

estarndadosporlaformula

j=1ajxj,endondelosajssonracionales,quesonproporciones
deenteros5mj+1bits,endondereselnmerodebitsenla
constantemasgrandedelaformulaoriginal,F;notequerlogn.

Destamaneralosvaloresparax1sonracionalesqueson
proporcionesdeenterosdealoms5mrbits,losvaloresparax2son
proporcionesdeenterosdealoms5m+1 rbits,etc.Destamanera
solonecesitamoselcicloconlosvaloresparacadaxi

89

queesaloas

de52mrbits.UsamosunprocedimientorecursivoEVAL(G)que
determinasiGesverdaderacuandolasvariablestomanlosvaloresycualquierproporci
ndeunenterode52mrbits.
SiGnotienecuanticadores,entoncessoloconsistederelaciones
lgicasyaritmticasentrenmerosracionales,assuveracidadpuede
serdeterminadadirectamente.SiG=x(G ),EVAL(G)llamaa

EVAL(G )paratodaG

formadadeG

alreemplazarxporo

unaproporcinenterade52mrbits.EVAL(G)esverdaderasi
EVAL(G )nosregresaverdadparatodasstasexpresionesG .Si
G=x(G ),hacemoslomismo,peroEVAL(G)nosregresaverdadsiemprequealgunaEVAL(
G)esverdadera.

EsfcilvericarquenomsdemcopiasdeEVALsonactivas
simultneamente.LosargumentosparalasllamadasactivasaEVAL
puedenserpuestasenunapila,ystapilautilizaespacioO(m52mr).
Destamanera,siFesunaexpresindelongitudn,podemosevaluar
aFenespacio2cnytiempo22

Unacotainferior

dn

ahora

paraalgunasconstantescyd.

semostrarquelateoraderealesconadicinrequiere

esencialmentetiempoexponencialnodeterminista.Senecesitanuna
seriedelemasparamostrarquelamultiplicacinyexponenciacin
pornmerosenterosacotadospuedenserexpresadosporformulas cortas.

Lema(13.10)Existec>0talqueparacadanhayunaformulaMn (x,y,z)quees
verdaderasiysolosixesunenterononegativoestrictamentemenor
n
que22 ,yxy=z.Adems

|Mn (x,y,z)|<c(n+1)yMn (x,y,z)

puedeserconstruidodenentiempopolinomialenn.

90

Demostracin:

Mk+1(x,y,z)=u1u5 x1x4
[Mk(x1,x2 ,u1)
x=u1+x3+x4
Mk(x2,y,u2)Mk(x1 ,u2,u3)
Mk(x3,y,u4)Mk(x4,y,u5)
z=u3+u4+u5]

(13.7)

Estoes
u1=x1x2

x=x1x2+x3+x4 ,

u2=x2y,u3=x1x2 y,u4=x3 y,u5=x4yyz=x1x2 y+x3 y+x4 y


La

condicindequecadaxi

k esunenteromenorque22

eselprimerargumentodealgunaMk.

porquecadaxi
La

formula(13.7)tienecincocopiasdeMk,asparecequeMk+1
debeserporlomenoscincovecestangrandecomoMkestohara
deMnseaexponencialennynolinealcomo

quelalongitud

habamosdicho.Noobstante,podemos

usarel"truco"

delTeorema

91

13.10parareemplazarvariascopiasdeunpredicadoporunasimple
copia.Estoes,podemosescribir
Mk+1(x,y,z)=1u5x1x4
[x=u1+x3+x4z=u3+u4+u5
rst[(r=x1s=x2t=u1)
(r=x2s=yt=u2)
(r=x1s=u2t=u3)
(r=x3s=yt=u4)
(r=x4s=yt=u5)
Mk(r,s,t)]].
Lo cual tiene un nmero constante de smbolos ms de los que Mk tiene.
Unpuntodemenorimportanciaesque

siintroducimoslosnuevos

nombresdevariablesparacadaMk,debemosintroducir
eventualmenteunfactorlogndentrodelalongituddeMn,pues
comolosnombresdevariablesdebenestarcodicadasenunalfabeto

jo

enellenguajedeformulasverdaderas.Noobstante,lasreglasde
alcanceparacuanticarformulasnospermitereutilizarvariables
sujetasalarestriccinquelasdocenuevasvariablesintroducidasen
notienenconictosconlasvariablesindependientesx,y,
stamaneraMnrequieresolo15diferentesvariablesylalongitudde
sucdigoesproporcionalalnmerodesmbolos.

ObservequeMn(x,0,0)establecequexesunenteromenorque22.
n
Destamanerapodemoshacerarmacionesacercadeenteros
pequeosenlateoradelosrealesconadicinusandoformulasmuy cortas.

Lema(13.11)

92

Mk
yz.De

Existeunaconstantec>0talqueparacadanhayunaformula
Pn(x,y,z)queesverdaderasiysolosixyzsonenterosenelrango

0x,z<22

yyx

=z.Adems|Pn|c(n+1)yPn puedeser construidaapartirdenentiempopolinomialenn.

DEMOSTRACIN
ConstruimosporinduccinunasucesindefrmulasEk(x,y,z,u,v,w)talqueEk
tieneunaconstruccinexponencialy

multiplicativadentro.Laraznparahacer

esto

esquedeseamos expresarEk entrminosdemuchascopiasdeEk1 yentoncesusarel


cuanticadoruniversalparaexpresarEk
Ek1.Nopodramoshacer

esto

entrminosdeunacopiade

conPk,puesunafrmulaparaPk

involucraaPk1

yaMk1.

UsandovariascopiasdeEk,podemosdecirqueexistenenteros
x1,x2,x3,x4enelrangode0xi22 talesque:x=x1x2+x3+x4

yk=(yx1)x2yx3yx4

Finalmente,usamosel"truco"

delTeorema13.10paraexpresar

entrminosdeunacopiadeEk y unnmeroconstantedesmbolos adicionales.

93

Ek+1

Porltimo,podemosescribir:Pn (x,y,z)=En(x,y,z,0,0,0).
Loanteriornosdicequez=yk,yxyysonenterosenelrango 0x,z<22n

Paramejorarlalegibilidaddeloquesigue,usaremoslassiguientes
abreviaciones,2paraabreviar1+1,2xparax+x,xypara
x<y x=yyxy<zpara(x=y x<y) y<z.Expandir
unaformulaabreviada,resultaenalomasmultiplicarlalongitudpor
unfactorconstante.Ademsparalasabreviacionesdearriba,
debemosusarconstantescomo2nymultiplicacionescomoabenlas
formulas.Tcnicamenteestasdebenser

reemplazadas,introduciendo

unavariableexistencialmentecuanticada,digamosx,yarmemos
quex=2nox=abporPn(n,2,x)oMn(a,b,x).Estotambin
incrementalalongituddelasformulasporunfactorconstante.

Nos

propondremoscodicarclculosdelamquinadeTuringcomo

nmerosenteros.SeaMunaMTNacotadaentiempo2n.Siel
nmerototaldesmbolosdelacinta,smboloscompuestosyel
marcador#esb,entoncesunclculodeMesunenteroxenel
rangode0x<b(2+1)+1.Laarmacin,queunenteroesuncalculo,esfacilitadoporunpre
dicadoqueinterrogaali-esimodigito enlarepresentacinb-ariadex.
Lema(13.12)

94

Paracadanybexisteunaconstantec,quedependesolodeb,tal
sonenteros,0x<b(2

quehayunaformulaDn,b(x,i,j)queesverdaderasiysolosixei
+1)+1,0i<2n,yxi,el(i+1)esimodgitodexcontandodesdeelextremodeordeninferiordela

representacinb-

ariadex,esj.Msan|Dn,b|c(n+1),yDn,b
puedeserconstruidodenybentiempopolinomialennyb.
Demostracin:
Para cada b existe una constante s tal que b(2n+1) 2+1 2 2sn
todan.Destamanerasixesunenteroenelrangocorrecto,puede
serexpresadacomom[Psn((2n+1)2.b.m) 0x<m].(Recuerde
nuestroscomentariospreviosconcernientesaconstantescomo2ny susexpansiones.)
Siiesunenteroenelrango0i<2npuedeser
expresadoporMn(i,0,0) (0x<2n).Ahoraxenbasebtiene
cerosenlasposiciones1,2,...,i+1siysolosiesdivisibleporbi+1.
Destamaneraxi=jsiysolosiexistenenterosqyrtalesque
x=qbi+1+ryjbr<(j+1)bi.Estehechoesfcilmente expresadousandoPsnyMsn.

Teorema(13.16)
Cualquieralgoritmonodeterministaparadecidirsiunaformulaenla
teoradeprimerordendelosrealesconadicinesnecesariamente
verdadera,paraalgunaconstantec>0,toma2cnpasosparaun nmeroinfinitodens.

Demostracin:
La

pruebaesmuysimilarenesenciaalapruebadelTeorema13.1.

SeaMunaMTNarbitrariaacotadaentiempo2n.Aqu,lasDIsen
unclculodeMconsistendemasbien2nsmbolosquep(n)comoen
elTeorema13.1.Seabelnmerototaldesmbolosdelacinta,
smboloscompuestosy#s.EntoncesunclculodeMsobresu
entradadelongitudnconsistede[(2n+1)2+1]
Podemosconsiderarestosclculoscomounenteroi
95

dgitosbinarios.
enelrangode

0i<22

paraalgunaconstantes.Porconveniencia,tomamoslos

dgitosdeordeninferiordei,

paraestarenelnalizquierdodel clculo.
SeaxunaentradadelongitudndeM.ConstryaseunaformulaFx,
queesverdaderasiysolosiMaceptaax.Fx

esdelaforma i(...),

endondelaformulasinlosparntesisarmaquei

esunclculo

aceptadodex.EstaformulaesanlogaaladadenelTeorema13.1.
Losprimerosn+1smbolosdelcalculoson#[q0,a1,m]a2an,asumiendoquex=a1a2
an,q0

eselestadoinicialymescualquier

eleccindelprimermovimiento.Paradecirquelosprimerosn+1
movimientosdelclculosoncorrectos,decimosqueexistenuyj
talesque,elvalordeurepresentaa#[q0,a1,m]a2an
paraalgunamei=bn+1j+uparaalgnenteroj.
espacioentiempoquees

DebemosescribirstaformulaenO(n)
polinomialenn.Porinduccinsobrek=2,3,...,n+1podemos
escribirunaformulaCk(v)convariableindependientev,lacual
armaqueelvalordeveselvalornumricodelosprimerosk

smbolosdelclculo.Paralabase,k=2,simplementeescribimosla
formulaC2(v)=(v=p1v=p2v=pn).

Endondelaspjssonlosenterosrepresentadospor#[q0,a1,m]para
elconjuntonitodevaloresdem.Porlainduccin,Ck(v)= (Ck1(w) v=bw+ak1),endo
ndelasakssontomadasdevaloresnumricosdelsmbolode
cintaak1.ParaevitarusarnvariablesparaexpresarCn+1,lascuales
haransulongitudO(nlogn),alternamosentredosvariables,por
ejemplovyw,comoconstruimosC2,C3 ,...,Cn+1.

La

frmuladeseadaarmaqueCn+1(u)ei=bn+1j+uparaun

enteroj.LaltimaarmacinessimilaralaquehicimosenelLema13.12,ylatcnicanoser
repetidaaqu.

96

ParaexpresarquelaDIinicialfuecorrectaenelTeorema13.1
,
requiriarmarqueaproximadamentep(n)celdascontenanel
smboloblanco.Estofuedotadoporelsmbololgico dep(n)
objetos.Ahora,debemosarmarque2nceldascontienenelsmbolo
blancoydestamaneranopodemosusarelsmbololgicode2n
formulas;staseraunaformulamuylarga.Encambio

sise

usanlos

cuanticadores jysearmaquetambinjnoesunenteroenel
rangon+2<j2n+1oqueelj-esimosmboloesunblanco,el
cualsedenotapor0.Destamaneraescribimosj[Msn(j,0,0)(n+2j2n+1)Dnb(i,j,
0)]
LasformulasquefuerzanaquelaltimaDIcontengaunestadonal
yfuerzanaquecadaDIsesigadelapreviaDIporquedelaeleccin
delmovimientoincrustadoenlaDIpreviasontrasladadosdemanera
similardelastcnicasdelTeorema13.1.Teniendo
tenemosunaformulaEx,cuyalongitudes

esto

hecho,

proporcionalan,quees

verdaderasiysolosiMaceptaax.

SupongaqueMaceptaunlenguajeL

entiempo2nelcualnoes

aceptadoporcualquierMTN2n/2espacio-acotada.(Laexistenciade
tallenguajesesiguedelajerarquaNTIMEdeCook[1973a],lacual nohemosprobado.)

PodemosreconoceraL

comosigue.Dadaxdelongitudn,produce

queesverdaderasiysolosixestenL.Ahora

laformulaEx
siT(n)

esentiemponodeterminista,essuciente

aceptarelconjuntode

formulasverdaderasenlateoradeprimerordendelosrealescon

adicin,podemos

determinarsixestenLentiempop(n)+T(cn).
Entoncesp(n)+T(cn)>2n/2paraunnmeroinnitodens,delocontrario,porelLema12.3
reconoceramosaLentiempoalomas2n/2,paratodan.SesiguequeT(n)2dnparaalguna
d>0.
97

Corolario
La

teoradelosrealesconadicinesdifcilentiempoexponencial

conrespectoalasreduccionesentiempopolinomial.

Demostracin:
La

pruebaesunageneralizacin

fcildelaprecedentereduccinde

unaMTentiempo2nnodeterminista.

3.10 LA CLASE DE PROBLEMAS NP

INTRODUCCIN
La complejidad computacional estudia el coste de la resolucin de un problema.
El esfuerzo necesario para resolver un problema de forma eficiente puede
variarenormemente.
Como unidad de medida del tiempo de ejecucin se suele utilizar la Operacin
Bsica, para que el rendimiento del algoritmo sea independiente de la potencia
delordenador, la calidad del compilador, la habilidad del programador, etc.

Los recursos comnmente estudiados encomplejidad computacional son:


El tiempo: mediante una aproximacin al nmero de pasos de ejecucin que un
algoritmoemplea para resolver un problema.
El espacio: mediante una aproximacin a la cantidad de memoria utilizada para
resolver elproblema.

Clases de Complejidad

98

La mayor parte de los problemas en teora de la complejidad tienen que ver con
losproblemas de decisin, que corresponden a poder dar una respuesta positiva o
negativa a un problema dado.

Los problemas se clasifican en conjuntos o clases de complejidad (L, NL, P, PCompleto, NP, NP-Completo, NP Duro...)
Nosotros nos vamos a centrar en las clases P y NP y fundamentalmente en esta
ltima.
3.10.1 PROBLEMAS P Y NP

LA CLASE P contiene aquellos problemas de decisin que pueden ser resueltos


en tiempo polinmico por una MT determinista, esto es, aquellas en las que para
cada par estado y smbolo exista a lo sumo una posibilidad de ejecucin. Los
problemas de complejidad polinmica son tratables, es decir, en la prctica se
pueden resolver en un tiempo razonable.

LA CLASE NP contiene los problemas de decisin que son resueltos por una MT
no determinista en tiempo polinmico y de ah su nombre: Non-Deterministic
Polynomial-time.
Naturalmente, cualquier problema en Ptambin se encuentra en NP:
Si una mquina de Turing determinista resuelve elproblema, una no
determinista tambin y en igual tiempo(MTD es un caso particular de MTND).
Pero qu relacin existe entre la clase P y la clase NP?
Saber si P=NP o PNP es el ms importante problema abierto en computacin
terica. Demostrar que las clases son distintas es uno de los problemas premiados
con 1 milln $.
Aunque el enigma est lejos de resolverse, parece que las clases son distintas.
As que de momento:

99

Como ejemplos de problemas NP tenemos:

El problema del TSP visto en prcticas.


Bin Packing, que consiste en dada una secuencia de nmeros, empaquetarlos en
el mnimo nmero de latas posible, teniendo en cuenta que cada lata tiene
capacidad M y la suma de los nmeros introducidos en la lata nopuede exceder el
valor M.
Los problemas de satisfactibilidad (SAT) de los que hablaremos a continuacin.

Problema de satisfactibilidad(SAT)

El problema de satisfactibilidad (SAT) es un problema de lgica matemtica y la


teora de la computacin.
La satisfactibilidad proposicional es el problema de decidir si existe una asignacin
de 0s y 1s a los tomos de una frmula proposicional que la hacen verdadera.
Se puede asumir que las instancias SAT estn expresadas en FNC sin prdida de
generalidad.

Ejemplo: La asignacin de valores de verdadque satisfacen la frmula


( P Q) ( Q R) ( R P) es P = Q = 1 y R = 0, por lo que la frmula es
satisfactible.
Ejemplo: ( P Q) ( Q P) (P Q) (P Q)Es satisfactible?
100

La manera obvia para resolver un problema deeste tipo con n variables es


generarsistemticamente todas las combinacionesposibles (2^n) y parar al
encontrar la solucin. Eso est bien para n pequeos....si no el tiempocrece
exponencialmente incluso para valores de nno muy grandes.

DAVIS-PUTNAM
A comienzos de los sesenta, M. Davis y H. Putnamdescubrieron un algoritmo
sencillo que mejoraligeramente la bsqueda exhaustiva (su coste no deja deser
exponencial).Se basa en aplicar una regla de resolucin que eliminalas variables
una por una y aade todos los resolventesal conjunto de clausulas.Se trata de un
algoritmo completo: Si existe solucin laencuentra.

Sea E la expresin en FNC para la que se busca la asignacin, elpseudocdigo


del algoritmo sera:Funcin partir (E)

1. Si E contiene la clusula vaca, el algoritmo termina y devuelve f.


2. Si E no contiene clausulas el algoritmo finaliza devolviendo laasignacin parcial
que tenamos en ese momento.
3. Seleccionar la siguiente variable Xi sin asignar de la expresin E
4. partir (E(Xi=0))
5. partir (E(Xi=1))

101

SAT NP
Porque es un problema de decisin
Porque podemos construir una mquina de Turing No Determinista que resuelva el
problema en tiempo polinmico.
Una MTND para SAT se construir de la siguiente forma:
1. Emplear la parte no determinista para adivinar yescribir cada una de las
posibilidades (2^n siendo n elnmero de variables).
2. Para cada una de las 2^n posibilidades(asignaciones) se comprueba de manera
deterministasi hace satisfactible la frmula.
Sea E la expresin en FNC con N variables. En nuestro caso 5 por simplificar a las
que llamamos X1,X2...X5. Nuestra MTND tendr 2^N cintas, cada una con una de
las posibles asignaciones a las variables al principio y la expresin a continuacin:

102

La mquina constar de dos partes:


La primera, no determinista para copiar a la izquierda de la cinta cada
combinacin posible (una vez identificado el nmero de variables). La segunda,
determinista para asignar cada combinacin a las variables y finalmente dar el
veredicto. Si al menos una asignacin hace satisfactible la expresin entonces la
frmula es satisfactible.

Turing en su tesis doctoral introdujo un nuevo concepto: Lasmquinas


conorculos. Son mquinas estndar que incluyeninstrucciones extra para
preguntar al orculo e incorporar lasrespuestas a la cinta. Son equivalentes a una
MTNDCon este concepto, la demostracin anterior se reducira a la
ltimaparte de lo anterior con un orculo capaz de proporcionarnos entrelas
2 ^N combinaciones para N variables una combinacin que satisfaga la
frmula (si existe).
Ahora nuestra mquina se rige por la contestacin del orculo (tercer carcter)

103

Al hablar de satisfactibilidad a muchos se les habr venido a lacabeza el famoso


juego del Sudoku.

Este juego sepuede expresar como un problema


SAT con 729 variablesproposicionales y una
frmula en FNC de 8829 clusulas.

TEOREMA DE COOK
Un problema de decisin es NP-completo si todo problema en NP puede
reducirse a l en tiempo polinomial. Si tienes un problema NP tienes una MT-ND
que lo resuelve en tiempo polinomial p(n), siendo n el tamao del problema. El
teorema de COOK establece que el problema de satisfactibilidad (SAT) es NPCompleto.

Si tenemos un problema NP, entonces existe (y conocemos) una MTND que lo


resuelve en tiempo polinomial conocido p(n). Vamos a transformar esa mquina
MT-ND particular en un problema de satisfacibilidad (empleando en ello un tiempo
polinomial en n). Si se soluciona este problema de satisfacibilidad, se obtiene
tambin la solucin del problema NP original. Habremos demostrado as que todo
problema NP se puede transformar al problema de satisfacibilidad y por tanto el
problema de satisfacibilidad es NP-Completo.

104

Paso de la mquina de Turing a problema de satisfacibilidad


Para pasar a un problema de satisfacibilidad la MT-ND que resuelve el problema
NP dado, lo que vamos a hacer es describir la MT-ND en forma de clusulas de
lgica proposicional.

Definicin de los estados


La MT en el momento t debe estar en un nico estado. Para describir esto
definimos un conjunto de variables S(t,q). S(t,q) es verdadera si en el momento t la
MT esta en el estado q, y falsa en caso contrario. Para conseguir que en cada
momento el estado sea uno slo, empezamos a definir la frmula con las
siguientes clusulas:
[S(t,q) ~ S(t,q)] con q, q estados de la MT tales que qq y
t = 0,1...p(n), tiempo de ejecucin de la MT.

Definicin de la cinta
Definimos una serie de variables T(t,c,s), que representarn la cinta. T(t,c,s) es
cierto si la cinta de la MT tiene el smbolo s en la celda c en el momento t, y falso
en caso contrario. Para asegurar que dichas variables se comportan como una
cinta, aadimos a la frmula las clusulas:
[T(t,c,s) ~ T(t,c,s)] con t = 0,1,...,p(n), c = [-p(n),p(n)] ys, ssmbolos del
alfabeto de la MT tales que s s.

Definicin de cabezal
Definimos las variables H(t,c) para representar el cabezal de laMT. H(t,c) es
verdadero si el cabezal de la MT est en la celda c en el momento t, y falso en

105

caso contrario. Aadimos las clusulas [H(t,c) ~ H(t,c)] con t = 0,1,...,p(n); c,c
= [-p(n),p(n)] y c c.

Adems, para asegurar que en la cinta lo nico que se modifica es loque est
debajo del cabezal, aadimos las clusulas:
[T(t,c,s) ^ ~ H(t,c) T(t+1,c,s)]con t = 0,1,...,p(n) y c = [-p(n),p(n)]

Finalmente, cada transicin de la MT se transforma en un conjunto de clusulas,


como sigue:
[T(t,c,s) ^ S(t,q) ^ H(t,c) S(t+1,q)]
[T(t,c,s) ^ S(t,q) ^ H(t,c) H(t+1,c)]
[T(t,c,s) ^ S(t,q) ^ H(t,c) T(t+1,c,s)]
con t = 0,1,...,p(n), c = [-p(n),p(n)], s y s smbolos del alfabeto y q y q estados. c
es (c+1) o (c-1), segn indique la transicin.

Condiciones inciales
H(0,0), en el instante t = 0 el cabezal esta en c = 0;
S(0,0), en el instante t = 0 el estado es q = 0;
La descripcin del problema est en las celdas de la 1 a la n:
T(0,i,s(i)) con i = 1,2,...,n.

El problema de satisfacibilidad que hemos construido (en tiempo polinomial en n)


es tal que slo tiene una solucin. Dicha solucin incluye necesariamente como
T(0,*,*) el estado de la cinta inicial (con el problema NP dado), como T(1,*,*) el
estado de la cinta tras un paso de la MT, en T(2,*,*) el estado de la cinta tras dos
pasos de la MT, ..., y en T(p(n),*,*) el estado final de la cinta, es decir, la solucin
del problema NP dado.

106

Por tanto hemos demostrado cmo convertir (en tiempo polinomial) cualquier
problema NP a un problema SAT tal que, si se resuelve dicho problema SAT, se
obtiene la solucin del problema NP. Luego SAT es NP-Completo.

Dnde qued el no-determinismo?. Una MT-ND puede ser vista como una MT
que disponga de elemento adivinatorio que llamaremos orculo. El orculo forma
parte de la cinta de entrada de la MT y se sita a la izquierda de la posicin inicial
delectura.(dibujo de la cinta de entrada de la MT).

As dispondremos de una MT-D (mquina de Turing determinista) en cuya cinta de


entrada tenemos un orculo y la descripcin del problema, en nuestro caso un
problema NP genrico. El orculo siempre da el camino correcto a seguir.

11.- Cualquier lenguaje finito puede expresarse como la unin finita de los
lenguajes que constituyen cada una de sus cadenas. Es decir, si L = { i}i=1n, y
Li ={ i},entonces L = { U Li}i=1n. El diagrama seria:

107

12.-

Muestre que si un autmata finito determinista es capaz de aceptar un

nmero de cadenas infinito, entonces debe aceptar una cadena que consista en la
concatenacin de tres segmentos tales que cualquier repeticin del segmento
central (que es no vaco) d como resultado otra cadena aceptable. Esto se
conoce como lema de bombeo (pumping lemma), pues indica que pueden
generarse otras cadenas aceptables bombeando o ampliando una cadena
aceptable.

Solucin:
El autmata es finito -> El nmero n de estados es finito
El nmero de cadenas es infinito ->Para cualquier c1 de longitud l1, existe una
cadena c2 de longitud l2>l1.

Estos dos hechos implican el que existan cadenas de longitud l>n. Es decir,
existen cadenas en las que algn estado es recorrido ms de una vez. Estas
cadenas pueden ser de esta forma:

Nota: Observemos que al llegar al extremo final del segmento central, nada
impide que ocurra la entrada que provoca la vuelta al extremo inicial de dicho
segmento.
108

Por tanto, es posible que se repita cualquier nmero de veces; y posteriormente


recorrer desde Sj hasta Sn, con lo que son admisibles cadenas con un nmero
cualquiera de repeticiones del segmento central.

13.- Dada la cadena. Describa el significado.


a). (z U y)* x

Cualquier combinacin de z e y seguida de x, o bien una nica x


b). ((xx*)yy*))

Cadenas que empiezan por una sucesin de xs (con al menos una x) y termina
con una sucesin de ys (con al menos una y).

c). ((xx*)U(yy*))
Cadenas de xs con al menos una x y cadenas de ys con al menos una y.

d). ((x*y*)z))
Cadenas formadas por cero o ms xs seguidas de cero o ms ys seguidas de
cero o ms zs.

14.-Genere todas las cadenas que consisten en un nmero impar de x.

x (x x) *
15.- Genere todas las cadenas que consisten en un nmero impar de xs y un
nmero par de ys.

109

Veremos primero cul es el autmata finito que reconoce este lenguaje y de ah


derivaremos la expresin regular que lo describe. El lenguaje puede verse como la
interseccin de dos lenguajes ms sencillos: el conjunto de cadenas con un
nmero impar de xs y el conjunto de cadenas con un nmero par de ys.

El autmata que reconoce el lenguaje puede construirse a partir de los


correspondientes autmatas.

Nota: El autmata anterior puede describirse mediante un diagrama de tan slo


dos estados.

110

16.- Dado el alfabeto {x, z}, queremos construir un autmata finito M tal que L(M)
sea el lenguaje formado por las cadenas que contienen al menos una z, y cada z
est inmediatamente precedida y seguida por una x. Es correcta la siguiente
solucin?

x
x

x
A. S

B)

No

Solucin: B.
El autmata no acepta la cadena xzxzx.

17.- Muestre que puede utilizarse un autmata finito determinista para reconocer
una cadena de parntesis anidados y equilibrados si se asegura que la
profundidad de anidamiento no exceder de un nivel preestablecido.
Este autmata lee cadenas de parntesis anidados hasta un nivel n, y los acepta
slo cuando estn todos equilibrados.
Solucin:
Este autmata permite cadenas del tipo ( ( ) ( ) ). Se vuelven a abrir parntesis
despus de aparecer el primero que cierra.

111

18.- Es posible que una gramtica en forma normal de Chomsky genere un


lenguaje regular?

A. S, es posible

b)

No, es imposible

Solucin: A.
Ejemplo:
G = {Sx}, G = {SMN, MMM, NNN, Mx, Ny}.

19.- Dado el alfabeto {x, y}, queremos construir un autmata de pilaM tal que L(M)
sea el lenguaje en cuyas cadenas hay tres xs por cada dos ys. Es correcta la
siguiente solucin? (Se entiende que cada transicin que inserta o lee varios
smbolos en la pila representa en realidad varias transiciones consecutivas.)

x,;aa

,;#

x,bb;

y,aaa;
y,;bbb
A) S

B)

No

Solucin: B.
El autmata no acepta la cadena xyyxx.

112

,#;

20.- Queremos construir un autmata de pila determinista que acepte el lenguaje


xn+2yn. Es correcta la siguiente solucin?

y,z;

x,;z
,;#
a) S

b)

,#;

x,z;

No.

Solucin: B.
No es determinista. Se comprueba fcilmente al analizar la cadena xx.

21.- Queremos construir un autmata de pila determinista M tal que L(M) =


{xmynzt | m, n y t enteros no negativos, m = n+t}. Es correcta la siguiente
solucin?

x,;x

,;#

a) S

b)

y,x;

y,x;

z,x;

No

Solucin: B.
113

z,x;

,#;

El autmata no acepta la cadena xz.

22.- EJEMPLO DE AUTOMATAS DE PILA.-

3.11 MTODOS POR DESPLAZAMIENTO Y REDUCCIN.


E

E+E

E*E

(E)

id

ANLISIS POR DERIVACIONES ARBITRARIAS.

id + id * id

id + (id*(id + id))

E + id * id

E + (id*(id + id))

E + E * id

E + (E * (id + id))

* id

E + (E * (E + id))

*E

E + (E * (E + E))

E + (E * (E))

E + (E * E)
E + (E)
E+E
E

114

Utilizando un analizador por desplazamiento o reduccin


PILA

ENTRADA

ACCIN

id + id * id $

Desplazar

$ id

+ id * id $

Reducir E

$E

+ id * id $

Desplazar

id * id $

Desplazar

$E+
$ E + id
$E+E
$E

* id $
* id $

Reducir E

id

Reducir E

E+ E

* id $

Desplazar

id $

Desplazar

$E*

id

$ E * id

Reducir E

id

$E*E

Reducir E

E *E

$E

PILA

ENTRADA

ACCIN

id+(id*(id+id))$

Desplazar

$id

+(id*(id+id))$

Reducir E

$E

+(id*(id+id))$

Desplazar

$E+

(id*(id+id))$

Desplazar

$E+(

id*(id+id))$

Desplazar

$E+(id

*(id+id))$

Reducir E

$E+(E

*(id+id))$

Desplazar

$E+(E*

(id+id))$

Desplazar

$E+(E*(

id+id))$

Desplazar

$E+(E*(id

+id))$

Reducir E
115

id

id

id

$E+(E*(E

+id))$

Desplazar

$E+(E*(E+

id))$

Desplazar

$E+(E*(E+id ))$

Reducir E

id

$E+(E*(E+E

))$

Reducir E

E+E

$E+(E*(E

))$

Desplazar

$E+(E*(E)

)$

Reducir E

(E)

$E+(E*E

)$

Reducir E

E*E

$E+(E

)$

Desplazar

$E+(E)

Reducir E

$E+E

Reducir E

$E

(E)
E+E

23.- Cul es el analizador sintctico tipo LL ms sencillo para la siguiente


gramtica?

S
M

A) LL(1) B)

MN
xM
yN

LL(2)

Solucin: A.
El nico terminal que plantea ambigedad es M. Pero basta observar dos caracteres
para saber si hay que aplicar la segunda regla, o la tercera, o rechazar la cadena.

116

24.- ANALIZADOR SINTACTICO ll


GRAMTICAS LL (1), ELIMINACIN DE RECURSIVIDAD POR LA IZQUIERDA
Ejemplo.Modelo
A

Ejemplo

A I

Se sustituye por:
A

AI

E+TIT

T*FIF

id I (E)
Convirtiendo

TE

+ TEI

FT

Derivando para:

id * (id + id) F

idI (E)

*FTI

E E
T

T*F

FT

F*F

idT

id*F

id* F

id*(E) id* (E

)T

id* (E + T)

id* (T E

)T

id* (T + T)

id* (F TE )T

id* (F + T)

id* (id T E )T

id* (id + T)

id* (id E

id* (id + F)

id* (id + T E)T

id* (id + id)

id* (id + F TE)T

)T

id* (id + id TE)T


117

id* (id + id )
id* (id + id)

FORTALIZACIN POR LA IZQUIERDA

<Prop>:: =

If <expr> then <prop>


I if <expr> then<prop> else <prop>

GRAMATICAS AMBIGUAS

Modelo
1 I 2

<Prop> : : if <expr> then <prop><A>

Se sustituye por: <A>

: : = else <prop> I

A A

1 I 2 Convirtiendo:

el I Ia I los I las

el l lA

aA l os

ANALIZADOR SINTACTICO LR
EJEMPLO: Algoritmo para obtener la coleccin de conjuntos de tems.
Sea C la coleccin de conjuntos de tems y Sel smbolo de inicio.

Incluir en C la funcin closure de la clase de tems S-->. S indicada por C: ={


Closure ([S-->. S])}.

Repetir el paso 4 hasta que no existan ms conjuntos de items que puedan


aadirse a C.

118

Para cada clase de items I en C y cada smbolo gramatical X; tal que goto (I,X) no
sea vacio y que aun no se encuentre en C, aadir a C el conjunto creado a partir
de goto (I, X).

Funciones First y Follow


First (F) = First (T) = { id, (}
First (E) = First (E) = {id, (}
Follow (E) = {$}
Follow (E) = {+,). $}
Follow (T) = {*,+,),$}
Follow (F) = {*,+,),$}

Construccin de la Tabla Anlisis.


Si A

a esta en li y el autmata indica que li sobre a cambiar hacia Ij. Goto

(li, a) = Ij, entonces la tabla de anlisis indicar accin shift (cambio) desde el
estado i al estado j.
Accin [i, a]= j donde a = terminal.

Si S

.S est en li entonces accin [i, $]= aceptar

Si A

Est en li, entonces accin [i,a]= reduccin por la regla A

para

todo smbolo terminal en Follow (A).

Si goto (li, A)= Ij entonces la funcin Goto en la tabla de anlisis Goto [i, A]= j. li e
lj son conjuntos de items.
A = Smbolo no terminal.

Todas las entradas no definidas en 1 a 4 son error.


El estado inicial en el analizador es el construido a partir del conjunto que
contienen S-- > . S.
119

Construccin de la Tabla LR:


I0: I 1 E
I1E

.E

I6: Goto (l1, +)

.E+T

I9 E

I2E

.T

I9 T

.T + F

I2 T

.T*F

I3 T

.F

I3T

.F

I4 F

.(E)

I4F

.(E)

I5 F

.id

I5F

.id

I1: Goto (lo, E)

I6 E

I7: Goto (l2, *)


I 10 T

T*.F

E.

I4 F

.(E)

E.+T

I5 F

.id

a E

I2: Goto (lo, T)


rE

I7 T

T.*F

I8: Goto (l4, E)


I11 F

( E. )

I6

E. + T

I3: Goto (lo, F)


rT

F r

I4: Goto (lo.( )

I9: Goto (l6, T)


E
I7

I8 F

(.E)

I8 E

.E+T r

I2 E

.T

I2 T

.T*F r

I3 T

.F

I4 F

. (E)

I5 F

.id

E+T
T

T .* F
I10: Goto (l7, F)

T *F
I11: Goto (l8, ))

( E ).

I5: Goto (lo, id)


rF

E+.T

id
120

EJEMPLO FUNCIONES RECURSIVAS


Ejemplo:
E

TE

+TE

FT

*FT

id (E)

Se construye una autmata para darle seguimiento a las llamadas recursivas.


E:
T

0E

T
3

E:
E

T:
F

T:
10

*
11

1 F

13

2
F:
14

(
1

121

17

Nota: Los estados 2,6,9,13 y 17 son de aceptacin.

Entrada : id +id
id

14

17

10

13

id

14

17

10

13

Entrada (id + id)* id


(

14

15

Id

16

14

17

10

10

13

id

14

17

10

13

17

10

11

id

12

14

17

13

10

13

EJERCICIOS MAQUINA TURING.-

1.- Es regular el lenguaje aceptado por la siguiente mquina de Turing?


R

A). S B) No

Solucin: A.
122

Es el lenguaje formado por todas las cadenas que no empiezan por x.

2.- Dado el alfabeto {x, y, z}, queremos construir una mquina de Turing que
busque en su cinta la secuencia xy, la sustituya por zz y se detenga en cuanto
haya realizado esta operacin. Es correcta la siguiente solucin?

A). Correcta. B)

Incorrecta.

z
y

Rx R

zLz

x
Solucin: B.
Dada la configuracin inicial xzyxy, la mquina se detiene con la configuracin
xzzxy.
3.-El lenguaje aceptado por la siguiente mquina de Turing es el lenguaje
formado por todas las cadenas que cumplen estas dos condiciones: (a) la cadena
tiene un nmero par de equis; y (b) la cadena no tiene dos equis seguidas.

SL Rx SL L

y, z

A) Verdadero B) Falso
Solucin: B. El autmata acepta la cadena xyxxyx.

4.- Dado el alfabeto {x, y, z}, queremos construir una mquina de Turing que
busque en su cinta la secuencia xy, la sustituya por zz y se detenga en cuanto
haya realizado esta operacin. Es correcta la siguiente solucin?
A) Correcta. B)

Incorrecta.
123

z
y

Rx R

zLz

x
Solucin: B.
Dada la configuracin inicial xy ..., la mquina no se detiene nunca.

5.- Dado el alfabeto {x, y, z}, es independiente de contexto el lenguaje aceptado


por la siguiente mquina de Turing?

x,y,z

SL

R L

L
S

B) No

Solucin: A.
Es el lenguaje formado por los palndromos de {x, y, z}

6.- Queremos construir una mquina que venda tabaco haciendo un supuesto de
125 pesos el paquete. El comprador debe introducir monedas de 25 100 pesos.
y luego pulsar la tecla . Para controlar el proceso, se construye un autmata
que viene dado por la siguiente tabla. Es correcta esta solucin? (La mquina
debe dar una seal de error cuando la cantidad de dinero es incorrecta.
Las dems monedas son devueltas por la mquina, y por tanto no se consideran
en el autmata. Observe que la tecla equivale al fin de cadena.)

124

A). Correcta B).

Estado

25

100

Error

error

Error

error

Error

error

Error

error

Error

error

error

Aceptar

Incorrecta

Solucin: B.
NOTA: Si se introduce una moneda de 25 y luego una de 100, debera aceptarlo.

EJERCICIOS A RESOLVER.-

1.- Seale la expresin regular que representa el lenguaje que acepta el siguiente
autmata.
y
x

x
y

a. (xy*xyy*xyx)
b. (xy*xyy*xyy* xx*)
c. (xy*xyy*x)
d. Ninguna de las anteriores
Respuesta:_____

125

El nmero mnimo de estados de un autmata finito determinista es:


Uno.
Dos.
No hay nmero mnimo.
Depende del alfabeto sobre el que est definido.

Construir un autmata finito que reconozca los nmeros enteros distintos de 0 se


entiende que los nmeros que han de venir expresados en la forma habitual, sin
caracteres innecesarios; por ejemplo, cadenas como 007 deben conducir a
estados de no aceptacin.

Construir un autmata finito que reconozca expresiones aritmticas de suma,


resta, multiplicacin y divisin de dos nmeros enteros; por ejemplo, 1725=.

Indique cmo caracterizara las cadenas que genera la siguiente gramtica:

S
S1

S1
S1

S1 xy
S
S2

xS2

S2 xy
xy*(xy*)*
{xnym : m y n son enteros positivos tales que m = n o m = 2n}
x*(yy)* (xy)*
Ninguna de las caracterizaciones anteriores es vlida

126

S2
yy

Indicar si el autmata de la siguiente figura es determinista o no determinista.


a) Determinista.

b)

No determinista.

x;
x,; x

x, x;

y,; y

y, y;
y;

Es cierto que el siguiente diagrama representa un autmata determinista de


cuatro estados?
Verdadero. b) Falso

x
x

y
z

z
y
y

Indique cul de las siguientes afirmaciones es verdadera:

Un autmata finito determinista M reconoce un lenguaje L(M) si acepta todas las


cadenas de dicho lenguaje.

Un autmata finito determinista M reconoce un lenguaje L(M) si acepta


exclusivamente la coleccin de cadenas de dicho lenguaje.

Un autmata finito determinista M reconoce un lenguaje L(M) si la coleccin de


cadenas de dicho lenguaje es determinista.

127

Ninguna de las afirmaciones anteriores es cierta.


Construir un autmata de pila determinista que acepte el lenguaje xn+1yn.

Dado el alfabeto {x,y, z} y estas dos mquinas de Turing, sea L1 el lenguaje


aceptado por la primera y L2 el aceptado por la segunda. Cul de las siguientes
afirmaciones es verdadera? Realice la comprobacin.
L1 = L2
L1 L2
L2 L1
Ninguna de las anteriores

Rx R

zLz

x
x/R

x/R
x/R

y/z

/R

z/L

x/z

z/R

x/R

z/R

Para cul de las siguientes gramticas no existe una gramtica equivalente en


laforma normal de Chomsky?

xN

Sx

xNx y

128

xA

xAx

AB

xAy

Ay

yBz

MzN
xM

yN

Sea n un nmero natural tal que n2. El nmero total de mquinas de Turing con n
estados es:

Finito b)

infinito.

Que lenguaje acepta el siguiente autmata, Analcelo.

129

x,;
,#;

x
#
xx

x,;x

x
,#;

x,x;

Si iniciamos la mquina de Turing siguiente con la cadena yyxyxx,

La mquina acepta la cadena.


La mquina entra en un bucle y no termina nunca.
Hay una terminacin anormal.
x/R
/

x/R
y/L

x/R

y/R

/
y/x

Dado el alfabeto {x, y, z}, construir una mquina de Turing que busque en su cinta
la secuencia xy, la sustituya por zz y se detenga en cuanto haya realizado esta
operacin.

Dado el alfabeto {x, y}, construir una mquina de Turing que se detenga cuando y
slo cuando encuentra en la cinta la secuencia xxy.

130

Dado el alfabeto {x, y}, construir una mquina de Turing que se detenga cuando y
slo cuando encuentra en la cinta la secuencia xxy (como cadena o como parte
de una cadena).
Cules son las cadenas que acepta el siguiente autmata vaciando su pila?
x ;x

y, x;

Las cadenas con tantas xs como ys


Las cadenas con ms xs que ys
Ninguna de las respuestas anteriores.

Cuntas celdas tendr la tabla de anlisis sintctico de un analizador LL para la


siguiente gramtica?

S
S

A
B

B
C

xA
yCz
xyB
xzC
yC
z
xA

20 o menos
Ms de 20 y menos de 60
60 o ms

131

Indicar si la siguiente afirmacin es verdadera o falsa: Los analizadores


sintcticos que analizan las cadenas de izquierda a derecha se denominan LR.

Verdadera. b) Falsa.

132

BIBLIOGRAFA

J. Glenn Brookshear, Teora de la Computacin: Lenguajes formales,


autmatas y complejidad, Ed. Pearson, Addison Wesley.

Trillo Miguel Angel. Tesis de Licenciatura. Simulador de una Maquina de


Turing en LISP.
Joan Domingo Pea, Introduccin a

los autmatas programables, Ed.

UOC.

John M. Howie, , Automata and Languages, Clarendon Press, Oxford.

133

Gua de estudio de

Ingeniera en Sistemas
Computacionales

CUATRIMESTRE II
Vigencia Periodo Escolar Enero Abril 2014
Estas antologas fueron elaboradas con la supervisin y aprobacin de las academias

Queda rigurosamente prohibida, sin autorizacin escrita de los titulares del copyright,
bajo las sanciones establecidas en las leyes, la reproduccin total o parcial de esta
obra por cualquier medio o procedimiento, comprendidos la reprografa y el
tratamiento informtico, y la distribucin de ejemplares de la misma mediante alquiler
o prstamo pblicos.
Derechos Reservados SEUAT 2014
2 Norte Oriente No. 741, Col. Centro, Tuxtla Gutirrez; Chiapas.
Tel. 61 223 29 y 61 379 26
Sistema Educativo Universitario Azteca Tuxtla S. C.
134

Potrebbero piacerti anche