• No se han encontrado resultados

Algoritmo genético para la programación de una línea de producción bietápica mixta y comparación con una aproximación tipo Flow Shop híbrido programado con base a TOC - Caso de estudio: Línea de producción metalmecánica

N/A
N/A
Protected

Academic year: 2020

Share "Algoritmo genético para la programación de una línea de producción bietápica mixta y comparación con una aproximación tipo Flow Shop híbrido programado con base a TOC - Caso de estudio: Línea de producción metalmecánica"

Copied!
50
0
0

Texto completo

(1)

Algoritmo  

Genético

 

para   la   programación  

de   una   línea   de   producción

 

bietá

pica

 

mixta

 

y  

comparación  

con  

una  

aproximación  

tipo   Flow   Shop   Híbrido  

programado  con  base  a  TOC  

 

Caso   de   estudio:   Línea   de   producción  

metalmecánica    

         

Lorena  Maria  Bejarano  Aranzazu  

 

 

 

Asesor:    

Ph.D.  Ciro  Alberto  Amaya  Guio

 

   

           

Facultad  de  Ingeniería  

Departamento  de  Ingeniería  Industrial  

Universidad  de  los  Andes  

Bogotá  D.C,  Mayo  de  2016  

 

(2)

Tabla  de  contenido  

Lista  de  Tablas  ...  3  

Lista  de  Ilustraciones  ...  3  

I.   Introducción  ...  4  

Justificación,  novedad  e  importancia  del  proyecto  ...  4  

Alcance  del  proyecto  ...  5  

II.   Marco  Teórico  ...  5  

Descripción  del  problema  ...  5  

Sistema  real:  Mixed  Shop  bietápico  Open  Flow  ...  5  

Conceptos  clave  ...  7  

Estado  del  arte  ...  8  

III.   Objetivos  ...  13  

Objetivo  general  ...  13  

Objetivos  específicos  ...  13  

IV.   Estrategias  de  solución  ...  13  

Solución  exacta  ...  13  

Formulación  matemática  ...  14  

Método  de  solución  aproximado  :  Algoritmo  Genético  ...  17  

Propuesta  de  solución  1:  GA  ...  18  

Representación  de  los  cromosomas  ...  19  

Población  inicial  ...  20  

Estrategia  de  selección  de  cromosomas  padres  ...  21  

Reproducción  de  hijos:  Operadores  genéticos  ...  21  

Evaluación  de  individuos  ...  22  

Criterio  de  detención  ...  22  

Pseudo-­‐código  Algoritmo  Genético  ...  23  

Pseudo-­‐código  algoritmo  Crossover  ...  23  

Propuesta  de  solución  2:  GA_SPT  ...  24  

Propuesta  de  solución  3:  GA_Delivery  ...  25  

V.   Resultados  experimentales  ...  25  

Uso  de  instancias  académicas  CHR  ...  25  

Tres  propuestas  de  solución:  Instancias  CHR  ...  28  

Prueba  de  robustez  a  la  mejor  propuesta  de  solución  ...  29  

Mejor  propuesta  Vs  TOC  –  Aproximación  FFs:  Instancias  CHR  ...  30  

Caso  de  estudio  ...  35  

Mejor  propuesta  de  solución  Vs  TOC  -­‐  Aproximación  FFs:  Caso  de  estudio  ...  37  

VI.   Conclusiones  ...  38  

Anexo  1:  Comparación  de  soluciones  iniciales  con  regla  SPT  Vs  LPT  ...  40  

Anexo  2:  Calibración  de  parámetros.  Diseño  de  experimentos  2k  ...  41  

Bibliografía  ...  49    

     

(3)

 

Lista  de  Tablas  

 

TABLA  1.  EJEMPLO  TIEMPOS  DE  PROCESO  TRABAJO/MÁQUINA  ...  19  

TABLA  2.  MÁQUINAS  EN  OM  PARA  LAS  INSTANCIAS  ACADÉMICAS  ...  26  

TABLA  3.  INSTANCIAS  CHR  ORIGINALES  Y  MODIFICADAS.  ...  27  

TABLA  4.  MAKESPAN  DE  LAS  TRES  PROPUESTAS  DE  SOLUCIÓN  EN  LAS  INSTANCIAS  CHR  ...  28  

TABLA  5.  ESTADÍSTICAS  DE  ROBUSTEZ  PARA  LA  MEJOR  SOLUCIÓN  ...  30  

TABLA  6.  MAKESPAN  DE  LA  MEJOR  SOLUCIÓN  Y  LA  TOC-­‐APROXIMACIÓN  FFS  EN  LAS  INSTANCIAS  CHR  ...  33  

TABLA  7.  MAKESPAN  CASO  DE  ESTUDIO,  TRES  PROPUESTAS  DE  SOLUCIÓN  ...  37  

TABLA  8.  RESULTADOS  CASO  DE  ESTUDIO,  MEJOR  PROPUESTA  TOC-­‐APROXIMACIÓN  FFS  ...  38  

TABLA  9.  SPT  VS  LPT  INSTANCIAS  ACADÉMICAS  ...  40  

TABLA  10.  NIVELES  Y  FACTORES  DEL  ALGORITMO  GENÉTICO  ...  42  

TABLA  11.  NOTACIÓN  DE  YATES  PARA  LOS  FACTORES  ...  42  

TABLA  12.  FACTORES  PARA  OBTENER  EL  MENOR  MAKESPAN  ...  48  

   

Lista  de  Ilustraciones  

ILUSTRACIÓN  1  SISTEMA  DE  PRODUCCIÓN  (MIXED  SHOP)  ...  6  

ILUSTRACIÓN  2  FLUJO  DE  PROCESO  APROXIMADO  (FLEXIBLE  FLOW  SHOP)  ...  10  

ILUSTRACIÓN  3.  PROPUESTA  DE  SOLUCIÓN  1  ...  18  

ILUSTRACIÓN  4.  REPRESENTACIÓN  DEL  CROMOSOMA  BASADO  EN  LA  OPERACIÓN  ...  19  

ILUSTRACIÓN  5.  DIAGRAMA  DE  GANTT  PARA  LA  REPRESENTACIÓN  DEL  CROMOSOMA  BASADO  EN  OPERACIÓN  ...  20  

ILUSTRACIÓN  6.  REPRESENTACIÓN  DEL  CROMOSOMA  BASADO  EN  EL  TRABAJO  ...  20  

ILUSTRACIÓN  7.  PROPUESTA  DE  SOLUCIÓN  2  ...  24  

ILUSTRACIÓN  8.  PROPUESTA  DE  SOLUCIÓN  3  ...  25  

ILUSTRACIÓN  9.  GRÁFICO  DE  PARETO  DE  LOS  EFECTOS  ESTANDARIZADOS  PARA  TODOS  LOS  FACTORES  E   INTERACCIONES  ...  44  

ILUSTRACIÓN  10.  GRÁFICO  NORMAL  DE  EFECTOS  ESTANDARIZADOS  PARA  TODOS  LOS  FACTORES  E  INTERACCIONES  45   ILUSTRACIÓN  11.  GRÁFICO  DE  RESIDUOS  PARA  VARIABLE  DE  RESPUESTA  (MAKESPAN)  CON  TODOS  LOS  FACTORES  E   INTERACCIONES  ...  45  

ILUSTRACIÓN  12.  GRÁFICA  DE  PARETO  DE  EFECTOS  ESTANDARIZADOS  PARA  LOS  EFECTOS  E  INTERACCIONES   SIGNIFICATIVAS  ...  47  

ILUSTRACIÓN  13.  GRÁFICO  NORMAL  DE  LOS  EFECTOS  ESTANDARIZADOS  DE  LOS  FACTORES  E  INTERACCIONES   SIGNIFICATIVOS  ...  47  

ILUSTRACIÓN  14.  GRÁFICA  DE  RESIDUOS  PARA  LA  VARIABLE  DE  RESPUESTA  (MAKESPAN)  DE  LOS  FACTORES  E   INTERACCIONES  SELECCIONADOS  ...  48  

 

               

(4)

I.

Introducción  

 

En  diversos  sectores  productivos,  la  programación  de  la  producción  tiene  gran   repercusión  en  la  productividad  y  competitividad  de  las  empresas;  especialmente   donde   se   emplean   sistemas   de   manufactura   existe   una   relación   directa   entre   el   desempeño  de  las  empresas  y  su  capacidad  de  programar  la  producción  de  forma   adecuada.    

La   programación   de   la   producción   es   un   problema   que   varía   su   complejidad   según  las  características  de  cada  proceso  y  es  necesario  contar  con  herramientas   que   permitan   solucionar   el   problema   de   forma   eficaz   y   sencilla   para   que   las   empresas  puedan  utilizarlo  en  su  operación.  Se  busca  determinar  en  qué  tiempos  y   en   qué   máquinas   se   van   a   procesar   los   trabajos,   así   como   el   tiempo   total   de   terminación.    

Justificación,  novedad  e  importancia  del  proyecto  

 

Según   la   revisión   de   literatura   y   de   acuerdo   con   (Liu   &   Ong,   2004),     los   problemas   de   múltiples   etapas   más   conocidos   como  Mixed   Shop,   han   sido   poco   aplicados  y  estudiados  por  la  academia,  y  los  autores  interesados  en  éste  tipo  de   problemas  los  han  abordado  desde  un  Flow  Shop  à  Open  Shop  (Su  et  al.,  2005),  es   decir,  se  tienen  dos  etapas  donde  la  primera  se  desarrolla  como  un  Flow  Shop  y  la   segunda   como   un   Open   Shop,  por   ejemplo   en   la   industria   automotriz,   donde   los   vehículos  (trabajos)  se  ensamblan  siguiendo  una  única  y  misma  ruta  (Flow  Shop)  y   después  del  ensamble  se  realiza  el  control  de  calidad  donde  cada  vehículo  puede   visitar  las  estaciones  de  revisión  en  cualquier  orden  (Open  Shop),  no  importa  si  se   verifica  primero  la  pintura  o  los  frenos,  y  cada  vehículo  recorre  las  estaciones  del   control  de  calidad  sin  una  ruta  establecida.    

A  diferencia  de  lo  descrito  anteriormente,  el  sistema  de  producción  del  presente   trabajo   es  Open   Shop  à   Flow   Shop,  donde   en   la   primera   etapa   del   proceso   no   existen  restricciones  de  ruta,  es  decir  que  los  trabajos  pueden  visitar  las  máquinas   de  la  primera  etapa  en  cualquier  orden  y  éste  puede  diferir  entre  trabajos;  y  en  la   segunda   etapa   siguen   una   línea   Flow   Shop,   donde   todos   los   trabajos   siguen   la   misma   ruta   predeterminada   en   las   estaciones   de   dicha   etapa.   Este   tipo   de   problema  únicamente  ha  sido  abordado  por  (Mejía  &  Bejarano,  2015)  y  (Dong  et  

(5)

al.,  2013),  lo  que  despierta  interés  en  resolverlo  ya  que  es  novedoso  y  tiene  gran   aplicación  en  la  industria.  

Alcance  del  proyecto  

 

Determinar  la  brecha  entre  la  modelación  del  sistema  real  (línea  de  producción   mixta  bietápica  Open  Flow)  y  la  solución  propuesta  por  (Mejía  &  Bejarano,  2015)   donde  se  realiza  una  aproximación  tipo  Flow  Shop,  para  conocer  cuál  es  el  costo  de   optimalidad   Vs   esfuerzo   y   tiempo   de   programación   y   ejecución.     Se   mostrará   el   tiempo   total   de   terminación   de   la   programación   de   producción   en   un   caso   de   estudio,  así  como  en  instancias  académicas  conocidas  (Carlier,  Heller  y  Reeves).    

El   objetivo   principal   es   realizar   la   programación   de   la   producción   del   sistema   real   proponiendo   una   nueva   estrategia   de   solución   que   mejore   la   propuesta   de   (Mejía  &  Bejarano,  2015).  

 

El   presente   trabajo   esta   organizado   de   la   siguiente   forma;   en   la   sección   II.   se   encuentra   el   marco   teórico   donde   se   presenta   la   descripción   y   definición   del   problema,  seguido  de  las  soluciones  encontradas  en  la  literatura.  En  la  sección  III.   se  mencionan  los  objetivos  que  se  desarrollarán  a  lo  largo  del  trabajo.  En  la  sección   IV.  se  describe  el  algoritmo  y  las  estrategias  de  solución  propuestas.  La  sección  V.   presenta   los   resultados   experimentales   que   permiten   evaluar   el   método   propuesto.   Finalmente   en   la   sección   VI.   se   dan   algunas   conclusiones.   Adicionalmente,  al  final  del  documento,  se  muestra  un  anexo  con  la  calibración  de   los  parámetros  utilizados  en  el  algoritmo  de  solución.  

II.

Marco  Teórico  

Descripción  del  problema        

Sistema  real:  Mixed  Shop  bietápico  Open  Flow    

En  la  industria  es  común  encontrar  que  el  proceso  de  producción  es  un  sistema   donde  los  trabajos  pasan  por  dos  etapas,  donde  en  las  primeras  máquinas  no  existe   restricción  de  ruta  (Open  Shop)  y  en  la  últimas  máquinas  del  proceso  los  trabajos   deben   seguir   el   mismo   orden   de   proceso   (Flow   Shop).   Este   problema   ha   sido  

(6)

estudiado  en  la  literatura  únicamente  por  (Mejía  &  Bejarano,  2015)  y  (Dong  et  al.,  

2013).    

Dado   que   es   un   problema   poco   estudiado,   se   busca   encontrar   un   método   de   programación  de  la  producción  que  permita  a  las  empresas  con  dicho  sistema  de   producción  ser  más  eficientes.  

El  sistema  de  producción  que  vamos  a  estudiar  esta  compuesto  por  una  serie  de   estaciones  de  trabajo  donde  cada  estación  tiene  entre  2  y  4  máquinas  idénticas  en   paralelo  y  algunas  estaciones  tienen  una  única  máquina;  las  estaciones  de  trabajo   están  divididas  en  dos  etapas,  en  las  primeras  estaciones  los  trabajos  se  comportan   como  un  Open  Shop,  ya  que  en  éstas  los  trabajos  no  tienen  restricción  de  ruta,  es   decir   que   la   realización   de   las   operaciones   en   cada   máquina   no   tiene   una   restricción   de   orden   o   predecesor   establecidas;   y   en   las   últimas   estaciones   de   trabajo  del  proceso,  los  trabajos  se  comportan  como  un  Flow  Shop  Flexible  o  línea   de  producción  porque  todas  las  ordenes  deben  seguir  la  misma  ruta,  es  decir  que   todos  los  trabajos  se  procesan  en  el  mismo  orden.    

El  sistema  descrito  anteriormente  se  muestra  gráficamente  a  continuación:  

 

  Ilustración  1  Sistema  de  producción  (Mixed  Shop)  

Ø Elementos  del  sistema  descrito:   -­‐  Máquinas  

-­‐  Trabajos  

-­‐  Series  de  operaciones    

-­‐  Estaciones  en  serie  con  máquinas  en  paralelo  

(7)

-­‐   Si   una   estación   tiene   máquinas   en   paralelo,   todas   las   máquinas   están   en   capacidad  de  procesar  cualquier  trabajo.  

-­‐  Cada  trabajo  debe  ser  procesado  en  una  sola  maquina.     -­‐  Cada  máquina  i  puede  procesar  sólo  un  trabajo  a  la  vez.     -­‐  Las  máquinas  operan  sin  fallas  ni  mantenimientos.  

-­‐  En  el  tiempo  cero  todas  las  máquinas  están  disponibles  y  vacías.  

-­‐  Se  cuenta  con  el  tiempo  de  proceso  p!"  de  cada  trabajo  i  en  cada  máquina  j.  Si   un   trabajo   no   debe   ser   procesado   en   alguna   estación,   su   tiempo   de   proceso   será  cero.  

-­‐  Todos  los  tiempos  de  proceso  son  conocidos  y  constantes.  

-­‐   Dos   operaciones   del   mismo   trabajo   no   pueden   ser   procesadas   simultáneamente,  se  procesa  una  operación  a  la  vez.  

-­‐  Se  hará  la  programación  sin  interrupciones,  es  decir,  el  proceso  de  un  trabajo   en   una   máquina   no   se   puede   interrumpir   para   que   ingrese   otro   trabajo   distinto  a  esa  máquina.  El  único  momento  en  el  que  el  proceso  de  un  trabajo  es   interrumpido  es  en  el  cambio  de  turno  y  descanso,  estos  cambios  y  tiempos  de   descanso  son  conocidos  y  constantes.  

-­‐   Los   trabajos   son   independientes   entre   sí   y   están   disponibles   en   el   instante   inicial.    

-­‐  No  se  tienen  relaciones  de  precedencia  entre  trabajos.   -­‐  No  ingresan  nuevas  órdenes  (trabajos)  al  sistema.    

Conociendo   el   sistema   de   producción,   se   planteará   una   solución   para   el   problema  X//𝐶!"#;  donde  X  es  la  estructura  del  sistema  (framework),  que  en  este   caso  corresponde  a  un  sistema  Mixto  (Mixed  Shop);  y  𝐶!"#  es  la  función  objetivo   que  busca  minimizar  el  tiempo  total  de  terminación  (makespan).  

Conceptos  clave  

 

Según  (Pinedo,  2010)  

o Trabajo:   Operación   que   es   realizada   en   una   máquina   y   tiene   una   duración  establecida  

(8)

o Secuencia:   Orden   en   el   que   se   procesa   una   serie   de   trabajos   en   una   máquina  específica  

o Tiempo  de  proceso:   Tiempo   requerido   para   procesar   un   trabajo   en   una   máquina  

o Máquinas  idénticas  en  paralelo  (Pm):   En   una   estación   de   trabajo   hay  m  

máquinas  que  son  iguales,  cada  trabajo  debe  ser  procesado  únicamente   en  una  de  las  m  máquinas  

o Flow  Shop  (Fm):  Hay  m  máquinas  en  serie,  cada  trabajo  debe  procesarse  

en  todas  las  máquinas;  todos  los  trabajos  siguen  la  misma  ruta  y  luego  de   ser  procesado  en  una  máquina  pasa  a  la  cola  de  la  siguiente.  

o Flow   Shop   Flexible   (FFc):   Hay  c   etapas   en   serie   con   un   número   de   máquinas   en   paralelo   idénticas   en   cada   etapa.   Cada   trabajo   debe   ser   procesado  en  una  de  las  máquinas  de  cada  etapa.  

o Flow   Shop   Híbrido   (FHc):   Hay  c   etapas   en   serie   con   un   número   de   máquinas   en   paralelo   idénticas   en   cada   etapa.   No   todos   los   trabajos   visitan   todas   las   etapas,   un   trabajo   debe   ser   procesado   únicamente   en   una  de  las  máquinas  de  cada  etapa  si  éste  visita  dicha  etapa.  El  orden  de   las   máquinas   según   la   ruta   de   cada   trabajo   es   el   mismo   para   todos   los   trabajos.  

o Job  Shop  (Jm):  Es  un  taller  con  m  máquinas,  donde  cada  trabajo  tiene  una   ruta  predeterminada;  es  posible  que  exista  recirculación,  es  decir,  que  un   trabajo  puede  visitar  una  máquina  más  de  una  vez.  

o Open   Shop   (Om):   Hay   m   máquinas,   aunque   cada   trabajo   debe   ser   procesado  en  cada  máquina,  algunos  tiempos  de  proceso  serán  cero.  No   hay  restricciones  respecto  a  la  ruta  de  cada  trabajo.  

Estado  del  arte    

 

En   1985   fue   definido   por   Teruo   Masuda,   Hiroaki   Ishii   y   Toshio   Nishida   el   concepto   de  Mixed  Shop  Scheduling,   donde   se   tiene   un   grupo   de   máquinas   y   dos   subconjuntos  de  tipos  de  trabajados,  un  set  de  trabajos  tipo  Flow  Shop  y  un  set  de   trabajos   tipo  Open  Shop.  Este   tipo   de   problemas   también   ha   sido   llamado  Multi-­‐ stage  (MSS),   ya   que   cada   trabajo   requiere   operaciones   en   diferentes   máquinas   y   adicionalmente  se  tienen  tres  tipos  de  trabajos  (Flow,  Job  y  Open)  o  shop  puros;  en  

(9)

práctica   un   MSS   es   una   mezcla   de   los   shops   puros.   En   la   literatura,   también   es   común  encontrar  los  Mixed  Shop  Problems  junto  a  los  Group  Shop  Problems  (GSS),  

que  se  caracterizan  por  tener  dos  grupos  de  trabajos,  donde  todas  las  operaciones   del  grupo  uno  deben  ser  procesadas  antes  de  las  operaciones  del  grupo  dos,  pero   el  orden  en  el  cual  se  realizan  los  trabajos  entre  grupos  no  tiene  restricción.    

En  resumen,  de  acuerdo  con  (Liu  &  Ong,  2004),  el  término  Mixed  Shop  Problem  

es  un  caso  general  para  los  sistemas  Multi-­‐satage  o  Group  Shop  Problems.      

Esta   definición   es   la   que   más   se   ajusta   al   problema   presentado,   donde   no   tenemos   subconjuntos   de   trabajos   donde   unos   son   Open   Shop,   otros   Job   Shop   u   otros   Flow   Shop,   sino   tenemos   etapas   del   proceso   donde   todos   los   trabajos   se   comportan  como  un  Om  en  las  primeras  estaciones  y  como  un  FHc  en  las  siguientes   estaciones,  donde  adicionalmente  cada  estación  cuenta  con  máquinas  idénticas  en   paralelo,  es  decir  que  tenemos  un  sistema  de  producción  mixto,  no  trabajos  mixtos   en  un  sistema  de  producción.    

Es  por  esto  que  se  ha  decido  definir  este  sistema  como  una  línea  de  producción   bietápica  mixta.  

 

El   problema   descrito   anteriormente,   únicamente   ha   sido   trabajo   por   dos   autores:  (Mejía  &  Bejarano,  2015)  y  (Dong  et  al.,  2013).  

Los   primeros  abordan   el   problema   considerando   más   de   tres   máquinas,   y   resolvieron   el   problema   aproximando   el   sistema   a   un   Flow   Shop,   con   base   a   la   metodología  de  teoría  de  restricciones  TOC,  la  metodología  consiste  en  encontrar   la  máquina  cuello  de  botella  y  programar  los  trabajos  en  dicha  máquina  según  una   regla   de   despacho   seleccionada,   y   según   el   cuello   de   botella   seguir   con   un   algoritmo   de   lista   antes   y   después   de   este,   es   decir,   que   las   colas   de   trabajos   en   cada  máquina  operan  de  acuerdo  a  la  disciplina  FIFO  (primero  en  entrar,  primero   en  salir),  y  la  permutación  en  la  programación  implica  que  el  orden  en  el  que  los   trabajos   pasan   por   la   máquina   cuello   de   botella,   se   mantiene   a   través   de   todo   el   sistema.    

En  el  Flexible  Flow  Shop  donde  se  tienen  m  máquinas  en  paralelo  en  c  niveles  en   serie,  cada  nivel  tiene  diferente  número  de  máquinas  en  paralelo,  algunos  niveles   (estaciones)  sólo  tienen  una  sola  máquina,  y  cada  trabajo  se  procesa  en  cada  nivel.  

(10)

En  el  gráfico2  se  muestra  lo  descrito  anteriormente,  las  flechas  azules  representan   las  máquinas  en  paralelo  de  una  estación,  las  estaciones  que  no  tienen  máquinas   en  paralelo  están  compuestas  por  una  sola  máquina.  

 

 

Ilustración  2  Flujo  de  proceso  aproximado  (Flexible  Flow  Shop)  

 

En  la  metodología  TOC,  según  Eli  Goldratt  los  procesos  multitarea,  de  cualquier   ámbito,  se  mueven  a  la  velocidad  del  paso  más  lento  siendo  éste  el  factor  limitante   denominado  cuello  de  botella.  El  cuello  de  botella  es  un  recurso  cuya  capacidad,  en   un  periodo  de  tiempo,  es  igual  o  menor  que  la  demanda  que  hay  de  el,  es  decir,  que   limita  al  sistema  con  relación  a  su  objetivo.  

Lo  que  se  busca  es  incrementar  el  flujo  de  trabajo  que  fluye  a  través  del  sistema   y  para  esto  se  deben  identificar  e  intervenir  los  elementos  que  lo  limitan,  dichos   elementos   son   conocidos   como   restricciones   y   estas   son   las   que   determinan   el   desempeño   del   sistema,   adicionalmente   son   el   punto   de   apalancamiento   del   mismo.  

En  este  caso  el  departamento  de  producción  busca  acortar  los  plazos  de  entrega   y  la  manera  de  acelerar  el  proceso  es  lograr  que  el  cuello  de  botella  trabaje  hasta  el   límite  de  su  capacidad.  

Buscando   el   balanceo   de   la   demanda   de   los   clientes   con   la   capacidad   de   la   planta,  los  autores  desarrollaron  una  herramienta  en  Visual  Basic  para  Microsoft   Excel   que   ayuda   a   tomar   la   decisión   aproximada   sobre   cuánto   producir   y   qué   recursos   se   necesitan   para   cubrir   la   demanda  en   un   horizonte   de   planeación.   Realizan   la   unión   entre   el   pronóstico   en   firme   de   ventas   y   la   planeación   de   los   recursos.  

(11)

Con   la   herramienta   desarrollada   y   diseñada   con   base   a   TOC   calcularon   la   programación  de  las  máquinas  de  la  zona  mecánica  que  es  la  que  determina  el  flujo   de  materiales  en  la  planta.    

La  utilización  de  dicha  herramienta  permite  a  la  empresa  obtener  los  tiempos   estimados  de  cada  órden  de  producción,  y  determinar  con  certeza  qué  ordenes  de   produccion  pueden  ser  ejecutadas  mes  a  mes.    

 

Y  (Dong  et  al.,  2013),  abordan  el  problema  de  dos  etapas,  donde  la  primera  es   un   Open   Shop   que   tiene   dos   máquinas,   y   la   segunda   etapa   un   Flow   Shop   de   una   sola  máquina;  dan  solución  al  problema  mezclando  diferentes  algoritmos  óptimos,   como  son  la  regla  de  Johnson  y  el  algoritmo  de  Gonzales  y  Sahni,  para  el  Open  Shop   de   dos   máquinas.   Obtienen   buenas   soluciones   pero   para   problemas   de   pequeña   escala   donde   la   primera   etapa   considera   únicamente   dos   máquinas   y   la   segunda   etapa  una  máquina;  y  no  se  consideran  máquinas  en  paralelo.  

 

Hay  otro  problema  parecido  al  propuesto,  es  de  dos  etapas  pero  la  primera  es   un  Flow  Shop  y  la  segunda  Open  Shop;  éste  también  ha  sido  poco  estudiado,  en  la   literatura   se   encuentra   el   trabajo   de   (Su  et   al.,   2005),   que   fue   inspirado   por   las   industrias   que   siguen   en   un   principio   una   línea   de   ensamble   tipo   Flow   Shop   y   después   pasan   a   estaciones   de   control   de   calidad   siguiendo   un   Open   Shop;   los   autores  presentan  dos  casos,  en  el  primero  la  primera  etapa  tiene  una  máquina  y  la   segunda  etapa  dos  máquinas;  y  en  el  segundo  caso  se  tienen  configuraciones  entre   2  y  10  máquinas  en  todo  el  sistema.  Los  autores  dan  solución  a  este  problema  por   medio  de  tres  estrategias  distintas:  programación  entera,  Branch  and  Bound  y  una   heurística  basada  en  la  heurística  CDS  (desarrollada  por  Campbell,  Dudek  y  Smith)   y  la  regla  LTPT  (Tiempo  de  procesamiento  más  largo  primero).  Las  instancias  para   probar  las  soluciones  fueron  creadas  por  ellos  mismos.  

 

Por  último,  en  la  literatura  también  se  encuentra  bajo  el  nombre  de  Mixed  Shop   un  problema  diametralmente  distinto  al  propuesto,  donde  no  se  tiene  un  sistema   mixto,  sino  que  los  trabajos  son  mixtos,  es  decir,  cada  trabajo  sigue  la  secuencia  en   las   máquinas   de   acuerdo   al   sistema   que   sigue   (Flow,   Job   u   Open   Shop),   cada   trabajo  es  un  shop  puro,  por  ejemplo:  el  trabajo1  sigue  un  Open  Shop,  el  trabajo2  

(12)

sigue   un  Job   Shop  y   los   trabajos   3   y   4   siguen   un  Flow   Shop;   Shakhlevich,  et   al.   (2000),  muestra  un  conglomerado  de  varios  resultados  de  este  problema.    

 

Otros  autores  que  trabajaron  ambientes  con  trabajos  mixtos  fueron  Masuda  et   al.   (1985)   quienes   propusieron   un   algoritmo   polinomial   O(n   log   n)   que   fue   mejorado   por   Strusevich   (1991)   quien   desarrolló   un   algoritmo  O(nO+nj  log   nj),  

ambos   para   solucionar   el   problema   para   dos   máquinas   donde   se   tienen   trabajos   mixtos,  unos  son  Open  Shop  y  otros  Job  Shop.    

El   problema   fue   extendido   a   tres   máquinas   por   Shakhlevich   et   al.  (1999),   desarrollando  un  algoritmo  polinomial  y  pseudopolinomial,  concluyendo  que  éstos   funcionaban  únicamente  para  casos  pequeños  de  no  más  de  tres  máquinas.    

Estos  algoritmos  se  desarrollaron  con  base  a  los  existentes  para  shop  puros  de   dos  máquinas,  como  son  el  de  Johnson  (1954)  en  el  Fm  y  el  de  Gonzalez  &  Sahni   (1976)  para  el  Om.  

Liu   et   al.,   (2002)   también   utilizaron   los   algoritmos  Enfriamiento   Simulado   (Simulated   Anneling),   Búsqueda   Tabú   (Tabu   Search)   y   Umbral   de   aceptación   (Threshold  accepting)  para  10  y  15  máquinas,  con  10,  15  y  20  trabajos  Jm  y  5,  10,   15  y  20  trabajos  Om;  encontrando  muy  buenas  soluciones  que  se  aproximaban  a  la   cota   inferior   establecida   para   ese   tipo   de   problemas   en   algunas   instancias   evaluadas.   Liu   et   al.   (2005),   probaron   sus   algoritmos   con   las   instancias   de  

whizzkids97  para  GSS,  y  encontraron  que  la  solución  más  eficiente  y  rápida  es  la   Búsqueda  Tabú.  

Blum  &  Sampels,  (2004)  desarrollaron  una  aproximación  Max-­‐Min  de  colonia  de   hormigas   que   utiliza   una   guía   de   un   programa   sin   retrasos   para   construir   las   soluciones   las   cuales   empleaban   búsqueda   local   de   caja   negra.   Compararon   éste   algoritmo   con   una   adaptación   de   la   búsqueda   local   Tabú.   Encuentran   que   su   algoritmo   funciona   particularmente   bien   en   las   instancias   para   Open   Shop,   y   mejoran   la   cota   inferior   encontrada   para   15   de   las   28   instancias  whizzkids97   probadas.  

 

Koulamas   &   Kyparisis,   (2015)  dan   solución   al   problema   mixto  MSS,   donde   un   subconjunto  de  trabajos  dado  debe  ser  procesado  en  un  Flow  Shop  mientras  que   los  trabajos  restantes  pueden  ser  procesados  como  un  Open  Shop,  por  medio  de  un  

(13)

algoritmo   heurístico;   éste,   basado   en   un   algoritmo   exacto   que   soluciona   el   problema  para  Open  Shop  de  tres  máquinas.  Concluyen  que  el  uso  del  algoritmo   heurístico   soluciona   el   problema   mixto   únicamente   para   tres   máquinas   en   un   tiempo  polinomial.  

Rossi,   et   al.,   (2015)   desarrollaron   un   algoritmo   constructivo   O(recursos   x   trabajos2)   y   formalizaron   la   solución   por   medio   de   una   representación   de   grafo  

disyuntivo,   su   cotribución   se   basa   en   tener   en   cuenta   que   las   operaciones   se   pueden  translapar.  

III.

Objetivos  

Objetivo  general  

 

Proponer   un   método   de   solución   para   la   programación   de   una   línea   de   producción   mixta   de   dos   etapas   donde   la   primera   es   Open   Shop   y   la   segunda   es   Flow  Shop.  

Objetivos  específicos    

 

-­‐   Desarrollar   la   programación   de   la   línea   de   producción   mixta   bietápica   Open   Flow,  con  tres  alternativas  de  solución.  

-­‐   Comparar   las   soluciones   entre   ellas   mismas,   determinar   cuál   es   la   mejor;   y   compararla  con  la  solución  encontrada  en  la  literatura.  

-­‐  Aplicar  el  algoritmo  propuesto  en  un  caso  real  en  la  industria  metalmecánica.  

IV.

Estrategias  de  solución  

Solución  exacta  

 

El   problema   se   podría   solucionar   por   medio   de   un   método   exacto   como   programación   lineal,   pero   este   método   no   se   va   a   ejecutar   dado   que   como   lo   demuestran   Dong   et   al.   (2013),   el   problema   que   se   esta   solucionando   es   considerado  NP-­‐hard.    

Una   estrategia   de   solución   es   resolver   cada   etapa   del   sistema   independientemente,  primero  el  Open  Shop  y  luego  el  Flow  Shop,  esta  estrategia   no   garantiza   el   óptimo   para   el   problema   mixto   y   en   futuras   investigaciones   se  

(14)

debería   considerar   plantear   un   solo   modelo   que   considere   las   dos   etapas.   A   continuación   se   muestra   cuál   es   el   óptimo   para   cada   etapa   por   separado,   sin   embargo   dada   la   complejidad   del   problema,   se   va   a   considerar   y   proponer   dar   solución  al  problema  por  medio  de  un  método  heurístico.  

     Formulación  matemática  

 

Ø Primera  Etapa  (Om):    Adaptado  de  Naderi  et  al.  (2011)  

-­‐ Parámetros,  conjuntos  y  notaciones:    

NI:  Número  de  máquinas.  

NJ:  Número  de  trabajos.    

I:  Conjunto  de  estaciones,  indexado  en  i,k.  I  =  0,…,NI  

J:  Conjunto  de  trabajos,  indexado  en  j,l.  I  =  0,…,NJ   𝑂!,! =  Operación  del  trabajo  j  en  la  máquina  i.   𝑝!,! =𝑇𝑖𝑒𝑚𝑝𝑜  𝑑𝑒  𝑝𝑟𝑜𝑐𝑒𝑠𝑜  𝑑𝑒  𝑙𝑎  𝑜𝑝𝑒𝑟𝑎𝑐𝑖ó𝑛  𝑗,𝑖.    

𝑀=𝑁ú𝑚𝑒𝑟𝑜  𝑔𝑟𝑎𝑑𝑒  𝑀.  

 

-­‐  Variables:    

𝑥!,!,!=𝑉𝑎𝑙𝑜𝑟  𝑑𝑒  1  𝑠𝑖  𝑂!,!  𝑒𝑠  𝑝𝑟𝑜𝑐𝑒𝑠𝑎𝑑𝑎  𝑑𝑒𝑠𝑝𝑢é𝑠  𝑑𝑒  𝑂!,!,.0  𝑑.𝑙.𝑐.     𝑖,𝑘  𝜖  𝐼  \𝑘<>𝑖  ,𝑖∈ 1,…,𝑁𝐼−1 ,𝑙>𝑖  

𝑦!,!,!=𝑉𝑎𝑙𝑜𝑟  𝑑𝑒  1  𝑠𝑖  𝑂!,!  𝑒𝑠  𝑝𝑟𝑜𝑐𝑒𝑠𝑎𝑑𝑎  𝑑𝑒𝑠𝑝𝑢é𝑠  𝑑𝑒  𝑂!,!.0  𝑑.𝑙.𝑐. 𝑗,𝑙  𝜖  𝐽\𝑗<>𝑙 ,𝑗∈ 1,…,𝑁𝐽−1 ,𝑘>𝑗  

𝐶!,!=𝑇𝑖𝑒𝑚𝑝𝑜  𝑑𝑒  𝑡𝑒𝑟𝑚𝑖𝑛𝑎𝑐𝑖ó𝑛  𝑑𝑒𝑙  𝑡𝑟𝑎𝑏𝑎𝑗𝑜  𝑗  𝑒𝑛  𝑙𝑎  𝑚á𝑞𝑢𝑖𝑛𝑎  𝑖.      

-­‐  Restricciones:    

 

𝐹𝑢𝑛𝑐𝑖ó𝑛  𝑂𝑏𝑗𝑒𝑡𝑖𝑣𝑜:  𝑀𝑖𝑛  𝐶!"#  

𝑠.𝑎:    

𝐶!,!−𝑝!,!+𝑀 1−𝑥!,!,! ≥𝐶!,!      ∀  𝑖<𝑘,𝑗      (1)  

 

𝐶!,!−𝑝!,!+𝑀 1−𝑥!,!,! ≥𝐶!,!      ∀  𝑖<𝑘,𝑗      (2)  

 

𝐶!,!−𝐶!,!+𝑀 1−𝑦!,!,! ≥𝑝!,!      ∀  𝑗<𝑙,𝑖      (3)  

 

𝐶!,!−𝐶!,!+𝑀𝑦!,!,!≥𝑝!,!      ∀  𝑗<𝑙,𝑖       4    

𝐶!"#≥𝐶!,!      ∀  𝑗,𝑖      (5)      

𝑥!,!,!∈ 0,1      ∀  𝑖,𝑗∈ 1…𝑚−1 ,𝑘>𝑖      (6)      

𝑦!,!,!∈ 0,1      ∀  𝑖,𝑗∈ 1…𝑛−1 ,𝑙>𝑗      (7)      

(15)

Las  restricciones  (1)  y  (2)  representan  las  restricciones  de  ruta  ,  y  las  (3)  y  (4)   hacen   referencia   a   la   secuenciación     de   las   máquinas.   La   restricción   (5)   es   la   función  objetivo,  donde  el  makespan  debe  ser  mayor  o  igual  a  todos  los  tiempos  de   terminación  del  proceso.  Y  por  último  las  restricciones  (6)  y  (7)  hacen  referencia    a   la  naturaleza  de  las  variables.  

 

Ø Segunda  Etapa:  Adaptado  de  Jungwattanakit,  J.,  et  al  (2008)    

- Parámetros,  conjuntos  y  notaciones:      

𝑡:index  de  las  estaciones.  t  =    1,…,k  

I:Conjunto  de  máquinas,indexado  en  i  =    1,…,  𝑚!  

J:Conjunto  de  trabajos,indexado  en  j,  l  =    1,…,  𝑛  

𝑚! = Número  de  máquinas  idénticas  en  paralelo  en  la  estación  𝑡  

𝑂!! =Tiempo  de  operación  del  trabajo  𝑗  en  la  estación  𝑡  

𝑎!! =Tiempo  cuando  la  máquina  𝑖  en  el  estado  𝑡  esta  disponible    

𝑀 = Número  grande  M  

 

- Variables:      

𝐶!"#:  Tiempo  de  terminación  del  último  trabajo  que  deja  el  sistema   makespan  

𝑋!"#! = 1  si  el  trabajo  𝑗  es  programado  inmediatamente  antes  del  trabajo  𝑙    

en  la  máquina  𝑖  en  la  estación  𝑡,y  0  dlc.  

𝐶!! =Tiempo  de  terminación  del  trabajo  𝑗  en  estación  𝑡  

 

- Restricciones:      

𝐹𝑢𝑛𝑐𝑖ó𝑛  𝑂𝑏𝑗𝑒𝑡𝑖𝑣𝑜:  Minimizar  𝐶!"#  

 

𝑠.𝑎:    

𝑋!"#! !

!!!

!!

!!!

=1      ∀  𝑡,𝑙       1  

 

𝑋!"#! !!!

!!! !!

!!!

=1      ∀  𝑡,𝑗       2  

 

𝑋!!!!

!!!

!!!

=1        ∀  𝑡,𝑖       3  

 

𝑋!"!(!!!) !

!!!

=1        ∀  𝑡,𝑖      (4)  

 

𝑋!""! =0      ∀  𝑡,𝑖,𝑗      (5)    

(16)

𝑋!"#!

!

!!!

= 𝑋!"#! !!!

!!!

       ∀  𝑡,𝑖,𝑙      (6)  

 

𝑋!"#! ∈ 0,1      ∀  𝑡,𝑖,𝑗,𝑙;𝑗=0…𝑛  ,𝑙 =1…𝑛+1      (7)    

 

       𝐶!!        𝐶

!! ≥𝑂!!+ 𝑋!"#! !!

!!!

−1 𝑀      ∀  𝑡,𝑗,𝑙  ;  𝑗≠𝑙      (8)  

 

       𝐶!!≥0      ∀  𝑡,𝑗      (9)    

       𝐶!!𝐶

!!!!≥ 𝑋!"#!

!

!!!

!!

!!!

+𝑂!!            ∀  𝑡,𝑗              (10)  

 

       𝐶!!=𝑟!      ∀  𝑗      (11)  

       𝐶!! ≥ 𝑎𝑖𝑡𝑋 !!!!

!!

!!!

+𝑂!!      ∀  𝑡,𝑗      (12)  

 

𝐶!"# ≥  𝐶!!        ∀  𝑗            (13)  

 

La   función   objetivo   es   realizar   una   programación   de   trabajos   que   minimice   el   makespan.   Las   restricciones   (1)   a   (7)   aseguran   que   la   programación   parcial   en   cada   máquina   en   cada   estación   sea   factible,   tenemos    𝑋!!!! = 1  si   el   trabajo  l   es  

secuenciado  como  el  primer  trabajo  en  la  máquina  i  en  la  estación  t,  y  𝑋!"!(!!!) = 1  

si  el  trabajo  j  es  secuenciado  como  el  último  trabajo  en  la  máquina  i  en  la  estación  

t.   Las   restricciones   (1)   y   (2)   aseguran   que   solo   un   trabajo   se   le   asigna   a   cada   posición   en   la   secuencia   en   cada   estación.   El   conjunto   de   restricciones   (3)   y   (4)   aseguran   que   solo   un   trabajo   va   a   ser   asignado   en   la   primera   y   en   la   última   posición  de  la  secuencia,  respectivamente,  en  cada  máquina  y  en  cada  estación.  La   restricción  (5)  asegura  que  un  trabajo  no  va  a  regresar  a  una  estación  t,  después   que  ha  terminado  su  proceso  en  esa  estación.  La  restricción  (6)  fuerza  a  construir   una   secuencia   consistente   en   todas   las   estaciones.   La   restricción   (7)   define   la   naturaleza  binaria  de  las  variables.  El  conjunto  de  restricciones  de  la  (8)  a  la  (12)   encuentran  el  tiempo  de  terminación  de  cada  trabajo;  la  restricción  (8)  establece   que  si  el  trabajo  j  y  l  son  programados  en  la  misma  máquina  en  una  estación  en   particular  con  el  trabajo  j    programado  antes  que  el  trabajo  l,  entonces  el  trabajo  j   tiene  que  completar  su  proceso  antes  de  que  el  trabajo  l  comience.  Esta  restricción  

(17)

fuerza   a   que   el   trabajo  l   siga   al   trabajo  j   por   al   menos   el   tiempo   de   proceso   del   trabajo  l,  el  valor  grande  M  es  una  constante  tan  grande  como  la  suma  todos  los   tiempos   de   proceso   de   los   trabajos.   La   restricción   (9)   asegura   que   el   tiempo   de   terminación   de   cada   trabajo   es   cada   estación   es   un   valor   no   negativo.   La   restricción  (10)  especifica  las  restricciones  de  precedencia  de  los  trabajos  diciendo   que  un  trabajo  no  puede  empezar  su  proceso  en  la  siguiente  estación  (t+1)  antes   que  éste  termine  en  la  estación  actual  (t).  La  restricción  (11)  aplica  únicamente  a  la   primera   estación,   diciendo   que   un   trabajo   no   puede   empezar   su   proceso   en   la   primera   estación   antes   de   su   fecha   de   lanzamiento   (release   date).   La   restricción   (12)  aplica  solamente  a  trabajos  que  son  asignados  a  la  primera  secuencia  en  cada   máquina,  es  decir,  que  el  trabajo  no  puede  empezar  a  ser  procesado  antes  de  que  la   máquina  este  disponible.  Y  el  conjunto  de  restricciones  (13)  enlaza  la  variable  de   decisión  terminación  total  de  la  programación  (makespan  ).  

Método  de  solución  aproximado  :  Algoritmo  Genético  

 

Las   metaheurísticas   son   entendidas   como   un   conjunto   de   algoritmos   de   búsqueda  que  se  componen  de  soluciones  codificadas,  de  acuerdo  a  la  estructura   del  problema,  a  la  cual  se  le  realizan  cambios  hasta  un  criterio  de  parada  en  el  cual   se   obtiene   una   solución   final.   Estas   pueden   ser   trabajadas   con   algoritmos   puros,   por  ejemplo:  Búsqueda  local  y  algoritmos  genéticos  (GA);    o  pueden  ser  trabajados   con   algoritmos   híbridos,   los   cuales   son   entendidos   como   la   aplicación   de   las   principales  ideas  de  algoritmos  puros  combinadas  en  un  mismo  algoritmo.  Dentro   de  esta  rama  encontramos  algoritmos  especializados  en  búsquedas  rápidas,  como   los  son  los  algoritmos  genéticos.  (Nikolaev  &  Jacobson,  2010).  

 

Los  algoritmos  genéticos  propuestos  en  1975  por  J.  H.  Holland,  como  su  nombre   lo   indica   son   algoritmos   basados   en   el   comportamiento   de   la   genética.   El   uso   de   estos   algoritmos   se   ve   representado   en   múltiples   elementos   como   lo   son:   Cromosomas   que   representan   las   soluciones   al   problema;   Poblaciones   que    representan  diferentes  conjuntos  de  soluciones  al  problema;  Mutación  como   el   cambio   en   los   cromosomas   o   solución   codificada   (Glover   &   Kochenberger,   2003).    La  utilización  de  estos  algoritmos  cuenta  con  tres  aspectos  importantes:  (1)  

(18)

definición  de  la  función  objetivo,  (2)  definición  de  la    representación  genética  de  la   solución  y  (3)  codificación  del  problema  en  términos  del  algoritmo  genético.    

 

Los  algoritmos  genéticos  (AG)  han  demostrado  ser  un  método  de  optimización   con  algunas  ventajas  respecto  de  métodos  convencionales  (Hasançebi  &  Erbatur,   2000).  Un  AG  mantiene  un  conjunto  de  soluciones  potenciales  en  cada  generación.   Su   popularidad   se   puede   atribuir   a   la   aplicación   de   problemas   de   optimización   continuos  y  discretos,  así  como  su  naturaleza  probabilística  y  menor  probabilidad   de   quedar   atrapado   en   óptimos   locales   que   se   presentan   en   muchos   problemas   prácticos  de  optimización  (Javadi  et  al.,  2005).  

 

Dadas  las  características  descritas  anteriormente,  para  resolver  el  problema  de   programación   de   una   línea   de   producción   bietápica   mixta   propondremos   tres   métodos   de   solución   con   base   en   un   algoritmo   genético,   todos   los   elementos   del   algoritmo   genético   se   explican   a   continuación   para   la   primera   propuesta   de   solución   que   hemos   llamado   GA,   en   las   otras   dos   propuestas   de   solución   se   explican   los   cambios   respecto   a   la   primera   propuesta,   dichos   cambios   son   evidentes  en  la  codificación  del  cromosoma  y  en  la  evaluación  del  makespan.    

Propuesta  de  solución  1:  GA  

 

En   esta   primera   propuesta   de   solución   se   toman   las   dos   etapas   en   las   que   se   divide  el  problema  (Open  Shop  y  Flow  Shop),  y  se  resuelven  por  separado,  es  decir,   se   encuentra   el   makespan   para   la   primera   etapa,   luego   para   la   segunda,   y   el   makespan  total  es  la  suma  de  las  soluciones  de  cada  etapa.    

 

 

Ilustración  3.  Propuesta  de  solución  1  

A   continuación   se   describen   los   elementos   y   funcionamiento   del   algoritmo   genético  propuesto.  

(19)

Representación  de  los  cromosomas  

 

La  representación  del  cromosoma  es  el  primer  paso  y  uno  de  los  aspectos  más   importantes   de   un   AG.   Algunas   representaciones   pueden   llevar   a   soluciones   buenas,   mientras   que   otras   no   convergen   o   consumen   demasiado   tiempo   de   computación  (Renner  &  Ekárt,  2003).  Por  esto,  para  resolver  el  problema  mixto,  se   proponen   dos   esquemas   de   representación,   uno   para   la   primera   etapa   (Open   Shop)  y  otro  para  la  segunda  etapa  (Flow  Shop).  

Para   programar   la   secuencia   en   la   primera   etapa   (Open   Shop)   se   utiliza   una   representación   basada   en   la   operación   donde   se   tiene   un   esquema   de    n   x  m  de   acuerdo  a  las  máquinas  que  visitan  los  trabajos,  entonces  el  cromosoma  contiene  n   x  m  posiciones  o  genomas  y  cada  posición  contiene  el  número  del  trabajo  que  se   repite  m  veces,  obteniendo  la  secuencia  en  la  que  cada  trabajo  visita  cada  máquina   que  pertenece  a  su  ruta.  

A  continuación  se  presenta  una  ilustración  de  la  representación  del  cromosoma   basado  en  operación,  suponiendo  que  se  tienen  tres  trabajos  y  cada  trabajo  consta   de   tres   operaciones,   y   cada   operación   se   procesa   en   una   máquina,   la   primera   operación  se  procesa  en  la  máquina  1,  la  segunda  operación  en  la  máquina  2  y  la   tercera  operación  en  la  máquina  3:  

 

2,1   1,2   1,1   3,3   2,3   2,2   3,2   1,3   3,1  

Ilustración  4.  Representación  del  cromosoma  basado  en  la  operación  

Esta  solución  se  puede  representar  por  medio  del  diagrama  de  Gantt,  entonces   supongamos  que  se  tienen  los  siguientes  tiempos  de  proceso:  

 

Tabla  1.  Ejemplo  tiempos  de  proceso  trabajo/máquina  

Trabajo/Máquina  

1  

2  

3  

1  

3   3   1  

2  

1   5   3  

3  

2   3   3  

       

(20)

                          M1    2  

         1         3         M2        1            3               2             M3        3            2          1  

       

                         

Ilustración  5.  Diagrama  de  Gantt  para  la  representación  del  cromosoma  basado  en  operación  

Para   programar   la   secuencia   en   la   segunda   etapa   (Flow   Shop)   el   esquema   de   representación   utilizado   es   basado   en   el   trabajo,   donde   el   cromosoma   tiene  m   posiciones   y   representa   la   secuencia   de   procesamiento   de   los   trabajos.   A   continuación   se   muestra   una   representación   de   éste   cromosoma   para   nueve   trabajos:  

 

3   6   1   4   2   9   7   5   8  

 

Ilustración  6.  Representación  del  cromosoma  basado  en  el  trabajo  

Población  inicial  

 

Los   algoritmos   genéticos   se   caracterizan   por   la   evolución   de   una   población   inicial  (conjunto  de  posibles  soluciones)  que  lleva  a  mejores  soluciones  por  medio   de   las   iteraciones,   permitiendo   a   los   individuos   (cromosomas)   más   aptos   reproducirse  y  dejar  que  los  individuos  menos  aptos  mueran.  

 

Para   la   generación   de   la   población   inicial   en   la   primera   etapa   se   utilizó   el   algoritmo   SPT,   ya   que   éste,   domina   en   comparación   a   otras   reglas   de   despacho,   brindando  así  una  excelente  solución  inicial  (Ruíz  et  al.,  2006).  Otros  autores  cómo   M.  Ciavotta,  R.  Ruíz,  F.  Sivrikaya,  H.  Urligs,  M.  Seido,  entre  otros,    coinciden  en  que   la   mejor   solución   utilizando   reglas   de   despacho   se   obtiene   por   SPT,   y   en   sus   estudios   utilizan   dicho   algoritmo   para   obtener   la   solución   inicial   factible.   Adicionalmente   en   el  Anexo   1   se   encuentra   que   la   regla   SPT   genera   mejores   soluciones   que   la   regla   LPT,   y   se   ratifica   la   decisión   de   utilizar   la   regla   SPT   para   generar  la  solución  inicial.  De  esta  solución  inicial  se  realizan  mutaciones  sucesivas   hasta  completar  la  población  inicial  (valor  del  parámetro  POPSIZE),  dado  que  las   mutaciones  son  hechas  de  una  solución  inicial  factible  se  garantiza  que  todas  las   soluciones  de  la  población  son  factibles.  

(21)

La  primera  población  inicial  del  Flow  no  tiene  en  cuenta  la  programación  de  la   primera  etapa  pero  en  la  evaluación  el  makespan  se  evalúa  teniendo  el  punto  de   partida  de  la  programación  de  la  primera.  La  población  inicial  de  la  segunda  etapa   también  se  hace  por  SPT.  

Estrategia  de  selección  de  cromosomas  padres  

 

La   selección   de   padres   se   realiza   por   torneo,   que   consiste   en   tomar   dos   cromosomas  de  la  población  inicial  aleatoriamente,  de  estos  se  elige  como  primer   padre   el   cromosoma   con   menor   makespan;   después   se   seleccionan   otros   dos   cromosomas  aleatoriamente  y  se  selecciona  al  segundo  padre  de  la  misma  forma.   Este   torneo   se   realiza   hasta   completar   la   cantidad   de   hijos   o   reproducciones   establecida   (valor   del   parámetro   CROSSOVERS).   En   la   estrategia   de   selección   de   padres   por   torneo   se   quedan   como   población   para   la   siguiente   generación,   los   cromosomas  que  tienen  la  mejor  función  de  adaptación  fitness,  es  decir,  el  menor   makespan.  

Reproducción  de  hijos:  Operadores  genéticos  

 

Los   operadores   genéticos   utilizados   en   nuestro   algoritmo   genético   son  

recombinación  (crossover)  y  mutación.    

Como   estrategia   de   intensificación   utilizamos   el   operador   de   recombinación  

Ordered   Crossover   (OX)   que   de   acuerdo   con   (Ruíz  et   al.,   2006)   y   (Seido  et   al.,     2008),  es  uno  de  los  operadores  con  los  que  se  obtienen  mejores  resultados.  Éste   operador   consiste   en   seleccionar   aleatoriamente   una   sección   de   cada   padre   y   copiarla   en   el   hijo   conservando   las   posiciones,   para   cada   hijo   empezando   en   el   último  punto  de  corte  del  segundo  padre,  los  genomas  son  copiados  en  el  mismo   orden   omitiendo   los   genes   ya   presentes,   si   se   alcanza   el   fin   de   la   secuencia,   entonces  se  va  al  principio.  

En  esta  primera  propuesta  de  solución  se  realiza  el  proceso  de  recombinación   para  cada  etapa  (Open  Shop  y  Flow  Shop)  por  separado.  

 

Como   estrategia   de   diversificación   utilizamos   la   mutación,   intercambiando   genes   entre   cromosomas;   la   posición   del   gen   a   intercambiar   se   realiza   de   forma   aleatoria.   La   mutación   se   realiza   cuando   ya   se   completaron   todas   las  

(22)

reproducciones   de   acuerdo   al   parámetro   CROSSOVERS   establecido,   se   realizan   mutaciones  de  los  cromosomas  de  esa  población  según  la  probabilidad  P_MUTATE.   La  mutación  se  realiza  en  cada  etapa  por  separado.  

Después   de   la   mutación   se   obtiene   una   cantidad   de   cromosomas   que   varia   de   acuerdo  a  la  probabilidad  de  mutación  (P_MUTATE),  de  todas  estas  soluciones  se   seleccionan  las  que  tengan  menor  Makespan  y  tantas  como  el  parámetro  POPSIZE   indique.  

Evaluación  de  individuos  

 

La   probabilidad   de   sobrevivencia   de   un   individuo   está   determinada   por   su   condición   de   aptitud   (fitness),   mediante   la   evolución   los   más   aptos   son   seleccionados.  Los  individuos  con  mejor  fitness    se  escogen  con  más  frecuencia  que   los   individuos   con   peores   valores.   (Salazar   &   Sarzuri,   2015).     En   este   caso,   la   función  fitness  se  asocia  al  objetivo  de  minimizar  el  tiempo  total  de  terminación  de   la  programación  de  los  trabajos  o  Makespan.    

 

La   secuencia   de   trabajos   para   la   primera   etapa   se   obtiene   partiendo   de   que   todos   los   trabajos   están   disponibles   en   el   tiempo   cero,   llegada   a   esa   primera   solución   se   empieza   a   iterar   el   algoritmo   genético   en   la   segunda   etapa,   pero,   teniendo  en  cuenta  que  cada  trabajo  tiene  un  tiempo  de  disponibilidad  diferente   para  esta  segunda  etapa  de  acuerdo  a  la  secuencia  hecha  en  la  primera  etapa,  ya   que   el   trabajo   esta   disponible   desde   el   momento   en   que   sale   de   la   etapa   Open   Shop;   es   decir,   se   tienen   en   cuenta   los   tiempos   en   los   que   se   ocuparon   las   máquinas  de  acuerdo  al  tiempo  en  el  que  el  trabajo  esta  disponible  para  entrar  al   sistema  Flow  Shop,  esto  se  ve  reflejado  en  la  función  fitness  ya  que  el  makespan   tiene  en  cuenta  desde  qué  momento  el  trabajo  puede  entrar  a  la  segunda  etapa  del   sistema.    

La   evaluación   fitness   se   hace   para   cada   nuevo   cromosoma,   se   va   comparando   con   la   mejor   solución   actual   y   se   reemplaza   cuando   se   encuentra   una   solución   mejor.  

Criterio  de  detención  

(23)

Pseudo-­‐código  Algoritmo  Genético    

 

Algoritmo Genético (P_INICIAL, MAX_ITER, CROSSOVERS, P_MUTATE, POPSIZE)

input: P_INICIAL lista de genomas de la población inicial MAX_ITER número máximo de iteraciones

CROSSOVERS número de parejas a reproducir (por generación) P_MUTATE probabilidad de mutar de cada individuo

POPSIZE tamaño de la población output: mejor_solución genomas

mejor_makespan ← ∞

mejor_solución ← Cromosoma vacío P ← P_INICIAL

for i ← 1 a MAX_ITER: for j ← 1 a CROSSOVERS:

g1a ← genoma aleatorio de P g1b ← genoma aleatorio de P g2a ← genoma aleatorio de P g2b ← genoma aleatorio de P

g1 ← genoma con el makespan más bajo entre g1a y g1b g2 ← genoma con el makespan mas bajo entre g2a y g2b Hijos ← crossover (g1,g2)

agregar elementos de Hijos a P

por cada genoma g en P:

if numero aleatorio ∈ [0,1) < P_MUTATE: agregar mutación de g a P

por cada genoma g en P: ms ← makespan de g if ms < mejor_makespan: mejor_solución ← g mejor_makespan ← ms

conservar de P los POPSIZE elementos de makespan mas bajo return mejor_solución

Pseudo-­‐código  algoritmo  Crossover  

 

algoritmo crossover(G1,G2) input: G1, G2 cromosomas output H1, H2 cromosomas

(24)

n ← numero de genes en G1

aleatorio1 ← número aleatorio en ∈ [0,n) aleatorio2 ← número aleatorio en ∈ [0,n-1)

inicio ← mínimo entre aleatorio1 y aleatorio2 fin ← máximo entre aleatorio1 y aleatorio2

H1 ← lista de genes vacía H2 ← lista de genes vacía

agregar a H1 elementos en G1 desde la posición inicio a fin agregar a H2 elementos en G2 desde la posición inicio a fin

for i ← 0 a n-1:

posición ← modulo(fin + i,n)

gen1 ← gen en posición de genoma G1 gen2 ← gen en posición de genoma G2 if H1 no contiene gen2:

añadir gen2 al final de H1 if H2 no contiene gen1: añadir gen1 al final de H2

rotar genes en H1 inicio posiciones rotar genes en H2 inicio posiciones return H1,H2

 

Propuesta  de  solución  2:  GA_SPT  

 

En  esta  segunda  propuesta  de  solución  se  realizan  el  Algoritmo  Genético  con  los   mismos   pasos   descritos   en   la   propuesta   de   solución   1   pero   únicamente   para   la   primera  etapa  Open  Shop;  y  para  la  segunda  etapa  se  ordenan  los  trabajos  usando   la  regla  de  despacho  SPT  (los  menores  tiempos  de  procesamiento  primero)  y  así   determinar   la   secuencia   de   los   trabajos   en   la   segunda   etapa   (Flow   Shop).   Para   realizar  la  secuencia  de  trabajos  SPT  se  ordenan  los  trabajos  según  el  tiempo  total   de  las  operaciones  en  la  etapa  dos  pero  teniendo  en  cuenta  el  tiempo  en  el  que  va  a   estar  disponible  para  entrar  de  acuerdo  al  tiempo  de  salida  de  la  primera  etapa.    

 

 

Ilustración  7.  Propuesta  de  solución  2  

(25)

Propuesta  de  solución  3:  GA_Delivery  

 

En  esta  tercera  propuesta  de  solución  se  realizan  los  mismos  pasos  descritos  en   la  propuesta  de  solución  1  para  la  primera  etapa  Open  Shop,  es  decir  se  realiza  el   Algoritmo   Genético   únicamente   en   la   primera   etapa;   y   en   la   segunda   etapa   Flow   Shop  se  utiliza  el  algoritmo  de  lista  FOFI  (primero  en  salir,  primero  en  entrar),  es   decir  que  en  la  etapa  dos  (Flow  Shop),  el  primer  trabajo  que  sale  de  la  etapa  uno  es   el  primero  que  entra  a  la  etapa  dos.    

A  diferencia  de  las  anteriores  propuestas  de  solución,  en  el  AG_Delivery  se  tiene   en  cuenta  el  makespan  total  de  la  secuencia  en  el  que  entrarían  los  trabajos  a  la   segunda  etapa;  no  se  minimiza  el  makespan  en  cada  etapa  por  separado,  sino  se   tiene   en   cuenta   el   orden   de   salida   para   mejorar   la   función   objetivo   en   todo   el   sistema.   En   esta   propuesta   de   solución  AG_Delivery,   no   importa   cuanto   se   va   a   demorar  el  trabajo  en  la  etapa  dos,  sólo  importa  el  tiempo  de  salida  de  la  etapa  uno   ya  que,  el  trabajo  entra  a  la  etapa  dos  tan  pronto  haya  salido  de  la  etapa  uno  de   acuerdo  a  la  disponibilidad  de  las  máquinas  en  la  segunda  etapa.    

   

 

Ilustración  8.  Propuesta  de  solución  3  

V.

Resultados  experimentales    

 

Los   resultados   se   obtuvieron   utilizando   un   computador   con   las   siguientes   características:   Processor   AMD   Phenom(tm)   II   X3   720   Processor   2.80   GHz,   Memoria  de  8  GB.  

Uso  de  instancias  académicas  CHR  

 

Para  probar  los  métodos  se  crearon  unas  instancias  académicas  basadas  en  las   de   Carlier,   Heller   y   Reeves   que   se   encuentran   en   la   librería:   http://people.brunel.ac.uk/~mastjjb/jeb/orlib/wtinfo.html,   en   el   archivo:  

Referencias

Documento similar

o Si dispone en su establecimiento de alguna silla de ruedas Jazz S50 o 708D cuyo nº de serie figura en el anexo 1 de esta nota informativa, consulte la nota de aviso de la

Las manifestaciones musicales y su organización institucional a lo largo de los siglos XVI al XVIII son aspectos poco conocidos de la cultura alicantina. Analizar el alcance y

En este sentido, puede defenderse que, si la Administración está habilitada normativamente para actuar en una determinada materia mediante actuaciones formales, ejerciendo

Proporcione esta nota de seguridad y las copias de la versión para pacientes junto con el documento Preguntas frecuentes sobre contraindicaciones y

[r]

Contraindicaciones: El uso de la mascarilla está contraindicado para los pacientes y los miembros de sus familias, profesionales sanitarios y compañeros de

 Para recibir todos los números de referencia en un solo correo electrónico, es necesario que las solicitudes estén cumplimentadas y sean todos los datos válidos, incluido el

Las actividades ilegales o criminales, sin embargo, cuando faltan víctimas, no tie- nen por qué rendir siempre forzosamente más beneficios. Más bien sucede lo contra- rio. La amenaza