Post on 14-Jun-2020
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
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)
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
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
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
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.
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))
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))
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
Complejidad yoptimizacion
Carlos AndresDelgado S.
Problemascomputaciona-les ytratabilidad
Clasificacionproblemascomputaciona-les
ProblemasNPC
Problemasatisfactibilidad(SAT)
Clasificacion problemas
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.
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
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
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
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.
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.
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?
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)
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 :(!
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)
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.
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.
Complejidad yoptimizacion
Carlos AndresDelgado S.
Problemascomputaciona-les ytratabilidad
Clasificacionproblemascomputaciona-les
ProblemasNPC
Problemasatisfactibilidad(SAT)
¿P=NP?
El problema ¿P=NP?
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)
Complejidad yoptimizacion
Carlos AndresDelgado S.
Problemascomputaciona-les ytratabilidad
Clasificacionproblemascomputaciona-les
ProblemasNPC
Problemasatisfactibilidad(SAT)
Problemas NPC
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.
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
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.
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
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.
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.
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.
Complejidad yoptimizacion
Carlos AndresDelgado S.
Problemascomputaciona-les ytratabilidad
Clasificacionproblemascomputaciona-les
ProblemasNPC
Problemasatisfactibilidad(SAT)