An Overview of Genetic Algorithms : Part 1, Fundamentals Descargar

Algoritmos Genéticos Aplicados a la Gestión de Inventarios de Artículos No Perecederos (página 4)

Enviado por Ignacio Luis Castillo


Partes: 1, 2, 3, 4

  1. Resultados de la Prueba III

idgen

cte

1

61147,20

2

58944,62

3

58026,36

4

57372,35

5

57186,37

6

57069,74

7

56963,00

8

56940,58

9

56914,57

10

56886,29

11

56864,45

12

56851,22

  • Cantidad de generaciones utilizadas: 12
  • Finalización del algoritmo por criterio de cantidad de generaciones
  • Cantidad a Pedir Sugerida : 514
  • Demora del proceso: 12 segundos

  1. Prueba IV
  • Se mantienen absolutamente todas las variables del escenario y marco de gestión planteado.
  • Se incrementa el tamaño de la población planteado a 150.
  • Se incrementa el tamaña de la cantidad de generaciones en 20
  • Método de selección ranking
  • Método reproducción monopunto

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 la orden

50

          Costo de preparación y emisión de orden 

1000

          Costo de Recepción del Lote

3000

Demanda en función al promedio de Ventas.

12.000 U /Año

Costo de Almacenamiento para un Depósito

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 unidad

2 m3

Variables AG

Valor

Cantidad de Generaciones

20

Tamaño de la Población

150

Mutación

Si

  1. Resultados de la Prueba IV

idgen

Cte

1

64040,09

2

59848,39

3

58883,24

4

58160,68

5

57487,88

6

57401,18

7

57350,80

8

57201,62

9

56930,73

10

56889,25

11

56875,12

12

56861,86

13

56852,97

  • Cantidad de generaciones utilizadas: 13
  • Finalización del algoritmo por criterio de identidad
  • Cantidad a Pedir Sugerida : 401
  • Demora del proceso: 15 segundos

  1. Conclusiones acerca de las Pruebas efectuadas

En función a las pruebas efectuadas se ha podido llegar a conclusiones que surgen del comportamiento que denotó el algoritmo genético, aplicado al modelo matemático de gestión de inventarios con stock de protección.

Cabe aclarar que en todos los casos la salida que provee el algoritmo no es conocida, por lo tanto la conclusión se basa en la comparación de los resultados de las diferentes pruebas.

Lo que se descubre luego de efectuar distintos tipos de pruebas con diferentes valores de entrada, es que la "optima" solución, se alcanza cuando el algoritmo converge por criterio de identidad (ver sección 2.1.8).

Esto implica determinar un tamaño de la población inicial de al menos 100 cromosomas y un número de generaciones cuyo valor sea 15. Esto permitirá que el algoritmo encuentre la mejor solución en una población inicial, lo suficientemente "rica", en lo que se refiere a la diversidad de cromosomas.

Tal como se verifica en la prueba I, y la prueba II, los resultados obtenidos no son los mejores, debido a que el tamaño de la población inicial es pequeña, lo que genera que el algoritmo, "entienda", que la solución optima, es alcanzada en apenas unas 5 o 6 generaciones.

De aquí se desprende que el criterio de finalización por cantidad de generaciones con un tamaño pequeño de la población inicial, no son los mejores "aliados" a soluciones óptimas.

Por otro lado podemos verificar como en las pruebas III y IV encontramos soluciones de mejor calidad al incrementar el tamaño de la población. El algoritmo utiliza mayor cantidad de generaciones, evalúa muchas mas alternativas y llega a soluciones de mejor calidad, ya sea que finalice por criterio de identidad o por cantidad de generaciones. También cabe aclarar que queda demostrado que la aplicación de la mutación no es relevante cuando el tamaño y la cantidad de generaciones no son significativas, ya que la probabilidad de mutación es de 0.09.

En todas las pruebas se utilizó la generación de la población inicial en forma aleatoria, reproducción monopunto, mutación aleatoria y criterios de terminación del algoritmo, por criterio de identidad o cantidad de generaciones, según sea el caso.

  1. Capitulo VI – Conclusión Final

Teniendo en cuenta lo planteado en la introducción de este trabajo en donde se pretendía verificar que "los algoritmos genéticos son aplicables a la gestión de inventarios y diseñar un sistema que permita, mediante la utilización de los algoritmos, la minimización de costos en función a cantidades y capacidades de almacenamiento variables", podemos afirmar que en base a las pruebas efectuadas en el capitulo 5 se demuestra que la tecnología de A.G. son una alternativa de optimización valiosa, al momento de proponer una solución optima en un contexto incierto y variable.

Esta incertidumbre y variablididad del contexto generan que el universo de soluciones posibles sea altamente elevado. Ha quedado demostrado que los algoritmos genéticos tienen una tendencia a la optimización y que los mismos permiten resolver una situación compleja.

Cabe aclarar que las pruebas no contemplaron todos los mecanismos de generación de población inicial, selección, reproducción y mutación, sino que solamente este trabajo acoto la demostración a lo desarrollado en el capitulo II.

Fuera del trabajo quedaron otros modelos para implementar reproducción, selección y mutación.

La solución demostrada tiene las siguientes ventajas:

  • Se ha descubierto que los algoritmos genéticos son soluciones sencillas aplicables al problema de minimizar costos en función a cantidades y capacidades de almacenamiento variable dentro de un modelo de gestión de stock para artículos no perecederos.
  • El tiempo de respuesta de la solución sugerida es altamente menor a la que tendría que usar si se realizara utilizando el trabajo humano.
  • El software implementado puede ser utilizado en hardware de bajos recursos en lo que se refiere a velocidad de procesamiento y memoria.
  • La teoría de algoritmos genéticos podría ser aplicable a otros modelos matemáticos de stock, con sólo cambiar las variables de entrada, y la función de adaptación. Estos modelos serían resueltos, con un mismo criterio de optimización.

Las desventajas encontradas son:

  • Existe un grado de incertidumbre acerca de si la solución propuesta es verdaderamente la mejor de todas, más allá de que sea la óptima dentro del ámbito de búsqueda del algoritmo genético dado por sus condiciones de ejecución (tamaño de la población, operadores involucrados, cantidad de generaciones, etc.)
  1. Futuras Líneas de Investigación

La aplicación del algoritmo seleccionado expresa una solución que calificaremos como optima, pero queda abierta a futuras investigaciones la utilización de otros métodos de selección, reproducción y mutación, para verificar si otras alternativas generan soluciones de mejor calidad que las obtenidas en este trabajo.

Otra posible línea es la verificación de la aplicabilidad de la solución propuesta a diferentes modelos matemáticos que estén asociados a la gestión de inventarios de otro tipo de productos, como por ejemplo los perecederos, o con una orientación a la producción.

Parece interesante además el estudio de la existencia de otras alternativas dentro de la Inteligencia Artificial, como redes neuronales o lógica difusa, para comparar criterios y calidad en el resultado de la optimización.

  1. ANEXO A

Código Fuente de la Aplicación

DEFINE CLASS ag OF agenetico

PROCEDURE GeneracionPoblacion

LPARAMETERS pTOPE,pTamanoPoblacion

LOCAL I,nValor,nBinario

FOR I = 1 TO pTamanoPoblacion

nvalor = INT(1 + pTOPE* RAND())

cBinario = ALLTRIM(This.dectobin(nvalor))

cBinario = REPLICATE('0',11-LEN(cBinario))+ALLTRIM(cBinario)

INSERT INTO GENERACIONES(IDGEN,valor,binario) VALUES(1,nvalor ,cBinario)

ENDFOR

ENDPROC

PROCEDURE funcionadaptacion

LPARAMETERS pPromedio,pCTE

RETURN pPromedio / pCTE

ENDPROC

PROCEDURE seleccion

LPARAMETERS pIdgen

SELECT Generaciones

** Busco todos los Cromosomas cuya funcion d aptitud sea > 1.

** Solo esos son los que pasan.

SCAN ALL FOR pIdGen = Generaciones.IdGen

IF INT(Generaciones.FAdap) > 0

Replace Apto WITH .T.

ELSE

Replace Apto WITH .F.

ENDIF

ENDSCAN

ENDPROC

PROCEDURE postseleccion

LPARAMETERS pIdgen

LOCAL I,nIntervalo ,nReg

*- nIntervalo sirve para sacar un numero aleatorio entre 1 y nIntervalo

*- nReg sirve para recibir el numero aleatorio

*- I es la variable que controla los pares

I = 1

nPar= 0

* Entro a Armar las Parejas. Hasta que todos no estan con pareja no salgo

DO WHILE .T.

nPar = nPar +1

IF USED('aReproducirse')

USE IN aReproducirse

ENDIF

*- Armo una Temporal Con los Cromosomas que no tienen pareja -*

SELECT * FROM Generaciones G ;

WHERE G.apto = .T. AND G.idGen = pIdGen AND parcon=0 ;

INTO CURSOR aReproducirse

nIntervalo = RECCOUNT('aReproducirse')

SELECT aReproducirse

*- Verifico si me quedo uno solo sin pareja si es porque son impares o porque es el ultimo. -*

IF nIntervalo = 1

IF nPar = 1

UPDATE generaciones SET parcon = i

WHERE aReproducirse.id = generaciones.id

ELSE

UPDATE generaciones SET parcon = i

WHERE aReproducirse.id = generaciones.id

ENDIF

EXIT

ENDIF

* Busco de los registros que tengo un numero aleatorio

nReg = INT(1 + nIntervalo * RAND())

GO nReg

IF EMPTY(ParCon)

* Grabo en la Historica

UPDATE generaciones SET parcon = i

WHERE aReproducirse.id = generaciones.id

ENDIF

* Verifico si ya tengo una pareja armada. Si es asi, incremento el contador.

IF nPar = 2

i = i + 1

nPar = 0

ENDIF

ENDDO

ENDPROC

PROCEDURE reproduccion

LPARAMETERS pIdgen

SELECT Distinct parcon FROM Generaciones ;

WHERE pIdgen = Generaciones.idGen AND Apto = .T.;

INTO ARRAY aNroPares

FOR I=1 TO ALEN(aNroPares)

SELECT ALLTRIM(Binario) FROM generaciones WHERE aNroPares (i,1)

= parcon Into array aCromosomas

nMonopunto = INT(1 + 11* RAND())

IF ALEN(aCromosomas) > 1

cPapa = aCromosomas (1,1)

cMama = aCromosomas (2,1)

cHijoA = LEFT(cPapa,nmonopunto)+RIGHT(cmama,

11-nmonopunto)

cHijoB = LEFT(cMama,nmonopunto)+RIGHT(cPapa,

11-nmonopunto)

ENDIF

nValorA = This.bintodec(cHijoA)

nValorB = This.bintodec(cHijoB)

* Inserto los hijos de la proxima generacion

INSERT INTO Generaciones (idgen, valor, binario, cte, fadap, apto)

VALUES(pIdgen+1,nValorA ,cHijoA,0,0,.F.)

INSERT INTO Generaciones (idgen, valor, binario, cte, fadap, apto) VALUES(pIdgen+1,nValorB ,cHijoB,0,0,.F.)

ENDFOR

ENDPROC

PROCEDURE bintodec

LPARAMETERS cBinario

LOCAL lnFinal, lnDecimal, lnI

cBinario = ALLTRIM(cBinario)

lnFinal = LEN(cBinario)

lnDecimal = 0

FOR lnI = lnFinal TO 1 STEP -1

lnDecimal = lnDecimal + ;

VAL(SUBS(cBinario,lnI,1)) * 2^(lnFinal – lnI)

ENDFOR

RETURN lnDecimal

ENDPROC

PROCEDURE insertarhijos

LPARAMETERS pIdgen

IF USED('cProxGeneracion')

USE IN cProxGeneracion

ENDIF

SELECT * FROM Generaciones WHERE idgen = pIdgen AND apto = .T. INTO CURSOR cProxGeneracion

SELECT cProxGeneracion

GO TOP

SCAN ALL

nCantHijos = INT(cProxGeneracion.FAdap)

FOR I = 1 TO nCantHijos

INSERT INTO Generaciones (idgen, valor, binario, cte, fadap, apto) ;

VALUES (pIdgen+1,cProxGeneracion.valor,cProxGeneracion.Binario,0,0,.F.)

ENDFOR

ENDSCAN

ENDPROC

PROCEDURE mutacion

LPARAMETERS pIdgen

LOCAL cCromosoma, nAlelo

IF USED('cProxGeneracion')

USE IN cProxGeneracion

ENDIF

SELECT Generaciones

GO TOP

SCAN ALL FOR pIdgen = Generaciones.idGen

cCromosoma = ALLTRIM(Generaciones.Binario)

nCantAlelos = LEN(ALLTRIM(Generaciones.Binario))

FOR nAlelo = 1 TO nCantAlelos

nProbabilidad = (0 + 1.0* RAND())

IF nProbabilidad < 0.001

IF SUBSTR(cCromosoma,nAlelo,1) == '0' THEN

cCromosoma = LEFT(cCromosoma,(nAlelo-1))+'1'+SUBSTR(cCromosoma,nAlelo+1,nCantAlelos)

ELSE

cCromosoma = LEFT(cCromosoma,(nAlelo-1))+'0'+SUBSTR(cCromosoma,nAlelo+1,nCantAlelos)

ENDIF

Replace binario WITH cCromosoma

Replace Valor WITH This.bintodec(binario)

Replace Muto WITH .T.

ENDIF

ENDFOR

ENDSCAN

ENDPROC

ENDCLASS ag OF agenetico

DEFINE CLASS Calculo OF agenetico

PROCEDURE calculocte

LPARAMETERS pCostoUni, pDemanda,pCostoAlmacenamiento, pCostoPreparacion, pValor

RETURN ((pCostoUni*pDemanda)+(0.5*pCostoAlmacenamiento*pValor)+(pCostoPreparacion*pDemanda/pValor))

ENDPROC

PROCEDURE calculopreliminarcostos

LPARAMETERS pEmision,pRecepcion

LOCAL nCostoPreparacion

nCostoPreparacion = pEmision +pEmision

RETURN nCostoPreparacion

ENDPROC

PROCEDURE costoalmacenamiento

LPARAMETERS pValor,pSeguro,pCalefaccion,pInteres,pVolumen,pCosto,pAlquiler

RETURN (pSeguro+(pAlquiler*pVolumen)+(pCalefaccion*pVolumen)+(pCosto*pInteres))

ENDPROC

PROCEDURE calculocte

LPARAMETERS pCostoUni,pDemanda,pCostoAlmacenamiento,pCostoPreparacion, pValor

RETURN ((pCostoUni*pDemanda)+(0.5*pCostoAlmacenamiento*pValor)+(pCostoPreparacion*pDemanda/pValor))

ENDPROC

PROCEDURE calculopreliminarcostos

LPARAMETERS pEmision,pRecepcion

LOCAL nCostoPreparacion

nCostoPreparacion = pEmision +pRecepcion

RETURN nCostoPreparacion

ENDPROC

PROCEDURE costoalmacenamiento

LPARAMETERS pValor,pSeguro,pCalefaccion,pInteres,pVolumen,pCosto,pAlquiler

RETURN (pSeguro+(pAlquiler*pVolumen)+(pCalefaccion*pVolumen)+(pCosto*pInteres))

ENDPROC

ENDCLASS

Referencias

Bibliografía

Beasley, David; Bull, David R. & Martin, Ralph R (1993).An Overview of Genetic Algorithms : Part 1, Fundamentals, University Computing, pages 58-69.

Cuatrecasas L. (2003). Gestión de Competitiva de Stocks y Procesos de Producción

Ed. Gestión 2000, pagina 33

Estivill-Castro, V. (2000). "Hybrid Genetic Algorithms Are Better for Spatial Clustering".

Pacific Rim International Conference on Artificial Intelligence, pages 424-434.

Falkenauer, Emanuel. (1999). Evolutionary Algorithms: Applying Genetic Algorithms to Real-World Problems. Springer, New York

Goldberg, David E. (1989). Genetic Algorithms – in Search, Optimization

Learning. Addison-Wesley Publishing Company, Inc.

García – Servente – Pasquini (2003). Sistemas Inteligentes

Ed. Nueva librería, paginas 150-207

López E. – Mendaña C. – Rodríguez M.A (2000). Algoritmos Genéticos y la Gestión.

Paper publicado. León – España

Miranda M. (1998). Sistemas de Optimización de Stocks

Editorial EDUCA, paginas 36-46

Yolis E. (2003). Algoritmos genéticos Aplicado a la Categorización de Documentos

Trabajo de Investigación. Universidad de Buenos Aires, paginas 40-70

Imágenes

Fig. 2.1 a 2.8 Tomadas de Yolis E. Algoritmos genéticos Aplicado a la Categorización de Documentos. Trabajo de Investigación. Universidad de Buenos Aires, paginas 40-70

Fig. 3.1 Tomada de Miranda M. (1998). Sistemas de Optimización de Stocks

Editorial EDUCA, pagina 36.

A mi mamá Eleonora,

la cual, ante cada tropiezo, ante cada momento difícil,

siempre me dio gesto de amor y contención.

Ella siempre me apoyo para que estudie y me supere,

y me enseño que con esfuerzo todo se puede alcanzar.

Para vos mami.

A toda mi familia.

A vos papa que siempre me esperaste a altas horas de la noche,

simplemente para cenar juntos

y a mis hermanos Grisi, Ana, Lucas, Virgi y Luci.

A mis amigos. Ustedes fueron muy importantes.

En primer lugar quería expresar mi agradecimiento a mi amigo/hermano del alma; al Lic.Jorge Luis Insfran.

Jorge gracias por sacrificar tiempo con tu familia para sentarte conmigo y ayudarme a llevar esta investigación adelante. Sin tu ayuda no lo hubiera logrado.

Gracias a mis amigos que me ayudaron de alguna manera u otra en mis 6 años de Universidad

Leo, Gaby, Jorge, Cali, Sandra, Alejo, Maria Luisa, Miriam, Pablo Felipe y Checho.

A toda esa gente que en estos seis años me brindo su ayuda, con su tiempo, con sus ganas, con un apunte o con un gesto

Gracias a todos mis jefes y compañeros de trabajo que me cedieron horas y tiempo, para estudiar.

Al terciario Nuestra Señora de Lujan del Buen Viaje, mi primer escuela. Autoridades, alumnos y ex alumnos.

A mi director de tesis, que desinteresadamente, me acompaño hasta poder terminar con esta investigación.

Por último gracias, muchísimas gracias a Dios.

 

Autor

Ignacio Luis Castillo

Director de la Tesis

Ing. Christian Caminos

Universidad de Morón – Año 2004

Partes: 1, 2, 3, 4
 Página anterior Volver al principio del trabajoPágina siguiente