Descargar la presentación
La descarga está en progreso. Por favor, espere
1
CURSO DE ALGORITMOS DE APROXIMACIÓN 2016
Knapsac Problem CURSO DE ALGORITMOS DE APROXIMACIÓN 2016
2
Agenda Introducción Algoritmo de Tiempo Pseudo-Polinomial para el Problema del Mochilero Un FPTAS para el Problema del Mochilero NP-Completitud fuerte y existencia de FPTAS Aplicaciones
3
Introducción Algunos problemas de optimización NP-Completos admiten aproximabilidad hasta cualquier grado requerido. II problema de optimización NP-Completo fII función objetivo
4
Introducción Def 1: Esquema de Aproximación
Un algoritmo A es un esquema de aproximación para II si: - entrada (I, e) - I instancia de II - e > 0 parámetro de error - se obtiene una solución d tal que: - fII (I, d) < (1 + e).OPT si II es un problema de minimización - fII (I, d) < (1 + e).OPT si II es un problema de maximización
5
Introducción Definición 2: Esquema de Aproximación en Tiempo Polinomial – PTAS Un algoritmo A es un PTAS sí: - para cada e > 0 fijo - su tiempo de ejecución está acotado - por un polinomio en el tamaño de la instancia I
6
Introducción Con esta definición, el tiempo de ejecución de A depende arbitrariamente de e. Para rectificar este concepto, se modifica la definición, en forma más restrictiva. Definición 3: Esquema Completo de Aproximación en Tiempo Polinomial - FPTAS
7
Introducción Definición 3: Esquema Completo de Aproximación en Tiempo Polinomial – FPTAS Un algoritmo es un FPTAS sí: - el tiempo de ejecución de A se acota por un polinomio en el tamaño de la instancia I y 1/e Sí P = NP, entonces FPTAS es el mejor esquema de aproximación que se puede esperar para un problema de optimización NP-Completo
8
Introducción Problema 4: Knapsac Problem – Problema del Mochilero
- Conjunto de objetos S = {a1,…, an} - tamaños especificados size (ai) Z+ - ganancias especificadas profit (ai) Z+ - “Capacidad de mochila” B Z+ Se define el problema como: - encontrar un subconjunto de objetos en el cual: - el tamaño total está acotado por B - la ganancia total está maximizada
9
Introducción Algoritmo obvio:
- ordenar los objetos en orden decreciente del ratio beneficio/ tamaño - en forma golosa seleccionar los objetos en ese orden Este algoritmo no es una buena solución para el Knapsac Problem
10
Algoritmo de Tiempo Pseudo-Polinomial para el Knapsac Problem
Concepto adicional: Para cualquier problema de optimización II una instancia I consiste en: - objetos - conjuntos - grafos - números - costos - ganancias - tamaños
11
Algoritmo de Tiempo Pseudo-Polinomial
Hasta ahora se ha asumido que todos los números de la instancia I están escritos en binario Definición 5: Tamaño de la Instancia Binaria I – cantidad de bits necesaria para escribir I bajo esta asunción Definición 6: Tamaño de la Instancia Unaria Iu – cantidad de bits necesarios para describir la instancia I asumiendo que todos los números de la instancia están escritos en unario
12
Algoritmo de Tiempo Pseudo-Polinomial
Definición 7: Algoritmo Eficiente Un algoritmo para el problema II se dirá que es eficiente si su tiempo de ejecución en la instancia I está acotado por un polinomio en I Definición 8: Algoritmo de Tiempo Pseudo-Polinomial (más débil) Un algoritmo es de tiempo Pseudo-Polinomial si para el problema II su tiempo de ejecución para la instancia I está acotada por un polinomio en Iu .
13
Algoritmo de Tiempo Pseudo-Polinomial
Observación 9: El problema del mochilero es NP-Completo, por lo tanto no admite un algoritmo en tiempo polinomial. El problema del mochilero admite un algoritmo en tiempo pseudo- polinomial. Este hecho se utiliza en forma crítica para obtener un FPTAS para el problema del mochilero.
14
Algoritmo de Tiempo Pseudo-Polinomial
Observación 10: Todos los algoritmos en tiempo pseudo-polinomial para problemas NP- Completos se basan en programación dinámica. La programación dinámica es un método para reducir el tiempo de ejecución de un algoritmo mediante la utilización de subproblemas superpuestos y subestructuras óptimas.
15
Algoritmo de Tiempo Pseudo-Polinomial
Sea P la ganancia del objeto de mayor ganancia P = max a S profit (a) Entonces nP: - es una cota superior trivial de la ganancia - puede ser alcanzada por cualquier solución
16
Algoritmo de Tiempo Pseudo-Polinomial
Para cada: - i {1,…, n} - p {1,…, nP} se define Si,p subconjunto de {a1,…, an} tal que: - la ganancia es exactamente p - el tamaño total está minimizado Se le llamará A(i,p) al tamaño del conjunto Si,p
17
Algoritmo de Tiempo Pseudo-Polinomial
Recurrencia para facilitar el conjunto de todos los valores de A(i,p) en tiempo O(n2P). A(i+1,p) = Min {A(i,p), size (ai+1) + A(i,p – profit(ai+1))} si profit (ai+1) < p de otro modo: A(i+1,p) = A(i,p)
18
Algoritmo de Tiempo Pseudo-Polinomial
La ganancia máxima alcanzable por objetos de tamaño total acotado por B es: Max {p A(n,p) < B} Por consiguiente, se ha conseguido un algoritmo pseudo-polinomial para el problema del mochilero
19
Un FPTAS para el Problema del Mochilero
Si las ganancias de los objetos son números pequeños, están acotados por un polinomio n. Se trataría entonces de un algoritmo en tiempo polinomial regular. Debido a que su tiempo de ejecución estaría acotado por un polinomio en I . Esta es la idea clave para obtener un FPTAS.
20
Un FPTAS para el Problema del Mochilero
Se ignorarán cierta cantidad de bits menos significativos (LSB) de ganancias de objetos. Esto dependerá del parámetro de error e. Se hará de modo que las ganancias modificadas puedan verse acotadas por un polinomio en n y 1/e. Permitirá encontrar una solución: - cuya ganancia sea como mínimo (1-e).OPT - en tiempo acotado por un polinomio en n y 1/e
21
Un FPTAS para el Problema del Mochilero
Algoritmo 11: FPTAS para el problema del mochilero Dado e > 0, sea K = eP/n Para cada objeto ai, definir profit (ai) = profit (ai)/K Con esas ganancia de objetos, usar el algoritmo de programación dinámica, encontrar el conjunto de mayor ganancia, S’ Output S’
22
Un FPTAS para el Problema del Mochilero
Lema 12: A denota el conjunto obtenido por el algoritmo. Entonces, profit A > (1-e).OPT Prueba: O denota el conjunto óptimo. Para cualquier conjunto A, por el redondeo hacia abajo: - K.profit’(a) será menor que profit(a) - pero no será menor que K
23
Un FPTAS para el Problema del Mochilero
por consiguente: profit(O) – K.profit’(O) < nK La programación dinámica entregará: - un conjunto al menos tan bueno como O - bajo las nuevas ganancias
24
Un FPTAS para el Problema del Mochilero
por consiguiente: profit (S’) > K.profit’(O) > profit(O) – nK = OPT – eP > (1-e).OPT la última inequidad sigue de la observación de que OPT > P
25
Un FPTAS para el Problema del Mochilero
Teorema 13: El algoritmo 11 es un esquema de aproximación totalmente polinomial para el problema del mochilero Prueba: Por el Lema 12, la solución encontrada está dentro de un factor (1- e) de OPT. Dado que el tiempo de ejecución del algoritmo es: O(n2[P/K]) = O(n2[n/e]) el cual es polinomial en n y 1/e
26
NP-Completitud fuerte y existencia de FPTAS
Muy pocos de los problemas conocidos NP-Completos admite FPTAS. Se demostrará formalmente a continuación. Definición 14: Un problema II es fuertemente NP-Completo sí: - cada problema en NP puede ser reducido polinomialmente a II - los números de la instancia reducida siempre están en unario La restricción fuerza a utilizar únicamente números acotados polinomialmente.
27
NP-Completitud fuerte y existencia de FPTAS
Asumiendo N = NP: - Un problema fuertemente NP-Completo no puede tener un algoritmo de tiempo pseudo-polinomial Por consiguiente, el Problema del Mochilero no es fuertemente NP-Completo
28
NP-Completitud fuerte y existencia de FPTAS
Se demostrará a continuación que cualquier problema NP-Completo: - bajo ciertas restricciones muy débiles - si admite un FPTAS - debe admitir un algoritmo de tiempo pseudo-polinomial
29
NP-Completitud fuerte y existencia de FPTAS
Teorema 15: sea p un polinomio y II un problema de minimización NP-Completo tal que la función objetivo fII está enteramente valuada y en cualquier instancia I, OPT(I) < p( Iu ). SI II admite un FPTAS, entonces admite un algoritmo de tiempo pseudo- polinomial Prueba: Suponga que hay un FPTAS para II cuyo tiempo de ejecución en la instancia I y parámetro de error e es q( I ,1/e)=, donde q es un polinomio.
30
NP-Completitud fuerte y existencia de FPTAS
En la instancia I, fije el parámetro de error e = 1/p( Iu ) Corra el FPTAS. Ahora, la solución producida tendrá valor de función objetivo menor o igual a: (1+e).OPT(I) < OPT(I) + ep( Iu ) = OPT(I) + 1 De hecho, con este parámetro de error, el FPTAS será forzado a producir una solución óptima.
31
NP-Completitud fuerte y existencia de FPTAS
El tiempo de ejecución será q( I ,p( Iu )), polinomial en Iu . Por consiguiente, se ha obtenido un algoritmo de tiempo pseudo- polinomial para II. El siguiente corolario aplica a la mayoría de los problemas NP-Completos
32
NP-Completitud fuerte y existencia de FPTAS
Corolario 16: Sea II un problema de optimización NP-Completo que satisface las restricciones del Teorema 15. Si II es fuertemente NP-Completo, entonces II no admite un FPTAS, asumiendo P = NP. Prueba: Si II admite un FPTAS, entonces admite un algoritmo en tiempo pseudo-polinomial. Pero entonces no es fuertemente NP-Completo. Esto conduciría a una contradicción, asumiendo P = NP.
33
NP-Completitud fuerte y existencia de FPTAS
Pregunta 17: Es FPTAS el algoritmo de aproximación más deseable? El diseño de FPTAS y PTAS busca un equilibrio entre exactitud y tiempo de ejecución. Una instancia de problema determinado se traslada a una instancia más inexacta, dependiendo del parámetro de error e. Este último problema se resuelve con una aproximación por programación dinámica.
34
NP-Completitud fuerte y existencia de FPTAS
Ello termina siendo polinomialmente una búsqueda de diferentes posibilidades. Particularmente para Knapsac, esto involucra computar A(i,p) para todos los i y p. En la mayoría de los algoritmos, el tiempo de ejecución es prohibitivo inclusive para valores razonables de n y e. No hay una respuesta directa sobre si FPTAS/ PTAS es lo mejor que podemos esperar para un problema NP-Completo.
35
Aplicaciones
36
Aplicaciones Criptografía, Merkle y Hellman, 1976
- idearon un sistema sencillo basado en que: - dado un número k y conjunto de números C - saber cúales números de C se utilizaron para sumar k - tiene un costo computacional muy alto - la comunicación es segura. En 1982 se encontró un algoritmo que permite romper este sistema criptográfico en tiempo polinomial.
37
Aplicaciones Selección de oportunidades de inversión: presupuesto como limitante. Desperdiciar la menor cantidad de tela/ acero : material como limitante. Aprovechar al máximo el uso de máquinas: tiempo como limitante. Problema de la Secretaria: los elementos que se van recibiendo en forma continua se debe decidir que elementos elegir sin haber recibido todos
38
Referencias [1] V. Vazirani, ”Approximation Algorithms” Springer, pp , [2] K. Lai, “The Knapsack Problem and Fully Polynomial Time Approximation Schemes (FPTAS)”, 2006.
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.