Escolar Documentos
Profissional Documentos
Cultura Documentos
PROYECTO DE GRADO
1
FORMULACIN DE UN ALGORITMO GENTICO PARA EL
PROBLEMA DE PROGRAMACIN DE RDENES DE TRABAJO
DE UNA EMPRESA DE ARTES GRFICAS
PROYECTO DE GRADO
2
NOTA DE ACEPTACIN
_____________________________________________
_____________________________________________
_____________________________________________
_____________________________________________
_____________________________________________
_____________________________________________
_____________________________________________
_______________________________
Presidente del Jurado
_______________________________
Jurado
_______________________________
Jurado
3
A los futuros individuos Konradistas.
4
AGRADECIMIENTOS
Javier Gamboa
A Dios porque en l est mi vida, a mi esposa, Heidi, porque sin ella no habra
empezado esta parte del camino que hoy culmina y a mi hijo, Jiordie, porque en l
retomo fuerzas.
Alexander Gmez
5
CONTENIDO
Pg.
1 EXISTE UN PROBLEMA..............................................................................14
1.1 DEFINICIN DE ENTRADAS DEL PROBLEMA .........................................15
1.1.1 Orden de Produccin. ..................................................................15
1.1.2 Proceso. .....................................................................................16
1.1.3 Centro de Produccin. .................................................................16
1.1.4 Orden de Trabajo ........................................................................17
1.2 CUAL ES LA PROPUESTA PARA SOLUCIONARLO? .................................19
2 PARA COMENZAR CON ALGORITMOS GENTICOS ......................................22
2.1 QU SON LOS ALGORITMOS GENTICOS? ..........................................22
2.2 DESCRIPCIN DEL FUNCIONAMIENTO DE LOS AG ................................23
2.2.1 Problema de optimizacin ............................................................24
3 MODELAMIENTO DEL ALGORITMO GENETICO............................................39
3.1 TRABAJOS REALIZADOS ......................................................................39
3.1.1 Programacin de tienda abierta. ...................................................39
3.1.2 Programacin de produccin ........................................................39
3.1.3 Secuenciacin dinmica ...............................................................40
3.2 DEFINICIONES PROPIAS DEL ALGORITMO GENTICO ...........................40
3.2.1 Individuos ..................................................................................41
3.2.2 Cromosomas...............................................................................41
3.2.3 Alelos .........................................................................................41
3.3 GENERACIN DE LA POBLACIN INICIAL .............................................42
3.4 PROCESO DE SELECCIN ....................................................................43
3.5 PROCESO DE CRUCE ...........................................................................43
3.6 PROCESO DE MUTACIN ....................................................................45
3.7 DEFINICIN DE LA FUNCIN DE EVALUACIN (FITNESS) .....................46
3.7.1 Cumplimiento (C ) .......................................................................46
3.7.2 Colisiones (T ) ............................................................................46
3.7.3 Ocupacin de centros de produccin (P ) ......................................46
3.8 FUNCIN DE EVALUACIN (FITNESS) ..................................................47
4 EVALUACIN DE PROTOTIPOS ..................................................................48
4.1 CONDICIONES PARA LA GENERACIN DE PROTOTIPOS ........................48
4.1.1 Datos de trabajo .........................................................................48
4.1.2 Proceso de seleccin ...................................................................48
4.1.3 Probabilidades de cruce y mutacin ..............................................49
4.2 PROTOTIPO 01 ...................................................................................49
4.2.1 Condiciones del algoritmo. ...........................................................49
4.2.2 Resultados del prototipo 01 .........................................................50
6
4.2.3 Anlisis de la situacin en el prototipo 01. .....................................50
4.2.4 Acciones para el siguiente prototipo..............................................51
4.2.5 Consideraciones para tener en cuenta en el prximo prototipo. .......51
4.3 PROTOTIPO 02 ...................................................................................52
4.3.1 Condiciones del algoritmo. ...........................................................52
4.3.2 Resultados del prototipo 02 .........................................................52
4.3.3 Anlisis de la situacin en el prototipo 02. .....................................53
4.3.4 Acciones para el siguiente prototipo..............................................53
4.4 PROTOTIPO 03 ...................................................................................54
4.4.1 Condiciones del algoritmo. ...........................................................54
4.4.2 Resultados del prototipo 03. ........................................................54
4.4.3 Anlisis de la situacin en el prototipo 03. .....................................55
4.4.4 Acciones para el siguiente prototipo..............................................55
4.5 PROTOTIPO 04 ...................................................................................56
4.5.1 Condiciones del algoritmo. ...........................................................56
4.5.2 Resultados del prototipo 04. ........................................................57
4.5.3 Anlisis de la situacin en el prototipo 04. .....................................58
4.5.4 Acciones para el siguiente prototipo..............................................59
4.6 PROTOTIPO 05 ...................................................................................59
4.6.1 Condiciones del algoritmo. ...........................................................59
4.6.2 Resultados del prototipo 05. ........................................................60
4.6.3 Anlisis de la situacin en el prototipo 05. .....................................60
4.6.4 Acciones para el siguiente prototipo..............................................61
4.7 COMPARACIN DEL PROTOTIPO 05 .....................................................61
5 EVALUACIN Y COMPARACIN DE RESULTADOS .......................................63
5.1 TIEMPO DE EJECUCIN ......................................................................65
5.1.1 Comparacin en tiempo de ejecucin. ...........................................65
5.2 MEJOR INDIVIDUO .............................................................................66
5.2.1 Comparacin del mejor individuo. .................................................66
5.3 PROMEDIO DE EVALUACIN ...............................................................67
5.4 GENERACIN MEJOR INDIVIDUO ........................................................68
5.5 CUMPLIMIENTO ..................................................................................69
5.5.1 Comparacin del cumplimiento .....................................................69
5.6 COLISIONES.......................................................................................70
5.6.1 Evaluacin de las colisiones. ........................................................70
6 CONCLUSIONES .......................................................................................71
7 SUGERENCIAS .........................................................................................73
8 REFERENCIAS ..........................................................................................74
7
8
LISTA DE ILUSTRACIONES
Pg.
9
10
RESUMEN
11
INTRODUCCION
Es por esto que se realiza un algoritmo gentico que pueda ser utilizado en la
programacin de planta de produccin de una empresa de artes grficas. En el
desempeo de esta labor, es necesario realizar una representacin vlida de los
elementos que componen el problema y una funcin que permita evaluar cada una
de las soluciones obtenidas. De igual forma, es prioritario evaluar la calidad de las
soluciones obtenidas respecto a la utilizada en una empresa del sector productivo
objeto del presente trabajo.
12
El anterior panorama, plantea entonces la utilizacin de la tecnologa representada
en elementos de hardware y software como una herramienta para modelar este
tipo de procesos complejos, de modo que sus resultados puedan llegar a ser tan
confiables, que la administracin y organizacin de los recursos de produccin se
puedan dejar prcticamente en sus manos.
13
1 EXISTE UN PROBLEMA1
Esta programacin debe tener en cuenta todos los procesos que se deben ejecutar
para terminar la elaboracin de un producto, los tiempos que se toma para
terminar cada proceso, la complejidad del mismo a la hora de ejecutarlo y el
proceso que debe estar terminado antes de poder empezar uno nuevo.
1
La informacin de este captulo es obtenida a partir de la experiencia de los autores en el sector
manufacturero, especficamente en empresas de artes grficas.
14
1.1 DEFINICIN DE ENTRADAS DEL PROBLEMA
Es de vital importancia realizar una buena definicin de las entradas que influyen
en su problema, dado que con base en ellas se desarrollar el proceso que
intentar solucionar el problema especfico. Para este problema se definen las
variables especificadas a continuacin.
15
1.1.2 Proceso.
16
de produccin para lo cual pueden consumir o transformar una materia prima
determinada.
17
Las rdenes de trabajo se crean de acuerdo a la explosin de procesos que se
hace en la ingeniera de producto o planeacin.
18
eficiencia es definida en planeacin, pero igualmente el programador puede
cambiar la eficiencia de acuerdo a las condiciones fsicas del trabajo a
realizar.
Tiempo: De acuerdo al rendimiento que tiene el centro de produccin
configurado para ejecutar un proceso, a la cantidad que se debe ejecutar y
a la eficiencia con que est configurada la orden de trabajo, se calcula el
tiempo que se va a tardar para procesar la cantidad requerida. Esta
caracterstica se ingresa durante el proceso de programacin ya que es all
cuando se conoce el tiempo de ejecucin.
Fecha de inicio: De acuerdo al proceso de programacin esta variable es
calculada y corresponde a la fecha y hora en que el centro de produccin
debe empezar a procesar la orden de trabajo.
Fecha final: Es el resultado de sumar a la fecha de inicio de ejecucin del
proceso, el tiempo que se tarda en realizarse el mismo, es decir,
corresponde a la fecha y hora en que el centro de produccin debe finalizar
la ejecucin de la orden de trabajo.
19
Ilustracin 1 - Pasos para solucionar analticamente el problema de programacin de planta de produccin
20
De igual forma, cuando el nmero de rdenes de produccin crece o se introducen
nuevas variables, hacer el anlisis se vuelve una tarea dispendiosa y complicada.
21
2 PARA COMENZAR CON ALGORITMOS GENTICOS
Los algoritmos genticos (AG) son mtodos utilizados para resolver problemas
complejos de bsqueda y optimizacin, inspirados en la naturaleza y
especficamente en el proceso evolutivo de los seres vivos.
Por imitacin de este proceso, los AG son capaces de ir creando soluciones para
problemas del mundo real. La evolucin de dichas soluciones hacia valores ptimos
del problema, depende en buena medida de una adecuada evaluacin de las
mismas.
22
generaciones; una nueva parte opcional es asumida para una buena medida.
Mientras combinan, los AG no son una simple ruta aleatoria. Ellos eficientemente
explotan la informacin histrica para especular en nuevos puntos de bsqueda
con una mejora esperada en la ejecucin.
23
Cada uno de los elementos, operadores y procesos que componen un AG son
ilustrados a continuacin mediante un ejemplo prctico.
Como parmetros iniciales se asignan los siguientes intervalos de las variables para
reducir el espacio de bsqueda de solucin:
24
2.2.1.1 Representacin del problema
Para x1:
25
Para x2:
33 bits
18 bits 15 bits
26
x1
x2
27
2.2.1.3 Evaluacin
28
Convertir el genotipo del cromosoma a su fenotipo. En otras palabras, esto
significa convertir la cadena de caracteres a sus valores reales.
19.805119
17.370896
9.590546
29.406122
15.686091
11.900541
17.958717
19.763190
26.401669
10.252480
2.2.1.4 Seleccin
29
reproducirse es proporcional a su valor de funcin de evaluacin, es decir, a su
adaptacin.
30
Calcular la probabilidad de seleccin pk de cada cromosoma vk.
31
La probabilidad de seleccin acumulada qk para cada cromosoma vk(k=1,2,,10)
es la siguiente:
Ahora se lanza diez veces la rueda de ruleta, y con cada lanzamiento se selecciona
un cromosoma simple para la nueva poblacin. Una secuencia aleatoria de diez
nmeros entre el rango [0,1] se muestra a continuacin:
32
2.2.1.5 Cruce
Es una buena idea que, tanto la codificacin como la tcnica de cruce, se hagan de
manera que las caractersticas buenas se hereden o al menos, no sea mucho peor
que el peor de los padres. Para lo anterior no se tiene un modo formal para
seleccionar la tcnica de mejor adaptacin a un problema especfico, sin embargo
es recomendable analizar la naturaleza de la cadena y los genes del individuo, con
el fin de conocer que elementos se pueden cruzar para lograr la creacin de un
individuo que combine las mejores caractersticas de los padres.
Punto de corte
Los cromosomas resultantes del intercambio de los genes a la derecha del punto
de corte son:
33
Para el ejemplo se determina que la probabilidad de cruce es pc = 0.25, lo cual
indica que solo el 25% de los cromosomas tienden a ser cruzados.
Por lo que se identifica que solo los cromosomas v5 y v7 son seleccionados para
ser cruzados. Si se lanza un nuevo nmero aleatorio con rango [1, 33] para elegir
el punto de corte (se obtuvo el nmero 15) se obtiene la siguiente operacin:
Punto de corte
2.2.1.6 Mutacin
34
el operador de mutacin realiza una explotacin de la poblacin y va ganando en
importancia a medida que la poblacin de individuos va convergiendo. El objetivo
del operador de mutacin es producir nuevas soluciones a partir de la modificacin
de un cierto nmero de genes de una solucin existente, con la intencin de
fomentar la variabilidad dentro de la poblacin. Existen diversas formas de realizar
la mutacin, desde la ms sencilla, donde cada gen muta aleatoriamente con
independencia del resto de genes, hasta configuraciones ms complejas donde se
tienen en cuenta la estructura del problema y la relacin entre los distintos genes.
Cabe anotar que la forma en la que se altera un gen depende de la forma en que
se realiz la representacin del mismo.
En el caso de estudio actual se observa que cada gen es un bit que toma los
valores de 0 o 1, por lo que la mutacin consistir en cambiar el valor del gen as:
Gen a cambiar
35
Retomando el ejemplo, se torna un poco arbitrario elegir un mismo gen a mutar en
cada cromosoma, por lo que se utiliza el siguiente mtodo de eleccin del gen a
mutar:
36
2.2.1.7 Una nueva poblacin
Cada iteracin del algoritmo arroja una nueva poblacin en la que se espera
encontrar individuos cada vez mejor adaptados al problema planteado. En este
caso, despus de realizar las operaciones descritas anteriormente la nueva
poblacin generada es la siguiente:
37
38
3 MODELAMIENTO DEL ALGORITMO GENETICO
En este trabajo se hace un hibrido, como lo llaman sus autores, entre algoritmos
genticos y simulacin, utilizando los algoritmos genticos para optimizar la
39
programacin de la produccin y la simulacin para minimizar los tiempos de
ejecucin de los algoritmos genticos.
40
3.2.1 Individuos
Tiempo de
OP CP Cantidad Eficiencia Fecha inicial Fecha final
proceso
15 1 10.000,00 1 0,733729547 05/04/2009 02:51:16 05/04/2009 03:35:18
15 2 20.000,00 1 1,684494231 05/04/2009 02:51:16 05/04/2009 04:32:20
15 3 10.000,00 1 0,796622321 05/04/2009 03:35:18 05/04/2009 04:23:05
15 4 20.000,00 1 3,306331625 05/04/2009 03:35:18 05/04/2009 06:53:40
15 5 25.000,00 1 3,109839532 05/04/2009 03:35:18 05/04/2009 06:41:53
15 6 10.000,00 1 0,744601638 05/04/2009 03:35:18 05/04/2009 04:19:58
15 7 25.000,00 1 1,947040498 05/04/2009 03:35:18 05/04/2009 05:32:07
15 8 10.000,00 1 2,296211251 05/04/2009 03:35:18 05/04/2009 05:53:04
15 9 5.000,00 1 0,364298725 05/04/2009 03:35:18 05/04/2009 03:57:09
15 10 15.000,00 1 1,578615028 05/04/2009 03:35:18 05/04/2009 05:10:01
3.2.2 Cromosomas
3.2.3 Alelos
41
3.3 GENERACIN DE LA POBLACIN INICIAL
42
3.4 PROCESO DE SELECCIN
El operador de cruce tiene como objeto rescatar las mejores caractersticas de los
individuos con el fin utilizarlas como partes en la generacin de nuevos individuos.
43
Con el fin de obtener variedad en las poblaciones que se van generando, se
plantean las siguientes opciones como posibles operadores de cruce:
44
3.6 PROCESO DE MUTACIN
45
3.7 DEFINICIN DE LA FUNCIN DE EVALUACIN (FITNESS)
3.7.1 Cumplimiento (C )
3.7.2 Colisiones (T )
Una colisin ocurre cuando la fecha y hora de inicio de una orden de trabajo se
encuentra entre la fecha y hora de inicio y de final de otras rdenes de trabajo
dentro del mismo centro de produccin.
46
3.8 FUNCIN DE EVALUACIN (FITNESS)
47
4 EVALUACIN DE PROTOTIPOS
Cada prototipo que se genere tendr como datos de trabajo los siguientes:
tem Cantidad
Centrosdeproduccin 93
Procesos 25
Ordenesdeproduccin 20
Ordenesdetrabajo 276
48
4.1.3 Probabilidades de cruce y mutacin
ProbabilidaddeCruce 75%
ProbabilidaddeMutacin 10%
Mtododeseleccin Ruleta
4.2 PROTOTIPO 01
49
4.2.2 Resultados del prototipo 01
Ilustracin 5 Vista previa de la ejecucin del prototipo 01
50
ejecucin) pero no se est haciendo la reprogramacin de la ejecucin de
los procesos de la orden dividida para que se permita disminuir la fecha de
entrega de la orden de produccin.
51
4.3 PROTOTIPO 02
52
4.3.3 Anlisis de la situacin en el prototipo 02.
53
Cuando se corra la funcin de cruce se debe hacer una reprogramacin de
las rdenes de trabajo para que no se generen colisiones.
La funcin de mutacin se va a cambiar para que la orden de trabajo a la
que se divida la cantidad no sea la que ms tiempo se demore, si no que se
va a buscar una de las ordenes de produccin que no terminan a tiempo y
de esta se va a escoger la orden de trabajo ms demorada.
4.4 PROTOTIPO 03
54
4.4.3 Anlisis de la situacin en el prototipo 03.
La funcin de mutacin dividir las rdenes de trabajo cuya fecha inicial sea
menor a la fecha de entrega de la orden de trabajo.
En la funcin de mutacin, cuando el cumplimiento del individuo est en el
100%, se deber disolver una colisin haciendo uso de otro centro de
55
produccin que en el que se pueda ejecutar el proceso, si no se puede
ejecutar en otro centro de produccin, entonces se har reprogramacin del
centro de produccin.
Se implementar una tabla de resultados en la que se mostrarn los
mejores individuos de cada generacin, con el fin de correr varias veces el
algoritmo y as hacer anlisis ms fcilmente.
4.5 PROTOTIPO 04
56
hacer anlisis rpido de cada ejecucin del algoritmo, en esta tabla se puede ver
de cada mejor individuo la generacin en que se cre, el resultado de la funcin de
evaluacin y cada una de las evaluaciones por separado de las variables que
constituyen la funcin de evaluacin (cumplimiento, ocupacin de mquina y
colisiones).
57
Ilustracin 8 - Vista previa de la tabla de resultados obtenida en la ejecucin del prototipo 04
58
4.5.4 Acciones para el siguiente prototipo.
Se debe generar una lnea de grfica para cada una de las variables que
componen la funcin de evaluacin.
Se debe generar una lnea de grfica para el promedio de la funcin de
evaluacin en cada generacin, con esto se podr comprobar el
comportamiento de generacin en generacin.
Cuando se disuelve una colisin se debe hacer reprogramacin tanto de la
orden de produccin como del centro de produccin.
4.6 PROTOTIPO 05
Se realizaron los siguientes cambios para mejorar los resultados del algoritmo:
59
4.6.2 Resultados del prototipo 05.
Ilustracin 9 - Vista previa de la ejecucin del prototipo 05
60
4.6.4 Acciones para el siguiente prototipo.
Uno de los objetivos planteados para este proyecto estableca la realizacin de una
comparacin del prototipo con alguna solucin utilizada actualmente en la industria
de artes grficas.
Para llevar a cabo este aspecto, solo se pudo tener acceso como referencia a una
aplicacin que realiza la programacin de una planta de produccin mediante el
uso de procesos de asignacin de tiempos secuenciales.
61
aplicacin son menores a los obtenidos con el prototipo y en todos los casos las
diferencias presentadas en esta evaluacin eran tan grandes que se opt por no
realizar un anlisis preciso de las mismas.
62
5 EVALUACIN Y COMPARACIN DE RESULTADOS2
Variable Valor
PesodeCumplimiento 55%
PesodeColisiones 40%
PesodeOcupacin 5%
NmerodeIteracionesaejecutar 1000
Se realiz la recopilacin de datos de cada una de las ejecuciones para graficar los
resultados y facilitar el anlisis.
2
Los datos que se utilizan para realizar la comparacin fueron suministrados informalmente por el
programador de la planta de produccin de una empresa de artes grficas para la cual, Alexander
Gmez trabaj durante ms de 4 aos.
63
De cada una de las ejecuciones se tomaron los siguientes datos:
Nmero
Tiempo Mejor Generacin Promedio
De Cumplimiento Colisiones
(Minutos) Individuo MI Evaluacin
Ejecucin
64
5.1 TIEMPO DE EJECUCIN
Grfica 1 - Evaluacin del tiempo de ejecucin.
Promedio 48.14
Tiempo Menor 42.30
Tiempo Mximo 56.36
Desviacin estndar 3.85
65
labor el programador se toma alrededor de 40 minutos y durante el da debe
repetirla por lo menos una vez, lo que en total suma 96 minutos.
Promedio 0.95
Evaluacin Menor 0.89
Evaluacin Mxima 1.00
Desviacin estndar 0.04
66
de tal forma que result mejor la evaluacin del mejor individuo ejecutando el
algoritmo gentico propuesto.
Promedio 0.94
Evaluacin mnima 0.88
Evaluacin mxima 0.99
Desviacin estndar 0.04
67
5.4 GENERACIN MEJOR INDIVIDUO
Grfica 4 - Generacin del mejor individuo.
Promedio 923.50
Generacin mnima 458.00
Generacin mxima 997.00
Desviacin estndar 166.28
68
5.5 CUMPLIMIENTO
Grfica 5 Evaluacin de cumplimiento
Promedio 0.96
Menor cumplimiento 0.90
Mejor cumplimiento 1.00
Desviacin estndar 0.05
69
5.6 COLISIONES
Grfica 6 - Evaluacin de colisiones.
Promedio 0.98
Menor cumplimiento 0.97
Mejor cumplimiento 0.99
Desviacin estndar 0.01
Que las colisiones en promedio obtengan una calificacin del 98% significa que el
2% de las rdenes de trabajo programadas por el algoritmo propuesto se
encuentran en el mismo centro de produccin al mismo tiempo, lo que es un
excelente resultado.
70
6 CONCLUSIONES
71
iteraciones del algoritmo, por lo que es bastante probable que, al ejecutar el
algoritmo con un nmero mayor de poblaciones, se obtenga un individuo
con mejor calificacin que los encontrados.
Los tiempos de ejecucin del algoritmo fueron aceptables dentro de los
lmites establecidos para el ejercicio prctico por los autores. Sin embargo
para llevar el algoritmo a un ambiente de produccin, es necesario aplicar
otras tcnicas de programacin que permitan mejorar el rendimiento del
mismo.
Es viable enmarcar el algoritmo gentico planteado en una solucin vertical
de control y gestin de produccin, que permita unir toda la parte
transaccional del sistema con la programacin de la planta de produccin.
La descripcin del funcionamiento de los AG mediante la exposicin de un
ejemplo prctico en paralelo con el detalle terico de cada uno de los
elementos, permite tener una herramienta pedaggica que sirva como gua
a los futuros estudiantes interesados en el tema.
72
7 SUGERENCIAS
73
8 REFERENCIAS
[2] GEN. Mitsuo, CHENG. Runwei. Genetic Algorithms and Engineering Design.
New York. Wiley, 2000. 411 p. ISBN 0-471-12741-8.
[4] HSIAO-LAN. Fang, ROSS. Peter, CORNE. Ross y CORNE. Dave. A Promising
Genetic Algorithm Approach to Job-Shop Scheduling, Rescheduling and Open-Shop
Scheduling Problems. http://www6.uniovi.es/pub/EC/GA/papers/icga93-2.ps.gz
[5] SUK JAE. Jeong, SEOK JIN. Lim, KYUNG SUP. Kim. Hybrid approach to
production scheduling using genetic algorithm and simulation. Springer London,
2006. 136 p. ISSN 0268-3768
[7] DARWIN. Charles. El origen de las especies. LongSeller, 2005. 240 p. ISBN
9875503487.
74