Algoritmos Genéticos Aplicados a la Gestión de Inventarios de Artículos No Perecederos (página 2)
Capitulo III –
Diseño
de la Solución
- Escenario y Planteo del Marco de Gestión.
Como fue explicado en el capitulo 1, los objetivos de
la gestión de inventarios son
suministrar el nivel requerido de servicio a los
clientes y
reducir la suma de todos los costes implicados. Para conseguir
ambos objetivos, se ha de responder a una cuestión
básica: ¿Cuánto se debe pedir cada vez y
cuales son los costos asociados
a esas cantidades?.
El planteamiento tradicional es muy restrictivo y no se
ajusta a lo que en la realidad del mundo empresarial ocurre. Por
ello, cuando una empresa desee
calcular la cantidad económica de pedido, debe representar
la situación real. Los costes de lanzamiento y de pedido
no son los únicos que intervienen.
A continuación se desarrollara el modelo de
gestión de inventario
resuelto mediante el modelo tradicional y posteriormente mediante
algoritmos
genéticos.
Algunas de las características en las que
están enmarcados los Artículos no perecederos, en
base al modelo matemático elegido son:
- Los productos no
perecederos utilizan una demanda
independiente. Los plazos de entrega ("lead time") de los
artículos, es decir el tiempo que
transcurre desde que se emite la orden hasta que se recibe el
articulo, es conocida y constante.
Es importante recordar que la demanda independiente es
la que es influida por las condiciones del mercado.
- La reposición se hace cuando el nivel de
existencias llega al stock mínimo.
En este caso consideraremos que existe una cantidad
del producto que
se mantiene en existencia, a fin de absorber variaciones de
demanda o plazo de entregas o situaciones imprevistas. El nivel
de protección es un parámetro adicional que se
fija políticamente para cada artículo.
- El costo de
agotamiento es infinitamente alto y no esta permitido el
déficit del producto. - El costo unitario de adquisición es
dependiente de la cantidad a pedir. - El tamaño máximo del lote es de 1600
unidades.
En la gráfica (ver figura 3.1) se puede observar
como se comporta este tipo de gestión de
inventarios.
La variable Sr es el stock de reposición.
Cuando se llega a ese nivel se sugiere efectuar el pedido de
reposición de mercaderías. El Lt es el
tiempo entre el pedido y la recepción de la
mercadería. La variable Sp, es el stock de
protección, el cual es de relevante importancia mientras
transcurre el tiempo de pedido y el tiempo de entrega.
La variable T será la que marque la
diferencia de tiempo entre un pedido y otro.
Figura 3.1 –
Grafico de Stock de Fluctuación con
protección
En este contexto supongamos una empresa que
comercializa un conjunto de artículos no perecederos
(productos Terminados).
Esta empresa alquila depósitos los cuales admiten
hasta 400 unidades en almacenamiento y
los costos serán más económicos en función a
la cantidad de artículos comprados.
Existe un acuerdo con el proveedor, el cual propone un
costo por unidad variable en función a la cantidad que
compre.
Asimismo el costo de Almacenamiento será variable
ya que en este escenario se plantea que cada depósito
puede contener hasta 400 unidades. Esto implica que el de
alquiler se ira incrementando por cada 400 unidades.
Ante este escenario veamos el cuadro de costos por
unidad y de parámetros el cual desarrolla por completo el
escenario en que se gestionará. (Ver cuadros 3.2
).
Rango Unidades | Costo directo por Ítem | Costos Adicional Alquiler |
0-400 | $ 40,00 | $ 15 m3 |
401-800 | $ 32,00 | $ 30 m3 |
801-1200 | $ 28,00 | $ 45 m3 |
1200 o 1600 | $ 26,00 | $ 60 m3 |
Parámetros | $ |
Costo de preparación de | 50 |
| 1000 |
| 3000 |
Demanda en función al | 12.000 U /Año |
Costo de Almacenamiento para un | |
Costo de alquiler | $15 m3/Mes |
Costo mensual de Calefacción | $0,5 m3 |
Stock de Seguridad | 5 días de demanda |
Costo mensual de seguros | 10 Unidad |
Lead Time | 2 días |
Disponibilidad por | 2 m3 |
* Se supone una tasa de
interés del %10
Fig. 3.2 Cuadro de variables y
Parámetros
Calcularemos en primer lugar, los
valores de los parámetros del
problema.Para ello debemos tener en cuenta que, en este
caso, el costo de almacenamiento está dado por el
costo operativo (seguros, alquiler y calefacción) y
por el capital
inmovilizado.Por otra parte el costo administrativo de
emisión de la orden y el costo de la
inspección (en el supuesto que es independiente del
lote) forman parte del costo de la orden.Para este caso se plantea la solución
tomando como costo unitario 40 $/uc = 10 $/u.mes + 15 $/u.m3.2m3/u+40
$*0.1*1/mes = 45 $ u.mesk = 1000 + 3000 = 4000
$/Orden- Cálculo de
los Parámetros - Cálculo de
Costos y Cantidades a Pedir
Una vez calculados los parámetros, se
procederá al cálculo de los siguientes
ítems :Cálculo del Lote
óptimoq* = √(2*k*D/T*c) = √(2*4000*1000 /
45) = 421,64 = 422 u/loteCálculo del Stock de
ReordenSr = 250 +(12000/240)*2 = 350 u
Cálculo del Costo Total
EsperadoCTE = 40*1000+1/2*45*400+4000*(1000/400) = 59000
$/año- Desarrollo de la
Solución ClásicaPara aplicar la técnica de algoritmos
genéticos a la solución del problema
propuesto se deberá desarrollar la
representación seleccionada, así
también como la estructura del cromosoma.También la forma en que genera la población inicial y como se realiza
la selección, cruza y mutación de
cada cromosoma.La codificación más
común de las respuestas es a través de
cadenas binarias, aunque se han utilizado
también números reales y letras. El
primero de estos esquemas ha gozado de mucha
popularidad debido a que es el que propuso
originalmente Holland, y además porque
resulta muy sencillo de implementar. En este trabajo los cromosomas manejarán un
tamaño de 11 bits.- Representación
Cada cromosoma implicará cantidades a
pedir y estarán representados en forma
binaria.Supongamos un ejemplo para una
población de 4 elementos en donde las cantidades
aleatoriamente generadas son 40, 401, 1201, 608 la
representación para cada uno de ellos
será respectivamente tal cual se muestra en la figura 3.3.1024
512
256
128
64
32
16
8
4
2
1
0
0
0
0
0
1
0
1
0
0
0
1024
512
256
128
64
32
16
8
4
2
1
0
0
1
1
0
0
1
0
0
0
1
1024
512
256
128
64
32
16
8
4
2
1
1
0
0
1
0
1
1
0
0
0
1
1024
512
256
128
64
32
16
8
4
2
1
0
1
0
0
1
1
0
0
0
0
0
Fig. 3.3 – Ejemplo de la
Estructura de un Cromosoma. - Estructura del
CromosomaLa forma de generar la población
inicial será aleatoria.Generar la población inicial al azar es
lo más rápido, y lleva bastantes
generaciones al algoritmo genético llegar a
buenas soluciones. Para el caso de ejemplo que
se desarrollara, supondremos que la población
inicial será aleatoria tomando valores que iran desde 1 a 1600
unidades.En consecuencia adoptaremos a modo ejemplo que
la población inicial estará compuesta por
4 cromosomas cuyo valor en base decimal será 40,
401, 1201, 608. (Ver representación binaria de
cada cromosoma en sección 3.4.2) - Generación
de la Población InicialComo se explicó en el capítulo
2, la forma de ponderar cada solución, es
mediante la función de
adaptación.La función de aptitud no es más
que la función objetivo de nuestro problema de
optimización. Una característica que debe
tener esta función es que debe ser capaz de
"castigar" a las malas soluciones, y de "premiar" a las
buenas, de forma que sean estas últimas las que
se propaguen con mayor rapidez. La misma será el
promedio de costos dividida el costo total esperado de
cada una de las soluciones.Aquellos cromosomas cuyo resultado esté
por debajo del promedio serán seleccionados para
la próxima iteración. La misma
será el promedio de costos de todas las
soluciones dividido costo total esperado. (Ver figura
3.5.)CTE =
(Σ Ci / N) /
(b.D+1/2.q*.c.T+k.D/q*+c.Sp.T ).3.5 Formula de la
Función de adaptación.Para una mejor comprensión veamos como
se aplicaría la función de
adaptación para cada una de los cromosomas que
forman parte de la población inicia.El calculo del costo total esperado
podrá observarse en la figura 3.6Cromosoma C(i)
Costo Total Esperado
Valor
40
(10 $/u.mes) + (15 $/u.m3 * 2m3/u)+(0.5
$/mes*2m)+(40 $ * 0.1* 1/mes)45 $ u.mes
401
(10 $/u.mes) + (30 $/u.m3 * 2m3/u)+(0.5
$/mes*2m)+(32 $ * 0.1* 1/mes)72 $ u.mes
608
(10 $/u.mes) + (60 $/u.m3 * 2m3/u)+(0.5
$/mes*2m)+(26 $ * 0.1* 1/mes)134$ u.mes
1201
(10 $/u.mes) + (30 $/u.m3 * 2m3/u)+(0.5
$/mes*2m)+(32 $ * 0.1* 1/mes)72 $ u.mes
Fig. 3.6. Calculo del Costo
Total EsperadoUna vez obtenidos los costos se
obtendrá el promedio de los mismos
(Σ Ci /
N), siendo n la cantidad de
cromosomas; el cual dividirá a los costos
expresados en la columna valor de la tabla 3.6,
obteniendo así el coeficiente adaptativo para
cada cromosoma C(i).Cromosoma C(i)
Función de
Adaptación(Σ Ci / N)/CTE
Valor
Prox. Generación
40
81/45
1.8
1
401
81/72
1.1
1
608
81/134
1.1
1
1201
81/72
0.6
0
Fig. 3.7 representación
de la Función de Adaptación. - Función de
AdaptaciónEl operador de selección a utilizar, es
el basado en el ranking, en donde los cromosomas se
ordenan de acuerdo a sus valores para la función
de adaptación.Luego, se seleccionan para la reproducción a los primeros
m (tamaño de la población dividido
2) cromosomas que estén por debajo del promedio
CTE de todos los cromosomas.Tal como se representa en la figura 3.7 para
cada cromosoma la aplicación de el promedio de
CTE sobre el CTE de cada cromosoma obtiene como
resultado un numero del cual la parte entera indicara
la cantidad de cromosomas de ese tipo que pasaran a la
próxima instancia para poder reproducirse.En consecuencia los seleccionados para el
método de cruza serán los
valores que se visualizan en la figura 3.8. La cantidad
de individuos seleccionados esta indicada en la columna
Prox. Generación.Cromosoma C(i)
Función de
Adaptación(Σ Ci / N)/CTE
Valor
Prox. Generación
40
81/45
1.8
1
401
81/72
1.1
1
608
81/134
1.1
1
Fig. 3.8 Representación
de Cromosomas Seleccionados. - Selección
El método de reproducción
seleccionado es el de Cruza Monopunto el cual
consiste en separar a los padres en dos partes para
formar dos hijos intercambiando las partes de cada
padre.Aquí se describe un ejemplo real de
Reproducción entre dos cromosomas, en donde el
punto de cruza es la posición 5.En el ejemplo se tienen los cromosomas que
representan las cantidades a pedir 401 y 608. El
criterio para determinar cuales cromosomas son los que
deben cruzarse, es un criterio de aleatoriedad, ya que
los mismos son seleccionados de a pares al
azar.Siguiendo el ejemplo y teniendo en cuenta que
los cromosomas seleccionados son 40, 401 y 608, se toma
el par de cromosomas 401 y 608, para que los mismos se
crucen, obteniendo dos nuevos hijos (Ver figura
3.9) - Reproducción
La mutación permite mantener diversidad
en la población disminuyendo el riesgo de convergencia prematura. Cada
gen es mutado con una probabilidad, generalmente baja. La
probabilidad puede ser constante durante toda la
búsqueda genética o bien
adaptativa.En el primer caso no se comparte información, en cambio en el segundo, se utilizan
frecuentemente estadísticas de la
población para adaptar la velocidad de mutación. El
método de mutación seleccionado es el de
Mutación Simple [Goldberg; 1989], el cual
durante la aplicación, elige en forma aleatoria
un gen, el cual se muta con cierta probabilidad,
habitualmente muy baja.La probabilidad de mutación se mantiene
constante durante las sucesivas generaciones. Debido a
esto es bastante difícil que la probabilidad
elegida sea adecuada en todo momento, y por lo tanto,
el operador de mutación no es bien
explotado.El ejemplo es el que se expresa en la figura
3.10Una vez concluida la mutación ya la
nueva población esta lista para una nueva
iteración. Para ver como seria el esquema de la
nueva generación ver Fig. 3.11 - Mutación
- Criterio de
Terminación y Tamaño de la Población
Inicial
- Desarrollo de la
Solución Utilizando Algoritmos
Genéticos
Se ha hecho notar [Estivill-Castro, 2000] que
tamaños de población excesivamente grandes retrasan
la convergencia del algoritmo genético,
impidiéndole competir con otro tipo de métodos.
En el algoritmo propuesto, comienza con una población
inicial de n cromosomas, siendo n la cantidad
definida.
Con respecto al criterio de terminación se
decidió utilizar el Criterio de convergencia de
identidad o luego de una cantidad fija de
iteraciones.
Esta especificación tiene como
objetivo analizar y documentar las necesidades
funcionales que deberán ser soportadas por el
sistema a desarrollar. Para ello, se
identificarán los requisitos que ha de
satisfacer el nuevo sistema mediante investigación, el estudio de
los problemas de las unidades afectadas y
sus necesidades actuales. Además de
identificar los requisitos se deberán
establecer prioridades, lo cual proporciona un punto
de referencia para validar el sistema final que
compruebe que se ajusta a las necesidades del
usuario.La especificación debe definir en
forma clara, precisa, completa y verificable todas
las funcionalidades y restricciones del sistema que
se desea construir.Esta especificación se ha realizado
de acuerdo al estándar "IEEE Recomended
Practice forSoftware Requirements Specifications
(IEEE/ANSI 830-1993)"- Objetivo
- Alcance
- Introducción.
- Capitulo IV –
Especificación de Requerimiento del
Software
Nombre del Software:
AGSTOCK
El sistema deberá poder administrar inventarios
fluctuantes con punto de protección utilizando algoritmos
genéticos.
El software se encarga de sugerir una cantidad a pedir,
la cual calificaremos como cantidad optima a pedir, en un
contexto de entradas variables e inciertas.
El sistema tendrá un sentido de
optimización constante. Es decir que buscará un
universo de
soluciones, en donde cada solución es la cantidad a pedir,
y evaluará "la mejor" en función a los costos de
cada solución.
Los beneficios son :
- Respuesta rápida de procesamiento
- Sugerencia de cantidad óptima a
pedir. - Minimización de costos de
inventarios.
Definiciones
Tab Index : Significa que cada
objeto de entrada al formulario estará ordenado de
manera que el formulario pueda tener una buena
navegabilidad.Fixed: Se refiere a que los formularios tendrán un tamaño
fijo no pudiendo ser modificados por el usuarioSpinners: Control
que permite el incremento y decremento de sus valores
mediante sus botones indicadores.Visual Fox.: Control que permite el
incremento y decremento de sus valores mediante sus botones
indicadores.Abreviaturas
CTE : Se refiere al costo total esperado.
Ver capitulo 1 sección 1.5Acrónimos
IEEE: Institute of Electrical &
Electronics EngineersXLS: Extensión de archivo
soportada por Microsoft ExcelDBF: Extensión de archivo soportada
por Microsoft Visual Fox- Definiciones,
acrónimos y abreviaturas. - Referencias
Para la recaudación de este texto se han
tenido encuentra el siguiente documento:
IEEE Std 830- IEEE Guide to Software Requeriments
Specifications. IEEE Standards
Board.
Esta sección nos presenta una descripción general del sistema con
el fin de conocer lasfunciones que debe soportar, los datos
asociados, las restricciones impuestas y cualquier otro
factorque pueda influir en la construcción del mismo.
- Descripción
General.
Interfaces de Usuario.
El objetivo es definir patrones conceptuales
suficientemente expresivos en el ámbito del espacio del
problema, para traducirlos adecuadamente a su correspondiente
representación software.
- Acceso de tecla rápida.
- Navegabilidad de los formularios con
"Tabs" - Pantallas de borde "Fixed"
- Tab Index de los controles en
secuencia. - Utilización de Valores por
defecto - Mensajes de Error, advertencia, y
Confirmación - Agrupación de valores de entrada por
Categorías. Ej. Costos de almacenamiento, Costos de
preparación - Utilización de spinners para valores
numéricos incrementales en 1
Interfaces del Sistema
- Nombre: FRMCalculoCostos
- Objetivo: La interfaz tiene como objetivo
permitir la entrada de todas las variables inherentes al
modelo de stock con punto de reposición y las
variables inherentes al método de algoritmos
genéticos utilizado.
Deberán ingresarse los costos de
preparación, de almacenamiento, la cantidad de
depósitos utilizados, la demanda mensual estimada y la
cantidad de días entre el pedido y la
entrega.
También debe ingresarse el tamaño de la
población inicial y la cantidad de
generaciones.
De esta manera la interfaz será la encargada de
proponer una cantidad "optima" sugerida. Esta cantidad sugerida
será en función al menor costo total
esperado.
- Diseño Aplicado
Objetos "Input"
Campo | Tipo o Valor | Oblig. | Editable o Modificable | Observaciones |
Rango de Artículos | Numérico | Si | Si | Indicará cada cuantos artículos se |
Cantidad de Depósitos | Numérico | Si | Si | Indicará la cantidad de depósitos |
Stock de Seguridad | Numérico | Si | Si | Indicará el stock de seguridad definido por |
Calefacción | Numérico | Si | Si | Indicará el costo de |
Seguros | Numérico | Si | Si | Indicará el costo de |
Volumen Unitario | Numérico | Si | Si | Indicará el Volumen |
Emisión de la Orden | Numérico | Si | Si | Indicará el costo de emisión de la |
Recepción del Lote | Numérico | Si | Si | Indicará el costo de recepción del |
Total Recepción | Numéricos | Si | No | Indicará el costo de preparación del |
Lead Time | Numérico | Si | Si | Indicará la distancia entre un pedido y la |
Demanda Mensual | Numérico | Si | Si | Indicará la demanda mensual estimada de los |
Interés Mensual | Numérico | Si | Si | Indicará el Interés mensual. |
Tamaño de la | Numérico | Si | Si | Indicará el tamaño inicial de la |
Nro. Generaciones | Numérico | Si | Si | Indicará el número de generaciones |
Objetos "Input"
Campo | Tipo o Valor | Oblig. | Editadle o Modificable | Observaciones |
Grilla De rango de Costos | – Esta grilla deberá admitir, cuando se | |||
U. Desde | Numérico | – | No | – Listará la cantidad desde de |
U. Hasta | Numérico | – | No | – Listará la cantidad hasta de |
C. Unitario | Numérico | – | Si | – Listará el costo unitario para el rango |
C. Alquiler | Numérico | – | Si | – Listará el costo de alquiler para el |
Deposito | Numérico | – | No | – Listará el nombre del |
Objetos que invocan acciones
Nombre | Forma de invocarlo | Habilitado | Acción |
Inicio | Clic Botón inicio | Inicialmente no Habilitado. | – Comienza la generación de los costos |
Informar Evolución | Clic Botón Informar | Inicialmente no Habilitado. | – Se habilita al concluir la generación de |
Agregar Rango | Clic Botón Agregar Rango | Inicialmente no Habilitado. | – Se habilita al cargar el rango de |
- Nombre: FRMImprimir
- Objetivo: La siguiente
interfaz, es la encargada de definir el destino de la salida
de los reportes.
Los reportes disponibles son el de la evolución
de cada generación y el de el costo promedio por cada
generación.
Para ambos casos lo que permite esta interfaz es poder
darle un destino de archivo xls, dbf, pantalla o impresora,
según se desee.
- Diseño Aplicado
Objetos "input"
Campo | Tipo o Valor | Oblig. | Editable o Modificable | Observaciones |
Grupo de Opciones | – Este grupo de | |||
Pantalla | Numérico | – | Si | – Listará la evolución de las |
Impresora | Numérico | – | Si | – Listará la evolución de las |
Excel | Numérico | – | Si | – Listará la evolución de las |
DBF | Numérico | – | Si | – Listará la evolución de las |
Grupo de Opciones | – Esta grupo de opciones permitirá definir | |||
Evolución por | Numérico | – | Si | – Listará la evolución de las |
Costo promedio por | Numérico | – | Si | – Listará el costo promedio de cada |
Objetos que invocan acciones
Nombre | Forma de invocarlo | Habilitado | Acción |
Generar | Clic Botón Generar | Inicialmente Habilitado. | – Comienza la generación del reporte |
Gráfico | Clic Botón Grafico. | Inicialmente no Habilitado. | – Se habilita al concluir la generación de |
Salir | Clic Botón Salir. | Inicialmente Habilitado. | – Sale de la pantalla. |
Interfaces de hardware
La aplicación se ejecutará sobre el
cliente, con
los procesos e
interfaz de usuario ejecutándose en el mismo y
éste solicitando requerimientos al servidor que
cumple su proceso. El
sistema
operativo de los clientes será MS Windows, XP,
2000, 9x o bien MS Windows NT
4.0 Workstation. No posee un sistema de gestión de bases
de datos
Interfaces de Software
Microsoft Excel. Este producto
será utilizado para poder lograr visualizar las salidas
.xls del aplicativo.
Interfaces de
Comunicación
No existen interfaces comunicación.
Restricciones de Memoria
El sistema requiere un mínimo de 32 mb de
memoria
RAM y un
disco principal de 8 MB
El aplicativo permitirá la carga de las
variables de entrada que se refieren al modelo
matemático de stock utilizado y también las
variables de entrada para el algoritmo
genético.En este contexto la función del software
desarrollado es proveer de una cantidad óptima
sugerida, para efectuar la reposición del
stock.- Funciones del
SoftwareLos objetivos de esta tarea son identificar a los
responsables de cada una de las unidades y alos principales usuarios implicados.
En la
organización se identificaron los siguientes
usuarios:Grupo de Administradores de Inventarios:
Formados por los Responsables de administrar el stock de
cada tipo de producto.Grupo de Logística: Formado por los
gerentes de logística.Grupo de Lectores: Formado por los alumnos
y profesionales informáticos. También
profesores de la institución. - Características del
Usuario - Suposiciones y
Dependencias.
El sistema desarrollado esta basado en un modelo
matemático que se utiliza en los entornos que necesitan
stock de protección.
Los criterios de algoritmos genéticos utilizados
son: Selección aleatoria, Cruza monopunto,
selección basada en ranking y mutación
aleatoria.
No esta preparado para otros criterios.
Página anterior | Volver al principio del trabajo | Página siguiente |