Tema 3 Programación Entera

Anuncio
OPTIMIZACIÓN Y SIMULACIÓN
PARA LA EMPRESA
Tema 3
Programación Entera
ORGANIZACIÓN DEL TEMA
•
Sesiones:
•
Introducción y formulación
•
Variables binarias
•
Métodos de solución
OPTIMIZACIÓN DE MODELOS
DISCRETOS
•
Los modelos discretos son una extensión de los modelos lineales, donde
algunas variables toman valores enteros
•
Habitualmente estas variables toman los valores 0-1: variables
binarias
•
•
Estas variables se usan para representar condiciones lógicas
Estos modelos permiten representar mejor situaciones complejas
•
Economías de escala
•
Discontinuidades en el problema
•
Incluso aproximaciones de soluciones globales
OPTIMIZACIÓN DE MODELOS
DISCRETOS
•
En cambio, el cálculo de soluciones es mucho más costoso
•
Ya no podemos usar las propiedades “suaves” de las
funciones para obtener información útil cerca de la
solución
•
•
Ahora es necesario explorar muchos más candidatos
a óptimo
Algunos problemas con decenas de variables son casi
imposibles de resolver en un tiempo razonable
MODELOS DISCRETOS:
FORMULACIÓN
•
La formulación es similar a la de los modelos lineales:
•
Si I={1,…, n}, el problema es lineal entero puro
•
Si I≠{1,…, n}, el problema es lineal entero mixto
•
Si xi ∈ {0,1} ∀i ∈ I, el problema es binario o 0-1
MODELOS DISCRETOS:
FORMULACIÓN
•
En general, un modelo discreto se usa por distintas razones:
•
Directas: las variables de interés deben tomar valores enteros
•
Codificación: las variables enteras (usualmente 0-1) se usan
para representar el cumplimiento (o no) de algunas
condiciones
•
Transformación: las variables enteras son útiles para representar
ciertas condiciones (implicaciones, condiciones lógicas, etc.)
SELECCIÓN DE ALTERNATIVAS
•
Primer caso: selección entre alternativas
•
Usaremos variables binarias yi para escoger subconjuntos entre una serie de
alternativas
•
•
•
Si las variables yi toman el valor1, la alternativa se escoge, en caso contrario no
se escoge (o no se realiza)
Estas variables se multiplican por sus correspondientes costes, uso de recursos, etc.
•
Si la variable toman el valor 1, asumimos el correspondiente coste
•
Si toma el valor 0, no incurrimos en el coste
Las variables se pueden usar para contar el número de proyectos seleccionados,
etc.
•
Sumando los valores de yi
EJEMPLO 1: SELECCIÓN DE
PROYECTOS
•
Descripción:
•
Una compañía quiere evaluar 5 proyectos a ejecutar en próximos 3 años
•
Estos proyectos requieren de inversiones durante los próximos 3 años
•
Si se ejecuta un proyecto, se deben realizar todas las inversiones
anuales asociadas al mismo
•
Hay un presupuesto total, que no se debe exceder
•
¿Qué proyectos seleccionar para aumentar lo más posible los beneficios?
EJEMPLO 1: SELECCIÓN DE
PROYECTOS
•
Datos:
•
Cada año, se dispone de 25 millones de euros para realizar inversiones
•
El beneficio esperado (en mill de euros) para cada proyecto, y las cantidades
a invertir cada año para ejecutar los proyectos son:
Inversión
Proyecto
Año 1
Año 2
Año 3
Beneficio
1
5
1
8
20
2
4
7
10
40
3
3
9
2
20
4
7
4
1
15
5
8
6
10
30
EJEMPLO 1: SELECCIÓN DE
PROYECTOS
•
Modelo:
•
Variables de decisión
•
•
Función objetivo
•
•
Dónde invertir el presupuesto
Maximizar el beneficio total
Restricciones
•
No exceder el presupuesto anual
EJEMPLO 1: SELECCIÓN DE
PROYECTOS
•
Modelo:
•
Variables de decisión
•
Una variable binaria xi asociada a cada proyecto
xi =
•
⇢
1
0
si se selecciona el proyecto i,
si no se lleva a cabo el proyecto i.
i = 1, . . . , 5
Función objetivo
•
Maximizar el beneficio esperado
max 20x1 + 40x2 + 20x3 + 15x4 + 30x5
x
EJEMPLO 1: SELECCIÓN DE
PROYECTOS
•
Restricciones:
•
Presupuestos anuales:
5x1 + 4x2 + 3x3 + 7x4 + 8x5  25
1x1 + 7x2 + 9x3 + 4x4 + 6x5  25
8x1 + 10x2 + 2x3 + 1x4 + 10x5  25
•
Definición de variables binarias:
xi 2 {0, 1},
•
(presupuesto año 1)
(presupuesto año 2)
(presupuesto año 3)
i = 1, . . . , 5
Cálculo de solución en Excel
PROBLEMAS DE ASIGNACIÓN
•
Segundo caso: problemas de asignación
• Se trata de encontrar asignaciones eficientes de algunos recursos a un conjunto
de tareas
• Ejemplos:
• Planificación de horarios, de tareas a máquinas, rotas de trenes o aviones,
asignación de comerciales a regiones, etc.
• Problema binario 0-1
• El objetivo es generalmente minimizar costes, tiempo de viaje, o maximizar
eficiencia
• Aparece como submodelo de modelos más complejos
• Las variables binarias yij toman valor 1 si recurso i se asigna a tarea j
• El número de tareas o recursos a asignar se controla sumando yij
EJEMPLO 2:
PROBLEMA DE ASIGNACIÓN
•
Descripción:
•
John es el director un bufete de abogados y está interesado en asignar de la forma
más eficiente posible sus abogados a los casos (clientes) en este momento
•
Actualmente, el bufete tiene 4 casos (clientes) distintos
•
Para atender esos casos, cuenta con 4 abogados: Ann, Brian, Casey y Don
•
•
Cada uno de ellos puede ser asignado a un único caso
•
Un único abogado debe llevar cada caso
La asignación se realizará en función de alguna medida de eficiencia
EJEMPLO 2:
PROBLEMA DE ASIGNACIÓN
•
Datos:
•
John ha recogido datos sobre la eficiencia de cada abogado y tipo de caso (en una
escala de 1 a 9):
Medida de eficiencia
Abogado
Divorcios (1)
Fusiones (2)
Robos (3)
Donaciones (4)
Ann (1)
6
2
8
5
Brian (2)
9
3
5
8
Casey (3)
4
8
3
4
Don (4)
6
7
6
4
•
Estos datos son estimaciones basadas en el éxito en casos pasados
•
Y tienen en cuenta la especialización/experiencia de cada abogado
EJEMPLO 2:
PROBLEMA DE ASIGNACIÓN
•
Modelo:
•
Variables de decisión
•
Una variable binaria xij para cada posible asignación
xij =
•
⇢
1
0
si se asigna al abogado i el caso j,
si no se asigna.
Función objetivo
•
Maximizar la calidad de la asignación
maximize
6x11 + 2x12 + 8x13 + 5x14 + 9x21 + 3x22 + 5x33 + 8x44
+ 4x31 + 8x32 + 3x33 + 4x34 + 6x41 + 7x42 + 6x43 + 4x44
EJEMPLO 2:
PROBLEMA DE ASIGNACIÓN
•
Restricciones
•
Cada caso debe tener un (único) abogado asignado:
4
X
xij = 1,
j = 1, . . . , 4
i=1
•
Cada abogado debe estar asignado a un (único) caso:
4
X
xij = 1,
i = 1, . . . , 4
j=1
•
Condición de variables binarias:
xij 2 {0, 1},
i = 1, . . . , 4, j = 1, . . . , 4
CONDICIONES LÓGICAS
•
Tercer caso: condiciones lógicas
•
Variables binarias que se pueden usar para forzar asociaciones entre
variables
•
Si una actividad se lleva a cabo, otras tareas se deben llevar a cabo (o no)
•
Una compañía debe decidir qué proyectos abordar en próximos años:
•
Algunos proyectos requieren de la ejecución de otros previamente
•
Algunos proyectos pueden no ser compatibles
•
Algunos proyectos no pueden empezarse hasta que no pase un
tiempo tras la finalización de otros
CONDICIONES LÓGICAS
•
Aparecen cuando el valor de una variable binaria impone condiciones sobre otras
•
La condición y = 0
•
•
•
x = 0 es equivalente a x ≤ 1 - y
Si el proyecto y se lleva a cabo, el proyecto x no se puede llevar a cabo
La condición y = 1
•
x = 1 es equivalente a x ≥ 1 - y
Si el proyecto y no se lleva a cabo, el proyecto x se debe llevar a cabo
La condición y = 1
•
•
Si el proyecto y no se lleva a cabo, el proyecto x tampoco
La condición y = 0
•
x = 0 es equivalente a x ≤ y
x = 1 es equivalente a x ≥ y
Si el proyecto y se lleva a cabo, el proyecto x también
EJEMPLO 3: PRESUPUESTO
NASA
•
Descripción:
•
La NASA debe decidir qué proyectos espaciales ejecutar en próximos años
•
Periodo 2015-2039
•
Cada proyecto tiene un beneficio o interés científico determinado
•
Cada proyecto requiere de una inversión durante periodos específicos
•
Los proyectos presentan dependencias complejas entre sí
•
Algunos no se pueden llevar a cabo hasta que otros se hayan ejecutado
•
Algunos proyectos son incompatibles entre sí: solo uno se puede llevar a
cabo
EJEMPLO 3: PRESUPUESTO
NASA
•
Datos:
Inversión
Proyecto
2015/19
2020/24
2025/29
2030/34
2035/39
Beneficio
esperado
no con
depende
de
50
5
3
70
4
3
1 Satélite de comunicaciones
6
200
2 Enlace microondas orbital
2
3
3
3 Aterrizaje en Io
3
5
20
4 Misión Urano 2042
10
5 Misión Urano 2027
5
6 Aterrizaje en Mercurio
7 Misión a Saturno
8
1
1
5
4
10 Grandes estructuras orbitales
5
8
11 Imágenes en color AR
12 Tecnología médica espacial
4
8
8 Imágenes infrarrojas AR
9 SETI desde la Tierra
8
4
2
5
20
3
5
3
10
11
200
14
150
7
18
7
8
13 Plataforma en órbita polar
1
4
1
1
300
14 SETI satélites geosíncronos
4
5
3
3
185
12
14
14
14
Presupuestos
10
8
9
2
EJEMPLO 3: PRESUPUESTO
NASA
•
Modelo:
•
Variables de decisión
•
Una variable binaria xi para cada proyecto
xi =
•
(
1
0
si la misión i se aprueba,
si se rechaza.
Función objetivo
•
Maximizar el beneficio (científico) esperado de los proyectos
seleccionados
max 200x1 + 3x2 + 20x3 + 50x4 + 70x5 + 20x6 + 5x7 + 10x8
x
+ 200x9 + 150x10 + 18x11 + 8x12 + 300x13 + 185x14
EJEMPLO 3: PRESUPUESTO
NASA
•
Modelo:
•
Restricciones:
•
Límites presupuestarios en cada periodo de 5 años
6x1 + 2x2 + 3x3 + 1x7 + 4x9 + 5x12  10
3x2 + 5x3 + 5x5 + 7x8 + 5x9 + 8x10 + 7x12 + x13 + 4x14  12
8x5 + x6 + 4x10 + 2x11 + 4x13 + 5x14  14
8x6 + 5x8 + 7x11 + 1x13 + 3x14  14
10x4 + 4x6 + 1x13 + 3x14  14
•
Condición de variables binarias
xi 2 {0, 1},
i = 1, . . . , 14
EJEMPLO 3: PRESUPUESTO
NASA
•
Modelo:
•
Restricciones:
•
Incompatibilidades:
•
Los proyectos Misión Urano 2042 (4) y Misión Urano 2027 (5) son
incompatibles
x4 + x5  1
•
Los proyectos 8 y 11, o 9 y 14, también son incompatibles
x8 + x11  1
x9 + x14  1
EJEMPLO 3: PRESUPUESTO
NASA
•
Modelo:
•
Restricciones:
•
Dependencias:
•
Si el proyecto Aterrizaje en Io (3) no se lleva a cabo, los proyectos 4, 5, 6 y 7 tampoco
pueden realizarse:
x4  x3 ,
•
x5  x3 ,
x6  x3 ,
x7  x3
O alternativamente,
x4 + x5 + x6 + x7  4x3
•
Para seleccionar el proyecto 11, el proyecto 2 debe haber sido completado previamente
x11  x2
VALORES DISCONTINUOS
•
Cuarto caso: valores discontinuos
•
Las variables binarias se pueden usar para representar discontinuidades en
funciones o variables
•
Costes fijos:
•
Cuando ejecutar una determinada tarea conlleva un gasto fijo,
independientemente de su nivel
•
•
Comisiones mínimas al cambiar de moneda (de euros a dólares p.e.), o
al sacar dinero en un cajero del extranjero, o al comprar acciones en
bolsa, etc.
Variables semicontinuas:
•
Si una tarea se lleva a cabo, se debe realizar a un nivel mínimo
•
Por ejemplo, una variable vale 0 o bien 20, 21,..., 100
VALORES DISCONTINUOS
•
Modelización
•
En estos casos definimos tanto variables continuas como discretas
•
Sea xi una variable continua con coste fijo, o semicontinua
•
Sea yi una variable binaria asociada, que toma el valor 1 cuando xi es distinta de 0 y el
valor 0 en otro caso
•
Una función con coste fijo K y coste variable d se representará como
•
Una variable semicontinua xi ∈ {0,[a,b]} se representará como
VALORES DISCONTINUOS
•
Representación de discontinuidades con variables binarias
•
Necesitamos asegurar que las variables xi e yi estén relacionadas
•
Si xi es 0, yi debe ser 0, y si xi es positivo entonces yi debe valer 1
•
En el caso de variables semicontinuas esto es automático
•
Para costes fijos, necesitamos restricciones adicionales
•
Las constantes C y c se deben escoger como cotas inferiores y
superiores para xi
EJEMPLO 4: PROBLEMA DE
PRODUCCIÓN
•
Descripción:
•
La compañía X produce ketchup en 5 plantas
•
Estas plantas tienen distintos costes
•
•
•
•
Costes de operación fijos y variables
Y capacidades de producción
El producto se transporta a 4 grandes centros de distribución
•
Con contratos que definen las cantidades anuales a proporcionar
•
Con diferentes costes de producción y de distribución
El objetivo es determinar la producción óptima y el plan de distribución
•
Minimizando el coste total
EJEMPLO 4: PROBLEMA DE
PRODUCCIÓN
•
Datos:
•
•
Capacidades de plantas y costes fijos:
Planta
P1
P2
P3
P4
P5
Capacidad
300
200
300
200
400
Coste fijo
35000
45000
40000
42000
40000
Costes de producción y transporte/Demandas:
A:
Costes
De:
C1
C2
C3
C4
P1
1180
1160
1190
1200
P2
810
800
850
760
P3
850
830
890
840
P4
770
750
810
780
P5
800
770
820
830
Demanda
C1
C2
C3
C4
200
300
200
250
EJEMPLO 4: PROBLEMA DE
PRODUCCIÓN
•
Modelo:
•
Variables:
xij = toneladas de ketchup producidas en la planta j y entregadas al cliente i
(
1 si la planta j está produciendo
yj =
i = 1, . . . , 4, j = 1, . . . , 5
0 si no lo está
•
Función objetivo:
EJEMPLO 4: PROBLEMA DE
PRODUCCIÓN
•
Modelo
•
Restricciones
•
Demanda:
•
Capacidad de las plantas y relaciones entre x e y :
•
No negatividad y definición de variables binarias:
MODELOS DISCRETOS:
SOLUCIÓN
•
Herramienta básica:
•
•
Resolver problemas relajados (ignorando condición de variables
enteras): PLs
Estrategias naif:
•
Redondeo
•
Redondear los valores que han de ser enteros en la solución
•
Muchas alternativas de redondeo (cantidad exponencial)
•
No hay garantías de optimalidad
•
Peor aún: no hay garantías de factibilidad
MODELOS DISCRETOS:
SOLUCIÓN
•
Algoritmos eficientes:
•
Cutting planes (Planos de corte)
•
No se redondea directamente el vértice solución del PL relajado
•
Se introducen restricciones que fuerzan a la solución entera a ser un
vértice del problema modificado
•
En el proceso se eliminan puntos que no pueden ser soluciones
•
Existen técnicas sofisticadas basadas en las propiedades de la solución
•
•
Gomory cuts
O en propiedades de las restricciones del problema
•
Las aproximaciones convexas contienen las soluciones enteras
MODELOS DISCRETOS:
SOLUCIÓN
•
Algoritmos eficientes:
•
Branch and bound
•
•
Dividir el problema introduciendo condiciones simples sobre los valores de las variables
•
Esto fuerza a las soluciones de las distintas partes a ser enteras
•
Aparte, esto permite enumerar implícitamente todas las posibles soluciones
enteras
•
Para ganar eficiencia, se calculan cotas sobre la función objetivo para eliminar
subproblemas donde no puede estar la solución
•
Dividir el problema en subproblemas más pequeños: “branching” o ramificar
•
Descartar muchos de ellos: “bounding” o acotar
Branch and cut
•
Una combinación eficiente de ambos métodos (branch and bound and cutting planes)
Descargar