





Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Asignatura: Programació Lineal, Profesor: ramon valdes, Carrera: Matemàtiques, Universidad: UV
Tipo: Apuntes
1 / 9
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!






lindo (Linear, INteractive, and Discrete Optimizer) es un paquete de software para resolver problemas de Programaci´on Lineal, Entera y Cuadr´atica.
Para problemas peque˜nos o de tamano medio, lindo puede usarse interactivamente desde el teclado, ya que introducir un modelo es muy sencillo. Tambi´en es posible usar lindo con ficheros creados con otras aplicaciones y que contengan l´ıneas de comandos y datos del problema, generando ficheros con los resultados obtenidos.
Para iniciar una sesi´o de lindo basta con hacer un doble click con el rat´on sobre el icono correspondiente. Aparecer´a una pantalla con informaci´on sobre el n´umero de restricciones, n´umero de variables admisibles y memoria disponible. A continuaci´on aparece una pantalla con la etiqueta “untitled”preparada para introducir el modelo que se desea resolver.
Un modelo para lindo requiere como m´ınimo tres elementos: una funci´on obje- tivo, variables y restricciones.
En lindo, no es necesario definir las variables expl´ıcitamente. Quedan definidas cuando aparecen en la funci´on objetivo o las restricciones.
Cualquier expresi´on (restricci´on, funci´on objetivo o comentario) puede utilizar m´as de una l´ınea. No conviene escribir m´as de 72 caracteres por l´ınea.
La funci´on objectivo siempre ha de estar al principio del modelo y ha de comenzar con, o bien max (para maximizar) o bien min (para minimizar).
El final de la funci´on objetivo y el principio de las restricciones se denota por medio de cualquiera de las siguientes expresiones:
El final del modelo de programaci´on lineal se denota por medio de la palabra end.
Las restricciones han de ser de la forma: a 1 var 1 ±... ± an varn separador rhs
donde a 1 ,... , an, rhs son constantes (n´umeros) var 1 ,... , varn son los nombres de las variables separador indica el sentido de la restricci´on: “<”(menor o igual), “>”(mayor o igual) y “=”(igualdad).
Ventana Principal
Esta es la ventana a la que se accede cuando entramos en el entorno^ ´ lindo, que incluye una ventana de input “untitled”. El men´u principal contiene submen´us que se activan como en cualquier otro programa de Windows (v´ıa rat´on o teclado). Son:
File Este men´u nos permite manipular los ficheros de datos. Se puede utilizar para abrir, cerrar, guardar e imprimir ficheros. Algunas de las opciones m´as intere- santes son: New Permite abrir una nueva ventana sin t´ıtulo en la que se puede escribir el modelo. Open Abre el fichero de un modelo y lo coloca en la ventana de edici´on, donde se puede editar y resolver. El editor de lindo s´olo acepta ficheros con 64000 caracteres coma m´aximo. Ficheros m´as grandes han de ser cargados con la op- ci´on View. lindo admite 3 formatos: ltx (Lindo text) es el m´as usual. lpk (Lindo packed) es un formato comprimido. mps es un formato est´andar para Progra- maci´on Matem´atica y puede ser leido por muchos programas de optimizaci´on. View Abre el fichero de un modelo. El modelo puede ser leido, editado (pero con muchas menos posibilidades de edici´on que en el caso anterior) y resuelto. Es la opci´on adecuada para ficheros grandes. Save Guarda la ventana activada en el momento de seleccionar esta opci´on. Utilizaremos esta opci´on para guardar los modelos y las soluciones. Close Cierra la ventana activa. Print Env´ıa a la impresora los contenidos de la ventana activa. Log Output Sirve para seleccionar un fichero al que enviar la informaci´on de la sesi´on. Si no se activa, esta informaci´on se env´ıa autom´aticamente a una ventana titulada “Reports Windows”. Hay una opci´on para enviar la informaci´on tanto al fichero como a la “Reports Windows”. Title, Date, Elapsed Time env´ıan el t´ıtulo del modelo, la fecha y hora, y el tiempo de ejecuci´on de la sesi´on a la “Reports Windows”. Exit Sale del programa.
Edit Permite realizar las tareas de edici´on t´ıpicas de cualquier aplicaci´on Windows. Hay dos posibilidades propias de lindo: Options Permite modificar algunos par´ametros fijados por defecto. En cuanto a la optimizaci´on, aparte de par´ametros para la Programaci´on Entera, se puede modificar el n´umero de coeficientes del modelo diferentes de cero, Nonzero Limit, el n´umero m´aximo de iteraciones, Iteration Limit, y las tolerancias. En cuanto a la generaci´on de informes, se puede decidir si aparece o no la ventana de estatus, Status Window, si la soluci´on del modelo se env´ıa a la ventana de informes, Terse Output, y si se quiere limitar el n´umero de l´ıneas por p´agina, Page Length Limit, de manera que la soluci´on no se vaya escribiendo de manera continua, sino que pare despu´es de escribir el n´umero especificado de l´ıneas y espere que el usuario pida la p´agina siguiente.
Paste Symbol Una vez se ha compilado el modelo (Compile es una opci´on de Solve), lindo ya tiene la lista de variables y restricciones. El modelo puede ser ampliado eligiendo de las listas los elementos y peg´andolos en la formulaci´on.
Solve Contiene los comandos necesarios para resolver el modelo. Solve Resuelve el modelo de la ventana activa. Compile Transforma el modelo a la forma requerida por los algoritmos de lin- do. La compilaci´on se hace autom´aticamente si se utiliza la opci´on anterior Solve. El uso separado de Compile tiene sentido si queremos ´unicamente comprobar si el modelo est´a escrito correctamente o si queremos eliminar una soluci´on anterior del modelo guardada en memoria. Debug Ayuda a encontrar errores en el modelo. Si el problema es imposible, esta opci´on identifica restricciones que causan la imposibilidad, Sufficient Set (Rows), o subconjuntos de restricciones entre las cuales alguna causa la imposibilidad, Necessary Set (Rows). Si el problema es no acotado, identifica variables que cau- san la no acotaci´on, Sufficient Set (Cols), o subconjuntos de variables entre las que alguna causa la no acotaci´on, Necessary Set (Cols). Pivot Realiza una iteraci´on del simplex (pivot) para el modelo de la ventana activa. Las variables de entrada y salida pueden ser elegidas por el usuario. El resultado de la operaci´on se env´ıa a la ventana de informes.
Reports Contiene los comandos necesarios para obtener informaci´on sobre la soluci´on. Solution Crea un informe sobre la soluci´on del modelo de la ventana activa. Pueden aparecer todas las variables del modelo o s´olo las que tengan en la soluci´on un valor diferente de cero. Range Crea un informe con el an´alisis de sensibilidad del modelo de la ventana activa. Parametrics Realiza el an´alisis param´etrico del t´ermino independiente de una restricci´on. Statistics Muestra estad´ısticas sobre el modelo actual. Peruse Permite observar partes seleccionadas de la estructura del modelo y de su soluci´on. Picture Presenta el modelo en forma matricial, para dar una impresi´on visual de la estructura. Tableau Muestra la tabla del simplex del modelo de la ventana activa. Formulation Escribe el modelo, o la parte seleccionada, en la ventana de in- formes. Show Column Muestra la informaci´on de una columna.
Window Permite abrir, ajustar y organizar las ventanas.
Help Accede a las ventanas de ayuda. Aqu´ı se puede consultar cualquier duda sobre las opciones y/o comandos que hemos dejado por comentar.
Si es negativo, estar´a asociado a una restricci´on de tipo ≥ e indicar´a la cantidad en la que aumenta la funci´on objetivo cuando se incrementa en una unidad el rhs.
Los precios duales coinciden con las variables duales multiplicadas per -1.
Resumiendo
Si el problema que queremos resolver es de maximizaci´on, la tercera columna pro- porcionada por lindo al resolver el problema es correcta. En otro caso se habr´a de multiplicar por -1 para obtener los valores adecuados, es decir, los costes reducidos y las variables duales ´optimas del problema de minimizaci´on.
Si no multiplicamos por -1 la columna dual prices, un precio dual positivo indicar´a la mejora que experimenta la funci´on objetivo (disminuyendo en caso de min- imizaci´on, aumentando en caso de maximizaci´on) cuando se incrementa en una unidad el rhs de la restricci´on asociada. Un precio dual negativo indicar´a el empeoramiento de la funci´on objetivo.
En el an´alisis de un modelo son especialmente ´utiles 3 comandos de lindo:
Statistics da informaci´on num´erica sobre el modelo. Una variable mal escrita cambia el n´umero total de variables. Los valores del mayor y menor coeficientes del modelo pueden indicar errores de escritura. SINGLE COLS indica variables que aparecen en una ´unica fila, situaci´on habitualmente no deseada. REDUNDANT COLS indica filas con exactamente la misma estructura.
Peruse permite estudiar partes del modelo, seleccionadas mediante condiciones l´ogicas.
Debug permite identificar filas y columnas que pueden causar imposibilidad o no acotaci´on.
Los modelos lineales pueden ser escritos en un procesador de texto externo a lindo, como por ejemplo MS Word. Unicamente se han de tener en cuenta dos condiciones:´ el nombre del fichero ha de tener extensi´on ltx, y ha de guardarse como texto (Text Only). En estas condiciones, el fichero puede ser abierto desde lindo sin problemas.
Los informes generados por lindo pueden guardarse en un fichero utilizando la opci´on Log Output. Este fichero puede ser abierto por otras aplicaciones, como MS Word, editado e impreso.
lindo nos permite hacer un seguimiento, paso a paso, del algoritmo simplex en formato tabla. A continuaci´on, veremos c´omo podemos obtener las tablas del simplex y c´omo interpretarlas. Para evitar problemas es conveniente iniciar el programa cada vez que queramos utilizar esta posibilidad.
Supongamos que hemos introducido el siguiente modelo:
Max X 1 + X 2 s.a.: X 1 − X 2 + 2 X 3 = 1 3 X 1 + X 2 + X 4 = 2 X 1 , X 2 , X 3 , X 4 ≥ 0
Nota: Si la ´ultima restricci´on fuera 3X1 + X 2 ≤ 2 y no introducimos la variable de holgura X4, en el siguiente aparecer´ıa en su lugar una variable llamada SLK 3 (el n´umero es el de la fila en la que aparecer´ıa la correspondiente variable de holgura en el problema original).
Con la ventana principal como ventana activa, elegimos Reports / Tableau y en la ventana de informes obtenemos:
THE TABLEAU
lindo siempre resuelve el problema dado utilizando el m´etodo de las dos fases con una base inicial formada por variables artificiales. Adem´as, todas las tablas correspon- den a la versi´on de maximizaci´on del correspondiente problema.
La primera fila ( ROW 1) contiene los costes reducidos de las variables y el valor de la funci´on objetivo utilizando la funci´on objetivo del problema original. La ´ultima fila de esta tabla (etiquetada con ART y en la que no aparece n´umero de fila) corresponde a la fila de los costes reducidos y el valor de la funci´on objetivo utilizando la funci´on objetivo de la fase I (es decir, minimizar la suma de variables artificiales). Las filas intermedias son las habituales de la tabla del simplex.
Como hay variables artificiales en la base con valor positivo, hemos de utilizar la ´ultima fila para determinar qu´e variable entrar´a en la base en la siguiente iteraci´on. Dicha variable es aquella con un coste reducido m´as negativo (recordar que todas las tablas son de maximizar). En nuestro caso, entrar´ıa X1. La variable que sale se determina con la regla usual. En nuestro caso, saldr´ıa de la base la variable artificial de la fila 3.