1. formular el modelo matemático

Anuncio
Primer Congreso Mexicano
de Investigación de
Operaciones
Se celebrará en las instalaciones de la
Universidad de Guadalajara
del 24 al 26 de Octubre del 2012.
Fecha límite de registro de participantes y pago al encuentro
14 de agosto de 2012
Fecha límite de envío de resúmenes:
01 de junio de 2012
Notificación de aceptación:
15 de junio del 2012
www.smio.org.mx
congresosmio@cucea.udg.mx
Definición del problema
Conceptualización. ¿Cuál es el problema?, ¿Cuáles son las decisiones que se
deben tomar? ó ¿Cuáles son las preguntas que se quieran resolver?
Justificación. ¿Por qué es importante resolver el problema?
Delimitación o alcance. ¿Hasta dónde se quiere llegar con la solución del problema?
¿Cuáles son las características del problema a considerar? ¿Cuál es el nivel de detalle al
que se quiere llegar?
Objetivos. ¿Qué se pretende con la solución?
Información. ¿Cuál es la información necesaria y la disponible para la solución del
problema?
Enviar a grupoungido@gmail.com
4
¿Qué es LINGO?
Software que permite plantear y resolver modelos de
Optimización
Para descargarlo vaya a:
http://www.lindo.com/index.php?option=com_content&view=articl
e&id=35&Itemid=20
Otros Programas de Optimización…
ILOG Cplex(IBM)
GAMS (GAMS)
MPL (Maximal Software)
Express (Dash Optimization).
Solver de Excel. (Microsoft)
…Antes de empezar
Los componentes de un modelo de optimización son:
Variables, Restricciones, Función Objetivo.
Los algoritmos de solución dependen del tipo de modelo.
Un modelo lineal se puede resolver con el Método Simplex
Modelo en forma implícita
Lingo permite ingresar un modelo en su forma explícita,
por ejemplo:
Es poco práctica esta
forma de escribir el
modelo, cuando se
tienen modelos grandes
Sintaxis de Lingo
El compilador de LINGO no distingue entre
mayúsculas y minúsculas.
Todas las sentencias deben terminar en un punto y coma.
Para declarar la función objetivo debemos colocar las
palabras reservadas MAX o MIN, las cuales se resaltan en
azul, seguidas del signo =
Sintaxis de Lingo
Los comentarios deben comenzar con un signo !, los
cuales son resaltados en verde, y terminados con punto y
coma.
Cuando se le dan nombres a las variables en LINGO, todos
los nombres deben comenzar con un carácter (A-Z). Los
otros pueden ser alfabéticos, numéricos o el símbolo _. Los
nombres pueden tener una longitud de 32 caracteres.
Por defecto LINGO asume todas las variables >= 0, de lo
contrario hay que especificar.
Sintaxis de Lingo
Tipos de variables:
@GIN(‘NombreVariable’), para declarar variables enteras
@BIN(‘NombreVariable’), para declarar variables binarias
@FREE(‘NombreVariable’), para declarar variables que
pueden tomar cualquier valor
Pasos para resolver un
problema de optimización,
utilizando lingo
1. FORMULAR EL MODELO MATEMÁTICO de forma
Algebraica (para fines prácticos).
2. PROGRAMAR EL MODELO en el lenguaje de LINGO
3. RESOLVER EL MODELO
4. ANALIZAR LOS RESULTADOS
Ejemplo
Don Jorge, el jefe de logística de CEMENTERA SAS, nos ha
llamado y quiere que le ayudemos con un problema que tiene
en la empresa:
Veamos que dice Don Jorge:
Ejemplo
En Cementera SAS tenemos 2 plantas de producción de
cemento (Barranquilla y Medellín), las cuales distribuyen
cemento a granel a 3 centros de distribución (Cartagena,
Sincelejo y Caucasia).
En la empresa queremos optimizar el transporte del
cemento.
Ejemplo
En Cementera SAS tenemos 2 plantas de producción de
cemento (Barranquilla y Medellín), las cuales distribuyen
cemento a granel a 3 centros de distribución (Cartagena,
Sincelejo y Caucasia).
En la empresa queremos optimizar el transporte del
cemento.
¿Qué le deberíamos preguntar a Don Jorge?
Ejemplo
¿Cuál es la capacidad de
producción de cada
planta?
¿Cuál es el costo de llevar el
producto de cada una de las
plantas a cada uno de los centros
de distribución?
¿Cuál es la demanda en cada
Centro de Distribución?
Ejemplo
DEFINICIÓN EXPLÍCITA DEL MODELO
Se recomienda definir primero el modelo de forma
explícita, luego definirlo de forma implícita.
DEFINICIÓN IMPLÍCITA DEL MODELO
Programación en LINGO
1. Definir los conjuntos (los subíndices utilizados en el
modelo matemático).
2. Ingresar los datos (se pueden leer de excel, de una
base de datos o ingresar directamente en LINGO).
3. Escribir el modelo matemático.
Programación en LINGO
1. Definir los conjuntos (los subíndices utilizados en el
modelo matemático).
2. Ingresar los datos (se pueden leer de excel, de una
base de datos o ingresar directamente en LINGO).
3. Escribir el modelo matemático.
1. Definir los conjuntos
Antes veamos los siguientes conceptos
CONJUNTO, es una colección de elementos.
ATRIBUTO, es una característica de los elementos de un
conjunto.
1. Definir los conjuntos
1. Definir los conjuntos
En Lingo:
2. Ingresar Datos (Directamente
en Lingo)
DATA:
PLANTA= MEDELLIN BARRANQUILLA;
CD= CARTAGENA SINCELEJO CAUCASIA;
CAP= 2000 500;
DEM= 700 300 500;
DIST= 637
471 285
136 232 416;
FLETE= 100;
ENDDATA
En Lingo:
2. Ingresar Datos (leerlos de
Excel)
DATA:
PLANTA,CD,CAP,DEM,DIST,FLETE=@OLE();
ENDDATA
En viejas versiones de Lingo se debe colocar la ruta del
archivo: @OLE(‘ruta’)
@OLE() toma el archivo de Excel que esté abierto si no
se especifica la ruta.
OLE: Object Linking and Embedding.
2. Ingresar Datos (leerlos de
Excel)
En Excel:
Se debe dar el nombre a los rangos que representan los
conjuntos y los parámetros.
Veamos…
2. Ingresar Datos (leerlos de
Excel)
2. Ingresar Datos (leerlos de
Excel)
2. Ingresar Datos (leerlos de
Excel)
2. Ingresar Datos (leerlos de
Excel)
2. Ingresar Datos (leerlos de
Excel)
2. Ingresar Datos (leerlos de
Excel)
A cada rango se le debe dar el nombre del conjunto o
parámetro que represente.
Ojo: Hay varios rangos que me pueden representar el conjunto
PLANTA, por ejemplo el rango A3:A4 y A14:A15. Solo se le debe
dar el nombre a uno.
Cómo se le da el nombre a un rango en Excel?
Seleccionar el rango/ Click derecho / Asignar nombre a un rango
3. Escribir el modelo matemático
Algunas funciones de Lingo para escribir un modelo
matemático
Función( NombreConjunto [ (ÍndiceConjunto) [ | Condición]] :
Expresión);
3. Escribir el modelo matemático
¿Qué pasaría si el plan de transporte no se hiciera
para un solo periodo sino para varios periodos?
¿Cuál sería el nuevo modelo?
¿Qué datos necesitaría?
EJERCICIO PROPUESTO:
Asignación de monitores para la vigilancia de los parciales de la Escuela de
Matemáticas de la Universidad Nacional de Colombia, sede Medellín
(UNMEDMAT).
“Actualmente, la UNMEDMAT debe programar los exámenes de sus
asignaturas en períodos extra clase. Cada examen necesita una cantidad
determinada de vigilantes (monitores), dependiendo de la cantidad de
estudiantes que se encuentren cursando la asignatura y de los salones que
estén disponibles para la presentación de los exámenes. La programación
(asignación monitor-examen) se realiza buscando un criterio de equidad,
de tal forma que todos los monitores vigilen una cantidad similar de
exámenes”.
¿Qué datos se necesitan?
¿Cuál podría ser un modelo matemático que representa la situación?
Descargar