Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


PROGRAMACIÓN LINEAL: LINDO, Guías, Proyectos, Investigaciones de Programación Lineal

Manual sobre el uso del software Lindo

Tipo: Guías, Proyectos, Investigaciones

2020/2021

Subido el 14/02/2022

sorano-2
sorano-2 🇲🇽

4 documentos

1 / 13

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
LINDO:
Explicación del significado
de los resultados
obtenidos mediante el
software LINDO
Realizado por: Virginia N. Barros.
Supervisado por: Pablo Echevarría.
pf3
pf4
pf5
pf8
pf9
pfa
pfd

Vista previa parcial del texto

¡Descarga PROGRAMACIÓN LINEAL: LINDO y más Guías, Proyectos, Investigaciones en PDF de Programación Lineal solo en Docsity!

LINDO:

Explicación del significado

de los resultados

obtenidos mediante el

software LINDO

Realizado por: Virginia N. Barros.

Supervisado por: Pablo Echevarría.

Para poder entender el significado de la solución obtenida mediante LINDO se trabajará sobre un simple problema de producción.^1 Antes de realizar cualquier tipo de análisis es conveniente conocer el problema, sus variables, el significado de sus restricciones, como así también del funcional. Al igual que en Simplex, para poder realizar un buen análisis debemos saber cuántas variables van a formar parte de nuestra solución. ¿Cómo sabemos cuántas variables van a tomar un valor distinto de cero? ¿Lo sabemos exactamente?. Si realizamos un análisis paralelo al Simplex, podemos decir que vamos a tener en la base tantas variables como restricciones haya^2 ... ¿Esto implica que todas ellas van a ser distintas de cero?^3.

Problema a resolver:

Una empresa fabrica y vende tres productos (1, 2 y 3). Se dispone de 10 kg. diarios de materia prima y de 20 hs de máquina diaria. Cada producto requiere 1, 2 y 1 kg de materia prima, respectivamente, y de 4, 2 y 2hs de máquina por unidad. Los beneficios unitarios son de 4, 1 y 2$/unidad. Debido a un contrato firmado con un cliente se deben producir como mínimo, 2 unidades diarias de producto 2.

Resolución:

Pi: cantidad de producto i (i=1...3) Se trabajará con variables continuas. Para facilitar la comprensión de los resultados, se colocarán “títulos/etiquetas” a cada una de las restricciones, dado que, de no hacerlo, LINDO las enumera (1 corresponde al valor del funcional 2 a la primera restricción y así sucesivamente).

(^1) Este ejercicio se extrajo de la guía de la práctica, ejercicio 5.11, con el fin de que puedan comparar los resultados obtenidos por LINDO con los obtenidos mediante Simplex. 2 3 Recordar tabla inicial del Simplex, en donde cada variable de la base es la slack de una restricción. ¡Pensarlo!

P1 3.333333 0.
P2 3.333333 0.
P3 0.000000 0.

Aquí el LINDO nos presenta el valor ( VALUE ) que tomaron cada una de las “variables producto” ( VARIABLE : aquellas variables que definimos “de manera explícita en el modelo) en el óptimo. En este caso, podríamos informar que se están fabricando 3.33 unidades de producto 1, 3.33 unidades de producto 2 y no se está fabricando producto 3^6. Hasta acá parecería que no hay nada nuevo, estos valores que obtuvimos son los que en Simplex se encuentran representados por los Bk (si la variable correspondiente se encuentra en la base). Pero el LINDO nos aporta más información para poder realizar un análisis más productivo de la situación.

¿Qué representa REDUCED COST? Es lo que llamamos costo de oportunidad (costo reducido) y que está relacionado con las “variables producto” (corresponde a los zj-cj de estas variables en la tabla de Simplex), y representa en cuánto disminuirá el valor del funcional asociado si se le asignara un valor no nulo a dicha variable, es decir, por cada unidad^7 fabricada de ese producto.

En este caso se está fabricando tanto P1 como P2, por lo tanto dichas variables poseen valor no nulo y, como hemos visto en Simplex, dichas variables formarían parte de la base en la tabla óptima del Simplex. Como también vimos, al formar parte de la base, poseen un costo de oportunidad nulo^8 , lo que tiene sentido ya que esos productos ya se están fabricando. Por lo contrario, no se está fabricando P3 y el REDUCED COST nos está indicando que por cada unidad que fabriquemos de P3 nuestro funcional va a disminuir en 0.33^9.

(^6) Recordar que estamos trabajando con variables continuas. (^7) Se habla de unidad para poder dar una definición general, pero recuerden que estamos trabajando con variables continuas. 8 9 Recordar que los zj-cj de las variables que se encuentran en la base siempre valen cero. Esto se cumple dentro de cierto rango ... ¡ya lo vamos a ver!

Hasta el momento LINDO nos aportó información sobre las “variables producto” ... ¿pero de dónde sacamos la información perteneciente al resto de las variables del problema que aparecen cuando planteamos Simplex? A continuación se detalla la información sobre dichas variables, las variables slack o de holgura de nuestro problema.

ROW SLACK OR SURPLUS DUAL PRICES
MPRIMA) 0.000000 0.
HSMAQ) 0.000000 0.
DEMMIN2) 1.333333 0.

Cada una de estas filas ( ROW ) representa a la variable slack asociada a la restricción correspondiente (por eso la importancia de ponerle nombres a las restricciones!!!). Por ejemplo, MPRIMA y HSMAQ representan las cantidades que me están sobrando (analizar la restricción, en este caso es de menor igual) de dichos recursos (en este caso valen cero, lo que representa que ambos recursos son limitantes, es decir, están saturados). Por otro lado, DEMMIN2 representa en cuánto estoy superando la demanda mínima del producto 2, si observamos el valor que toma ( SLACK OR SURPLUS ), vemos que estamos produciendo 1.33 unidades por encima de la demanda mínima (lógico pues P2=3.33).

¿Qué representa el DUAL PRICE? Es lo que llamamos valor marginal (en Simplex: zj- cj de las variables que no son producto, es decir, de las variables slack o de holgura). Representa en cuánto mejorará^10 el valor actual del funcional si “relajásemos” la restricción asociada en una unidad^11.

En nuestro problema esto se traduce a: en cuánto mejoraría el valor actual del funcional si:

(^10) Aumentar en un problema de máximo, disminuir en un problema de mínimo. (^11) Dentro de cierto rango. Se habla de unidad para poder dar una definición general, pero recuerden que estamos trabajando con variables continuas.

RANGES IN WHICH THE BASIS IS UNCHANGED: Rangos en los que la base no cambia ... ¿Qué significa esto? ... Estos rangos me muestran en cuánto puedo variar el valor actual que posee el coeficiente asociado a cada variable en el funcional (suponiendo que es el único coeficiente que varía), sin que se modifique la estructura de la solución actual. ¿Qué quiere decir esto último? ... Si modificamos alguno de estos coeficientes (son los Ci del Simplex), el valor del funcional se modificará, como así también se modificarán los costos de oportunidad (zj- cj del Simplex)... pero entonces... ¿Qué no queremos que se modifique? Lo que no queremos que se modifique es la estructura actual de la solución, es decir, queremos que esta solución siga siendo la óptima, lo que implica que las variables (tanto las producto como las slack) sigan teniendo el mismo valor, el óptimo sigue siendo el mismo, pero no así el valor del funcional.^13 (Si seguimos fabricando la misma cantidad de productos pero su beneficio varía, obviamente variará el funcional).

Entonces lo que nos muestra el LINDO es: ß CURRENT COEF : valor actual del coeficiente asociado a la variable en el funcional (en este caso C1=4, C2=3, C3=2). ß ALLOWABLE INCREASE : incremento permitido. “En cuánto puedo aumentar el valor actual de dicho coeficiente sin que se modifique la estructura de la solución actual”. ß ALLOWABLE DECREASE : decremento permitido. “En cuánto puedo disminuir el valor actual de dicho coeficiente sin que se modifique la estructura de la solución actual”.

Es decir que, por ejemplo, para el caso de P1, si C1 se encuentra entre [4-1,4+2], la estructura de la solución no se modificará.^14

El mismo análisis se realiza para las variables slack:

RIGHTHAND SIDE RANGES

(^13) En Simplex pediríamos que la tabla óptima que obtuvimos siga siéndolo. (^14) ¡Prueben qué sucede en los límites del rango!.

ROW CURRENT ALLOWABLE ALLOWABLE
RHS INCREASE DECREASE
MPRIMA 10.000000 9.999999 2.
HSMAQ 20.000000 8.000000 9.
DEMMIN 2.0000000 1.333333 INFINITY

Aquí estos coeficientes representan el término independiente de cada una de las restricciones. Lo que se busca determinar con estos rangos es similar al caso anterior, ya que se pretende que no se modifique la estructura de la solución actual. Al variar el término independiente de una restricción (suponiendo que es el único coeficiente que varía), el valor del funcional se modificará como así también los zj-cj, lo que no se modifica es el valor que toman las variables en la solución óptima. Hasta acá parecería que, para las variables slack sucede lo mismo que para las variables productos, y esto es así, pero la diferencia radica en el significado que tienen los valores marginales (zj-cj) y quiénes son las variables que forman parte de la solución óptima cuando se habla de variaciones en los términos independientes. Si bien hablaremos de estos temas cuando veamos Dual, lo que sí les adelanto es que: no se modifican los valores marginales de las variables pero sí se modifican los valores que toman las variables producto.

Volviendo al ejemplo de estudio, por ejemplo, para la demanda mínima del producto 2 tenemos que ésta puede variar en el rango [-infinito, 2+1.33] sin que cambie la estructura de la solución óptima (recordar qué implica esto).

Análisis Extra

Se modifica el problema inicial: ahora C2=1. En principio vemos que, según los rangos de variación para los coeficientes del funcional, el valor de C2 puede disminuir de 4 a 2 sin que se modifique la estructura de la solución. Por lo tanto, a priori, no sé cuál será mi nueva solución, pero sí sé que se va a modificar la estructura de la solución actual. Si cambiamos dicho valor y volvemos a realizar la corrida LINDO nos da el siguiente reporte:

restricción de materia prima? Si bien esta variable no forma parte de la base ... ¿qué valor marginal está tomando? ... Cero ... ¿qué significa esto? Significa que estamos ante un caso de soluciones alternativas ... ¿Por qué? ¿Qué relación hay con Simplex?^15

Anexo

Posibles Estados

Los posibles estados (status) son^16 :

(^15) Eso se los dejo pensar a ustedes ... ¿Qué otros casos particulares podrían detectar? ¿Cómo? (^16) Extraído de la Guía de Lindo que se encuentra en la página de la materia.

l Infeasible : el modelo es incompatible (no tiene solución válida). Previamente se presenta un cuadro que explica la situación (NO FEASIBLE SOLUTION…).

l Unbounded : el modelo es un poliedro abierto (el funcional no está restringido). Previamente se presenta un cuadro que explica la situación (UNBOUNDED SOLUTION …).

l Optimal : se llegó a una solución óptima. Se presenta la posibilidad de realizar un análisis de sensibilidad del rango de variación de los coeficientes de la función objetivo y los términos independientes de las restricciones. En todos los casos, una vez que se cierran los cuadros emergentes se podrá ver el reporte de la corrida que se muestra a continuación.

Breve reseña histórica^17

Si bien no tiene que ver con LINDO en sí, quería acercarles la historia de quién descubrió el método Simplex porque a mí me resultó interesante.

George Bernard Dantzig (8 de noviembre de 1914 – 13 de mayo de 2005) fue un matemático reconocido por desarrollar el método simplex y es considerado como el "padre de la programación lineal". Recibió muchos honores, tales como el premio a la teoría John von Neumann en 1974 y la Medalla Nacional a la Ciencia en 1975.

Fue miembro de la Academia Nacional de Ciencias, la Academia Nacional de Ingeniería y la Academia Americana de Artes y Ciencias.

Obtuvo su grado de bachiller en matemáticas y físicas en la Universidad de Maryland en 1936, su grado de magister en matemáticas en la Universidad de Michigan, y su doctorado en Berkeley en 1946. Recibió además un doctorado honorario de la universidad de Maryland en 1976.

(^17) Extraída de : http://es.wikipedia.org/wiki/George_Dantzig

podido pensar positivamente, me hubiese desalentado y nunca los hubiese

podido resolver”.