7 de diciembre de 2013

Modelo EOQ(Economic Order Quantity) clásico de inventarios

La base de este modelo es la siguiente:
Costo total de inventario = Costo de compra + costo de preparación + costo de retención + costo por escasez

Costo de compra: es el costo por artículo del inventario
Costo de preparación: costo fijo por la realización de un pedido (independientemente del tamaño de este)
Coto de retención: costo por mantener las existencias de algo.
Costo por escacez:: es la penalización en la que se incurre de agotarse las existencias.

El modelo EOQ asume además, una demanda de tasa constante, que la reposición de pedidos es instantánea y no hay escacez.

Defínase lo siguiente (a la derecha las "unidades"):
Punto de reorden: punto en el que se realiza el pedido o reorden.
y: Cantidad de pedido (unidades)
D: Tasa de demanda (unidades por tiempo)
t: Duración del ciclo (tiempo)
L:Tiempo de espera
y*: y óptima
K: Costo de preparación ($ por pedido)
h: Costo de retención ($ por unidad por tiempo)
TCU: Costo total por unidad de tiepo.
$y_p$: Cantidad de reorden, que es el nivel de inventario que se tiene en el punto de reorden $(t-L_e,y_p)$
(aquí cuando digo tiempo me refiero a unidades de tiempo)

Como la tasa de la demanda se asume constante y se asume que la reposición es instantanea, el modelo se ve como en la imagen de arriba.

Es de hacer notar, que aquí lo que nos interesan son las magnitudes, por eso aunque la pendiente en la gráfica anterior sea claramente negativa, tomaremos en cuenta realmente las magnitudes (valores no negativos). Dicho esto, claramente $y=Dt \rightarrow t=y/D$

Calculemos el TCU esperado, es decir escribamos TCU en terminos de y u su valor esperado, en este caso su valor promedio, que es  $\frac{y}{2}$.
$TCU(y)=\frac{K}{(\frac{y}{D})}+h(\frac{y}{2})$

Obtengamos el valor óptimo de cantida de pedido, y*:

$\frac{d}{dy}TCU(y)=-\frac{KD}{y^2}+\frac{h}{2}=0$
$\rightarrow y^*=\sqrt{\frac{2KD}{h}}$

Así la política óptima es hacer un pedido y* cada t unidades de tiempo.

A diferencia de como lo hace parecer la figura, L no siempre es menor que t, por lo que (en términos gráficos), tenemos que situar la longitud de L en la gráfica de tal manera que tenemos que encontrar algo así como un residuo de L, descontando una cantidad n de periodos enteros, de esta manera el extremo derecho de L terminaría dentro de algún periodo. A esto le llamamos tiempo de espera efectivo $L_e$
$L_e = L-\lfloor \frac{L}{t} \rfloor t$ 
De esta manera tenemos que:
$y_p=L_eD$

El modelo es bastante sencillo pero hay muchos mas que trataremos luego. Aquí un programa sencillo del modelo EOQ en python:

from math import sqrt
def EOQ(K,D,L,h):
 y=sqrt(2*K*D/h)
 t=y/D
 L=L-floor(L/t)*t
 yp=L*D
 TCU=K/t+h*y*.5
 print "Cantidad optima de pedido y*=",y
 print "Duracion del ciclo, t_0*=",t
 print "Cantidad de reorden yp=Le*D=",yp
 print "TCU=",TCU


No lo explicaré, pues es una mera traducción de lo que escribí antes.

Ahora resolvamos un problema:

Las luces de neón en el campus de la Universidad de Arkansas se reemplazan a razón de 100 unidades por día (D=100). La planta física pide las luces de neón de forma periódica. Iniciar un pedido de compra cuesta $100 (K=100). Se estima que el costo de una luz de neón almacenada es de aproximadamente $0.02 por dia (h=0.02). El tiempo de espera entre la colocación y la recepción de un pedido es de 12 días (L=12).Determine la política de inventario óptima para pedir las luces de neón.
 Los resultados son

>>> EOQ(100,100,12,0.02)
Cantidad optima de pedido y*= 1000.0
Duracion del ciclo, t_0*= 10.0
Cantidad de reorden yp=Le*D= 200.0
TCU= 20.0

Es decir que debemos pedir 1000 unidades cada 10 dias, momento en el cual tendremos 200 unidades aun disponibles, a un costo de 20 dolares por dia.


Referencias:
Taha. Investigación de operaciones, Novena edición.