FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para...

74
1 FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL PROBLEMA DE PROGRAMACIÓN DE ÓRDENES DE TRABAJO DE UNA EMPRESA DE ARTES GRÁFICAS PROYECTO DE GRADO Javier mauricio gamboa salgado Código: 544004 John alexander gómez marulanda Código: 553019 FUNDACIÓN UNIVERSITARIA KONRAD LORENZ FACULTAD DE INGENIERÍA IX SEMESTRE DE INGENIERÍA DE SISTEMAS BOGOTÁ

Transcript of FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para...

Page 1: FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para el problema de programaciÓn de Órdenes de trabajo de una empresa de artes grÁficas

1

FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL PROBLEMA DE PROGRAMACIÓN DE ÓRDENES DE TRABAJO

DE UNA EMPRESA DE ARTES GRÁFICAS

PROYECTO DE GRADO

Javier mauricio gamboa salgado Código: 544004

John alexander gómez marulanda

Código: 553019

FUNDACIÓN UNIVERSITARIA KONRAD LORENZ FACULTAD DE INGENIERÍA

IX SEMESTRE DE INGENIERÍA DE SISTEMAS BOGOTÁ

Page 2: FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para el problema de programaciÓn de Órdenes de trabajo de una empresa de artes grÁficas

2

FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL PROBLEMA DE PROGRAMACIÓN DE ÓRDENES DE TRABAJO

DE UNA EMPRESA DE ARTES GRÁFICAS

PROYECTO DE GRADO

JOHN ALEXANDER GÓMEZ MARULANDA Código: 553019

JAVIER MAURICIO GAMBOA SALGADO

Código: 544004

Proyecto investigativo para optar al título de Ingeniero de Sistemas

Director de proyecto de grado Ingeniero JUAN CARLOS GALEANO HUERTAS

FUNDACIÓN UNIVERSITARIA KONRAD LORENZ FACULTAD DE INGENIERÍA

IX SEMESTRE DE INGENIERÍA DE SISTEMAS BOGOTÁ

Page 3: FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para el problema de programaciÓn de Órdenes de trabajo de una empresa de artes grÁficas

3

NOTA DE ACEPTACIÓN

_____________________________________________

_____________________________________________

_____________________________________________

_____________________________________________

_____________________________________________

_____________________________________________

_____________________________________________

_______________________________ Presidente del Jurado

_______________________________ Jurado

_______________________________ Jurado

Page 4: FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para el problema de programaciÓn de Órdenes de trabajo de una empresa de artes grÁficas

4

A los futuros individuos Konradistas.

Page 5: FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para el problema de programaciÓn de Órdenes de trabajo de una empresa de artes grÁficas

5

AGRADECIMIENTOS

A mi familia, especialmente a mis padres, Enrique y Clara, y a mi esposa, Carolina,

por la compresión y aliento inagotables.

Javier Gamboa A Dios porque en él está mi vida, a mi esposa, Heidi, porque sin ella no habría

empezado esta parte del camino que hoy culmina y a mi hijo, Jiordie, porque en él

retomo fuerzas.

Alexander Gómez

Page 6: FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para el problema de programaciÓn de Órdenes de trabajo de una empresa de artes grÁficas

6

CONTENIDO

Pág. 1  EXISTE UN PROBLEMA .............................................................................. 14 

1.1  DEFINICIÓN DE ENTRADAS DEL PROBLEMA ......................................... 15 1.1.1  Orden de Producción. .................................................................. 15 1.1.2  Proceso. ..................................................................................... 16 1.1.3  Centro de Producción. ................................................................. 16 1.1.4  Orden de Trabajo ........................................................................ 17 

1.2  ¿CUAL ES LA PROPUESTA PARA SOLUCIONARLO? ................................. 19 2  PARA COMENZAR CON ALGORITMOS GENÉTICOS ...................................... 22 

2.1  ¿QUÉ SON LOS ALGORITMOS GENÉTICOS? .......................................... 22 2.2  DESCRIPCIÓN DEL FUNCIONAMIENTO DE LOS AG ................................ 23 

2.2.1  Problema de optimización ............................................................ 24 3  MODELAMIENTO DEL ALGORITMO GENETICO ............................................ 39 

3.1  TRABAJOS REALIZADOS ...................................................................... 39 3.1.1  Programación de tienda abierta. ................................................... 39 3.1.2  Programación de producción ........................................................ 39 3.1.3  Secuenciación dinámica ............................................................... 40 

3.2  DEFINICIONES PROPIAS DEL ALGORITMO GENÉTICO ........................... 40 3.2.1  Individuos .................................................................................. 41 3.2.2  Cromosomas ............................................................................... 41 3.2.3  Alelos ......................................................................................... 41 

3.3  GENERACIÓN DE LA POBLACIÓN INICIAL ............................................. 42 3.4  PROCESO DE SELECCIÓN .................................................................... 43 3.5  PROCESO DE CRUCE ........................................................................... 43 3.6  PROCESO DE MUTACIÓN .................................................................... 45 3.7  DEFINICIÓN DE LA FUNCIÓN DE EVALUACIÓN (FITNESS) ..................... 46 

3.7.1  Cumplimiento (C ) ....................................................................... 46 3.7.2  Colisiones (T ) ............................................................................ 46 3.7.3  Ocupación de centros de producción (P ) ...................................... 46 

3.8  FUNCIÓN DE EVALUACIÓN (FITNESS) .................................................. 47 4  EVALUACIÓN DE PROTOTIPOS .................................................................. 48 

4.1  CONDICIONES PARA LA GENERACIÓN DE PROTOTIPOS ........................ 48 4.1.1  Datos de trabajo ......................................................................... 48 4.1.2  Proceso de selección ................................................................... 48 4.1.3  Probabilidades de cruce y mutación .............................................. 49 

4.2  PROTOTIPO 01 ................................................................................... 49 4.2.1  Condiciones del algoritmo. ........................................................... 49 4.2.2  Resultados del prototipo 01 ......................................................... 50 

Page 7: FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para el problema de programaciÓn de Órdenes de trabajo de una empresa de artes grÁficas

7

4.2.3  Análisis de la situación en el prototipo 01. ..................................... 50 4.2.4  Acciones para el siguiente prototipo. ............................................. 51 4.2.5  Consideraciones para tener en cuenta en el próximo 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  Análisis de la situación 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  Análisis de la situación 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  Análisis de la situación 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  Análisis de la situación en el prototipo 05. ..................................... 60 4.6.4  Acciones para el siguiente prototipo. ............................................. 61 

4.7  COMPARACIÓN DEL PROTOTIPO 05 ..................................................... 61 5  EVALUACIÓN Y COMPARACIÓN DE RESULTADOS ....................................... 63 

5.1  TIEMPO DE EJECUCIÓN ...................................................................... 65 5.1.1  Comparación en tiempo de ejecución. ........................................... 65 

5.2  MEJOR INDIVIDUO ............................................................................. 66 5.2.1  Comparación del mejor individuo. ................................................. 66 

5.3  PROMEDIO DE EVALUACIÓN ............................................................... 67 5.4  GENERACIÓN MEJOR INDIVIDUO ........................................................ 68 5.5  CUMPLIMIENTO .................................................................................. 69 

5.5.1  Comparación del cumplimiento ..................................................... 69 5.6  COLISIONES ....................................................................................... 70 

5.6.1  Evaluación de las colisiones. ........................................................ 70 6  CONCLUSIONES ....................................................................................... 71 7  SUGERENCIAS ......................................................................................... 73 8  REFERENCIAS .......................................................................................... 74 

Page 8: FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para el problema de programaciÓn de Órdenes de trabajo de una empresa de artes grÁficas

8

Page 9: FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para el problema de programaciÓn de Órdenes de trabajo de una empresa de artes grÁficas

9

LISTA DE ILUSTRACIONES

Pág.

Ilustración 1 - Pasos para solucionar analíticamente el problema de programación de planta de producción .................................................................................. 20 Ilustración 2 - Esquema general del funcionamiento de un AG ........................... 23 Ilustración 3 - Gráfica de la función a optimizar................................................. 24 Ilustración 4 - Modelo general del AG propuesto ............................................... 40 Ilustración 5 – Vista previa de la ejecución del prototipo 01 ............................... 50 Ilustración 6 – Vista previa de la ejecución del prototipo 02 ............................... 52 Ilustración 7 - Vista previa de la ejecución del prototipo 04 ................................ 57 Ilustración 8 - Vista previa de la tabla de resultados obtenida en la ejecución del prototipo 04 ................................................................................................... 58 Ilustración 9 - Vista previa de la ejecución del prototipo 05 ................................ 60 

Page 10: FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para el problema de programaciÓn de Órdenes de trabajo de una empresa de artes grÁficas

10

Page 11: FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para el problema de programaciÓn de Órdenes de trabajo de una empresa de artes grÁficas

11

RESUMEN

En el desarrollo del presente trabajo se propone generar una solución al problema

de programación de planta de producción mediante la utilización de algoritmos

genéticos, usándolos como técnica que permita no sólo cubrir las necesidades que

ya abordan soluciones analíticas sino ir mas allá proponiendo una nueva

organización de los recursos y de los trabajos a realizar, y permitiendo a través de

ellos explorar al máximo el universo de posibilidades que se pueden presentar para

solucionarlo. Se plantea un enfoque práctico que guía al lector por la

conceptualización y el modelamiento de un algoritmo genético elemental, para

luego proponer un modelo que represente una solución del problema planteado.

Page 12: FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para el problema de programaciÓn de Órdenes de trabajo de una empresa de artes grÁficas

12

INTRODUCCION

Procesar alrededor de trescientos pedidos diarios de clientes que necesitan cada

uno el suyo sin retraso, cada pedido con una serie de pasos que deben ser

ejecutados minuciosamente para cumplir con los requerimientos exigidos,

contando sólo con noventa máquinas para llevar a cabo los procesos, es una tarea

que de entrada suena titánica.

Adicionalmente, si a lo anterior se agrega que las tareas deben ser ejecutadas en

un orden específico, que dependen en cierta proporción de la mano de obra y que

día a día están llegando nuevos pedidos de clientes que exigen el mismo

cumplimiento y una excelente calidad, el procesamiento de los pedidos se

convierte en una tarea bastante compleja.

Durante mucho tiempo se han solucionado estos y otros problemas de igual o

mayor envergadura realizando análisis complejos o aplicando una metodología que

pocas personas se atreven a modificar y mucho menos tratan de cuestionar la

idoneidad o la obtención de una mejor solución. Un escenario bastante

desalentador se vislumbra cuando se verifica que obtener una solución a estos

problemas puede demandar grandes cantidades de tiempo y recursos tanto

técnicos como humanos.

Es por esto que se realiza un algoritmo genético que pueda ser utilizado en la

programación de planta de producción de una empresa de artes gráficas. En el

desempeño de esta labor, es necesario realizar una representación válida de los

elementos que componen el problema y una función 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.

Page 13: FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para el problema de programaciÓn de Órdenes de trabajo de una empresa de artes grÁficas

13

El anterior panorama, plantea entonces la utilización de la tecnología 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 administración y organización de los recursos de producción se

puedan dejar prácticamente en sus manos.

Page 14: FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para el problema de programaciÓn de Órdenes de trabajo de una empresa de artes grÁficas

14

11 EEXXIISSTTEE UUNN PPRROOBBLLEEMMAA11

El sector manufacturero transforma materias primas en productos mediante la

ejecución de procesos manuales o automáticos. De este sector se divide un grupo

de empresas que se dedican a elaborar productos a la medida de las necesidades,

es decir, las especificaciones, materias primas a utilizar y condiciones entre otras

características son definidas por el cliente, lo que hace que cada producto sea

totalmente nuevo a la hora de producirlo; las empresas de artes gráficas se

encuentran en este grupo.

Al no tener productos que se elaboren de la misma forma y en cantidades

regulares, es necesario hacer una programación dinámica de la planta de

producción en la cual se asegure el cumplimiento de los compromisos adquiridos

con el cliente.

Esta programación debe tener en cuenta todos los procesos que se deben ejecutar

para terminar la elaboración 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.

El problema consiste en hacer la programación de la planta de producción de una

empresa de artes gráficas considerando las situaciones expresadas anteriormente,

permitiendo optimizar los recursos que se utilizan para la ejecución de los procesos

y cumpliendo los compromisos adquiridos.

1 La información de este capítulo es obtenida a partir de la experiencia de los autores en el sector

manufacturero, específicamente en empresas de artes gráficas.

Page 15: FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para el problema de programaciÓn de Órdenes de trabajo de una empresa de artes grÁficas

15

1.1 DEFINICIÓN DE ENTRADAS DEL PROBLEMA

Es de vital importancia realizar una buena definición de las entradas que influyen

en su problema, dado que con base en ellas se desarrollará el proceso que

intentará solucionar el problema específico. Para este problema se definen las

variables especificadas a continuación.

1.1.1 Orden de Producción.

La orden de producción (OP) corresponde a la orden que el área de ingeniería de

producto o planeación hace a la planta de producción, en la cual consigna todas

las especificaciones técnicas necesarias para llevar a cabo la producción del

producto según lo acordado previamente con el cliente. Adicionalmente, en la OP

se ingresan los datos correspondientes a cantidades, fechas de entrega,

condiciones de negociación y aspectos técnicos adicionales de relevancia para el

proceso productivo.

De acuerdo a lo anterior y según el conocimiento y la experiencia de la industria

gráfica y manufacturera, el área de ingeniería de producto o planeación plasma en

la orden de producción la respuesta a las preguntas: ¿qué se hace? y ¿cómo se

hace?

1.1.1.1 Características de la orden de producción.

A continuación se presentan las características de la orden de producción que se

tendrán en cuenta para el desarrollo del algoritmo propuesto.

Cantidad: Es la cantidad de ejemplares o productos completos que la

planta de producción debe elaborar.

Fecha de entrega: La fecha de entrega corresponde al día en que se debe

terminar de procesar la orden de producción en la planta para preparar la

entrega del producto terminado al cliente.

Page 16: FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para el problema de programaciÓn de Órdenes de trabajo de una empresa de artes grÁficas

16

1.1.2 Proceso.

Es la acción o actividad que se ejecuta durante el proceso productivo sobre una

orden de producción o parte de ella, en consecuencia, el proceso siempre es

ejecutado por un centro de producción.

En cualquier planta de producción un proceso debe poder ser ejecutado por al

menos un centro de producción, sin importar si la acción se desempeña de forma

manual o automática.

1.1.2.1 Características del proceso.

A continuación se presentarán las características del proceso que se tendrán en

cuenta para el desarrollo del algoritmo propuesto.

Predecesor: Esta característica es de vital importancia para la

programación de la planta de producción ya que corresponde al proceso

que debe ser ejecutado antes de realizarse el proceso actual. Para este

trabajo se define que un proceso sólo puede tener un predecesor, aunque

no necesariamente deba tener uno.

1.1.3 Centro de Producción.

Como centro de producción (CP) puede catalogarse el lugar específico en el que se

desarrolla uno o más procesos. La naturaleza de los CP está dada por la forma

como se llevan a cabo las actividades dentro de él. Por lo tanto pueden ser de tipo

manual, que corresponde a una persona o grupo de ellas que se dedica a realizar

actividades manuales sobre una orden de producción o automático en el que una

máquina ejecuta acciones o actividades sobre una orden de producción.

Con base en los anteriores conceptos, se puede concluir que el CP es la máquina,

persona o grupo de personas que ejecutan una serie de procesos sobre la orden

Page 17: FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para el problema de programaciÓn de Órdenes de trabajo de una empresa de artes grÁficas

17

de producción para lo cual pueden consumir o transformar una materia prima

determinada.

Un CP debe ejecutar una serie de procesos secuencialmente. Sin embargo, si un

centro de producción ejecuta dos procesos simultáneamente sobre una OP, éstos

deben ser agrupados y nombrados como uno solo para que se puedan llevar a la

programación en la planta.

1.1.3.1 Características del centro de producción.

A continuación se presentarán las características del centro de producción que se

tendrán en cuenta para el desarrollo del algoritmo propuesto.

Disponibilidad: Es una variable sumamente importante para la

programación de la planta ya que expresa el tiempo en horas al día que el

centro de producción está disponible para ejecutar los procesos.

Procesos que ejecuta: Esta es una lista de los procesos que pueden ser

ejecutados en el centro de producción. En cada uno de los procesos se debe

especificar su rendimiento.

Rendimiento por proceso: Corresponde a la cantidad de unidades que el

centro de producción puede hacer por hora ejecutando un proceso

determinado.

1.1.4 Orden de Trabajo

La orden de trabajo (OT) es la especificación técnica en cuanto a la ejecución de

los procesos, los tiempos en que deben ser ejecutados y las cantidades que deben

salir al fin de la ejecución.

Una orden de trabajo corresponde a un solo centro de producción y a un único

proceso a ser ejecutado en dicho centro, por lo tanto se crean tantas órdenes de

trabajo por orden de producción como procesos se empleen para realizarla.

Page 18: FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para el problema de programaciÓn de Órdenes de trabajo de una empresa de artes grÁficas

18

Las órdenes de trabajo se crean de acuerdo a la explosión de procesos que se

hace en la ingeniería de producto o planeación.

1.1.4.1 Características de la orden de trabajo.

A continuación se presentarán las características de la orden de trabajo que se

tendrán en cuenta para el desarrollo del algoritmo propuesto.

Orden de producción: Orden de producción a la cual pertenece la orden

de trabajo.

Proceso: Identifica el proceso que se debe ejecutar en la orden de trabajo.

Centro de producción: Así como el proceso, esta característica identifica

el centro de producción que ejecutará el proceso correspondiente.

Prioridad: La prioridad es puesta por defecto desde ingeniería de producto

o planeación con el mismo nivel para todas las órdenes de trabajo nuevas,

sin embargo, el programador de la planta de producción puede modificar la

prioridad en caso de que se deba ejecutar una orden de trabajo en cierto

orden específico, dando una prioridad mayor a esta en el proceso de

programación.

Cantidad: Contrario a lo que se puede pensar, la cantidad de la OT no

siempre corresponde a la cantidad de la orden de producción. Con mayor

exactitud, en la OT la cantidad refleja el número de unidades que se deben

procesar. En la mayoría de los procesos, la cantidad a ejecutar es mayor a

la cantidad de la orden de producción, dado que se agregan desperdicios o

en algunos casos de acuerdo al proceso, este se debe ejecutar dos o más

veces.

Se debe aclarar que esta cantidad es determinada por el proceso de

ingeniería de producto o planeación de la orden de producción.

Eficiencia: Corresponde a la eficiencia con que el centro de producción

ejecuta un proceso en una orden de trabajo determinada, por defecto, la

Page 19: FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para el problema de programaciÓn de Órdenes de trabajo de una empresa de artes grÁficas

19

eficiencia es definida en planeación, pero igualmente el programador puede

cambiar la eficiencia de acuerdo a las condiciones físicas del trabajo a

realizar.

Tiempo: De acuerdo al rendimiento que tiene el centro de producción

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

característica se ingresa durante el proceso de programación ya que es allí

cuando se conoce el tiempo de ejecución.

Fecha de inicio: De acuerdo al proceso de programación esta variable es

calculada y corresponde a la fecha y hora en que el centro de producción

debe empezar a procesar la orden de trabajo.

Fecha final: Es el resultado de sumar a la fecha de inicio de ejecución del

proceso, el tiempo que se tarda en realizarse el mismo, es decir,

corresponde a la fecha y hora en que el centro de producción debe finalizar

la ejecución de la orden de trabajo.

1.2 ¿CUAL ES LA PROPUESTA PARA SOLUCIONARLO?

La ilustración 1 muestra la forma analítica de solucionar el problema, tal y como se

hace en varias empresas de artes gráficas:

Page 20: FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para el problema de programaciÓn de Órdenes de trabajo de una empresa de artes grÁficas

20

Ilustración 1 - Pasos para solucionar analíticamente el problema de programación de planta de producción

En las soluciones analíticas del problema, resulta bastante complicado agregar

variables de decisión, tales como dividir el trabajo para que sea ejecutado

paralelamente, o ejecutar el trabajo utilizando un recurso más eficiente o por lo

menos diferente al inicialmente configurado.

Page 21: FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para el problema de programaciÓn de Órdenes de trabajo de una empresa de artes grÁficas

21

De igual forma, cuando el número de órdenes de producción crece o se introducen

nuevas variables, hacer el análisis se vuelve una tarea dispendiosa y complicada.

Debido al anterior panorama, se propone dar solución al problema mediante la

utilización de la técnica de algoritmos genéticos.

Page 22: FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para el problema de programaciÓn de Órdenes de trabajo de una empresa de artes grÁficas

22

22 PPAARRAA CCOOMMEENNZZAARR CCOONN AALLGGOORRIITTMMOOSS GGEENNÉÉTTIICCOOSS

2.1 ¿QUÉ SON LOS ALGORITMOS GENÉTICOS?

Los algoritmos genéticos (AG) son métodos utilizados para resolver problemas

complejos de búsqueda y optimización, inspirados en la naturaleza y

específicamente en el proceso evolutivo de los seres vivos.

Según Charles Darwin [7], a lo largo de las generaciones, las poblaciones

evolucionan en la naturaleza de acorde con los principios de la selección natural y

la supervivencia de los más aptos. El medio ambiente ejerce una presión sobre las

especies de tal forma que algunos individuos sobreviven y otros no. Aquellos seres

que sobreviven tienen la oportunidad de reproducirse y al hacerlo se dice que sus

características pasan a la siguiente generación. Estas características son

transmitidas por los padres a sus hijos a través de los genes.

Por imitación de este proceso, los AG son capaces de ir creando soluciones para

problemas del mundo real. La evolución de dichas soluciones hacia valores óptimos

del problema, depende en buena medida de una adecuada evaluación de las

mismas.

Goldberg en [1] define los algoritmos genéticos de la siguiente manera. “Los

algoritmos genéticos, AG, con algoritmos de búsqueda basados en mecanismos de

selección y de genética natural. Ellos combinan la ley del más fuerte entre

estructuras de cadenas con intercambio de información estructurada y aleatoria

para formar un algoritmo de búsqueda con algunas de las innovadoras bondades

de la búsqueda humana. En cada generación, es creado un nuevo conjunto de

criaturas artificiales usando bits y partes de los más fuertes de las anteriores

Page 23: FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para el problema de programaciÓn de Órdenes de trabajo de una empresa de artes grÁficas

23

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 información histórica para especular en nuevos puntos de búsqueda

con una mejora esperada en la ejecución.”

2.2 DESCRIPCIÓN DEL FUNCIONAMIENTO DE LOS AG

De acuerdo a lo planteado en [2], es posible observar el esquema general del

funcionamiento de un algoritmo genético a través de la ilustración 2.

Ilustración 2 - Esquema general del funcionamiento de un AG

Page 24: FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para el problema de programaciÓn de Órdenes de trabajo de una empresa de artes grÁficas

24

Cada uno de los elementos, operadores y procesos que componen un AG son

ilustrados a continuación mediante un ejemplo práctico.

2.2.1 Problema de optimización

En [2] se encuentra el siguiente problema en el cual se desea maximizar la

siguiente función:

Ilustración 3 - Gráfica de la función a optimizar

Como parámetros iniciales se asignan los siguientes intervalos de las variables para

reducir el espacio de búsqueda de solución:

Page 25: FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para el problema de programaciÓn de Órdenes de trabajo de una empresa de artes grÁficas

25

2.2.1.1 Representación del problema

La representación del problema es el proceso que permite establecer la forma

como un dato va a ser procesado a través del algoritmo. Para describir mejor esta

etapa es necesario utilizar los conceptos de genotipo y fenotipo. El genotipo es la

forma utilizada para representar las características de un elemento, mientras que

el fenotipo es el conjunto de características de ese organismo.

Para este caso se decide representar el problema en cadenas binarias. La longitud

de cada cadena depende de la precisión requerida en la solución. Por ejemplo, el

dominio de la variable xj es [aj , bj] y la precisión requerida es de cinco posiciones

decimales después del punto. Este parámetro de precisión implica que el rango de

dominio de cada variable debería estar dividida en por lo menos (bj - aj) x 105

tamaños. Los bits requeridos (mj ) para una variable se calcula como se muestra a

continuación:

Una representación de una cadena binaria para un número real de la variable xj

es:

donde representa el valor decimal de .

Si se supone que la precisión se estima en cinco posiciones después del punto

decimal, los bits requeridos para las variables x1 y x2 se calculan así:

Para x1:

Page 26: FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para el problema de programaciÓn de Órdenes de trabajo de una empresa de artes grÁficas

26

Para x2:

Por lo tanto la longitud del cromosoma es de 33 bits y se representa de la

siguiente forma:

Para ver la representación de las variables x1 y x2 , los valores correspondientes de

las mismas y su conversión a números reales, están dados los siguientes

procedimientos:

Variable Cadena binaria Número decimal

33 bits

18 bits 15 bits

Page 27: FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para el problema de programaciÓn de Órdenes de trabajo de una empresa de artes grÁficas

27

x1

x2

2.2.1.2 Población inicial

Una población es una representación abstracta de un segmento o conjunto de

individuos. Para el caso específico de los AG, existe una serie de poblaciones que

se van generando en la medida en que el algoritmo se ejecuta. La población inicial

es aquella que se toma como base para iniciar el proceso evolutivo. Con el paso

del tiempo, se espera que los individuos de las nuevas generaciones tengan genes

o características de los mejores individuos de las poblaciones anteriores.

Para el ejemplo, la población inicial consta de diez (10) individuos generados de

forma aleatoria tal y como se muestra a continuación:

donde sus respectivos valores reales son:

Page 28: FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para el problema de programaciÓn de Órdenes de trabajo de una empresa de artes grÁficas

28

2.2.1.3 Evaluación

La evaluación es el proceso que permite determinar el valor de un individuo dada

una función de comparación denominada función de evaluación.

La definición acertada de la función de evaluación es uno de los elementos

cruciales en el comportamiento de los AG. Idealmente interesa construir funciones

objetivo con “ciertas regularidades” en cuanto a su comportamiento, es decir,

funciones objetivo que verifiquen que para dos individuos que se encuentren

cercanos en el espacio de búsqueda, sus respectivos valores en las funciones

objetivo sean similares.

Un problema habitual en las ejecuciones de los AG surge debido a la velocidad con

la que el algoritmo converge, es decir, el tiempo que tarda el algoritmo en

estabilizar los valores de evaluación. En algunos casos la convergencia es muy

rápida, lo que suele denominarse convergencia prematura, en la cual el algoritmo

converge hacia óptimos locales, mientras que en otros pasos el problema es justo

el contrario, es decir se produce una convergencia lenta del algoritmo. Una posible

solución a estos problemas pasa por efectuar transformaciones en la función

objetivo.

El proceso de evaluación de un cromosoma consiste en los siguientes tres pasos:

Page 29: FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para el problema de programaciÓn de Órdenes de trabajo de una empresa de artes grÁficas

29

Convertir el genotipo del cromosoma a su fenotipo. En otras palabras, esto

significa convertir la cadena de caracteres a sus valores reales.

Evaluar la función objetivo con los valores anteriormente obtenidos.

Convertir el valor de la función objetivo en un valor valido para realizar una

evaluación y una posterior comparación. En el caso de este ejercicio, cabe

anotar que se utiliza como función de evaluación la misma función objetivo.

Los valores de evaluación de cada cromosoma se muestran a continuación:

19.805119 17.370896

9.590546 29.406122

15.686091 11.900541

17.958717 19.763190 26.401669 10.252480

De acuerdo a la anterior evaluación es simple ver que el cromosoma v4 es el más

fuerte, mientras que el cromosoma v3 es el más débil.

2.2.1.4 Selección

La selección es la encargada de transmitir y conservar aquellas características de

las soluciones que se consideran valiosas a lo largo de las generaciones. Existen

diversos métodos de selección dentro de los más usados están la selección por

ruleta y por torneo. En la ruleta, la probabilidad que tiene un individuo de

Page 30: FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para el problema de programaciÓn de Órdenes de trabajo de una empresa de artes grÁficas

30

reproducirse es proporcional a su valor de función de evaluación, es decir, a su

adaptación.

Si consideramos la población Q que consta de n individuos y a fi como el valor de

evaluación de un individuo i que es miembro de Q, la probabilidad pi de seleccionar

un individuo i, está dada por:

La selección por torneo reporta un valor computacional muy bajo debido a su

sencillez. Se selecciona un grupo de t individuos (normalmente t = 2, torneo

binario) y se genera un número aleatorio entre 0 y 1. Si este número es menor

que un cierto umbral K (usualmente K = 0,75), se selecciona para reproducirse al

individuo con mejor adaptación, y si este número es menor que K, se selecciona,

por el contrario, al individuo con peor adaptación.

En la mayoría de casos, es adoptada la rueda de ruleta como método de selección;

con esto se logra una selección proporcional de la evaluación y se puede

seleccionar una nueva población con respecto a la distribución de probabilidad

basada en los valores de evaluación. Para el ejemplo, la rueda de ruleta puede ser

construida de la siguiente forma:

Calcular los valores de evaluación eval(vk) de cada cromosoma vk.

Calcular la evaluación total de la población.

Page 31: FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para el problema de programaciÓn de Órdenes de trabajo de una empresa de artes grÁficas

31

Calcular la probabilidad de selección pk de cada cromosoma vk.

Calcular la probabilidad de selección acumulada qk para cada cromosoma vk.

El proceso de selección inicial lanzando la rueda de ruleta n veces, donde n es

igual al tamaño de la población; cada vez que se lance la ruleta, un cromosoma

simple es seleccionado para una nueva población de la siguiente forma:

Generar un número aleatorio r dentro del rango [0, 1].

Si , entonces se selecciona el cromosoma v1; en caso contrario se

selecciona el kesimo cromosoma tal que

.

La evaluación total de la población es:

La probabilidad de selección pk para cada cromosoma vk(k=1,2,…,10) es la

siguiente:

p1 = 0.111180 p2 = 0.097515 p3 = 0.053839 p4 = 0.165077

p5 = 0.088057 p6 = 0.066806 p7 = 0.100815 p8 = 0.110945

p9 = 0.148211 p10 = 0.057554

Page 32: FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para el problema de programaciÓn de Órdenes de trabajo de una empresa de artes grÁficas

32

La probabilidad de selección acumulada qk para cada cromosoma vk(k=1,2,…,10)

es la siguiente:

q1 = 0.111180 q2 = 0.208695 q3 = 0.262534 q4 = 0.427611

q5 = 0.515668 q6 = 0.582475 q7 = 0.683290 q8 = 0.794234

q9 = 0.942446 q10 = 1.000000

Ahora se lanza diez veces la rueda de ruleta, y con cada lanzamiento se selecciona

un cromosoma simple para la nueva población. Una secuencia aleatoria de diez

números entre el rango [0,1] se muestra a continuación:

0.301431 0.322062 0.766503 0.881893 0.350871

0.583392 0.177618 0.343242 0.032685 0.197577

El primer número aleatorio r1 = 0.301431 es más grande que la probabilidad

acumulada q3 y es más pequeño que q4, lo que significa que el cromosoma v4 es

seleccionado para la nueva población; el segundo número aleatorio r2 = 0.322062

es más grande que q3 y es más pequeño que q4, con lo cual nuevamente el

cromosoma v4 es seleccionado para la nueva población. Una vez realizado el

análisis de los diez números aleatorios la nueva población está conformada de la

siguiente forma:

Page 33: FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para el problema de programaciÓn de Órdenes de trabajo de una empresa de artes grÁficas

33

2.2.1.5 Cruce

El operador de cruce permite realizar una exploración de toda la información

almacenada hasta el momento en la población y combinarla para crear mejores

individuos.

Es una buena idea que, tanto la codificación como la técnica de cruce, se hagan de

manera que las características 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 técnica de mejor adaptación a un problema específico, 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 creación de un

individuo que combine las mejores características de los padres.

Para realizar el cruce entre parejas de cromosomas se utiliza el método de “un

punto de corte” en el cual se selecciona aleatoriamente un punto de corte con

rango [1, tamaño del cromosoma] y se intercambian las partes derechas de los

padres para generar dos cromosomas hijos. Como ejemplo se toman los

cromosomas v1 y v2 de la población inicial, si el punto de corte se estableció en el

gen 17 el proceso de cruce se puede visualizar de la siguiente manera:

Los cromosomas resultantes del intercambio de los genes a la derecha del punto

de corte son:

Punto de corte

Page 34: FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para el problema de programaciÓn de Órdenes de trabajo de una empresa de artes grÁficas

34

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.

Al lanzar una secuencia de diez números aleatorios para analizar la probabilidad de

cruce de cada cromosoma se obtiene los siguientes resultados:

0.625721 0.266823 0.288644 0.295114 0.163274

0.567461 0.085940 0.392865 0.770714 0.548656

Por lo que se identifica que solo los cromosomas v’5 y v’7 son seleccionados para

ser cruzados. Si se lanza un nuevo número aleatorio con rango [1, 33] para elegir

el punto de corte (se obtuvo el número 15) se obtiene la siguiente operación:

Los nuevos hijos resultantes de la operación de cruce son:

2.2.1.6 Mutación

La mutación se considera un operador básico, que proporciona un pequeño

elemento de aleatoriedad en el entorno de los individuos de la población mediante

la alteración de uno o más genes con una probabilidad igual a la tasa de mutación.

Si bien se admite que el operador de cruce es el responsable de efectuar la

búsqueda a lo largo del espacio de posibles soluciones (exploración), también

parece desprenderse de los experimentos efectuados por varios investigadores que

Punto de corte

Page 35: FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para el problema de programaciÓn de Órdenes de trabajo de una empresa de artes grÁficas

35

el operador de mutación realiza una explotación de la población y va ganando en

importancia a medida que la población de individuos va convergiendo. El objetivo

del operador de mutación es producir nuevas soluciones a partir de la modificación

de un cierto número de genes de una solución existente, con la intención de

fomentar la variabilidad dentro de la población. Existen diversas formas de realizar

la mutación, desde la más sencilla, donde cada gen muta aleatoriamente con

independencia del resto de genes, hasta configuraciones más complejas donde se

tienen en cuenta la estructura del problema y la relación 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 representación 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 mutación consistirá en cambiar el valor del gen así:

Si el valor del gen es 0 se cambiará por 1.

Si el valor del gen es 1 se cambiará por 0.

Si se toma el cromosoma v’1 para el ejemplo y se asume que el gen a cambiar es

el 18vo la operación de mutación se puede describir de la siguiente forma:

El nuevo cromosoma v’1 es:

Gen a cambiar

Page 36: FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para el problema de programaciÓn de Órdenes de trabajo de una empresa de artes grÁficas

36

Retomando el ejemplo, se torna un poco arbitrario elegir un mismo gen a mutar en

cada cromosoma, por lo que se utiliza el siguiente método de elección del gen a

mutar:

Se establece como probabilidad de mutación pm = 0.01, lo cual indica que

solo el 1% de los cromosomas tienden a ser mutados.

Se genera una secuencia de números aleatorios rk (k = 1,2,…,330) entre el

rango [0,1] con el fin de generar una probabilidad de mutación

independiente para cada uno de los genes de la población (La población

contiene diez individuos cada uno con 33 genes), la cual arroja los

siguientes resultados:

Posición Bit Cromosoma No. Bit No. rk 105 4 6 0.009857 164 5 32 0.003113 199 7 1 0.000946 329 10 32 0.001282

Los genes a mutar y sus respectivos cromosomas según lo anterior son:

Al realizar la operación de mutación los nuevos cromosomas quedan de la

siguiente forma:

Page 37: FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para el problema de programaciÓn de Órdenes de trabajo de una empresa de artes grÁficas

37

2.2.1.7 Una nueva población

Cada iteración del algoritmo arroja una nueva población en la que se espera

encontrar individuos cada vez mejor adaptados al problema planteado. En este

caso, después de realizar las operaciones descritas anteriormente la nueva

población generada es la siguiente:

Los valores reales correspondientes a cada cromosoma y su respectiva evaluación

es la siguiente:

Hasta este punto se ha completado la primera iteración del algoritmo genético. La

prueba en general corre 1000 iteraciones en la que se obtienen igual número de

generaciones. En la prueba, se obtiene el mejor cromosoma en la 419na generación

que tiene los valores descritos a continuación:

Page 38: FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para el problema de programaciÓn de Órdenes de trabajo de una empresa de artes grÁficas

38

��

Page 39: FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para el problema de programaciÓn de Órdenes de trabajo de una empresa de artes grÁficas

39

33 MMOODDEELLAAMMIIEENNTTOO DDEELL AALLGGOORRIITTMMOO GGEENNEETTIICCOO

3.1 TRABAJOS REALIZADOS

Antes de llevar a cabo el desarrollo del modelamiento propuesto para el AG, es

conveniente presentar tres tipos de problemas que has sido tratados mediante los

algoritmos genéticos y que de alguna forma tienen relación con la programación

de planta de producción.

3.1.1 Programación de tienda abierta.

En [4] es posible observar cómo por medio de la utilización de algoritmos

genéticos sus autores afrontan Open-Shop, que corresponde a un problema de

planificación o elaboración de calendarios, donde todos los trabajos tienen el

mismo número de operaciones, cada operación se realiza en una máquina

específica, pero no existe ninguna relación de precedencia entre las operaciones.

Esta aproximación es un interesante trabajo debido a que hace una

implementación similar a lo que se busca en el presente trabajo, aunque no cubre

uno de los puntos vitales de la programación de una planta de producción como lo

es el manejo de dependencias entre procesos.

3.1.2 Programación de producción

En [5] se trata el problema de programación de producción, haciendo énfasis en

tres factores: dependencias, averías y reparaciones de máquinas.

En este trabajo se hace un hibrido, como lo llaman sus autores, entre algoritmos

genéticos y simulación, utilizando los algoritmos genéticos para optimizar la

Page 40: FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para el problema de programaciÓn de Órdenes de trabajo de una empresa de artes grÁficas

40

programación de la producción y la simulación para minimizar los tiempos de

ejecución de los algoritmos genéticos.

3.1.3 Secuenciación dinámica

En [6] se encuentra un análisis acerca de la implementación de sistemas de

aprendizaje automático para resolver problemas de secuenciación dinámica que es

en esencia la planeación y la programación. En [6] es posible observar que en la

programación no es tenida en cuenta las prioridades que tiene cada trabajo o cada

orden de producción, sin embargo es un trabajo realizado en el campo en el que

se enmarca el proyecto.

3.2 DEFINICIONES PROPIAS DEL ALGORITMO GENÉTICO

Gráficamente, el modelo general del algoritmo genético propuesto se muestra a en

la ilustración 4.

Ilustración 4 - Modelo general del AG propuesto

A continuación se detalla cada componente del algoritmo genético, con el fin de

realizar algunas precisiones necesarias.

Page 41: FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para el problema de programaciÓn de Órdenes de trabajo de una empresa de artes grÁficas

41

3.2.1 Individuos

Para el algoritmo propuesto, como individuo se definió una programación total de

la planta de producción, la cual se compone de un número determinado de

órdenes de producción organizadas de acuerdo a los parámetros considerados en

el numeral 3.3. Cabe recordar que la programación de cada orden de producción

contiene una serie de órdenes de trabajo que son cada una de las labores

ejecutadas para realizar el trabajo solicitado. Un ejemplo de la programación de

una orden de producción se muestra a continuación:

OP CP Cantidad Eficiencia Tiempo de proceso Fecha inicial Fecha final

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

En concordancia con lo explicado acerca de la conformación del individuo en el

numeral anterior, cada cromosoma del individuo es cada una de las órdenes de

trabajo que componen la OP. Cabe recordar que la información acerca de la

naturaleza de la orden de trabajo está relacionada en el numeral 1.1.4.

3.2.3 Alelos

En el modelamiento del problema se ha identificado como los alelos de cada

cromosoma cada uno de los elementos de la orden de trabajo, de acuerdo a la

información que está relacionada en el numeral 1.1.4.1.

Page 42: FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para el problema de programaciÓn de Órdenes de trabajo de una empresa de artes grÁficas

42

3.3 GENERACIÓN DE LA POBLACIÓN INICIAL

Como punto de partida para el algoritmo, se establece una población de diez

individuos; programaciones completas y diferentes de la planta de producción. La

diferencia entre las programaciones de planta de producción radica en que cada

una se realiza de acuerdo a los siguientes parámetros de ordenamiento

previamente establecidos:

Número de orden de producción ascendente y número de orden de trabajo

ascendente.

Número de orden de producción ascendente y número de orden de trabajo

descendente.

Número de centro de producción ascendente y número de orden de trabajo

ascendente.

Número de centro de producción ascendente y número de orden de trabajo

descendente.

Número de orden de producción ascendente y cantidad de la orden de

trabajo ascendente.

Número de orden de producción ascendente y cantidad de la orden de

trabajo descendente.

Cantidad de la orden de trabajo ascendente y número de la orden de

trabajo ascendente.

Cantidad de la orden de trabajo descendente y número de la orden de

trabajo ascendente.

Prioridad de la orden de trabajo ascendente.

Prioridad de la orden de trabajo descendente.

Así mismo, cada programación de planta de producción involucra la totalidad de

órdenes de producción con una serie de órdenes de trabajo determinadas.

Page 43: FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para el problema de programaciÓn de Órdenes de trabajo de una empresa de artes grÁficas

43

3.4 PROCESO DE SELECCIÓN

Dentro de los procesos de selección disponibles se eligió el método de sorteo por

rueda de ruleta. Este método se aplica a cada uno de los individuos con el fin de

obtener aquellos que serán cruzados y/o mutados y está basado en la tasa

proporcional de evaluación asignada a cada uno de ellos. Los pasos que se realizan

para establecer la selección son los siguientes:

Se establece el valor de cada individuo según la función de evaluación

establecida para el algoritmo.

Se halla la evaluación total de la población, mediante la sumatoria de las

evaluaciones de cada uno de los individuos que pertenecen a ella.

Se calcula el porcentaje de probabilidad de cada uno de los individuos

respecto al total de la población (Se divide la evaluación del individuo entre

la evaluación de la población).

Se ordenan ascendentemente los individuos tomando como criterio la

probabilidad individual obtenida en el paso anterior y se calcula el

porcentaje de probabilidad acumulado correspondiente a cada individuo.

Se procede a generar un número aleatorio r con rango entre [0, 1].

Finalmente el individuo se obtiene de comparar el número generado en el

paso anterior con la probabilidad acumulada de cada uno de ellos.

3.5 PROCESO DE CRUCE

El operador de cruce tiene como objeto rescatar las mejores características de los

individuos con el fin utilizarlas como partes en la generación de nuevos individuos.

Page 44: FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para el problema de programaciÓn de Órdenes de trabajo de una empresa de artes grÁficas

44

Con el fin de obtener variedad en las poblaciones que se van generando, se

plantean las siguientes opciones como posibles operadores de cruce:

Permutar toda la programación de una orden de producción entre dos

individuos. La orden de producción a cambiar se selecciona aleatoriamente

en un rango de [1, Número total de OP]. La decisión de aleatoriedad en la

selección de la OP tiene como fundamento dos factores; el primero tiene

como objetivo cumplir con una de las premisas que tiene la operación de

cruce que es generar variedad en los nuevos individuos y, el segundo, se

establece debido a que no se encontró un criterio de peso que motivara a

considerarlo como un factor de diversidad en la población.

Cambiar la fecha final del último proceso ejecutado en la misma orden de

producción entre dos individuos, donde la OP a utilizar para este proceso se

selecciona de la misma manera que el ítem anterior. Con este

procedimiento se puede obtener que sea posible liberar tiempo de trabajo

en un CP para que otras órdenes de trabajo puedan ser ejecutadas en él.

Inicialmente se otorga una mayor importancia al primer operador de cruce

expuesto, debido a que se puede lograr una mayor diversidad en la generación de

las nuevas poblaciones y a que en la actividad de permutación es posible realizar el

recálculo de las fechas de finalización de las órdenes de trabajo.

Es conveniente indicar que el proceso de selección de los individuos a cruzar, se

establece con los parámetros establecidos en el numeral anterior.

Page 45: FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para el problema de programaciÓn de Órdenes de trabajo de una empresa de artes grÁficas

45

3.6 PROCESO DE MUTACIÓN

Mediante el operador de mutación se intenta realizar un cambio pequeño en el

individuo que genere a su vez una pequeña modificación en su información, pero

que sea significativo en cuanto al reprocesamiento de las órdenes de trabajo y de

la función de evaluación. Como procedimientos candidatos a ser un operador de

mutación se tienen los siguientes:

Cambiar el centro de producción en el que se realiza una orden de

producción, por otro que se encuentre disponible. Esto con el fin de realizar

el mismo trabajo en el nuevo centro de producción, pero contar con que la

fecha de disponibilidad del nuevo CP es diferente al anterior y así se puede

tener cambios en el individuo.

Dividir la cantidad de las órdenes de trabajo que más tiempo demanden de

un centro de producción y realizarlas, si es posible, en dos o más CP que

estén disponibles. Con este procedimiento se puede obtener una mejora en

los tiempos generales de terminación de la orden de producción, debido a

que en la medida en que estén disponibles otros centros de producción, un

trabajo o proceso determinado puede realizarse simultáneamente en ellos.

Retrasar las fechas de inicio de las órdenes de trabajo que más tiempo

demanden de un centro de producción. Esto implica cambiar el orden de

elaboración de los trabajos en un centro de producción dando prioridad a

aquellas que más tiempo tarden en realizarse.

En la implementación del AG, se va a considerar la segunda opción de mutación,

debido a que permite realizar más cambios en el procesamiento del individuo.

Page 46: FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para el problema de programaciÓn de Órdenes de trabajo de una empresa de artes grÁficas

46

3.7 DEFINICIÓN DE LA FUNCIÓN DE EVALUACIÓN (FITNESS)

La función de evaluación es aquella que permite medir a cada uno de los

individuos generados en una determinada población. Esta función tiene una serie

de parámetros o variables que permiten llevar a cabo la mencionada evaluación

del individuo. Las variables a tener en cuenta en esta función son las siguientes:

3.7.1 Cumplimiento (C )

Una orden de producción se cumple cuando se termina la ejecución de su último

proceso antes de la fecha de entrega. El cumplimiento es el porcentaje de órdenes

cuyo último proceso termina antes de la fecha de entrega.

3.7.2 Colisiones (T )

Una colisión 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 producción.

3.7.3 Ocupación de centros de producción (P )

La ocupación de cada centro de producción se mide de acuerdo a las horas que

tiene disponible para realizar cualquier proceso y las horas que tiene programadas

o que se programan en cada individuo. De acuerdo a lo anterior, la ocupación de

centros de producción corresponde al promedio de ocupación que tienen todos los

centros de producción que se encuentran programados en el individuo.

Page 47: FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para el problema de programaciÓn de Órdenes de trabajo de una empresa de artes grÁficas

47

3.8 FUNCIÓN DE EVALUACIÓN (FITNESS)

A cada una de las variables anteriormente citadas se le asigna un grado de

importancia (W ) dentro de la función de evaluación. Este grado se ve

representado en un porcentaje para cada una de las variables e indica que tan

importante es la variable en la evaluación de los individuos.

Teniendo en cuenta los anteriores conceptos la función que utiliza el algoritmo

genético propuesto para evaluar a cada uno de sus individuos es la siguiente:

����

Page 48: FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para el problema de programaciÓn de Órdenes de trabajo de una empresa de artes grÁficas

48

44 EEVVAALLUUAACCIIÓÓNN DDEE PPRROOTTOOTTIIPPOOSS

4.1 CONDICIONES PARA LA GENERACIÓN DE PROTOTIPOS

4.1.1 Datos de trabajo

Cada prototipo que se genere tendrá como datos de trabajo los siguientes:

Ítem  Cantidad Centros de producción  93 Procesos  25 Ordenes de producción  20 Ordenes de trabajo  276 

Los centros de producción y los procesos se tomaron de la información que en

general se maneja en una empresa de artes gráficas, las ordenes de producción se

generaron con fechas de entrega aleatorias, con cantidades de procesos aleatorios

(de 1 a 25 ya que es el total de procesos que se ejecutan).

De acuerdo con el flujo de trabajo de la industria gráfica, a los procesos necesarios

se les creó el proceso que lo precede para hacer la programación de la planta.

De igual forma se crearon los procesos que se ejecutan en cada centro de

producción.

4.1.2 Proceso de selección

Para cada individuo se calcula el porcentaje de su evaluación con respecto

al total de la población.

Se organiza dicho porcentaje ascendentemente.

Se genera un número aleatorio n entre 0 y 1 y se elige el individuo cuyo

porcentaje acumulado de evaluación es inmediatamente menor que n.

Page 49: FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para el problema de programaciÓn de Órdenes de trabajo de una empresa de artes grÁficas

49

4.1.3 Probabilidades de cruce y mutación

Probabilidad de Cruce  75%Probabilidad de Mutación  10%Método de selección  Ruleta 

4.2 PROTOTIPO 01

4.2.1 Condiciones del algoritmo.

Se destacan las siguientes condiciones para la generación del prototipo.

4.2.1.1 Función de cruce.

La función de cruce intercambia entre los dos individuos seleccionados todas

las órdenes de trabajo de una orden de producción.

La orden de producción que se cruza es elegida de manera aleatoria entre la

cantidad total de ordenes de producción en el individuo.

4.2.1.2 Función de mutación.

La función de mutación consiste en dividir en dos partes iguales la cantidad

a procesar de una orden de trabajo para que sea ejecutada cada una

simultáneamente en dos centros de producción diferentes.

La función de mutación se ejecuta a la orden de trabajo que tiene mayor

duración en horas.

Page 50: FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para el problema de programaciÓn de Órdenes de trabajo de una empresa de artes grÁficas

50

4.2.2 Resultados del prototipo 01

Ilustración 5 – Vista previa de la ejecución del prototipo 01

En este prototipo, los individuos están recibiendo la misma calificación, es decir, el

resultado de la función de evaluación es igual para todos.

Se comprobó que en cada generación la mayoría de individuos son iguales.

4.2.3 Análisis de la situación en el prototipo 01.

Los datos de prueba se deben plantear de forma diferente o en mayor

cantidad ya que en este momento sólo hay 20 órdenes de producción y sus

fechas de entrega a menos de un mes, de esta forma siempre se va a tener

el mismo resultado sobre todo en la variable de mayor peso que es el

cumplimiento.

Sólo se está dividiendo la cantidad de una orden de trabajo en dos partes

(tomando como criterio la orden de trabajo que tiene el mayor tiempo de

Page 51: FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para el problema de programaciÓn de Órdenes de trabajo de una empresa de artes grÁficas

51

ejecución) pero no se está haciendo la reprogramación de la ejecución de

los procesos de la orden dividida para que se permita disminuir la fecha de

entrega de la orden de producción.

4.2.4 Acciones para el siguiente prototipo.

En pro de mejorar los resultados se tomarán las siguientes:

Cuando se ejecute la función de mutación en el individuo se deberá hacer

una reprogramación de la misma para que se corran los procesos y se

pueda cumplir o terminar la orden de producción en menor tiempo.

4.2.5 Consideraciones para tener en cuenta en el próximo prototipo.

En este momento el algoritmo se detiene cuando se completa un número

determinado de generaciones, así que se pueden plantear otras opciones:

o Un buen criterio para detener el algoritmo es cuando el

cumplimiento se llegue al 100%.

o De la misma forma, se puede terminar el algoritmo cuando todos los

centros de producción estén ocupados al 100%

La evaluación de ocupación de centro de producción, si uno de éstos

presenta ocupación de más del 100% se está dejando ese valor para medir

el promedio del individuo; se plantea que si la ocupación del centro de

producción sobrepasa el 100% solo se debe tomar hasta el 100% para no

dañar el promedio.

Se plantea que para la función de mutación se debería tomar los centros de

mayor ocupación (que superen el 100%) y ejecutar alguna o las dos

acciones siguientes:

o Redistribuir el trabajo, es decir, hacer los mismo que se está

haciendo en este momento.

o Aumentar la disponibilidad del centro de producción, es decir, las

horas disponibles por día para el centro.

Page 52: FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para el problema de programaciÓn de Órdenes de trabajo de una empresa de artes grÁficas

52

4.3 PROTOTIPO 02

4.3.1 Condiciones del algoritmo.

Se realizaron las los siguientes cambios en el algoritmo para la generación del

prototipo.

4.3.1.1 Función de mutación.

Para la función de mutación se aplicaron dos acciones:

Cuando se haga la división de la cantidad en la orden de trabajo se hará

una reprogramación corriendo las órdenes de trabajo siguientes.

4.3.2 Resultados del prototipo 02

Ilustración 6 – Vista previa de la ejecución del prototipo 02

Page 53: FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para el problema de programaciÓn de Órdenes de trabajo de una empresa de artes grÁficas

53

4.3.3 Análisis de la situación en el prototipo 02.

El prototipo ahora está cambiando de generación en generación, el resultado de la

función de evaluación está tomando valores diversos dentro de cada una y así

mismo en el mejor individuo que se obtiene en cada nueva generación.

Ahora el inconveniente que se está presentando es que el algoritmo no tiende a

converger al 100%, de lo contrario, aunque se presentan picos altos se nota una

tendencia hacia el 40 o 30%, en algunas ocasiones cuando se corre el algoritmo

varias veces empieza a mejorar los resultados pero no es en la mayoría, lo que

significa que hasta ahora el algoritmo está muy inestable y se debe corregir esta

situación, como posibles causas del inconveniente se han identificado las

siguientes:

Cuando se ejecuta la función de mutación se está haciendo reprogramación,

pero este proceso se está ejecutando sobre el centro de producción, es

decir, se corren todos los trabajos programados en el centro de producción

hacia atrás, lo que ciertamente reduce el tiempo de ejecución de una orden

de producción, pero en la reprogramación no se está verificando si el

proceso que se va a correr hacia atrás cumple con la precedencia necesaria

del proceso anterior.

Es posible que el factor que está haciendo la diferencia entre los individuos

sea la evaluación de colisiones ya que con el cruce se están generando más

colisiones.

Al realizar la función de cruce no se está haciendo reprogramación por lo

que aumentan las colisiones.

4.3.4 Acciones para el siguiente prototipo.

Se considera que ejecutar las siguientes acciones en el algoritmo puede permitir

que las generaciones tiendan a mejorar en cada iteración.

Page 54: FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para el problema de programaciÓn de Órdenes de trabajo de una empresa de artes grÁficas

54

Cuando se corra la función de cruce se debe hacer una reprogramación de

las órdenes de trabajo para que no se generen colisiones.

La función de mutación se va a cambiar para que la orden de trabajo a la

que se divida la cantidad no sea la que más tiempo se demore, si no que se

va a buscar una de las ordenes de producción que no terminan a tiempo y

de esta se va a escoger la orden de trabajo más demorada.

4.4 PROTOTIPO 03

4.4.1 Condiciones del algoritmo.

Para la generación del prototipo 03 se realizaron las siguientes acciones:

4.4.1.1 Función de mutación.

La función de mutación se modificó para que en lugar de buscar la orden de

trabajo que tenía mayor tiempo de duración se buscaran primero las

órdenes de producción que no se cumplían y luego si tomar la orden de

trabajo de mayor duración.

Se identificó que la reprogramación de las órdenes de trabajo no se debe

hacer por el centro de producción sino por la orden de producción, de tal

forma que sean las órdenes de trabajo las que se corran hacia atrás para

poder cumplir más rápido la orden de producción.

4.4.2 Resultados del prototipo 03.

En este prototipo se pudo identificar luego de correr el algoritmo con 1000

generaciones que el cumplimiento llega a un 100% y debido a que esta variable es

a la que en general se le asigna mayor peso puesto que es el objetivo principal de

la programación se constituye este como un resultado satisfactorio para el trabajo.

Page 55: FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para el problema de programaciÓn de Órdenes de trabajo de una empresa de artes grÁficas

55

4.4.3 Análisis de la situación en el prototipo 03.

A pesar de estar llegando al 100% en el cumplimiento, el comportamiento del

mejor individuo sigue sin subir del 90% y en general, el mejor individuo de cada

generación tiende a disminuir en el resultado de su función de evaluación,

adicionalmente en muy pocas ocasiones el comportamiento de cada generación

con respecto a la anterior es estable.

Se identificaron posibles causas para obtener éstos resultados:

En la función de mutación se está seleccionando de las ordenes de

producción no cumplidas la orden de trabajo que más tiempo consume,

pero se identificó que en varias oportunidades la fecha de inicio de esta

orden de trabajo es mayor a la fecha de entrega de la orden de producción,

por lo que sin importar si se divide el trabajo en varios centros de

producción tarda mucho en que la orden se cumpla.

Una vez se llega al 100% de cumplimiento, la función de mutación sigue

dividiendo las órdenes de trabajo, lo cual ya no genera valor al algoritmo

por cuanto lo que se logra es terminar la orden mucho más temprano sin

lograr deshacer las colisiones.

4.4.4 Acciones para el siguiente prototipo.

Las siguientes acciones se deberán ejecutar para el próximo prototipo, y están

enfocadas principalmente a la convergencia del algoritmo, a estabilizar el resultado

de la función de evaluación del mejor individuo con cada nueva generación y a

facilitar el análisis de los datos de rendimiento y mejora entre generaciones.

La función de mutación dividirá las órdenes de trabajo cuya fecha inicial sea

menor a la fecha de entrega de la orden de trabajo.

En la función de mutación, cuando el cumplimiento del individuo esté en el

100%, se deberá disolver una colisión haciendo uso de otro centro de

Page 56: FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para el problema de programaciÓn de Órdenes de trabajo de una empresa de artes grÁficas

56

producción que en el que se pueda ejecutar el proceso, si no se puede

ejecutar en otro centro de producción, entonces se hará reprogramación del

centro de producción.

Se implementará una tabla de resultados en la que se mostrarán los

mejores individuos de cada generación, con el fin de correr varias veces el

algoritmo y así hacer análisis más fácilmente.

4.5 PROTOTIPO 04

4.5.1 Condiciones del algoritmo.

Para ejecutar este prototipo se realizaron las acciones que se describen a

continuación.

4.5.1.1 Función de mutación.

Cuando una orden de producción no se encuentre en el 100% de

cumplimiento y el proceso que consume más tiempo empieza después de la

fecha de entrega de la orden de producción, esta debe desplazarse por los

procesos anteriores hasta que pueda dividir una orden de trabajo cuyo inicio

sea menor que la fecha de entrega de la orden de producción.

Cuando un individuo llegue al 100% de cumplimiento, no se debe hacer

división de cantidad de ninguna orden de trabajo, por el contrario se deben

buscar las órdenes de trabajo que se encuentra en colisión y hacer la

transferencia de una de ellas a otro centro de producción donde se pueda

ejecutar.

4.5.1.2 Presentación de datos

Se implementó una tabla de datos en la cual se ven reflejados los mejores

individuos de cada generación. El cambio anterior se realizó con el objetivo de

Page 57: FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para el problema de programaciÓn de Órdenes de trabajo de una empresa de artes grÁficas

57

hacer análisis rápido de cada ejecución del algoritmo, en esta tabla se puede ver

de cada mejor individuo la generación en que se creó, el resultado de la función de

evaluación y cada una de las evaluaciones por separado de las variables que

constituyen la función de evaluación (cumplimiento, ocupación de máquina y

colisiones).

4.5.2 Resultados del prototipo 04.

Ilustración 7 - Vista previa de la ejecución del prototipo 04

Page 58: FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para el problema de programaciÓn de Órdenes de trabajo de una empresa de artes grÁficas

58

Ilustración 8 - Vista previa de la tabla de resultados obtenida en la ejecución del prototipo 04

4.5.3 Análisis de la situación en el prototipo 04.

El cumplimiento está llegando al 100% desde las primeras generaciones, en

general, esto sucede desde la primera generación, la variable que le

precede en peso o importancia es la de colisiones, pero esta no mejora en

cada nueva generación y si lo hace, la mejora resulta muy poco

significativa, lo que redunda en que el mejor individuo de toda la corrida del

algoritmo se hallé muy temprano entre las 10 primeras generaciones.

La variable de ocupación de máquina tampoco sufre una mejora o cambios

significativos, en muchas ocasiones esta variable presenta el mismo

comportamiento durante varias generaciones.

Page 59: FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para el problema de programaciÓn de Órdenes de trabajo de una empresa de artes grÁficas

59

4.5.4 Acciones para el siguiente prototipo.

En busca de un mejor análisis y de solucionar los inconvenientes que se

presentaron en el prototipo 04 se deben tomar las siguientes acciones para el

siguiente prototipo.

Se debe generar una línea de gráfica para cada una de las variables que

componen la función de evaluación.

Se debe generar una línea de gráfica para el promedio de la función de

evaluación en cada generación, con esto se podrá comprobar el

comportamiento de generación en generación.

Cuando se disuelve una colisión se debe hacer reprogramación tanto de la

orden de producción como del centro de producción.

4.6 PROTOTIPO 05

4.6.1 Condiciones del algoritmo.

Se realizaron los siguientes cambios para mejorar los resultados del algoritmo:

4.6.1.1 Función de cruce

Se modifico la función de cruce para que en lugar de intercambiar la

programación de una orden de producción completa, se intercambie la

programación completa de todo un centro de producción.

4.6.1.2 Función de mutación.

Cuando se disuelve una colisión se hace reprogramación tanto de la orden

de producción como de los centros de producción involucrados en la

disolución de la colisión.

Page 60: FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para el problema de programaciÓn de Órdenes de trabajo de una empresa de artes grÁficas

60

4.6.2 Resultados del prototipo 05.

Ilustración 9 - Vista previa de la ejecución del prototipo 05

4.6.3 Análisis de la situación en el prototipo 05.

En este prototipo el algoritmo se está comportando como se esperaba, el

promedio de evaluación de cada generación es irregular en las primeras

generaciones pero luego empieza a estabilizarse e igualmente empieza a

tender a 100%.

De igual forma es posible observar que las variables de cumplimiento y

colisiones mejoran tras cada nueva generación, a tal punto que una vez

obtenido el 100% de cumplimiento de las órdenes de trabajo la tasa de

colisiones va mejorando en cada iteración.

Page 61: FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para el problema de programaciÓn de Órdenes de trabajo de una empresa de artes grÁficas

61

4.6.4 Acciones para el siguiente prototipo.

Se puede suprimir la variable de ocupación de máquina ya que al procesar

las mismas órdenes de trabajo y las mismas cantidades esta no debe

cambiar y por eso su valor es constante.

4.7 COMPARACIÓN DEL PROTOTIPO 05

Uno de los objetivos planteados para este proyecto establecía la realización de una

comparación del prototipo con alguna solución utilizada actualmente en la industria

de artes gráficas.

Para llevar a cabo este aspecto, solo se pudo tener acceso como referencia a una

aplicación que realiza la programación de una planta de producción mediante el

uso de procesos de asignación de tiempos secuenciales.

En principio se estimó realizar dicha comparación tomando como entradas

comunes los datos utilizados por dicha aplicación para evaluar el rendimiento

comparativo de las dos soluciones. Sin embargo, el acceso a los datos utilizados

fue bastante complejo debido a que la estructura de datos utilizada por este

software presenta casos de redundancia de datos y no se dispone de

documentación para poder interpretar los procesos allí implementados. A pesar de

los inconvenientes presentados, se intentó extraer la información en una

estructura compatible con el prototipo realizado, pero esta labor no pudo realizarse

exitosamente.

La única comparación planteada entonces consistió en medir el tiempo necesario

para que cada aplicación proporcionara una solución dado un número similar de

órdenes de producción. Se pudo observar que los tiempos de ejecución de la

Page 62: FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para el problema de programaciÓn de Órdenes de trabajo de una empresa de artes grÁficas

62

aplicación son menores a los obtenidos con el prototipo y en todos los casos las

diferencias presentadas en esta evaluación eran tan grandes que se optó por no

realizar un análisis preciso de las mismas.

Page 63: FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para el problema de programaciÓn de Órdenes de trabajo de una empresa de artes grÁficas

63

55 EEVVAALLUUAACCIIÓÓNN YY CCOOMMPPAARRAACCIIÓÓNN DDEE RREESSUULLTTAADDOOSS22

Para realizar la evaluación se ejecutó 10 veces el prototipo 05 con los siguientes

parámetros:

Tabla 1 - Entradas para ejecutar la evaluación.

Variable  Valor Peso de Cumplimiento  55% Peso de Colisiones  40% Peso de Ocupación  5% Número de Iteraciones a ejecutar  1000 

La variable de cumplimiento tiene un mayor peso para la empresa de artes gráficas

debido a que para ella es lo más importante, lo que se debe asegurar en primer

lugar cuando se programa es que los clientes van a recibir su trabajo en las fechas

pactadas.

En segundo lugar se encuentra la variable de colisiones ya que si dos trabajos

llegan al mismo tiempo a un centro de producción se generan sobrecostos al tener

que enviar uno de los trabajos a un satélite o tercero.

El peso de la ocupación es pequeño debido a que siempre que se encuentren los

mismos trabajo por elaborar la ocupación será igualmente la misma sólo que

distribuida en diferentes centros de producción.

Se realizó la recopilación de datos de cada una de las ejecuciones para graficar los

resultados y facilitar el análisis.

2 Los datos que se utilizan para realizar la comparación fueron suministrados informalmente por el

programador de la planta de producción de una empresa de artes gráficas para la cual, Alexander

Gómez trabajó durante más de 4 años.

Page 64: FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para el problema de programaciÓn de Órdenes de trabajo de una empresa de artes grÁficas

64

De cada una de las ejecuciones se tomaron los siguientes datos:

El tiempo en minutos que se tomó para terminar las iteraciones.

El resultado de evaluación del mejor individuo.

La generación en que se obtuvo el mejor individuo.

El promedio de evaluación de los mejores individuos.

La evaluación de cumplimiento obtenida en el mejor individuo.

La evaluación de colisiones obtenida en el mejor individuo.

Con los datos mencionados anteriormente se evaluó la conveniencia de un

algoritmo genético para resolver el problema propuesto, a continuación se

presenta la recopilación de resultados:

Tabla 2 - Recopilación de datos de evaluación.

Número De 

Ejecución 

Tiempo (Minutos) 

Mejor Individuo 

Generación MI 

Promedio Evaluación Cumplimiento  Colisiones

1  46.45  0.9963526 458 0.9934957 1.0000000  0.99090002  45.87  0.9937093 969 0.9796103 1.0000000  0.98430003  47.03  0.9971631 951 0.9860408 1.0000000  0.99290004  48.67  0.9937448 983 0.9820988 1.0000000  0.98440005  45.68  0.8922163 996 0.8772974 0.9000000  0.97520006  42.30  0.9300478 997 0.9073648 0.9000000  0.97510007  56.36  0.9272276 994 0.9100486 0.9000000  0.96810008  47.58  0.9300137 994 0.9103084 0.9000000  0.97500009  51.87  0.9178273 992 0.9089283 1.0000000  0.9872620

10  49.63  0.9698272 901 0.9477360 1.0000000  0.9683730

Page 65: FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para el problema de programaciÓn de Órdenes de trabajo de una empresa de artes grÁficas

65

5.1 TIEMPO DE EJECUCIÓN

Gráfica 1 - Evaluación del tiempo de ejecución.

Promedio 48.14 Tiempo Menor 42.30 Tiempo Máximo 56.36 Desviación estándar 3.85

5.1.1 Comparación en tiempo de ejecución.

En general, cuando el programador de la planta ejecuta la programación con la

solución analítica que existe en el momento, en promedio, este termina su

ejecución en 8 minutos.

Adicionalmente el programador debe revisar la programación generada y asignar

trabajos a centros de producción que no tengan ocupación, reasignar las

prioridades que se requieran, dividir los trabajos que se demoran mucho tiempo en

un centro de producción y revisar que las precedencias de los procesos se cumplan

para que no hayan pérdidas de tiempo o reprogramaciones en un centro de

producción debido a que no se encuentre listo el trabajo anterior. Realizando esta

Page 66: FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para el problema de programaciÓn de Órdenes de trabajo de una empresa de artes grÁficas

66

labor el programador se toma alrededor de 40 minutos y durante el día debe

repetirla por lo menos una vez, lo que en total suma 96 minutos.

Dado lo anterior, se observa que el tiempo de programación se redujo en

aproximadamente un 50% ya que aunque se tome más tiempo para ejecutar el

algoritmo no se deberán realizar las tareas que actualmente se realizan.

5.2 MEJOR INDIVIDUO

Gráfica 2 - Evaluación del mejor individuo.

Promedio 0.95Evaluación Menor 0.89Evaluación Máxima 1.00Desviación estándar 0.04

5.2.1 Comparación del mejor individuo.

El programador generalmente hace la programación para máximo una o dos

semanas de trabajo, de tal modo que la evaluación del mejor individuo no se

puede hacer de forma exacta, pero se estima que este llega al 40% como máximo

Page 67: FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para el problema de programaciÓn de Órdenes de trabajo de una empresa de artes grÁficas

67

de tal forma que resultó mejor la evaluación del mejor individuo ejecutando el

algoritmo genético propuesto.

5.3 PROMEDIO DE EVALUACIÓN

Gráfica 3 - Promedio de evaluación.

Promedio 0.94Evaluación mínima 0.88Evaluación máxima 0.99Desviación estándar 0.04

El promedio de evaluación en cada generación muestra que este corresponde a la

evaluación del mejor individuo, lo que refuerza la evaluación de comparación

realizada en el ítem anterior.

Page 68: FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para el problema de programaciÓn de Órdenes de trabajo de una empresa de artes grÁficas

68

5.4 GENERACIÓN MEJOR INDIVIDUO

Gráfica 4 - Generación del mejor individuo.

Promedio 923.50Generación mínima 458.00Generación máxima 997.00Desviación estándar 166.28

La desviación estándar de la gráfica 4 muestra que no es estable el

comportamiento de esta variable, aunque se genera de esta forma por la primera

ejecución donde el mejor individuo se generó muy temprano con respecto al

promedio de las demás.

Esta variable no es comparable con la solución analítica actual ya que en esta

solución no se hacen iteraciones.

Page 69: FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para el problema de programaciÓn de Órdenes de trabajo de una empresa de artes grÁficas

69

5.5 CUMPLIMIENTO

Gráfica 5 – Evaluación de cumplimiento

Promedio 0.96 Menor cumplimiento 0.90 Mejor cumplimiento 1.00 Desviación estándar 0.05

El cumplimiento muestra un comportamiento óptimo ya que en la mayoría de las

ejecuciones se llega al 100% lo que hace confiable el algoritmo propuesto.

5.5.1 Comparación del cumplimiento

Debido a que el programador no programa la totalidad de las órdenes de

producción cuando la solución analítica termina su ejecución y esta programa en

secuencia lo que no permite llegar al 100% de cumplimiento el algoritmo

propuesto muestra un mejor desempeño en esta variable ya que el promedio de

cumplimiento supera el 95%.

Page 70: FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para el problema de programaciÓn de Órdenes de trabajo de una empresa de artes grÁficas

70

5.6 COLISIONES

Gráfica 6 - Evaluación de colisiones.

Promedio 0.98Menor cumplimiento 0.97Mejor cumplimiento 0.99Desviación estándar 0.01

Que las colisiones en promedio obtengan una calificación del 98% significa que el

2% de las órdenes de trabajo programadas por el algoritmo propuesto se

encuentran en el mismo centro de producción al mismo tiempo, lo que es un

excelente resultado.

5.6.1 Evaluación de las colisiones.

El programador de la planta no genera colisiones ya que hace la programación día

a día lo que permite que no se generen, por lo tanto en esta variable el algoritmo

propuesto presenta un resultado que debe ser mejorado.

Page 71: FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para el problema de programaciÓn de Órdenes de trabajo de una empresa de artes grÁficas

71

66 CCOONNCCLLUUSSIIOONNEESS

Los algoritmos genéticos son en definitiva una alternativa factible para

abordar el problema de programación de planta de producción, ya que los

resultados obtenidos muestran una tendencia a mejorar con cada nueva

generación.

La adaptación del problema al modelo de algoritmos genéticos y la

abstracción de población, individuo, cromosoma y alelo fue acertada dado

que en ninguna etapa del proceso fue necesario hacer un nuevo

planteamiento del modelo.

A pesar de realizar algunos cambios en las funciones de cruce y mutación a

través del desarrollo del modelo, fue posible aplicar los conceptos esenciales

de estos operadores al problema planteado de acuerdo a la representación

planteada.

Se vivió la experiencia de replantear, aplicar cambios y hacer análisis de

resultados y comportamientos en todos los elementos del AG tal y como lo

plantea el proceso evolutivo, lo que resulta satisfactorio para el trabajo.

A pesar de no tener como objetivo explícito del proyecto el proceso de

desarrollo de los prototipos, se evidenció que fue de vital importancia para

aclarar y corregir el planteamiento del modelo.

En los resultados obtenidos es posible observar cómo en la mayoría de las

ejecuciones, el algoritmo alcanza el 100% de cumplimiento y un promedio

del 98% de colisiones. El anterior comportamiento indica que en la mayoría

de casos es posible encontrar un individuo con mejor evaluación en cada

generación.

De igual forma, en los resultados se visualiza que la obtención de los

mejores individuos de cada ejecución se encuentra en las últimas

Page 72: FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para el problema de programaciÓn de Órdenes de trabajo de una empresa de artes grÁficas

72

iteraciones del algoritmo, por lo que es bastante probable que, al ejecutar el

algoritmo con un número mayor de poblaciones, se obtenga un individuo

con mejor calificación que los encontrados.

Los tiempos de ejecución del algoritmo fueron aceptables dentro de los

límites establecidos para el ejercicio práctico por los autores. Sin embargo

para llevar el algoritmo a un ambiente de producción, es necesario aplicar

otras técnicas de programación que permitan mejorar el rendimiento del

mismo.

Es viable enmarcar el algoritmo genético planteado en una solución vertical

de control y gestión de producción, que permita unir toda la parte

transaccional del sistema con la programación de la planta de producción.

La descripción del funcionamiento de los AG mediante la exposición de un

ejemplo práctico en paralelo con el detalle teórico de cada uno de los

elementos, permite tener una herramienta pedagógica que sirva como guía

a los futuros estudiantes interesados en el tema.

Page 73: FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para el problema de programaciÓn de Órdenes de trabajo de una empresa de artes grÁficas

73

77 SSUUGGEERREENNCCIIAASS

Resultaría interesante incluir más variables al modelo, tales como:

o Cambios en las prioridades de las órdenes de trabajo fijadas por el

programador de planta.

o Programación en secuencia de trabajos con características similares.

o Considerar pausas en los centros de producción:

Tiempos de alistamiento de máquina cada vez que se cambia

un trabajo.

Tiempo de mantenimiento de los centros de producción.

Para nuevos prototipos generados a partir de los resultados del presente

trabajo de grado, se sugiere hacer una exploración de otras técnicas de

optimización, como posible planteamiento para abordar el problema tratado.

Hacer una variación de la función de mutación para que sugiera o agregue

turnos adicionales (aumentar la disponibilidad) en los centros de producción

que se encuentren 100% ocupados.

Hacer una verificación de los tiempos en que un centro de producción está

sin trabajo para desplazar órdenes de trabajo a ese tiempo no utilizado.

Implementar hilos de procesamiento y/o procesamiento distribuido para

mejorar los tiempos de ejecución del prototipo.

Page 74: FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL … · 1 formulaciÓn de un algoritmo genÉtico para el problema de programaciÓn de Órdenes de trabajo de una empresa de artes grÁficas

74

88 RREEFFEERREENNCCIIAASS

[1] GOLDBERG. David. Genetic Algorithms in Search, Optimization and Machine

Learning. USA: Addison Wesley Longman Inc, 1989. 412 p. ISBN 0-201-15767-5.

[2] GEN. Mitsuo, CHENG. Runwei. Genetic Algorithms and Engineering Design.

New York. Wiley, 2000. 411 p. ISBN 0-471-12741-8.

[3] GEN. Mitsuo, CHENG. Runwei. Genetic Algorithms and Engineering

Optimization. New York. Wiley, 2000. 495 p. ISBN 0-471-31531-1.

[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

[6] PRIORE. Paolo, DE LA FUENTE. David, PUENTE. Javier, GÓMEZ. Alberto.

Secuenciación Dinámica De Sistemas De Fabricación Flexible Mediante Aprendizaje

Automático. Universidad de Rioja, 2001. 549 p. ISSN 0210-8054.

[7] DARWIN. Charles. El origen de las especies. LongSeller, 2005. 240 p. ISBN

9875503487.