Archivo de la etiqueta: generalización

Investigación de Operaciones: El problema de producción e inventario

Por Aldo Romero

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.

Abundan las aplicaciones de la programación lineal para planificar la producción y para controlar inventarios. El siguiente es solo una de múltiples aplicaciones que se les puede dar a este tipo de problemas.

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 empresa productora de videojuegos indie acaba de finalizar su último gran lanzamiento y está lista para producirlo en masa en su formato físico. La siguiente tabla indica la demanda de los primeros 3 meses de lanzamiento.

Meses transcurridos a
partir del lanzamiento
012
Demanda en miles de copias
del mes en curso
806040
Productividad disponible del
mes en curso
1105030

Como el primer mes de lanzamiento es el más importante, la empresa decide que se pueden producir hasta 110 mil copias ese mes, y gradualmente va a reducir su productividad a 50 mil copias el segundo mes y 30 mil el tercer mes; esto con la finalidad de enfocar más tiempo y recursos en otras producciones.

La empresa productora y las tiendas donde se venden tiene un contrato que establece en particular dos cosas:

  • Las tiendas tienen que tener en stock la cantidad de copias demandas cada mes, y esta cantidad de copias será las que la empresa productora entregó este mes junto con las que sobraron el mes pasado
    • Si se entregan más copias que las demandadas por la tienda, se cobrará un costo de almacenamiento de \$2000 al mes por cada mil copias que están siendo almacenadas en tienda fuera de la demanda establecida.

El costo de producción de cada mil copias es de \$20000. Se desea determinar el plan de producción e inventario que satisfaga el contrato con estas tiendas a fin de minimizar los costos.

Variables de decisión

De manera intuitiva, vamos a hacer nuestras variables de decisión las miles de copias que se van a producir el mes en curso desde el lanzamiento del juego.

$x_i$ = miles de copias a producir en el mes $i$ desde el lanzamiento del juego. $(i \in \{1, 2, 3\})$.

Función objetivo

Como se mencionó, el plan de producción tiene que minimizar los costos para la empresa, tanto los gastos de producción de sus videojuegos como el almacenamiento de estos.

El costo de producción es simplemente el número de copias producidas por cada mes, multiplicado por el costo de fabricación de cada copia ($\$20$). Esto es: $20(x_1 + x_2 + x_3)$.

Y luego consideramos el costo de almacenamiento de las copias que no fueron demandadas por la empresa en ese mes. Entonces, para el primer mes, $x_1 – 80$ son las miles de copias que la empresa tiene que cubrir en gastos de almacenamiento. Para el segundo mes, las copias demandadas al momento son las acumuladas del primer y segundo mes ($140000$) y los juegos producidos son solamente $x_1 + x_2$. Entonces, los miles de juegos por los que hay que cubrir el costo de almacenamiento son $x_1 + x_2 – 140$. Y para el tercer mes, las copias demandadas son las acumuladas de los primeros 3 meses ($180000$) y los juegos producidos serán $x_1 + x_2 + x_3$ en miles de copias, y así, los costos de almacenamiento para el tercer mes serán $x_1 + x_2 + x_3 – 180$.

Entonces, el número de miles de copias por las que hay que cubrir costos de almacenamiento para estos 3 meses será: $(x_1 – 80) + (x_1 + x_2 – 140) + (x_1 + x_2 + x_3 -180)$. Y esta cantidad la multiplicamos por el costo de almacenamiento mensual por millar de copias (\$2000).

Entonces, juntando las expresiones, el costo total que hay que minimizar sería:

$$Min \quad z = 20000(x_1 + x_2 + x_3) + 2000[(x_1 – 80) + (x_1 + x_2 – 140) + (x_1 + x_2 + x_3 – 180)]$$

O si lo queremos poner de la forma más resumida posible, esto es:

$$Min \quad z = 26000x_1 + 24000x_2 + 22000x_3 – 800000$$

Restricciones del problema de producción e inventario

Primero, vayamos con las restricciones de oferta:

\begin{align*}
x_1 \leq 110\\
x_2 \leq 50\\
x_3 \leq 30\\
\end{align*}

Después, vayamos con las restricciones de demanda:

\begin{align*}
x_1 \geq 80\\
x_2 + (x_1 – 80) \geq 60\\
x_3 + (x_1 + x_2 – 140) \geq 40\\
\end{align*}

Recordemos que la razón de la última restricción es para que la empresa productora no se quede ninguna copia más de las demandadas para que no haya cuota por almacenamiento en las tiendas para el cuarto mes.

Y naturalmente nuestras variables de decisión son no negativas ya que hablamos de la cantidad de unidades que tenemos de un producto.

Resumen de formulación del problema de producción e inventario

En resumen, nuestro problema de programación lineal quedaría planteado así:

\begin{align*}
Min \quad z = 20000(x_1 + x_2 + x_3) &+ 2000[(x_1 – 80) + (x_1 + x_2 – 140) + (x_1 + x_2 + x_3 – 180)]\\
&s.a\\
x_1 &\leq 110\\
x_2 &\leq 50\\
x_3 &\leq 30\\
x_1 &\geq 80\\
x_2 + (x_1 – 80) &\geq 60\\
x_3 + (x_1 + x_2 – 140) &\geq 40\\
x_i &\geq 0, i \in \{1, 2, 3\}\\
\end{align*}

Más adelante…

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

  1. El problema se vuelve mucho más sencillo si únicamente hay dos periodos. Plantea un problema que refleje esta situación en el caso particular de la entrada y resuélvelo. Es decir, determina en esos dos periodos (el primer y segundo mes) cuál es la cantidad correcta de unidades a producir por mes, para minimizar el costo total.
  2. Cambia el planteamiento dado en la entrada por uno en el que el costo de almacenaje en las tiendas sea de \$0. En ese caso, ¿cuál sería el plan de producción e inventario óptimo?
  3. 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:
    1. Se tengan n periodos con demanda de unidades$d_1, d_2, \ldots, d_n$ por cada periodo.
    2. Se tengan capacidades de producción $o_1, o_2, \ldots, o_n$ unidades en cada periodo.
    3. Se tengan costos $P$ y $A$, de producir y almacenar una unidad de producto respectivamente.
  4. En un problema general de producción e inventario. ¿Por qué podría ser mala idea producir mucho más de lo necesario en las temporadas en las que se puede? Intenta justificar intuitivamente, y luego encuentra algunos casos particulares del problema que apoyen tus argumentos.

Respuestas

1.- Si eliminamos un mes del problema, tendríamos la siguiente tabla de productividad y demanda:

Meses transcurridos a
partir del lanzamiento
01
Demanda en miles de copias
del mes en curso
8060
Productividad disponible del
mes en curso
11050

Tenemos las mismas variables de decisión: $x_i$ = miles de copias a producir el mes $i$ desde el lanzamiento del juego. $i \in \{1, 2\}$

Para la función objetivo, el costo de producción de las copias va a ser: $20000(x_1 + x_2)$. Los gastos de almacenamiento del primer y segundo mes serán: $2000[(x_1 – 80) + (x_1 + x_2 – 140)]$.

Entonces la función objetivo queda de la siguiente manera:

$$Min \quad z = 24000x_1 + 22000x_2 – 440000$$

Las restricciones de oferta y de demanda serían:

\begin{align*}
x_1 &\leq 110\\
x_2 &\leq 50\\
x_1 &\geq 80\\
x2 + (x_1 – 80) &\geq 60\\
\end{align*}

Entonces, el problema con dos periodos de tiempo quedaría planteado de la siguiente manera:

\begin{align*}
Min \quad z &= 24000x_1 + 22000x_2 – 440000\\
&s.a\\
x_1 &\leq 110\\
x_2 &\leq 50\\
x_1 &\geq 80\\
x_2 + (x_1 – 80) &\geq 60\\
x_i &\geq 0, i \in \{1, 2\}\\
\end{align*}

Ahora, una posible solución a este problema sea satisfacer la demanda del primer mes, con tal de que sobren solamente la menor cantidad de copias que al sumarlas con la producción del segundo mes, nos cumplan también la demanda exacta de ese mes. Es decir, producir en el primer mes 90000 copias, almacenar 10000 que sobrarían en tienda y producir hasta el límite de producción el segundo mes que son 50000 copias y juntos con las 10000 que había almacenadas, se cumplirá la demanda que tenemos para el segundo periodo que son 60000 copias. De esta manera no se incurre en gastos innecesarios de almacenamiento, ya que para el tercer mes no hay copias por almacenar que nos generen ese gasto.

2.- Si no hubiera costo por almacenamiento tenemos varias soluciones que podrían ser óptimas, pero en realidad lo sería cualquiera donde se cumplan los valores de demanda al mínimo, es decir, que se produzcan las unidades que nos piden por los tres meses y ni una más.

3.- Sea una empresa tiene que producir un producto y este producto se vende en n periodos de tiempo, con su respectiva demanda ($d_1, \ldots, d_n$) y oferta de productos ($o_1, \ldots, o_n$) en cada uno de ellos.

Se tiene un costo $P$ de fabricación por producto y un costo A de almacenamiento por producto de un periodo a otro.

Se quiere determinar el plan de producción e inventario que satisfaga la demanda y minimice los costos.

Variables de decisión: $x_i$ = número de unidades a producir en el periodo $i$. $i \in \{1, \ldots, n\}$

Función objetivo:

$$Min \quad z = P(x_1 + \ldots + x_n) + A[(x_1-d_1) + (x_1 + x_2 – d_1 – d_2) + \ldots + (\sum_{i=1}^n{x_i} – \sum_{i=1}^n{d_i})]$$

Y por último, las restricciones serían:

\begin{align*}
x_1 &\leq o_1\\
x_2 &\leq o_2\\
&\vdots\\
x_n &\leq o_n\\
x_1 &\geq d_1\\
x_1 + x_2 – d_1 &\geq d_2\\
\vdots\\
\end{align*}

$$(\sum_{i=1}^n{x_i} – \sum_{i=1}^{n-1}{d_i}) \geq \sum_{i=1}^n{d_i}$$

$$x_i \geq 0,\quad i \in \{1, \ldots, n\}$$

4.- Dependería del problema pero en general como se intenta minimizar los costos, esto también sería minimizar los costos que conlleva el almacenaje de productos y si se producen muchos cada periodo, esto incurrirá en el aumento de los gastos mencionados y no será lo optimo para el objetivo que tenemos.

Entradas relacionadas