Está en la página 1de 12

FACULTAD DE CIENCIAS ECONMICAS Y EMPRESARIALES PROGRAMACIN MATEMTICA

Prctica de informtica del programa LINDO


Curso 2004-05 LINDO 6.1 es un programa de entorno Windows, que sirve para resolver problemas de programacin lineal. 1) Introducir un problema: El formato que hemos de seguir para introducir el problema es muy simple, tal y como vemos en el siguiente ejemplo: Max 4x+3y subject to x + y <=5 2x+y<=8 x>=1 El programa asume las condiciones de no negatividad de las variables del problema. Si el criterio de optimizacin es de mnimo, sustituimos Max por Min en el problema. Adems, podemos sustituir subject to por st. Podemos asignar un nmero o un comentario para cada restriccin de la siguiente forma: Max 4x+3y st R1)x + y <=5 R2)2x+y<=8 x>=1 Podemos introducir comentarios aclaratorios en algunas lneas del problema, sin ms que comenzar la lnea con el smbolo !. Por ejemplo: ! Problema del beneficio Max 4x+3y subject to x + y <=5 2x+y<=8 x>=1

El smbolo ! nos puede servir tambin para que LINDO no tenga en cuenta una lnea. Por ejemplo, si deseamos resolver el problema anterior sin la restriccin x>=1, no es necesario borrarla, basta con incluir el smbolo ! delante de ella: ! Problema del beneficio Max 4x+3y subject to x + y <=5 2x+y<=8 !x>=1 Los nombres de las variables del problema pueden ser de hasta 8 caracteres. 2) Resolver un problema: Una vez introducido un problema, lo resolveremos de la siguiente forma: Para resolver el problema presionaremos el botn

de la barra de herramientas, o bien, a travs del teclado, presionamos Ctrl+S. Aparecern en pantalla dos ventanas, una que resume de la resolucin del problema (n de iteraciones realizadas para resolver, valor de la funcin objetivo, etc.) y otra en la que nos preguntan si deseamos realizar anlisis de sensibilidad del problema:

Tras responder a la pregunta correspondiente al anlisis de sensibilidad y cerrar la ventana Lindo Solver Status, Lindo muestra la solucin del problema en una ventana nueva a la que denomina Reports Window (Ventana de Resultados), y a la que podemos acceder de distintas formas: Presionando el botn : de la barra de herramientas.

En el men Window, marcando Reports Window.

La ventana de resultados muestra la siguiente informacin: 1) VARIABLE X Y ROW 2) 3) 4) 18.00000: VALUE 3.000000 2.000000 SLACK OR SURPLUS 0.000000 0.000000 2.000000 1 REDUCED COST 0.000000 0.000000 DUAL PRICES 2.000000 1.000000 0.000000

NO. ITERATIONS=

RANGES IN WHICH THE BASIS IS UNCHANGED: OBJ COEFFICIENT RANGES ALLOWABLE ALLOWABLE INCREASE DECREASE 2.000000 1.000000 1.000000 1.000000 RIGHTHAND SIDE RANGES ALLOWABLE INCREASE 2.000000 2.000000 2.000000

VARIABLE X Y

CURRENT COEF 4.000000 3.000000

ROW 2 3 4

CURRENT RHS 5.000000 8.000000 1.000000

ALLOWABLE DECREASE 1.000000 2.000000 INFINITY

Interpretacin de estos resultados: 1) Valor de la funcin objetivo en el ptimo 1) 18.00000:

2) Punto ptimo: (x= 3, y = 2). REDUCED COST es el zj cj de cada variable en la tabla del simplex. VARIABLE X Y VALUE 3.000000 2.000000 REDUCED COST 0.000000 0.000000

3) Restricciones (variables de holgura): Cada fila corresponde a una restriccin: ROW 2) 3) 4) SLACK OR SURPLUS 0.000000 0.000000 2.000000 DUAL PRICES 2.000000 1.000000 0.000000

SLACK OR SURPLUS: Mide lo que queda del recurso en la restriccin y, por tanto, es el valor de la variable de holgura asociada a esa restriccin. DUAL PRICES: Precio sombra o valor de la variable dual. Es, por tanto, el zj de la variable de holgura correspondiente a esa restriccin. (En este caso, los cj = 0, luego tambin se interpretan como zj cj). Por tanto, en nuestro problema las soluciones de las variables de holgura y los zj de las mismas son: x3 = 0, x4 = 0 y x5 = 2 z3 = 2, z4 = 1 y z5 = 0

4) Anlisis de sensibilidad: RANGES IN WHICH THE BASIS IS UNCHANGED: 4a) Anlisis de sensibilidad de costes: VARIABLE X Y OBJ COEFFICIENT RANGES CURRENT ALLOWABLE ALLOWABLE COEF INCREASE DECREASE 4.000000 2.000000 1.000000 3.000000 1.000000 1.000000

CURRENT COEF: Valor de coeficiente de la variable en la funcin objetivo. ALLOWABLE INCREASE: Cantidad en la que puedo incrementar el coeficiente sin que cambie la base.

ALLOWABLE DECREASE: Cantidad en la que puedo reducir el coeficiente sin que cambie la base.

Los intervalos de sensibilidad para los costes del problema son: C1 [3, 6] y C2 [2, 4] 4b) Anlisis de sensibilidad de recursos: ROW 2 3 4 CURRENT RHS 5.000000 8.000000 1.000000 RIGHTHAND SIDE RANGES ALLOWABLE INCREASE 2.000000 2.000000 2.000000 ALLOWABLE DECREASE 1.000000 2.000000 INFINITY

CURRENT RHS: Valor del recurso en la restriccin. ALLOWABLE INCREASE: Cantidad en la que puedo incrementar el coeficiente sin que cambie la base.

ALLOWABLE DECREASE: Cantidad en la que puedo reducir el coeficiente sin que cambie la base.

Los intervalos de sensibilidad para los recursos del problema son: 5

b1 [4, 7], b2 [6, 10], b3 (-, 3] 3) Notas: 1. Si, una vez resuelto el problema queremos modificarlo, volvemos a la ventana en la que tenemos el problema y realizamos los cambios correspondientes. Si, seguidamente lo resolvemos, la solucin aparecer en la ventana de resultados (Reports Window) seguida de la anterior. 2. Si el problema resuelto tiene infinitas soluciones, el programa no avisa de ello y, por tanto, para detectarlo debemos revisar las columnas DUAL PRICE Y REDUCED COST de la solucin, comprobando que las variables no bsicas (las que son nulas si la solucin es no degenerada) tienen un zj-cj nulo. 3. Si el problema que resolvemos no posee soluciones factibles (conjunto de oportunidades vaco), aparece en pantalla la siguiente ventana:

4. Si el problema que resolvemos posee solucin ilimitada, aparecer en pantalla la siguiente ventana:

5. Si queremos guardar el problema o la ventana de resultados, lo haremos con los comandos Archivo, Guardar, como en cualquier programa de entorno Window. El nombre del archivo debe tener, como mucho, 8 caracteres. Los archivos Lindo tienen la extensin ltx (*.ltx).

4) Variables:
FREE (Nombre de la Variable): Elimina las cotas de la variable. Con ello elimina la condicin de no negatividad de la variable que el programa asume inicialmente. GIN (Nombre de la Variable): La variable toma valores enteros y no negativos. INT (Nombre de la Variable): La variable es binaria, sus valores quedan restringidos a 0 1. 5) Descripcin de algunos comandos de utilidad para utilizar el programa.

Men FILE:
o New :Crea un nuevo fichero de LINDO. o Open :Abre un fichero ya existente de LINDO. o View: Abre un fichero modelo de LINDO. o Save: Graba el fichero activo (correspondiente a un problema o a resultados) en disco. . El nombre del archivo debe tener, como mucho, 8 caracteres. Los

archivos Lindo tienen la extensin ltx (*.ltx). o Save As: Graba el fichero activo (correspondiente a un problema o a resultados) en un lugar distinto o con un nombre distinto. o Close: Cierra la ventana activa. o Print: Imprime el contenido de la ventana activa. o Exit: Salir de LINDO

Men EDIT:
o Undo. Deshace la ltima accin. o Cut: Corta el texto seleccionado. o Copy: Copia el texto seleccionado.

o Paste: Pega el texto anteriormente cortado o copiado. o Clear: Borra el texto seleccionado. o Find/Replace: Busca una palabra, frase,... en la ventana activa y, opcionalmente la reemplaza por otra. o Options: Configurar LINDO. o Go to Line: Ir a una lnea de la ventana activa. o Paste Symbol: Muestra la lista de smbolos reservados en el programa, las y los nombre de las variables del problema. o Select All: Selecciona todo el texto de la ventana activa. o Clear All: Borra todo el texto de la ventana activa. o Choose New Font: Cambia la fuente (tipo de letra) en la ventana activa.

Men SOLVE:
o Solve: Resuelve el problema de la ventana activa. o Compile Model: Compila el problema de la ventana activa. .

Men REPORTS:
o Solution: Muestra, en la ventana de resultados, la solucin ptima para el problema de la ventana activa. o Range: Muestra, en la ventana de resultados, el anlisis de sensibilidad de la solucin ptima para el problema de la ventana activa. o Parametrics: Realiza un anlisis paramtrico de los recursos de las restricciones. El resultado lo muestra mediante una grfica que indica cmo cambia la funcin objetivo ante el cambio en el recurso. o Tableau: Muestra la tabla ptima del simplex de problema. La primera fila de esta tabla es la de zj cj, que nosotros colocamos en ltimo lugar. o Formulation: Muestra en la ventana de resultados el problema que estamos resolviendo.

Men WINDOWS:
o Open Status Window: Abre la ventana de resolucin (Solver Status Window), que puede ser utilizada para seguir el proceso de resolucin de un problema. o Send To Back: Cambia la ventana activa actual por la siguiente. o Cascade: Coloca todas las ventanas abiertas en cascada. o Tile: Coloca todas las ventanas abiertas en forma de mosaico. o Close All: Cierra todas las ventanas abiertas.

PROBLEMA DEL BENEFICIO Y LA CONTAMINACIN: 1) MTODO DE LAS PONDERACIONES


Max (4x +3y) +(1-)(-3x-2y) st x+y<=5 2x+y<=8 x>=1 Funciones objetivo ponderadas: Vector de Pesos =0 = 0.125 =0.25 =0.375 =0.4 =0.45 =0.5 =0.625 (4x +3y) +(1-)(-3x-2y) -3x-2y -2.125x-1.375y -1.25x-0.75y -0.375x-0.125y -0.2x 0.15x+0.25y 0.5x+0.5y 1.375x+1.125y Solucin (1, 0, 4, 6, 0) (1, 0, 4, 6, 0) (1, 0, 4, 6, 0) (1, 0, 4, 6, 0) Segmento que une los puntos (1,0) y (1,4) (1,4,0,2,0) Segmento que une los puntos (1,4) y (3,2) (3,2,0,0,2)

2) PROGRAMACIN POR METAS LEXICOGRFICA

Nivel 1:

Introducir el problema: Min n1 st x+y<=5 2x+y<=8 x>=1 4x+3y+n1-p1=10 LP OPTIMUM FOUND AT STEP 2

Solucin: OBJECTIVE FUNCTION VALUE 1) 0.0000000E+00

10

VARIABLE VALUE N1 0.000000 X 2.500000 Y 0.000000 P1 0.000000 ROW PRICES 2) 3) 4) 5)

REDUCED COST 1.000000 0.000000 0.000000 0.000000 DUAL

SLACK OR SURPLUS 2.500000 3.000000 1.500000 0.000000 2 0.000000 0.000000 0.000000 0.000000

NO. ITERATIONS= Puesto que n1=0, pasamos al nivel 2

Nivel 2:
Min p2 st x+y<=5 2x+y<=8 x>=1 4x+3y+n1-p1=10 3x+2y+n2-p2=6 n1=0

Solucin:
LP OPTIMUM FOUND AT STEP 2

OBJECTIVE FUNCTION VALUE 1) 1.000000 REDUCED COST 0.000000 0.000000 0.000000 0.000000 0.666667 1.000000

VARIABLE VALUE P2 1.000000 X 1.000000 Y 2.000000 N1 0.000000 P1 0.000000 N2 0.000000 ROW 2) 3) 4) 5)

SLACK OR SURPLUS DUAL PRICES 2.000000 0.000000 4.000000 0.000000 0.000000 -0.333333 0.000000 -0.666667 11

6) 7)

0.000000 0.000000 2

1.000000 0.666667

NO. ITERATIONS=

Luego, la solucin del problema es x = 1, y = 2, n1 = 0, p2 = 1. Puesto que la variable no deseada p2 es distinta de 0, la solucin obtenida no es satisfactoria.

12

También podría gustarte