Escolar Documentos
Profissional Documentos
Cultura Documentos
141
Intratables Problemas para los que no se conoce ningn algoritmo de complejidad polinomial. A los problemas tratables se les conoce tambin como problemas P (de orden polinomial). Asimismo a los problemas no tratables se les llama tambin NP (de orden no determinstico polinomial). Entre estos ltimos podemos encontrar los siguientes ejemplos: Agente Viajero. Caminos Hamiltonianos. Encontrar un camino en un grafo que pasa una sola vez por cada nodo. O(n!). Caminos Eulerianos. Encontrar un camino en un grafo que pasa una sola vez por cada arco.
10.1.
Algoritmos No Deterministicos
Hasta el momento siempre hemos diseado algoritmos determinsticos. En un algoritmo determinstico, el resultado es nico en el sentido de que cada instruccin tiene un resultado conocido dependiente del contexto. Podemos denir otra categora, la de algoritmos no determinsticos donde algunas 143
144
instrucciones den resultados no determinados de antemano. Para ello aumentaremos nuestro conjunto de instrucciones con las siguientes tres:
Elige(S). Es una funcin que regresa uno de los elementos de S. Si S={ Mercurio, Venus, Tierra } y P=Elige(S) entonces P=Mercurio o P=Venus o P=Tierra. xito. Notica una ejecucin exitosa. Fracaso. Notica una ejecucin no exitosa.
Algoritmos no determinstico.
otro
is termina.
F racaso;
10.2. Interpretaciones
Podemos interpretar la instruccin Elige de las siguientes maneras: 1. Elige es mgica y siempre devuelve el valor que necesitamos. 2. Al llamar a elige, el programa se multiplica, despus del llamado hay tantas copias como valores pueden devolver el llamado. La ejecucin de la instruccin xito detiene todas las copias del programa. La ejecucin de la instruccin Fracaso detiene la copia del programa que la ejecuta.
10.2. INTERPRETACIONES
145
Cualquiera de las interpretaciones es equivalente. Pero no deben de utilizarse para el diseo de algoritmos.
Ejemplo 38 Ordenamiento de un arreglo A con n elementos. proc OrdenaND (A, n) comienza para i = 1 a n haz zah
Exito;
i 1;
otro
F racaso;
146
en donde la suma de los elementos sea M . El problema de decisin de los subconjuntos consiste en decidir si para un conjunto A dado existe un subconjunto tal que los elementos sumen M . El algoritmo 43 muestra la solucin para este problema.
Algoritmo 43: Decisin de subconjuntos Ejemplo 40 Problema de la mochila entero. Cuando se habl de los algorit-
mos vidos se vi el problema de la mochila donde era posible poner fracciones de los objetos en la mochila. Aqu eso no es posible y tenemos n objetos: con valor vi , 1 i n con peso pi , 1 i n La solucin esta dado por la tupla
10.2. INTERPRETACIONES
147
n
sujeta a
xi p i M
i=1
y maximizando
xi v i .
i=1
El problema de decisin de la mochila consiste en decidir si para un conjunto de objetos tenemos un subconjunto tal que la restriccin de pesos se cumpla y
n
xi vi = k.
i=1
Algoritmo 44: Problema de la mochila Ejemplo 41 Sean x1 , x2 , . . . , xn variables booleanas, una literal es una variable o su negacin. Una frmula del clculo Proposicional se forma con literales y operadores (conjuncin) y (disyuncin). Una frmula de clculo proposicional est en forma normal conjuntiva (CNF) si se expresa como
C1 C2 CR
148
donde Ci son frmulas que constan de literales y operadores. El Problema de Satisfacibilidad consiste en determinar si una expresin E(x1 , x2 , . . . , xn ) en forma CNF es verdadera para una asignacin de valores de verdad a sus variables. E(x1 ) para x1 x1 no es satisfacible.
Algoritmo 45: Satisfacibilidad Denicin 5 P es el conjunto de problemas para los cuales existe una solucin algortmica deterministica de complejidad polinomial. cin no determinstica de complejidad polinomial.
Denicin 6 NP es el conjunto de problemas para los que existe una soluTeorema 17 (Cook) Cualquier problema no determinsticamente polinomial se reduce en tiempo polinomial al problema de la satisfacibilidad (SAT). Es decir X N P X SAT .
10.2. INTERPRETACIONES
149
1. Existe una maquina de turing deterministica (DTM) que computa f. 2. Para toda x , x L1 si y solo si f (x) L2 . 1 Escribiremos L1 L2 para signicar que L1 se reduce a L2 .
Suponemos que existe Menor(i, j ), i j, 1 i, j n que devuelve el elemento menor del segmento del arreglo A[i . . . j].
Denicin 8 Un problema es NP duro si satisfacibilidad se reduce a l Denicin 9 Un problema es NP completo si es NP duro y est en NP
N P completo N P Duros? SI N P Duros N P completos? NO Por demostrar NP Duros N P Completos Usamos el problema del paro que consiste en decir si un programa se va detener o no para una entrada espacca. P.D. Halt N P D i.e S Halt Asumimos que existe AHalt P que resuelve el problema de paro. Necesitamos construir un algoritmo ASHalt P tal que genere un programa (y su entrada) que se detenga si la expresin es satisfacible y que no se detenga en el caso contrario. Obviamente As da V para expresiones satisfactibles y F para expresiones no satisfacibles. S Halt Halt NP Duros paro Halt N P NP Duros NP Completos
150
Escribe(B, Exp, n)
Dada una graca G =< V, A > un clique es una subgraca completa. El problema de decisin del clique consiste en decidir si una graca G tiene un clique de tamao K .
P.D. Clique es NPC i.e clique NP y S Clique 1)P.D. S Clique
0123 7654 G 7654 0123 A
3 3
0123 7654 E
0123 7654 C
151
10.4.
Un conjunto de vrtices es una cobertura de una grca G si todos los arcos de G inciden a un vrtice de la cobertura.
152
0123 7654 G
7653 012? A4 ??? ?? ?? 012 765? 4 3 7654 0123 0123 7654 C? F B ?? ?? ?? 8 9 =; ?>:< D
153
Cob y como S Cliqu S Cob Cob es NPD Para demostrar que un problema es NPDuro, tengo que demostrar que S L. Escoger un problema M NPDuros Asumir que existe un algoritmo AL que resuelve el problema L y que AL P . Mostrar que se puede encontrar una instancia de L a partir de una instancia de M en tiempo polimonial determinstico. Mostrar que a partir de la respuesta dada por AL a la instancia de L permite obtener (en tiempo polinomial determinstico) la respuesta a la instancis de M que se alimento a AM L . Dado que M NPDuros, sabemos que S M y como se demostr que M L. S L S NPDuros. Para demostrar que un problema L es NP Completo: Mostrar que L es NPDuros. Construir un algoritmo en NP que resuelva L. Problema de desicin del nmero cromtico, consiste en decidir si una grca G tiene una coloracin de tamao m. P.D Col es NPCompleto. i) Col es NPDuro i.eS Col Asumir que existe ACol P . Tratar de construir AS P Tenemos que dar ASCol P que transforma una instancia del problema de satisfacibilidad en una instancia del problema de decisin del nmero cromtico. Consideramos que E CN F3 (cada clusula tiene a lo ms 3 literales). Suponemos tambin que hay n variables y que n > 3. Dada una expresin E construimos la grca G de la siguiente manera.
154
V = x1 , x2 , . . . , xn .Un vrtice por variable booleana. x1 , x2 , . . . , xn .Un vrtice par variable booleana negada. y1 , y2 , . . . , yn .Un vrtice adecuado por variable booleana. c1 , c2 , . . . , cp .Un vrtice por clusula. A = (xi , xi )|1 i n (yi , xj )|i = j1 = i, j n (yi , xi )|i = j1 i, j n (yi , yj )|i = j1 i, j n (cj , xi )|xi no cj , 1 j k, i i n (cj , xi )|xi no cj , 1 j k, i i n
P.D. E es satisfacible si y solo si G tiene una coloracin de tamao n + 1. Hipotesis E es satisfacible G tiene una coloracin de tamao n + 1. Observe que los vrtices yi forman un Cliqu de tamao n necesitamos n colores para colorarlos. Supongamos que a cada yi se leasigna el color i. Dado que yi no es adyacente a xi , ni a xi , una de estas dos literales puede ser coloreads con el color i, la otra requiere un color adicinal. Llamaremos al color n + 1 el color falso y a los otros colores verdaderos. Ohserve que si una literal esta coloreda con el color falso, su negada esta coloreada con un color verdadero. La coloracin as efectuada equivale a una asignacin de valores de verdad a las variables de E . Cada clusula contiene a lo ms 3 literales y hay al menos n variables n > 3. Cada Ci es adyacente almenos un par xi , xj , entonces Ci es adyacente a una variable coloreada conel color falso, entonces Ci se puede colorear con un color verdadero. Si E es satisfacible G tiene una coloracin de tamao n + 1. * Puesto que, como E es satisfacible, todas las clusulas son satisfacibles para laguna asignacin de valores de verdad; si asignamos los colores de manera que l es coloreada con el color n + 1 si en la asignacin l es falso y el color verdadero si l es verdadero, hay al menos una literal verdadera por clusula coloreada con un color verdadero, ese mismo color es el que nos sirve para colorear Ci .
155
10.5.
Problema de la planeacin
n trabajos requeriendo un tiempo ti para ejecutarse. m procesadores. Una planeacin es una asignacin de los trabajos a los procesadores. Para cada trabajo wi , la planeacin espacca, los intervalos de tiempo y los procesadores en los cuales el trabajo va a ser procesado. Si fi es el tiempo de terminacin el trabajo wi , el tiempo promedio de terminacin es: tpt = 1 n
n
fi
i=1
1 tpt = n
fi C i
i=1
Sea Ti el tiempo en el que el procesador pi termina su trabajo. El tiempo de terminacin de la planeacin es:
tt = M ax(Ti ), 1 i n
Una planeacin es no apropiativa cuando un trabajo se ejecuta desde el principio hasta el n en el mismo procesador. Una planeacin es apropiativa cuando el trabajo no necesariamente se ejecuta completamente en el mismo procesador. P.D. El problema de decidir si un conjunto de trabajos tiene una planeacin no apropiativa para m procesadores con un tiempo de terminacin T es NPDuro (i.e S Plan) Utilizaremos el problema de la particin: Dado un conjunto de nmeros enteros y un nmero m decidir si es posible particionar el conjunto en m subconjuntos tal que la suma de los elementos de la particin sea igual. Si m = 2 A = {2, 7, 10, 25, 20} El problema de decisin de la particin es NP Completo. P.D Particin Plan. - Suponemos que existe AP lan P - Construir Aparticion P Proponemos al siguiente algoritmo:
156
CAPTULO 10. PROBLEMAS TRATABLES E INTRATABLES Dados A = {a1 , a2 , . . . , an } y k enteros positivos w = t1 , t2 , . . . , tn donde ti = ai . el nmero de procesadores, m = k y el tiempo de terminacin es:
ti =
1 m
ti
i=1
Figura 15: a + b + (a c)
Una hoja es un nodo con grado de salida cero. Un nodo es un nivel 1 si sus nodos hijos son ambas hojas. Un nodo compartido es un nodo con ms de un padre. Un gad hoja si todos sus nodos compartidos son nodos hoja. Un gad de nivel 1 es aquel en el cual todos sus nodos compartidos son de nivel 1. a) El problema de generar el cdigo objeto ptimo para gads de nivel 1 es NP Duros an cuando la mquina tenga un slo registro.
157
Figura 16: (a + b) (a + b + c)
b) Determinar el nmero r de registros necesariso para evaluar un gad de nivel 1 si almacenara en memorias es NP Duros. LOAD ADD STORE ADD STORE LOAD MULT LOAD ADD ADD MULT
10.7.
Suponer que tenemos tiempo y memoria innitos y vamos a considerar problemas con una cantidad nita de instancias. Un problema es no computable si no existe un algoritmo que sea capaz de dar una respuesta a cualquier instancia del problema. El problema del tapizado (a domini). Dado un conjunto de cartas , cada una innita, si es posible tapizar cualquier rea nita con ellas.
158
Las cartas deben ser coloreadas de manera que sus lados adyacentes tengan el mismo color.