Você está na página 1de 30

Programaci on entera: Ejemplos, resoluci on gr aca, relajaciones lineales

Prof. Jos e Ni no Mora


Investigaci on Operativa, Grado en Estad stica y Empresa, 2011/12

Esquema

Programaci on entera: denici on, motivaci on, ejemplos

Resoluci on gr aca

Relajaciones de programaci on lineal

Formulaciones reforzadas y formulaciones completas

Brecha de integralidad y test de optimalidad

Qu e es un programa entero?
Consideremos un programa lineal, p. ej. (PL) z PL = max c1 x1 + + cn xn sujeto a ai1 x1 + + ain xn bi , xj 0, j = 1, . . . , n i = 1, . . . , m

Supongamos que los valores de inter es de las variables de decisi on xj son enteros Ej: xj = n umero de autom oviles del modelo j producidos

Qu e es un programa entero?
A nadiendo restricciones de integralidad en las variables xj , obtenemos un programa (lineal) entero: (PE) z PE = max c1 x1 + + cn xn sujeto a ai1 x1 + + ain xn bi , xj 0 y entera , i = 1, . . . , m

j = 1, . . . , n

Si los valores de inter es de las variables xj son binarios (0 o 1), obtenemos un programa entero binario: xj {0, 1} , j = 1, . . . , n

Relajaciones de programaci on lineal


Dada una formulaci on de programaci on entera, (PE) z PE = max c1 x1 + + cn xn sujeto a ai1 x1 + + ain xn bi , xj 0 y entero , i = 1, . . . , m

j = 1, . . . , n

obtenemos su relajaci on de programaci on lineal (PL): (PL) z PL = max c1 x1 + + cn xn sujeto a ai1 x1 + + ain xn bi , xj 0, j = 1, . . . , n i = 1, . . . , m

Relaci on entre valores o ptimos: z PE z PL Por qu e?

Ej: selecci on optima de proyectos


Problema de selecci on o ptima de proyectos: Gastos/a no (M e) Proyecto 1 2 3 4 5 Presupuesto 1 5 4 3 7 8 25 2 1 7 9 4 6 25 3 8 10 2 1 10 25 Retorno 20 40 20 15 30

Seleccionar un conjunto de proyectos que maximice el retorno total, sujeto a las restricciones presupuestarias

Ej: formulaci on de programaci on entera


Variables de decisi on: 1 si se selecciona el proyecto j ; xj = 0 si no S olo los valores binarios de las xj tienen sentido Objetivo: z PE = max 20x1 + 40x2 + 20x3 + 15x4 + 30x5 Restricciones: 5x1 + 4x2 + 3x3 + 7x4 + 8x5 25 x1 + 7x2 + 9x3 + 4x4 + 6x5 25 8x1 + 10x2 + 2x3 + x4 + 10x5 25 xj {0, 1}, j = 1, . . . , 5 (presupuesto a no 1) (presupuesto a no 2) (presupuesto a no 3) (variables binarias)

Ej: relajaci on de programaci on lineal


Relajaci on de programaci on lineal: (PL) z PL = max 20x1 + 40x2 + 20x3 + 15x4 + 30x5 sujeto a 5x1 + 4x2 + 3x3 + 7x4 + 8x5 25 x1 + 7x2 + 9x3 + 4x4 + 6x5 25 8x1 + 10x2 + 2x3 + x4 + 10x5 25 0 xj 1 , j = 1, . . . , 5

Soluci on o ptima lineal: xPL = (0.5789, 1, 1, 1, 0.7368)T , Z PL = 108.68 , Soluci on lineal redondeada: xRPL = (1, 1, 1, 1, 1)T (no es factible para (PE)!)

Ej: soluci on optima entera


Formulaci on de programaci on entera: (PE) z PE = max 20x1 + 40x2 + 20x3 + 15x4 + 30x5 sujeto a 5x1 + 4x2 + 3x3 + 7x4 + 8x5 25 x1 + 7x2 + 9x3 + 4x4 + 6x5 25 8x1 + 10x2 + 2x3 + x4 + 10x5 25 xj {0, 1}, j = 1, . . . , 5

Soluci on o ptima entera: xPE = (1, 1, 1, 1, 0)T , z PE = 95 , Observaci on: z PE < z PL

Ej. 2: programa entero y relajaci on lineal

Consideremos la siguiente formulaci on de un programa entero y su relajaci on lineal: (PE) z PE = max x1 + 0.64x2 sujeto a 50x1 + 31x2 250 3x1 + 2x2 4 x1 , x2 0 y enteros (PL) z PL = max x1 + 0.64x2 sujeto a 50x1 + 31x2 250 3x1 + 2x2 4 x1 , x2 0

Resolveremos ambos gr acamente

Ej: resoluci on gr aca

xPL

x2

xPE
0 1 2 3 4 5 6 7

x1

Ej: Soluciones optimas: entera y lineal

Soluci on o ptima entera: xPE = (5, 0)T , z PE = 5 ,

Soluci on o ptima lineal:


T 950 PL = 5.0984 , xPL = ( 376 , ) = (1 . 9482 , 4 . 9223) , z 193 193 T

Redondeando xPL , obtenemos: xRPL = (2, 5) : no es factible para (PE)!

Formulaciones enteras reforzadas


Consideremos el programa entero y su relajaci on lineal: (PE) z PE = max cT x sujeto a Ax b x 0 y entero (PL) z PL = max cT x sujeto a Ax b x0

A menudo, se intenta reforzar la formulaci on (PE) con desigualdades v alidas ei1 x1 + + ein xn fi , i = 1, . . . , p, o Ex f ,

manteniendo el mismo conjunto factible entero:


n x Zn + : Ax b, Ex f = x Z+ : Ax b

Formulaciones enteras reforzadas


La regi on factible lineal ha de reducirse:
n : Ax b , Ex f x R x Rn + + : Ax b

Formulaci on reforzada (PE ) , con relajaci on (PL ) : (PE ) z PE = max cT x sujeto a Ax b Ex f x 0 y entero (PL ) z PL = max cT x sujeto a Ax b Ex f x0

Relaciones entre valores: z PE = z PE z PL z PL La formul. (PE ) es m as fuerte que (PE) si z PL < z PL

Formulaciones enteras completas


Una formulaci on entera (PE) es completa si z PE = z PL Si tenemos una formulaci on completa de un programa entero, lo podemos resolver como un programa lineal Existe siempre una formulaci on entera completa? S ! Aunque puede ser impracticable obtenerla, debido al gran n umero de desigualdades v alidas necesarias Nos conformamos con obtener formulaciones enteras reforzadas: proporcionan tiempos m as r apidos de resoluci on Obtendremos la formulaci on completa en el ejemplo

Ej: formulaci on (PE)

xPL

x2

xPE
0 1 2 3 4 5 6 7

x1

Ej. 2: formulaci on completa (PE )

I
5

x2

xPE = xPL
0 1 2 3 4 5 6 7

x1

Ej: formulaci on completa (PE )


(PE ) z PE = max x1 + 0.64x2 sujeto a 50x1 + 31x2 250 3x1 + 2x2 4 x1 + x2 2 x1 + x2 6 3x1 + 2x2 15 x1 , x2 0 y enteras (PL ) z PL = max x1 + 0.64x2 sujeto a 50x1 + 31x2 250 3x1 + 2x2 4 x1 + x2 2 x1 + x2 6 3x1 + 2x2 15 x1 , x2 0

Tenemos que: z PE = z PE = z PL < z PL Observaci on: La regi on factible lineal es la envoltura convexa de los puntos enteros factibles

Brecha de integralidad de una relajaci on

Consideremos la formulaci on entera (PE) z PE = max cT x : Ax b, x 0 y entero

y su relajaci on lineal (PL) z PL = max cT x : Ax b, x0

Def: La brecha de integralidad de la relajaci on (PL) es: z PL z PE 0

Calidad de soluciones y test de optimalidad


Supongamos que tenemos una soluci on entera factible x , con valor z > 0 , de un programa entero (P E ) con relajaci on (P L) . C omo podemos saber si es o ptima? Y estimar su grado de suboptimalidad? Utilizaremos la brecha de integralidad z PL z PE . Como 0 < z z PE z PL acotamos por arriba la brecha relativa de PE z PL z z z suboptimalidad de x : PE z z Test de optimalidad en programaci on entera: si z = z PL , entonces x es optima entera ( z = z PE ) Y si z < z PL ? Puede que x sea optima o no. Para saberlo, necesitamos una formulaci on m as fuerte

Criterio de parada
A menudo, el tiempo de soluci on de los programas enteros que aparecen en aplicaciones es demasiado grande En lugar de esperar a que se encuentre la soluci on optima, se utiliza un criterio de parada m as realista Criterio de parada: Parar cuando se encuentre una soluci on factible entera x con valor z > 0 y una
PL z z , relajaci on lineal con valor z PL que cumplan z donde 0 < < 1 es un par ametro de tolerancia dado; o bien parar cuando el n umero de iteraciones alcance un valor m aximo dado

En el men u de Opciones del Solver podemos cambiar ambos par ametros (Tolerancia, en porcentaje), y N umero m aximo de iteraciones

Calidad de soluciones (ejemplo)


Consideremos el modelo de selecci on de proyectos Soluci on factible: x = (1, 0, 1, 0, 1)T , con z = 70 M e Si no conoci eramos el valor o ptimo entero, z PE , c omo podr amos acotar por arriba, i.e. dar una cota superior en la z PE z brecha relativa de suboptimalidad ? PE z Resolvemos la relajaci on lineal, con valor z PL 108.68 108.68 70 z PL z La cota superior es: = 0, 55 z 70 Brecha relativa de suboptimalidad de x : 55%

Programas enteros mixtos (ejemplo)


Un programa entero mixto tiene algunas variables enteras y otras continuas (como en programaci on lineal) Ejemplo:
n

z PEM = max x0 + 2
j =1

xj

sujeto a
n

x0 + 2
j =1

xj n j = 1, . . . , n

xj {0, 1}, x0 0

(esta variable es continua)

Ej: Asignaci on de tripulaciones a vuelos


C omo asignan las compa n as a ereas tripulaciones a vuelos? Conjunto de vuelos: {1, . . . , m} . Ej: A 7:15am B 8:30am Conjunto de asignaciones factibles de tripulaciones: M1 , M2 , . . . , Mn {1, . . . , m} . Ej: A 7:15am B 8:30am, B 9:00amC 11:00am, C 12:00 A 2:30pm. Datos: matriz de incidencia A = (aij )mn , con 1 0 si la asignaci on j cubre el vuelo i si no

aij =

Coste de la asignaci on j : c j e

Problema: Encontrar un conjunto de asignaciones que cubra todos los vuelos a coste m nimo

Ej: Formulaci on de PE Binaria

Variables de decisi on: 1 si se selecciona la asignaci on j xj = 0 si no

Objetivo: z PE = min c1 x1 + + cn xn Restricciones: El vuelo i cubierto: ai1 x1 + + ain xn = 1, Variables binarias: xj {0, 1}, j = 1, . . . , n i = 1, . . . , m

Ej: Localizaci on o ptima


D onde localizar servicios de emergencia? Conjunto de posibles localizaciones: {1, . . . , n} Coste de la localizaci on j : c j e Distritos de la ciudad: {1, . . . , m} Distritos cubiertos desde j : Mj {1, . . . , m} Datos: matriz de incidencia A = (aij )mn , con 1 aij = 0 si desde la localizaci on j se cubre el distrito i si no

Problema: encontrar un conjunto de localizaciones que cubra todos los distritos a coste m nimo

Ej: Formulaci on de PE Binaria

Variables de decisi on: 1 si se selecciona la localizaci on j xj = 0 si no

Objetivo: z PE = min c1 x1 + + cn xn Restricciones: Distrito i cubierto: ai1 x1 + + ain xn 1, Variables binarias: xj {0, 1}, j = 1, . . . , n i = 1, . . . , m

Formulaci on de condiciones l ogicas


Actividades (pueden realizarse o no): {1, . . . , n} Variables de decisi on: x1 , x2 . . . , xn , con 1 0 si se realiza la actividad j si no

xj =

Ej: No se pueden realizar m as de dos actividades: x1 + x2 + + xn 2 Ej:Si se realiza la actividad 2, se debe realizar la 4: x2 x4 0

Você também pode gostar