Delgado S. Complejidad y optimizaci on · puede construir un algoritmo que lleve a una respuesta...

33
Complejidad y optimizaci´on Carlos Andr´ es Delgado S. Problemas computaciona- les y tratabilidad Clasificaci´on problemas computaciona- les Problemas NPC Problema satisfactibilidad (SAT) Complejidad y optimizaci´ on Problemas computacionales, intratabilidad y problemas NP completos Carlos Andr´ es Delgado S. Facultad de Ingenier´ ıa. Universidad del Valle Febrero 2017

Transcript of Delgado S. Complejidad y optimizaci on · puede construir un algoritmo que lleve a una respuesta...

Page 1: Delgado S. Complejidad y optimizaci on · puede construir un algoritmo que lleve a una respuesta correcta 2 En sentido m as formal, dado un problema P y una entrada s esta puede ser

Complejidad yoptimizacion

Carlos AndresDelgado S.

Problemascomputaciona-les ytratabilidad

Clasificacionproblemascomputaciona-les

ProblemasNPC

Problemasatisfactibilidad(SAT)

Complejidad y optimizacionProblemas computacionales, intratabilidad y problemas NP

completos

Carlos Andres Delgado S.

Facultad de Ingenierıa. Universidad del Valle

Febrero 2017

Page 2: Delgado S. Complejidad y optimizaci on · puede construir un algoritmo que lleve a una respuesta correcta 2 En sentido m as formal, dado un problema P y una entrada s esta puede ser

Complejidad yoptimizacion

Carlos AndresDelgado S.

Problemascomputaciona-les ytratabilidad

Clasificacionproblemascomputaciona-les

ProblemasNPC

Problemasatisfactibilidad(SAT)

Contenido

1 Problemas computacionales y tratabilidad

2 Clasificacion problemas computacionales

3 Problemas NPCProblema satisfactibilidad (SAT)

Page 3: Delgado S. Complejidad y optimizaci on · puede construir un algoritmo que lleve a una respuesta correcta 2 En sentido m as formal, dado un problema P y una entrada s esta puede ser

Complejidad yoptimizacion

Carlos AndresDelgado S.

Problemascomputaciona-les ytratabilidad

Clasificacionproblemascomputaciona-les

ProblemasNPC

Problemasatisfactibilidad(SAT)

Complejidad computacional

Introduccion

En ciencias de la computacion se utilizan algoritmos pararesolver problemas y siempre se busca que esta solucionsea la mas eficiente.

Una de las principales caracterısticas que describe unalgoritmo es su complejidad computacional que puede seren terminos de tiempo de ejecucion o espacio necesariopara hacerlo

Page 4: Delgado S. Complejidad y optimizaci on · puede construir un algoritmo que lleve a una respuesta correcta 2 En sentido m as formal, dado un problema P y una entrada s esta puede ser

Complejidad yoptimizacion

Carlos AndresDelgado S.

Problemascomputaciona-les ytratabilidad

Clasificacionproblemascomputaciona-les

ProblemasNPC

Problemasatisfactibilidad(SAT)

Complejidad computacional

Clases de complejidad

Existen varias clases de complejidad computacional

Temporal

Espacial

Page 5: Delgado S. Complejidad y optimizaci on · puede construir un algoritmo que lleve a una respuesta correcta 2 En sentido m as formal, dado un problema P y una entrada s esta puede ser

Complejidad yoptimizacion

Carlos AndresDelgado S.

Problemascomputaciona-les ytratabilidad

Clasificacionproblemascomputaciona-les

ProblemasNPC

Problemasatisfactibilidad(SAT)

Complejidad computacional

Complejidad temporal

Es el tiempo requerido por un algoritmo para solucionar unproblema.

Varios algoritmos pueden solucionar el mismo problema

Siempre buscamos la solucion con menor complejidadtemporal

Page 6: Delgado S. Complejidad y optimizaci on · puede construir un algoritmo que lleve a una respuesta correcta 2 En sentido m as formal, dado un problema P y una entrada s esta puede ser

Complejidad yoptimizacion

Carlos AndresDelgado S.

Problemascomputaciona-les ytratabilidad

Clasificacionproblemascomputaciona-les

ProblemasNPC

Problemasatisfactibilidad(SAT)

Complejidad computacional

Complejidad especial

Es el espacio requerido por las estructuras de datos de unalgoritmo para solucionar un problema.

Esta directamente relacionada con la complejidadtemporal, por ejemplo no es lo mismo recorrer un arreglounidimensional que uno bidimensional

Adquiere importancia la seleccion de las estructuras dedatos utilizadas en la implementacion, ejemplo: arreglos olistas enlazadas.

Page 7: Delgado S. Complejidad y optimizaci on · puede construir un algoritmo que lleve a una respuesta correcta 2 En sentido m as formal, dado un problema P y una entrada s esta puede ser

Complejidad yoptimizacion

Carlos AndresDelgado S.

Problemascomputaciona-les ytratabilidad

Clasificacionproblemascomputaciona-les

ProblemasNPC

Problemasatisfactibilidad(SAT)

Complejidad computacional

Notacion

De acuerdo a la complejidad de la solucion ante una entrada detamano n se utilizan las siguientes notaciones:

O(f (n))

Ω(f (n))

Θ(f (n))

Page 8: Delgado S. Complejidad y optimizaci on · puede construir un algoritmo que lleve a una respuesta correcta 2 En sentido m as formal, dado un problema P y una entrada s esta puede ser

Complejidad yoptimizacion

Carlos AndresDelgado S.

Problemascomputaciona-les ytratabilidad

Clasificacionproblemascomputaciona-les

ProblemasNPC

Problemasatisfactibilidad(SAT)

Complejidad computacional

Notacion

Recordemos ¿Que significa?

O(1)

O(n3)

O(2n)

Ω(1)

Ω(n2)

Θ(1)

Θ(nlog(n))

Page 9: Delgado S. Complejidad y optimizaci on · puede construir un algoritmo que lleve a una respuesta correcta 2 En sentido m as formal, dado un problema P y una entrada s esta puede ser

Complejidad yoptimizacion

Carlos AndresDelgado S.

Problemascomputaciona-les ytratabilidad

Clasificacionproblemascomputaciona-les

ProblemasNPC

Problemasatisfactibilidad(SAT)

Clasificacion problemas

General

En las ciencias de la computacion los problemas tienendiferentes niveles de dificultad

Algunos se pueden resolver y otros no, con la capacidadque contamos en la actualidad

Se clasifican los problemas con el objetivo de agruparlos deacuerdo a un problema conocido

Page 10: Delgado S. Complejidad y optimizaci on · puede construir un algoritmo que lleve a una respuesta correcta 2 En sentido m as formal, dado un problema P y una entrada s esta puede ser

Complejidad yoptimizacion

Carlos AndresDelgado S.

Problemascomputaciona-les ytratabilidad

Clasificacionproblemascomputaciona-les

ProblemasNPC

Problemasatisfactibilidad(SAT)

Clasificacion problemas

Page 11: Delgado S. Complejidad y optimizaci on · puede construir un algoritmo que lleve a una respuesta correcta 2 En sentido m as formal, dado un problema P y una entrada s esta puede ser

Complejidad yoptimizacion

Carlos AndresDelgado S.

Problemascomputaciona-les ytratabilidad

Clasificacionproblemascomputaciona-les

ProblemasNPC

Problemasatisfactibilidad(SAT)

Clasificacion problemas

De acuerdo al tipo

Se pueden clasificar en: Problemas de solucion y problemas dedecision

Problemas optimizacion

Estos consisten en encontrar la mejor solucion a un problema deacuerdo a un criterio, estos pueden ser de decision o solucion.

Page 12: Delgado S. Complejidad y optimizaci on · puede construir un algoritmo que lleve a una respuesta correcta 2 En sentido m as formal, dado un problema P y una entrada s esta puede ser

Complejidad yoptimizacion

Carlos AndresDelgado S.

Problemascomputaciona-les ytratabilidad

Clasificacionproblemascomputaciona-les

ProblemasNPC

Problemasatisfactibilidad(SAT)

Clasificacion problemas

Ejemplo problemas de solucion

1 Encontrar todos los caminos en un grafo desde un nodo Ahasta un nodo B

2 Hallar las combinaciones de elementos en un conjunto S ,cuya suma sea P

Page 13: Delgado S. Complejidad y optimizaci on · puede construir un algoritmo que lleve a una respuesta correcta 2 En sentido m as formal, dado un problema P y una entrada s esta puede ser

Complejidad yoptimizacion

Carlos AndresDelgado S.

Problemascomputaciona-les ytratabilidad

Clasificacionproblemascomputaciona-les

ProblemasNPC

Problemasatisfactibilidad(SAT)

Clasificacion problemas

Ejemplo problemas de decision

1 El camino mas corto entre A y B esta conformado por losnodos C ,D,E

2 Los elementos del subconjunto S1, S2, ..,SN del conjuntoS suman P

Respuesta: SI o NO

Page 14: Delgado S. Complejidad y optimizaci on · puede construir un algoritmo que lleve a una respuesta correcta 2 En sentido m as formal, dado un problema P y una entrada s esta puede ser

Complejidad yoptimizacion

Carlos AndresDelgado S.

Problemascomputaciona-les ytratabilidad

Clasificacionproblemascomputaciona-les

ProblemasNPC

Problemasatisfactibilidad(SAT)

Clasificacion problemas

Ejemplo problemas de optimizacion

1 Encontrar el camino mas corto en un grafo desde un nodoA hasta un nodo B

2 Hallar las combinacion con el menor numero de elementosen un conjunto S , cuya suma sea P

Page 15: Delgado S. Complejidad y optimizaci on · puede construir un algoritmo que lleve a una respuesta correcta 2 En sentido m as formal, dado un problema P y una entrada s esta puede ser

Complejidad yoptimizacion

Carlos AndresDelgado S.

Problemascomputaciona-les ytratabilidad

Clasificacionproblemascomputaciona-les

ProblemasNPC

Problemasatisfactibilidad(SAT)

Tratabilidad

Decibilidad

Los problemas puede ser decidibles o indecidibles.

Problemas decidibles

Pueden ser tratables o intratatables

Problemas indecidibles

Puede ser indecidibles o altamente indecidibles.

Page 16: Delgado S. Complejidad y optimizaci on · puede construir un algoritmo que lleve a una respuesta correcta 2 En sentido m as formal, dado un problema P y una entrada s esta puede ser

Complejidad yoptimizacion

Carlos AndresDelgado S.

Problemascomputaciona-les ytratabilidad

Clasificacionproblemascomputaciona-les

ProblemasNPC

Problemasatisfactibilidad(SAT)

Tratabilidad

Decibilidad

1 Los problemas decidibles son aquellos para los cuales sepuede construir un algoritmo que lleve a una respuestacorrecta

2 En sentido mas formal, dado un problema P y una entradas esta puede ser procesada por una maquina de Turing

3 Estos problemas estan clasificados en tratables eintratables.

Page 17: Delgado S. Complejidad y optimizaci on · puede construir un algoritmo que lleve a una respuesta correcta 2 En sentido m as formal, dado un problema P y una entrada s esta puede ser

Complejidad yoptimizacion

Carlos AndresDelgado S.

Problemascomputaciona-les ytratabilidad

Clasificacionproblemascomputaciona-les

ProblemasNPC

Problemasatisfactibilidad(SAT)

Tratabilidad

Decibilidad

Existen problemas indecidibles conocidos

Problema de la parada. Dado un algoritmo p y unaentrada s, determinar si p puede procesar s en un numerofinito de pasos

Problema de la matriz mortal. Determinar si existe unorden de multiplicaciones de matrices cuadradas de talforma se pueda obtener la matriz cero

Conjetura de Collatz (3n + 1) La sucesion dada por

f (n) =

(3n + 1 con n impar

n2 con n par

)¿Es finita para todo n?

Page 18: Delgado S. Complejidad y optimizaci on · puede construir un algoritmo que lleve a una respuesta correcta 2 En sentido m as formal, dado un problema P y una entrada s esta puede ser

Complejidad yoptimizacion

Carlos AndresDelgado S.

Problemascomputaciona-les ytratabilidad

Clasificacionproblemascomputaciona-les

ProblemasNPC

Problemasatisfactibilidad(SAT)

Tratabilidad

Trabilidad

1 Los problemas tratables se pueden solucionar conalgoritmos polinomicos O(nk)

2 Los problemas intratables se resuelven en tiempos nopolinomicos Ω(an)

Page 19: Delgado S. Complejidad y optimizaci on · puede construir un algoritmo que lleve a una respuesta correcta 2 En sentido m as formal, dado un problema P y una entrada s esta puede ser

Complejidad yoptimizacion

Carlos AndresDelgado S.

Problemascomputaciona-les ytratabilidad

Clasificacionproblemascomputaciona-les

ProblemasNPC

Problemasatisfactibilidad(SAT)

Clasificacion Maquinas de Turing

En las maquinas de Turing tenemos finitas e infinitas. Dentrode las finitas se tiene:

Determinista

Esta ejecuta una accion definida ante la lectura de un sımbolode entrada. Este es el modelo computacional actual

No determinista

Ejecuta la mejor accion posible ante la lectura de un sımbolode entrada. ¡Esto nos quitarıa el trabajo :(!

Page 20: Delgado S. Complejidad y optimizaci on · puede construir un algoritmo que lleve a una respuesta correcta 2 En sentido m as formal, dado un problema P y una entrada s esta puede ser

Complejidad yoptimizacion

Carlos AndresDelgado S.

Problemascomputaciona-les ytratabilidad

Clasificacionproblemascomputaciona-les

ProblemasNPC

Problemasatisfactibilidad(SAT)

Contenido

1 Problemas computacionales y tratabilidad

2 Clasificacion problemas computacionales

3 Problemas NPCProblema satisfactibilidad (SAT)

Page 21: Delgado S. Complejidad y optimizaci on · puede construir un algoritmo que lleve a una respuesta correcta 2 En sentido m as formal, dado un problema P y una entrada s esta puede ser

Complejidad yoptimizacion

Carlos AndresDelgado S.

Problemascomputaciona-les ytratabilidad

Clasificacionproblemascomputaciona-les

ProblemasNPC

Problemasatisfactibilidad(SAT)

Clasificacion P

Problema P

Es aquel problema de decision que se puede solucionar entiempo polinomial por una maquina determinista.

Page 22: Delgado S. Complejidad y optimizaci on · puede construir un algoritmo que lleve a una respuesta correcta 2 En sentido m as formal, dado un problema P y una entrada s esta puede ser

Complejidad yoptimizacion

Carlos AndresDelgado S.

Problemascomputaciona-les ytratabilidad

Clasificacionproblemascomputaciona-les

ProblemasNPC

Problemasatisfactibilidad(SAT)

Problema NP

Son aquellos que NO pueden ser solucionados en tiempopolinomial por una maquina determinista. Pero SI pueden sersolucionado en tiempo polinomial por una maquina nodeterminista.

Problema NPC

NP-Completo, son problemas que cumplen las siguientescaracterısticas:

No se ha demostrado que NO existe un algoritmo concomplejidad polinomial que los pueda resolver

No se ha encontrado una solucion polinomial para ellos.

Page 23: Delgado S. Complejidad y optimizaci on · puede construir un algoritmo que lleve a una respuesta correcta 2 En sentido m as formal, dado un problema P y una entrada s esta puede ser

Complejidad yoptimizacion

Carlos AndresDelgado S.

Problemascomputaciona-les ytratabilidad

Clasificacionproblemascomputaciona-les

ProblemasNPC

Problemasatisfactibilidad(SAT)

¿P=NP?

El problema ¿P=NP?

Page 24: Delgado S. Complejidad y optimizaci on · puede construir un algoritmo que lleve a una respuesta correcta 2 En sentido m as formal, dado un problema P y una entrada s esta puede ser

Complejidad yoptimizacion

Carlos AndresDelgado S.

Problemascomputaciona-les ytratabilidad

Clasificacionproblemascomputaciona-les

ProblemasNPC

Problemasatisfactibilidad(SAT)

Contenido

1 Problemas computacionales y tratabilidad

2 Clasificacion problemas computacionales

3 Problemas NPCProblema satisfactibilidad (SAT)

Page 25: Delgado S. Complejidad y optimizaci on · puede construir un algoritmo que lleve a una respuesta correcta 2 En sentido m as formal, dado un problema P y una entrada s esta puede ser

Complejidad yoptimizacion

Carlos AndresDelgado S.

Problemascomputaciona-les ytratabilidad

Clasificacionproblemascomputaciona-les

ProblemasNPC

Problemasatisfactibilidad(SAT)

Problemas NPC

Page 26: Delgado S. Complejidad y optimizaci on · puede construir un algoritmo que lleve a una respuesta correcta 2 En sentido m as formal, dado un problema P y una entrada s esta puede ser

Complejidad yoptimizacion

Carlos AndresDelgado S.

Problemascomputaciona-les ytratabilidad

Clasificacionproblemascomputaciona-les

ProblemasNPC

Problemasatisfactibilidad(SAT)

Reduccion

Definicion

Sean A y B dos problemas de decision pertenecientes a NP. Sepuede transformar una instancia A en una instancia B entiempo polinomial.

Requerimiento

Se debe cumplir:A ≤p B

Es decir A tiene una complejidad menor o igual a B.

Page 27: Delgado S. Complejidad y optimizaci on · puede construir un algoritmo que lleve a una respuesta correcta 2 En sentido m as formal, dado un problema P y una entrada s esta puede ser

Complejidad yoptimizacion

Carlos AndresDelgado S.

Problemascomputaciona-les ytratabilidad

Clasificacionproblemascomputaciona-les

ProblemasNPC

Problemasatisfactibilidad(SAT)

Reduccion

Definicion

Una reduccion es correcta si:

Instancias negativas de A resultan en instancias negativasde B

Instancias positivas de A resultan en instancias positivasde B

Page 28: Delgado S. Complejidad y optimizaci on · puede construir un algoritmo que lleve a una respuesta correcta 2 En sentido m as formal, dado un problema P y una entrada s esta puede ser

Complejidad yoptimizacion

Carlos AndresDelgado S.

Problemascomputaciona-les ytratabilidad

Clasificacionproblemascomputaciona-les

ProblemasNPC

Problemasatisfactibilidad(SAT)

SAT

Introduccion

Este es el primer problema NPC completo demostrado. Lademostracion fue realizada por Stephen Cook en 1971

Definicion

Cualquier problema NPC puede ser reducido desde SAT entiempo polinomial.

Page 29: Delgado S. Complejidad y optimizaci on · puede construir un algoritmo que lleve a una respuesta correcta 2 En sentido m as formal, dado un problema P y una entrada s esta puede ser

Complejidad yoptimizacion

Carlos AndresDelgado S.

Problemascomputaciona-les ytratabilidad

Clasificacionproblemascomputaciona-les

ProblemasNPC

Problemasatisfactibilidad(SAT)

SAT

Definicion formal

El problema consiste en un conjunto de variables booleanasx1, x2.x3, .., ..xn y un conjunto de clausulas s1, s2, s3, .., sn enforma normal conjuntiva, donde existen valores de las variablesen la cual la expresion es verdadera.

Example

(x1 ∨ x2) ∧ (x2 ∨ x3)(x1 ∨ x3 ∨ x4) ∧ (x2 ∨ x3)

(x1 ∨ x2 ∨ x3) ∧ x1

Page 30: Delgado S. Complejidad y optimizaci on · puede construir un algoritmo que lleve a una respuesta correcta 2 En sentido m as formal, dado un problema P y una entrada s esta puede ser

Complejidad yoptimizacion

Carlos AndresDelgado S.

Problemascomputaciona-les ytratabilidad

Clasificacionproblemascomputaciona-les

ProblemasNPC

Problemasatisfactibilidad(SAT)

¿SAT es NPC?

Enunciados demostracion

Se utiliza una maquina de Turing no determinista para elcomputo de este algoritmo.

Se codifica la entrada de la maquina de Turing de talforma esta resulta en una formula booleana en FNC.

Se la maquina de turing acepta la entrada, entonces laformula es satisfactible.

Page 31: Delgado S. Complejidad y optimizaci on · puede construir un algoritmo que lleve a una respuesta correcta 2 En sentido m as formal, dado un problema P y una entrada s esta puede ser

Complejidad yoptimizacion

Carlos AndresDelgado S.

Problemascomputaciona-les ytratabilidad

Clasificacionproblemascomputaciona-les

ProblemasNPC

Problemasatisfactibilidad(SAT)

¿SAT es NPC?

Explicacion de la demostracion

La maquina de Turing no determinista al poder procesar laformula booleana, dando los valores correctos a cada variablede cada clausula, conduce a un estado de aceptacion, deacuerdo a los valores asignados a cada variable.

Page 32: Delgado S. Complejidad y optimizaci on · puede construir un algoritmo que lleve a una respuesta correcta 2 En sentido m as formal, dado un problema P y una entrada s esta puede ser

Complejidad yoptimizacion

Carlos AndresDelgado S.

Problemascomputaciona-les ytratabilidad

Clasificacionproblemascomputaciona-les

ProblemasNPC

Problemasatisfactibilidad(SAT)

¿SAT es NPC?

Consecuencias

Si se llegara a demostrar que SAT puede ser resuelto entiempo polinomial entonces cualquier problema NPCpuede ser resuelto en tiempo polinomial.

Al reducir cualquier problema NP a SAT, se demuestraque es NPC.

Page 33: Delgado S. Complejidad y optimizaci on · puede construir un algoritmo que lleve a una respuesta correcta 2 En sentido m as formal, dado un problema P y una entrada s esta puede ser

Complejidad yoptimizacion

Carlos AndresDelgado S.

Problemascomputaciona-les ytratabilidad

Clasificacionproblemascomputaciona-les

ProblemasNPC

Problemasatisfactibilidad(SAT)