Sie sind auf Seite 1von 20

UNIVERSIDAD DE PANAM CENTRO REGIONAL UNIVERSITARIO DE VERAGUAS FACULTAD DE INFORMTICA, ELECTRNICA Y COMUNICACIN MONOGRAFA: NP-COMPLETITUD: ORIGEN, FORMALIZACIN, CONSECUENCIAS

Y ESTRATEGIAS DE SOLUCIN PRESENTA: RAL ENRIQUE DUTARI DUTARI 2006

ii

TABLA DE CONTENIDOS
1. 2. 3. 4. 4.1. 4.1.1. 4.1.1.1. 4.1.1.2. 4.1.1.3. 4.1.1.4. 4.1.1.5. 4.2. 4.2.1. 4.2.2. 4.2.3. Observaciones Preliminares. .......................................................... 4 Clasificacin De Los Problemas Segn Su Complejidad. ............... 4 Qu Es La NP-Completidud? ........................................................ 6 NP-Completitud: Puntos De Vista Informal Vs. Formal. .................. 6 Enfoque Informal De La NP-Completitud. ....................................... 7 Problemas NP-Completos Ms Conocidos. .................................... 8 El Problema CNF-Satisfabilidad. ..................................................... 8 El Problema De La Coloracin De Grafos. .................................... 10 El Problema Del Embalaje De Cajas............................................. 10 El Problema Del Circuito Hamiltoniano. ........................................ 11 El Problema Del Agente Viajero. ................................................... 12 Desarrollo Formal Del Concepto Np-Completitud. ........................ 12 Reducibilidad En Tiempo Polinmico. ........................................... 12 Las Clases P Y NP........................................................................ 13 Teorema De La Reducibilidad. ...................................................... 13

iii

4.2.4. 4.2.5. 4.2.6. 4.2.7. 4.2.7.1. 4.2.7.2. 5. 6.

La Clase C-Difcil. ......................................................................... 14 La Clase NP-Completa. ................................................................ 14 El Problema De La Igualdad Entre P Y NP. .................................. 14 Relacin Entre Problemas Y Lenguajes NP-Completos. .............. 15 Codificacin Del Problema CNF-Satisfabilidad. ............................ 15 Reduccin De Lenguajes. ............................................................. 16 Otros Problemas NP-Completos. .................................................. 16 Consecuencias De La Existencia De Los Problemas NPCompletos. .................................................................................... 17

7. 8. 9.

Estrategias Para Resolver Los Problemas NP-Completos. ........ 17 Conclusiones................................................................................. 18 Referencias Bibliogrficas. ............................................................ 19

1.

OBSERVACIONES PRELIMINARES.

Algoritmo es un conjunto finito de pasos que resuelve, sin ambigedades, un problema dado. La algoritmia es la ciencia que se encarga del diseo y el anlisis de algoritmos especficos (cada vez ms eficientes), que permiten resolver un problema preestablecido. Dentro de la algoritmia, se encuentra un tema especial: la complejidad computacional. Dentro de este tpico, se analizan, de manera general, todos los posibles algoritmos que son capaces de resolver un problema en particular, clasificndolos en funcin al tiempo de ejecucin que requieren para resolver una instancia de un problema en particular (eficiencia en cuanto al tiempo de ejecucin).

2.

CLASIFICACIN DE LOS PROBLEMAS SEGN SU COMPLEJIDAD.

Segn SNCHEZ, J. (99), Los problemas se pueden caracterizar, de acuerdo a su comportamiento para entradas de tamao grande, como: Problemas tratables: Se caracterizan porque se conocen algoritmos razonablemente estudiados, que los resuelven de manera precisa y en un tiempo razonable. Problemas tratables: Se caracterizan porque se conocen algoritmos razonablemente estudiados, que los resuelven de manera precisa y en un tiempo razonable, con base en la cantidad de datos de entrada.

Problemas intratables: Se conocen algoritmos que los pueden resolver de manera precisa; sin embargo, requieren una cantidad de tiempo de gigantescamente grande para resolver un problema, con datos de entrada relativamente pequeos.

Indecibibles o no computables: Este tipo de problema se caracteriza porque, a la fecha, no se conocen algoritmos que permitan resolverlos; ms an, se desconoce si se puede construir un algoritmo que permita resolver dicho problema, de manera precisa.

Con respecto a los problemas no computables, la ciencia se encuentra en un estado de incomprensin significativo, prcticamente no se puede saber nada acerca de su solucin. Uno de los problemas no computables ms conocidos es el Problema de la parada de Alan Turing; as como el problema del castor laborioso, segn KORFHAGE (66). En el otro extremo, los problemas tratables tienen un nivel de dificultad relativamente manejable, ya que el tiempo que necesita un computador para resolver un problema cualquiera de este tipo, crece dentro de lmites razonables, a medida que aumenta la cantidad de datos de entrada que debe procesar. Son los clsicos problemas de ordenacin por: insercin, burbuja, quicksort, por ejemplo. Los problemas intratables son el eje de la exposicin que se presenta a continuacin. Primeramente, se considerar un concepto crucial en la temtica: la NP-completitud.

3.

QU ES LA NP-COMPLETIDUD?

La NP-Completidud es una propiedad no deseable de los algoritmos que resuelven algunos problemas de optimizacin y de toma de decisiones: los llamados problemas intratables. Es un concepto utilizado en la Computacin Terica, en el Diseo y Anlisis de Algoritmos. Fue descubierto por Stephen Cook, en 1970, durante sus estudios doctorales y representa un importante hito dentro de dicha rama de la Informtica. La NP-Completitud es una aplicacin del Teorema de Cook, que ser mencionado oportunamente en esta monografa.

4.

NP-COMPLETITUD: PUNTOS DE VISTA INFORMAL VS. FORMAL.

Los estudios formales acerca del problema de la NP-Completitud, normalmente se basan en la teora de autmatas Mquinas de Turing, particularmente y requieren de una fuerte fundamentacin matemtica para comprenderlos a cabalidad. Se puede visualizar una primera aproximacin al concepto NP-Completidud, cuando DEWDNEY, A.K. (89) seala que: Si el algoritmo que se dispone para resolver un problema dado, requiere una cantidad extraordinariamente grande de tiempo, se considera como Problema NP-Completo. Para facilitar la comprensin del tema al lector, esta monografa, presentar inicialmente un enfoque informal del problema, para posteriormente, enfocarlo formalmente.

4.1.

ENFOQUE INFORMAL DE LA NP-COMPLETITUD.

Si consideramos que n N es el tamao de la entrada de un problema cualquiera. Los problemas que se resuelven en tiempo polinomial O n k , k R se denominan de clase P. En tanto, aquellos problemas que se resuelven en un tiempo no polinomial exponencial O k n , k R , se denominan de clase NP. Para obtener una idea ms clara del concepto, se presenta una tabla que contiene los tiempos de ejecucin para una aplicacin cualquiera. Cada columna representa los tiempos de ejecucin de un algoritmo particular que se puede usar para programar una aplicacin particular de orden correspondiente al sealado en el encabezado. En tanto que cada fila representa los tiempos de ejecucin de todos los algoritmos, para una cantidad de datos definida. Tiempo de ejecucin Vs Tamao de la entrada 1 10 100 1000

( )

( )

n2

n3

n!

nn

1 1 1 10 1x102 1x103 100 1x104 1x106 1000 1x106 1x109

2 1.02x103 1.26x1030 1.07x10301

1 3.63x106 9.33x10157 4.02x102567

1 1x1010 1x10200 1x103000

Para que el lector se pueda dar una perspectiva real de la magnitud de los valores que presenta la tabla anterior, SNCHEZ, J. (99) seala que el nmero de protones del universo es aproximadamente 1079 y el nmero de microsegundos desde el Big-Bang, es aproximadamente 1024, ambas cifras, se observa, son enormemente menores que los tiempos de ejecucin factoriales y exponenciales para entradas cercanas a 1000.

Sean segundos, o nano segundos los tiempos considerados, los algoritmos que presentan rdenes no polinomiales, se tornan inmanejables, a medida que crece el valor del n .

4.1.1.

PROBLEMAS NP-COMPLETOS MS CONOCIDOS.

Los problemas NP-Completos se presentan en diversas disciplinas (ms prcticas e importantes de lo que se deseara). Segn CORMEN, T. H., LEISERSON, C. E., RIVEST, R. L. (89), los problemas NP-Completos se presentan al estudiar: Lgica Booleana, Grafos, Diseo de redes, planificacin de horarios, optimizacin de programas, autmatas y lenguajes formales, entre otros dominios del conocimiento. BAASE, S. (88), presenta algunos de los problemas NP-Completos ms conocidos, que se enuncian a continuacin.

4.1.1.1.

EL PROBLEMA CNF-SATISFABILIDAD.

Histricamente fue el primer problema que se estudi (investigado por Cook en su Doctorado). Adicionalmente, desde el punto de vista terico, es el ms importante de todos los problemas NP-Completos, como ser analizado posteriormente. Este problema se describe con base a las definiciones que se enuncian a continuacin: Un literal se define como una variable lgica o su negacin.

Una clusula se define como una secuencia de literales separados por disyunciones (denotadas como + ).

Una expresin lgica se define que est en la forma normal conjuntiva (CNF) si es una secuencia de clusulas separados por conjunciones (denotadas por ).

Si se considera que a j , 0 j n; 0 i m es una variable lgica, normal o negada, y se utilizan los smbolos convencionales de la matemtica para representar las sumas y productos abreviados, entonces la expresin:

n a j i =0 j =0 i
m

Esta en forma normal conjuntiva. De all parte el planteamiento del problema CNF-satisfabilidad, como un problema de decisin: Problema de Decisin: Se presenta una tabla de verdad arbitraria, formada variables lgicas o sus negaciones, asociadas por disyunciones y conjunciones. Se pueden asignar valores arbitrarios a todas las variables lgicas involucradas en la tabla de verdad, de manera que siempre se reduzca a una tautologa (o que siempre se exprese como una contradiccin)? Este problema encuentra aplicacin en la prueba de teoremas computarizada, entre otros casos.

10

4.1.1.2.

EL PROBLEMA DE LA COLORACIN DE GRAFOS.

El problema de la coloracin de grafos, se puede plantear de dos formas: como un problema de decisin (similar al CNF-satisfabilidad), o como un problema de optimizacin. A continuacin, se presentan ambos planteamientos: Problema de decisin: Dado el grafo G y una cantidad k de colores: Se puede pintar G de modo no se presenten regiones adyacentes con el mismo color? Problema de optimizacin: Dado un grafo G = {a1 , a2 , ..., an , } determine la menor cantidad de colores k que se necesita para pintar a G ; de manera que: no se presenten dos regiones adyacentes ai , a j , con i j , tales que

C (ai ) C (a j ) es decir, que las regiones adyacentes se pinten utilizando el


mismo color . El problema de coloracin de grafos es una abstraccin de ciertos tipos de problemas de planificacin. Se presenta en la confeccin de horarios, entre otros casos (al evitar el choque de fechas o aulas, o al confeccionar horarios de clase, por ejemplo).

4.1.1.3.

EL PROBLEMA DEL EMBALAJE DE CAJAS.

Se suponen un nmero ilimitado de cajas con capacidad 1 , y n objetos de tamaos s1 , s2 , ..., sn , donde 0 < s j 1 . Problema de Optimizacin: Se debe determinar cual es la menor cantidad de cajas k que se requiere para empacar los n objetos.

11

Problema de Decisin: Dados n objetos de tamaos s1 , s2 , ..., sn , donde 0 < s j 1 y k cajas, se debe determinar si los n objetos se pueden empacar dentro de las k cajas. Las aplicaciones de este problema incluyen: Empaquetamiento de datos en memoria de computadoras. Despacho de rdenes de un producto (tal como tejido o madera), que se produce con una medida estndar.

4.1.1.4.

EL PROBLEMA DEL CIRCUITO HAMILTONIANO.

Un circuito hamiltoniano en un grafo o dgrafo; es un recorrido que pasa exactamente una vez por cada vrtice. Ejemplo: la figura que presentamos a continuacin muestra un circuito hamiltoniano.
2 1

Problema de Decisin: Dado un grafo o dgrafo cualquiera: Posee un circuito hamiltoniano.

12

4.1.1.5.

EL PROBLEMA DEL AGENTE VIAJERO.

Un problema relacionado al de los circuitos hamiltonianos, es el denominado Problema del Agente Viajero. Problema de Optimizacin: Dado un grafo G , con pesos enteros en sus lados, se debe encontrar un ciclo que incluya todos los nodos de G tal que la suma de todos los pesos del ciclo sea menor o igual que un k dado.

4.2.

DESARROLLO COMPLETITUD.

FORMAL

DEL

CONCEPTO

NP-

Para lograr la compresin cabal de la teora relacionada con la NP-completitud, se deben realizar algunas consideraciones tericas importantes. Este desarrollo terico est fundamentado en KELLEY, D. (95). Dado que esta es una teora bastante extensa y compleja, solamente se expondrn sus resultados ms relevantes sin las correspondientes

demostraciones. El lector interesado en sus detalles puede consultar las referencias bibliogrficas, en particular KELLEY, D. (95).

4.2.1.

REDUCIBILIDAD EN TIEMPO POLINMICO.

Definicin (1): f es una funcin de cadena computable en tiempo polinomico, si existe una mquina de Turing M con cota temporal polinmica, tal que, dada una cadena de entrada w , calcula u , siempre que f (w) = u .

13

Definicin (2): Un lenguaje L1 es reducible en tiempo polinmico a un lenguaje


L2 si hay una funcin de cadena computable en tiempo polinmico f , tal que

f (u ) L2 si y slo si u L1 .

4.2.2.

LAS CLASES P Y NP.

Definicin (3): La clase P se compone de todos los lenguajes que aceptan una mquina de Turing determinista que tiene una cota temporal polinmica. Definicin (4): La clase NP se compone de todos los lenguajes que aceptan una mquina de Turing determinista que tiene una cota temporal exponencial (o no determinista en tiempo polinomial).

4.2.3.

TEOREMA DE LA REDUCIBILIDAD.

Sea L1 un lenguaje Entonces:

reducible en tiempo polinmico a otro lenguaje L2 .

Si L2 P , entonces L1 P . Si L2 NP , entonces L1 NP .

Notacin: Si L1 es reducible en tiempo polinmico a L2 , se denotar como:


L1 < P L2 .

14

4.2.4.

LA CLASE C-DIFCIL.

Definicin (5): Para cualquier clase de lenguajes C , un lenguaje L se dir Cdifcil si para todo L C , L < P L . En particular, L es NP-difcil si para todo

lenguaje L NP, L < P L . Observacin: la definicin no establece donde est L ; puede o no estar en C .

4.2.5.

LA CLASE NP-COMPLETA.

Definicin (6): Si L es C-difcil y L C , entonces L es C-completo. Definicin (7): En particular, si L es NP-difcil y L NP , entonces L es NPcompleto.

4.2.6.

EL PROBLEMA DE LA IGUALDAD ENTRE P Y NP.

Teorema (2): Si L es un lenguaje NP-completo y L P , entonces P NP . Una de las ms importantes incgnitas dentro de esta teora, es lo referente al problema: P=NP?. Se sospecha que NP es un conjunto bastante ms grande que P; y adicionalmente, muchos expertos matemticos e informticos han intentado sin xito, la comprobacin de la inclusin NP P , por lo que el sentido comn sugiere que esta inclusin no se puede comprobar. Sin embargo, tampoco se ha podido refutar, de modo que es un problema abierto a la bsqueda de soluciones -segn BAASE, S.(88)-. En otro sentido, la pregunta: Qu lenguaje es NP-completo?, puede ser respondida satisfactoriamente, como ser expuesto a continuacin.

15

4.2.7.

RELACIN ENTRE PROBLEMAS Y LENGUAJES NPCOMPLETOS.

El problema CNF-satisfabilidad, puede ser codificado, de modo que genere el lenguaje NP deseado. En tal sentido, se debe recordar la expresin de dicho problema:

n a j i =0 j =0 i
m

4.2.7.1.

CODIFICACIN SATISFABILIDAD.

DEL

PROBLEMA

CNF-

a : se codifica como & i, j j: se codifican en binario como cadenas de 0s y 1s. El valor de la expresin tambin puede ser binario. El alfabeto ser entonces: = {, , +, ,&, 0, 1} El lenguaje as definido se denotar como:
Lsat = w * / w es un conjunto satisfactible de clusulas

Bajo la construccin anterior se puede probar que: Lsat NP y que:

16

Lsat es NP-completo. Este ltimo resultado es conocido como el Teorema de Cook.

4.2.7.2.

REDUCCIN DE LENGUAJES.

La reduccin de lenguajes proporciona la herramienta necesaria para demostrar que otros lenguajes son NP-completos. De all se desprende: Lema: Si L1 es NP-completo y L1 < p L2 , entonces L2 es NP-difcil. Corolario: Si L1 es NP-completo y L2 NP con L1 < p L2 , entonces L2 es NPcompleto.

5.

OTROS PROBLEMAS NP-COMPLETOS.

Va la reduccin de lenguajes, los estudiosos del tema de la NP-completitud han podido recopilar una lista de alrededor de 2000 problemas del tipo NP-Completo. Todos han sido reducidos al problema de CNF-Satisfabilidad. Entre ellos, los ms relevantes se presentan en el siguiente diagrama:

CNFSatisfabilidad Clique 3-satisfabilidad

Covertura de Vrtices Relleno del conjunto de vrtices Relleno del conjunto de bordes Circuito Hamiltoniano Directo Circuito Hamiltoniano indirecto

Coloracin

Conjunto Covertura

Covertura exacta

17

6.

CONSECUENCIAS DE LA EXISTENCIA DE LOS PROBLEMAS NP-COMPLETOS.

Segn LEVINE, G. (97): los problemas NP-Completos representan una barrera en la solucin ms general de ciertos tipos de problemas. An, si las computadoras del futuro fueran cientos de millones de veces ms rpidas que las que tenemos actualmente, no podran resolver estos problemas, empleando un tiempo razonablemente corto. En pocas palabras, representan en la actualidad, lo que los problemas clsicos representaron para los griegos 1, un lmite a el crecimiento de la ciencia.

7.

ESTRATEGIAS

PARA

RESOLVER

LOS

PROBLEMAS NP-COMPLETOS.
Segn BAASE, S. (88), existen cientos de problemas de aplicacin importantes que son NP-completos. Para entradas razonablemente grandes, las soluciones exactas son imposibles de obtener. Bastar con lograr resolver uno de los problemas en el caso general, para que a travs de las reducciones polinomiales se puedan resolver los restantes. Las soluciones aproximadas, generalmente, se enfocan en el desarrollo e investigacin de tpicos tales como:

Cuadratura del crculo, triseccin del ngulo, la duplicacin del cubo.

18

Algoritmos aproximados. Heursticas. Algoritmos probabilsticos. Programacin paralela.

Este es un campo de investigacin abierto en la actualidad.

8.

CONCLUSIONES.
La NP-Completitud es una propiedad no deseable que presentan los algoritmos que conocemos para resolver ciertos tipos de problemas.

La existencia de problemas con estas caractersticas es un hecho que se presenta intelectualmente amenazador.

Existen tpicos en esta temtica, donde la investigacin cientfica est en pleno desarrollo ( P = NP ).

La reducibilidad de lenguajes garantiza que la solucin completa de uno slo de los problemas NP-Completos, puede ser extrapolada

exitosamente para resolver los restantes problemas NP-Completos. El Teorema de Cook garantiza la existencia de, al menos, un lenguaje NP-Completo. Existen mtodos que permiten aproximar soluciones para ciertas instancias de algunos problemas NP-completos.

19

9.
1.

REFERENCIAS BIBLIOGRFICAS.
AHO, A. V.; HOPCROFT, J. E.; y ULLMAN, J. D. Estructuras de Datos y Algoritmos. Mxico. Addison-Wesley. 1988.

2.

BAASE, S. Computer Algorithms: Introduction to Desing and Analys. Second Edition. U.S.A. Addison-Wesley, 1988.

3.

BRASSARD, G. Y BRATLEY; P. Fundamentos de Algoritmia. Espaa, Prentice-Hall, 1997.

4.

CORMEN, T. H., LEISERSON, C. E., RIVEST, R. L. Introduction to algorithms. U.S.A. MIT Press. 1989.

5.

DEWDNEY, A.K. The Turing Omnibus: 61 excursions in Computer Science. U.S.A. Computer Sciencie Press, 1989.

6.

HOPCROFT, J. E.; MOTWANI, R. y ULLMAN, J. D. Introduccin a la Teora de Autmatas, Lenguajes y Computacin. Segunda Edicin. Espaa. Addison-Wesley. 2001.

7.

HORWITZ, E. & SAHNI, S. Fundamentals of computer algorithms. U.S.A. Computer Sciencie Press, 1978.

8.

KELLEY, D. Teora de Autmatas y Lenguajes Formales. Espaa. Prentice Hall, 1995.

9.

KORFHAGE, R.R. Lgica y Algoritmos con aplicaciones a las ciencias de la computacin e informacin. Mxico. Limusa-Wiley, 1966.

20

10.

LEVINE, G. Estructuras fundamentales de la computacin: Los principios. Mxico. McGraw-Hill, 1997.

11.

SNCHEZ, J. Curso de Anlisis de Algoritmos. Mxico. Instituto Tecnolgico y de Estudios Superiores de Monterrey, 1999.

Das könnte Ihnen auch gefallen