Tutorial SOFTWARE LINGO 8.0

Slides:



Advertisements
Presentaciones similares
UNIVERSIDAD CENTRAL “MARTA ABREU” DE LAS VILLAS
Advertisements

INVESTIGACIÓN DE OPERACIONES I Solución Gráfica de un problema de PL
2. Programación lineal : Formulación matemática del problema
Teoría de decisiones La teoría de decisiones consiste en tomar una decisión de un conjunto de posibles acciones. Se debe tener en cuenta que existe incertidumbre.
Herramientas Informáticas I
Unidad 2 Algoritmos y resolución de problemas
Modelos de Programación Lineal Aplicados a la Economía
¿Qué es un modelo conceptual?
Universidad Autónoma San Francisco
Es el medio que permite enviar mensajes privados a otros usuarios de Internet que se encuentren en cualquier parte del mundo. Para ello, los usuarios.
Introducción a la Computación
ANALISIS SINTACTICO El análisis gramatical es la tarea de determinar la sintaxis, o estructura, de un programa. Por esta razón también se le conoce como.
Modelos de Programación Entera - Heurísticas
Teoría de Grafos.
Profesor: Julio Canales
Modelos Cuantitativos
Gerenciamiento Técnico de Proyectos
Curso de Verano 2010 para el ITSSMT
EL PODER DE SOLVER.
Tema 7. Introducción a lenguaje de programación Visual Basic (clase 1)
Universidad de los Andes-CODENSA
PROGRAMACION DINAMICA
COMPLEJIDAD COMPUTACIONAL Departamento de Educación Matemática Profesor: Carlos Aguilar Santana “La Matemática es el Alfabeto con el cual Dios ha Escrito.
TIPOS DE DATOS ABSTRACTOS
Optimización de Procesos
Computación Aplicada Facultad de Ingeniería Universidad Autónoma de Querétaro Ma. Teresa García Ramírez 1.
ESTRUCTURA DE DATOS ESD-243
JUAN SEBASTIAN OROZCO. En este grupo encontramos englobadas todas las opciones que necesitaremos para dar forma al texto de nuestro documento. Partes.
Programas Utilitarios II, paralelos 50 y 52
TEMAS 9 y 10: Planificación de la producción
Diseño de algoritmos La computadora puede realizar procesos y darnos resultados, sin que tengamos la noción exacta de las operaciones que realiza. Con.
COMPONENTES DE UN ALGORITMOS
Teoría – Alejandro Gonzalez
Toma de Decisiones Toda toma de decisión empieza con la detección de un problema. Para tomar la decisión correcta, se debe: Definir el problema en forma.
ETAPAS PARA SOLUCIONAR UN PROBLEMA
Programación de Sistemas
EJEMPLOS Nuevos centros de distribución para la empresa
Tecnologías de las computadoras
MATEMATICAS COMPETENCIAS MATEMATICAS
Introducción a la programación
Unidad 1: FUNDAMENTOS DE COMPUTACIÓN Y PSEUDOLENGUAJE
Modelos Cuantitativos
1 Problemas de decisión Tipo particular de problemas de optimización Sistemas que evolucionan con el tiempo Se toman decisiones en momentos sucesivos de.
PROBLEMA DE LA PRODUCCIÓN. La programación matemática es una técnica de modelización muy potente. Cuando se resuelve un problema hay que considerar las.
Manual de correo electrónico
COMPUTO I - UASF SISTEMA BINARIOS.
ELEMENTOS DE COMPUTACIÓN Profesor: Guillermo Figueroa
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) TRADUCTORES Y ANALIZADOR LEXICOGRÁFICO.
ALGORITMOS PRESENTADO POR: FERNANDA LEURO TATIANA CONTRERAS 1004
¿Qué es una hoja de cálculo?
Computación I (CI-2125) Clase 2 Prof. Mireya Morales.
Elaboración de algoritmos usando lógica de programación
Mediacentro Clase #2 de Word I. Temario Movimiento del Punto de Inserción. Movimiento del Punto de Inserción. Corrección y Borrado del Texto.
Solver complemento de excel
INVESTIGACION OPERATIVA
Metodología de la programación
TEMA: DISEÑO DE LA SOLUCION INTREGRANTES DE EQUIPO: ERIKA CRUZ MARTINEZ RODOLFO LOPEZ ANOTA LUIS ARMANDO LIÑA QUECHA JOSE FRANCISCO MEZO VARELA LUIS ENRIQUE.
ANALISIS DE REDES Problema de Transporte Método de la esquina Noroeste
Prof. Juan José Bravo B., M.Sc. ©
EII-405 Investigación de operaciones
Lic. Carla Aguirre Montalvo
IV. GRAMÁTICAS DISTRIBUIDAS Y TABLAS DE SÍMBOLOS
Programación de Sistemas
DETECCION DE SEÑALES BINARIAS EN RUIDO GAUSSIANO El criterio de toma de decisión fue descrito por la ecuación Un criterio muy usado para escoger el nivel.
Área Académica: Ingeniería Industrial
Fecha: 9/11/ 2015 Tema: Tipos de datos en Excel Objetivo: Identificar los elementos de Excel, la forma de trabajar con ellos para la aplicación de fórmulas.
CONSTRUCCION DEL DISEÑO DE UN OVA, HACIENDO USO DE HERRAMIENTAS VIRTUALES EDGAR MAURICIO ALBA V. Presentado al Ing. John Alejandro Figueredo Luna en el.
INFORMÁTICA II TEMA: DISEÑA Y ELABORA ALGORITMOS DOCENTE: MARÍA DOLORES GARCÍA PONCE CAMPUS TONALÁ JALISCO.
Problema Dual INVESTIGACIÓN DE OPERACIONES. Problema Dual.
ALGORITMOS Asignatura: Informática. Algoritmos Conjunto de instrucciones ordenadas de forma lógica y precisa, con un inicio y fin que permite resolver.
Transcripción de la presentación:

Tutorial SOFTWARE LINGO 8.0 Creado por Cristian Oliva

¿Qué es LINGO? LINGO (Linear, INteractive, and General Optimizer). Es una herramienta simple para utilizar la optimización lineal, no-lineal y enteros. Permite formular problemas de gran tamaño en forma concisa. Permite resolverlos Permite analizar los resultados

Creando un Modelo LINGO En general, un modelo de optimización consiste de 3 partes : Función Objetivo Una sola fórmula que describe exactamente que es lo que se desea optimizar. Variables Cantidades que pueden ser cambiadas para producir el valor óptimo de la función objetivo Restricciones Fórmulas que definen los límites de los valores de las variables

UN EJEMPLO Prod. Depart. 1 Depart. 2 Depart. 3 Benef. 1 3 hrs./unid. Una empresa fabrica tres productos 1,2 y 3. Cada producto requiere tiempos de producción en tres departamentos como se ilustra en la siguiente tabla : Prod. Depart. 1 Depart. 2 Depart. 3 Benef. 1 3 hrs./unid. 2 hrs./unid. 1 hr./unid. $ 2 2 4 hrs./unid. 3 hr./unid. $ 4 3 2 hr./unid. $ 2.5 Hrs. Total 600 horas 400 horas 300 horas

Modelo

Modelo LINGO Cada Línea en LINGO debe terminarse con un punto y coma « ; ». Tu modelo no se resolverá sin ellos.

Modelo LINGO Ya que los computadores no tienen el símbolo , LINGO Adoptó la convención de usar los caracteres <= para denotar . Sin embargo, tu puedes entrar simplemente <. Lo mismo ocurre para >=, tu puedes entrar simplemente >.

Modelo LINGO También podemos incluir al modelo LINGO comentarios, de tal manera que mejore la legibilidad de éste.

Sintaxis general de LINGO Una expresión puede ser escritas en muchas líneas, pero la expresión debe ser terminada por un punto y coma. Por ejemplo, podríamos haber utilizado dos líneas para la función objetivo. LINGO no diferencia entre letras mayúsculas o minúsculas. Por lo tanto, los siguientes nombres de variables podrían ser equivalentes. TURBO, Turbo, turbo

Sintaxis general de LINGO Cuando se le dan nombres a las variables en LINGO, todos los nombres deben comenzar con un caracter (A-Z). Los otros pueden ser alfabéticos, numéricos o el símbolo _. Los nombres pueden tener una longitud de 32 caracteres.

Resolviendo un modelo LINGO Una vez que el modelo ha sido entrado en la « ventana modelo », éste puede ser resuelto mediante : Un click en el botón « solve » Seleccionando « solve » del menú LINGO Utilizando la tecla ctrl-s Si existen errores, éstos serán informados

Ventana de Status del Solver LINGO Si no se encontraron errores, la ventana del status del solver de LINGO aparece. Aparece también el informe de la solución.

Utilizando el Lenguaje de Modelamiento Una de las características más poderosas de LINGO es su lenguaje de modelamiento matemático. El lenguaje de modelamiento de LINGO permite expresar tu problema de una manera natural que es muy similar a la notación matemática.

Utilizando el Lenguaje de Modelamiento Powerco tiene tres plantas de generación de energía eléctrica que suministran energía requerida a cuatro ciudades. Cada planta puede suministrar las siguientes cantidades de kilowatt-hora (kwh) de energía eléctrica : la planta 1, 35 millones; la planta 2, 50 millones; la planta 3, 40 millones. Las demandas máximas de energía en estas ciudades, que se presentan al mismo momento (2 p.m.) son las siguientes (en kwh): la ciudad 1, 45 millones; la ciudad 2, 20 millones; la ciudad 3, 30 millones; la ciudad 4; 30 millones. Los costos para enviar 1 millón de kwh de energía de una planta a una ciudad depende de la distancia que la energía tiene que viajar. Formule un PL que minimice el costo para satisfacer la demanda máxima de energía de cada ciudad.

Utilizando el lenguaje de modelamiento C1 (US$) C2 C3 C4 Oferta P1 8 6 10 9 35 P2 12 13 7 50 P3 14 16 5 40 Demanda 45 20 30

Modelo

Función Objetivo Notación Matemática Sintaxis LINGO min MIN = cij Lenguaje modelo LINGO MIN = @SUM(ARCOS(I,J) : C(I,J) * X(I,J)); Notación Matemática Sintaxis LINGO min MIN = @SUM(ARCOS(I,J) : cij C(I,J) xij X(I,J));

Las Restricciones de oferta @FOR(PLANTAS(I) : @SUM(CLIENTES(J):X(I,J)) <=O(I)); Notación Matemática Sintaxis LINGO @FOR(PLANTAS(I) : @SUM(CLIENTES(J) : xij X(I,J) Oi O(I));

Las Restricciones de demanda @FOR(CLIENTES(J) : @SUM(PLANTAS(I):X(I,J)) >=D(J)); Notación Matemática Sintaxis LINGO @FOR(CLIENTES(J) : @SUM(PLANTAS(I) : xij X(I,J) Dj D(J));

EL MODELO LINGO ES MODEL : MIN = @SUM(ARCOS(I,J) : C(I,J) * X(I,J)); @FOR(PLANTAS(I) : @SUM(CLIENTES(J):X(I,J))<=O(I)); @FOR(CLIENTES(J) : @SUM(PLANTAS(I):X(I,J))>=D(J)); END

Definiendo los conjuntos Tenemos los siguientes conjuntos a definir : PLANTAS CLIENTES ARCOS SETS: PLANTAS / P1 P2 P3/ : O; CLIENTES / C1 C2 C3 C4/ : D; ARCOS(PLANTAS,CLIENTES) : C,X; ENDSETS

COLOCANDO LOS DATOS DATA: O = 35 50 40; D = 45 20 30 30; C = 8 6 10 9 9 12 13 7 14 9 16 5; ENDDATA

MODELO LINGO

CARACTERISTICAS ADICIONALES PODEMOS COLOCARLES NOMBRES A NUESTRA FUNCION OBJETIVO, RESTRICCIONES Y UN TITULO AL MODELO Ejemplo 1: [objetivo] MIN = X; Ejemplo 2: @FOR(PLANTAS(I) : [oferta_planta] @SUM(CLIENTES(J):X(I,J))<=O(I));

Problema Costos de transporte por unidad

Usando Conjuntos (Sets) Sets son simplemente grupos de objetos relacionados. Un conjunto (set) puede ser una lista de productos, camiones o empleados. Cada miembro del conjunto puede tener una o más características relacionadas con él. Estas características se conocen bajo el nombre de atributos. Los valores de los atributos pueden ser conocidos o desconocidos.

Usando Conjuntos (Sets) LINGO reconoce 2 tipos de conjuntos : Primitivos Derivados Primitivos : Es un conjunto compuesto sólo de objetos que no pueden ser reducidos posteriormente. Ejemplo : PLANTAS Derivados : Es definido a partir de uno o más conjuntos. Ejemplo : ARCOS

Usando Conjuntos Un conjunto primitivo se define de la siguiente manera : setname [/lista_miembros/][: lista_atributos]; Listado explícito de la lista miembros PLANTAS / P1 P2 P3/ : O;

Usando Conjuntos Un conjunto primitivo se define de la siguiente manera : setname [/lista_miembros/][: lista_atributos]; Listado implícito de la lista miembros PLANTAS / miembro1..miembroN/ : O;

Usando Conjuntos Lista miembros Implícito (formato) Ejemplo Conjunto de miembros 1..n 1..5 1,2,3,4,5 stringM..stringN TRUCKS3.. TRUCKS204 TRUCKS3, TRUCKS4,…,TRUCKS204 DayM..dayN MON..FRI MON,TUE,WED,THU,FRI monthM..monthN OCT..JAN OCT,NOV,DEC,JAN

Usando Conjuntos Como una ilustración, en el ejemplo Powerco, podríamos haber definido el conjunto PLANTAS como : PLANTAS /P1..P3/ : O;

Usando Conjuntos Una forma alternativa, cuando se utiliza el formato 1..n, tu puedes definir la longitud del conjunto en la sección DATA y entonces realizar la referencia : DATA: Número_de_plantas = 3; ENDDATA SETS: PLANTAS /1..Número_de_plantas/ : O; ENDSETS

Usando Conjuntos : conjuntos derivados Para definir un conjunto derivado, tu especificas : El nombre del conjunto Sus conjuntos PADRES Opcionalmente, sus miembros Opcionalmente, sus atributos setname(Lista_conj_padres)[/lista_miembros/][:lista_atrib]

Usando Conjuntos : conjuntos derivados setname(Lista_conj_padres)[/lista_miembros/][:lista_atrib] EJEMPLO : SETS: PRODUCTO /A B /; MAQUINA /M N/; SEMANA /1..2/; ASIGNACION(PRODUCTO,MAQUINA,SEMANA); ENDSETS

Usando Conjuntos : conjuntos derivados y filtros EJEMPLO : CAMIONES_PESADOS(CAMIONES) | CAPACIDAD(&1) #GT# 50000; Operadores lógicos reconocidos por LINGO son : #EQ# igual #NE# distinto #GE# mayor o igual que #GT# mayor #LT# menor que #LE# menor o igual que

Funciones función uso @FOR Es utilizado para generar conjuntos de restricciones @SUM Calcula la suma de una expresión sobre todos los miembros de un conjunto @MIN Calcula el mínimo de una expresión sobre todos los miembros de un conjunto @MAX Calcula el máximo de una expresión sobre todo los miembros de un conjunto

Función @SUM SETS: CLIENTES / C1 C2 C3 C4 C5/ : Demanda; ENDSETS DATA : DEMANDA = 5 1 3 4 6; ENDDATA Demanda_total = @SUM(CLIENTES(J):DEMANDA(J)); Demanda_total = @SUM(CLIENTES:DEMANDA); Demanda_3 = @SUM(CLIENTES(J)|J #LE3# :DEMANDA(J));

Función @MIN, @MAX SETS: CLIENTES / C1 C2 C3 C4 C5/ : Demanda; ENDSETS DATA : DEMANDA = 5 1 3 4 6; ENDDATA Min_demanda = @MIN(CLIENTES(J):DEMANDA(J)); Max_demanda = @MAX(CLIENTES(J):DEMANDA(J)); Min_demanda = @SUM(CLIENTES:DEMANDA); Max_demanda = @SUM(CLIENTES:DEMANDA);

Función @FOR SETS: CAMIONES / RENAULT FORD DODGE / : CARGA; ENDSETS @FOR(CAMIONES(T) : CARGA(T) <= 2500); CARGA(RENAULT)<=2500; CARGA(FORD) <= 2500; CARGA(DODGE)<=2500;

Usando funciones de dominios para variables Tipos variables definición @GIN Variable entera @BIN Variable binaria @FREE Cualquier valor @BND Rango para la variable

Sintaxis @GIN(nombre_variable). @GIN(X);

Problema de la mochila : @BIN artículo peso Rating 1 2 3 9 4 8 5 10 6 7

Modelo LINGO MODEL: SETS: ARTICULOS /A1..A10/: PESO, RATING, INCLUYE; ENDSETS DATA: PESO RATING = 2 9 3 8 10 6 4 10; CAPACIDAD_MOCHILA = 15; ENDDATA

Modelo LINGO MAX = @SUM(ARTICULOS: RATINGS * INCLUYE); @SUM(ARTICULOS:PESO*INCLUYE)<=CAPACIDAD_MOCHILA; @FOR(ARTICULOS:@BIN(INCLUYE)); END

VARIABLES ACOTADAS @BND(cota_inferior,nombre_variable,cota_superior);