Presentaci - PowerPoint PPT Presentation

About This Presentation
Title:

Presentaci

Description:

... polin mico (es decir, el mejor algoritmo conocido es no ... Como el mejor algorimo es se puede seguir investigando. Introducci n a Teor a de NP-Completitud ... – PowerPoint PPT presentation

Number of Views:142
Avg rating:3.0/5.0
Slides: 31
Provided by: erida
Category:
Tags: el | mejor | menos | presentaci

less

Transcript and Presenter's Notes

Title: Presentaci


1
Diseño y análisis de algoritmos
Introducción a Teoría de NP-Completitud
2
Temario
  • Introducción a Teoría de NP-Completitud Ejemplo
    de clave simétrica
  • Introducción
  • Intratabilidad
  • Problemas
  • Las clases P y NP
  • Problema SAT
  • Reducibilidad polinómica
  • Problemas NP-Completos
  • Problemas NP-Duros
  • Algoritmos Aproximados

3
Introducción a Teoría de NP-Completitud
Introducción
  • Complejidad computacional
  • Considera globalmente todos los posibles
    algoritmos para resolver un problema dado
  • En esta teoría interesan los problemas que pueden
    ser resueltos por un algoritmo en tiempo
    polinónmico(tratable) y los problemas para los
    cuales no se conoce ningún algoritmo polinómico
    (es decir, el mejor algoritmo conocido es no
    polinómico y por lo tanto intratable)
  • La teoría de la NP-Completitud no proporciona un
    método para obtener algoritmos de tiempo
    polinómico. Tampoco dice que estos algoritmos no
    existan . Lo que muestra es que muchos de los
    problemas para los que no se conoce algoritmos
    polinómicos están relacionados (computacionalmente
    )
  • Además de los problemas P y NP existen dos clases
    de problemas
  • NP-completos
  • NP-duros

4
Introducción a Teoría de NP-Completitud
Introducción
  • Un problema NP-completo tiene la propiedad de que
    puede ser resuelto en un tiempo polinómico si y
    sólo si todos los problemas NP-completos puede
    ser resuelto en un tiempo polinómico.
  • Si un problema NP-duro puede ser resuelto en un
    tiempo polinómico, entonces todos los problemas
    NP-completos puede ser resuelto en un tiempo
    polinómico
  • Con el análisis de algoritmos se ha tratado de
    demostrar que un problema bajo estudio puede
    resolverse en un tiempo que está en
    , para alguna función
  • Por otro lado se busca una función lo
    más grande posible tal que se pueda demostrar que
    cualquier algoritmo que resuelva correctamente el
    problema (en todos sus casos) necesita de un
    tiempo , al menos
  • Cuando se habrá
    encontrado un algoritmo o más eficiente posible
    (salvo por las constantes mutiplicativas ocultas)
  • Ejemplo multiplicación de matrices , su cota
    inferior es
  • Se puede encontrar un algoritmo ?
  • Como el mejor algorimo es se puede
    seguir investigando

5
Introducción a Teoría de NP-Completitud
Intratabilidad
  • Def un algoritmo de tiempo polinómico , es aquél
    cuya complejidad en tiempo en el caso peor, está
    acotada por un polinomio (en relación al tamaño
    de la entrada)
  • Son polinómicos los de complejidad ,
    ,
  • No son polinómicos los de complejidad
  • Un problema es intratable si no se puede resolver
    en tiempo polinómico.(Es una propiedad del
    problema). Caso contrario, es tratable.
  • Dos categorías generales se pueden definir para
    los tipos intratables
  • Problemas que se han demostrado intratables
  • Problemas que no se han demostrado intratables,
    pero para los cuales no se ha encontrado un
    algoritmo polinómico.

6
Introducción a Teoría de NP-Completitud
Intratabilidad
  • Ejemplos de algoritmos polinómicos vistos
  • Ordenamiento (quickSort)
  • Búsqueda Binaria
  • Multiplicación de matrices estándar
  • Caminos más cortos en un grafo
  • Muchos de los ejemplos anteriores pueden tener
    algoritmos no polinómicos que los resuelven. Pero
    eso no quiere decir que los problemas no sean
    tratables.
  • Existen dos tipos, de problemas, para los cuales
    se ha demostrado su intratabilidad
  • Problemas que generan una cantidad no polinomial
    de salidas.
  • Ejemplo, determinar todos los circuitos
    Hamiltonianos (un circuito hamiltoniano es un
    camino de un grafo de n nodos, que visita una vez
    cada nodo y vuelve al nodo de partida.) pueden
    ser hasta (n-1)!
  • Porblemas para los que se les puede probar que no
    se pueden resolver en un tiempo polinomial

7
Introducción a Teoría de NP-Completitud
Intratabilidad
  • Porblemas para los que se les puede probar que no
    se pueden resolver en un tiempo polinomial. Por
    extraño que parezca , se han encontrado pocos
    problemas de este tipo
  • Problemas indecidibles no existe algoritmo que
    los resuelva. Problema de parada.
  • Problemas decidibles generalmente construídos
    artificialmente, con aplicaciones prácticas.
  • Existen problemas para los cuales no se ha
    encontrado un algoritmo polinomial, pero nadie ha
    demostrado que dicho algoritmo no sea posible
  • Problema de la mochila
  • Problema del vendedor viajero
  • Problema de la suma de subconjuntos
  • Problema de coloreado de grafos
  • Problema de los circuitos hamiltonianos
  • Existe una relación interesante entre muchos de
    estos tipos de problemas la estudia la teoría
    de la NP-completitud

8
Introducción a Teoría de NP-Completitud Problemas
  • Inicialmente nos restringiremos a problemas de
    decisión la salida de un problema de decisión
    es simplemente sí o no.
  • En el curso se mostraron muchos de los problemas
    anteriores como problemas de optimización. Cada
    problema de tiene un problema de decisión
    correspondiente.
  • Ejemplos
  • Problema del vendedor viajero dado un grafo
    dirigido con arcos valorados , el problema de
    optimización consiste en encontrar un circuito de
    costo mínimo, que empiece en un nodo , acabe en
    ese nodo y visite al resto de los nodos
    exáctamente una vez.
  • El problema de desición asociado consiste en
    determinar, dado un positivo
  • d, si el grafo tiene un circito de costo no
    mayor que d.
  • Problema de coloreado de grafos Determinar el
    mínimo número de colores necesario para colorear
    un grafo, de tal forma que no haya dos vértices
    adyacentes con el mismo color.
  • El problema de decisión correspondiente
    consiste en , dado un entero m, determinar si
    existe un coloreado que utilice como mucho m
    colores.

9
Introducción a Teoría de NP-Completitud Problemas
  • Problema del Cliqué un cliqué de un grafo no
    dirigido G(V,A), es un conjunto W de V, tal que
    cada vértice de W es adyacente al resto de
    vértices en W.
  • Wa,b,c,d
  • El problema de optimización del cliqué consiste
    en maximizar el tamaño del cliqué
  • El problema de decisión del cliqué consiste en
    determinar, dado un número entero positivo k, si
    existe para el grafo un cliqué que contenga al
    menos k vértices.
  • No se han encontrado algoritmos polinomiales para
    los problemas descritos ya sea para su versión de
    optimización o de decisión.
  • Sin embargo, si se desarrollara un algoritmo
    polinómico para el problema de optimización, se
    tendría también un algoritmo polinómico para su
    versión de decisión.
  • Una solución al problema de optimización, produce
    una solución del correspondiente problema de
    decisión. Por lo que al comienzo se estudiarán
    los problemas de decisión para pasar luego a los
    de optimización.

10
Introducción a Teoría de NP-Completitud Las
clases P y NP
  • Definición P es el conjunto de todos los
    problemas de decisión que pueden ser resueltos
    por un algoritmo polinomial.
  • Qué problemas de decisión están en P?
  • Qué problemas de decisión no están en P?
  • Un algoritmo no determinista está compuesto por
    dos fases
  • Fase de adivinación (no determinista)dada una
    instancia o conjunto de datos para un problema
    dado, produce una salida S, que puede entenderse
    como una supuesta solución.
  • Fase de verificación (determinista)Dada la
    instancia y la salida S, y procediendo de forma
    determinista , o se devuelve cierto lo cual
    significa que se ha verificado que la respuesta
    para la instancia es si, o devuelve falso.
  • Teóricamente , se dice que un algoritmo no
    determinista resuelve un problema de decisión
    si
  • Para cualquier instancia par la cual la respuesta
    es si hay alguna salida S, para la cual la
    fase de verificación devuelve cierto.
  • Para cualquier instancia par la cual la respuesta
    es no no hay ninguna salida S, para la cual la
    fase de verificación devuelva verdadero

11
Introducción a Teoría de NP-Completitud Las
clases P y NP
  • Ejemplo Problema del Vendedor viajero
  • Supongamos que dado un grafo G(V,A) y un número
    d, una persona asegura que la respuesta al
    problema es si, es decir asegura que hay un
    circuito con costo total inferior a d.
  • Es razonable pedirle que pruebe su afirmación,
    mostrando o produciendo un circuito hamiltoniano
    de costo no superior a d.
  • Si la persona produce, por ejemplo S, una lista
    de todos los vértices del grafo, se podría
    construir un algoritmo que verificara si la ruta
    determinada por S tiene un costo menor a d.

funcion verificar(G,d,S)booleano inicio si S
es circuito and costo_total(S) ltd entonces
devolver verdadero sino devolver falso
fin-si fin
Ejercicioimplementar el algoritmo con más
detalle y mostrar que su complejidad es
polinomial.
12
Introducción a Teoría de NP-Completitud Las
clases P y NP
  • Definición Un algoritmo no determinístico de
    tiempo polinomial es un algoritmo no determinista
    cuya fase de verificación es un algoritmo de
    tiempo polinomial
  • Definición NP es el conjunto de todos los
    problemas de decisión que pueden ser resueltos
    por algoritmo no determinísticos de tiempo
    polinomial .
  • NP viene de Nondeterministic Polinomyal
  • Para que un problema esté en NP debe existir un
    algoritmo que haga la verificación en tiempo
    polinómico.
  • Ya que se puede verificar con un algoritmo
    polinomial el problema del vendedor viajero está
    en NP.
  • Esto no significa que haya algoritmos de tiempo
    polinómicos que lo resuelvan
  • El principal propósito de introducir los
    conceptos de algoritmos no determinista y la
    clase NP es el clasificar los problemas
  • qué otros porblemas son NP?. Todos los nombrados
    anteriormente (Y muchos más)

13
Introducción a Teoría de NP-Completitud Las
clases P y NP
  • Hay un gran número de problemas que están
    trivialmente en NP todo problema P está también
    en NP.
  • La figura muestra la relación que se cree
    existe entre las clases P y NP
  • Nadie ha probado que exista un problema en NP que
    no esté en P
  • La cuestión de si PNP es una de las más
    misteriosas e importantes en informática
  • Para mostrar que tendríamos que
    encontrar un problema en NP que no esté e P,
    mientras que para probar que PNP, en principio,
    tendríamos que encontrar un algoritmo polinomial
    para cada problema en NP
  • Se verá que esta tarea se puede simplificar
    bastante. Veremos que es suficiente encontrar un
    algoritmo de tiempo polinomial para uno sólo de
    los problemas en la clase de problemas
    NP-completos

P
NP
14
Introducción a Teoría de NP-Completitud Problema
SAT
  • Una variable lógica , puede tomar valores
    verdadero o fálso . Si x es una variable lógica,
    es la negación de x.
  • Un literal es una variable lógica o su negación
  • Una cláusula es una secuencia de literales
    separados por el operador lógico or
  • Una expresión lógica en forma normal conjuntiva
    (FNC), es una secuencia de cláusulas separadas
    por el operador lógico and
  • El problema de decisión de satisfactibilidad FNC
    (SAT-FNC), consiste en determinar, dada una
    expresión lógica FNC , si existe una asignación
    de valores verdadero-falso para las variables, de
    manera que la expresión completa sea verdadera.
  • Ejemplo para la instancia
  • la respuesta es si puesto que la
    expresión es verdadera cuando
  • Para la instancia
  • la respuesta es no

15
Introducción a Teoría de NP-Completitud Problema
SAT
  • A veces se clasifica como subproblema SAT ,
    dependiendo de las variables de una cláusula,
    2-SAT a lo más dos variables por cláusula, 3-SAT
    3 variables por cláusula.
  • Es fácil escribir un algoritmo determinista de
    complejidad polinomial, que tome como entrada,
    una expresión lógica en FNC y una asignación de
    variables y verifique si la expresión es
    verdadera para la asignación.
  • Por lo tanto, SAT, está en la clase NP
  • Nadie ha encontrado un algoritmo polinomial para
    resolver SAT-FNC, pero tampoco nadie ha probado
    que dicho algoritmo no exista, por lo que no se
    sabe si está en la clase P
  • En 1971, Stephen Cook demostró que si SAT está en
    P entonces P NP

16
Introducción a Teoría de NP-Completitud
Reducibilidad polinómica
  • Supongamos que se requiere resolver el problema
    de decisión A y que se tiene el algoritmo que
    resuelve el problema de decisión B
  • Supongamos también que se tiene un algoritmo que
    construye una instancia y de B, para toda
    instancia x de A de tal forma que un algoritmo
    para B responde si para y si y sólo si la
    respuesta al problema para x es si. Dicho
    algoritmo se denomina algoritmo de
    transformación.
  • Definición Si existe un algoritmo de
    transformación polinomial del problema de
    decisión A en el problema de decisión B, el
    problema A es reducible polinomialmente al
    problema B. Se denota

17
Introducción a Teoría de NP-Completitud
Reducibilidad polinómica
  • Si el algoritmo de reducibilidad es polinomial y
    se tiene un algoritmo polinomial para B,
    intuitivamente parece que el algoritmo para A
    resultante de la combinación debe ser de
    complejidad polinomial
  • Teorema1 Si el problema de decisión está en P y
    , entonces el problema de decisión A está
    en P.
  • Demostración
  • Sea p el polinomio que acota la complejidad en
    tiempo del algoritmo de transformación, y q el
    polinomio que acota la complejidad del algoritmo
    polinomial B,
  • Supongamos que se tiene una instancia para A de
    tamaño n
  • Como el algoritmo de transformación da como mucho
    pasos, el tamaño de la instancia para el
    problema B es a lo más
  • El alcoritmo para B se realiza con mucho en
    pasos.
  • Por lo tanto la cantidad total de trabajo para
    resolver A es a lo más

, que es un polinomio en n
18
Introducción a Teoría de NP-Completitud
Problemas NP-Completos
  • DefiniciónUn problema B es NP-Completo si
  • Está en NP
  • Para cualquier otro problema A en NP,
  • Por el teorema 1 , si pudiéramos demostrar para
    cualquier problema NP-completo que está en P, se
    podría concluir que PNP.
  • Si se demuestra que no puede existir una solución
    polinomial para algun problema NP-Completo,
    entonces NINIGUNO la tiene.
  • El destino de un problema NP-Completo es el
    destino de todos, todos son tratables o todos son
    intratables.
  • Teorema 2 (Cook/Levin)El problema SAT es
    NP-Completo
  • No se verá la demostración, pero esta no se basa
    en reducir exahustivamente todos los problemas NP
    a SAT. La demostración, se basa en propiedades
    comunes a todos los problemas NP, de manera de
    probar que cualquier problema NP se puede reducir
    a SAT.
  • Una vez probado el Teorema 2, se puede probar
    que mucho otros problemas son NP-Completos. Las
    demostraciones se basan en el siguiente teorema.

19
Introducción a Teoría de NP-Completitud
Problemas NP-Completos
  • Teorema 3 Un problema C es NP- completo si
  • Está en NP
  • Para algún problema NP-Completo B,
  • Demostración
  • Por ser B NP-Completo, para cualquier problema A
    en NP
  • Como la reductibilidad es transitiva, entonces
  • Puesto que C está en NP, satisface la definición
    de NP-Completo.
  • Por los teoremas 2 y 3 , podemos demostrar que un
    problema es NP-Completo mostrando que está en NP
    y que SAT se puede reducir a él.
  • PDCProblema de decisión Cliqué, es NP-Completo
  • Ejercicioprobar que el PDC está en NP,
    escribiendo un algoritmo polinomial
  • que verifique la solución de las instancias de
    PDC.
  • Probar que SAT se puede reducir al PDC

20
Introducción a Teoría de NP-Completitud
Problemas NP-Completos
  • Sea
    una expresión lógica en FNC, con variables
  • Transformamos B en un grafo G(V,A) donde,
  • es
    un literal de la cláusula ,
  • Por ejemplo para
    el grafo equivalente
    es
  • Ejercicio, probar que la transformación es
    polinómica

21
Introducción a Teoría de NP-Completitud
Problemas NP-Completos
  • Se debe probar que B es satisfacible si y sólo si
    G tiene un cliqué de tamaño al menos k
  • Si B es satisfacible, entonces G tiene
    un cliqué de tamaño al menos k.
  • Si B es satisfacible, hay una asignación de
    variables que hace cada cláusula cierta
  • Esto significa que hay al menos un literal en
    cada cláusula que es verdadero . Elegimos
    uno de estos literales de cada .
  • Sea es el literal cierto
    tomado de
  • forma un cliqué en G de tamaño k, ya que
    hay una arco entre cada par de vértices
    y en , porque y tanto
    y como z son verdaderos
  • Si G tiene un cliqué de tamaño al menos
    k, entonces B es satisfacible.
  • Ya que no hay arista entre un vértice y
    otro , los índices de los vérices del
    cliqué deben ser todos diferentes
  • Ya que sólo hay k índices diferentes, el cliqué
    tiene que tener como mucho k vértices

22
Introducción a Teoría de NP-Completitud
Problemas NP-Completos
  • Por tanto si el grafo G tiene un cliqué de
    tamaño al menos k , el número de vértices de
    tiene que ser exactamente k
  • Tomamos
  • S contiene k literales, uno por cada cláusula.
  • S no puede contener un literal y y su complemento
    porque, seguún la definición de G no hay
    ningún arco conectando con
    para ningún i y j
  • Por lo tanto si hacemos
  • y asignamos arbitrariamente los valores a
    las variables que no están en S , todas las
    cláusulas son verdaderas.
  • Por lo tanto, B es satisfacible.

23
Introducción a Teoría de NP-Completitud
Problemas NP-Completos
  • Se ha demostrado que el problema de decisión de
    los Ciclos Hamiltonianos PDCH es NPcompleto.
  • Este problema consiste en determinar si un grafo
    tiene al menos un ciclo que pase por todos los
    vértice, exactamente una vez y vuelva al vértice
    inicial.
  • Para demostrarlo
  • Se construyó un algoritmo de verificación por lo
    que es NP
  • Se demostró que SAT se puede reducir a PDCH

Ejemplo de ciclo hamiltoniano
24
Introducción a Teoría de NP-Completitud
Problemas NP-Completos
  • Ejercicio demostrar que el problema de decisión
    del vendedor viajero (PDV simétrico, con grafo no
    dirigido) es NP-Completo
  • La función verificar ya vista sirve también para
    el caso simétrico. Por tanto PDV es NP.
  • Sólo queda probar que algún problema NP-Completo
    se reduce a PDV.
  • PDCH se puede reducir a PDV
  • Transformamos una instancia G(V,A) de PDCH en
    una instancia G(V,A), con el mismo conjunto de
    vértices V, un arco entre cada par de vértices ,
    y el siguiente costo
  • G tiene un circuito Hamiltoniano si y solo si G
    tiene un circuito de longitud o costo no mayor
    que n , con nV cantidad de vértices

25
Introducción a Teoría de NP-Completitud
Problemas NP-Completos
  • Ejemplo El grafo G se ha transformado a G
  • En este caso la respuesta es no
  • Ejercicio, plantear un algoritmo polinomial para
    transformar el grafo

26
Introducción a Teoría de NP-Completitud
Problemas NP-Duros
  • Ahora se extenderan los resultados a problemas en
    general, más allá de los de decisión.
  • Definición si el problema A puede resolverse en
    tiempo polinomial, utilizando un algoritmo
    polinomial hipotético para el problema B,
    entonces A es Turing reducible en tiempo
    polinomial a B. Se denota
  • Claramente, si A y B son problemas de decisión ,
  • Definición Un problema B es NP-Duro si, para
    algún problema NP-completo A, se cumple
  • Las reducciones turing son transitivas, por lo
    tanto todos los problemas NP se reducen a algún
    problema NP-duro. Esto significa que si existe un
    algoritmo polinomial para un problema NP-duro,
    entonces PNP.

duro
27
Introducción a Teoría de NP-Completitud
Problemas NP-Duros
  • Qué problemas son NP-Duros?
  • Todo problma NP-Completo es NP-duro
  • Los problemas de optimización asociados a
    problemas NP-Completos son NP-duros
  • Qué problemas no son NP-Duros?
  • No se sabe si hay un problema así.
  • De hecho si se demostrara que algún problema no
    es NP-Duro, estaríamos probando P NP
  • La razón es que (por contradicción) si PNP, todo
    problema en NP se podría resolver con un
    algoritmo polinomial
  • Por tanto, podríamos resolver cualquier problema
    en NP, utilizando un algoritmo polinomial para un
    problema B , simplemente llamando al algoritmo
    polinomial de cada problema (no se necesitaría
    el algoritmo hipotético para B)
  • Por lo tanto todos los problemas serían NP-Duros

28
Introducción a Teoría de NP-Completitud
Problemas NP-Duros
  • Por otro lado , cualquier problema para el cual
    conocemos un algoritmo polinomial, podría no ser
    NP-duro
  • De hecho, si probáramos que algún problema para
    el cual tenemos un algoritmo polinomial fuera
    NP-duro, se estaría probando que PNP
  • La razón es que tendríamos un algoritmo
    polinomial real en vez de un algoritmo hipotético
    para algun problema NP-duro
  • Por tanto, podríamos resolver cada problema en NP
    en tiempo polinómico utilizando la Turing
    reducción del problema al problema NP-duro.
  • El hecho de que un problema sea NP-Completo o
    NP-duro es instructivo. Pues se sabe de antemano
    que no hay algoritmo determinista eficiente para
    resolverlos por lo que hay que usar otras
    estrategias
  • Usar Bactracking o Branch and Bound, aunque en
    muchos casos, la explosión combinatorial sea muy
    grande
  • Encontrar un algoritmo eficiente y determinista
    para una subclase de instancias.
  • Desarrollar un algoritmo aproximado no garantiza
    devolver la solución óptima. A veces se llaman
    heurísticas, que pueden ser determinísticas o
    probabilísticas. La idea es que siempre
    encuentre una solución aunque no sea la óptima.

29
Introducción a Teoría de NP-Completitud
Algoritmos aproximados
  • Se puede medir la calidad de la aproximación de
    estos algoritmos
  • Sea P un problema, I una instancia de P, y F(I)
    el valor de la solución óptima para I. Un
    algoritmo aproximado A, produce soluciones
    factibles para I cuyo valor es F(I) es menor (o
    mayor)que F(I) si P es un problema de
    maximización (o minimización).
  • Definición A es un algoritmo aproximado
    absoluto si para cualquier instancia I
  • F(I) - F(I) lt k
  • Para alguna constante k.
  • Definición A es un algoritmo aproximadocon una
    razón de aproximación r(n) si para si para
    cualquier instancia I de tamaño n, F(I) está en
    proporción r(n) con respecto al valor de la
    solución óptima F(I)
  • Un algoritmo que alcanza una razón d
    aproximación r(n) se denomina algoritmo
    r(n)-aproximado

30
Introducción a Teoría de NP-Completitud
Algoritmos aproximados
  • La razón de aproximación nunca es menor que 1, ya
    que
  • Un algoritmo 1-aproximado es óptimo, cuanto mayor
    sea la razón , peores serán las soluciones.

implica
Write a Comment
User Comments (0)
About PowerShow.com