0 Trabajo Fin de Carrera Grado en Ingeniería de Organización Industrial Dep. Organización Industrial y Gestión de Empresas I Escuela Técnica Superior de Ingeniería Universidad de Sevilla ANÁLISIS Y COMPARACIÓN DE REGLAS DE DESPACHO PARA LA PROGRAMACIÓN DE MÁQUINAS PARALELAS NO RELACIONADAS BAJO DIFERENTES OBJETIVOS
81
Embed
ANÁLISIS Y COMPARACIÓN DE REGLAS DE DESPACHO PARA LA ...bibing.us.es/proyectos/abreproy/91266/fichero/TFG-CarlosRA.pdf · 2 Trabajo Fin de Grado Ingeniería de Organización Industrial.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
0
Trabajo Fin de Carrera
Grado en Ingeniería de Organización Industrial
Dep. Organización Industrial y Gestión de
Empresas I
Escuela Técnica Superior de Ingeniería
Universidad de Sevilla
ANÁLISIS Y COMPARACIÓN DE
REGLAS DE DESPACHO PARA LA
PROGRAMACIÓN DE MÁQUINAS
PARALELAS NO RELACIONADAS
BAJO DIFERENTES OBJETIVOS
1
2
Trabajo Fin de Grado Ingeniería
de Organización Industrial.
TITULO
Análisis y comparación de reglas de despacho para la programación de máquinas
paralelas no relacionadas bajo diferentes objetivos.
Autor:
Carlos Romero Águila
Tutor:
Dr.Víctor Fernández-Viagas Escudero
Dep. de Organización Industrial y Gestión de Empresas I
Escuela Técnica Superior de Ingeniería
Universidad de Sevilla
Sevilla, 2017
3
4
Trabajo Fin de Grado: Título
Autor: Carlos Romero Águila
Tutor: Víctor Fernández-Viagas Escudero
El tribunal nombrado para juzgar el Proyecto arriba indicado, compuesto por los
siguientes miembros:
Presidente:
Vocales:
Secretario:
Acuerdan otorgarle la calificación de:
Sevilla, 2017
El Secretario del Tribunal
5
6
AGRADECIMIENTOS
Quisiera darle el agradecimiento más sincero a D. Víctor Fernández-Viagas Escudero, tutor
académico de este proyecto, por su gran amabilidad, y su excepcional atención y
orientación durante todo este Proyecto Fin de Grado.
También, me gustaría extender estas líneas de agradecimiento a mi familia, por su
constante e incondicional apoyo durante estos años de esfuerzo.
Gracias.
7
8
INDICE
1. SUMARIO DEL INFORME ........................................................................................................... 15
TABLA 13: ARPD TIEMPO FINALIZACIÓN TOTAL - REGLAS DE DESPACHO DERIVADAS DE LAS FECHAS DE ENTREGA. ................... 64
TABLA 14: ARPD RETRASO MÁXIMO - REGLAS DE DESPACHO DERIVADA DE LA SUMA DE TIEMPOS DE PROCESOS. .................... 66
TABLA 15: ARPD RETRASO MÁXIMO - REGLAS DE DESPACHO DERIVADA DEL TIEMPO MINIMO DE PROCESO PARA CADA TRABAJO.67
TABLA 16: ARPD RETRASO MÁXIMO - REGLAS DE DESPACHO DERIVADAS DE LAS FECHAS DE ENTREGA. .................................. 68
TABLA 17: ARPD SUMATORIO TRABAJOS TARDÍOS - REGLAS DE DESPACHO DERIVADAS DE LA SUMA DE TIEMPOS DE PROCESOS. . 70
12
TABLA 18: ARPD SUMATORIO TRABAJOS TARDÍOS - REGLAS DE DESPACHO DERIVADAS DEL TIEMPO MINIMO DE PROCESO PARA
CADA TRABAJO. ............................................................................................................................................ 71
TABLA 19:ARPD SUMATORIO TRABAJOS TARDÍOS - REGLAS DE DESPACHO DERIVADAS DE LAS FECHAS DE ENTREGA. ................. 72
TABLA 20: ARPD MEDIO DE CADA REGLA DE DESPACHO PARA CADA OBJETIVO. ................................................................. 77
TABLA 21: RANKING DE POSICION GLOBAL DE CADA REGLA DE DESPACHO. ....................................................................... 78
13
INDICE DE GRA FICAS
GRÁFICAS 1: COMPOSICIÓN DE LAS 24 REGLAS DE DESPACHO ........................................................................................ 38
GRÁFICAS 2: ARPD PARA LAS 24 REGLAS DE DESPACHO - OBJETIVO MAKESPAN ............................................................... 52
GRÁFICAS 3:ARPD PARA LAS 24 REGLAS DE DESPACHO - OBJETIVO TARDANZA TOTAL. ....................................................... 56
GRÁFICAS 4: ARPD PARA LAS 24 REGLAS DE DESPACHO - OBJETIVO RETRASO TOTAL ......................................................... 60
GRÁFICAS 5: ARPD PARA LAS 24 REGLAS DE DESPACHO - OBJETIVO SUMATORIO DE LOS TIEMPOS DE FINALIZACIÓN ................. 65
GRÁFICAS 6: ARPD PARA LAS 24 REGLAS DE DESPACHO - OBJETIVO RETRASO MÁXIMO. ..................................................... 69
GRÁFICAS 7:ARPD PARA LAS 24 REGLAS DE DESPACHO - OBJETIVO SUMATORIO DE TRABAJOS TARDIOS................................. 73
INDICE DE ILUSTRACIONES
ILUSTRACIÓN 1: ESQUEMAS DE ELEMENTOS DE PROGRAMACIÓN DE LA PRODUCCIÓN .......................................................... 17
ILUSTRACIÓN 2: EVALUACIÓN DE REGLAS DE DESPACHO. ............................................................................................... 23
ILUSTRACIÓN 3: DISTRIBUCIÓN DE VALORES EN LAS REGLAS DE DESPACHO.. ...................................................................... 29
ILUSTRACIÓN 4: BUCLES DE FORMACIÓN DE LAS INSTANCIAS EN CODE::BLOCKS. ................................................................ 33
ILUSTRACIÓN 5: BUCLE DE FORMACIÓN DE FECHAS DE LAS FECHAS DE ENTREGA EN CODE::BLOCKS. ....................................... 35
ILUSTRACIÓN 6: FUNCIÓN DE TARDANZA TOTAL CREADA EN CODE::BLOCKS. ..................................................................... 37
ILUSTRACIÓN 7: ALGORITMO DE LA HEURÍSTICA NEH REALIZADO EN CODE::BLOCKS. ......................................................... 47
14
15
1. SUMARIO DEL INFORME
El presente Trabajo de Fin de Grado constituye un estudio enfocado a la programación de
la producción, más concretamente a un análisis completo y detallado de una serie de
reglas de despacho (las cuales nos permiten definir una priorización en el orden de
procesamiento de trabajos en una planta de producción cualquiera).
Por una parte, se crearán diferentes unos escenarios de partida, es decir, diferentes tipos
de plantas de producción con características variables, con el objetivo de hacer extensible
el estudio a diversos volúmenes de producción. Por otra parte, se crearán una serie de
objetivos de optimización en esas plantas, aplicándose cada una de estas reglas de
despacho en las distintas opciones de escenarios y de objetivos de optimización. Se
pretende analizar el comportamiento que tiene cada una de ellas y así poder concluir cual
se ajusta mejor a cada característica de plantas de producción y de objetivos de
optimización que pretenda esa planta en cuestión.
Lo resultados obtenidos para las reglas de despacho serán comparados con la heurística
NEH, la cual está comprobada como una de las heurísticas que mejor se comporta dentro
de la programación de la producción, y que por tanto estableceremos como nuestra
solución de referencia para cada uno de los objetivos de estudio.
Esta proximidad en cuanto a los resultados obtenidos de cada regla de despacho
(relacionada a un objetivo de optimización y a un escenario de partida) y la heurística NEH
se calculará mediante el indicador ARPD, el cual establece en porcentaje, el grado en que
el resultado de la regla de despacho se acerca o se aleja de la NEH, permitiendo también
comparar entre sí las distintas reglas de despacho objeto de estudio.
Gran parte del trabajo es realizado mediante programación en C, realizando numerosos
ensayos para cada una de las opciones de estudio lo que nos permite en conjunto realizar
un análisis claro que establezca una serie de conclusiones finales fundamentadas.
16
2. PRESENTACIO N
Hasta mediados del siglo XVIII eran los propios artesanos los que controlaban el proceso
productivo dentro de las empresas. Más tarde y debido a la revolución industrial, de la
producción artesanal se pasó a una producción con una economía industrial y
manufacturera, reemplazándose todos los recursos manuales por máquinas y empezando
a surgir la necesidad de la planificación y organización de la producción. Así, con un
volumen de la producción más elevado que en décadas anteriores debido a la reducción
de los tiempos de producción y los costes, se da comienzo a la producción en masa, cuyas
bases teóricas fueron asentadas por Frederic W. Taylor y Henry Ford.
Este modelo de producción tuvo mucho éxito en la época, logrando influir en el sistema
económico y haciendo que grandes empresas copiaran su forma de producir bienes
idénticos a gran escala.
No obstante, debido a una serie de acontecimientos tanto económicos como sociales,
alrededor de 1960, se produjo un cambio en el tipo de demanda existente hasta el
momento, hundiendo a multitud de grandes empresas que habían implantado este
modelo de producción en masa, y pasando a un modelo de demanda basado en productos
con ciertas variaciones. Es el caso de Toyota, con su fundador Sakichi Toyoda, que
implantó un sistema que permitía esta diversificación y abría el camino a un nuevo tipo de
mercado. Para poder llevar a cabo este tipo de producción Toyota tuvo que reducir al
máximo los costes por el uso excesivo de recursos, exceso de producción y de existencias,
basándose en una optimización continua y constante conocida como filosofía Kaizen.
Este cambio de filosofía, hizo modificar a la mayoría de empresas sus formas de
enfrentarse a la demanda, iniciándose un sistema de producción a menor escala y que
permitía ofrecer productos más diversos, naciendo con ello el lean Management.
Así, la tendencia actual en el mercado y por tanto en la producción industrial se basa en la
flexibilización del sistema productivo siendo la competitividad de las empresas desde
mediados del siglo XX hasta la actualidad un aspecto determinante para poder desarrollar
una actividad empresarial en un mundo cada vez más globalizado y cambiante, donde las
oportunidades y posibilidades de sacar adelante un determinado producto con garantías
en el mercado conlleva entre otros factores un uso eficiente de los recursos.
17
Entre estos recursos son de vital importancia las máquinas, donde las materias primas son
procesadas con idea de añadir un determinado valor al producto
Son muchos los aspectos que pueden influir a la hora de definir la organización de una
determinada empresa. Sin duda, un factor principal será la programación de la
producción, posterior al proceso de planeación de la misma.
La programación de la producción permite que los recursos existentes en una planta
puedan ser asignados de la forma más eficiente posible a las distintas tareas que se
requieren a lo largo del tiempo, teniendo en cuenta las principales características y el
escenario en el que se lleva a cabo.
Ésta a su vez, se apoya en un conjunto de métodos, herramientas y modelos que permiten
la toma de decisiones dentro de la empresa, estando estos tres elementos relacionados
entre sí y fuertemente influenciados por el contexto en el que se encuentra la
organización y por tanto en sus decisiones.
Es fundamental llegar a unas soluciones que permitan a la empresa dar un paso adelante
en cuanto a la productividad.
Ilustración 1: Esquemas de elementos que en conjunto dan lugar a la programación y control de la producción. J.M, Framiñan ,“Program. y control de la producción” Universidad de Sevilla.
18
Sin duda uno de esas soluciones por las que pasa una mejora dentro de la producción de
una compañía cualquiera, es establecer prioridades a la hora de realizar sus trabajos.
Cuando una planta de producción conoce sus objetivos reales, puede enfocar dichos
objetivos a optimización mediante diversos modelos o reglas que tiene a su alcance y que
debe saber enfocar para la mejora de esos objetivos.
En este trabajo nos centraremos en escenarios de máquinas paralelas, teniendo estas
tiempos de procesos para cada trabajo diferentes entre ellas y por tanto no teniendo
ningún tipo de relación entre sí. La elección de la máquina en la que se procesa un
determinado trabajo se determinará en función de aquella que tengo un menor tiempo de
proceso acumulado de entre todas las máquinas de la planta.
Además los trabajos que se procesarán tendrán unas fechas de entrega en la que el
trabajo debería estar finalizado para poder ser entregado al cliente, siendo varios los
objetivos de optimización de las distintas plantas de producción, los cuales explicaremos
detalladamente en el próximo capítulo. También plantearemos los escenarios teniendo en
cuenta que los trabajos para ser procesados sólo tienen que pasar por una de las múltiples
máquinas que existan dentro de la planta de producción, considerándose como finalizados
los procesos una vez terminen por una de las máquinas.
19
3. DESCRIPCIO N DEL PROBLEMA
En este capítulo trataremos de definir cuál es la descripción del problema de
programación de la producción de forma general pasando posteriormente a los aspectos
que queremos desarrollar de forma más concreta dentro de este campo, así como los
conceptos teóricos en los que se asienta, definiendo cada una de las diferentes
configuraciones productivas posibles.
El problema de la programación de trabajos en máquinas puede definirse como “la
asignación en el tiempo de los recursos disponibles de forma que satisfaga un conjunto de
criterios y/o restricciones. Se trata de secuenciar un conjunto de trabajos que han de ser
procesados en un conjunto de máquinas. Cada trabajo lleva asociado una secuencia de
operaciones y cada operación se realiza en una máquina concreta durante un periodo de
tiempo conocido.” (PINEDO, 2012).
NOTACIONES 3.1
En la programación de la producción debido a la multitud de términos de los que se hacen
uso para referirnos a los distintos conceptos que la envuelven, se emplean una notación
que permiten simplificar toda la información, permitiendo una mayor comprensión y
organización de lo que se pretende reflejar.
Esta notación referida a la programación de la producción, propuesta por R.L. Graham,
está divida en tres grupos principales, los cuales componen los modelos de programación
de la producción. Estos tres grandes grupos son:
α: Referida a las características de la máquina, y que en nuestro caso, como ya se
ha explicado anteriormente corresponde a máquinas paralelas, sin ningún tipo de
relación entre ellas.
β: Referida a las características de los trabajos, y que en nuestro caso tendrán
prioridad en el orden de procesamiento en función de las reglas de despacho que
apliquemos de las 24 que se van a emplear. Además cada trabajo tendrá una fecha
de entrega o fecha en la que el trabajo debe estar finalizado.
20
ϒ: Referida a las funciones objetivo que se pretende optimizar, y que en nuestro
caso se estudiarán seis objetivos distintos como veremos a continuación.
En cualquier problema de programación de la producción el número de máquinas
empleadas en el proceso como el número de trabajos se consideran finitos. Por tanto se
suele utilizar “n” para indicar el número de trabajos y “m” como el número de máquinas.
Cuando queremos referirnos a un trabajo en concreto se emplea el subíndice j, siendo i el
respectivo subíndice para referirnos a la máquina en la posición i-ésima, es decir:
Sea J= { } el conjunto de trabajos a realizar.
Sea M= { } el conjunto de máquinas donde se van a procesar los
distintos trabajos.
Como ya hemos explicado anteriormente, el trabajo se centrará en escenarios de
máquinas paralelas donde cada trabajo podrá ser procesado en cualquiera de las
máquinas disponibles.
NOTACIÓN
Número de trabajos en el sistema N
Número de máquinas en el sistema M
Trabajo concreto j
Máquina concreta i
Maquinas idénticas en paralelo Pm
Tiempo de proceso por máquina y trabajo
Tiempo de puesta a punto de máquina
Fecha de finalización de trabajo
Peso de importancia de trabajo
Tabla 1: Notaciones de Programación de la producción
DATOS DEL PROBLEMA 3.2
Tiempo de proceso ( ): Representa el tiempo de proceso del trabajo j en la maquina i. A
veces el subíndice i se puede omitir en caso de que el tiempo de proceso sea indiferente
de la maquina en la que se procese dicho trabajo.
21
(Fechas de entrega o Due date): Representa la fecha de finalización del trabajo, es
decir, la fecha acordada con el cliente de finalización del trabajo y entrega del mismo. Esta
fecha se puede vencer, pero normalmente suele conllevar algún tipo de penalización en el
acuerdo con el cliente.
OBJETIVOS DE OPTIMIZACION 3.3
Durante este estudio, dadas las reglas de despacho descritas en próximo capítulo y para
los distintos escenarios, buscaremos obtener los resultados en función de distintos
objetivos, es decir, las distintas metas que se pueden plantear en el escenario, para
concluir posteriormente cual regla de despacho resulta preferible u óptima, para cada uno
de los objetivos que vamos a describir.
3.3.1 REFERENTES A INSTANTES DE FINALIZACION
Makespan ( ): Finalización del último trabajo, y por tanto de todos. Es sin
duda uno de los objetivos principales respecto a la planificación de la
producción y su posterior programación.
{ }, siendo el tiempo de finalización de cada trabajo j.
Suma de tiempos de finalización ( ): Suma de los tiempos de finalización
de cada uno de los distintos trabajos.
3.3.2 REFERENTES A FECHAS DE ENTREGA
Retraso ( : Es la diferencia entre la fecha de entrega y la fecha de finalización del
trabajo. Un retraso positivo significaría que la fecha de finalización no ha superado
la fecha límite de entrega del mismo al cliente, al contrario, un retraso con signo
negativo supondría que el trabajo se ha finalizado con fecha posterior al de
entrega con la consiguiente posible sanción.
22
Para este retraso estableceremos dos objetivos de optimización:
Retraso total: Sumatorio del retraso de cada uno de los trabajos que
tengan que ser procesados:
Retraso máximo: Valor máximo del retraso de entre los retrasos de cada
uno de los trabajos que tengan que ser procesados.
Tardanza ( : Es el máximo en el intervalo entre 0 y el retraso positivo, es decir, la
tardanza será siempre mayor que 0. Se suele utilizar en casos en lo que podemos
tener penalizaciones por vencimiento de la fecha de entrega.
(
Trabajo tardío : Vale la unidad si la tardanza es mayor que 0, y 0 en caso de lo
contrario.
23
4. REGLAS DE DESPACHO
En este capítulo vamos a definir las distintas reglas de despacho de las cuales haremos uso
para el estudio. Éstas nos permiten definir las prioridades a la hora de ser procesadas
entre los distintos trabajos que nos encontremos en cualquier tipo de fábrica. Así, las
reglas de despacho se basan en datos simples del producto como pueden ser los tiempos
de procesamiento o las fechas de vencimiento o en combinaciones entre ellas, para
establecer a través de algunos de estos datos un orden en el procesamiento de los
distintos trabajos que tenga una fábrica.
Ilustración 2: Evaluación de reglas de despacho. Juan R. “Aplicación de las reglas de despacho”.
24
Para el presente estudio seguiremos el proceso de generación de reglas de despacho
propuesto por Framiñan et al. (2003). De esta forma vamos a partir de tres datos
principales, formando tres grandes grupos de reglas de despacho, a cada uno de los cuales
le aplicaremos 8 secuencias de combinación diferentes dando lugar a un total de 24 reglas
de despacho diferentes. Como veremos posteriormente estas reglas de despacho serán
sometidas todas y cada una de ellas a los objetivos de optimización, estableciéndose las
diferencias oportunas entre ellas, en función de su comportamiento,
Procedemos a explicar a continuación la creación de las 24 reglas de despacho:
Los tres grupos iniciales de los cuales vamos a partir son:
: Vector con la suma para cada uno de los trabajos del tiempo de
proceso en todas las maquinas en las que puede ser procesado.
Vector con la fecha de entrega correspondiente a cada uno de los trabajos.
: Vector con el tiempo mínimo de proceso para cada trabajo de entre
todas las maquinas en las que pueden ser procesados.
A partir de cada uno de estos 3 vectores (suma de tiempos de proceso para cada uno de
los trabajos, fechas de entrega, y tiempo mínimo de proceso para cada trabajo de entre
todas las máquinas) se obtendrán 8 distintas secuencias, resultado de distintas
alternativas, cada una de las cual utilizaremos como reglas de despacho y que se explican
a continuación.
Para simplificar la comprensión de cada alternativa se mostrará un ejemplo visual en cada
una de ellas, observando los movimientos que se realizan para su ordenación final:
Función Creciente: Disposición de los datos de la secuencia en orden creciente, es
decir, de menor a mayor.
Suponiendo los datos reflejados en el siguiente vector como la suma de tiempos
de proceso para cada trabajo de entre todas las máquinas en las que puede ser
procesado, la secuencia creciente de esos tiempos de proceso seria:
25
Función Decreciente: Disposición de los datos de la secuencia en orden
decreciente, es decir, de mayor a menor.
Suponiendo los datos reflejados en el siguiente vector como tiempos de proceso
para cada trabajo de entre todas las máquinas en las que puede ser procesado, la
secuencia decreciente de esos tiempos de proceso seria:
Función Valley: Esta regla de despacho se obtiene a partir de la función creciente
mediante una combinación donde el primer elemento se almacena en la primera
posición del nuevo vector; el segundo en la última posición del nuevo vector, el
tercer elemento en la segunda posición del nuevo vector, el cuarto elemento en la
penúltima posición, y así sucesivamente. Así, ordenamos los trabajos como un
“valle”, donde los valores más bajos se van a ir almacenando en la parte central
del nuevo vector y los valores más altos en los extremos.
Para obtener esta secuencia, previamente se ha tenido que realizar la función
creciente, a partir de la cual, se puede proceder a realizar la función Valley.
Suponiendo los datos reflejados en el siguiente vector como la suma de tiempos
de proceso ( ), la secuencia Valley obtenida a partir de la secuencia creciente
de esos tiempos de proceso seria:
26
Función Hill: Esta regla de despacho se obtiene a partir de la decreciente con la
misma función con la que se obtiene el vector Valley, únicamente que partimos
del vector inverso al creciente. Así, para obtener esta secuencia, previamente se
ha tenido que realizar la función decreciente, a partir de la cual, se puede
proceder a realizar la función Hill.
Por tanto, y al contrario que en el anterior vector, ordenamos los trabajos como
una “colina” donde los valores más altos se situarán en el centro mientras que en
los extremos tendremos los valores más bajos.
Suponiendo los datos reflejados en el siguiente vector como tiempos de proceso,
la secuencia Hill obtenida a partir de la secuencia decreciente de esos tiempos de
proceso seria:
Función HI/LOHI: Esta regla de despacho se obtiene también a partir de la
creciente mediante una función donde el primer elemento del vector de la
función creciente ocupa la primera posición del nuevo vector, el último elemento
ocupa la segunda posición del nuevo vector, el segundo dato del vector ocupa la
tercera posición del nuevo vector, y así sucesivamente. Es decir, vamos alternando
un primer valor inicial bajo seguido de un segundo valor alto y así de forma
continuada.
Suponiendo los datos reflejados en el siguiente vector como tiempos de proceso,
la secuencia HI/LOHI obtenida a partir de la secuencia creciente de esos tiempos
de proceso seria:
27
Función HI/HILO: Esta regla de despacho se obtiene a partir de la decreciente
mediante la misma función con la que se obtiene el vector de la función HI/LOHI
solo que en este caso partimos de un vector distinto, en este caso el decreciente.
Es decir, alternamos un primer valor alto seguido de uno bajo y así de forma
continuada.
Suponiendo los datos reflejados en el siguiente vector como tiempos de proceso,
la secuencia HI/HILO obtenida a partir de la secuencia decreciente de esos
tiempos de proceso seria:
Función LO/HILO (inversa de la HI/LOHI): Esta regla de despacho se obtiene a
partir de la HI/LOHI, haciendo la inversa de la misma, es decir, para llegar a esta
función previamente habrá que realizar la HI/LOHI.
Así, el primer número de ese vector ahora pasará a ser el último, el segundo
pasará a ser el penúltimo y así sucesivamente.
28
Función LO/LOHI (inversa de la HI/HILO): Esta regla de despacho se obtiene a
partir de la HI/HILO, haciendo la inversa de la misma, es decir, para llegar a esta
función previamente habrá que realizar la HI/HILO.
Así, el primer número de ese vector ahora pasará a ser el último, el segundo
pasará a ser el penúltimo y así sucesivamente.
En la Ilustración 3 podemos ver donde se “sitúan” los valores para cada una de las
secuencias anteriormente descritas.
Por una parte vemos como secuencias como la Creciente o la Decreciente tienen sus
valores elevados en la parte inicial y final respectivamente.
Por otro lado las secuencias Hill y Valley tienen sus valores más elevados y menores en la
parte central, respectivamente dando ese aspecto de colina y de valle anteriormente
descrito.
Por último podemos también observar como las últimas 4 secuencias descritas, la HI/LOHI,
la HI/HILO, y las respectivas inversas de ambas tienen sus valores de forma mucho más
distribuida a lo largo de la secuencia, apreciándose únicamente valores algo más elevados
o menores en la parte inicial y final de las secuencias, siendo no obstante distribuido de
forma mucho más uniforme que el resto.
29
Ilustración 3: Distribución de valores en las reglas de despacho. J.M.Framiñán (2003) “Different initial sequences for the heuristic of Nawaz, Enscore and Ham to minimize makespan, idletime or flowtime in the static permutation flowshop sequencing problem”.
30
5. METODOLOGI A
INTRODUCCIÓN 5.1
En el presente documento se hace un estudio del comportamiento de las reglas de
despacho en la programación de los trabajos para la producción. Para ello se utilizará el
Code::Blocks el cual nos permitirá crear todas las funciones necesarias para desarrollar
nuestros escenarios de partida, al igual que aquellos objetivos a los cuales se quieren
llegar y las 24 reglas de despacho anteriormente descritas y que se someterán a todos los
objetivos de optimización planteados.
Una vez creados los distintos modelos de programación de la producción, así como los
distintos escenarios contemplados en el trabajo, los cuales veremos más detalladamente a
continuación, se ha procedido a estudiar los resultados trasladando los mismos a
Microsoft Excel, siendo este un software, que permite crear tablas, y calcular y analizar los
datos obtenidos.
Así, a través de las hojas de cálculo, debido a las utilidades descritas, que facilitan las
operaciones matemáticas de números, edición de fórmulas y la creación intuitiva y rápida
de tablas, nos facilitará reflejar los datos mediante gráficas visuales, explicando todo el
análisis y conclusión final del trabajo en el capítulo posterior de “Resultados” y de
“Conclusiones”.
4.2 CODE::BLOCKS
Como ya hemos indicado anteriormente, mediante el programa Code::Blocks hemos
planteado, desarrollado y ejecutado, unos escenarios objetos de estudio.
Este programa informático está formado por un conjunto de herramientas para el
desarrollo de programas en lenguaje C y C++. Dado que Code::Blocks es únicamente la
interfaz del entorno de desarrollo, existe la posibilidad de complementarlo con una gran
variedad de compiladores, usando en el presente estudio el compilador GCC, en su versión
MinGW.
31
A fin de facilitar la compresión del presente documento, únicamente se mostrará en el
mismo una parte muy reducida del código C elaborado para el estudio. El código completo
en C se adjunta en formato digital.
GENERACIÓN DE LOS ESCENARIOS DE PARTIDA 5.2
5.2.1 ELEMENTOS Y CARACTERISTICAS
Todos los escenarios donde se ejecutarán las distintas reglas de despacho y calcularán sus
objetivos, están formados por una serie de elementos que constituirán las distintas
fábricas con características concretas. Posteriormente, los resultados serán analizados,
obteniendo unas conclusiones en función de las características generales de las fábricas.
Así por tanto se crean en primer lugar una serie de instancias, las cuales estarán, formadas
por:
Número de trabajos:
Serán en número total de tareas que tenga que realizar la fábrica. Cada uno de estos
trabajos tendrá que ser asignado a una máquina para ser procesado tardando en cada
máquina un tiempo distinto en finalizarse. Es decir, un mismo trabajo T1 puede tardar
10s en ser procesado en una maquina M1 sin embargo puede tardar 20s en ser
procesado en una maquina distinta M2. Esto es debido a que, con objeto de hacer un
estudio que abarque el mayor número de posibilidades, las máquinas que conforman
una fábrica, no tienen que tener idénticas características y por tanto sus tiempos de
proceso, como ya hemos comentado pueden variar para un mismo trabajo.
También con objeto de abarcar el mayor intervalo posible de escenarios, como
variable de número de trabajos en las distintas fábricas se han dispuesto 4 opciones
posibles, siendo estas 50, 100, 200, 500 número de trabajos.
Número de máquinas:
Serán el número total de dispositivos que se encuentren en la fábrica para procesar
los distintos trabajos. Como ya hemos comentado, estas máquinas no serán iguales
unas a otras y por tanto sus características respecto a los tiempos de proceso variarán
entre unas u otras reflejando de manera más real los datos obtenidos.
32
En este caso, se han dispuesto de 3 opciones posibles de número de máquinas en las
fábricas que se van a estudiar, siendo estas de 5,10,20.
Factor R y factor T:
Estos dos factores son necesarios para limitar en ambos extremos las fechas de
entrega de cada trabajo. Así, estas fechas de entrega para cada trabajo serán acordes
a las características de este, principalmente del tiempo de proceso del trabajo,
haciendo también que el estudio sea más realista.
Para R los posibles valores que formarán un escenario serán 0.2, 0.6 y 1 y para T serán
de 0.2, 0.4 y 0.6.
5.2.2 FORMACIÓN DEL ESCENARIO
Estos elementos anteriormente descritos se combinarán entre ellos para asegurar la
creación de escenarios que incluyan todas las posibles opciones. Para asegurar esta
combinación entre los distintos elementos que conforman un escenario se realizará
dentro del code::Blocks un árbol de bucles incluyendo un bucle por cada elemento. Es
decir la programación para la creación de las instancias se iniciará con un bucle para el
número de trabajos, dentro de este bucle se incluirá otro bucle para el número de
máquinas y así sucesivamente hasta llegar a los cuatro bucles, uno dentro de otro,
asegurando que se cumplen todas las combinaciones posibles de estos elementos y por
tanto haciendo un estudio con gran variedad de escenarios lo que nos permitirá por una
parte ver cómo responden las distintas reglas de despacho a escenarios muy dispares y
además, concluir que regla es más favorable según las características que tenga la fábrica.
Además de estos 4 bucles se incluirán un quinto el cual tendrá únicamente la función de
repetir 5 veces para una misma instancia con sus características concretas todo el proceso
de desarrollo de las funciones objetivo combinándolas con las reglas de despacho como
veremos a continuación.
Esta repetición para un mismo escenario de todas las funciones objetivo y las respectivas
reglas de despacho es debido a que dentro de esos bucles se crearán características de
forma aleatoria como pueden ser el tiempo de proceso de los distintos trabajos en una
máquina y por tanto para hacer muestras y un estudio fiable deben realizarse varias
repeticiones para posteriormente hacer una media ponderada entre todos los resultados
permitiendo un análisis mucho más fiable.
33
A continuación, se refleja el inicio de la función principal “main” en la cual se pueden ver
el árbol de bucles inicial para la creación de las instancias, que nos permiten cada una de
estas con unas características concretas:
Ilustración 4: Bucles de formación de las instancias en Code::Blocks. Elaboración propia.
5.2.3 ELEMENTOS ADICIONALES DE CADA INSTANCIA
Cada instancia está formada por un número de máquinas, un número de trabajos a
realizar y unos factores de T y R concretos junto a una serie de características
imprescindibles que conforman en conjunto cada escenario determinado al cual se le
aplicarán las distintas funciones objetivo, combinadas con las reglas de despacho.
Estas características adicionales que conforman cada una de las instancias son:
34
Tiempo de proceso:
Como ya se ha explicado anteriormente está referido al tiempo que requiere cada
máquina para cada trabajo. Así cada máquina tiene un tiempo de proceso distinto
para cada uno de los trabajos y entre dos máquinas los tiempos de proceso varían.
Además, para cada fabrica estos tiempos también variarán, es decir, para la
primera fábrica, el tiempo de proceso del trabajo 1 en la máquina 1 será distinto
al tiempo de proceso del trabajo 1 en la maquina 1 para la segunda fábrica creada.
Estos tiempos de proceso se generarán de manera aleatoria dentro del árbol de
bucles que forman cada una de las instancias como podemos ver en la anterior
imagen en un intervalo uniforme de 1 a 100, mediante el uso de la función rand, la
cual nos transfiere ese carácter aleatorio.
Fechas de entrega:
Estos tiempos, los cuales son independientes para cada trabajo, corresponden a la
fecha límite en la que “deberían” estar acabados por cualquier decisión, bien sea,
por fecha de entrega a cliente, o fecha intermedia de finalización en un proceso
de fabricación cualquiera en el que se requiera terminar como muy tarde en esa
fecha para empezar otro proceso.
En muchas ocasiones, la fecha de finalización de los trabajos es posterior a la
fecha de entrega provocando principalmente tardanzas, uno de los objetivos que
se estudian en el presente trabajo, y que suponen uno de los principales puntos a
minimizar por las empresas, ya que implican mayores costes en la mayoría de los
casos.
En este caso las fechas de entrega se hicieron mediante un pequeño algoritmo
que contiene entre otros los factores T y R, lo cual nos permite crear unas fechas
de entrega coherentes con el escenario creado y las funciones objetivo a usar en
cada momento.
El algoritmo es el siguiente:
35
lustración 5: Bucle de formación de fechas de las fechas de entrega en Code::Blocks. Elaboración propia.
Dónde:
o VecT[t] y VecR[r], corresponden a los vectores T y R respectivamente
antes explicados.
o Parte, es una posible cota inferior del posible valor del objetivo que
vayamos a calcular (makespan, tardanza,…).En este caso puesto que
ese objetivo variará puesto que se analizarán varios de ellos, se ha
optado por tomar como cota inferior la suma de los tiempos de
proceso mínimos (es decir, el menor tiempo de proceso de un trabajo
en todas las máquinas) y dividiendo la suma esos tiempos entre el
número de máquinas que tenga ese escenario concreto.
o NúmeroAleatorio, es un número decimal aleatorio entre 0 y 1.
o Nearest, es el número entero inferior del creado en la variable
dueDate.
Aún con este algoritmo en algunos casos donde las fechas de entrega sean ligeramente
inferiores a 0. En estos casos se ha creado esta fecha de entrega como 0.
CREACIÓN DE LAS FUNCIONES. 5.3
Para poder llegar a los distintos objetivos que se plantean en el presente trabajo, la
programación se debe de hacer de forma parcial.
36
Estas distintas divisiones que componen en conjunto toda la parte de programación del
presente trabajo se denominan funciones, las cuales se pueden crear por separado para
posteriormente hacer un uso combinado de todas ellas que nos lleve como punto final a
nuestro objetivo.
Así por tanto tendremos una función principal en la cual se crearán las distintas fabricas
(asignándole sus distintos elementos mediante los bucles que hemos explicado
anteriormente) y en la cual, también, iremos nombrando al resto de funciones creadas de
forma anexa a esta, con la idea de poder ir combinándolas como veremos más adelante.
5.3.1 CREACIÓN DE LAS FUNCION PRINCIPAL
En esta función principal se han definido numerosos parámetros, tales como números de
trabajos, números de máquinas, tiempos de proceso en cada máquina para cada trabajo,
fechas de entrega, de los cuales vamos a explicar detalladamente y uno por uno a
continuación cómo se han obtenido cada uno de esos datos para así poder crear los
distintos escenarios a partir de los cuales se ha hecho el presente estudio.
5.3.2 CREACIÓN DE LAS FUNCIONES OBJETIVO
Cada una de las funciones objetivo se han ejecutado para cada escenario. Estas funciones
creadas en Code::Blocks reciben toda la información de ese escenario concreto para
posteriormente calcular el objetivo para el cual ha sido creada. Es decir, por ejemplo, se
ha creado una función de cálculo de la tardanza, en un escenario concreto. Este escenario
se compone de un número de trabajos que necesitan ser procesados, un número de
máquinas para procesar dichos trabajos, unas fechas de entrega y unas reglas de
despacho que determinan el método o secuencia para procesar estos trabajos. Toda esta
información se le aporta a cada uno de los objetivos a través de las funciones creadas y
mediante un algoritmo calculamos el objetivo deseado.
Así pues, se ha creado una función en C dentro del programa, para cada uno de los
objetivos que se han querido reflejar en el presente trabajo.
37
5.3.3 EJEMPLO DE FUNCIÓN OBJETIVO EN C
A continuación reflejamos una de las funciones objetivo realizadas en la programación
para su posterior estudio mediante las reglas de despacho y la heurística NEH, en concreto
la función objetivo de la tardanza total:
Ilustración 6: Función de tardanza total creada en Code::Blocks. Elaboración propia.
En este caso como en la mayoría del resto se puede observar como la función objetivo a
su vez se nutre de otra serie de funciones auxiliares que permiten hacer la construcción de
la misma algo más sencilla permitiendo que algunos de los pasos realizados puedan servir
para varias de ellas.
38
5.3.4 CREACIÓN DE LAS FUNCIONES DE LAS REGLAS DE DESPACHO.
Como ya se ha descrito en el capítulo 4 del trabajo, se han tenido en cuenta 24 reglas de
despacho distintas para nuestro estudio con el objetivo de ver el comportamiento
respecto a cada escenario.
Estas 24 reglas de despacho se articulan respecto a tres vectores iniciales distintos como
ya se ha explicado anteriormente:
1. El sumatorio para cada trabajo de los tiempos de proceso de todas las maquinas en
las que puede ser procesado.
2. Las fechas de entrega de cada trabajo.
3. El tiempo mínimo para cada trabajo de entre todas las maquinas en las que puede
ser procesado.
Así, a la hora de desarrollar las reglas de despacho en el programa se han hecho 8
funciones que sirven indistintamente para cada una de las 3 secuencias y que permite
recibir cualquier secuencia como información para posteriormente obtener mediante el
algoritmo la regla de despacho deseada, así como el número de trabajos a procesar y el
número de máquinas presentes en cada escenario concreto.
Gráficas 1: Composición de las 24 reglas de despacho. Elaboración propia.
0
1
2
3
4
5
6
7
8
9
Sec. ∑_j Pij Sec. Dj Sec. Min_i Pij
Inversa HI/HILO
HI/HILO
Inversa HI/LOH1
HI/LOH1
Hill
Valley
Decreciente
Creciente
39
Como vemos en la tabla se han creado 8 algoritmos para la creación de las reglas de
despacho, que aplicadas a las tres secuencias distintas dan el total de las 24 reglas de
despacho inicialmente citadas.
5.3.5 CREACIÓN DE FUNCIONES AUXILIARES
Además de todas las funciones anteriormente descritas se han realizado otras que, si bien
no son tan importantes, o incluso se podría haber prescindido de algunas de ellas, han
servido para facilitar y agilizar todo el trabajo tanto de creación del resto como de otras
partes del trabajo.
Algunas de estas funciones son:
Función de orden creciente: Ésta funciones nos ha permitido, mediante entrada de
información como número de trabajos, y una secuencia de entrada en forma de vector,
ordenar el mismo de forma creciente
Función de orden decreciente: Al igual que la anterior, pero en este caso la secuencia de
entrada que se recibe, se ordena de forma decreciente.
Función de números aleatorios: Función usada para generar números aleatorios dentro de
un intervalo concreto, para algoritmos como en la creación de fechas de entrega.
5.3.6 COMBINACIÓN DE LAS FUNCIONES PARA LA CREACIÓN DE ESCENARIOS
Todo el trabajo de programación realizado ha permitido obtener los resultados esperados
a través de una combinación de todas estas funciones anteriormente descritas. El
procedimiento realizado dentro de la función principal, para todos los objetivos, con cada
una de las reglas de despacho y en todas las instancias ha sido el siguiente:
1. En primer lugar, la creación del árbol de bucles ya descrito anteriormente que
nos va creando las distintas fabricas (con sus elementos concretos). Para cada
fábrica concreta se crean los tiempos de proceso de las máquinas y las fechas de
40
entrega de los trabajos acordes al objetivo y a los tiempos de proceso que se le
asignen a cada trabajo.
Así, obtenemos todos los posibles escenarios combinando las distintas
características que los componen asegurando un estudio amplio y variado que
nos permite sacar un mayor número de conclusiones.
2. Para cada una de las fábricas dentro del árbol de bucles se ejecuta una regla de
despacho. Así, al nombrar la función, esta se ejecuta, ordenándose los trabajos
de la fábrica en función de la misma. Esta regla de despacho tendrá como punto
de partida uno de los tres vectores que forman los tres grandes grupos de los
cuales derivan las reglas de despacho, la suma de tiempos de proceso para cada
trabajo de entre todas las máquinas en las que puede ser procesado, el tiempo
mínimo de proceso para cada trabajo de entre todas las máquinas en las que
puede ser procesados o las fechas de entrega de cada trabajo.
3. Una vez los trabajos están ordenados atendiendo a la regla de despacho en
concreto que se desea analizar, el siguiente paso sería calcular uno de los
objetivos. Así al igual que con la regla de despacho, se llama a la función del
objetivo de optimización que se quiere calcular, a la cual le pasaremos como
secuencia de trabajos la anteriormente calculada en el punto 2 a través de la
regla de despacho. Por lo tanto este objetivo de optimización se irá calculando,
procesando los trabajos en el orden establecido por la regla de despacho.
4. Por otra parte para el posterior análisis que se hace de todo los datos que se
obtienen del Code::Blocks, se nombra también la función de la Heurística NEH
que posteriormente explicamos de forma especial, pues se trata de un algoritmo
que nos va a permitir obtener a partir de una secuencia inicial dada, y mediante
distintas iteraciones, un resultado que aunque no tiene por qué ser óptimo si es
una buena solución ante el objetivo con el que queremos trabajar. Así, teniendo
por una parte el resultado obtenido mediante una regla de despacho cualquiera
y un objetivo de optimización concreto, y por otra parte el resultado para este
objetivo de optimización a través de la heurística NEH, lo siguiente será ver
cuánto se aproxima la regla de despacho a esta heurística, y por tanto poder
41
establecer el buen o mal resultado que nos proporciona para cada uno de los
objetivos descritos anteriormente.
42
6. HEURI STICA NEH
GENERACIÓN DE LA HEURÍSTICA 6.1
Una de las principales conclusiones que se pretenden extraer de este trabajo es cuánto de
buenas son cada una de las reglas de despacho para los distintos objetivos planteados.
Este análisis sería imposible de plantear, sin saber cómo de buenos pueden llegar a ser las
secuencias en cada objetivo, es decir sin saber cuál es el óptimo para cada objetivo o en su
defecto una aproximación a este, con el cual poder comparar el resultado obtenido para la
función objetivo con cada una de las reglas de despacho.
En este caso, utilizaremos la heurística NEH, planteada por M. Nawaz, Jr. E. E. Enscore, y l.
Ham, en el artículo “A Heuristic Algorithm for the m-Machine, n-Job Flow- shop Sequencing Problem”, para obtener soluciones aproximadas y dado que el estudio planteado emplea” variables con rangos elevados, como puede ser el caso de escenarios donde el número de trabajos es de 500 (a fin de representar entornos de trabajo reales), realizándose a su vez numerosas repeticiones del mismo, obtener el óptimo resulta imposible en tiempos razonables. Esta heurística NEH tiene dentro de la programación de la producción y en concreto
dentro del “scheduling” una muy buena aceptación que sin llegar a la solución óptima del
problema que se está planteando, se obtiene una secuencia de prioridad de trabajos, y
por tanto una solución aproximada, que se acerca a este valor del óptimo y que nos
permite tomar dichas soluciones como soluciones sobresalientes con las que comparar los
distintos resultados obtenidos mediante las secuencias creadas por las reglas de despacho
objeto de estudio en el presente trabajo.
Así, esta heurística se construye en diversos pasos:
Se realiza el sumatorio para cada trabajo de todos sus tiempos de proceso en cada
máquina, obteniendo por tanto para cada trabajo un tiempo.
∑
43
Estos tiempos se ordenan de forma decreciente. Es decir, aquel trabajo cuyo sumatorio de
tiempos sea mayor será el primero y así sucesivamente obteniendo la secuencia de
trabajos de forma descendente.
Una vez ordenados, se empieza con el proceso de prueba de la heurística a través de dicha
secuencia. Se empieza con una secuencia parcial inicial consistente únicamente en el
primer trabajo de dicha secuencia (k=1). A partir de ahí, para k=2,…,n se considera la
secuencia parcial anterior como determinada (Nº de trabajos= k-1) y se empieza a calcular
la función objetivo de las k subsecuencias (de k trabajos) insertando el trabajo k-ésimo en
todas las posiciones posibles de la subsecuencia k-1, eligiendo la de mejor valor para el
objetivo de entre todas ellas. La secuencia final en la iteración n es la solución de la
heurística NEH.
EJEMPLO HEURÍSTICA NEH 6.2
Para entender el procedimiento de la creación de esta heurística se procede a
continuación a la realización de un ejercicio ejemplo paso a paso.
Consideremos los siguientes elementos de una fábrica:
Sea J= 3, el número de trabajos a realizar.
Sea M=2, el número de máquinas en la fábrica.
Sean , , , , , , el tiempo de proceso del
trabajo j en la maquina i.
Se realizan los pasos descritos anteriormente:
1. Siendo ; .
2. Por tanto, el orden decreciente de los sería > > -> {1,3,2}.
3. Por último, se realiza la heurística teniendo en cuenta un objetivo. En este caso
será minimizar el Makespan (definido en el punto 2.3 Objetivos de optimización).
44
También hay que tener en cuenta que, para este trabajo, el uso de las máquinas se
hace derivando los trabajos a aquella máquina menos saturada, es decir, los
trabajos se irán adjudicando a aquella maquina cuyo tiempo de finalización de los
trabajos ya adjudicados sea menor.
Para la primera iteración k=1 se extrae únicamente el primer trabajo de la
secuencia decreciente del paso 2, es decir, esta primera secuencia estaría
formada únicamente por el trabajo 1 -> {1}.
Para la segunda iteración k=2 se combina la secuencia obtenida de la primera
iteración con el trabajo 3, insertando este trabajo en tantas posiciones como
sea posible de la secuencia de la iteración.
Por tanto, existe dos secuencias a analizar: {1,3} y {3,1}. En el primer caso J1
sería realizado en la M1 siendo el tiempo de proceso 5 y J3 seria realizado en la
M2 siendo el tiempo de proceso 1. Por tanto, el Makespan con esta secuencia
seria de 5.
En cambio, con la segunda secuencia el J3 seria realizado en la M1 siendo el
tiempo de proceso 4 y el J1 sería realizado en la M2 siendo el tiempo de
proceso 3. Por tanto, el Makespam sería de 4 y al mejorar la otra opción de
esta segunda iteración nos quedaríamos con esta secuencia {3,1}.
Para la tercera iteración k=3 se combina la secuencia obtenida de la iteración 2,
con el último trabajo de la secuencia decreciente, el 2, insertando este trabajo
en tantas posiciones como sea posible de la secuencia de la iteración.
Por tanto, ahora existen tres secuencias posibles: {2,3,1}, {3,2,1}, {3,1,2}. En el
primer caso J2 seria realizado en M1 con tiempo de proceso de 1, J3 sería
realizado en M2 con tiempo de proceso 1 y J1 seria realizado en M1 con tiempo
de proceso 5. Por tanto, el Makespan de esta secuencia sería de 6.
Realizando este mismo proceso para la secuencia {3,2,1} con un resultado de
Makespan de 5 y {3,1,2} con un resultado del Makespan de 5, concluiríamos
que las dos últimas secuencias serían la solución de la heurística NEH para este
ejercicio puesto que con ambas se obtiene el mismo resultado y son mejores
que la primera secuencia de esta última iteración.
45
CÓDIGO EN C DE LA HEURÍSTICA NEH 6.3
A continuación se expone la programación realizada para la heurística NEH, la cual es
realmente importante en el estudio como ya se ha explicado anteriormente pues nos
permite estimar una buena solución a los objetivos y nos permite a su vez comparar el
conjunto de reglas de despacho expuestas.
En este caso en concreto se está calculando para el objetivo suma de tiempos de
finalización (Total completion time):
46
47
Ilustración 7: Algoritmo de la heurística NEH realizado en Code::Blocks. Elaboración propia.
48
7. RESULTADOS
En este apartado presentaremos los resultados obtenidos, analizando cómo funcionan las
distintas reglas de despacho para cada una de las funciones objetivo, estableciendo
posteriormente una comparación entre ellas en función de lo favorables que sea el uso de
cada una de ellas en función del objetivo que se tenga en la fábrica. Además, dentro de
cada uno de los objetivos estableceremos diferencias en función de las características de
los escenarios planteados, es decir, según el número de trabajos y el número de máquinas
que presentan estos y también la influencia que hacen tanto el factor T y el factor R
empleados en la creación de las fechas de entrega.
En resumen, se hará un análisis exhaustivo de todos los resultados obtenidos de la
programación realizada, intentando a su vez combinar las distintas variables que forman
parte de cada uno de los escenarios, para obtener así, un mayor número de conclusiones
que sean realmente útiles.
Por tanto, para cada objetivo, se presentarán tres tablas, cada una de las cuales
pertenecientes a los tres grandes grupos en los que se engloban las reglas de despacho ya
explicados anteriormente, siendo estos, la suma de los tiempos para cada uno de los
trabajos de todas las maquinas en las que pueden ser procesados, el tiempo mínimo de
cada trabajo de entre todas las máquinas en que puede ser procesado y las fechas de
entrega, teniendo cada grupo 8 reglas de despacho, dando lugar a las 24 reglas de
despacho totales objeto de estudio.
En cada una de estas tablas se mostrarán los valores de ARPD obtenidos en cada uno de
los posibles escenarios creados para el trabajo.
Además para cada objetivo se creará un gráfico que mostrará los resultados obtenidos a
fin de poder establecer diferencias entre las 24 reglas de despacho.
FACTOR ARPD 7.1
49
Como ya hemos comentado anteriormente, el principal objetivo pasa por comparar y
analizar cada regla de despacho y saber funcionan estas respecto a cada función objetivo.
Por una parte, tenemos el valor NEH de cada función objetivo, es decir una aproximación
al óptimo de este, y por otro lado, tenemos el valor de cada regla de despacho para cada
función objetivo. Ahora tenemos que saber cuánto se acerca ese valor calculado para cada
regla de despacho al resultado de la heurística NEH, pudiendo concluir así que cuanto más
se acerque a ese valor, mejor se comportará dicha regla de despacho para ese objetivo y
permitiendo además establecer diferencias entre las reglas de despacho.
Para establecer esta aproximación entre ambos valores haremos uso del factor ARPD, el
cual simplemente es un porcentaje de dicha aproximación y el cual se calcula:
Siendo:
FO: El valor de la función objetivo para una regla de despacho concreta, y con unas
características concretas del escenario objeto de estudio tales como N.º trabajos, N.º
máquinas,..
NEH: El valor aproximado al óptimo de la función.
RESULTADOS PARA EL MAKESPAN 7.2
Analizamos este primer objetivo, el makespan, es decir, el tiempo de finalización del
último trabajo en ser procesado, empezando por las reglas de despacho derivadas de la
suma de tiempos de proceso para cada trabajo de todas las máquinas, siendo los
resultados obtenidos, los siguientes:
50
Tabla 2: ARPD Makespan - Reglas de despacho derivada de la suma de tiempos de procesos ( ).
En este caso es visible la igualdad en los resultados dentro de las distintas reglas de
despacho situándose el ARPD en un rango de (63.01,65.06) siendo así la diferencia
máxima de 2 puntos.
Como primera opción, siendo la que más se acerca a la heurística NEH tendríamos la
Secuencia Valley, prácticamente igualada con la función Decreciente, por otro lado, como
último lugar se situaría la función Hill, la cual con un ARPD=65,05 estaría más alejada de la
heurística NEH.
Analizamos ahora las reglas de despacho derivadas del tiempo mínimo para cada trabajo
de entre todas las máquinas en las que puede ser procesado:
decreciente creciente Hill valley HI/Hilo Hi/lohi HI/Hilo inv. HI/lohi inv.
Tabla 21: Ranking de posición global de cada Regla de despacho.
MakespanTardanza
totalRetraso total
Suma tiempos
de
finalización
Suma trabajos
tardios
Máximo
retraso
decreciente 3 24 24 23 24 2
creciente 23 1 1 1 1 24
Hill 24 19 3 19 3 20
valley 2 9 13 3 13 6
HI/Hilo 22 16 17 16 17 17
Hi/lohi 5 5 8 10 7 8
HI/Hilo inv. 18 21 19 17 20 18
HI/lohi inv. 16 18 12 13 12 15
decreciente 17 23 23 22 23 1
creciente 6 2 2 4 2 23
Hill 21 12 5 18 5 7
valley 19 14 14 6 14 21
HI/Hilo 13 22 21 9 21 16
Hi/lohi 14 20 22 20 22 13
HI/Hilo inv. 4 4 6 15 6 5
HI/lohi inv. 15 3 4 5 4 19
decreciente 7 6 7 2 8 9
creciente 11 7 20 24 19 4
Hill 10 17 16 7 16 11
valley 20 13 18 21 18 22
HI/Hilo 12 15 15 14 15 10
Hi/lohi 9 10 11 12 11 12
HI/Hilo inv. 1 11 10 11 10 3
HI/lohi inv. 8 8 9 8 9 14
Ranking de posiciones por objetivos
Funciones objetivo
REGLAS DE
DESPACHO
Suma de
tiempos
para cada
trabajo de
todas las
maquinas
Tiempo
minimo
para cada
trabajo de
entre todas
las
maquinas
Fechas de
entrega
para cada
trabajo
79
9. BIBLIOGRAFI A
Michael L.Pinedo. Scheduling Theory, Algorithms, and Systems. 4ª Edición. Nueva York:
Springer, 2012.
J.Santos Organización de la producción II. Planificacion de procesos industriales, Unicopia,
Tecnun, 2007.
J. M. Framinan , R. Leisten & C. Rajendran (2003): Different initial sequences for the
heuristic of Nawaz, Enscore and Ham to minimize makespan, idletime or flowtime in the
static permutation flowshop sequencing problem, International Journal of Production
Research, 41:1, 121-148
Velasco Sánchez, Juan, Gestión de la producción en la empresa: planificación,
programación y control, Ed. Pirámide, 2013.
Wollmann, Thomas E.; Berry, Willian L.; Whybark, D. Clay: Gerencia Sistemas de
Planificación y Control de la Producción. Ed. Irwin.
Vinicius A. Armentano; Débora P. Ronconi (1998) Tabu search for total tardiness
minimization in flowshop scheduling problems, computers & operations research,26, 219-
235.
C.N Potts; L.N Van Wassenhove (1982) A descomposition algorithm for the single machine
total tardiness problem,1.
R. L. Graham, E. L. Lawler, J. K. Lenstra, and A. H. G. Rinnooy Kan. Optimization and Approx-imation in Deterministic Sequencing and Scheduling: A Survey. Annals of Discrete Mathematics,5:287–326, 1979.
[En linea] http://www.codeblocks.org/ Code::Blocks IDE User Guide JN-UG-3028