Introducción
Ya hemos visto algunos ejemplos en los que se plantea un problema de programación lineal a partir de un contexto específico. Hemos visto el problema de la dieta, el problema de la mochila y el problema del transporte. Hay algunos problemas que parecen un poco más complicados y que no es tan evidente desde el inicio que se pueden plantear como problemas de programación lineal. En esta ocasión veremos uno de ellos: el problema de producción e inventario.
A grandes rasgos, el problema consiste en modelar una fábrica que necesita tener lista cierta cantidad de inventario de un producto en determinados momentos del año. La fábrica puede producir cierta cantidad de producto que depende de la temporada del año. Quizás haya temporadas en las que puede producir más de lo que necesita, pero si hace eso incurrirá en costos de almacenaje. ¿Cómo puede distribuir su producción, almacenaje y despacho la fábrica para minimizar el costo y cumplir con su compromiso de inventario? Veamos a continuación que esta situación se puede plantear en términos de un problema de programación lineal.
Ejemplo del problema de producción e inventario
Una fábrica de alimento para gatos tiene un contrato para entregar las siguientes cantidades de alimento al final de cada uno de los trimestres indicados.
Trimestre | 1 | 2 | 3 | 4 |
Demanda en toneladas | 100 | 150 | 480 | 350 |
Debido a la estacionalidad de los ingredientes involucrados en la producción de alimento para gato, la fábrica tiene una capacidad de producción trimestral de 150 toneladas en los semestres 1 y 3; y de 260 toneladas en los trimestres 2 y 4.
El costo de producción de cada tonelada de alimento para gato es de \$50,000. Por otro lado, es posible almacenar el producto de un trimestre a otro incurriendo en un costo de \$8,000 por unidad. También se tiene la opción, con objeto de cumplir el contrato, de comprar a un competidor alimento para gato a \$52,000 la tonelada.
Se desea determinar un plan de producción, inventario y compra que satisfaga el contrato a costo mínimo.
Variables de decisión del problema de producción e inventario
Lo que se puede decidir en este problema es cuánto alimento producir en cada semestre, y cuánto alimento comprar a un competidor en cada semestre. De esta manera, planteamos las variables de decisión como sigue:
- $x_i$ = cantidad de alimento de gato (en toneladas) a producir en el trimestre $i$ , $i=1, \ldots ,4.$
- $y_i$ = cantidad de alimento de gato (en toneladas) a comprar al competidor en el trimestre $i$, $i=1, \ldots , 4.$
Restricciones del problema de producción e inventario
Una primera cosa a observar es que el alimento de gato que sobre de un periodo a otro puede ser usado para cubrir la demanda del segundo periodo, claro, con la desventaja de que esto incurrirá en un costo. ¿Cómo podemos determinar la cantidad de alimento que sobra? Por ejemplo, el alimento que sobra del primer al segundo periodo sería $x_1+y_1-100$, pues a lo producido y comprado habrá que quitar lo que sí se vendió. De manera similar podemos calcular otros sobrantes.
Con esto en mente, vamos a plantear primero las restricciones de demanda. Lo que requerimos es que todo el alimento sobrante, producido y comprado de cada periodo sea suficiente para cubrir la demanda. De esta manera, tenemos las siguientes restricciones.
\begin{align}
x_1 + y_1 &\geq 100\\
x_2 + y_2 + (x_1 + y_1 – 100) &\geq 150\\
x_3 + y_3 + (x_2 + y_2 + (x_1 + y_1 – 100) – 150) &\geq 480\\
x_4 + y_4 + (x_3 + y_3 + (x_2 + y_2 + (x_1 + y_1 – 100) – 150) – 480) &\geq 350.\\
\end{align}
Si bien estas desigualdades reflejan correctamente lo requerido, las condiciones anteriores son un poco complicadas de escribir. Por esta razón, vamos a introducir algunas variables auxiliares. Estas serán variables que no se deciden sino que están totalmente determinadas por lo que se produce y compra al competidor. De cualquier forma, es útil introducirlas en el modelo, y para dejar claro que dependen de las variables $x_i$, tendremos que establecer algunas restricciones dadas por igualdades. Hagamos esto. Definamos las siguientes variables.
- $w_i$ = cantidad de fertilizante (en toneladas) en inventario al final del trimestre $i$, $i=1, \ldots , 4.$
Como comentamos arriba, estas variables dependen de las variables $x_i$ y $y_i$; de hecho, por ejemplo: $$w_1 = x_1 + y_1 – 100.$$
Si reescribimos esta restricción obtenemos
$$x_1 + y_1 – w_1 = 100.$$
Análogamente:
\begin{align*}
x_2 + y_2 + w_1 – w_2 = 150\\
x_3 + y_3 + w_2 – w_3 = 480\\
x_4 + y_4 + w_3 – w_4 = 350.\\
\end{align*}
Tenemos una gran ventaja de usar estas restricciones. Es exactamente lo mismo «que se cubra la demanda en cada periodo» a que «lo que nos sobre en cada periodo sea $\geq 0$». Intenta convencerte de esto intuitivamente y luego verifica esto algebraicamente. Por ejemplo, nota que la primera condición de demanda ($x_1+y_1\geq 100$) es exactamente lo mismo que pedir $w_1=0$, y lo mismo para las demás. De esta manera, las restricciones (1),(2),(3) y (4) pueden cambiarse por pedir que cada $w_i\geq 0$.
Con esto terminamos con las restricciones de demanda. Tenemos otras restricciones dadas por la cantidad de toneladas de alimento que se pueden producir cada mes. Estas quedan expresadas en las siguientes desigualdades:
\begin{align*}
x_i \leq 150, i = 1,3\\
x_i \leq 260, i = 2,4.\\
\end{align*}
Finalmente, hay condiciones de no negatividad. Ya dijimos que $w_i\geq 0$ para $i=1,2,3,4$. Además de esto, claramente necesitamos
\begin{align*}
x_i, y_i,\geq 0 \quad i=1, \ldots , 4.
\end{align*}
Función objetivo del problema de producción e inventario
En cada periodo tenemos ciertas toneladas que se producen, ciertas que se compran y ciertas que se obtuvieron por almacenar de periodos anteriores. Cada una de ellas incurre en un costo.
Como cada tonelada producida cuesta \$50,000, el total de gasto por toneladas de alimento de gato producidas es de $50000(x_1+x_2+x_3+x_4)$. Como cada tonelada comprada a un competidos cuesta \$52,000, el total de gasto por toneladas de alimento de gato adquiridas a un competidor es de $52000(y_1+y_2+y_3+y_4)$. De manera similar, el costo incurrido por almacenar sobrantes es de $8000(w_1+w_2+w_3+w_4)$. Si juntamos todo en notación suma obtenemos que el costo total a minimizar es el siguiente:
\begin{align*}
z = 50000\sum_{i=1}^4 x_i + 52000\sum_{i=1}^4y_i + 8000\sum_{i=1}^4w_i.
\end{align*}
Resumen de formulación del problema de producción e inventario
En resumen, el PPL que obtenemos es:
\begin{align*}
Min \quad z &= 50000\sum_{i=1}^4 x_i + 52000\sum_{i=1}^4y_i + 8000\sum_{i=1}^4w_i.
&\\
s.a.&\\
x_1&+y_1-w_1 &= 100\\
x_2&+y_2+w_1-w_2 &= 150\\
x_3&+y_3+w_2-w_3 &= 480\\
x_4&+y_4+w_3-w_4 &= 350\\
&x_i \leq 150, i =1,3, \quad x_i \leq 260, i = 2,4\\
x_i, &y_i,w_i \geq 0, i=1, 2, 3, 4.\\
\end{align*}
Más adelante…
En este problema introducimos las variables $w_i$, y ese es uno de los trucos para ampliar el tipo de situaciones que se pueden atender con problemas de programación lineal. La siguiente entrada muestra nuestro último ejemplo introductorio: el problema de la ruta más corta. Como veremos, en este problema también es necesario aprovechar la situación del problema de manera creativa para poder llevarlo a un contexto lineal.
Tarea moral
- El problema se vuelve mucho más sencillo si únicamente hay un periodo, pues en ese caso no sobra inventario de un periodo a otro. Plantea un problema que refleje esta situación en el caso particular de la entrada y resuélvelo. Es decir, determina en ese (único periodo) cuál es la cantidad correcta de unidades a producir y cuál es la cantidad correcta de unidades a comprar al competidor, para optimizar el costo total.
- Cambia el planteamiento dado en la entrada por uno en el que el costo de almacenaje es de \$0. En ese caso, ¿cuál sería el plan de producción, inventario y compra óptimo?
- Estudia el planteamiento dado en la entrada y realiza cambios ya sea en las variables o restricciones para reflejar las siguientes situaciones:
- No hay ningún competidor al que se le pueda comprar producto para ayudar a cumplir la demanda.
- Hay un competidor, pero sólo permite comprarle 100 toneladas por periodo.
- En esta entrada dimos la formulación de un caso particular del problema de producción e inventario. Sin embargo, ya tienes todas las herramientas para plantear el problema de manera general. Realiza una formulación general en la que:
- Se tengan periodos $p_1, p_2, \ldots, p_n$ con requisitos de contrato $r_1, r_2, \ldots, r_n$ unidades a cubrir.
- Se tengan capacidades de producción $c_1, c_2, \ldots, c_n$ unidades en cada periodo.
- Se tengan costos $P$, $C$ y $A$ de producir, comprar al competidor y almacenar una unidad de producto, respectivamente.
- En un problema general de producción e inventario. ¿Por qué podría ser mala idea producir todo lo que se necesita vender? ¿Por qué podría ser mala idea producir mucho más de lo necesario en las temporadas en las que se puede? ¿Por qué podría ser mala idea cubrir toda la demanda con unidades compradas al competidor? Intenta justificar intuitivamente, y luego encuentra algunos casos particulares del problema que apoyen tus argumentos.
Entradas relacionadas
- Ir a Investigación de Operaciones
- Entrada anterior del curso: El problema del transporte
- Entrada siguiente del curso: El problema de la ruta más corta