Control Óptimo de Sistemas de Inventarios con Costo Promedio.

Anuncio
UNIVERSIDAD DE SONORA
El saber de mis hijos
hará mi grandeza”
División de Ciencias Exactas y Naturales
Programa de Posgrado en Matemáticas
Control Óptimo de Sistemas de Inventarios
con Costo Promedio
T E S I S
Que para obtener el grado académico de:
Maestro en Ciencias
(Matemáticas)
Presenta:
Joaquı́n Humberto López Borbón
Director de Tesis: Dr. Oscar Vega Amaya
Hermosillo, Sonora, México,
Mayo del 2007
ii
SINODALES
Dr. Onésimo Hernández Lerma
Departamento de Matemáticas, CINVESTAV – I. P. N.
Dr. Fernando Luque Vázquez
Departamento de Matemáticas, Universidad de Sonora
Dr. Luis Felipe Romero Dessens
Departamento de Ingenierı́a Industrial y de Sistemas, Universidad de Sonora
Dr. Oscar Vega Amaya
Departamento de Matemáticas, Universidad de Sonora
iv
Contenido
Introducción
vii
1 Modelos de inventarios
1
1.1
Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
1.2
Justificación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
1.3
Componentes principales y tipos de inventarios . . . . . . . . . . . .
2
2 Sistemas de inventarios con costo promedio
5
2.1
Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
2.2
Problema de control óptimo de inventarios. . . . . . . . . . . . . . .
5
2.3
Estructura de renovación de las polı́ticas (s, S). . . . . . . . . . . . .
11
2.4
Propiedades del costo promedio esperado y cotas para
s∗
y
S∗.
. . .
3 Algoritmos e implementación computacional
16
29
3.1
Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29
3.2
Algoritmos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29
3.3
Complejidad computacional . . . . . . . . . . . . . . . . . . . . . . .
33
3.4
Ejemplos numéricos y sus implementaciones . . . . . . . . . . . . . .
35
3.5
Simulación e implementación . . . . . . . . . . . . . . . . . . . . . .
42
4 Conclusiones y perspectivas
51
v
vi
CONTENIDO
Introducción
Un inventario de acuerdo a Love [7], es una cantidad de bienes o materia-les bajo
el control de una empresa que se mantienen por un tiempo en forma improductiva
esperando su venta o uso.
La razón fundamental para el control de inventarios se debe a que es poco frecuente que los bienes que se tienen sean justamente los que se demandan. No tener
los materiales ni los suministros cuando se necesitan representa pérdidas económicas
en el proceso productivo o perder al cliente. Por otra parte, si se tiene en abundancia para protegerse de faltantes, la inversión puede resultar muy grande por tener
mucho capital paralizado. Otros motivos para mantener inventarios son: economı́a
de escala, especulación y precaución ([6], [8]). Lo anterior justifica la elaboración
de modelos matemáticos con el objeto de minimizar los costos de operación de los
inventarios, sujetos a la restricción de satisfacer la demanda y que además den respuestas a las preguntas claves que se requieren para el control óptimo del inventario:
¿Cuándo se ordena? y ¿Cuánto se ordena?
Lee y Nahmias [6] reportan que los primeros trabajos sobre modelos de inventarios se deben a Ford Harris (1913) al crear el modelo EOQ (Economic Order Quantity). Más tarde los estudios de R.H. Wilson (1934) causaron interés en cı́rculos
académicos. Los artı́culos destacados fueron publicados al inicio de los 50´s por
Arrow, Harris & Marshak (1951) y Dvorestsky, Kiefer & Wolfowitz (1952) los cuales
pusieron las bases para el posterior desarrollo de la teorı́a matemática de inventarios. La monografı́a de Whitin (1957) fue también una importante contribución a
la administración de inventarios y al pensamiento de economı́a clásica. De hecho,
fue uno de los primeros tratamientos del modelo (Q, r) bajo incertidumbre, el cual
más tarde se convirtió en la piedra angular para muchos sistemas de inventarios
comerciales.
También Lee y Nahmias [6] reportan que durante los 50s Bellman, Glicksberg
& Gross (1955) mostraron cómo el método de Programación Dinámica, diseñado
por Bellman para describir una clase de problemas de decisión secuencial, podı́a
ser usado para obtener resultados estructurales de una versión simple del problema
de inventarios con revisión periódica y demanda estocástica. Posteriormente los
modelos matemáticos propuestos por Arrow, Karlin & Scarf (1958) dieron el ı́mpetu
para los siguientes trabajos en esta área. Al mismo tiempo, Wagner & Whitin (1958)
encontraron una solución para el modelo EOQ no estacionario.
vii
viii
Introducción
Se han hecho esfuerzos en teorı́a de inventarios para determinar las condiciones
bajo las cuales una polı́tica en la clase (s, S) es óptima en sistemas de un solo producto. Lo anterior, es debido a que las polı́ticas en la clase (s, S) consisten en colocar
una orden para incrementar el nivel de inventario hasta el nivel de reabastecimiento
S tan pronto como el nivel sea menor o igual al nivel de reorden s. Zheng [13]
reporta que los primeros trabajos sobre la optimalidad de estas polı́ticas (s, S) se
deben a Scarf (1960). Iglehart (1963) estableció la existencia de una polı́tica (s, S)
bajo la suposición de convexidad en la función de costo. Veinot (1966) extiende el
resultado a costos cuasi convexos. Zheng [13] presenta una prueba más intuitiva
para la optimalidad de polı́ticas (s, S). Beyer y Sethi [3] reconsideran el modelo de
demanda continua y llenan algunas lagunas de la demostración de Iglehart.
El objetivo de esta tesis es desarrollar un algoritmo para encontrar una polı́tica
óptima (s, S) para un sistema de inventarios con respecto al ı́ndice en costo promedio, poniendo especial énfasis en la implementación computacional. Los principales
resultados que se presentan provienen de Zheng y Federgruen [12], y Federgruen y
Zipkin [4].
Como punto de partida se supone la existencia de una polı́tica óptima en la clase
(s, S); consultar [13], [3] y [5]. El sistema de inventarios es de un solo producto, en
tiempo discreto, en el cual las órdenes son colocadas al inicio de cada periodo. La estructura de costos es estacionaria. Las demandas no satisfechas por no existencia son
acumuladas y satisfechas en el momento que haya producto disponible. Se supone
además, que las demandas son variables aleatorias independientes e idénticamente
distribuidas, con valores enteros no negativos.
Para lograr nuestro objetivo, el sistema de inventarios se plantea como un problema de decisión Markoviano [2] y se aprovechan resultados de teorı́a de renovación.
Bajo una polı́tica (s, S) el sistema de inventario se regenera cada vez que la posición
del inventario se incrementa a S. Denotemos por T (j) el tiempo esperado hasta que
la siguiente orden es colocada cuando se comienza con posición de inventario s + j
unidades. En forma análoga, denotemos K(s, y) el costo esperado hasta que la siguiente orden es colocada, cuando se comienza con posición de inventario y unidades.
Se sigue de la teorı́a de procesos regenerativos [9], que el costo promedio esperado
c(s, S) tiene la siguiente forma
c(s, S) =
K(s, S)
,
T (S − s)
inducida por una polı́tica (s, S). Aquı́ obtendremos propiedades de la función c(s, S)
y deduciremos cotas para s y S. Estas propiedades y cotas son fundamentales para
encontrar una polı́tica óptima (s, S).
Se implementa un algoritmo el cual usando las propiedades de la función c(s, S)
va obteniendo cotas cada vez más refinadas para los niveles óptimos de reorden s∗ y
de reabastecimiento S ∗ , hasta converger a una polı́tica óptima (s∗ , S ∗ ). El algoritmo
es sencillo y fácil de implementar, su complejidad computacional es solo 2.4 veces
mayor que la complejidad de evaluar una polı́tica (s, S) especı́fica y se aplica a
sistemas de inventarios con revisión periódica.
ix
La tesis está estructurada en tres capı́tulos de la siguiente manera. En el Capı́tulo
1 se presenta la discusión de los diferentes motivos para que una empresa mantenga
inventarios, ası́ como las componentes principales y distintos tipos de inventarios.
Además, se dan las caracterı́sticas de las componentes del sistema de inventarios que
se estudia en este trabajo.
En el Capı́tulo 2, se presentan los fundamentos teóricos de este trabajo. Se dan
las hipótesis y ecuaciones de la dinámica del sistema, se definen las polı́ticas en la
clase (s, S) y se plantea el sistema de inventarios como un problema de control óptimo
(PCO). Se estudia la estructura de renovación que inducen las polı́ticas (s, S), donde
la época de renovación es cada vez que el sistema se reabastece hasta el nivel S. Se
deducen propiedades de la función c(s, S) y cotas para s y S.
El Capı́tulo 3, contiene la parte central de esta tesis. Aquı́ se desarrollan los
siguientes algoritmos y su implementación: el algoritmo para calcular T (·), el algoritmo para encontrar las funciones de costo K(·, ·) y c(·, ·) y el algoritmo principal
para encontrar una polı́tica óptima (s, S). Se hace un análisis de la complejidad
computacional del algoritmo principal. Se presentan dos ejemplos y los resultados
del algoritmo se comparan con los arrojados por la simulación de los sistemas. Los
algoritmos y simulación son implementados usando lenguaje R [11].
Finalmente, en el Capı́tulo 4 se dan las conclusiones y posibles extensiones de
este trabajo.
x
Introducción
Capı́tulo 1
Modelos de inventarios
1.1
Introducción
En este capı́tulo, se presenta una definición general de inventarios, se discuten algunos motivos que justifican la elaboración de modelos de inventarios. Además, se
mencionan las componentes principales de un sistema de inventarios y se especifican
las componentes del sistema de inventario que se estudia en este trabajo.
1.2
Justificación
El control de sistemas de inventarios es una área en la cual la investigación de
operaciones ha tenido un impacto significativo. La teorı́a matemática es la base de
muchos de los sistemas de control de inventarios que se usan actualmente.
Como lo especifica Love [7], un inventario es como un sistema regulador entre
los procesos, de oferta y de demanda. En términos generales, un inventario es una
cantidad de bienes o materiales que una empresa mantiene por un tiempo en forma
improductiva esperando su venta o uso.
La razón fundamental para el control de inventarios se debe a que es poco frecuente que los bienes sean entregados justamente cuando la demanda de ellos ocurre.
No tener los materiales ni los suministros cuando se necesitan representa pérdidas
económicas en el proceso productivo o perder al cliente. Por otra parte, si se tiene
en abundancia para protegerse de faltantes, la inversión puede resultar muy grande
y tener mucho capital paralizado. Otros motivos para mantener inventarios son los
siguientes ([8], [6]):
1. Economı́a de escala. Se aprovecha el hecho de que en compras al por mayor
se reducen los precios. Además, por producir u ordenar grandes lotes se reduce
el número de órdenes, disminuyendo ası́ los costos por ordenar.
1
2
Modelos de inventarios
2. Especulación. Cuando se espera que el costo de producción aumente en
un futuro inmediato es ventajoso anticiparse al aumento de precio. También
cuando se usan productos cuyo valor fluctúa, puede resultar ventajoso te-ner
reserva en inventario. Igualmente, si se incrementa la demanda puede ser
más conveniente mantener inventarios grandes que aumentar la capacidad de
producción.
3. Precaución. Se mantienen inventarios como una protección contra incertidumbre, la cual puede ser motivada por demanda estocástica, incertidumbre
en el abastecimiento, incertidumbre en el tiempo de entrega, costos difı́ciles de
predecir, costos de mantenimiento de inventario sujetos a inflación, precios de
productos sujetos a variación, etc.
Lo anterior, justifica la elaboración de modelos matemáticos con el objeto de
minimizar los costos de operación de los inventarios, sujetos a la restricción de
satisfacer la demanda y además que den respuestas a las preguntas claves que se
requieren para el control óptimo del inventario: Cuándo se ordena y cuánto se
ordena.
1.3
Componentes principales y tipos de inventarios
Los sistemas de inventarios se clasifican de acuerdo a las caracterı́sticas de tres
componentes claves, las cuales determinan la estructura esencial del modelo. Estas
son: demanda, costos y aspectos fı́sicos del sistema.
1. Demanda. Las suposiciones hechas sobre la demanda son las más importantes en determinar la complejidad del modelo. Usualmente se clasifican de
la siguiente manera:
(a) Determinista y estacionaria. La demanda es constante y conocida.
(b) Determinista y con variación en el tiempo. La demanda es una función
del tiempo y es conocida.
(c) Aleatoria. La demanda es aleatoria y se conoce su distribución.
(d) Desconocida. En este caso la distribución de la demanda es desconocida.
2. Costos. Como el objetivo es minimizar costos, las suposiciones acerca de
la estructura de costos también son importantes en la determinación de la
complejidad del modelo. Los distintos costos que se pueden considerar son los
siguientes:
(a) Costos por adquirir o producir. El costo por adquirir o producir, y
artı́culos está dado por la función C(y) y es más realista incluir un costo
fijo Kf por ordenar, quedando la estructura de costos
C(y) + Kf δ(y).
1.3 Componentes principales y tipos de inventarios
3
donde
δ(y) :=
1
0
si y > 0
si y = 0.
La suposición más simple es que C(·) sea lineal, pero también puede ser
convexa, cóncava o de otra naturaleza.
(b) Costos por mantenimiento. Estos son costos generados por el manejo y
mantenimiento de los productos en inventario, como pérdidas por deterioro, obsolescencia, defectos, costos del espacio fı́sico para almacenamiento, costos de promoción, etc.
(c) Costos de penalización. Son costos causados por no tener en exis-tencia
productos para satisfacer la demanda. Estos costos también son conocidos
como costos por déficit, los cuales son difı́ciles de estimar ya que dependen
de la reacción del cliente ante la carencia. Aún cuando el cliente acepte
que su pedido sea entregado posteriormente, se debe considerar un costo
de penalización por no satisfacer al cliente.
La mayorı́a de los modelos de inventarios consideran los costos invariantes en
el tiempo, pero pueden considerarse costos que varı́an en el tiempo.
3. Otros aspectos fı́sicos. Los modelos de inventarios también son caracterizados por suposiciones hechas acerca del tiempo y logı́stica del sistema. Algunas
de estas suposiciones son:
(a) Número de productos. Se consideran modelos con un solo producto o
varios productos, en unidades o lotes según el proceso. Los productos
pueden ser surtidos de un proveedor o de varios.
(b) Tiempo de entrega. Es el tiempo que transcurre entre el momento en
que se ordena un artı́culo o se solicita su fabricación y el momento de su
entrega. La suposición más simple es que este tiempo sea cero, es decir,
la entrega es inmediata. La suposición más común, es que el tiempo de
entrega sea constante y fijo. El análisis es más complicado cuando este
tiempo es aleatorio.
(c) Ordenes atrasadas. Suposiciones acerca de la manera que el sistema reacciona cuando la demanda excede al suministro. Lo más simple es registrar el exceso de demanda en una orden atrasada y es representada como
nivel de inventario negativo. Otro caso es cuando el exceso de demanda
se pierde, muy común en venta al por menor. El otro caso es cuando el
cliente espera un tiempo fijo para que su demanda sea satisfecha.
(d) Proceso de revisión. Revisión continua significa que el inventario es conocido en cualquier tiempo y la decisión de reorden puede hacerse también
en cualquier tiempo. El otro caso es revisión periódica, en el cual el nivel
de inventario se conoce sólo en tiempos determinados y la decisión de reorden solo puede ser hecha en dichos tiempos los cuales se corresponden
con el inicio de cada periodo.
4
Modelos de inventarios
(e) Cambios que ocurren durante el almacenaje de inventario. Algunos productos como lı́quidos volátiles o materiales radiactivos decaen exponencialmente y una fracción de inventario se pierde en cada unidad de tiempo.
En general la vida útil o caducidad puede también ser determinista o estocástica.
(f) Horizonte de planeación. Es el tiempo durante el cual se consi-dera necesario planear los inventarios. Este puede ser finito o infinito, entendiendo
por infinito un tiempo sumamente largo.
En este trabajo se estudia un sistema de inventarios con revisión periódica para
un solo producto que satisface lo siguiente:
1. Las órdenes del producto se hacen al inicio de cada periodo y suponemos que
son entregadas instantáneamente.
2. Si se presenta un déficit del producto, este déficit se acumula hasta que se tiene
inventario para satisfacer la demanda atrasada.
3. Las demandas en cada periodo toman valores en los enteros no negativos y
forman una sucesión de variables aleatorias independientes.
4. La estructura de costo y los parámetros asociados son estacionarios, es decir,
no cambian durante la operación del sistema.
5. Horizonte de planeación infinito.
Capı́tulo 2
Sistemas de inventarios con costo promedio
2.1
Introducción
La teorı́a de los procesos de decisión (o control) Markovianos (PDM) trata de problemas de optimización en sistemas dinámicos conocidos genéricamente como problemas de control óptimo (PCO). El estudio, en sus aspectos básicos, se desarrolla
en el contexto de la programación dinámica estocástica y la teorı́a de procesos de
Markov [2].
Uno de los resultados fundamentales en teorı́a de inventarios es la optima-lidad
de una polı́tica (s, S) en modelos de un solo producto en un horizonte de planeación
infinito. En este capı́tulo, suponiendo conocida la existencia de una polı́tica óptima
en la clase (s, S) (consultar [13], [3] y [5]), se desarrolla la teorı́a necesaria para
encontrar una polı́tica (s, S) óptima para un sistema de inventarios en tiempo discreto con un solo producto. El sistema de inventarios se plantea como un problema
de control óptimo (PCO) y se aprovechan resultados de teorı́a de renovación para
deducir propiedades de la función de costo promedio esperado, cotas para el nivel
óptimo de reorden s∗ y para el nivel óptimo de reabastecimiento S ∗ . Dichas cotas
resultan fundamentales en el método para obetener una polı́tica óptima (s, S).
2.2
Problema de control óptimo de inventarios.
En esta sección, se enuncian las hipótesis y ecuaciones de la dinámica del sistema, se
definen las polı́ticas en la clase (s, S) y finalmente se plantea el sistema de inventarios
como un problema de control óptimo (PCO).
2.2.1
Dinámica del sistema
Considere un sistema de inventario que evoluciona de acuerdo a la siguiente ecuacion
recursiva
xn+1 = xn + an − wn+1 ,
n ∈ N0 := {0, 1, 2, · · · },
(2.1)
x0 = x ∈ X,
donde:
1. xn es el nivel de inventario en el periodo n ∈ N0 y toma valores en el
espacio de estados X := Z.
5
6
Sistemas de inventarios con costo promedio
2. an es la cantidad de productos ordenados en el periodo n ∈ N0 y toma
valores en el espacio de acciones A := N0 independiente del valor de xn . Esto
último significa que se considera producción ilimitada en el sistema. Además
denotemos por K:=X×A al conjunto de pares admisibles estado-control.
3. yn := xn + an es el nivel de inventario a la mano en el periodo n ∈ N0 .
4. wn es la demanda del producto durante el periodo n ∈ N0 .
Hiptesis 2.1 Se supone que se cumplen las siguientes condiciones:
1. La sucesión {wn } está formada por variables aleatorias independientes e idénticamente
distribuidas, con función
P de masa de probabilidad pj = P [wn = j] concentrada en N0 , esto es, ∞
j=0 pj = 1.
2. p0 < 1.
3. µ := E[wk ] < ∞.
El costo en cada periodo de operación está dado por la función
b a) :=
C(x,
Kf + ca + G(x + a)
G(x)
si a > 0
si a = 0,
(2.2)
donde:
1. Kf ≥ 0 es el costo fijo por colocar una orden.
2. c ≥ 0 es el costo unitario de producción.
3. La función G : Z → R incluye otros costos del sistema. En muchos casos
concretos la función G tiene la forma
G(y) = hEw [max {0, y − w}] + peEw [max {0, w − y}] ,
donde h es el costo unitario por manejo de inventario, pe es el costo
unitario por déficit, w es la demanda aleatoria, Ew es el operador esperanza,
y el nivel de inventario a la mano.
Hiptesis 2.2 Se supone que la función G satisface las siguientes condiciones:
1. −G es unimodal. Es decir, existe y0∗ ∈ R tal que en (−∞, y0∗ ] G no es creciente
y en (y0∗ , ∞) es no decreciente.
2.
lim G(y) ≥ min G(y) + Kf .
|y|→∞
y
2.2 Problema de control óptimo de inventarios.
2.2.2
7
Polı́ticas de control admisibles
Una polı́tica de control admisible es una sucesión π = {πn } de reglas para
elegir controles, donde cada πn puede depender de la historia hn del sistema hasta
el tiempo n,
hn = (x0 , a0 , x1 , a1 , . . . , xn−1 , an−1 , xn ).
Además de depender de la historia, las reglas πn pueden ser aleatorizadas. En
este caso tendrı́amos que πn (· | hn ) es una distribución de probabilidad sobre el
espacio de controles A para cada historia hn y n ∈ N. A la familia de las polı́ticas
admisibles la denotaremos por Π.
Diremos que la polı́tica π = {πn } es estacionaria determinista si en cada una
de los periodos los controles se eligen por medio de una función f : X → A, es decir,
an = f (xn ) para cada n ∈ N0 . En este caso, a la polı́tica π la identificaremos con
la función f y a la clase de las polı́ticas estacionarias deterministas la denotaremos
por F.
En este trabajo la atención está dirigida a una clase de polı́ticas estacionarias
deterministas denominadas genéricamente como polı́ticas (s, S), donde s y S son
enteros tales que s < S. Estas polı́ticas se denotan por f = (s, S) y se definen por
S − x si x ≤ s
f (x) :=
0
si x > s.
Cuando el nivel de inventario es menor o igual a s, se coloca una orden para
incrementar el nivel de inventario hasta S = x + f (x), es decir, se ordenan S − x
unidades. Si el inventario es mayor que s no se ordena. Los parámetros s y S se
denominan nivel de reorden y nivel de reabastecimiento, respectivamente.
La evolución del sistema (2.1) se puede expresar equivalentemente por medio de
probabilidades de transición en un paso. Para mostrar lo anterior suponga que el
controlador usa la polı́tica de control π = {πn } y que el sistema ha realizado las
primeras n transiciones de manera que hn = (x0 , a0 , . . . , xn−1 , an , xn ), xn = x ∈
X y an = a ∈ A. Puesto que wn+1 es independiente de hn y an , tenemos que
Pr[xn+1 = y|hn , an ] = Pr[wn+1 = x + a − y|hn , an = a]
= Pr[wn+1 = x + a − y|xn = x, an = a]
= Pr[wn+1 = x + a − y]
= px+a−y .
para todo n ∈ N0 . Definimos entonces las probabilidades de transición en un paso
Q(y|x, a) de la siguiente manera:
Q(y|x, a) := Pr[wn+1 = x + a − y|xn = x, an = a]
= px+a−y
para todo x, y ∈ X, a ∈ A.
Una vez especificada la distribución inicial ν(·), la probabilidad de transición
en un paso Q(·|·, ·) y la polı́tica de control π = {πn } ∈ Π elegida determinan la
distribución del proceso controlado {(xn , an )}. Para precisar lo anterior tome Ω :=
8
Sistemas de inventarios con costo promedio
K∞ y denote por F a la familia de eventos correspondientes. Entonces, para cada
polı́tica de control π = {πn } ∈ Π y cada distribución ν(·) sobre X existe una
única medida de probabilidad Pνπ sobre el espacio (Ω, F) que satisface las siguientes
propiedades. Para todo x ∈ X, a ∈ A, n ∈ N :
(a) Pνπ [x0 = x] = ν(x);
(b) Pνπ [xn+1 = y|hn−1 , an−1 , xn = x, an = a] = Q(y|x, a);
(c) Pνπ [an = a|hn ] = πn (a|hn ).
La operación de esperanza con respecto a la distribución de probabilidad Pνπ será
indicada como Eνπ . Si la distribución inicial esta concentrada en algún estado x ∈ X,
escribiremos Pxπ y Exπ en lugar de Pνπ y Eνπ , respectivamente.
2.2.3
El problema de control óptimo
Para una polı́tica π = {πn } y el estado inicial x0 = x ∈ X se define el costo
esperado en n-pasos como
#
"n−1
X
π
b k , ak ) − c(xn − wn+1 ) ,
(2.3)
Jbn (π, x) := Ex
C(x
k=0
b a) es la función en (2.2) y Exπ indica el operador esperanza cuando se
donde C(x,
usa la polı́tica π dado que el estado inicial es x.
El costo promedio esperado (por unidad de tiempo) es definido como
b x) := lim inf 1 Jbn (π, x).
J(π,
n→∞ n
(2.4)
La función de valor óptimo en costo promedio es
b
b x).
J(x)
:= inf J(π,
π∈Π
(2.5)
De esta manera, el problema de control óptimo consiste en encontrar una polı́tica
π ∗ ∈ Π tal que
b
b ∗ , x) ∀x ∈ X.
J(x)
= J(π
(2.6)
Si tal polı́tica existe, se le llama polı́tica óptima en costo promedio.
2.2 Problema de control óptimo de inventarios.
9
El siguiente resultado es el punto de partida para el desarrollo del algoritmo.
Teorema 2.3 Si se satisfacen las Hipótesis 2.1 y 2.2, entonces existe una polı́tica
óptima f ∗ = (s∗ , S ∗ ), es decir,
b
b ∗ , x) ∀ x ∈ X.
J(x)
= J(f
La optimalidad de la clase de las polı́ticas f = (s, S) se ha demostrado bajo
condiciones muy generales (consultar [13], [3] y [5]). En este trabajo partimos de este
resultado y nos enfocamos sobre los fundamentos del algoritmo y su implementación.
Por otra parte con el fin de simplificar el análisis, supondremos que el costo de
producción c es igual a cero. Este supuesto no implica pérdida de generalidad como
se muestra en el siguiente teorema y su corolario.
Teorema 2.4 Para toda polı́tica π = {πn } y estado inicial x0 = x ∈ X, se cumple
lo siguiente:
"n−1
#
X
π
Ex
cak − c(xn − wn+1 ) = −cx + (n + 1)cµ.
k=0
donde µ := E[wk ]
Demostración. Para verificar este hecho, considere el nivel de inventario a la
mano yk := xk + ak de modo que (2.1) se puede expresar como
xk+1 = yk − wk+1
k ∈ N0 ,
(2.7)
xk = yk−1 − wk ,
k ∈ N.
(2.8)
o equivalentemente
Note también que de yk := xk + ak resulta ak = yk − xk ,
ak = yk − yk−1 + wk ,
k ∈ N0 y de (2.8)
k ∈ N.
Ası́ que
n−1
X
cak − c(xn − wn+1 ) = ca0 +
k=0
n−1
X
cak − c(xn − wn+1 )
k=1
que se puede escribir como
n−1
X
cak − c(xn − wn+1 ) = c(y0 − x0 ) +
k=0
n−1
X
c(yk − yk−1 + wk ) − c(xn − wn+1 )
k=1
= −cx0 + c
n−1
X
k=1
wk + cyn−1 − cxn + cwn+1 .
10
Sistemas de inventarios con costo promedio
Como x0 = x y de (2.8), wn = yn−1 − xn , entonces se tiene
n−1
X
cak − c(xn − wn+1 ) = −cx + c
k=0
= −cx + c
n−1
X
k=1
n+1
X
wk + cwn + cwn+1
wk .
k=1
por lo tanto,
Exπ
"n−1
X
#
cak − c(xn − wn+1 ) = −cx + (n + 1)cµ.
k=0
Corolario 2.5 Como consecuencia del Teorema 2.4 anterior se tiene que
n−1
X
b x) = lim inf 1 E π
C(xk , ak ) + cµ
J(π,
n→∞ n x
∀π ∈ Π, x ∈ X,
k=0
donde
C(x, a) :=
Kf + G(x + a)
G(x)
si a > 0
si a = 0.
(2.9)
Definiendo
n−1
J(π, x) := lim inf
n→∞
1 πX
E
C(xk , ak ),
n x
x ∈ X, π ∈ Π,
(2.10)
k=0
J(x) := inf J(π, x),
π∈Π
x ∈ X,
(2.11)
del corolario anterior se tiene
b x) = J(π, x) + µc,
J(π,
b
J(x)
= J(x) + µc,
∀x ∈ X, π ∈ Π,
∀x ∈ X.
(2.12)
(2.13)
b si y sólo si es
Observacin 2.6 En conclusión, una polı́tica π ∗ es óptima para J(·)
óptima para J(·). Por esta razón, de aquı́ en adelante, nos concentraremos en
el problema de control con función de costo (2.9) en un periodo en la cual no se
considera el costo unitario de producción c.
2.3 Estructura de renovación de las polı́ticas (s, S).
2.3
11
Estructura de renovación de las polı́ticas (s, S).
En esta sección se estudia la estructura de renovación de la función de costo promedio
esperado J(f, x) inducida por las polı́ticas f = (s, S), donde la época de renovación
es cada vez que el sistema se reabastece hasta el nivel S. Además, para obtener los
resultados de esta sección se mantendrá fija una polı́tica (s, S) que se denotara por
f.
Para v > 0, se define la función
t(v) := min{n ≥ 1 : xn ≤ s, x0 = s + v}.
(2.14)
Note que t(v) es el tiempo de espera para que el nivel de inventario sea menor o igual
al punto de reorden s, cuando se comienza con v unidades arriba de s. Además, se
denota el valor esperado de t(v) por
f
T (v) = Es+v
t(v).
(2.15)
Ahora, considerando, y := s + v. donde v > 0 se define la función
t(v)−1
k(s, y) :=
X
C(xk , ak ),
y>s
(2.16)
k=0
la cual representa el costo acumulado hasta ordenar, cuando se comienza con un
nivel de inventario y con v > 0 unidades mayor que s. Es decir, son los costos que
se acumulan hasta que el nivel de inventario sea menor o igual al punto de reorden
s, incluyendo el costo fijo por ordenar Kf , . También se denota su valor esperado
t(v)−1
K(s, y) = Eyf k(s, y) = Eyf
X
C(xk , ak ),
y>s
(2.17)
k=0
b y) como el valor esperado del costo acumulado
Por otra parte considérese K(s,
hasta antes de ordenar, es decir aún no se considera el costo Kf . Por lo que
b y) + Kf ,
K(s, y) := K(s,
y>s
(2.18)
En los siguientes resultados se demostrará que las funciones T (·) y K(s, ·) satisfacen ecuaciones del tipo de renovación (consultar [9]).
12
Sistemas de inventarios con costo promedio
b ·) son las únicas funciones que satisfacen las ecuaciones
Teorema 2.7 T (·) y K(s,
T (v) = 1 +
v−1
X
T (v − j)pjj ,
.v > 0
(2.19)
j=0
b y) = G(y) +
K(s,
y−s−1
X
b y − j)pj , y > s.
K(s,
(2.20)
j=0
Demostración. Primero note que t(v) es tiempo de espera para que la demanda
acumulada consuma v unidades, esto es
t(v) = min{n ≥ 1 : w1 + w2 + . . . + wn ≥ v}.
Ahora considere el proceso de conteo y la función de renovación asociada al
proceso de demanda {wk } :
0
si w1 > v
N (v) :=
max{n ≥ 1 : w1 + w2 + . . . + wn ≤ v} si w1 ≤ v}.
f
M (v) := Es+v
N (v).
Usando un argumento de renovación se obtiene que
0
f
Es+v [N (v)|w1 = j] =
1 + M (v − j)
Esto implica que
P
M (v) = vj=0 [1 + M (v − j)]pj .
si j > v
si j ≤ v.
Luego, observe que
t(v) = N (v − 1) + 1;
ası́ que
T (v) = 1 + M (v − 1)
=1+
v−1
X
[1 + M (v − 1 − j)]pj
j=0
=1+
v−1
X
T (v − j)pj ,
j=0
lo cual prueba (2.19).
Por otra parte para obtener (2.20), recordemos que y := s + v. donde v > 0 y
use otra vez un argumento de renovación para obtener
G(y)
si j > y − s − 1,
f b
Ey [k(s, y)|w1 = j] =
b
G(y) + K(s, y − j) si j ≤ y − s − 1.
Entonces
y−s−1
∞
X
X
b
b y − j)]pj
K(s, y) =
G(y)pj +
[G(y) + K(s,
j=y−s
= G(y) +
j=0
y−s−1
X
j=0
b y − j)pj ,
K(s,
2.3 Estructura de renovación de las polı́ticas (s, S).
13
lo cual da el resultado deseado.
Corolario 2.8 Sea K(s, y) el valor esperado del costo que se acumula hasta que se
ordena, aquı́ ya se incluye el costo Kf . Entonces
∞
X
K(s, y) = G(y) + Kf
y−s−1
X
pj +
j=y−s
K(s, y − j)pj ,
y > s,
(2.21)
j=0
Demostración. De (2.18) se tiene que
b y) + Kf ,
K(s, y) := K(s,
y > s.
b y) satisface (2.20) se sigue que:
Como K(s,
K(s, y) = G(y) +
y−s−1
X
b y − j)pj + Kf
K(s,
j=0
= G(y) + Kf
= G(y) + Kf
∞
X
pj +
y−s−1
X
b y − j) + Kf ]pj
[K(s,
j=y−s
j=0
∞
X
y−s−1
X
pj +
j=y−s
K(s, y − j)pj .
j=0
La siguiente sucesión tiene una gran importancia para encontrar la solución de
las ecuaciones de renovación (2.19) y (2.21), es utilizada en el siguiente teorema. Sea
−1
m(0) := [1 − p0 ]
,
y
m(j) :=
j
X
m(j − k)pk ,
para j ∈ N.
(2.22)
k=0
Teorema 2.9 Sea {b(n)} una sucesión fija. Entonces la sucesión
L(n) :=
n−1
X
b(n − k)m(k),
n ∈ N,
(2.23)
k=0
es la única solución de la ecuación de renovación
V (n) = b(n) +
n−1
X
k=0
V (n − k)pk ,
n ∈ N.
(2.24)
14
Sistemas de inventarios con costo promedio
Demostración. Sea n un entero positivo fijo. Nótese primero que
L(n) =
n−1
X
b(n − j)m(j)
j=0
= b(n)m(0) +
n−1
X
b(n − j)m(j) por (2.22)
j=1
= b(n)m(0) +
n−1
X
b(n − j)
j=1
= b(n)m(0) +
n−1
X
k=0
j
X
m(j − k)pk
k=0



b(n − j)m(j − k) pk − b(n)m(0)p0 .
n−1
X
j=k
A continuación observe que
n−1
X
b(n − j)m(j − k) =
n−k−1
X
b(n − k − j)m(j) = L(n − k).
j=0
j=k
Entonces
L(n) = b(n)m(0) +
n−1
X
L(n − k)pk − b(n)m(0)p0
k=0
por lo que
L(n) = b(n) +
n−1
X
L(n − k)pk ,
k=0
lo cual prueba que L(n) satisface la ecuación de renovación (2.24).
b
La prueba de unicidad se hace por inducción. Suponga que L(n)
es otra solución
b
de la ecuacion de renovación. Entonces, considerando L(1) y L(1)
en (2.24) se
b
verifica que verificar que L(1) = L(1).
b
Luego, supongamos que L(k) = L(k)
para todo k ≤ n. A continuación se prueba
que la igualdad se cumple para ḱ = n+1. En efecto, como ambas sucesiones resuelven
la ecuación de renovación, se tiene que
b + 1) =
L(n + 1) − L(n
n
X
b + 1 − k)]pk
[L(n + 1 − k) − L(n
k=0
b + 1)]p0 .
= [L(n + 1) − L(n
b + 1).
Puesto que p0 < 1, se concluye que L(n + 1) = L(n
A continuación, del Teorema 2.9 se deducen los siguientes corolarios que caracterizan a T (v) y K(s, y), vea (2.19) y (2.21) respectivamente.
2.3 Estructura de renovación de las polı́ticas (s, S).
15
Corolario 2.10 La única solución de la ecuación de renovación (2.19), es decir de
T (v) = 1 +
v−1
X
T (v − j)pj ,
v ∈ N,
j=0
es la función
T (0) := 0
y
T (v) =
v−1
X
v ∈ N.
m(j),
(2.25)
j=0
Demostración. Haciendo V (·) = T (·) y b(·) = 1 se observa que (2.19) tiene la
estructura de la ecuación de renovación (2.24). Por lo tanto el resultado se concluye
del Teorema 2.9.
Corolario 2.11 La única solución de la ecuación de renovación (2.20), es decir de
b y) = G(y) +
K(s,
y−s−1
X
b y − j)pj ,
K(s,
y > s,
j=0
es la función
b y) =
K(s,
y−s−1
X
G(y − j)m(j),
y > s.
(2.26)
j=0
b ·) y b(·) =
Demostración. Como la polı́tica (s, S) es fija, haciendo V (·) = K(s,
G(·) se observa que (2.20) tiene la estructura de (2.24).
Corolario 2.12 La única solución de la ecuación de renovación (2.21), i.e., de
K(s, y) = G(y) + Kf
∞
X
pj +
j=y−s
y−s−1
X
K(s, y − j)pj ,
y > s,
j=0
es la función
K(s, y) = Kf +
y−s−1
X
G(y − j)m(j),
y > s.
(2.27)
j=0
b y) y sustituyendo (2.26)
Demostración. Recordando que K(s, y) = Kf + K(s,
se deduce el resultado.
Observacin 2.13 Bajo una polı́tica f = (s, S) el costo promedio esperado J(f, x)
no depende del inventario inicial x ∈ X, ya que por la Hipótesis 2.1 p0 < 1, el
nivel de inventario con probabilidad uno será menor o igual al nivel de reorden
s en un número finito de periodos y en consecuencia el sistema se reabastecerá
reiterativamente hasta el nivel S, con tiempos entre reabastecimientos independientes
e idénticamente distribuidos. En lo sucesivo el costo promedio esperado bajo una
polı́tica (s, S) será denotado por c(s, S).
16
Sistemas de inventarios con costo promedio
Con la teorı́a desarrollada en esta sección se enuncia el siguiente resultado en
teorı́a de renovación con recompensa su demostración se puede ver en Teorema 3.16,
pg 52, [9] y constituye la parte principal del algoritmo para encontrar una polı́tica
óptima (s, S).
Teorema 2.14 El costo promedio esperado c(s, S) tiene la siguiente estructura
c(s, S) =
K (s, S)
.
T (S − s)
(2.28)
Donde K(s, S) esta dado por (2.27) y T (S − s) por (2.25)
2.4
Propiedades del costo promedio esperado y cotas
para s∗ y S ∗ .
En esta sección se aprovecharán los resultados de la sección anterior y se obtendrán
los hechos necesarios para deducir un algoritmo que determine una polı́tica óptima
(s∗ , S ∗ ). Estos hechos incluyen propiedades de la función de costo c(s, S), cotas para
el nivel de reorden óptimo s∗ y cotas para el nivel de reabastecimiento óptimo S ∗ .
Empezaremos por obtener algunos resultados preliminares.
Se define
αv :=
T (v)
,
T (v + 1)
v ∈ N,
(2.29)
y nótese que 0 < αv ≤ 1.
Lema 2.15 Sea S fijo. Si s < S y v = S − s, entonces
c(s − 1, S) = αv c(s, S) + (1 − αv )G(s).
(2.30)
Es decir, c(s − 1, S) es una combinación convexa de c(s, S) y de G(s).
Demostración. Usando (2.29), (2.27) y (2.28) se obtiene
T (S − s)
αv c(s, S) + (1 − αv )G(s) =
T (S − s + 1)
+ 1−
Kf +
S−s−1
P
m(j)G(S − j)
j=0
T (S − s)
T (S − s)
G(s)
T (S − s + 1)
Luego de (2.25) resulta
Kf +
αv c(s, S) + (1 − αv )G(s) =
S−s−1
P
m(j)G(S − j)
j=0
T (S − s + 1)
+
m(S − s)
G(s)
T (S − s + 1)
2.4 Propiedades del costo promedio esperado y cotas para s∗ y S ∗ .
17
de donde
Kf +
S−s
P
m(j)G(S − j)
j=0
αv c(s, S) + (1 − αv )G(s) =
T (S − s + 1)
= c(s − 1, S).
Para enunciar los resultados que se obtendrán a continuación considérese lo siguiente.
Sean y1* = min{y : G(y) = min G(x)}
y
x
y2* = max{y : G(y) = min G(x)}.
x
Note que −∞ < y1* ≤ y2* < ∞ ya que por la Hipótesis 2.2 (2) lim G(y) ≥
|y|→∞
min G(y) + Kf .
y
Lema 2.16 Sea S fijo y s < S.
a1. Si G(s) < c(s, S), entonces G(s) < c(s − 1, S) ≤ c(s, S).
a2. Si G(s) = c(s, S), entonces G(s) = c(s − 1, S) = c(s, S).
a3. Si G(s) > c(s, S), entonces G(s) > c(s − 1, S) ≥ c(s, S).
b1. Si G(s) < c(s − 1, S), entonces c(s − 1, S) ≤ c(s, S).
b2. Si G(s) = c(s − 1, S), entonces c(s − 1, S) = c(s, S).
b3. Si G(s) > c(s − 1, S), entonces c(s − 1, S) ≥ c(s, S).
Demostración. Como 0 < αv ≤ 1 de (2.30) se deduce que c(s−1, S) está entre
G(s) y c(s, S) siendo posiblemente igual a c(s, S). Considerando los diferentes casos
respecto a la relación entre los valores de G(s) y c(s, S) se concluyen los resultados
del lema.
Para un nivel de reabastecimiento S dado, diremos que un nivel de reorden
s0 < y1* es óptimo si
c(s0 , S) = min c(s, S).
s<S
El siguiente lema proporciona una caracterización para el nivel de reorden óptimo
s.
Teorema 2.17 Sea S un nivel de reabastecimiento dado:
1. El nivel de reorden s0 < y1* es óptimo para S si
G(s0 ) ≥ c(s0 , S) ≥ G(s0 + 1).
(2.31)
Pueden existir varios niveles de reorden s óptimos para S fijo si alguna de las
desigualdades de (2.31) se satisface con igualdad; esto es, s0 − 1 ó s0 + 1 son
también niveles de reorden óptimos para S si
G(s0 ) = c(s0 , S)
se satisfacen, respectivamente.
ó
G(s0 + 1) = c(s0 , S),
(2.32)
18
Sistemas de inventarios con costo promedio
2. Reciprocamente, si un nivel de reorden s0 es óptimo para S, entonces satisface
(2.31) y s0 < y1* .
3. Sean s0l y s0u los niveles de reorden óptimos para S, más pequeño y más grande
respectivamente. Entonces
G(s0l ) > c(s0l , S) = c(s0u , S) > G(s0u + 1)
(2.33)
y s0l ≤ s0u < y1* .
Demostración:
1. supóngase que se cumple (2.31) para algún s0 < y1* , se demostrará que s0
es óptimo. Para demostrar que s0 es óptimo se probará que se cumple: a)
c(s − 1, S) ≥ c(s, S) para todo s ≤ s0 y b) c(s, S) ≤ c(s + 1, S) para todo
s ≥ s0 . Por otra parte, se añade c) donde se demostrará la existencia de
óptimos multiples.
(a) Para demostrar que se cumple c(s − 1, S) ≥ c(s, S) para todo s ≤ s0 , se
demostrará por inducción que
G(s) ≥ c(s − 1, S) ≥ c(s, S)
(2.34)
se satisface para todo s ≤ s0 .
Para s = s0 de (2.31) se tiene que
G(s0 ) ≥ c(s0 , S)
por el Lema 2.16 (a3)
G(s0 ) ≥ c(s0 − 1, S) ≥ c(s0 , S)
se cumple (2.34) para s = s0 .
Supongase (hipótesis de inducción) que (2.34) se cumple para s = y + 1,
esto es, para algún y < s0 se supone lo siguiente
G(y + 1) ≥ c(y, S) ≥ c(y + 1, S).
(2.35)
Note que como
y < s0 < y1* ,
se tiene que
G(y) ≥ G(y + 1),
y en vista de (2.35) y la hipótesis 2.2 (1) −G unimodal, se tiene que
G(y) ≥ c(y, S).
Luego, aplicando el Lema 2.16.( a3) con s = y, se tiene
G(y) ≥ c(y − 1, S) ≥ c(y, S)
0
para todo y < s .
Esto demuestra que c(s − 1, S) ≥ c(s, S) para todo s ≤ s0 .
2.4 Propiedades del costo promedio esperado y cotas para s∗ y S ∗ .
19
(b) A continuación, para demostrar que c(s, S) ≤ c(s+1, S) para todo s ≥ s0 ,
lo haremos en dos partes: 1) para s0 ≤ s < y1* , y 2) para y1* ≤ s < S.
i. Para demostrarar 1), se prueba por inducción que
G(s + 1) ≤ c(s, S) ≤ c(s + 1, S),
(2.36)
para todo s0 ≤ s < y1* . Aplicando el Lema 2.16.(b1) a la segunda
desigualdad de (2.31) se deduce que (2.36) se satisface para s = so .
Para algún s = y − 1 con s0 ≤ y − 1 < y1* − 1 supóngase (hipótesis
de inducción) que
G(y) ≤ c(y − 1, S) ≤ c(y, S).
(2.37)
Por demostrar que (2.36) se satisface para s = y,
note, otra vez que como y < y1* se sigue que
G(y + 1) ≤ G(y),
lo cual junto con (2.37) se tiene que
G(y + 1) ≤ c(y, S).
Aplicando el Lema 2.16.(b1) con s = y + 1, Se sigue que
c(y, S) ≤ c(y + 1, S)
por lo que completa el paso de inducción, quedando demostrado que
c(s, S) ≤ c(s + 1, S) para s0 ≤ s < y1* .
ii. Falta demostrar que c(s, S) ≤ c(s + 1, S) para y1* ≤ s < S.
La demostración, también se hace por inducción, comenzando con
s = S − 1. De (2.28) y (2.27) se tiene que
Kf + m(0)G(S)
T (1)
= (1 − p0 )Kf + G(S)
c(S − 1, S) =
≥ G(S).
Por el Lema 2.16.(b1)
G(S) ≤ c(S − 1, S) ≤ c(S, S),
es decir (2.36) se cumple para s = S − 1.
Supóngase (hipótesis de inducción) que (2.36) se satisface para y <
S − 1, esto es
G(y + 1) ≤ c(y, S) ≤ c(y + 1, S),
(2.38)
Puesto que y > y1*
G(y) ≤ G(y + 1).
De (2.38) se tiene que
G(y) ≤ c(y, S),
y aplicando el Lema 2.16.(a1) se obtiene
G(y) < c(y − 1, S) ≤ c(y, S)
para todo y1* ≤ y < S − 1.
Puesto que también se satisface para S−1, entonces (2.36) se satisface
para y1* ≤ s < S y en general para s ≥ s0 cumpliéndose b).
20
Sistemas de inventarios con costo promedio
Queda ası́ demostrado que so es óptimo cuando se cumple (2.31).
(c) A continuación se analizará la ocurrencia de óptimos multiples cuando al
menos una de las desigualdades de (2.31) se satisface con igualdad.
Si la primera desigualdad de (2.31) se cumple con igualdad, es decir,
G(s0 ) = c(s0 , S),
entonces por el Lema 2.16.(a2) se tiene
G(s0 ) = c(s0 − 1, S) = c(s0 , S),
lo cual significa que s0 − 1 también es un nivel óptimo de reorden.
En forma análoga, si la segunda desigualdad de (2.31) se cumple con
igualdad, esto es si
c(s0 , S) = G(s0 + 1),
por el Lema 2.16.(b2)
c(s0 , S) = c(s0 + 1, S),
lo cual significa que s0 + 1 también es un nivel óptimo de reorden.
Por lo tanto, cuando al menos una de las dos desigualdades de (2.31) se
cumple con igualdad ocurren óptimos múltiples para S fijo. Con esto
termina la demostración de 1).
2. Sea s0 un nivel de reorden óptimo para S fijo, es decir
c(s0 , S) = min c(s, S),
s<S
por lo que
s0
c(s0
debe cumplir
− 1, S) ≥ c(s0 , S)
y
c(s0 , S) ≤ c(s0 + 1, S).
y
G(s0 + 1) ≤ c(s0 , S) ≤ c(s0 + 1, S),
y
G(s0 + 1) ≤ c(s0 , S).
De (2.30) se tiene que
G(s0 ) > c(s0 − 1, S) ≥ c(s0 , S)
de modo que
G(s0 ) > c(s0 , S)
Por lo tanto
G(s0 + 1) ≤ c(s0 , S) < G(s0 ).
Es decir, se cumple (2.31), y se tiene que
G(s0 + 1) < G(s0 ).
pero como además y1* es el mı́nimo de G(·) entonces s0 < y1* , concluyendo con
esto la demostración de 2).
3. La demostración se desarrollará en cuatro partes, en las cuales se demostrará que:
a) s0l < y1* ,
b) s0u < y1* ,
c) G(s0l ) > c(s0l , S),
d)
0
0
c(su , S) > G(su + 1).
(a) Por contradicción se demostrará que s0l < y1* . Supóngase que s0l ≥ y1* .
Entonces
G(s0l ) ≤ G(s0l + 1) ≤ ... ≤ G(S).
2.4 Propiedades del costo promedio esperado y cotas para s∗ y S ∗ .
21
Usando lo anterior se tiene
Kf +
c(s0l , S)
0
S−s
Pl −1
=
=
m(j)G(S − j)
j=0
T (S − s0l )
Kf + m(0)G(S) + ... + m(S − s0l − 1)G(s0l + 1)
S−s0l −1
P
m(j)
j=0
Kf +
≥
G(s0l )
0
S−s
Pl −1
m(j)
j=0
S−s0l −1
P
m(j)
j=0
≥
Kf
S−s0l −1
P
>
+ G(s0l )
m(j)
j=0
G(s0l ).
Resumiendo esto último tenemos
c(s0l , S) > G(s0l ).
Por el Lema 2.16.(b1)
G(s0l ) < c(s0l − 1, S) ≤ c(s0l , S).
La última desigualdad contradice la definición de s0l , por lo tanto el
supuesto es falso y con esto queda demostrado que s0l < y1* .
(b) En forma análoga, también por contradicción se demuestra que s0u < y1* .
En efecto siguiendo los mismos pasos que en a), se supone que s0u ≥ y1* y
usando el hecho de que
G(s0u ) ≤ G(s0u + 1) ≤ ... ≤ G(S),
se llega a que
c(s0u , S) > G(s0u )
Luego por el Lema 2.16.(b1) se tiene que
G(s0u ) < c(s0u − 1, S) ≤ c(s0u , S),
donde la última desigualdad contradice la definición de s0u . Por lo tanto,
el supuesto es falso y con esto queda demostrado que s0u < y1* .
(c) Se quiere demostrar que G(s0l ) > c(s0l , S). También por contradicción,
pero ahora sabiendo que s0l < y1* y supóngase
G(s0l ) ≤ c(s0l , S),
se tiene por el Lema 2.16.(a1)
G(s0l ) ≤ c(s0l − 1, S) ≤ c(s0l , S).
La última desigualdad contradice la definición de s0l . Por lo tanto
G(s0l ) > c(s0l , S),
lo cual prueba la primera desigualdad de (2.33).
22
Sistemas de inventarios con costo promedio
(d) La prueba de c(s0u , S) > G(s0u +1) que es la segunda desigualdad de (2.33)
es como sigue:
Por contradicción, se supone que
c(s0u , S) ≤ G(s0u + 1).
Luego por el Lema 2.16.(b3)
c(s0u , S) ≥ c(s0u + 1, S),
lo cual contradice la definición de s0u . Por lo tanto, el supuesto es falso y
la segunda desigualdad de (2.33) es cierta.
Con lo anterior queda totalmente demostrado el Teorema 2.17.
El siguiente corolario proporciona una manera eficiente para encontrar un nivel
óptimo de reorden para un nivel de reabastecimiento S dado.
Corolario 2.18 Sea S un nivel de reabastecimiento dado y
s0 := max{y < y1* : c(y, S) ≤ G(y)}.
Entonces (2.31) se cumple y so es un nivel de reorden óptimo para S.
Demostración. Por la definición de so
G(s0 + 1) < c(s0 + 1, S),
y del Lema 2.16.(a1)
G(s0 + 1) < c(s0 , S) ≤ c(s0 + 1, S).
De nuevo por la definición de so
c(s0 , S) ≤ G(s0 ),
y se obtiene
G(s0 + 1) < c(s0 , S) ≤ G(s0 ).
Es decir, se satisface (2.31) y por el Teorema 2.17.1 s0 es óptimo.
En el siguiente resultado se establecen cotas para un nivel de reorden óptimo s∗ .
Corolario 2.19 Cotas para s∗ . Sea (s∗ , S ∗ ) una polı́tica óptima
1. Si s∗l es el menor nivel de reorden óptimo para S ∗ óptimo entonces
s∗l ≤ s := y1* − 1.
(2.39)
2. Sea s∗u el mayor nivel de reorden óptimo para S ∗ óptimo tal que s∗u < y1* . Si
s0 satisface la ecuación (2.31) para algún nivel de reabastecimiento S dado,
entonces
s0 ≤ s∗u .
(2.40)
Demostración:
2.4 Propiedades del costo promedio esperado y cotas para s∗ y S ∗ .
23
1. Inmediata del Teorema 2.17.2.
2. De la última desigualdad de (2.33)
G(s∗u + 1) < c(s∗u , S ∗ ),
y como s0 satisface (2.31), se tiene
c(s0 , S) ≤ G(s0 ).
Por lo tanto
G(s∗u + 1) < c(s∗u , S ∗ ) ≤ c(s0 , S) ≤ G(s0 ).
Además, como G(s) no es creciente para s ≤ s0 < y1* concluimos que s0 ≤
s∗u .
Para un nivel dado S, la cota inferior s0 obtenida en (2.31), se puede mejorar
conforme se vayan obteniendo nuevos valores del nivel de reabastecimiento S.
Teorema 2.20 Sea (s∗ , S ∗ ) una polı́tica óptima. Entonces se cumple lo si-guiente:
1. Cota inferior para S ∗ :
S ∗ ≥ S ∗ := y2* .
(2.41)
2. Cota superior para S ∗ : Sea c∗ el costo promedio esperado óptimo para (s∗ , S ∗ ).
Es decir, si c∗ := c(s∗ , S ∗ ) entonces
∗
S ∗ ≤ S := max{y ≥ y2* : G(y) ≤ c∗ }.
(2.42)
3. Si c = c(s, S) es el costo promedio esperado de una polı́tica arbitraria (s, S),
c > c∗ y se define
S c := max{y ≥ y2* : G(y) ≤ c}.
(2.43)
∗
entonces S ≤ S c . Además, S c1 ≤ S c2 si c1 ≤ c2 .
Demostración:
1. Sea Su∗ := max{S ∗ : c(s∗u , S ∗ ) es óptimo}
Supóngase que Su∗ < y2* . Como G(y) es no creciente para y ≤ y2* , entonces
G(Su∗ − j) ≥ G(Su∗ − j + 1)
∀ j ≥ 0.
De lo anterior se obtiene
Kf +
m(j)G(Su∗ − j)
j=0
c(s∗u , Su∗ ) =
T (Su∗ − s∗u )
Kf +
c(s∗u + 1, Su∗ + 1) =
∗
Su∗ −s
Pu −1
∗
Su∗ −s
Pu −1
,
m(j)G(Su∗ + 1 − j)
j=0
T (Su∗ − s∗u )
c(s∗u , Su∗ ) ≥ c(s∗u + 1, Su∗ + 1).
,
24
Sistemas de inventarios con costo promedio
Esto contradice la definición de Su∗ , por lo tanto, el supuesto es falso y el inciso
(1) del lema queda demostrado.
2. De nuevo usaremos contradicción. Supóngase que existe una polı́tica óptima
(s∗ , S ∗ ) con G(S ∗ ) > c∗ . Note que
P [w < S ∗ − s∗ ] > 0,
ya que si
P [w < S ∗ − s∗ ] = 0,
se tendrı́a
m(0) =
m(j) =
j
X
1
= 1,
1 − p0
∀ j = 1, 2, ..., S ∗ − s∗ − 1.
pi m(j − i) = 0,
i=0
Usando lo anterior se tiene
Kf +
S ∗ −s
P∗ −1
m(j)G(S ∗ − j)
j=0
c∗ = c(s∗ , S ∗ ) =
S ∗ −s
P∗ −1
m(j)
j=0
= Kf + G(S ∗ ) ≥ G(S ∗ ),
lo cual no puede ser cierto por el supuesto de que G(S ∗ ) > c∗ . Entonces
efectivamente se cumple que
P [w < S ∗ − s∗ ] > 0.
Sea
c
W := {w
b:w
b < S ∗ − s∗ } = {0, 1, 2, . . . , S ∗ − s∗ − 1}
el conjunto de las demandas en el intervalo truncado [0, S ∗ − s∗ − 1]. Entonces
c=j|w∈c
P [W
W] =
pj
P [w < S ∗ − s∗ ]
∀ j = 0, 1, 2, · · · , S ∗ − s∗ − 1.
c > s∗ se usa como el nivel de reabastecimiento
Con esta modificación S ∗ − W
aleatorio en lugar de S ∗ (es decir, si el nivel del inventario es menor o igual a
c entonces la posición del inventario se incrementa
s∗ en una realización w
b de W
∗
a S − w).
b
Bajo esta polı́tica el sistema se regenera en cada época de reabastecimiento,
de tal manera que el costo promedio esperado está dado por
c∗ =
K
,
T
2.4 Propiedades del costo promedio esperado y cotas para s∗ y S ∗ .
25
donde
K=
S∗X
−s∗ −1
K(s∗ , S ∗ − j)
j=0
T =
S∗X
−s∗ −1
pj
P [w < S ∗ − s∗ ]
T (S ∗ − j − s∗ )
j=0
pj
P [w < S ∗ − s∗ ]
Note además que de las ecuaciones (2.28), (2.21), y (2.19)
c∗ =
G(S ∗ )
+ Kf
c∗ =
K(s∗ , S ∗ )
T (S ∗ − s∗ )
∞
P
pj +
S ∗ −s
P∗ −1
j=S ∗ −s∗
1+
S ∗ −s
P∗ −1
pj K(s∗ , S ∗ − j)
j=0
pj T (S ∗ − s∗ − j)
j=0
=
G(S ∗ ) + Kf P [w ≥ S ∗ − s∗ ] + K P [w < S ∗ − s∗ ]
1 + T P [w < S ∗ − s∗ ]
Como por hipótesis G(S ∗ ) > c∗ y Kf P [w ≥ S ∗ − s∗ ] > 0, vemos que
c∗ >
c∗ + c∗ T P [w < S ∗ − s∗ ]
,
1 + T P [w < S ∗ − s∗ ]
es decir
c∗ + c∗ T P [w < S ∗ − s∗ ] > c∗ + c∗ T P [w < S ∗ − s∗ ].
Luego
c∗ > c∗ ,
lo cual contradice la definición de c∗ . Por lo tanto el supuesto es falso y 2)
queda demostrado.
3. Sean c∗ ≤ c1 ≤ c2 . Como G(y) es no decreciente para y ≥ y2* se sigue que
S ∗ ≤ S c1 ≤ S c2 . Por lo tanto 3) se cumple.
El Teorema 2.20.3 se usa para identificar mejores cotas superiores para S ∗ , ası́
que cada vez son mejores cotas para las polı́ticas (s, S).
El siguiente teorema requiere la siguiente definición: Para cualquier nivel de
reabaste-cimiento S fijo se define
c∗ (S) := min c(s, S)
s<S
Se dice que S es un mejoramiento de S 0 si c∗ (S) < c∗ (S 0 ).
(2.44)
26
Sistemas de inventarios con costo promedio
Teorema 2.21 Para cualquier nivel de reabastecimiento S 0 ≥ y2* , sea s0 < y1* el
nivel de reorden óptimo para S 0 .
1. c∗ (S) < c∗ (S 0 ) si y sólo si c(so , S) < c(so , S 0 ).
2. Suponga que (2.31) se satisface con S = S 0 . Si c(so , S 0 ) < c(so , S 0 ) para algún
S 0 ≥ y2* , entonces
s0 := min{y ≥ so : c(y, S 0 ) > G(y + 1)},
(2.45)
es óptimo para S 0 ; además s0 < y1* y .G(s0 ) ≥ c(s0 , S 0 ) ≥ G(s0 + 1).
Demostración:
1. (a) ( ⇐= ) Supongase que c(so , S) < c(so , S 0 ). Como so es óptimo para S 0 ,
c(so , S) < c∗ (S 0 ).
Luego, como además so < S, se sigue que
min c(s, S) ≤ c(so , S) < c∗ (S 0 ),
s<S
con lo cual se llega a
c∗ (S) < c∗ (S 0 ).
(b) ( =⇒ ) Por contradicción, supóngase que
c(so , S 0 ) ≤ c(so , S).
Es suficiente demostrar que
c(so , S 0 ) ≤ c(s, S),
lo cual se hará en dos partes 1) para so < s < y1* y para 2) s < so < y1*
i. Para so < s < y1* , considérese
β=
T (S − s)
.
T (S − s0 )
Note que 0 < β ≤ 1. De las ecuaciones (2.28) y (2.27)
Kf +
0
c(s , S) =
S−s−1
P
m(j)G(S − j) +
j=0
m(j)G(S − j)
j=S−s
T (S − s0 )
c(s, S)T (S − s) +
=
S−s
P0 −1
S−s
P0 −1
j=S−s
T (S − s0 )
m(j)G(S − j)
.
Como so es óptimo para S 0 por el Teorema 2.17.2
G(s0 ) ≥ c(s0 , S 0 ) ≥ G(s0 + 1),
y además como −G(·) es unimodal con valor mı́nimo en y1* y so <
s < y1*
G(s0 + 1) ≥ · · · ≥ G(s − 1) ≥ G(s).
2.4 Propiedades del costo promedio esperado y cotas para s∗ y S ∗ .
27
Por lo tanto,
c(s0 , S 0 ) ≥ G(s0 + 1) ≥ G(s0 − 1) ≥ · · · ≥ G(s − 1) ≥ G(s),
de donde se sigue que
c(s, S)T (S − s) +
c(s0 , S 0 )
S−s
P0 −1
m(j)
j=S−s
0
c(s , S) ≤
.
T (S − s0 )
De la ecuación (2.25) y de la definición de β se obtiene
c(s0 , S) ≤ βc(s, S) + (1 − β)c(s0 , S 0 ),
y considerando la suposición
c(s0 , S) ≤ βc(s, S) + (1 − β)c(s0 , S)
se obtiene
c(s0 , S) ≤ c(s, S).
De nuevo, considerando la suposición
c(so , S 0 ) ≤ c(s0 , S) ≤ c(s, S),
se deduce que
c(so , S 0 ) ≤ c(s, S) ∀ s en so < s < y1* .
(2.46)
ii. En forma análoga para s < so < y1* considérese ahora
β=
T (S − s0 )
.
T (S − s)
Note que tambı́en 0 < β ≤ 1. De las ecuaciones (2.28) y (2.27),
Kf +
S−s
P0 −1
m(j)G(S − j)
j=S−s0
j=0
c(s, S) =
S−s−1
P
m(j)G(S − j) +
T (S − s)
c(s0 , S)T (S − s0 ) +
=
S−s−1
P
m(j)G(S − j)
j=S−s0
.
T (S − s)
Como so es óptimo para S 0 , por el Teorema 2.17.2 vemos que
G(s0 ) ≥ c(s0 , S 0 ) ≥ G(s0 + 1).
Además, como −G(·) es unimodal con valor mı́nimo en y1* y s < s0 <
y1* se obtiene
G(s0 ) ≤ G(s0 − 1) ≤ · · · ≤ G(s + 1),
entonces
c(s0 , S 0 ) ≤ G(s0 ) ≤ G(s0 − 1) ≤ · · · ≤ G(s + 1),
por lo cual al sustituir
c(s0 , S)T (S − s0 ) + c(s0 , S 0 )
c(s, S) ≥
S−s−1
P
j=S−s0
T (S − s)
m(j)
.
28
Sistemas de inventarios con costo promedio
de la ecuación (2.25) y de la definición de β
c(s, S) ≥ βc(s0 , S) + (1 − β)c(s0 , S 0 ),
considerando la suposición c(so , S 0 ) ≤ c(so , S)
c(s, S) ≥ βc(s0 , S 0 ) + (1 − β)c(s0 , S 0 )
c(s, S) ≥ c(s0 , S 0 ),
por lo tanto
c(so , S 0 ) ≤ c(s, S) ∀ s en s < s0 < y1*
(2.47)
De las ecuaciones (2.46) y (2.47)
c(so , S 0 ) ≤ c(s, S), ∀ s en s < y1*
c∗ (S 0 ) ≤ c(s, S), ∀ s en s < y1*
c∗ (S 0 ) ≤ c∗ (S).
lo cual es una contradicción, por lo tanto el supuesto es falso y la
parte 1) del lema queda demostrada.
2. Nótese que s´está bien definida en vista del Corolario 2.19.2. Por la definición
de s´
G(s´) ≥ c(s´− 1, S´) y c(s´, S´) ≥ G(s´+ 1).
De la primera desigualdad y del Lema 2.16.b3
c(s´− 1, S´) ≥ c(s´, S´).
Por lo tanto
G(s´) ≥ c(s´, S´) ≥ G(s´+ 1).
Luego, por el Teorema 2.17.1 se tiene que s´ es óptimo para S´. Y en vista de
que G(s´) ≥ G(s´+ 1) se obtiene s´< y1* .
Con esto queda demostrado el inciso 2) del lema.
Capı́tulo 3
Algoritmos e implementación computacional
3.1
Introducción
En este capı́tulo se desarrolla un algoritmo para encontrar una polı́tica óptima
(s∗ , S ∗ ) para el sistema de inventarios con costo promedio. El algoritmo está basado
en las propiedades de la función de costo promedio esperado c(s, S), y va obteniendo
cotas para s∗ y S ∗ (niveles óptimos de reorden y de reabastecimiento respectivamente) cada vez más refinadas, hasta converger a la polı́tica óptima. El algoritmo
es sencillo y fácil de implementar, y su complejidad computacional es solo 2.4 veces
mayor que la complejidad de evaluar una polı́tica (s, S) especı́fica [12]. El algoritmo
se aplica a sistemas de inventarios con revisión periódica. Ilustraremos el algoritmo
con dos ejemplos y los resultados seran validados mediante simulación.
3.2
Algoritmos
En esta sección, usando los resultados del capı́tulo anterior, se deducen algunos
algoritmos para calcular el tiempo esperado hasta la siguiente orden, las funciones
de costo esperado y costo esperado promedio en cada renovación. También se deduce
el algoritmo principal que calcula una polı́tica óptima.
3.2.1
Tiempo esperado hasta la siguiente orden
Las probabilidades se almacenaron en el vector P para aprovechar la estructura
computacional de vector. Puesto que las componentes del vector se numeran computacionalmente desde 1, tomemos P [j] := pj−1 , donde j−1 es el número de unidades
demandadas.
Bajo esta consideraciones, la ecuación (2.22) queda expresada como
m[1] := 1/(1 − P [1]),
m[j] := m[1] ∗
y
j
X
P [i] ∗ m[j − i + 1].
(3.1)
i=2
De la misma manera, los tiempos esperados hasta ordenar se almacenan en el
vector T . Utilizando el vector auxiliar m, la ecuación (2.25) queda transformada en
T [1] := 0,
y
T [j] := T [j − 1] + m[j − 1].
29
(3.2)
30
Algoritmos e implementación computacional
Algoritmo 3.1 El algoritmo para obtener los vectores m[j] y T [j], basado en las
ecuaciones (3.1) y (3.2), tiene las siguientes instrucciones:
m[1] ← 1/(1 − P [1]);
T [1] ← 0;
P ara j ← 2 hasta N hacer
ms ← 0;
P ara i ← 2 hasta j hacer
ms ← ms + P [i] ∗ m[j − i + 1];
f in para
m[j] ← m[1] ∗ ms;
T [j] ← T [j − 1] + m[j − 1];
f in para.
El parámetro N representa el valor máximo de la demanda considerada en el
sistema, ms es una variable auxiliar que va acumulando las cantidades P [i] ∗ m[j −
i + 1].
3.2.2
Funciones de costo en cada renovación
El costo por ordenar será denotado por Kf , para distinguirlo de la función de costo
esperado K(s, y). Además, para poder utilizar los vectores m[j] y T [j] la ecuación
(2.27) se transforma en
K(s, y) = Kf +
y−s
X
j=1
G(y − j + 1)m[j],
y > s.
(3.3)
3.2 Algoritmos
31
Algoritmo 3.2 De acuerdo a las ecuaciones (3.3), (3.2) y (2.28) el algoritmo
evalua las funciones K(s, y) y c(s, S).
KSY ← Kf ;
K ← f unction(s, y);
N ← y − s;
P ara j ← 1 hasta N hacer
KSY ← KSY + m[j] ∗ G(y − j + 1);
f in para
K(s, y) ← KSY
f in f unción K.
c ← f unction(s, S);
C(s, S) ← K(s, S)/T [S − s + 1];
f in f unción c.
Se ha utilizado KSY como variable auxiliar para acumular las cantidades Kf y
m[j] ∗ G(y − j + 1).
Algoritmo 3.3 El algoritmo principal calcula una polı́tica (s∗ , S ∗ ) óptima y necesita
como entrada las funciones G(·), c(·, ·) y el punto mı́nimo y * de G(·). A continuación
se dan las instrucciones de los dos pasos del algoritmo principal
P aso 0
s ← y * − 1;
S0 ← y * ;
M ientras G(s) < c(s, S0 ) hacer s ← s − 1;
s0 ← s;
c0 ← c(s0 , S0 );
S 0 ← S0 ;
S ← S 0 + 1;
P aso 1
M ientras G(S) ≤ c0 hacer
Si c(s, S) < c0 entonces
S 0 ← S;
M ientras c(s, S 0 ) ≤ G(s + 1) hacer s ← s + 1;
c0 ← c(s, S 0 );
f in si
S ← S + 1;
f in mientras
El P aso 0 inicia con nivel de reabastecimiento S 0 ← y * , donde y * es un mı́nimo
arbitrario de la función G(·). Se encuentra el nivel de reabastecimiento s0 óptimo
32
Algoritmos e implementación computacional
para S 0 , disminuyendo el valor de s con pasos de tamaño uno desde y * , hasta que
se obtiene la desigualdad c(s, S0 ) ≤ G(s). La optimalidad de s0 para S 0 se sigue del
Corolario 2.18.
En el P aso 1, se busca el menor valor de S mayor que S 0 , que mejora el costo
para S 0 . El valor de S es incrementado de uno en uno, comparando en cada paso
c(s0 , S) y c(s0 , S 0 ) para verificar si S mejora a S 0 , lo anterior es justificado por el
Teorema 2.21 (1). En caso de que S sea una mejora, S 0 se actualiza igualándolo a
S y se obtiene el nuevo nivel óptimo de reorden s0 , incrementando de uno en uno
el valor actual de s0 hasta que c(s, S 0 ) ≤ G(s + 1). La existencia de tal nivel de
reorden s0 , su optimalidad (para el nuevo valor de S 0 ) y s0 < y * son garantizados
por el Teorema 2.21 (2).
Finalmente, note que siempre que el P aso 1 es iniciado, c0 representa una cota superior para c∗ (la mejor cota disponible). En vista del Teorema 2.20 (3) la búsqueda
para un mejor valor de S debe terminar cuando G(S) > c0 . En la última iteración
del algoritmo, cuando S 0 ← S ∗ y s0 ← s∗ para alguna polı́tica óptima (s∗ , S ∗ ) se
tiene que c0 ← c∗ y S 0 ← S, por el Teorema 2.20 (2). La prueba en el ciclo exterior
∗
mientras-fin mientras del P aso 1 falla cuando S ← S + 1, de acuerdo a la definición
∗
de S por el Teorema 2.20 (2).
3.2.3
Costo de producción distinto de cero
Los algoritmos anteriores solo han considerado el costo fijo por ordenar Kf y la
función de costo G(·), sin tomar en cuenta el costo por unidad de producción c, ya
que de acuerdo a la Observación 2.6 este costo no es necesario para obtener una
polı́tica óptima.
Para problemas donde el costo por unidad de producción c es distinto de cero, una
polı́tica óptima se obtiene con los algoritmos anteriores, solo que al costo promedio
esperado c(s, S 0 ) hay que añadirle el producto que resulta de la multiplicación de la
demanda promedio por el costo por unidad, como lo especifica la ecuación (2.13).
A continuación se da un algoritmo para calcular el valor esperado de la demanda
y el costo promedio esperado co, para el caso con demanda finita.
Algoritmo 3.4 Para incluir el costo de producción distinto de cero, se consi-deran
las siguientes instrucciones:
u ← 0;
P ara j ← 1 hasta N hacer
u ← u + P [j] ∗ (j − 1);
f in para
co ← C(s, Sc) + c ∗ u;
En este caso N es el mayor valor de la demanda con probabilidad distinta de
cero.
3.3 Complejidad computacional
3.3
33
Complejidad computacional
Considere el espacio bidimensional entero, con valores de s en el eje horizontal y
valores de S en el eje vertical. Cada punto (s, S) con s < S representa una polı́tica.
Se supone que y * es dada y su determinación depende de la estructura de G(·). En
las discusiones siguientes s0 denota el valor de s obtenido al final del P aso 0, el cual
es óptimo para S = y * .
El P aso 1 comienza en el punto (s0 , y * ), realizando la búsqueda a través de
trayectorias verticales hacia arriba y horizontales a la derecha, finalizando en el
∗
∗
punto (s∗ , S + 1). Sin tener en cuenta la trayectoria exacta, se realizan S − y * + 1
movimientos verticales, en los cuales el valor de S se aumenta con incrementos de
tamaño uno, manteniendo s fijo. Además requiere s∗ − s0 movimientos horizontales, en los cuales el valor de s se aumenta con incrementos de tamaño uno, para
manteniendo S fijo.
Cada movimiento vertical (excepto el último el cual solamente involucra una
comparación) corresponde a una iteración del ciclo exterior mientras-fin mientras
del P aso 1. Este ciclo consiste de una evaluación de la función c(·, ·), una suma
y a lo más tres comparaciones (dos si S 0 no es actualizado). Cada movimiento
horizontal requiere una ejecución adicional de el ciclo interno mientras-fin mientras
el cual requiere una actualización de la función c(·, ·), una comparación y una adición.
Una evaluación de c(·, ·) en la ecuaciones (2.28) requiere 2(S − s) + 1 operaciones
elementales ( (S − s) adiciones, (S − s) multiplicaciones y una división) suponiendo
que se dispone de los valores G(·), m(·) y T (·).
Las evaluaciones de la función c(·, ·) en la prueba de la condición Si del ciclo
exterior mientras-fin mientras cuando se realizan movimientos verticales, se efectuan
en la ecuación (2.28). Cuando se calcula el numerador se utiliza en la ecuación (2.27)
y obtenemos las cantidades
Ai (S) = Kf +
i
X
G(y − j)m(j),
i = 0, 1, · · · , S − s − 1,
j=0
como resultados intermedios.
El número de operaciones elementales para movimientos verticales (incluyendo
∗
la comparación final para verificar S > S ) está acotado por
∗
S
X
∗
[2(S − s0 ) + 1] + 4(S − y * ) + 1,
S=y * +1
y la cota para el número de movimientos horizontales es 3(s∗ − s0 ).
Por lo tanto, el número total de operaciones elementales que se necesitan en el
34
Algoritmos e implementación computacional
P aso 1 está acotado por
∗
S
X
∗
[2(S − s0 ) + 1] + 4(S − y * ) + 1 + 3(s∗ − s0 ),
S=y * +1
∗
∗
= (S + y * − 2s0 + 6)(S − y * ) + 3(s∗ − s0 ) + 1.
El resto del esfuerzo computacional del algoritmo consiste de las siguientes componentes:
∗
1. Determinación de los (S − s0 + 2) valores de
o
n
∗
G(s0 ), G(s0 + 1), · · · , G(S + 1) ;
2. Determinación de s0 y c(s0 , S0 ). Esto requiere evaluciones sucesivas de Ai (S0 ) para i =
0, 1, · · · , S0 −s0 −1, las cuales pueden ser hechas en 2(S0 −s0 ) operaciones, con
(y ∗ − s0 ) divisiones adicionales para calcular c(s, S0 ) para s = y ∗ − 1, · · · , s0
en las comparaciones entre c(s, S0 ) y G(s). Dado que S0 = y ∗ , el número total
de operaciones elementales requeridas para 2 es entonces dada por
2(S0 − s0 ) + 2(y ∗ − s0 ) = 4(y ∗ − s0 ).
3. Determinación de los valores m(·) y T (·). El número exacto depende de la
∗
trayectoria que sigue el algoritmo pero puede ser acotado por (S − s0 ). La
ecuación (2.22) con ligeras modificaciones para usarse en la impementación es
P
m(j) := [1 − p0 ]−1 jl=1 m(l − j)pl .
El cálculo de [1 − p0 ]−1 requiere dos operaciones, m(j) requiere 2j operaciones
j = 1, 2, · · · y una sola suma para obtener T (j + 1) de T (j) y m(j). El número total
de operaciones requeridas para 3 es entonces acotado por
∗
2+
S X
−s0 −1
2j + (S ∗ − s0 − 1),
j=1
= 2 + (S ∗ − s0 )(S ∗ − s0 − 1) + (S ∗ − s0 − 1),
= (S ∗ − s0 )2 + 1.
El número total de operaciones elementales necesarias para la determinación 2
y 3 es entonces dada por
∗
∗
B = (S + y * − 2s0 + 6)(S − y * ) + 3(s∗ − s0 ) + 2 + 4(y ∗ − s0 ) + (S ∗ − s0 )2 ,
= 2421 − 422 + 641 − 242 + 343 + 2,
≤ 2(41 + 1)2 + 2(41 + 1) − (42 + 1)2 + 343 ,
donde 41 = S ∗ − s0 , 42 = y ∗ − s0 y 43 = s∗ − s0 .
Note que (42 + 1)2 ≥ (43 + 1)2 ≥ 343 ası́ que la cota es
B ≤ 2(41 + 1)2 + 2(41 + 1).
De la discusión anterior se tiene el siguiente resultado.
(3.4)
3.4 Ejemplos numéricos y sus implementaciones
35
Teorema 3.5
1. El algoritmo termina con (s, S 0 ) siendo una polı́tica optima y c0 = c∗ .
2. Asumiendo y ∗ es conocida, el algoritmo requiere a lo más
B = 2(41 + 1)2 + 2(41 + 1) − (42 + 1)2 + 343 ,
operaciones elementales y (41 + 2) evaluaciones de la función G.
3. Suponga que y ∗ y G(s0 + 1), · · · , G(S ∗ + 1) son conocidos. Denotemos por
R(41 ) el producto del número de operaciones elementales necesarias para
el algoritmo por el número de operaciones elementales necesarias para una
evalución c(s0 , S ∗ ) entonces
R(41 ) ≤ 2.4
y
lim41 →∞ R(41 ) = 2.
Demostación. Los incisos 1 y 2 de este teorema ya han sido verificadas.
Para probar el inciso 3, note que para obtener m(0),· · · , m(S ∗ − s0 − 1) y
T (1),. . . , T (S ∗ − s0 ) se requiere de (S ∗ − s0 )2 + 1 = 421 + 1 operaciones. El resto de
los calculos para una evaluación de c(s0 , S ∗ ) en (2.28) requiere 241 + 1 operaciones
resultando un total de 421 + 241 + 2 operaciones. La complejidad de la proporción
es entonces acotada por
R(41 ) =
B
2(41 + 1)2 + 2(41 + 1)
≤
..
(41 + 1)2 + 1
(41 + 1)2 + 1
Se puede verificar que R(41 ) es decreciente, ası́ que
R(41 ) ≤ R(1) ≤
12
= 2.4.
5
Además lim41 →∞ R(41 ) = 2.
Evaluando la complejidad de la proporción R en la parte 3, excluimos el esfuerzo
computacional para determinar los valores de G(·) debido a que depende fuertemente
de la estructura de la función G(·).
3.4
Ejemplos numéricos y sus implementaciones
Con el fin de ilustrar los pasos del algoritmo, se resuelven dos problemas ficticios. En
el primer problema con demandas finitas y en el segundo problema con demandas
con distribución de Poisson.
36
Algoritmos e implementación computacional
3.4.1
Problema con demandas finitas.
Se considera un sistema de inventarios con costo de producción c = 4, costo fijo
por ordenar Kf = 6, costo por mantener en inventario una unidad durante un
periodo h = 1, costo de penalización por unidad de demanda no satisfecha durante
un periodo pe = 5. La demanda en cada uno de los periodos tiene la siguiente
distribución
p3 :=0.1,
p4 :=0.2,
p5 :=0.4,
p6 :=0.3
y pj := 0, ∀ j 6= 3, 4, 5, 6.
Determinaremos una polı́tica y el costo promedio esperado óptimos cuando se
inicia con nivel de inventario inicial igual a cero.
Mı́nimo de la función G(·)
En este problema la función G(·) incluye los costos por mantener el inventario y el
costo de penalización. La expresión de G(·) es la siguiente:
G(y) = 5Ew [max {0, w − y}] + Ew [max {0, y − w}] .
Expresándola en forma desarrollada queda de la siguiente manera

−5y+24.5, si y < 3,




9.5,
si y = 3,



5.1,
si y = 4,
G(y) =
1.9,
si y = 5,





1.1,
si y = 6,


y−4.9,
si y > 3,
En la gráfica se observa que el mı́nimo está en y * = 6.
Recuerde que las probabilidades se almacenaron en el vector P , donde P [j] ←
pj−1 donde las j − 1 representa el valor de la demanda y N es el mayor valor de la
demanda con probabilidad distinta de cero.
Algoritmo 3.6 Alimentación de datos de entrada
3.4 Ejemplos numéricos y sus implementaciones
37
N ← 7;
Kf ← 6;
h ← 1;
pe ← 5;
P [4] ←0.1;
P [5] ←0.2;
P [6] ←0.4;
P [7] ←0.3
Algoritmo 3.7 Para generar la función G(·) se enlista las siguientes instrucciones
G ←− f unción(y);
P E ← 0;
H ← 0;
P ara j ← 1 hasta N hacer
Si y > j − 1 entonces H ← H + (j − 1 − y) ∗ P [j];
en otro caso P E ← P E + (j − 1 − y) ∗ P [j];
f in para
G(y) ← h ∗ H + pe ∗ P E;
f in f unción G.
Se introducen las variables auxiliares H y P E para calcular el valor esperado de
los costos por manterer en inventario y déficit respectivamente.
Cálculo de los vectores m[·] y T [·]
Para calcular los tiempos y costos promedios esperados hasta ordenar, de acuerdo a
las ecuaciones (3.1) y (3.2), se siguen los pasos del Algoritmo 3.1.
m[1] ← 1/(1 − P [1]) = 1;
T [1] ← 0;
P ara j ← 2 hasta N hacer
Primer iteración
j ← 2;
ms ← 0;
P ara i ← 2 hasta 2 hacerms ← ms + P [2] ∗ m[1] = 0;
ms ← ms + P [2] ∗ m[1] = 0;
f in para
m[2] ← m[1] ∗ ms = 1 ∗ 0 = 0;
T [2] ← T [1] + m[1] = 0 + 1 = 1;
Segunda iteración
38
Algoritmos e implementación computacional
j ← 3;
ms ← 0;
P ara i ← 2 hasta 3 hacer
i ← 2, j ← 3
ms ← ms + P [2] ∗ m[2] = 0;
i ← 3, j ← 3
ms ← ms + P [3] ∗ m[1] = 0;
f in para
m[3] ← m[1] ∗ ms = 1 ∗ 0 = 0;
T [3] ← T [2] + m[2] = 1 + 0 = 1;
Siguiendo las iteraciones se obtienen los vectores
m = [1.00, 0.00, 0.00, 0.00, 0.10, 0.20, 0.40, 0.31, · · · ],
T = [0.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.30, 1.70, 2.01, · · · ].
Estos se utilizaran en los siguientes pasos del Algoritmo 3.3
Algoritmo principal
A continuación se indican los pasos del Algoritmo 3.3
P aso 0
s ← y * − 1 = 6 − 1 = 5;
S0 ← y * = 6;
M ientras G(s) < c(s, S0 ) hacer s ← s − 1;
llamada al Algoritmo 3.2 se obtiene
c(s, S0 ) ← c(5, 6) =
Kf + m[1]G(6)
6 + (1)(1.1)
=
= 7.1
T [1]
(1)
llamada al Algoritmo 3.7 se obtiene G(s) ← G(5) =1.9
como G(5) < c(5, 6) hacer s ← 5 − 1 = 4
llamar los Algoritmos 3.7 y 3.2 G(s) ← G(4) = 5.1
Kf + m[1]G(6) + m[2]G(5)
T [2]
6 + (1)(1.1) + (0)(1.9)
=
= 7.1
(1)
c(s, S0 ) ← c(4, 6) =
como G(4) < c(4, 6) hacer s ← 4 − 1 = 3
llamar los Algoritmos 3.7 y 3.2 G(s) ← G(3) =9.5
c(s, S0 ) ← c(3, 6)
Kf + m[1]G(6) + m[2]G(5) + +m[3]G(4)
=
= 7.1
T [3]
3.4 Ejemplos numéricos y sus implementaciones
termina ciclo M ientras, no se cumple G(3) < c(3, 6)
s0 ← s = 3;
c0 ← c(s0 , S0 ) = c(3, 6) =7.1;
S 0 ← S0 = 6;
S ← S 0 + 1 = 7;
P aso 1
Primera iteracion
M ientras G(S) ≤ c0 hacer
Como G(7) =2.1≤ c0 =7.1 hacer
Si c(s, S) < c0 entonces
utilizando el Algoritmo 3.2 c(3, 7) =7.8272
f in si, (no se cumple la condición del si)
S ← S + 1 = 7 + 1 = 8;
Segunda iteración
M ientras G(S) ≤ c0 hacer
Como G(8) =3.1≤ c0 =7.1 hacer
Si c(s, S) < c0 entonces
utilizando el Algoritmo 3.2 c(3, 8) =7.93077
f in si, (no se cumple la condición del si)
S ← S + 1 = 8 + 1 = 9;
Tercera iteración
M ientras G(S) ≤ c0 hacer
Como G(9) =4.1≤ c0 =7.1 hacer
Si c(s, S) < c0 entonces
utilizando el Algoritmo 3.2 c(3, 9) =7.429412
f in si, (no se cumple la condición del si)
S ← S + 1 = 9 + 1 = 10;
Cuarta iteración
M ientras G(S) ≤ c0 hacer
Como G(10) =5.1≤ c0 =7.1 hacer
Si c(s, S) < c0 entonces
utilizando el Algoritmo 3.2 c(3, 10) =6.900995
(si se cumple la condición del si)
S 0 ← S = 10;
M ientras c(s, S 0 ) ≤ G(s + 1) hacer s ← s + 1;
c(3, 10) ≤ G(s + 1) = G(4) =5.1 no cumple
f in mientras
39
40
Algoritmos e implementación computacional
c0 ← c(s, S 0 ) = c(3, 10) =6.900995;
f in si
S ← S + 1 = 10 + 1 = 11;
Quinta iteración
Observe que cambio c0 =6.900995
M ientras G(S) ≤ c0 hacer
Como G(11) =6.1≤ c0 = 6.900995 hacer
Si c(s, S) < c0 entonces
utilizando el Algoritmo 3.2 c(3, 11) =6.86
(si cumple la condición)
S 0 ← S = 11;
M ientras c(s, S 0 ) ≤ G(s + 1) hacer s ← s + 1;
c(3, 11) ≤ G(s + 1) = G(4) =5.1 no cumple
f in mientras
c0 ← c(s, S 0 ) = c(3, 11) =6.86;
f in si
S ← S + 1 = 11 + 1 = 12;
Sexta iteración
Observe que cambio c0 =6.86
M ientras G(S) ≤ c0 hacer
Como G(12) =7.1≤ c0 = 6.900995 N O CU M P LE
f in mientras
El Algoritmo Principal 3.3 termina con
Polı́tica Óptima (3,11),
Costo Promedio Óptimo 6.86,
sin incluir todavı́a el costo de producción c.
Calculo del costo promedio considerando el costo de producción c = 4.
Del Algoritmo 3.4 se obtiene que
u ←0+0∗1 + 0 ∗ 2+0.1∗3+0.2∗4+0.4∗5+0.3∗6 + 0 ∗ 7 =4.9,
co ← C(s, Sc) + c ∗ u = c(3, 11) + 4∗4.9=6.86+19.6=26.46.
Finalmente los algoritmos obtienen la siguiente solución para el problema:
Polı́tica Óptima (3,11),
Costo Promedio Óptimo 26.46.
3.4 Ejemplos numéricos y sus implementaciones
3.4.2
41
Problema con demandas con distribución de Poisson
Ahora se considera un sistema de inventarios con costo de producción c = 5, costo
fijo por ordenar Kf = 64, costo por mantener en inventario una unidad durante un
periodo h = 1, costo de penalización por unidad de demanda no satisfecha durante
un periodo pe = 9. La demanda en cada uno de los periodos tiene una distribución
de Poisson con parámetro lambda = 10.
Determı́naremos una polı́tica y el costo promedio óptimos, cuando se inicia con
nivel de inventario cero.
Mı́nimo de la función G(·)
Para este problema la función G(·), tiene la forma
G(y) = 9Ew [max {0, w − y}] + Ew [max {0, y − w}] ,
En la gráfica se observa que el mı́nimo está en y ∗ = 14.
Algoritmo 3.8 Alimentación de datos de entrada
N ← 100;
Kf ← 64;
h ← 1;
lambda ← 10;
P ← V ector de probabilidades P oisson con parámetro lambda;
El vector P es generado por el sistema R. Con estos datos se ejecuta el Algoritmo
3.7 para generar la función G(y).
42
Algoritmos e implementación computacional
Calculo de los vectores m[·] y T [·]
Al siguir los pasos del Algoritmo 3.1, se obtiene
−5
m[1] ← 1/(1 − P [1]) = 1/(1−4.54∗10 ) =1.0000454,
T [1] ← 0,
P ara j ← 2 hasta N hacer
Primer iteración
j ← 2;
ms ← 0;
P ara i ← 2 hasta 2 hacer
ms ← ms + P [2] ∗ m[1] = 0+0.000454∗1.0000454=0.000454,
f in para
m[2] ← m[1] ∗ ms =1.0000454∗0.000454=0.000454,
T [2] ← T [1] + m[1] = 0+1.0000454=1.0000454,
Siguiendo las iteraciones
m = [1.000045, 0.000454, 0.002270, 0.007569, 0.018930, 0.037888, · · · ],
T = [0.00, 1.000045, 1.000499, 1.002770, 1.010339, 1.029270, · · · ],
Algoritmo principal
El Algoritmo Principal 3.3 termina con
Polı́tica Óptima (6,40),
Costo Promedio Óptimo 35.02156,
sin considerar todavı́a el costo de producción c.
Este resultado coincide con el que se reporta en [12]. Los demás resultados reportados también pueden ser obtenidos de igual forma, cambiando el valor adecuado
de lambda en el Algoritmo 3.8.
Calculo del costo promedio considerando el costo de producción c = 5.
Para considerar el costo de producción c = 5, se necesita añadirle al costo promedio
c(s, S 0 ) la demanda promedio c ∗ lambda = 5 ∗ 10 = 50, como lo especifica la
ecuación (2.13).
Finalmente el problema, tiene por solución los siguientes resultados:
Polı́tica Óptima (6,40),
Costo Promedio Óptimo 85.02156.
3.5
Simulación e implementación
Los datos de los problemas anteriores son ficticios, por lo que se simula la evolución
de los sistemas para contrastar resultados [10]. En la simulación la polı́tica es dada,
3.5 Simulación e implementación
43
se inicia con nivel de inventario cero y además se utilizan las siguientes variables y
vectores:
n = N úmero de periodos de evolución del inventario.
SC = Suma de costos de producción.
SH = Suma de costos por mantener inventario.
SP E = Suma de costos de penalización.
CP = Costo promedio óptimo.
X = V ector evolución de estados del sistema de inventarios.
w = V ector evolución de las demandas.
C = V ector evolución de costos por producción.
H = V ector evolución de costos por mantenimiento.
P E = V ector evolución de costos por penalización
Algoritmo 3.9 Lista de instrucciones para simular un inventario con polı́tica (s, S)
dada.
P ara i ← 1 hasta n hacer
Si X[i] ≤ s entonces hacer
y ← S − X[i];
SC ← SC + c ∗ y + Kf ;
X[i + 1] ← S;
si no X[i + 1] ← X[i];
f in si
w[i] ← d(i) := demanda simulada en la etapa i;
X[i + 1] ← X[i + 1] − w[i];
Si X[i + 1] ≤ 0 entonces hacer
SP E ← SP E − pe ∗ X[i + 1];
si no SH ← SH + h ∗ X[i + 1];
C[i] ← SC;
H[i] ← SH;
P E[i] ← SP E;
f in para
CP ← (SC + SH + SP E)/n;
3.5.1
Problema con demandas finitas.
Para la simulación de este problema, además de utilizar el Algoritmo 3.9, es necesario
simular las demandas.
La simulación de las demandas se hace con el método de la transformada inversa
[10], el cual consiste en lo siguiente: Para simular el valor de la variable aleatoria D
44
Algoritmos e implementación computacional
con densidad de probabilidad P [D = dj ] = pj , ∀ j = 0, 1,· · · , se genera un número
aleatorio u uniformemente distribuido en (0,1) y se hace

d0
si u < p0 ,




d1
si p0 ≤ u < p0 + p1 ,


 .
..
..
.
D=
P
P

j−1


d
si
p
≤
u < ji=1 pi ,
j
i

i=1


..
 ..
.
.
Recuerde que tambı́en se requiere alimentar la polı́tica óptima (3, 11) y los otros
datos del problema:
Algoritmo 3.10 Alimentación de datos de entrada del problema
Kf ← 6;
c ← 4;
h ← 1;
pe ← 5;
W ← [3, 4, 5, 6];
P ← [0.1, 0.2, 0.4, 0.3];
s ← 3;
S ← 11;
X[1] ← 0;
n ← 100000;
El vector W almacena las demandas con probabilidad distinta de cero y es apuntador hacia el vector P que almacena las correspondientes probabilidades.
Algoritmo 3.11 Para poder generar una demanda y utilizarla en cada etapa del
sistema, se hace mediante la estructura de función.
d ← f unction(x)
u ← número aleatorio unif ormemente distribuido en (0, 1)
p ← P [1];
j ← 1;
M ientras u > p hacer
j ← j + 1;
p ← p + P [j];
f in mientras
d(x) ← W [j];
f in f unción d
3.5 Simulación e implementación
45
El Algoritmo 3.9 utiliza los Algoritmos 3.10 y 3.11 para poder simular el problema.
En una corrida del algoritmo considerando n = 100, 000 periodos del inventario,
se obtuvieron los siguientes resultados.
C=
H=
PE =
X=
[
0
5
−1
w=
[
6
6
6
[50
[5
[0
50
5
5
104
10
5
104
11
5
5
4
1
4
150
18
5
7
3
4
5
150
22
5
−1
6
2
8
5
4
3
3
5
···]
5
150
22
10
204
28
10
204
30
10
246
38
10
···]
246
43
10
246
43
10
···]
···]
···]
46
Algoritmos e implementación computacional
V cp =
[55
30
39.67
30
34.60
29.50
26
30.25
27.11
29.40
···]
Al realizar varias corridas también de n = 100, 000 periodos se obtienen los
siguientes costos promedios esperados
26.45015 26.46852 26.46109 26.46602 26.4793 26.47514
26.46767 26.45723 26.45744 26.45708 26.46639 26.47571
Recuerde que el costo promedio óptimo es c(3, 11) =26.46. Como se puede
observar la simulación corrobora el resultado obtenido por el algoritmo pro-puesto
en este trabajo de tesis.
Simulando otras polı́ticas se puede observar que (3, 11) es efectivamente la de
menor costo promedio esperado.
c(0, 13)
28.72
c(1, 13)
28.15
c(2, 13)
27.59
c(3, 13)
27.43
c(4, 13)
27.70
c(5, 13)
28.06
c(6, 13)
28.21
c(0, 12)
28.89
c(1, 12)
27.88
c(2, 12)
27.14
c(3, 12)
26.97
c(4, 12)
27.10
c(5, 12)
27.21
c(6, 12)
28.40
c(0, 11)
28.55
c(1, 11)
27.29
c(2, 11)
26.61
c(3, 11)
26.46
c(4, 11)
26.48
c(5, 11)
27.43
c(6, 11)
29.43
c(0, 10)
28.06
c(1, 10)
26.97
c(2, 10)
26.55
c(3, 10)
26.50
c(4, 10)
26.81
c(5, 10)
28.49
c(6, 10)
29.85
c(2, 9)
27.33
c(3, 9)
27.04
c(4, 9)
27.76
c(0, 9)
28.14
3.5.2
c(1, 9)
27.50
c(5, 9)
28.87
c(6, 9)
29.70
Problema con demandas con distribución de Poisson
En este problema la simulación de las demandas se hace directamente con una instrucción, la cual genera números aleatorios con distribución de Poisson y es utilizada
en el Algoritmo 3.9, en la instrucción
3.5 Simulación e implementación
47
w[i] ← d(i) := demanda simulada en la etapa i
En este problema, la alimentación de los datos, junto con la pólitica (6, 40) se
realiza con las siguientes instrucciones:
Kf ← 64;
c ← 5;
h ← 1;
pe ← 9;
w ← demanda P oisson
s ← 6;
S ← 40;
X[1] ← 0;
n ← 100000;
En una corrida del Algoritmo 3.9 considerando n = 100, 000 periodos del inventario, se obtienen los siguientes resultados.
X = [ 0, 32, 28, 15, 7, -5, 31, 23, 14, 1, 24, 13, 7, -7, 29, 27, 18, 8, 1, 29, 18, 7, 0, · · · ]
48
Algoritmos e implementación computacional
w = [ 8, 4, 13, 8, 12, 9, 8, 9, 13, 16, 11, 6, 14, 11, 2, 9, 10, 7, 11, 11, 11, 7, 8, 10, · · · ]
V cp = [ 296, 162, 113, 86.5, 78.2, 118.5, 104.85, 93.50, 83.22, 103.20, 95.00, 87.67,
85.77, 103.07, 98.00, 93.00, 88.00, 83.17, 93.94, 90.15, 86.19, 82.27, · · · ]
La evolución de los otros costos es como sigue:
C=
H=
PE =
[
[
[
264
32
0
264
60
0
264
75
0
264
82
0
264
82
45
553
113
45
553
136
45
553
150
45
553
151
45
812
175
45
812
188
45
···]
···]
···]
Se realizan varias corridas también de n = 100, 000 periodos y se obtienen los
siguientes costos promedios esperados
85.06527 85.0265 85.03992 85.02532 85.03723 84.97543
84.9977 84.99914 85.02090 84.98499 84.98267 85.0408
Recuerde que el costo promedio óptimo es c(6, 40)=85.02156. En este caso se
observa también que las simulaciones corroboran los resultados obtenidos por el
Algoritmo 3.3.
3.5 Simulación e implementación
49
Haciendo simulaciones con otras polı́ticas también para 100, 000 periodos, se
puede observar que (6, 40) es efectivamente la de menor costo promedio esperado.
c(3, 41)
85.7790
c(4, 41)
85.3003
c(5, 41)
85.1009
c(6, 41)
85.0795
c(7, 41)
85.1706
c(8, 41)
85.6688
c(9, 41)
86.0903
c(3, 40)
85.6226
c(4, 40)
85.2925
c(5, 40)
85.1192
c(6, 40)
85.0375
c(7, 40)
85.0841
c(8, 40)
85.4308
c(9, 40)
86.0430
c(3, 39)
85.7856
c(4, 39)
85.3784
c(5, 39)
85.1842
c(6, 39)
85.0485
c(7, 39)
85.1587
c(8, 39)
85.3853
c(9, 39)
86.0771
50
Algoritmos e implementación computacional
Capı́tulo 4
Conclusiones y perspectivas
En este trabajo se han desarrollado los fundamentos teóricos y la implementación
de un método para encontrar una polı́tica (s, S) que minimiza el costo promedio
esperado de un sistema de inventario con revisión periódica para un solo producto.
El sistema de inventario fue modelado como un problema de control Markoviano
(PCM) y la base fundamental del método fue la estructura de renovación del costo
promedio esperado inducida por una polı́tica (s, S). La teorı́a aquı́ desarrollada para
el PCM se basó en [1] y [2]; la teorı́a de procesos regenerativos en [9], el algoritmo
implementado en los trabajos [12] y [4], la simulación en [10]; la bibliografı́a restante
sirvió de apoyo.
La importancia del método radica en que trabaja bajo hipótesis muy ge-nerales,
por lo que se puede modelar una amplia variedad de sistemas de inventarios.
La implementación computacional del algoritmo permite acortar la brecha entre
teorı́a y práctica en sistemas de inventarios. La implementación fue desa-rrollada
en lenguaje R y soporta cualquier distribución discreta para la demanda, ya sea
generada por el sistema del lenguaje R o por el usuario. El Algoritmo 3.10 simula
la demanda para el caso finito, el cual es muy frecuente en sistemas de inventarios.
Se analizaron dos ejemplos de sistemas de inventarios con datos ficticios. La
solución óptima arrojada por el método propuesto fue contrastada con los resultados
obtenidos mediante simulación, lográndose en ambos ejemplos resultados satisfactorios.
Desde el punto de vista pedagógico la implementación del algoritmo y simulación
del sistema puede ser de utilidad, ya que el estudio de sistema de inventarios es un
tema curricular en escuelas de ingenierı́a industrial y escuelas de administración.
Algunas posibles lı́neas de extensión de este trabajo son las siguientes:
1. Este trabajo se enfocó a sistema de inventarios con revisión periódica. Se
reporta en [12] que con algunas modificaciones el algoritmo aquı́ implementado
se aplica a sistemas con revisión continua. Entonces, una natural extensión
serı́a la implementación del algoritmo para sistemas con revisión continua.
2. Una limitación del algoritmo implementado es que considera que la entrega es
inmediata. En la práctica generalmente los tiempos de entrega son variables
aleatorias. Zipkin [14] reporta que el tiempo de entrega aleatoria puede ser
incorporado en el costo G(·) como tiempo de entrega fijo, sin violar las condi51
52
Conclusiones y perspectivas
ciones de la hipótesis aquı́ consideradas. Entonces, una segunda posibilidad
consistirı́a en extender el algoritmo a esta nueva situación.
3. En el ámbito comercial las funciones de costo generalmente son cóncavas, ya
que los costos unitarios van disminuyendo en la compra de grandes cantidades.
Por lo tanto, otra extensión serı́a el estudio de sistemas de inventarios con
funciones de costos de producción cóncava.
4. En este trabajo se consideró el ı́ndice de costo promedio. En algunas situaciones se requiera considerar el criterio de costo descontado, lo cual plantea
otra lı́nea de trabajo.
Bibliografı́a
[1] D. Bertsekas (1987), Dynamic Programming: Deterministic and Stochastic
Models, Prentice-Hall, New York
[2] D. Bertsekas (1995), Dynamic Programming and Optimal Control Stochastic,
Vols 1 and 2, Athenea Scientific, Belmont, MA.
[3] D. Beyer and S.P. Sethi (1999), The classical average-cost inventory mo-dels
of Iglehart and Veinott-Wagner, revisited, Journal of Optimization Theory and
Applications: Vol. 101, No. 3, pp 523-555.
[4] A. Federgruen and P. Zipkin (1984), An efficient algorithm for computing optimal (s, S) policies, Oper. Res: Vol. 32, No. 6, pp 1268-1285.
[5] E.A. Feinberg and M.E. Lewis (2005), Optimality inequalities for average cost
Markov decision processes and optimality of (s,S) policies. dirección electrónica:
http://www.ams.sunysb.edu/˜feinberg/public/feinberg-lewis.pdf.
[6] H. L. Lee and S. Nahmias (1993), Single-product, single-location models, in
Handbooks in OR & MS: Vol. 4, Eds. S. C. Graves et al., Elsevier Science
Publishing, North Holland.
[7] S.F. Love (1979), Inventory Control Theory, Mc. Graw-Hill.
[8] E. L. Porteus (1990), Stochastic inventory theory, in Handbooks in OR & MS,
Vol. 2, Eds. D. P. Heyman, M. J. Sobel, Elsevier Science Publishing B. V.,
North Holland.
[9] S. M. Ross (1970), Applied Probability Models with Optimization Applications,
Holden-Day, San Francisco.
[10] S. M. Ross (2002), Simulation, Academic Press, New York.
[11] W.N. Venables, D. M. Smith and the R Development Core Team, An Introduction to R (Copyright c 1999–2005) R Development Core Team.
[12] Y. S. Zheng and A. Federgruen (1991), Finding optimal (s, S) policies is about
as simple as evaluating a simple policy, Oper. Res: Vol 39, No 4, pp 654-665.
[13] Y. S. Zheng (1991), A simple proof for optimality of (s, S) policies in infinitehorizon inventory systems, J. Appl. Prob: Vol 28, pp 802-810.
[14] P. Zipkin (1986), Stochastic leadtimes in continuuous-time inventory models.
Naval Res. Logist. Quart: Vol 33, pp 763-774
53
Descargar