Introducción
MODELACIÓN Y RESOLUCIÓN DE MODELOS DE PROGRAMACIÓN
MATEMÁTICA USANDO CPLEX Y OPL STUDIO
DESARROLLO DE UNA APLICACIÓN DE OPTIMIZACIÓN
MODELACIÓN
PROGRAMACIÓN
MODELACIÓN - RESOLUCIÓN
LENGUAJES DE SOLVERS
MODELACIÓN
GAMS BPMPD
AMPL MINOS
OPL CPLEX
OTROS OTROS
Lenguajes de programación Programas que implementan
para representar algoritmos de optimización lineal,
problemas de optimización no lineal (Simplex, punto interior,
B&B, etc)
OPL Studio - ILOG
• OPL Optimization Programming Language
→ Lenguaje para representar problemas de optimización
→ Facilidades para la organización de los datos
→ Soporta programación lineal y entera, constraint programming, y
constraint-based scheduling, modelos quadraticos.
→ Conección con Bases de Datos y Excel.
→ OPLScript para resolución iterativa, optimización hybrida y
programación de heurísticas.
• Interfaz Gráfica
→ Amigable (ej: editor con keywords de colores)
→ Visualización de Datos y Solución
→ Munus/botones para controlar la optimización
→ Online help
OPL Component Libraries
• API's para conectar modelos OPL y OPL scripts
→ C++
→ Microsoft COM
• Visual Basic
• Visual Basic for Applications (Excel, Access, etc.)
• Microsoft .NET
– C#
– VB.NET
– Managed C++
→ Java
→ Web
• ASP, JSP
• Links con ILOG CPLEX, Solver y/o Scheduler
Usando OPL para CPLEX
• Un modelo es un abstracción del problema independiente de los
datos
• OPL permite escribir la representación matemática de un
modelo independiente de los datos
PROYECTO
MODELO DATOS
INSTANCIA DEL
PROBLEMA
PROGRAMACIÓN LINEAL
t
min c x Función Objetivo
s.t Ax = b Restricciones
Cotas Inferiores l≤ x≤u Cotas Superiores
Variables
Aplicación Simple LP - Production
Ejemplo Modelo: Fábrica que produce un conjunto de productos
• Satisfacción de demanda por producto
• Solo costos variables por producto
• Utilización de recursos por productos
• Capacidad máxima por recurso
• Posibilidad de importar productos a costo unitario por producto
Aplicación Simple LP
Conjuntos : Función Objetivo : Minimizar Costos
p: Productos min ∑ ic p ix p + ∑ oc p ox p
r: Recursos p p
Parametros
Restricciones
u pr : utilización de producto p por recurso r
1. Capacidad de producción
cr : capacidad de recurso r
∑u pr ix p ≤ cr ∀r
dp : demanda por producto p p
ic p : costo de fabricación propia de producto p 2. Satisfacción de Demanda
oc p : costo de importación de producto p ix p + ox p ≥ d p ∀p
2. Naturaleza de las Variables
Variables ix p , ox p ≥ 0 ∀p
ix p : fabricación propia de producto p
ox p : importación de producto p
Modelo en OPL
production.prj =[production.mod,production.dat]
Conjuntos :
p: Productos
r: Recursos
Parametros
u pr : utilización de producto p por recurso r
cr : capacidad de recurso r
dp : demanda por producto p
ic p : costo de fabricación propia de producto p
oc p : costo de importación de producto p
Modelo en OPL
Variables
ix p : fabricación propia de producto p
ox p : importación de producto p
Función Objetivo : Minimizar Costos
min ∑ ic p ix p + ∑ oc p ox p
p p
Modelo en OPL
Restricciones
1. Capacidad de producción
∑u
p
pr ix p ≤ c p ∀r
2. Satisfacción de Demanda
ix p + ox p ≤ c p ∀p
Datos en production.dat
2. Naturaleza de las Variables
ix p , ox p ≥ 0 ∀p
OPL
Trabajo con Software
xsteel.mod