Teor´ıa de la Complejidad Computacional Tema I: Introducci´ on
Mario de J. P´erez Jim´enez
Grupo de Investigaci´on en Computaci´on Natural Dpto. Ciencias de la Computaci´on e Inteligencia Artificial
Universidad de Sevilla
[email protected] http://www.cs.us.es/~marper/
M´aster Universitario en Matem´aticas Curso 2017-2018
´Indice del tema I
• Problemas abstractos versus problemas concretos.
• Tipos de problemas abstractos.
• Modelos de computaci´on.
• Recursos computacionales.
• Problemas tratables, intratables y presuntamente intratables.
Problemas, problemas, problemas ...
Una eterna aspiraci´on del hombre ...
? Mejorar la calidad de Vida.
Para ello, se necesita resolverproblemas.
• A ser posible usandoprocedimientos mec´anicos...
3 / 65
Problemas abstractos vs problemas concretos
(1) Determinar si el n´umero 4730099 es primo.
(2) Calcular el producto de dos n´umeros naturales.
(3) Hallar el m´aximo com´un divisor de 314 y 4524.
(4) Determinar si la suma de los ´angulos de un tri´angulo es 127o. (5) Para cada n´umero natural n hallar un n´umero primo y mayor que n.
(6) Hallar la suma de los n´umeros 1234567 y 9876543.
(7) Determinar si un n´umero natural n es primo.
(8) Hace un par de horas, una empresa de reparto ha recibido 75 paquetes de un conocido hipermercado para su entrega a unos clientes, esta misma tarde. Sabiendo que los paquetes tienen cabida en un cami´on, ¿qu´e ruta debe seleccionar el conductor para minimizar los costes?
Un problema concreto
• Dadas 42 ciudades, tiempos tij entre dos ciudades, hallar un circuito que recorra las 42 ciudades en el menor tiempo posible.
5 / 65
Otro problema concreto
• Dadas 3150 ciudades, tiempos tij0 entre dos ciudades, hallar un circuito que recorra las 3150 ciudades en el menor tiempo posible.
Un problema abstracto
Dadas n ciudades y unos valores tij que representan los tiempos para ir de la ciudad i a la ciudad j . Determinar un circuito que permita recorrer todas las ciudades en el menor tiempo posible.
Problema delviajante de comercio(TSP).
7 / 65
Problemas concretos vs Problemas abstractos
Problema abstracto: conjunto deproblemas concretos.
• Tama˜node un problema concreto.
C´omoresolverunproblema de la vida real.
? Se trata de un problema concreto.
? Semodelizao representa a trav´es de un problema abstracto.
? Se dise˜na unasoluci´on mec´anicadel problema abstracto.
? Seimplementadicha soluci´on mediante un programa.
? Seejecutael programa sobre una m´aquina electr´onica para los datos espec´ıficos del problema concreto.
Soluciones mec´ anicas de problemas abstractos
Algoritmo(Procedimiento mec´anico): m´etodo especial de resoluci´on de problemas.
? Primer algoritmo no trivial: m´aximo com´un divisor de dos n´umeros enteros (Euclides entre 400 y 300 a. C.).
Ab´u J´afar Mohammed ibn al–Khowarizmi: procedimientos mec´anicos para el Algebra (a˜´ no 825 d.C.).
Existencia de problemasresolubles mec´anicamente.
9 / 65
Problemas abstractos
I Problemas deb´usqueda.
? Dado un grafo no dirigido y un n´umero natural k, hallar un subgrafo completo de tama˜no k (si no existe, devolver NO).
? Dado un sistema lineal de p ecuaciones con n inc´ognitas, hallar una soluci´on del sistema (si no existe, devolver NO).
I Problemas deoptimizaci´on.
? Dado un grafo no dirigido, hallar un subgrafo completo que tenga tama˜no m´aximo.
? Dado un grafo no dirigido y dos nodos distinguidos, hallar un camino entre ambos nodos que tenga longitud m´ınima (si no existe ning´un camino, devolver NO).
I Problemas dedecisi´on.
? Dado un grafo no dirigido y un n´umero natural k, determinar si existe un subgrafo completo de tama˜no k.
? Dado un grafo no dirigido y dos nodos distinguidos, determinar si existe un camino entre ambos nodos.
Lenguajes formales
?Alfabeto: conjunto no vac´ıo (s´ımbolos).
? Cadenao palabra sobre un alfabeto Γ: sucesi´on finita de s´ımbolos de Γ.
?Longitud de una cadenau: n´umero de s´ımbolos que contiene (|u|).
? Concatenaci´onde cadenas sobre un alfabeto Γ: composici´on de cadenas.
?Lacadena vac´ıaconsta de 0 s´ımbolos y se suele notar por λ.
?Γ∗: conjunto de todas las cadenas sobre Γ.
?Γ+: Γ∗− {λ}.
?Γ(n)= conjunto de cadenas sobre Γ de longitud n.
?Lenguaje formalsobre un alfabeto Γ: un subconjunto de Γ∗.
11 / 65
Problemas de b´ usqueda
Unproblema de b´usqueda, X , es un par ordenado (IX, sX) donde:
I IX es un lenguaje sobre un alfabeto.
I sX es una funci´on cuyo domino es IX y para cada a ∈ IX, sX(a) es un conjunto cuyos elementos se denominansoluciones del problema.
Elementos de IX: instanciasdel problema.
I Usando codificaciones binarias, un problema de b´usqueda es un par (IX, sX) donde:
? IXes un lenguaje sobre el alfabeto binario {0, 1}.
? sXes una funci´on total de IXen P({0, 1}∗).
I Para cada instancia a ∈ IX de un problema de b´usqueda, pueden existir muchas soluciones, s´olo una o ninguna.
Problemas de optimizaci´ on
Unproblema de optimizaci´on, X , es una tupla (IX, sX, fX) donde:
I IX es un lenguaje sobre un alfabeto.
I sX es una funci´on cuyo domino es IX y para cada a ∈ IX, sX(a) es un conjunto (sus elementos: soluciones candidatas del problema).
I fX es una funci´on (objetivo) que asigna a cada a ∈ IX y cada ca∈ sX(a), un n´umero racional positivo fX(a, ca).
Elementos de IX: instanciasdel problema.
fX proporciona el criterio para determinar unamejorsoluci´on.
I Unasoluci´on ´optimapara a ∈ IX es un candidato c ∈ sX(a) tal que:
? O bien, ∀c0∈ sX(a) se tiene fX(a, c) ≤ fX(a, c0) (c es unasoluci´on minimalpara a).
? O bien ∀c0∈ sX(a) se tiene fX(a, c) ≥ fX(a, c0) (c es unasoluci´on maximalpara a).
13 / 65
Problemas de decisi´ on
Problemas que s´olo admiten como respuesta/salida S´ı o No.
I Unproblema de decisi´onX , es un par (IX, θX) tal que IX es un lenguaje sobre un alfabeto ΣX y θX es un predicado sobre IX.
Un problema de decisi´on X = (IX, θX) es un problema de optimizaci´on (IX, sX, fX) tal que ∀a ∈ IX: sX(a) = {θX(a)} y fX(a, θX(a)) = 1.
I Cada lenguaje, L, sobre un alfabeto Σ tiene asociado un problema de decisi´on, XL:
• IXL= Σ∗.
• θXL= {(x , 1) : x ∈ L} ∪ {(x , 0) : x /∈ L}.
I Cada problema de decisi´on X = (IX, θX) tiene asociado un lenguaje, LX, sobre ΣX:
• LX= {a ∈ IX: θX(a) = 1}.
Problemas dedecisi´onversus problemas de optimizaci´on
Todo problema de optimizaci´on se puede “transformar” en un problema de decisi´on “equivalente”.
¿Qu´epeaje se ha de pagarpara “transformar” un problema de optimizaci´on en un problema de decisi´on “equivalente”?
Ejemplo:
I El problema Minimum Vertex Cover.
? Versi´on de optimizaci´on: Dado un grafo no dirigido G , hallar el tama˜no m´ınimo de un r.v. de G .
? Versi´on de decisi´on: Dado un grafo no dirigido G y un n´umero natural k, determinar si G posee un r.v. de tama˜no menor o igual que k.
15 / 65
Gottfried Wilhelm Leibniz (1646-1716)
A finales del siglo XVII Leibniz formula la necesidad de:
• Disponer de un lenguaje universal (lingua characteristica)
• Mecanizar cualquier tipo de razonamiento (calculus ratiocinator).
Los lenguajes formales materializan la primera aspiraci´on de Leibniz.
David Hilbert (1862-1943)
D. Hilbert (Congreso Internacional de Matem´aticos, Par´ıs, 1900):
? Lista de 23 problemas.
? Problema d´ecimo: determinar si existe un procedimiento mec´anico tal que, dada una ecuaci´on diof´antica arbitraria con coeficientes enteros,decidasi existe alguna soluci´on entera.
D. Hilbert (Congreso Internacional de Matem´aticos, Bolonia, 1928) formula tres cuestiones acerca de las Matem´aticas:
? ¿Son completas?
? ¿Son consistentes?
? ¿Son decidibles? (Entscheidungsproblem).
Desde el punto de vista matem´atico, el primer tercio del siglo XX estuvo bastante condicionado por el problema d´ecimo y el Entscheidungsproblem.
17 / 65
Kurt G¨ odel (1906-1978)
Respuestasde K. G¨odel (1931) a las dos primeras cuestiones (usando sus teoremas de incompletitud):
• No es posible encontrar una axiomatizaci´on completa de las Matem´aticas.
• Dentro del marco de las Matem´aticas, no es posible demostrar la consistencia de las Matem´aticas.
K. G¨odel dej´o sin responder la tercera cuesti´on (parece que ni siquiera lleg´o a abordarla seriamente).
Paradigmas de computaci´ on
Hacia finales del siglo XIX:
∗ Se tiene una lista de problemas importantes de los que no se conocen soluciones mec´anicas.
Cuesti´on 1: Dado un problema, determinar si existe un procedimiento mec´anico que lo resuelve.
? Respuestas positivas versus respuestas negativas.
¿En qu´e consiste un modelo de computaci´on?
? Formalizar el concepto de procedimiento mec´anico.
19 / 65
Primeros modelos de computaci´ on
Formalizaci´on del concepto de procedimiento mec´anico.
• Funciones recursivas (K. G¨odel, 1931–1934).
• λ–c´alculo (A. Church y S. Kleene, 1931-1933).
• M´aquinas de Turing (A. Turing, 1936).
Modelo de computaci´on: sintaxis y sem´antica.
? Procedimiento mec´anico,funciones computables,m´aquinas.
Modelos de computaci´on:
• Orientados aprogramas(Modelo GOTO, modelo WHILE, etc.)
• Orientados afunciones(Funciones recursivas, λ-calculables, etc.)
• Orientados am´aquinas(M´aquinas de Turing, de Post, URM, etc.)
Limitaciones
Limitaciones de los modelos de computaci´on.
• Existencia de problemas no resolubles mec´anicamente (indecidibles).
? Indecidibilidad de la l´ogica de primer orden (Church, abril de 1936).
• Respuesta negativa al Entscheidungsproblem.
? Problema de la parada (Turing, mayo de 1936).
? Indecidibilidad de la l´ogica de primer orden (Turing, mayo de 1936).
? Equivalencia de los modelos de computaci´on (Turing, agosto de 1936).
Latesis de Church–Turing(Church, 1935 y Turing, 1936).
Modelos universales.
21 / 65
Teor´ıa de la Computabilidad
Objetivo: clasificar los problemas abstractos seg´un sean o no resolubles mec´anicamente (problemasdecidibleseindecidibles).
Protocolo de resoluci´on mec´anica de un problema abstracto:
• Dise˜no: descripci´on de un algoritmo para resolver el problema.
• Verificaci´on formal: el algoritmo resuelvecada instanciadel problema.
• An´alisis: c´alculo a priori de los recursos necesarios para obtener la soluci´on de una instancia concreta (enfunci´onde sutama˜no).
Necesidad de verificar programas
El apag´ on de New York (1965).
23 / 65
Necesidad de verificar programas
El programa AMADEUS para facturaci´ on en aeropuertos (2017).
Correcci´ on de los algoritmos
Sea A un algoritmo dise˜nado para resolver un problema determinado por una cierta funci´on f : D → R.
Para verificar formalmente dicho algoritmo distinguiremos dos casos:
? D es un conjuntofinito: basta comprobar si para cada x ∈ D el valor fA(x ) coincide con f (x ).
? D es un conjuntoinfinito: se realizan dos pasos.
- Correcci´on parcial: Si x ∈ D y el algoritmo Aparasobre x , entonces fA(x ) = f (x ).
- Parada: El programaparasobre todo dato de entrada x ∈ D.
25 / 65
La multiplicaci´ on de n´ umeros naturales
5 2
× 2 7
3 6 4
1 0 4
1 4 0 4
Multiplicaci´ on m´ agica
52 × 27
26 54
13 108
6 216
3 432
1 864
27 / 65
Multiplicaci´ on m´ agica
M´ etodo de la multiplicaci´ on rusa.
52 27
26 54
? 13 108 108 6 216
? 3 432 432
? 1 864 864 52 × 27 = 1404
Aqu´ı no hay magia ... ¡hay MATEM ´ ATICAS!.
Un esquema algor´ıtmico
Algoritmo A de la multiplicaci´on rusa
Funci´on multrusa(x , y ) Vector A, B
si x = 0 entonces devolver 0 si x = 1 entonces devolver y si x < y entonces
x ←− y ; y ←− x A[1] ←− x ; B[1] ←− y i ←− 1
mientras A[i ] > 1 hacer A[i + 1] ←− A[i ] div 2 B[i + 1] ←− B[i ] + B[i ] i ←− i + 1
prod ←− 0 i ←− i − 1 mientras i > 0 hacer
si A[i ] 6= A[i ] div 2 + A[i ] div 2 entonces prod ←− prod + B[i ] i ←− i − 1
devolver prod
29 / 65
Una traza del esquema algor´ıtmico de A
Una traza del algoritmo A para el dato de entrada x = 52 e y = 27.
La idea del algoritmo consiste en construir dos columnas (A y B) de la siguiente manera:
? En primer lugar se ponen x e y respectivamente, con x ≥ y ,
? Seguidamente se escriben la parte entera de la mitad del n´umero anterior en la primera columna y el doble del anterior en la segunda
? A continuaci´on, se marcan en la primera columna los n´umeros impares, y se suman los correspondientes de la segunda.
? Esa suma es el valor que devuelve el algoritmo
52 27
26 54
→ 13 108
6 216
→ 3 432
→ 1 864
52 · 27 = 108 + 432 + 864 = 1404
Verificaci´ on formal del algoritmo A
Teorema 1: (Correcci´on parcial). Si el algoritmo A para sobre (x , y ) ∈ IN × IN, entonces devuelve x · y . Demostracion: Si x = 0, entonces el resultado es trivial. Supongamos que x > 0. Expresemos el n´umero x en potencias de 2 (en base 2): existe ´unicos a0, a1, . . . , ak∈ {0, 1} tales que ak6= 0 y
x = ak2k+ ak−12k−1+ · · · + a222+ a12 + a0 ai∈ {1, 0} ak= 1
Obs´ervese que 2k≤ x < 2k+1. Por tanto k = blog2x c. Vamos a construir las columnas A y B.
A[1] = 2k+ ak−12k−1+ · · · + a222+ a12 + a0 B[1] = y A[2] = 2k−1+ ak−12k−2+ · · · + a22 + a1 B[2] = 2 · y A[3] = 2k−2+ ak−12k−3+ · · · + a2 B[3] = 2 · B[2] = 22· y
. . . . . .
A[k] = 2 + ak−1 B[k] = 2k−1y
A[k + 1] = 1 B[k + 1] = 2ky
Para cada j = 1, . . . , k + 1 se verifica: A[j ] es impar ⇐⇒ aj −16= 0 ⇐⇒ aj −1= 1. Por tanto,
fA(x , y ) = X A[j ] impar 1 ≤ j ≤ k + 1
B[j ] = X
aj −1= 1 1 ≤ j ≤ k + 1
2j −1· y =
= X
1 ≤ j ≤ k + 1
aj −1· 2j −1y = y · X 1 ≤ j ≤ k + 1
aj −1· 2j −1= y · x
Teorema 2: (Prueba de parada). El algoritmo A para sobre cualquier dato de entrada (x , y ) ∈ IN × IN.
Demostracion Basta tener presente que los bucles considerados constan, a lo sumo, de k + 1 = 1 + blog2x c pasos.
31 / 65
M´ aquinas de prop´ osito general
El sue˜no de lam´aquina anal´ıticade Charles Babbage (1847-1849),
Teor´ıa de la Complejidad Computacional
Aparici´on de los primeros ordenadores (m´aquinas de prop´osito general).
I Implementaci´on pr´actica de la arquitectura de J. von Neumann (Charles Babbage: m´aquina anal´ıtica, 1847-1849).
? M´aquinaconvencional: soporte electr´onico.
? M´aquinano convencional: otro soporte distinto.
¿Qu´e problemas resuelven las m´aquinas reales?
Resolubilidad mec´anicapr´acticade problemas.
I Cantidad derecursos computacionalesnecesarios (tiempo y espacio).
I An´alisis comparativo de distintas soluciones.
33 / 65
Complejidad Computacional
Cuesti´on 2: Dado un problema hallar el mejor algoritmo que lo resuelva.
B´usqueda dealgoritmos ´optimos.
• Hallar una cota inferior de los recursos necesarios para ejecutar cualquier algoritmo que resuelva el problema.
• Hallar un algoritmo que resuelva el problema y que use una cantidad de recursos del orden de la cota.
Complejidad computacional inherente a un problema.
• A veces, es imposible encontrar algoritmos ´optimos (teorema de aceleraci´on de Blum).
Clases de complejidad
Necesidad de analizar la complejidad de problemas de manera “global”:
• Clases de complejidad.
Ingredientesnecesarios para definir una clase de complejidad:
? Unmodelode computaci´on (con unmodode calcular).
? Unamedidade complejidad.
? Una funci´on total computable (cota superior derecursos).
35 / 65
La clase P
Resolubilidad mec´anica de problemas abstractos.
I Tratabilidad e intratabilidad.
Algoritmo eficiente: la cantidad de recursos necesarios para su ejecuci´on est´a acotada por un polinomio.
I ¿Por qu´e los polinomios para establecer la frontera?
? Es una clase de funciones estables por suma y producto.
? Tienen un crecimiento moderado.
La clase P de los problemas tratables.
Teor´ıa de la Complejidad Computacional: clasificar los problemas abstractos seg´un sean o no resolubles eficientemente (problemastratableseintratables).
Problemas abstractos ...
I Problema tratable:
? Existe UN programa que resuelve el problema y proporciona (en tiempo razonable) soluciones para entradas detama˜no grande.
I Problema intratable:
? NING ´UN programa que resuelve el problema proporciona (en tiempo razonable) soluciones para entradas detama˜no grande.
I Problema presuntamente intratable:
? NING ´UN programa CONOCIDO que resuelve el problema proporciona (en tiempo razonable) soluciones para entradas de tama˜no grande.
37 / 65
Problemas tratables
Son losm´as simples, desde el punto de vista de la complejidad computacional.
I Resolubilidad algor´ıtmica en t´erminos pr´acticos: tratabilidad.
Polinomial= Razonable Exponencial= No razonable
10 50 100 300 1000
5n 50 250 500 1.500 5.000
n2 100 2.500 10.000 90.000 106
n3 1.000 125.000 106 27 · 106 109
2n 1.024 16 d´ıgitos 31 d´ıgitos 91 d´ıgitos 302 d´ıgitos n! 7 d´ıgitos 65 d´ıgitos 161 d´ıgitos 623 d´ıgitos inimaginable nn 10 d´ıgitos 85 d´ıgitos 201 d´ıgitos 744 d´ıgitos inimaginable
Nota 1: El n´umero de microsegundos desde el BIG BANG tiene 24 d´ıgitos.
Nota 2: El n´umero de protones en el universo consta de 71 d´ıgitos.
Un problema tratable: el de la moneda falsa
Se tienen n monedas y se sabe que exactamente una de ellas tiene un peso distinto de las otras. Si se dispone de una balanza tradicional
¿cu´antas pesadas habr´ıa que realizar para detectar la moneda distinta?
I Bastar´ıa realizar, a lo sumo, 1 + log2(n) pesadas.
I ¿Se podr´ıa resolver el problema conmenos pesadas?
I Como log2(n) ≤ n, la soluci´on dada es de tipo polinomial.
? Probar que log2(n) ≤ n.
I El problema de la moneda falsa estratable.
39 / 65
Un problema intratable: las Torres de Hanoi
La leyenda ... (Edouard Lucas d’Amiens, 1883)
Unmovimiento: trasladar un disco de una varilla a otra.
Movimiento v´alido: un disco no puede situarse encima de otro de menor radio.
I Problemaconcreto: 64discos.
I Problemaabstracto: ndiscos.
El problema de las Torres de Hanoi: 2 discos
1 2
A B C
41 / 65
El problema de las Torres de Hanoi: 2 discos
1
A B C
2
El problema de las Torres de Hanoi: 2 discos
A B C
2 1
43 / 65
El problema de las Torres de Hanoi: 2 discos
A B C
1 2
El problema de las Torres de Hanoi: 3 discos
1 2
3
A B C
45 / 65
El problema de las Torres de Hanoi: 3 discos
1
A B C
2 3
El problema de las Torres de Hanoi: 3 discos
A B C
2 3
1
47 / 65
El problema de las Torres de Hanoi: 3 discos
A B C
1 2
3
El problema de las Torres de Hanoi: 4 discos
1 2
3 4
A B C
49 / 65
El problema de las Torres de Hanoi: 4 discos
1
A B C
2 4 3
El problema de las Torres de Hanoi: 4 discos
A B C
2 4 3
1
51 / 65
El problema de las Torres de Hanoi: 4 discos
A B C
1 2
3 4
El problema de las Torres de Hanoi: 5 discos
1 2
3 4
5
A B C
53 / 65
El problema de las Torres de Hanoi: 5 discos
1
A B C
2 4
5
3
El problema de las Torres de Hanoi: 5 discos
A B C
2 4
5
3
1
55 / 65
El problema de las Torres de Hanoi: 5 discos
A B C
1 2
3 4
5
El problema de las Torres de Hanoi
• Dise˜no(recursivo)
procedimiento Hanoi (n,1,3) , con n > 0 si n > 0 entonces
Hanoi (n-1, 1, 2) mover disco de 1 a 3 Hanoi (n-1, 2 , 3)
I Verificaci´on(inducci´on).
I An´alisis(inducci´on):
f (n) = n´umero de movimientos para resolver el problema de Hanoi correspondiente a n discos.
f (0) = 0
f (n + 1) = 2 · f (n) + 1 Se prueba que f (n) = 2n− 1.
57 / 65
El problema de las Torres de Hanoi
Para resolver el problema con n discos
I N´umero de movimientos a realizar : 2n− 1.
Supongamos que tenemos64 discos.
Supongamos que se tardaun segundoen mover un disco.
Supongamos que los monjes trabajan las 24 horas del d´ıa.
¿Cu´anto tiempo se necesitar´a para resolver el problema divino?
I Aproximadamente ...
¡500 millones de a˜ nos!
Un problema presuntamente intratable
59 / 65
El problema del campeonato de liga de f´ utbol
Tras la jornada 25 del campeonato de liga de f´utbol de primera divisi´on, un aficionado desea saber si su equipo tiene posibilidades matem´aticas de quedar campe´on de liga
I Sistema antiguo de puntuaci´on (2, 1, 0): tratable
I Sistema nuevo de puntuaci´on (3, 1, 0): presuntamente intratable
Computaci´ on no determinista
M´aquinas de Turing no deterministas:
• Una configuraci´on de la m´aquina puede tener varias configuraciones siguientes.
• Al ejecutar la m´aquina con un mismo dato de entrada, puede realizar computaciones distintas (proporcionar resultados distintos).
Se suele decir que las MTNDsNO son “fiables”.
Toda MTD se puede considerar como un caso particular de una MTND.
¿Qu´e significa resolver un problema de decisi´on por una MTND?
I Hay que definir c´omo la m´aquinaaceptauna instancia del problema.
I Hay que definir elcoste en tiempode dichas m´aquinas.
Teorema: Todo problema de decisi´on resoluble por una MTND es tambi´en resoluble por una MTD.
I ¿Qu´epeaje se ha de pagarpara “pasar” de una MTND que resuelve un problema X a otra MTD que tambi´en resuelve X ?
61 / 65
La clase NP
NP es la clase de todos los problemas de decisi´on que son resolubles por MTNDsque trabajan en tiempo polinomial.
La clase NP: tratabilidad en modo no determinista.
Puesto que toda MTD es una MTND:
I Se tiene que P ⊆ NP.
¿Es estricta la inclusi´on P⊆NP?
El problema P versus NP
El problema P versus NP: determinar si P y NP coinciden.
Informalmente:
I Encontrarsoluciones versuscomprobarsi una posible soluci´on es correcta.
Se cree que es m´as dif´ıcilresolverun problema quechequearla correcci´on de una presunta soluci´on.
Es decir, se cree que P 6= NP.
(Clay Mathematics Institute: The Millenium Prize Problems)
63 / 65
Problemas NP–completos
Son los problemas m´as dif´ıciles de la clase NP.
Problemas NP–completos: candidatos id´oneos para atacar la cuesti´on P=NP.?
Problemas resolubles por MT
EXP NP
P L
NP−completos
Necesidad de mejorarcuantitativamentela resoluci´on mec´anica de problemas presuntamente intratables.
El problema SAT (S.A. Cook, 1971).
¿C´omo enfrentarnos a un problema que presuntamente es computacionalmente dif´ıcil/duro?
I Preguntarnos en qu´e aspecto del problema radica la raz´on de la dificultad.
I Intentar buscar una soluci´on aproximada m´as simple.
I Tener presente que algunos problemas s´olo son dif´ıciles en el caso peor.
I Sabiendo las limitaciones de las m´aquinas electr´onicas,considerar otros modelos alternativos (no convencionales).
65 / 65