Restricción con Precio Sombra Negativo en Programación Lineal

En Programación Lineal, el Precio Sombra se refiere a una tasa de cambio del valor óptimo ante una modificación marginal del lado derecho de una restricción, entendiendo como marginal una modificación que permita mantener las actuales restricciones activas para el problema (se conserva la base óptima). En este tipo de análisis se asume que el resto de los parámetros del modelo permanecen constantes.

En artículos anteriores hemos analizado Cómo calcular el Precio Sombra de una Restricción Gráficamente y en forma complementaria Cómo interpretar los Informes de Sensibilidad de Restricciones de Solver de Excel. Esto sin duda es una buena base conceptual para entender el significado del Precio Sombra de una restricción.

En esta oportunidad nos referiremos a una situación que a priori podría parecer anómala, pero que definitivamente no lo es: que una restricción asociada a un modelo de Programación Lineal tenga un Precio Sombra negativo.

Para ilustrar este escenario utilizaremos nuevamente el Modelo de Transporte el cual se representa esquemáticamente a continuación:

Problema de Transporte

La resolución computacional de este modelo utilizando Solver de Excel se resume a continuación:

solución modelo de transporte

Notar que la Planta 1 tiene un exceso de capacidad de 40.000 unidades (diferencia entre su capacidad de 160.000 y las 120.000 unidades que despacha).

Por el contrario la Planta 2 funciona a máxima capacidad (despacha 120.000 unidades). El Informe de Sensibilidad de restricciones reporta lo siguiente:

precio sombra negativo

La restricción de capacidad de la Planta 2 tiene un Precio Sombra negativo de magnitud -1. Esto significa que si se incrementa en una unidad la capacidad de la Planta 2 (a 120.001 unidades) el nuevo valor óptimo será 939.999.

Análogamente, cualquier cambio en la capacidad de la Planta 2 en el intervalo [120.000-40.000,120.000+40.000]=[80.000,160.000] generará una modificación del valor óptimo del problema proporcional al Precio Sombra de la restricción de capacidad de dicha planta.

Por ejemplo, si la capacidad de la Planta 2 aumenta a 130.000 unidades, el nuevo valor óptimo será:

V(\bar{P})=V(P)+\Delta b\cdot \pi =940.000+(130.000-120.000)\cdot -1=930.000

Por el contrario, si la capacidad de la Planta 2 disminuye a 110.000 unidades, el nuevo valor óptimo es:

V(\bar{P})=V(P)+\Delta b\cdot \pi =940.000+(110.000-120.000)\cdot -1=950.000

¿Por qué se produce este fenómeno?. Básicamente por una reasignación debido a que resulta ser relativamente más conveniente generar despachos desde la Planta 2 en comparación a la Planta 1 (que tiene capacidad ociosa y por tanto un Precio Sombra igual a cero).

7 Recursos Gratuitos para el estudiante de Investigación de Operaciones

En Internet existen recursos gratuitos valiosos para los estudiantes de los cursos de Investigación de Operaciones (conocido también como Investigación Operativa) que son de gran ayuda para complementar los conceptos tratados en el aula y la bibliografía. En el siguiente artículo ponemos en disposición de nuestros lectores algunos recursos que recomendamos:

1. Solver: Es sin duda la principal herramienta para resolver modelos de optimización de tamaño reducido utilizado por los alumnos de cursos de ingeniería. Este complemento de Excel se puede descargar desde el sitio web de Frontline en su versión comercial (Premium Solver Pro) para implementar modelos de mayor tamaño.

premium-solver-interfaz

2. What’sBest!: Es la alternativa a Solver dado que funciona integrada en una planilla de cálculo (Excel). La interfaz es intuitiva y seguramente quién domine Solver no demorará mucho en aprender los elementos básicos de este programa. What’sBest! ha sido desarrollado por la empresa de software Lindo.

variables-whatbest

3. AMPL: Es un lenguaje de programación matemática que permite abordar la formulación y resolución de modelos de optimización de programación lineal, programación entera y programación no lineal (entre otros). Esta plataforma es popular para modelos de mayor complejidad que requieren para su resolución de algoritmos especializados.

solucion-ampl-problema-no-l

4. GAMS: Es una herramienta de formulación matemática alternativa a AMPL que permite formular y resolver modelos de optimización de complejidad mayor.

5. NEOS Solvers: Es un portal que consolida una gran variedad de solvers (algoritmos) que permiten resolver distintas categorías de modelos de optimización formulados en un lenguaje matemático determinado (como AMPL y GAMS). El procedimiento es el siguiente: se selecciona un solver que permita resolver nuestro modelo (depende del lenguaje de programación matemática y el tipo de modelo), se sube el archivo del  modelos (y/o datos) y se obtienen los resultados online.

Solver NEOS

6. Geogebra: Es un excelente programa que nos ayuda a graficar distintas formas geométricas y en particular resolver gráficamente modelos de optimización lineales o no lineales. Este programa se puede descargar gratuitamente e instalar en nuestro computador o alternativamente utilizar su aplicación web directamente sin necesidad de descargar el programa.

solucion-grafica-nueva-rest

7. Método Simplex (ProgramacionLineal.net): Es una herramienta que permite resolver modelos de programación lineal a través del método simplex, mostrando paso a paso las respectivas iteraciones, solución óptima y valor óptimo.

tabla-simplex-nueva-variabl

8. Linear Programming: Versión en inglés de los principales artículos de este Blog que trata sobre la Investigación de Operaciones y en particular de la Programación Lineal, con recursos educativos y ejercicios resueltos.

Problema de Producción e Inventario resuelto con Solver de Excel

La Programación Lineal nos permite abordar distintos problemas de naturaleza real algunos de los cuales ya hemos tratado en artículos anteriores como el Problema de Transporte, el Problema de Mezcla de Productos y el Problema de la Dieta.

En el siguiente artículo analizaremos otra aplicación clásica conocida como el Problema de Producción e Inventario cuyas extensiones y variantes se pueden consultar adicionalmente en la categoría del Plan Maestro de la Producción.

El Problema de Producción e Inventario consiste básicamente en determinar una política de producción en el tiempo que permita satisfacer ciertos requerimientos de demanda, respetando las limitantes de producción y a un costo mínimo.

Este tipo de modelos se puede extender para varios productos, sin embargo, en esta oportunidad consideraremos un solo producto para su ilustración.

En este contexto, consideremos los siguientes antecedentes de producción que se presentan a continuación:

producción e inventario

Luego, definimos el siguiente modelo de optimización lineal:

Supuesto: se dispone de un inventario inicial de 50 unidades, es decir, I0=50.

1. Variables de Decisión:

  • Xt: Unidades a producir en el mes t (t=1,..,6 con t=1 => Enero; t=6 => Junio)
  • It: Unidades a almacenar en inventario al final del mes t (t=1,..,6 con t=1 => Enero; t=6 => Junio)

2. Función Objetivo: Minimizar los costos de producción (destacados con color azul) y costos de inventario (destacados con color rojo) durante el período de planificación definido por:

60X1 + 60X2 + 55X3 + 55X4 + 50X5 + 50X6 + 15I1 + 15I2 + 20I3 + 20I4 + 20I5 + 20I6

De forma compacta (parametrica) se puede representar la función objetivo como:

Minimizar\sum_{t=1}^{6}[C_{t}\cdot X_{t}+H_{t}\cdot I_{t}]

Donde C_{t} es el costo unitario de producción en el mes t (por ejemplo C_{1}=60) y H_{t} es el costo unitario de almacenar unidades en inventario durante el mes t (por ejemplo H_{1}=15)

3. Restricciones:

a) Satisfacer los requerimientos de demanda (conocida como restricción de Balance de Inventario).

Por ejemplo, el inventario disponible al final del mes de Enero será el resultado de la producción del mismo mes, más el inventario inicial (que se asume un dato, en este caso 50 unidades) menos la demanda satisfecha durante el mes de Enero.

  • X1 + 50 – I1 = 100 (Enero)
  • X2 + I1 – I2 = 130 (Febrero)
  • X3 + I2 – I3 = 160 (Marzo)
  • X4 + I3 – I4 = 160 (Abril)
  • X5 + I4 – I5 = 140 (Mayo)
  • X6 + I5 – I6 = 140 (Junio)

Notar que la restricción se Balance de Inventario impuesta para un producto se puede generalizar como: X_{t}+I_{t-1}-I_{t}=d_{t}, donde d_{t} representa la demanda estimada (parámetro) para el mes t.

b) Respetar la capacidad máxima de producción mensual (oferta).

Se establece que la oferta o producción máxima mensual no puede superar la capacidad de producción.

X1<=120   X2<=120   X3<=150   X4<=150   X5<=150   X6<=150

O simplemente X_{t}\leq O_{t} donde O_{t} es la capacidad de producción máxima del mes t (parámetro).

c) Condiciones de no negatividad.

De forma natural y dada nuestra definición cada variable de decisión debe ser no negativa.

Xt >= 0    It >= 0  Para todo t

El siguiente tutorial muestra cómo implementar este Modelo de Producción e Inventario correspondiente a la Programación Lineal en Solver de Excel:

La solución óptima se muestra a continuación con un valor óptimo de $43.450. Se puede apreciar que se producen en total 780 unidades entre Enero y Junio las cuales junto al inventario inicial de 50 unidades permiten satisfacer los requerimientos de demanda mensualmente.

solución problema producción e inventario

¿Quieres tener el archivo Excel con la resolución en Solver de este problema?.

[sociallocker]

MUCHAS GRACIAS!. DESCARGA AQUÍ EL ARCHIVO

[/sociallocker]

Cómo detectar que un Problema es No Acotado con el Método Simplex

El Método Simplex es un algoritmo que nos permite resolver modelos de Programación Lineal que en ciertas ocasiones permite identificar casos excepcionales como infinitas soluciones óptimas o que el problema es no acotado. En este contexto el Método Simplex rescata las condiciones establecidas en el Teorema Fundamental de la Programación Lineal.

En la aplicación del Método Simplex, un problema no acotado se detecta cuando en una iteración cualquiera existe una variable no básica con costo reducido negativo y todos los elementos en la columna de dicha variable son negativos o cero. Es decir, no se puede seleccionar un pivote para determinar la variable que debe dejar la base.

Consideremos el siguiente modelo de Programación Lineal:

modelo lineal no acotado

Si resolvemos gráficamente dicho modelo nos podemos percatar que éste es no acotado. Notar que el dominio de soluciones factibles (área sombreada o achurada) es no acotado dado que crece indefinidamente en la dirección de la variable X2.

Las curvas de nivel de la función objetivo crecen a su mayor tasa en la dirección del vector gradiente \triangledown f(X_{1},X_{2})=(4,6) lo que indica que se podría desplazar indefinidamente en esa dirección y siempre interceptar el dominio de soluciones factibles.

problema no acotado

¿Cómo podemos detectar esta situación (Problema No Acotado? utilizando el Método Simplex?

Para ello llevamos el modelo a su forma estándar, agregando X3 y X4 como variables de holgura de la restricción 1 y 2, respectivamente. Lo anterior define la siguiente tabla inicial del método:

método simplex no acotado

Notar que X2 es la variable no básica con el costo reducido más negativo y siguiendo ese criterio debería ser aquella que ingresamos a la base. Sin embargo, no es factible hacer el criterio de factibilidad o mínimo cuociente debido a que los elementos en la columna de X2 son negativos o cero. En esta instancia ya se puede afirmar que el problema es no acotado.

Observación: Se puede verificar que si seleccionamos X1 como la variable que entra a la base y se aplica una iteración del Método Simplex se llegara a una conclusión similar a la presentada anteriormente.

Instalación del Complemento Solver en Excel 2003

El complemento de Solver de Excel es una poderosa herramienta que permite resolver modelos de optimización utilizando una planilla de cálculo (Excel). En artículos anteriores hemos mostrado Cómo resolver Modelos de Programación Lineal utilizando Solver y algunas aplicaciones clásicas como el Problema de Transporte y Problema de la Dieta.

Las características de Solver han evolucionado en las distintas versiones de Office y en esta oportunidad mostraremos cómo activar este complemento en la versión del año 2003 y 2007. Para ello se deben seguir los siguientes pasos:

Paso 1: Abrir el programa Excel y en el menú de Herramientas seleccionar Complementos. 

Complementos Excel

Paso 2: Seleccionar la opción Solver y luego Aceptar.

Complemento Solver

Paso 3: Puede ser necesario aprobar la ejecución del complemento como muestra la imagen a continuación. En este caso se debe seleccionar

Instalar Solver

Paso 4: Una vez completada la activación de Solver el complemento estará disponible en el menú de Herramientas de Excel.

Solver Instalado

Una alternativa a Solver es el complemento de Excel OpenSolver el cual se puede descargar gratuitamente desde www.opensolver.org. En el artículo Cómo resolver un modelo de Programación Lineal con OpenSolver mostramos su utilización en un problema sencillo. Adicionalmente What’sBest! resulta ser otra excelente alternativa para Solver y desarrollado para Excel. En el siguiente tutorial detallamos cómo descargar e instalar What’sBest!.