Alumnos : Cardoza Rodríguez, Jorge Alberto cr05074 GT01 - GL01 Henríquez Henríquez, Edwin Esaú hh05045 GT01 - GL02 Ramos Urquilla, Denis francisco ru05010 GT01 - GL02 Docente : Universidad de El Salvador Facultad de Ingeniería y Arquitectura Escuela de Ingeniería Industrial Métodos de Optimización Ciclo I - 2009 Tarea Final “Modelos de Transporte, Método de Russell, aplicaciones e implementación del software MPL”
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Alumnos :
Cardoza Rodríguez, Jorge Alberto cr05074 GT01 - GL01
Ramos Urquilla, Denis francisco ru05010 GT01 - GL02
Docente :
Ing. Andrés Omar Aguilar
Universidad de El SalvadorFacultad de Ingeniería y ArquitecturaEscuela de Ingeniería IndustrialMétodos de Optimización Ciclo I - 2009
Tarea Final“Modelos de Transporte, Método de
Russell, aplicaciones e implementación del software MPL”
Ciudad Universitaria, Junio 2009
I. Índice.
Contenido
I. Índice.....................................................................................................................................2
II. Introducción........................................................................................................................3
III. Objetivos..............................................................................................................................4
A. General.................................................................................................................................4
B. Específicos...........................................................................................................................4
IV. Marco Teórico.....................................................................................................................5
A. Modelos de Transporte, Método de Aproximación de Russell...........................5
B. Aplicación de Modelos de Transporte en la Herramienta de Software MPL for Windows (v4.2 student).........................................................................................12
1. Manual de Usuario (Uso de MPL)..........................................................................12
V. Conclusiones.....................................................................................................................62
VI. Recomendaciones...........................................................................................................63
VII. Bibliografía.........................................................................................................................64
II. Introducción.
En el siguiente documento como grupo de trabajo definiremos de
forma explicita y clara un método de solución de modelos de transporte
desde un enfoque diferente pero preciso el cual será por medio de la
aproximación del método de Russel para la solución de problemas de
Transporte. Así también tras la necesidad del dinamismo y efectividad en
la solución de problemas de optimización (para nuestro caso modelos de
transporte) también implementaremos, el uso de un programa
denominado MPL, para el cual hemos diseñado un manual y que el usuario
(en la búsqueda de soluciones de problemas de optimización que para
nuestro caso son los problemas de modelos de transporte) no tenga
ningún problema a la hora de implementarlo ya que implementaremos un
lenguaje sencillo para el uso de principiantes y avanzados en dicha rama.
Se programará en MPL de manera que facilite al empresario la solución de
sus problemas. Se resolverán una serie de problemas de Transporte con el
Método de aproximación de Russell y su respectiva implementación en
MPL (con algunos de sus Solvers como lo es CPLEX, Gurobi, CoinMP,
Conopt, entre otros).
III.Objetivos.
A. General.
Implementar el Método de aproximación de Russell para
resolver un problema de transporte así como también
aplicar el lenguaje MPL para el modelado y búsqueda de
dichas soluciones.
B. Específicos
Resolver problemas de una manera mucho más fácil y
eficiente con MPL conociendo su estructura base en la
programación del mismo.
Describir y ejemplificar El Método de aproximación de
Russell para problemas de transporte.
Representar las actividades, comandos y operaciones
principales de MPL en un manual de Usuario.
IV. Marco Teórico.
A. Modelos de Transporte, Método de Aproximación de Russell.
MODELOS DE TRANSPORTE
Específicamente, el problema general de transporte se interesa en la distribución de cualquier artículo desde cualquier grupo de centros de suministro, llamados FUENTES, hacia cualquier grupo de centros receptores, llamados DESTINOS, de modo que se minimicen los costos totales de distribución. Así entonces, en general, la fuente i (i=1,2,.....,m) tiene un suministro de Si unidades para distribuir a los destinos, y el destino j (j = 1,2,......,n) tiene una demanda de dj unidades para ser recibidas de las fuentes i al destino j es directamente proporcional al número distribuido, donde Cij denota el costo por unidad distribuida. El planteamiento de programación lineal de esta problema queda como sigue: m n
Minimizar Z = CijXij i1
j1 Sujeta a n Xij Si , para i = 1,2,...,m j 1
m Xij dj j 1
, para j = 1,2,....,n Xij 0 , para todo i y j
MPL ha sido específicamente diseñado para enseñar modelado de optimización como
está siendo aplicado actualmente en el mundo. Incluye un curso completo, con las
características de MPL, y todas las herramientas necesarias para la enseñanza de Modelado
de Optimización directamente desde internet. Esta incluye una versión estudiante (300
restricciones y variables) de MPL para Windows con el solver CPLEX y la Librería de
Componentes OptiMax 2000.
El Sistema de Modelado de MPL tiene un alto y avanzado ambiente integrado de
desarrollo de modelos, el cual permite al usuario formular y resolver modelos rápidamente.
Dentro de ese sistema está el lenguaje de Modelado de MPL el cual tiene las características
completas del lenguaje algebraico para la formulación de modelos de optimización. Creemos
sinceramente que MPL tiene algunas características únicas que lo hacen la elección ideal
para la enseñanza de modelado de optimización, tal como el uso fácil de la interface gráfica
de usuario, una correcta sintaxis fácil de aprender, y capacidades poderosas para la
administración de datos.
Hoy en día los Solvers avanzados comerciales, tales como CPLEX, pueden ser vistos
como una caja negra donde el usuario puede enviar modelos en gran escala, con cientos de
miles de variables, y estar razonablemente seguros que el paquete producirá una solución,
sin interacción especial alguna por parte del usuario.
El tamaño de problemas que las corporaciones están tratando con el incremento y la
velocidad de paquetes comerciales de optimización han crecido dramáticamente para
satisfacer esta demanda. Esto significa que los usuarios necesitan herramientas más
avanzadas para recopilar y administrar los datos, formular modelos y enviarlos al solver. Aquí
es donde un sistema de modelado avanzado como MPL, es muy valioso.
Con el importante incremento del Modelado de Optimización en el mundo de los
negocios, el software que los estudiantes necesitamos aprender hoy en día es simplemente
diferente al de algunos años atrás. Cuando los problemas eran pequeños, y los paquetes de
software de optimización no eran muy avanzados, la familiarización con los métodos de
solución, tal como el algoritmo Simplex, fueron suficientes para hacer proyectos de
optimización. Hoy día, la experiencia y el entendimiento del software involucrado en el
proceso de modelado, es más importante que el estudio de cómo trabajan internamente los
métodos de solución. Para alcanzar ese objetivo, este Tutor ha sido diseñado para dar a los
estudiantes una oportunidad de aprender el software que está siendo utilizado por grandes
corporaciones de todo el mundo.
Enseñanza de Modelado de Optimización en la actualidad
Una de las razones, que los instructores de Investigación de Operaciones no han sido capaces para asignar modelos grandes a sus estudiantes, parecidos a los modelos del "mundo real"; es porque el software los limitaba. Muchos de los libros sobre programación lineal y optimización hoy día, enseñan a los estudiantes principalmente métodos y algoritmos, y formulación de modelos muy pequeños, típicamente involucran menos de 10 variables y restricciones. El software generalmente disponible con esos libros pueden usualmente tratar con variables y restricciones simples, y además; formular esos modelos grandes requerirá que los estudiantes ingresen muchas páginas de texto. Esto no da como resultado necesariamente que los estudiantes aprendan algo adicional y el interés de sus estudios sobre modelado de optimización se pierda.
Otra razón por la que el modelado de optimización no está siendo ampliamente enseñado, es porque, hasta ahora, no hay un curso con material disponible que efectivamente cubra esta materia
METODO DE APROXIMACION DE RUSSELL (Solución Inicial Básica para la solución de problemas de transporte)
Consiste en que Para cada renglón de origen que queda bajo consideración debe determinarse ui , su mayor costo unitario (Cij) de los que quedan en ese renglón. Para cada columna de destino que todavía está bajo consideración, determínese su vj , el mayor costo unitario de los que hay en esa columna. Para cada variable Xij que no haya sido seleccionada en estos renglones o columnas. Para cada variable Xij que no haya sido seleccionada en estos renglones o columnas, seguidamente se debe calcular
ij = Cij - ui
- vj . Selecciónese la variable con el mayor valor negativo (en términos absolutos) de ij
Solución básica factible inicial a partir del método de aproximación de Vogel.
Selecciónese X44 = 30 Elimínese la columna 4 50-30=20
B. Aplicación de Modelos de Transporte en la Herramienta de Software MPL for Windows (v4.2 student).
1. Manual de Usuario (Uso de MPL).
Para este manual de usuario explicaremos primero el uso de
algunas operaciones básicas del software MPL (abrir, guardar, utilización
de la ayuda, solución de un problema sencillo de Programación lineal y
aprender a analizar dichas soluciones presentadas por el programa) para
luego enfocarnos en la resolución de los modelos de transporte en el
mismo.
Inicializando la Aplicación MPL for Windows (Versión 4.2).
Si se tiene el ambiente clásico de
Windows (Win95, 98, 2000, milenium)
clicar en el botón de Inicio, Programas,
MPL for Windows 4.2
Si se tiene el S. O.
Windows XP clicar en Inicio, Todos
los programas, MPL for Windows 4.2
Student.
Ilustración 1. Inicio de MPL en ambiente clásico de Windows
Luego nos da como resultado la siguiente ventana:
Así también especificamos que se utilizará el solver de CPLEX y
CPLEX 300, pero además aclaramos que eso depende del solver de
preferencia y del grado de dificultad de algunos problemas que el mismo
soporta (entre otros solver’s tenemos: Gurobi, CoinMP, LPSolve, Conopt y
LGO).
Cargar un archivo MPL.
Ilustración 2. Inicio de MPL en ambiente de Windows XP
Ilustración 3. Ventana principal de la aplicación MPL for Windows 4.2 student
Después de haber iniciado MPL, se aprenderá a cargar un archivo
del modelo en el editor de modelo. La aplicación MPL viene con varios
modelos de prueba que son instalados en el directorio Mplwin4. Los
modelos MPL son almacenados como archivos texto estándar y
típicamente tienen la extensión '.mpl'. El modelo que estamos usando en
esta sesión es llamado Model1.mpl y es almacenado en una carpeta
separada llamada Tutorial.
1. Elija Open (Abrir) del menú File (Archivo) para visualizar el cuadro
de diálogo Open (Abrir).
2. Haga doble clic en la Carpeta Tutorial y baje hasta el archivo
llamado ' Model1.mpl ' que está almacenado como se muestra abajo.
3. El cuadro de diálogo Abrir (Open) muestra la lista de todos los
archivos de modelos prueba de MPL en la carpeta Tutorial. Haga clic sobre
el archivo 'Model1.mpl' para seleccionar el archivo y luego presione Abrir
(Open) para abrir el archivo. Alternativamente, usted puede abrir el
Ilustración 4. Cuadro de dialogo abrir (Open) para cargar un archivo con extensión mpl
archivo haciendo clic directamente en el nombre de archivo de la lista de
archivos.
Este abrirá una ventana editor del nuevo modelo conteniendo la
formulación para ese modelo.
Resolver un modelo cargado en el editor del modelo
Ilustración 6. Editor del modelo con el model1.mpl
Ilustración 5. Editor del Modelo mostrando el Model1.mpl
1. Elegir el Solver CPLEX del menú Run para resolver el modelo
'Model1'.
2. Mientras resuelve el modelo, la ventana Status Window (ventana
de estado) es visualizada y le proporciona información acerca del
avance de la solución.
La ventana Status Window
(ventana de estado) proporciona
información respecto al número
de líneas leídas, número de
variables y restricciones
encontradas, cuánta memoria
ha sido usada, número de
iteraciones y el valor actual
de la función objetivo.
Analizando una Solución en MPL.
Al obtener una solución óptima en MPL, éste envía la solución
a un archivo con el mismo nombre del modelo, pero con la extensión
‘.sol’'. Para ver ese archivo es necesario seguir los siguientes pasos.
Ilustración 7.muestra la ventana Status Window (ventana de estado) después que el problema ha sido resuelto.
1. Presionar el botón View (Ver) en la parte inferior de la ventana
Status Window (Ventana de Estado), el cual aparece sobre la
pantalla durante el proceso de solución. Esta abrirá una ventana
View Window (Ventana Ver) conteniendo el archivo de la solución
como se muestra en la Ilustración 8.
2. De esta manera
podemos observar
rápidamente la solución
usando la barra de
desplazamiento de la
derecha. Notar que los
detalles de la solución
son
proporcionadas incluyendo el valor de la solución óptima para la
función objetivo, valores para las variables de decisión y para las
restricciones.
Cuando se haya terminado de mirar a través de la solución
presione el botón (X) que aparece en la esquina superior derecho, para
cerrar la ventana View Window (ventana Ver).
También podemos observar la estructura de nuestro modelo
usando el árbol de definición del modelo que muestra todos los ítems
definidos en el modelo desde su definición. Para abrir el árbol de definición
del modelo se tiene que clicar en el
menú view (ver) y posteriormente
elegir la opción Model Definitions
(Definición del modelo).
Ilustración 8. Ventana View (Ver) con el archivo de la Solución 'Model1.sol'
Bajo el título VARIABLES en el árbol, usted verá tres nombres de variables:
Producto, Inventario, Ventas, los cuales son las variables para el modelo. En frente de
cada título de sección, hay un pequeño recuadro conteniendo el signo más o el signo
menos. Este recuadro le permite rápidamente expandir y plegar cada rama del árbol.
Ahora si se selecciona la variable Produce y presione el botón View (Ver) en la parte inferior
de la ventana. Este abrirá una nueva ventana View (Ver) con los valores de la solución para la
variable Producto.
Sintaxis Básica de MPL.
Ilustración 9. Ventana Árbol de Definiciones del Modelo
Ilustración 10. Ventana View (Ver) con los Valores de la Solución de la Variable Produce
A diferencia de otros optimizadores MPL es claro en cuanto al
orden en la colocación de las variables, restricciones, función objetivo para
una mayor comprensión y además, cada definición ya sea tanto de
variables como función objetivo, restricciones, entre otras son colocadas
en una sección específica, a continuación la sintaxis básica de MPL (nota:
si el problema es mucho más complicado la codificación varía en cuanto al
número de secciones, esto se explicará más adelante):
Ahora explicaremos la definición de la función Objetivo, ésta
puede ser de maximización (MAX) o de minimización (MIN). Además para
definir las variables, solo basta con colocarlas (X1 y X2 para nuestro
ejemplo)
Ilustración 10. Ventana del editor del modelo con un código básico y su respectiva explicación de cada una de sus partes
VariablesTipo de la FO
Para compilar el programa en MPLPara correr el programa en MPLPara abrir un archivo “.mpl”Para guardar un archivo “.mpl”
Para ver el archivo de solución “.sol”Para imprimir
Para restringir la FO (FO sujeta a, o restricciones de la FO) solo
añadimos los siguientes símbolos de relación: > (para mayor que), < (para
menor que), >= (para mayor o igual que), <= (para menor o igual que).
Además tenemos lo siguiente (algunas funciones básicas de la
barra de herramientas principal de MPL):
Variables
Símbolo de Relación
Luego si por alguna causa hubiera un error de sintaxis del
programa tras la compilación del mismo (así como no poner punto y coma
al final de la línea de texto, mal uso de los signos de relación, etc.)
aparecerá la siguiente ventana (Ilustración 11), con la opción de corregirlo.
Resolución de Modelos de Transporte con MPL for Windows 4.2 student.
Para la resolución de modelos de transporte en la herramienta
MPL, podemos afirmar que esta basada en la utilización de constantes de
Demandas, ofertas, costos de envío y variables que determinen cuanto
producto se transportará desde un origen (una planta contenedora por
ejemplo) hacia un destino (sucursal de entrega o planta destino por
ejemplo).
Ilustración 11. Ventana Error Message (Mensaje de Error) donde Indica tanto la línea en que se cometió el error como el tipo error que se produjo.
En MPL, la estructura base en la solución de problemas de
Xij : Cantidad de productos a entregar o distribuir desde i hasta
j.
Demand: Demandas,
Ofertas: Ofertas para el transporte
Así para las siguientes sentencias se tiene una explicación en
un cuadro, enfatizando las funciones de dichas instrucciones en el
programa generado en MPL para las constantes declaradas: Demand,
Oferta, CE respectivamente:
Encontrando la solución de nuestro modelo y analizando el resultado
Para obtener la solución de nuestro modelo en MPL es
necesario especificar el tipo de solver para la búsqueda de dicha solución,
MPL por default tiene configurado como solver, y para nuestra versión, el
CPLEX 3000, aunque también se puede elegir entre los siguientes solver
instalados por default: Gurobi, CoinMP, LPSolve, Conopt y LGO, así mismo
i
jCE
aclarando que existen muchos más compatibles con MPL tal como Lingo,
Lindo, entre otros.
Primero elegimos el solver seleccionando el solver deseado de
la opción solver en run de la barra de herramientas. Luego
automáticamente el solver compilara y ejecutará nuestro programa.
Ilustración 12. Como elegir el solver para resolver nuestro problema de transporte
Luego en la ventana resultante (la que muestra los procesos en
tiempo real de nuestra operación en ejecución) presionar el botón view
para visualizar el resultado…
Apareciendo
dicha solución de la siguiente
manera (se representará por
Presionar botón view
Tipo de FO y su valor optimo
Valores Óptimo de las variables de decisión. Para nuestro caso son los productos X del origen i hasta el destino j. según la tabla inicial del problema de transporte
partes para explicar paso a paso lo que representa el archivo solución
generado por MPL):
Ilustración 13. Presionar view
Aquí se encuentran datos básicos tales como el nombre del
problema, el archivo, el solver utilizado, último valor o valor optimo de
la función objetivo, tiempo de ejecución,
número de
Ilustración 14. Archivo solución (a)
Ilustración 15. Archivo solución (b)
Información básica de nuestro modelo, tales como el nombre de nuestro modelo, el
numero de iteraciones, valor óptimo de la FO, solver Utilizado, Fecha,
Así termina nuestro manual de usuario, pero será de utilidad
aclarar que si desea resolver otro problema de transporte (es decir con
otros datos, más demandas, más ofertas), solo se tienen que cambiar los
valores de costo de envío y/o añadir más variables de ofertas, demandas y
costos de envío. También hay que añadir y cambiar los datos en las
restricciones de la FO y además actualizar dicha FO. Luego ¿Qué significan
Una empresa energética dispone de tres plantas de generación para satisfacer la demanda eléctrica de cuatro ciudades. Las plantas 1, 2 y 3 pueden satisfacer 35, 50 y 40 millones de [kWh] respectivamente. El valor máximo de consumo ocurre a las 2 PM y es de 45, 20, 30 y 30 millones de [kWh] en las ciudades 1, 2, 3 y 4 respectivamente. El costo de enviar 1 [kWh] depende de la distancia que deba recorrer la energía. La siguiente tabla muestra los costos de envió unitario desde cada planta a cada ciudad. Formule un modelo de programación lineal que permita minimizar los costos de satisfacción de la demanda máxima en todas las ciudades.
SOLUCIÓN BÁSICA INICIAL MÉTODO DE RUSSELLITERACIONES