Optimización de Redes Problemas de asignación Juan Nehuen Gonzalez Montoro Dr. Jorge M. Finochietto 14 de abril de 2015 LCD EFN UNC Laboratorio de Comunicaciones Digitales Facultad de Ciencias Exactas, Físicas y Naturales Universidad Nacional de Córdoba, Argentina Outline 1 Problema de asignación 2 Problema del empaquetado Optimización 2 / 18 Problema de asignación Definición Dado un conjunto de N items y M contenedores, si cada item tj tiene un peso wj asociado ¿Cuál es la asignación de items a los contenedores que minimiza el peso máximo acumulado? Optimización → Problema de asignación 3 / 18 Problema de asignación Supongamos entonces que tenemos: {t1 , t2 , ..., tN } un conjunto de items que deben ser repartidos. M contenedores. wj el peso asociado al item tj Optimización → Problema de asignación 4 / 18 Problema de asignación Lo que buscamos es la forma de repartir los items en los diferentes contenedores de manera que el peso acumulado en cada contenedor sea el menor posible. Optimización → Problema de asignación 5 / 18 Problema de asignación Lo que buscamos es la forma de repartir los items en los diferentes contenedores de manera que el peso acumulado en cada contenedor sea el menor posible. Optimización → Problema de asignación 6 / 18 PA - Formulación ILP Datos de entrada: N : Cantidad de items M : Cantidad de contenedores wj : Peso del item tj con 1 ≤ j ≤ N Optimización → Problema de asignación 7 / 18 PA - Formulación ILP Datos de entrada: N : Cantidad de items M : Cantidad de contenedores wj : Peso del item tj con 1 ≤ j ≤ N Variables : xij = 1 Si el item j es asignada al contenedor i. 0 Caso contrario. con i = 1, 2, ..., M Optimización → Problema de asignación 8 / 18 PA - Formulación ILP Cada item debe ser asignado a un único contenedor, teniendo en cuenta la definción de xij podemos establecer la primera restricción: m X xij = 1 i=1 Esta restricción es válida gracias a la restricción 0 ≤ xij ≤ 1, asegurando además que todos los items sean asignados. Optimización → Problema de asignación 9 / 18 PA - Formulación ILP Ahora necesitamos buscar la manera de expresar “El máximo peso acumulado en un contenedor”. Para el contenedor i el peso acumulado es: N X xij wj j=1 Si creamos una nueva variable Wmax cuyo significado sea el máximo peso acumulado, podemos afirmar que el peso acumulado en cada contenedor está acotado por Wmax . N X xij wj ≤ Wmax ∀i ∈ {1, 2, ..., M} j=1 Optimización → Problema de asignación 10 / 18 PA - Formulación ILP Finalmente si planteamos como función objetivo minimizar Wmax: Formulación ILP del problema de asignación Minimizar: z = Wmax Sujeto a: M X xij = 1 ∀j ∈ {1, 2, ..., N} i=1 N X xij wj ≤ Wmax ∀i ∈ {1, 2, ..., M} j=1 0 ≤ xij ≤ 1, 0 ≤ Wmax xij ∈ Z; Wmax ∈ R Optimización → Problema de asignación 11 / 18 Formato de archivos IBM LP 1 Maximize 2 obj : 2 x2 + 3 x3 Subject To c1 : x2 + x3 - x1 <= 20 c2 : - 3 x2 + x3 + x1 <= 30 Bounds 0 <= x1 <= 40 All other variables are >= 0. General x1 x2 x3 3 4 5 6 7 8 9 10 11 12 Optimización → Problema de asignación 12 / 18 Problema del empaquetado Definición Dados N items asignar cada item a un contenedor de forma que el peso total de cada contenedor no exceda c (la capacidad máxima de los contenedores)y el número de contenedores utilizados sea mı́nimo. Optimización → Problema del empaquetado 13 / 18 Problema del empaquetado Definición Dados N items asignar cada item a un contenedor de forma que el peso total de cada contenedor no exceda c (la capacidad máxima de los contenedores)y el número de contenedores utilizados sea mı́nimo. Optimización → Problema del empaquetado 14 / 18 Problema del empaquetado Este problema se diferencia del anterior en que el número de contenedores (de capacidad finita) utilizados es variable, como máximo se utilizaran tantos contenedores como items. supongamos que tenemos: N : Cantidad de items wj : Peso del item j con 1 ≤ j ≤ N c : Capacidad de los contenedores Debemos mantener la restricción de que cada item puede ser asignado a un solo contenedor: N X xij = 1 ∀j ∈ 1, 2, ..., N i=1 Optimización → Problema del empaquetado 15 / 18 Problema del empaquetado En segundo lugar necesitamos restringir el contenido de cada contenedor a su capcidad c: N X wj xij ≤ c j=1 El objetivo de este problema es minimizar la cantidad de contenedores utilizados, por lo que es necesario incluir una nueva variable yi que nos indique si el contenedor i está siendo utilizado, donde 0 ≤ i ≤ N. 1 Si el contenedor i contiene al menos un item. yi = 0 Si el contenedor se encuentra vacio. Optimización → Problema del empaquetado 16 / 18 Problema del empaquetado Es posible modificar la restricción de capacidad para incluir la variable yi : N X wj xij ≤ cyi j=1 De esta manera solo pueden ser asignados items a un contenedor cuya variable asociada yi esté en 1. Finalmente solo nos queda expresar la función objetivo. Minimizar: z = N X yi i=1 Optimización → Problema del empaquetado 17 / 18 Problema del empaquetado Formulación ILP del problema del empaquetado Minimizar: z= N X yi i=1 Sujeto a: N X xij = 1 ∀j ∈ 1, 2, ..., N i=1 N X wj xij ≤ cyi ∀i ∈ 1, 2, ..., N j=1 0 ≤ xij ≤ 1, 0 ≤ yi ≤ 1 xij , yi ∈ Z Optimización → Problema del empaquetado 18 / 18