Está en la página 1de 35

INVESTIGACIÓN DE

OPERACIONES II

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

• Dónde invertir el presupuesto

• Función objetivo

• 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


1
0

• Función objetivo

• Maximizar el beneficio esperado


EJEMPLO 1: SELECCIÓN DE
PROYECTOS
• Restricciones:

• Presupuestos anuales:

25

• Definición de variables binarias:

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


1
0

• Función objetivo

• Maximizar la calidad de la asignación


maximize
EJEMPLO 2:
PROBLEMA DE ASIGNACIÓN
• Restricciones

• Cada caso debe tener un (único) abogado asignado:

• Cada abogado debe estar asignado a un (único) caso:

• Condición de variables binarias:


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 ≤ y
• Si el proyecto y no se lleva a cabo, el proyecto x tampoco
• La condición y = 0 → 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 → 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 ≥ 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

Beneficio depende
Proyecto 2015/19 2020/24 2025/29 2030/34 2035/39 no con
esperado de

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 50 5 3
5 Misión Urano 2027 5 8 70 4 3
6 Aterrizaje en Mercurio 1 8 4 20 3
7 Misión a Saturno 1 8 5 3
8 Imágenes infrarrojas AR 5 10 11
9 SETI desde la Tierra 4 5 200 14
10 Grandes estructuras orbitales 8 4 150
11 Imágenes en color AR 2 7 18 8 2
12 Tecnología médica espacial 5 7 8
13 Plataforma en órbita polar 1 4 1 1 300
14 SETI satélites geosíncronos 4 5 3 3 185 9

Presupuestos 10 12 14 14 14
EJEMPLO 3: PRESUPUESTO
NASA
• Modelo:

• Variables de decisión

• Una variable binaria xi para cada proyecto


1
0

• Función objetivo

• Maximizar el beneficio (científico) esperado de los proyectos


seleccionados
max
EJEMPLO 3: PRESUPUESTO
NASA
• Modelo:

• Restricciones:

• Límites presupuestarios en cada periodo de 5 años

• Condición de variables binarias


EJEMPLO 3: PRESUPUESTO
NASA
• Modelo:

• Restricciones:

• Incompatibilidades:

• Los proyectos Misión Urano 2042 (4) y Misión Urano 2027 (5) son
incompatibles

• Los proyectos 8 y 11, o 9 y 14, también son incompatibles


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:

• O alternativamente,

• Para seleccionar el proyecto 11, el proyecto 2 debe haber sido completado previamente
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
C1 C2 C3 C4
P1 1180 1160 1190 1200
C1 C2 C3 C4
P2 810 800 850 760
Demanda 200 300 200 250
De: P3 850 830 890 840
P4 770 750 810 780
P5 800 770 820 830
EJEMPLO 4: PROBLEMA DE
PRODUCCIÓN
• Modelo:
• Variables:

• 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)

También podría gustarte