Está en la página 1de 10

LINDO: Software para resolver modelos de programación lineal

Uso del Software en la resolución de modelos de programación lineal.

Para la resolución de modelos de programación lineal se empleará el programa LINDO. Este


software se puede emplear para resolver cualquier modelo de programación lineal. La
metodología que emplea en la resolución es un proceso iterativo alrededor de los puntos
críticos. (Vértices de la región factible)

La idea de este capítulo es que el estudiante pueda conocer e interpretar los resultados obtenidos
al resolver un modelo de programación lineal.

No solo es importante conocer el valor de la variables del modelo en el óptimo ( solución


óptima) , ni el valor que toma la función objetivo en el punto solución óptima ( valor óptimo)
sino también tener información sobre muchos otros aspectos importantes de un modelo de
programación lineal.

Por ejemplo, a través de la solución de un modelo de programación usando el lindo se tendrá


información sobre las restricciones, que tipo son activas ( las que determinan la solución
óptima) o inactivas ( aquellas restricciones o recursos con sobrantes o excesos)

Lo primero es convertir las restricciones en igualdades.

Variables de holgura:

Cualquier restricción <= puede ser convertida en una igualdad sumando una variable de holgura
no negativa al lado izquierdo.
Las variables de holgura se presentan en las restricciones del tipo:

X1 +X2 <= cte.

A la inecuación se le agrega una variable no negativa, entonces tenemos:

X1 +X2 + s = cte.

s >= 0
La variable s representará la variable de holgura de la restricción. Una holgura es aquello que
falta para llegar a un límite superior.
La variable de holgura s será el “faltante”, es decir la cantidad adicional que debe ser sumada al
lado izquierdo para convertir la desigualdad en igualdad.
Cada restricción <= tiene asociada una variable de holgura diferente para cada restricción del
modelo.

Variables de excedente

Cualquier restricción >= puede ser convertida en una igualdad sumando una variable de
excedente no negativa al lado izquierdo.
Para convertir una restricción >= en una igualdad, restamos una variable no negativa en el lado
izquierdo y la desigualdad cambia a igualdad.

X1+X2 >= cte.


Esto genera las siguientes condiciones:

X1+X2 - s = cte.
s >=0
s es la variable de excedente.

Una variable excedente es el exceso que debe ser reducido al lado izquierdo de la restricción de
desigualdad para convertirla en una igualdad.
Cada restricción >= tiene asociada una variables excedente diferente para cada restricción de
este tipo.

Valores óptimos de las variables de holgura y excedente

Las restricciones activas son precisamente aquellas para las cuales los valores óptimos de las
variables de excedente o de holgura son nulos. Las restricciones activas son las que determinan
la solución óptima.

Las restricciones inactivas son aquellas para las que los valores óptimos de las variables de
excedente y de holgura son positivos. Se podría decir que las restricciones inactivas son aquellas
en las que se encuentran sobrantes de recursos.

LINDO

El software lindo se puede encontrar en: www.lindo.com si se accede a la versión demo sería
importante para que se pueda practicar.

Para nombrar a las variables a usar en un modelo que será resuelto con el LINDO se debe
tener en cuenta lo siguiente:
Cada variable podrá tener un nombre con un máximo de 8 caracteres. El primer carácter debe
ser una letra, los otros siete podrán ser una combinación entre letras y números. En el nombre
no de estar presente ningún signo matemático.

Forma de ingresar un modelo al LINDO:

En la página en blanco del software escribir Max o Min según la función objetivo que se desea
colocar. Luego se escribirá la función objetivo, expresión matemática del objetivo perseguido.
En esta función no debe haber operaciones indicadas, ni cantidades constantes. Todo elemento
en la función objetivo es de carácter variable, es decir un número al que se llamará coeficiente
de la función objetivo acompañado por la variable correspondiente.

Ejemplo: Max ( Min) 3X + 4Y+ 5Z + 9W ..........

Luego de terminada la función objetivo, en la siguiente línea colocar Subject to o st (que


significa sujeto a) y le indicará al software que en la siguiente línea comenzarán las
restricciones. Escribir las restricciones de modo que no hayan operaciones indicadas, en el lado
izquierdo del signo <= o >= se encontrarán todas las variables acompañadas de sus coeficientes
y en el lado derecho del signo estará una cantidad que en algún caso podrá ser cero. Después de
colocar la última restricción en la línea siguiente se coloca end.

Ejemplo:
St
2X + 5Y +6Z > 120
1.5X + 6.3Y + 10Z < 1450
...........
end
Luego se va a la barra de herramientas y haciendo un clic en solve se vuelve a señalar solve y el
software resolverá el modelo o también se logra resolverlo haciendo clic en el bull de la barra de
herramientas.
Modelo en el LINDO:

Max ( Min) 3X + 4Y+ 5Z + 9W ..........


St
2X + 5Y +6Z > 120
1.5X + 6.3Y + 10Z < 1450
...........
end

Luego antes de entregar el resultado el software presenta dos ventanas; la primera preguntando
si se quiere el análisis de sensibilidad a los cual se responde que si y la otra ventana dará
información general sobre los resultados del modelo solo se deberá cerrar aquella ventana.

Análisis de Sensibilidad

El análisis de sensibilidad de un modelo de programación lineal es un análisis de resultados que


se hace una vez solucionado el modelo. El análisis de sensibilidad se basa en la proposición que
todos los datos a excepción de uno en el problema, se mantienen fijos.
El análisis de sensibilidad se realiza con la finalidad de observar el/los efectos que podría causar
un cambio en alguno de los parámetros del modelo. Este tipo de análisis es muy importante para
obtener información que nos pueda servir para cualquier proceso de toma de decisiones.
La solución de un problema de programación lineal por computadora tiene, cuando más, m
variables positivas, siendo m el número de restricciones.
Cuando la solución por computadora tiene menos de m variables positivas, se llama degenerada
y en este caso especial se deberá tener cuidado al interpretar algunos resultados. En el conteo de
variables positivas del resultado se tomarán en cuenta las variables principales (las introducidas
por el modelo) y las variables de holgura o excedente.

Tabla de resultados de la solución del LINDO

Los resultados emitidos para un modelo se pueden partir en cuatro sectores a continuación se
presentará un ejemplo:

1. Resultados del Valor óptimo y solución óptima

2. Resultados de las restricciones

3. Resultados sobre rangos de los coeficientes de la función objetivo

4. Resultados sobre los rangos de los lados derechos de las restricciones


Modelo escrito en el LINDO

Los resultados serán presentados de la siguiente forma:

Resultados del Valor óptimo y solución óptima

En esta primera parte de la tabla de resultados se podrá encontrar el valor objetivo que será el
valor que tomará la función objetivo en el punto solución óptima. Además también se
encontrará la solución óptima que será el valor que deben tomar las variables principales para
hacer el uso óptimo de los recursos, esto se muestra a continuación.

Se debe remarcar que el software numera como fila 1 a toda información referente a la función
objetivo y a partir de la fila 2 en adelante se referirá a información sobre las restricciones.
OBJECTIVE FUNCTION VALUE

1) 22800.00 Valor óptimo


VARIABLE VALUE REDUCED COST
X 0.000000 28.000000
Y 0.000000 105.000000
Z 120.000000 0.000000

Solución óptima

Costo Reducido

Es un valor que se les asigna a aquellas variables principales que en la solución óptima
tienen valor de cero. Para el costo reducido se tiene dos definiciones:

Definición 1

El costo reducido es la tasa (por unidad de aumento) a la cual empeora el valor objetivo
cuando una variable es forzada a entrar en una solución óptima. Esto es cuando en la
solución óptima se tiene un valor de alguna de las variables igual a cero y se fuerza a
ingresar a la solución, entonces el valor óptimo diminuirá en el costo reducido por cada
unidad de la variable que se fuerza a entrar en la solución.

Por ejemplo, para el modelo resuelto si por alguna razón se deben producir 10 unidades
del producto X esto tendrá el efecto de destinar recursos que deberían estar produciendo
z para producir los 10 X pedidos. Entonces el efecto de esto será que el valor óptimo
(VO) empeorará.

VO nuevo= VO -10*28= 22800-280=22520

Definición 2

El costo reducido es la cantidad en la que debe cambiar el coeficiente de una variable


(cuyo valor en la solución óptima es cero) en la función objetivo para obtener un valor
óptimo positivo. Si la variable ya tiene un valor óptimo positivo su costo reducido será
cero.

Para el ejemplo que se está tratando según esta definición el coeficiente de la variable
X en la función objetivo debería aumentar en 28 unidades monetarias (el costo
reducido) para que comience a tomarse en cuenta a la variable X en la solución óptima.
Por ejemplo, para que la variable X pueda ser considerada en la solución óptima su
coeficiente deberá ser:

Coeficiente actual = 200


Costo reducido = 28 nuevo coeficiente= 200+28=228

Entonces, si se quiere producir X sin que se reciba un “castigo” (empeorar el valor


óptimo por cada X que se debe hacer) el coeficiente de la variable tiene que aumentar
para ser tan rentable como Z en cuanto al consumo de recursos. Recordar que la
optimización no solo es producir el producto que brinde mayor utilidad unitaria sino que
esto deberá estar en relación al consumo de recursos activos.

Resultados de las restricciones

Este segundo bloque de resultados se puede obtener información sobre las restricciones o
recursos.

ROW SLACK OR SURPLUS DUAL PRICES


2) 0.000000 19.000000
3) 220.000000 0.000000

RESTRICCION ACTIVA

Resultados de holguras y/o excedentes


RESTRICCIÓN INACTIVA

Se tiene entonces en la columna Slack o Surplus (holgura o excedente) las cantidades de las
holguras o de los excedentes presentes en los recursos (los valores de esas variables s de las que
se comentó inicialmente en este capítulo). A través de estas cantidades se podrán identificar las
restricciones activas como aquellas restricciones o aquellos recursos que tiene holgura o
excedente igual a cero (son los recursos que se agotan en la producción óptima) y las inactivas
como aquellas restricciones o aquellos recurso que tiene n una holgura o excedente.

El precio dual

El precio dual para una restricción muestra la mejoría del valor óptimo cuando el lado derecho
de una restricción activa aumenta una unidad, con los demás datos fijos. Es la mejoría de la
función objetivo al contar con una unidad adicional de recurso activo.

Por ejemplo: si el lado derecho de la restricción de la fila 2 (que es la restricción activa)


aumenta en 1 unidad el valor óptimo será: Valor óptimo nuevo= 22800 +1*19=22819

Caso de degeneración

Si la suma de variables positivas es igual al número de restricciones del modelo entonces la


solución es no degenerada. El total de variables positivas se logrará establecer contando cuántos
valores positivos de las variables principales y sumando a estos la cantidad de valores
positivos de las variables de holgura y / o excedente.
Por ejemplo para este caso se tendrá dos valores positivos , uno es el valor de la variable z y el
otro será el valor asignado a la fila 3) en holgura y/o excedente, entonces como se tienen dos
restricciones, se cumple con la condición para decir que esta solución es no degenerada.

VARIABLE VALUE REDUCED COST


X 0.000000 28.000000
Y 0.000000 105.000000
Z 120.000000 0.000000

ROW SLACK OR SURPLUS DUAL PRICES


2) 0.000000 19.000000
3) 220.000000 0.000000

Análisis de sensibilidad

El análisis de sensibilidad se usa para establecer qué cambios se presentarían en la


solución de un modelo de programación lineal cuando cambia solo uno de sus
parámetros mientras los otros permanecen constantes.

El análisis de sensibilidad es importante para poder estimar los efectos de algunos


cambios en los resultados de un modelo. Hay dos tipos de cambios que se deben
examinar; el primero es el cambio en alguno de los coeficientes de la función objetivo
lo implicará que pueda cambiar la solución óptima; el segundo será el cambio de los
lados derechos de una restricción (el lado derecho de una restricción es la constante que
se encuentra al lado derecho del signo de la restricción).

A continuación se examinará primero los efectos de un cambio en uno de los


coeficientes de la función objetivo.

Rangos de coeficientes de la F. O.

La pendiente de la función objetivo será la que determine el punto solución óptima, en


este sentido cualquier cambio en alguno de los coeficientes de la función objetivo
podría afectar a la solución óptima del modelo. Si la solución óptima cambia esto hará
que cambie el plan de producción establecido lo cual no será conveniente que suceda de
improviso, por eso será importante el análisis del efecto sobre la solución óptima de
cualquier cambio en alguno de los coeficientes de la función objetivo.

A continuación se presenta la parte de la tabla de resultados que ayudará a establecer los


intervalos permitidos para cada coeficiente de la función objetivo para que la solución
óptima no cambie.

Las columnas “ALLOWABLE INCREASE” y “ALLOWABLE DECREASE” bajo el


encabezado “OBJ COEFFICIENT RANGES” dicen cuanto puede aumentar o disminuir
sin alterar la solución óptima, mientras los demás datos se conservan constantes. Por
supuesto, como la reditualidad en este rango varía, los valores del VO podrían variar.
Para encontrar el rango de variación para cada coeficiente de cada variable de decisión
de la función objetivo se debe seguir el siguiente esquema:

[Coeficiente actual – máxima disminución permitida; Coeficiente actual + máximo incremento permitido]
Para el ejemplo:
Si se quiere encontrar el intervalo para el coeficiente de la variable X en la función
objetivo se tiene:
Coeficiente actual= 200
Máxima disminución permitida= infinito
Máximo incremento permitido= 28

Entonces el rango será:] infinito; 228]

OBJ COEFFICIENT RANGES


VARIABLE CURRENT ALLOWABLE ALLOWABLE
COEF INCREASE DECREASE
X 200.000000 28.000000 INFINITY
Y 180.000000 105.000000 INFINITY
Z 190.000000 INFINITY 23.333332

Entonces si cualquier cambio interno o externo afecta de alguna manera el coeficiente


de la variable X en la función objetivo, la solución óptima no cambiará siempre y
cuando el nuevo coeficiente permanezca en el rango hallado. Si el nuevo coeficiente
sale del rengo entonces la solución óptima cambiará.

Ahora si se comprueba que la solución óptima no cambia, luego se puede calcular un


nuevo valor óptimo sin necesidad de recurrir a correr el modelo nuevamente.

Como esto es parte del análisis de sensibilidad entonces se mantendrá el hecho que solo
cambia un parámetro a la vez.

Rangos de lados derechos de restricciones

El análisis de sensibilidad de los lados derechos de las restricciones se torna importante


para prevenir algunos efectos negativos de la no disponibilidad de algunos recursos
considerados en el modelo original. Ninguna empresa o sistema productivo está libre de
perder cierta cantidad de recursos en el corto plazo. Este tipo de análisis permitirá
establecer los efectos, sobre el modelo y sus resultados, de cualquier disminución o
aumento de la disponibilidad de alguno de loas recursos.

Si el lado derecho de una restricción aumenta o disminuye lo que hará es un


movimiento paralelo que podría hacer cambiar la solución óptima o no. Para
establecer el efecto real de estas variaciones se tendrá que verificar primero si se trata de
una restricción activa o si es una restricción inactiva.

El precio dual y el rango válido

El precio dual es la mejoría o disminución del valor objetivo con el aumento o


disminución de una unidad del lado derecho de una restricción activa. La interpretación
del precio dual es válida para un rango, el cual queda especificado por las columnas
“ALLOWABLE INCREASE” y “ALLOWABLE DECREASE”. En este rango el
precio dual es constante
Para calcular el rango del lado derecho de una restricción: al valor actual se le resta la
máxima disminución permitida (lado izquierdo del intervalo), y al valor actual se le
suma el máximo aumento permitido
(lado derecho del intervalo)

Para encontrar el rango de variación para cada lado derecho de cada restricción se debe
seguir el siguiente esquema:

[Lado derecho actual – máxima disminución permitida; Lado derecho actual + máximo incremento permitido]

Para el ejemplo:
Si se quiere encontrar el intervalo para el lado derecho de la restricción de la fila 2 se
tiene:
Lado derecho actual= 1200
Máxima disminución permitida= 366.67
Máximo incremento permitido= Infinito

Entonces el rango será: [1200-366.67; 1200+infinito]


[833.33; infinito [
RIGHTHAND SIDE RANGES
ROW CURRENT ALLOWABLE ALLOWABLE
RHS INCREASE DECREASE
2 1200.000000 INFINITY 366.666656
3 500.000000 220.000000 INFINITY

El precio dual de una restricción inactiva será siempre cero. La información de


sensibilidad no nos proporciona nada sobre los nuevos valores de las variables de
decisión, sólo trata de explicar el comportamiento del valor objetivo.

Ahora, si el lado derecho de una restricción activa cambia, automáticamente cambiará el


punto solución óptima, esto podría ser usado para lograr incrementos en el valor óptimo.
Al incrementar la disponibilidad de uno de los recursos activos la función objetivo
aumentará su valor.

Si el cambio presentado en el lado derecho de una restricción activa hace que el nuevo
lado derecho caiga en el rango establecido entonces se podrá afirmar que el precio dual
correspondiente no cambia y el incremento o disminución del lado derecho llevará a un
incremento o disminución del valor óptimo en una cantidad igual al incremento o
disminución por el precio dual. Si el nuevo lado derecho sale del rango entonces se
tendrá que correr el modelo en el software otra vez porque los resultados habrán
cambiado.

Si el cambio (aumento o disminución) del lado derecho se da en una restricción


inactiva, entonces se tendrá en consideración lo siguiente: Si se trata de una restricción
inactiva con holgura, el incremento de su lado derecho no tiene sentido, pues si ya sobra
recurso no será decisión adecuada incrementar su disponibilidad. Ahora una
disminución de su lado derecho afectará a los resultados del modelo siempre y cuando
esta disminución sobrepase a su holgura. Si esto ocurre entonces el nuevo lado derecho
estará fuera del rango lo que nos indicará que el precio dual correspondiente a ese lado
derecho a cambiado. Como el precio dual de una restricción inactiva es cero si este
cambiará hacia un valor determinado lo que nos indicará que ahora es una restricción
activa.

Cuando se tiene una restricción del tipo mayor o igual como restricción activa entonces
aparecerá su precio dual como negativo.

A continuación se presenta un ejemplo de aplicación en el que se aplicará todos los


conceptos tratados en este capítulo