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

Post on 14-Jun-2020

3 views 0 download

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

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)