ALGORITMOS APROXIMADOS

Slides:



Advertisements
Presentaciones similares
Capítulo 2 Algoritmos.
Advertisements

Diseño y análisis de algoritmos
Diseño y análisis de algoritmos
Diseño y análisis de algoritmos
La Función Exponencial
Tema 4 Introducción a la Programación Lineal
Programación 10-Marzo-11.
Investigación de Operaciones II
Tema 1: Programación dinámica
METODO SIMPLEX El método Simplex es un procedimiento iterativo que permite ir mejorando la solución a cada paso. El proceso concluye cuando no es posible.
Programación dinámica (1)
Windows XP sp3.
Ecuaciones diferenciales de 1er orden :
REPRESENTACIÓN GRÁFICA DE ALGORITMOS
2- SIMPLEX.
Complejidad Problemas NP-Completos
 La resolución de problemas algorítmicos no solamente implica que los informáticos sepan programar sino necesitan de otras habilidades como tener una.
Potencias de exponente natural mayor que 1
Potencias de exponente natural mayor que 1
Profesor: Julio Canales
Clase 2, Parte 2: Métodos Tradicionales de Optimización y Búesqueda
Programación Dinámica
Universidad de los Andes-CODENSA
Matemáticas III Tema I FUNCIONES
Optimización Combinatoria usando Algoritmos Evolucionistas Problemas de Optimización. Idea: Encontrar una solución "factible" y "óptima" de acuerdo a algún.
Universidad de los Andes-CODENSA
Resolución de Problemas Método Simplex
Programación Lineal Unidad 1 Parte 3.
DÍA 05 * 1º BAD CT SUCESIONES Y LÍMITES
Problemas de Decisión y Optimización
Introducción a Funciones de una variable
Programación dinámica: Introducción
Diseño y análisis de algoritmos
Diseño y análisis de algoritmos
Programación Lineal Entera Binaria
Descomposición Factorial Unidad 5
Parte II. Algorítmica. 3. Algoritmos voraces.
Aplicación SOLVER.
Escuela Superior de Formación de Maestros “Ángel Mendoza Justiniano”
Capítulo 7 Gestión de memoria.
Backtracking 1. Método general. 2. Análisis de tiempos de ejecución.
Programación entera y optimización combinatoria Mayo 2007 Módulo 2:
Parte II. Algorítmica. 5. Backtracking. 1. Análisis de algoritmos.
Planteos Recursivos Resolución de Problemas y Algoritmos
Programación Lineal Entera Antonio H. Escobar Z Universidad Tecnológica de Pereira – Colombia Posgrado en Ingeniería Maestría en Ingeniería Eléctrica.
3- PROGRAMACION LINEAL PARAMETRICA
PROGRAMACIÓN LINEAL.
Parte I. Estructuras de Datos.
Modelos Cuantitativos
Tema 11: Programación dinámica
Parte I. Estructuras de Datos.
Tema 10: Algoritmos voraces
Parte III. Teoría de la Empresa
Ecuación cuadrática o de segundo grado
TEMA 5: El problema del flujo con costo mínimo
Ejemplos del Diseño de Algoritmos Paralelos (Transparencias de McGraw-Hill Modificadas)
PROGRAMACION DINÁMICA
Elaboración de algoritmos usando lógica de programación
FACTORIZACION.
Prof. Juan José Bravo B., M.Sc. ©
EII405 Investigación de operaciones
Método Simplex Es un procedimiento sistemático y eficiente para encontrar y probar soluciones situadas en los puntos extremos de la región de soluciones.
LÍMITES Y SUS PROPIEDADES
Mini-video 2 de 5 Materia: Límites de funciones Continuidad de funciones Prácticas con Introducción a Funciones de una variable.
La Programación Lineal es un procedimiento o algoritmo matemático mediante el cual se resuelve un problema indeterminado, formulado a través de ecuaciones.
Método Simplex Es un procedimiento sistemático y eficiente para encontrar y probar soluciones situadas en los puntos extremos de la región de soluciones.
CONSTRUCCION DEL DISEÑO DE UN OVA, HACIENDO USO DE HERRAMIENTAS VIRTUALES EDGAR MAURICIO ALBA V. Presentado al Ing. John Alejandro Figueredo Luna en el.
Planificación de CPU Conceptos Básicos Criterios de Planificación Algoritmos de Planificación Planificación con Múltiples Procesadores Planificación Real-Time.
TEMA 3 SUCESIONES Y SERIES.
UNIVERSIDAD TECNOLÓGICA DE PANAMÁ Facultad de Ingeniería de Sistemas Computacionales Programa de Lic. en Informática Educativa Computación.
Transcripción de la presentación:

ALGORITMOS APROXIMADOS El problema de la mochila 0-1. El problema de llenado de cajas. Lic. Alejandro Claro Mosqueda.

AGENDA Formulación del problema de la mochila. Definiciones básicas. Algoritmos Aproximados. Algoritmo aproximado para el problema de la mochila. Formulación del problema de llenado de cajas. Algoritmos aproximados para el problema llenado de cajas.

EL PROBLEMA DE LA MOCHILA 100 $ 20 Kg 180 $ 45 Kg 350 $ 50 Kg 400 $ 100 Kg

EL PROBLEMA DE LA MOCHILA Esto puede ser formulado de la siguiente manera: donde xj es una variable binaria, cuyo valor es 1 si j debe ser incluido en la caja y 0 de lo contrario.

PROBLEMAS DE OPTIMIZACIÓN Un problema de optimización, consiste de: Un conjunto de instancias (D).

PROBLEMAS DE OPTIMIZACIÓN Cada instancia I  D tiene un conjunto de soluciones factibles (S ). I = S (I) = 400 $ 100 Kg 280 $ 65 Kg 450 $ 70 Kg 530 $ 95 Kg

PROBLEMAS DE OPTIMIZACIÓN Un algoritmo en tiempo polinomial que dado el par (I, s) determina si s  S . 100 Kg ( ) , 95 Kg

PROBLEMAS DE OPTIMIZACIÓN Una función objetivo (f ), calculable en tiempo polinomial, que asigna un numero real no-negativo a cada par (I, s). Donde s es una solución factible. 400 $ 280 $ 450 $ 530 $

PROBLEMAS DE OPTIMIZACIÓN Una solución optima para una instancia de un problema de minimización (maximización) es una solución factible que obtiene el valor más pequeño (grande) de la función objetivo. OPT(I) = 530 $

ALGORITMOS APROXIMADOS La idea detrás de los algoritmos aproximados es diseñar algoritmos en tiempo polinomial que resulten en una solución ¨próxima¨ a la solución optima de un problema de optimización NP. Sea  un problema de minimización (maximización), y  sea un numero real positivo,   1 (  1). Un algoritmo A se dice que es algoritmo factor -aproximado para  si en para cada instancia I, A produce una solución factible s, tal que (Minimización) (Maximización)

LA MOCHILA 0-1 (APROXIMADO) Es un problema débilmente NP-hard. Admite solución pseudo-polinomial con tiempo de ejecución en (nc) por programación dinámica. ¡Prohibitivo cuando c es grande!

LA MOCHILA 0-1 (APROXIMADO) Algoritmo sub-optimo eficiente [(nlogn)]:

LA MOCHILA 0-1 (APROXIMADO) No siempre determina la solución optimo, y desafortunadamente ¡puede ser arbitrariamente ¨malo¨!. 2 $ 1 Kg X $ X Kg 1 $/Kg 2 $/Kg X > 2 X $ 2 $ OPT(I) = GREDDY(I) =

LA MOCHILA 0-1 (APROXIMADO) ¡Afortunadamente, esto es fácil de solucionar! Considérese la siguiente modificación al algoritmo: ¡Algoritmo factor ½ - aproximado! ½ 

LA MOCHILA 0-1 (APROXIMADO) Sea l el menor entero tal que, Considere la siguiente modificación al problema, I’ = c’ OPT(I’) = GREEDY(I’)

LA MOCHILA 0-1 (APROXIMADO) OPT(I)  OPT(I’) Empleando el hecho de que max(x,y)  (x+y)/2 se obtiene que

LA MOCHILA 0-1 (APROXIMADO) OPT(I) > 450 $ 530/2 $ = 265 $

LLENADO DE CAJAS ¿Cuál es el mayor numero de objetos que se puede almacenar?

LLENADO DE CAJAS ¿ … ? ¿Cuál es el menor numero de cajas que se necesitan para almacenar todos los objetos?

LLENADO DE CAJAS (APROXIMADO) Algoritmo Greedy: Dado los objetos ordenados por orden no decreciente de peso, se introducen tantos como se pueda en una caja; cuando está este llena, ponemos cuantos sean posible en la siguiente. 7 Kg 7 Kg 5 Kg 4 Kg 3 Kg 2 Kg

LLENADO DE CAJAS (APROXIMADO) 4 Kg 5 Kg Greedy(I) = 7 Kg OPT(I) = Pero el algoritmo aproximado nunca se equivoca en mas de k-1 objetos; donde k es el número de cajas.

LLENADO DE CAJAS (APROXIMADO) Supóngase que se tiene una caja de capacidad 7 Kg Si se llena empezando por los objetos de menor peso, la solución es optima para esta caja.

LLENADO DE CAJAS (APROXIMADO) Si ahora se va dividiendo la caja por la porción de las cajas del problema original, se desplazaran lo objetos “partidos” a la siguiente caja. Lo que puede provocar que, que a lo sumo, el último objeto no quepa (caso dos cajas). Al generalizar este resultado se obtiene que para k cajas, la solución aproximada tendrá, a lo sumo, k-1 objetos menos que la solución optima.

LLENADO DE CAJAS (APROXIMADO) Para ordenar los objetos se requiere un tiempo de ejecución (nlogn). El tiempo de ejecución del algoritmo Greedy es (n)

LLENADO DE CAJAS (APROXIMADO) ¿Cuál es el menor numero de cajas que se necesitan para almacenar todos los objetos? ¿ … ? Algoritmo Greedy: Se toman los objetos por orden de pesos no decrecientes, se colocan tantos como sea posible en la primera caja, después en la segunda, y así sucesivamente, y al final se cuentan el número de cajas que se necesitan para almacenar los n objetos.

LLENADO DE CAJAS (APROXIMADO) Es posible demostrar que la solución aproximada (s) esta acotada por donde b es la solución optima del problema.

LLENADO DE CAJAS (APROXIMADO) Algoritmo Greedy alternativo: Se obtiene algoritmo aproximado mejor si los objetos se consideran por orden no creciente, Ahora se va tomando cada objeto por turno, y se intenta añadir el objeto a la caja 1; si no cabe, se intenta añadir a la caja 2, y así sucesivamente; si no cabe en ninguna de las cajas existentes, se comienza a llenar una nueva caja. ? ? ? …

LLENADO DE CAJAS (APROXIMADO) Es posible demostrar que la solución aproximada (s) esta acotada por donde b es la solución optima del problema.

¿?