• No se han encontrado resultados

Trabajo Fin de Grado Proyecto Fin de Grado Grado en Ingeniería de las Tecnologías. Grado en Ingeniería de las Tecnologías Industriales

N/A
N/A
Protected

Academic year: 2021

Share "Trabajo Fin de Grado Proyecto Fin de Grado Grado en Ingeniería de las Tecnologías. Grado en Ingeniería de las Tecnologías Industriales"

Copied!
139
0
0

Texto completo

(1)

Dep. Organización Industrial y Gestión de

Empresas II

Escuela Técnica Superior de Ingeniería

Universidad de Sevilla

Sevilla, 2014

Proyecto Fin de Grado

Grado en Ingeniería de las Tecnologías

Industriales

Análisis de la Programación de Operaciones en un

taller de flujo con operaciones perdidas

Autor: Luis Arévalo Evans

Aurelio López Madroñal

Tutor: Pablo Cortés Achedad

Carlos Arango Pastrana

Grado en Ingeniería de las Tecnologías

Industriales

Análisis de la Programación de Operaciones en un

taller de flujo con operaciones perdidas

Autor: José María Mena Ramírez

Tutor: José Manuel Framiñan Torres

Dep. Organización Industrial y Gestión de Empresas I

Escuela Técnica Superior de Ingeniería

Universidad de Sevilla

Sevilla, 2014

(2)
(3)

Trabajo Fin de Grado Ingeniería

de las Tecnologías Industriales

Análisis de la Programación de Operaciones en

un taller de flujo con operaciones perdidas

Autor:

José María Mena Ramírez

Tutor:

Dr. José Manuel Framiñan Torres

Dep. de Organización Industrial y Gestión de Empresas I

Escuela Técnica Superior de Ingeniería

Universidad de Sevilla

Sevilla, 2014

(4)
(5)

Autor: José María Mena Ramírez

Tutor: Dr. José Manuel Framiñan Torres

El tribunal nombrado para juzgar el Proyecto arriba indicado, compuesto por los siguientes miembros:

Presidente:

Vocales:

Secretario:

Acuerdan otorgarle la calificación de:

Sevilla, 2014

(6)

Agradecimientos

Este trabajo es la culminación a años de esfuerzo y duro trabajo, llevando consigo un gran aprendizaje y desarrollo personal. Agradecer a mis padres y hermano por creer en mí y por la confianza que tienen depositada en mi persona. A todos los que me rodean y en especial a Alicia por el apoyo incondicional día tras día.

Por último, agradecer a José Manuel Framiñan Torres por su tiempo, dedicación y guía durante todo este trabajo.

José Mª Mena Ramírez Sevilla, 2014

(7)

Índice

1. Introducción ... 1

2. Objeto ... 5

3. Metodología... 9

4. Desarrollo de los algoritmos ... 11

4.1 Identificar algoritmos ... 11

4.1.1 Algoritmo Random ... 11

4.1.2 Algoritmo Tiempos medios ... 12

4.1.3 Algoritmo NEH ... 13

4.2 Pseudocódigos de los algoritmos ... 16

4.2.1 Pseudocódigo Random ... 16

4.2.2 Pseudocódigo Tiempos medios ... 16

4.2.3 Pseudocódigo NEH ... 17

5. Experimentación ... 18

5.1 Validación ... 18

5.2 Comparación de los algoritmos ... 48

6. Conclusiones ... 90

7. Bibliografía ... 93

8. Anexos ... 96

8.1 Anexo 1 ... 96

8.1.1 Código Algoritmo Random ... 96

8.1.2 Código Algoritmo Tiempos Medios ... 97

8.1.3 Código Algoritmo NEH ... 99

8.2 Anexo 2 ... 104

(8)

Índice de tablas

Tabla 1: Matriz de tiempos de ejecución de la tarea Ji en la máquina Mj.

Tabla 2: Valores promedio para el experimento de 50 trabajos y 10 máquinas. Tabla 3: Valores desviación para el experimento de 50 trabajos y 10 máquinas. Tabla 4: Porcentaje de mejora respecto a NEH para el experimento de 50 trabajos y

10 máquinas.

Tabla 5: Valores promedio para el experimento de 50 trabajos y 20 máquinas. Tabla 6: Valores desviación para el experimento de 50 trabajos y 20 máquinas. Tabla 7: Porcentaje de mejora respecto a NEH para el experimento de 50 trabajos y

20 máquinas.

Tabla 8: Valores promedio para el experimento de 50 trabajos y 30 máquinas. Tabla 9: Valores desviación para el experimento de 50 trabajos y 30 máquinas. Tabla 10: Porcentaje de mejora respecto a NEH para el experimento de 50 trabajos y 30 máquinas.

Tabla 11: Valores promedio para el experimento de 50 trabajos y 40 máquinas. Tabla 12: Valores desviación para el experimento de 50 trabajos y 40 máquinas. Tabla 13: Porcentaje de mejora respecto a NEH para el experimento de 50 trabajos y 40 máquinas.

Tabla 14: Valores promedio para el experimento de 50 trabajos y 50 máquinas. Tabla 15: Valores desviación para el experimento de 50 trabajos y 50 máquinas. Tabla 16: Porcentaje de mejora respecto a NEH para el experimento de 50 trabajos y 50 máquinas.

Tabla 17: Valores promedio para el experimento de 150 trabajos y 10 máquinas. Tabla 18: Valores desviación para el experimento de 150 trabajos y 10 máquinas. Tabla 19: Porcentaje de mejora respecto a NEH para el experimento de 150 trabajos y 10 máquinas.

(9)

Tabla 20: Valores promedio para el experimento de 150 trabajos y 20 máquinas. Tabla 21: Valores desviación para el experimento de 150 trabajos y 20 máquinas. Tabla 22: Porcentaje de mejora respecto a NEH para el experimento de 150 trabajos y 20 máquinas.

Tabla 23: Valores promedio para el experimento de 150 trabajos y 30 máquinas. Tabla 24: Valores desviación para el experimento de 150 trabajos y 30 máquinas. Tabla 25: Porcentaje de mejora respecto a NEH para el experimento de 150 trabajos y 30 máquinas.

Tabla 26: Valores promedio para el experimento de 150 trabajos y 40 máquinas. Tabla 27: Valores desviación para el experimento de 150 trabajos y 40 máquinas. Tabla 28: Porcentaje de mejora respecto a NEH para el experimento de 150 trabajos y 40 máquinas.

Tabla 29: Valores promedio para el experimento de 150 trabajos y 50 máquinas. Tabla 30: Valores desviación para el experimento de 150 trabajos y 50 máquinas. Tabla 31: Porcentaje de mejora respecto a NEH para el experimento de 150 trabajos y 50 máquinas.

Tabla 32: Valores promedio para el experimento de 250 trabajos y 10 máquinas. Tabla 33: Valores desviación para el experimento de 250 trabajos y 10 máquinas. Tabla 34: Porcentaje de mejora respecto a NEH para el experimento de 250 trabajos y 10 máquinas.

Tabla 35: Valores promedio para el experimento de 250 trabajos y 20 máquinas. Tabla 36: Valores desviación para el experimento de 250 trabajos y 20 máquinas. Tabla 37: Porcentaje de mejora respecto a NEH para el experimento de 250 trabajos y 20 máquinas.

Tabla 38: Valores promedio para el experimento de 250 trabajos y 30 máquinas. Tabla 39: Valores desviación para el experimento de 250 trabajos y 30 máquinas. Tabla 40: Porcentaje de mejora respecto a NEH para el experimento de 250 trabajos y 30 máquinas.

(10)

Tabla 41: Valores promedio para el experimento de 250 trabajos y 40 máquinas. Tabla 42: Valores desviación para el experimento de 250 trabajos y 40 máquinas. Tabla 43: Porcentaje de mejora respecto a NEH para el experimento de 250 trabajos y 40 máquinas.

Tabla 44: Valores promedio para el experimento de 250 trabajos y 50 máquinas. Tabla 45: Valores desviación para el experimento de 250 trabajos y 50 máquinas. Tabla 46: Porcentaje de mejora respecto a NEH para el experimento de 250 trabajos y 50 máquinas.

Tabla 47: Valores promedio para el experimento de 400 trabajos y 10 máquinas. Tabla 48: Valores desviación para el experimento de 400 trabajos y 10 máquinas. Tabla 49: Porcentaje de mejora respecto a NEH para el experimento de 400 trabajos y 10 máquinas.

Tabla 50: Valores promedio para el experimento de 400 trabajos y 20 máquinas. Tabla 51: Valores desviación para el experimento de 400 trabajos y 20 máquinas. Tabla 52: Porcentaje de mejora respecto a NEH para el experimento de 400 trabajos y 20 máquinas.

Tabla 53: Valores promedio para el experimento de 400 trabajos y 30 máquinas. Tabla 54: Valores desviación para el experimento de 400 trabajos y 30 máquinas. Tabla 55: Porcentaje de mejora respecto a NEH para el experimento de 400 trabajos y 30 máquinas.

Tabla 56: Valores promedio para el experimento de 400 trabajos y 40 máquinas. Tabla 57: Valores desviación para el experimento de 400 trabajos y 40 máquinas. Tabla 58: Porcentaje de mejora respecto a NEH para el experimento de 400 trabajos y 40 máquinas.

Tabla 59: Valores promedio para el experimento de 400 trabajos y 50 máquinas. Tabla 60: Valores desviación para el experimento de 400 trabajos y 50 máquinas. Tabla 61: Porcentaje de mejora respecto a NEH para el experimento de 400 trabajos y 50 máquinas.

(11)

Tabla 62: Valores promedio para el experimento de 500 trabajos y 10 máquinas. Tabla 63: Valores desviación para el experimento de 500 trabajos y 10 máquinas. Tabla 64: Porcentaje de mejora respecto a NEH para el experimento de 500 trabajos y 10 máquinas.

Tabla 65: Valores promedio para el experimento de 500 trabajos y 20 máquinas. Tabla 66: Valores desviación para el experimento de 500 trabajos y 20 máquinas. Tabla 67: Porcentaje de mejora respecto a NEH para el experimento de 500 trabajos y 20 máquinas.

Tabla 68: Valores promedio para el experimento de 500 trabajos y 30 máquinas. Tabla 69: Valores desviación para el experimento de 500 trabajos y 30 máquinas. Tabla 70: Porcentaje de mejora respecto a NEH para el experimento de 500 trabajos y 30 máquinas.

Tabla 71: Valores promedio para el experimento de 500 trabajos y 40 máquinas. Tabla 72: Valores desviación para el experimento de 500 trabajos y 40 máquinas. Tabla 73: Porcentaje de mejora respecto a NEH para el experimento de 500 trabajos y 40 máquinas.

Tabla 74: Valores promedio para el experimento de 500 trabajos y 50 máquinas. Tabla 75: Valores desviación para el experimento de 500 trabajos y 50 máquinas. Tabla 76: Porcentaje de mejora respecto a NEH para el experimento de 500 trabajos y 50 máquinas.

Tabla 77: Valores medios makespan de las 30 instancias de cada experimento para cada algoritmo utilizado, en el tipo en el que el 10% de los tiempos de procesamientos son cero.

Tabla 78: Valores medios makespan de las 30 instancias de cada experimento para cada algoritmo utilizado, en el tipo en el que el 20% de los tiempos de procesamientos son cero.

Tabla 79: Valores medios makespan de las 30 instancias de cada experimento para cada algoritmo utilizado, en el tipo en el que el 30% de los tiempos de procesamientos son cero.

(12)

Tabla 80: Valores medios makespan de las 30 instancias de cada experimento para cada algoritmo utilizado, en el tipo en el que el 40% de los tiempos de procesamientos son cero.

Tabla 81: Valores medios de la desviación típica de las 30 instancias de cada experimento para cada algoritmo utilizado, en el tipo en el que el 10% de los tiempos de procesamientos son cero.

Tabla 82: Valores medios de la desviación típica de las 30 instancias de cada experimento para cada algoritmo utilizado, en el tipo en el que el 20% de los tiempos de procesamientos son cero.

Tabla 83: Valores medios de la desviación típica de las 30 instancias de cada experimento para cada algoritmo utilizado, en el tipo en el que el 30% de los tiempos de procesamientos son cero.

Tabla 84: Valores medios de la desviación típica de las 30 instancias de cada experimento para cada algoritmo utilizado, en el tipo en el que el 40% de los tiempos de procesamientos son cero.

(13)

Índice de figuras

Figura 1: Proceso de Planificación, programación y control de la producción. Figura 2: Modelo Flow Shop.

Figura 3: Cálculo del makespan para la secuencia J2 – J3.

Figura 4: Cálculo del makespan para la secuencia J3 – J2.

Figura 5: Cálculo del makespan para la secuencia J1 - J3 – J2.

Figura 6: Cálculo del makespan para la secuencia J3 – J1 – J2.

Figura 7: Cálculo del makespan para la secuencia J3 – J2 – J1.

Figura 8: Evolución del makespan en los experimentos para cada algoritmo, en el tipo en el que el 10% de los tiempos de procesamientos son cero.

Figura 9: Evolución del makespan en los experimentos para cada algoritmo, en el tipo en el que el 20% de los tiempos de procesamientos son cero.

Figura 10: Evolución del makespan en los experimentos para cada algoritmo, en el tipo en el que el 30% de los tiempos de procesamientos son cero.

Figura 11: Evolución del makespan en los experimentos para cada algoritmo, en el tipo en el que el 40% de los tiempos de procesamientos son cero.

Figura 12: Valor medio del makespan de los algoritmos para el tipo de 10% de los tiempos ceros.

Figura 13: Valor medio del makespan de los algoritmos para el tipo de 20% de los tiempos ceros.

Figura 14: Valor medio del makespan de los algoritmos para el tipo de 30% de los tiempos ceros.

Figura 15: Valor medio del makespan de los algoritmos para el tipo de 40% de los tiempos ceros.

Figura 16: Evolución de la desviación típica en los experimentos para cada algoritmo, en el tipo en el que el 10% de los tiempos de procesamientos son cero. Figura 17: Evolución de la desviación típica en los experimentos para cada algoritmo, en el tipo en el que el 20% de los tiempos de procesamientos son cero.

(14)

Figura 18: Evolución de la desviación típica en los experimentos para cada algoritmo, en el tipo en el que el 30% de los tiempos de procesamientos son cero. Figura 19: Evolución de la desviación típica en los experimentos para cada algoritmo, en el tipo en el que el 40% de los tiempos de procesamientos son cero. Figura 20: Valor medio de la desviación típica de los algoritmos para todos los experimentos y cada tipo de algoritmo, en el tipo en el que el 10% de los tiempos de procesamientos son cero.

Figura 21: Valor medio de la desviación típica de los algoritmos para todos los experimentos y cada tipo de algoritmo, en el tipo en el que el 20% de los tiempos de procesamientos son cero.

Figura 22: Valor medio de la desviación típica de los algoritmos para todos los experimentos y cada tipo de algoritmo, en el tipo en el que el 30% de los tiempos de procesamientos son cero.

Figura 23: Valor medio de la desviación típica de los algoritmos para todos los experimentos y cada tipo de algoritmo, en el tipo en el que el 40% de los tiempos de procesamientos son cero.

Figura 24: Valor promedio frente a porcentaje de cero para cada algoritmo del experimento de 50 trabajos y 10 máquinas.

Figura 25: Valor desviación típica frente a porcentaje de cero para cada algoritmo del experimento de 50 trabajos y 10 máquinas.

Figura 26: Porcentaje de mejora respecto a NEH de los algoritmos Random y T.Medio frente al porcentaje de ceros para el experimento de 50 trabajos y 10 máquinas.

Figura 27: Valor promedio frente a porcentaje de cero para cada algoritmo del experimento de 50 trabajos y 20 máquinas.

Figura 28: Valor desviación típica frente a porcentaje de cero para cada algoritmo del experimento de 50 trabajos y 20 máquinas.

Figura 29: Porcentaje de mejora respecto a NEH de los algoritmos Random y T.Medio frente al porcentaje de ceros para el experimento de 50 trabajos y 20 máquinas.

Figura 30: Valor promedio frente a porcentaje de cero para cada algoritmo del experimento de 50 trabajos y 30 máquinas.

Figura 31: Valor desviación típica frente a porcentaje de cero para cada algoritmo del experimento de 50 trabajos y 30 máquinas.

(15)

Figura 32: Porcentaje de mejora respecto a NEH de los algoritmos Random y T.Medio frente al porcentaje de ceros para el experimento de 50 trabajos y 30 máquinas.

Figura 33: Valor promedio frente a porcentaje de cero para cada algoritmo del experimento de 50 trabajos y 40 máquinas.

Figura 34: Valor desviación típica frente a porcentaje de cero para cada algoritmo del experimento de 50 trabajos y 40 máquinas.

Figura 35: Porcentaje de mejora respecto a NEH de los algoritmos Random y T.Medio frente al porcentaje de ceros para el experimento de 50 trabajos y 40 máquinas.

Figura 36: Valor promedio frente a porcentaje de cero para cada algoritmo del experimento de 50 trabajos y 50 máquinas.

Figura 37: Valor desviación típica frente a porcentaje de cero para cada algoritmo del experimento de 50 trabajos y 50 máquinas.

Figura 38: Porcentaje de mejora respecto a NEH de los algoritmos Random y T.Medio frente al porcentaje de ceros para el experimento de 50 trabajos y 50 máquinas.

Figura 39: Valor promedio frente a porcentaje de cero para cada algoritmo del experimento de 150 trabajos y 10 máquinas.

Figura 40: Valor desviación típica frente a porcentaje de cero para cada algoritmo del experimento de 150 trabajos y 10 máquinas.

Figura 41: Porcentaje de mejora respecto a NEH de los algoritmos Random y T.Medio frente al porcentaje de ceros para el experimento de 150 trabajos y 10 máquinas.

Figura 42: Valor promedio frente a porcentaje de cero para cada algoritmo del experimento de 150 trabajos y 20 máquinas.

Figura 43: Valor desviación típica frente a porcentaje de cero para cada algoritmo del experimento de 150 trabajos y 20 máquinas.

Figura 44: Porcentaje de mejora respecto a NEH de los algoritmos Random y T.Medio frente al porcentaje de ceros para el experimento de 150 trabajos y 20 máquinas.

Figura 45: Valor promedio frente a porcentaje de cero para cada algoritmo del experimento de 150 trabajos y 30 máquinas.

(16)

Figura 46: Valor desviación típica frente a porcentaje de cero para cada algoritmo del experimento de 150 trabajos y 30 máquinas.

Figura 47: Porcentaje de mejora respecto a NEH de los algoritmos Random y T.Medio frente al porcentaje de ceros para el experimento de 150 trabajos y 30 máquinas.

Figura 48: Valor promedio frente a porcentaje de cero para cada algoritmo del experimento de 150 trabajos y 40 máquinas.

Figura 49: Valor desviación típica frente a porcentaje de cero para cada algoritmo del experimento de 150 trabajos y 40 máquinas.

Figura 50: Porcentaje de mejora respecto a NEH de los algoritmos Random y T.Medio frente al porcentaje de ceros para el experimento de 150 trabajos y 40 máquinas.

Figura 51: Valor promedio frente a porcentaje de cero para cada algoritmo del experimento de 150 trabajos y 50 máquinas.

Figura 52: Valor desviación típica frente a porcentaje de cero para cada algoritmo del experimento de 150 trabajos y 50 máquinas.

Figura 53: Porcentaje de mejora respecto a NEH de los algoritmos Random y T.Medio frente al porcentaje de ceros para el experimento de 150 trabajos y 50 máquinas.

Figura 54: Valor promedio frente a porcentaje de cero para cada algoritmo del experimento de 250 trabajos y 10 máquinas.

Figura 55: Valor desviación típica frente a porcentaje de cero para cada algoritmo del experimento de 250 trabajos y 10 máquinas.

Figura 56: Porcentaje de mejora respecto a NEH de los algoritmos Random y T.Medio frente al porcentaje de ceros para el experimento de 250 trabajos y 10 máquinas.

Figura 57: Valor promedio frente a porcentaje de cero para cada algoritmo del experimento de 250 trabajos y 20 máquinas.

Figura 58: Valor desviación típica frente a porcentaje de cero para cada algoritmo del experimento de 250 trabajos y 20 máquinas.

Figura 59: Porcentaje de mejora respecto a NEH de los algoritmos Random y T.Medio frente al porcentaje de ceros para el experimento de 250 trabajos y 20 máquinas.

(17)

Figura 60: Valor promedio frente a porcentaje de cero para cada algoritmo del experimento de 250 trabajos y 30 máquinas.

Figura 61: Valor desviación típica frente a porcentaje de cero para cada algoritmo del experimento de 250 trabajos y 30 máquinas.

Figura 62: Porcentaje de mejora respecto a NEH de los algoritmos Random y T.Medio frente al porcentaje de ceros para el experimento de 250 trabajos y 30 máquinas.

Figura 63: Valor promedio frente a porcentaje de cero para cada algoritmo del experimento de 250 trabajos y 40 máquinas.

Figura 64: Valor desviación típica frente a porcentaje de cero para cada algoritmo del experimento de 250 trabajos y 40 máquinas.

Figura 65: Porcentaje de mejora respecto a NEH de los algoritmos Random y T.Medio frente al porcentaje de ceros para el experimento de 250 trabajos y 40 máquinas.

Figura 66: Valor promedio frente a porcentaje de cero para cada algoritmo del experimento de 250 trabajos y 50 máquinas.

Figura 67: Valor desviación típica frente a porcentaje de cero para cada algoritmo del experimento de 250 trabajos y 50 máquinas.

Figura 68: Porcentaje de mejora respecto a NEH de los algoritmos Random y T.Medio frente al porcentaje de ceros para el experimento de 250 trabajos y 50 máquinas.

Figura 69: Valor promedio frente a porcentaje de cero para cada algoritmo del experimento de 400 trabajos y 10 máquinas.

Figura 70: Valor desviación típica frente a porcentaje de cero para cada algoritmo del experimento de 400 trabajos y 10 máquinas.

Figura 71: Porcentaje de mejora respecto a NEH de los algoritmos Random y T.Medio frente al porcentaje de ceros para el experimento de 400 trabajos y 10 máquinas.

Figura 72: Valor promedio frente a porcentaje de cero para cada algoritmo del experimento de 400 trabajos y 20 máquinas.

Figura 73: Valor desviación típica frente a porcentaje de cero para cada algoritmo del experimento de 400 trabajos y 20 máquinas.

(18)

Figura 74: Porcentaje de mejora respecto a NEH de los algoritmos Random y T.Medio frente al porcentaje de ceros para el experimento de 400 trabajos y 20 máquinas.

Figura 75: Valor promedio frente a porcentaje de cero para cada algoritmo del experimento de 400 trabajos y 30 máquinas.

Figura 76: Valor desviación típica frente a porcentaje de cero para cada algoritmo del experimento de 400 trabajos y 30 máquinas.

Figura 77: Porcentaje de mejora respecto a NEH de los algoritmos Random y T.Medio frente al porcentaje de ceros para el experimento de 400 trabajos y 30 máquinas.

Figura 78: Valor promedio frente a porcentaje de cero para cada algoritmo del experimento de 400 trabajos y 40 máquinas.

Figura 79: Valor desviación típica frente a porcentaje de cero para cada algoritmo del experimento de 400 trabajos y 40 máquinas.

Figura 80: Porcentaje de mejora respecto a NEH de los algoritmos Random y T.Medio frente al porcentaje de ceros para el experimento de 400 trabajos y 40 máquinas.

Figura 81: Valor promedio frente a porcentaje de cero para cada algoritmo del experimento de 400 trabajos y 50 máquinas.

Figura 82: Valor desviación típica frente a porcentaje de cero para cada algoritmo del experimento de 400 trabajos y 50 máquinas.

Figura 83: Porcentaje de mejora respecto a NEH de los algoritmos Random y T.Medio frente al porcentaje de ceros para el experimento de 400 trabajos y 50 máquinas.

Figura 84: Valor promedio frente a porcentaje de cero para cada algoritmo del experimento de 500 trabajos y 10 máquinas.

Figura 85: Valor desviación típica frente a porcentaje de cero para cada algoritmo del experimento de 500 trabajos y 10 máquinas.

Figura 86: Porcentaje de mejora respecto a NEH de los algoritmos Random y T.Medio frente al porcentaje de ceros para el experimento de 500 trabajos y 10 máquinas.

Figura 87: Valor promedio frente a porcentaje de cero para cada algoritmo del experimento de 500 trabajos y 20 máquinas.

(19)

Figura 88: Valor desviación típica frente a porcentaje de cero para cada algoritmo del experimento de 500 trabajos y 20 máquinas.

Figura 89: Porcentaje de mejora respecto a NEH de los algoritmos Random y T.Medio frente al porcentaje de ceros para el experimento de 500 trabajos y 20 máquinas.

Figura 90: Valor promedio frente a porcentaje de cero para cada algoritmo del experimento de 500 trabajos y 30 máquinas.

Figura 91: Valor desviación típica frente a porcentaje de cero para cada algoritmo del experimento de 500 trabajos y 30 máquinas.

Figura 92: Porcentaje de mejora respecto a NEH de los algoritmos Random y T.Medio frente al porcentaje de ceros para el experimento de 500 trabajos y 30 máquinas.

Figura 93: Valor promedio frente a porcentaje de cero para cada algoritmo del experimento de 500 trabajos y 40 máquinas.

Figura 94: Valor desviación típica frente a porcentaje de cero para cada algoritmo del experimento de 500 trabajos y 40 máquinas.

Figura 95: Porcentaje de mejora respecto a NEH de los algoritmos Random y T.Medio frente al porcentaje de ceros para el experimento de 500 trabajos y 40 máquinas.

Figura 96: Valor promedio frente a porcentaje de cero para cada algoritmo del experimento de 500 trabajos y 50 máquinas.

Figura 97: Valor desviación típica frente a porcentaje de cero para cada algoritmo del experimento de 500 trabajos y 50 máquinas.

Figura 98: Porcentaje de mejora respecto a NEH de los algoritmos Random y T.Medio frente al porcentaje de ceros para el experimento de 500 trabajos y 50 máquinas.

(20)

Glosario

N: Número de trabajos. M: Número de máquinas.

CMAX: Objetivo con el fin de minimizar el tiempo de finalización de todos los

trabajos.

Makespan: Longitud de la programación de la secuencia de trabajos. Schedule: Programa de trabajo o programa de producción, planificación.

Random: Palabra inglesa referida al azar, en este trabajo se utiliza para describir el

algoritmo Random con el que los trabajos son ordenados de forma aleatoria.

Algoritmo: Es un conjunto de instrucciones o reglas bien definidas, ordenadas y

finitas que permite realizar una actividad mediante pasos sucesivos.

Algoritmo de Johnson: Es un algoritmo que va construyendo la secuencia de tareas

a ser procesadas, paso a paso, siendo el orden de menor mayor tiempo de proceso.

Flow-Shop: Problema de secuenciación de tareas en sistemas de producción lineal

que consiste en programar la secuencia de procesamiento de N tareas en M máquinas de tal forma que se optimice alguna medida de efectividad como por ejemplo minimizar el tiempo total requerido para terminar todas las tareas (makespan). El caso más general de este problema considera que todas las tareas deben ser procesadas en el mismo orden en cada máquina.

Función Objetivo: La función objetivo define la medida de efectividad del sistema

como una función matemática de las variables de decisión. La solución óptima será aquella que produzca el mejor valor de la función objetivo.

Heurísticas: Son algoritmos que encuentran soluciones de buena calidad para

(21)

pequeños, pero que desde el punto de vista teórico renuncian a encontrar la solución global del problema.

Optimización: O programación matemática es una rama de las matemáticas que

intenta dar respuesta a un tipo general de problemas donde se desea establecer la mejor solución para un función objetivo en un espacio de soluciones.

Programación lineal: Es una técnica de programación matemática la cual se

caracteriza porque tanto el espacio de soluciones como la función objetivo tienen un comportamiento lineal.

Programación de Tareas: Es la asignación secuencial de trabajos a un conjunto de

máquinas. Las tareas pueden seguir un orden o no dentro del grupo de máquinas.

Tiempo de Flujo: Es el tiempo del trabajo i, que transcurre desde el inicio del primer

trabajo en la primera máquina hasta que el trabajo i sale del sistema. En este tiempo se incluye el tiempo de espera.

(22)

1. Introducción

El presente estudio intenta analizar las soluciones de la programación de las operaciones en un taller de flujo regular en el que existen operaciones perdidas, es decir, algunos trabajos se pueden saltar algunas etapas de la producción. Por ello, el título de este trabajo fin de grado es Análisis de la programación de operaciones en un taller de flujo con operaciones perdidas.

En concreto, se han analizado el comportamiento de varios métodos aproximados. En primer lugar, el algoritmo Random, presentado como la alternativa a no realizar ninguna acción referente a la planificación de los trabajos. En segundo lugar, la utilización de un algoritmo basado en la clasificación de los trabajos por sus tiempos medios subrayando su simplicidad de cara a mejorar los resultados. Y por último, la heurística NEH, mostrada como la opción más eficiente para este problema y por lo tanto será la que se considere en la experimentación.

El presente trabajo fin de grado pertenece al departamento de Organización Industrial y Gestión de empresas I. Los conocimientos necesarios para abordar dicho estudio comprenden a todas las asignaturas de la rama de organización y producción de la titulación de grado en ingeniería de las tecnologías industriales. Dichas asignaturas dotan de la preparación necesaria en los ámbitos de la gestión, organización de la producción y programación de operaciones.

El proceso de planificación y control de la producción consta de una planificación estratégica a largo plazo, una planificación agregada o a medio plazo, un plan maestro de la producción, una programación de las operaciones y una ejecución y control de la fabricación (Domínguez-Machuca, 1995). Estas fases deben estar relacionadas entre sí y presentar un enfoque estratégico empresarial determinado para alcanzar los objetivos tácticos y operativos que se marque la empresa, ver figura 1. Cualquier empresa dedicada a la producción, independientemente de su actividad y dimensión, debe tener presente el modelo de gestión y planificación de

(23)

la fabricación aunque la forma como éstas se desarrollen dependerá de las características propias de cada sistema productivo.

Figura 1: Proceso de Planificación, programación y control de la producción. Fuente: Domínguez-Machuca, 1995.

La planificación de la producción define el momento de fabricación de los productos y establece las actividades a realizar para conseguir un volumen de producción que permita satisfacer la demanda estimada, constituyendo un equilibrio entre la capacidad de los diferentes niveles y la producción (Martínez-Sánchez, 2003). Por otro lado, busca contribuir a alcanzar los objetivos marcados de coste, calidad, plazo de entrega y servicio al cliente, a través de una planificación eficaz y eficiente, en términos de minimizar el coste de los recursos necesarios para satisfacer la demanda durante un determinado período, optimizando los procesos y contribuyendo al aprovechamiento de los recursos mejorando o igualando la calidad del producto, es decir, alta productividad reduciendo las tasas de fracaso y error (Velasco-Sánchez,2013).

(24)

Se debe tener presente que un sistema de planificación y control de la producción efectivo puede proporcionar una ventaja competitiva sustancial para una empresa en su mercado. Del mismo modo una acertada elección de la estrategia comercial podrá ser el elemento diferenciador de cara a la competencia y ser los elegidos por los clientes.

Otro enfoque de la planificación es el propósito de reducir la incertidumbre mediante una programación de actividades teniendo en cuenta los escenarios más probables donde se desarrollarán. Un continuo y exhaustivo estudio del mercado y de la propia situación de la empresa es imprescindible para planificar con cierto éxito (Fernández, Avella y Fernández, 2003). Incluso si se fracasa en el logro de los objetivos estratégicos determinados en un principio, en el proceso se adquiere un mayor conocimiento de la empresa, de sus posibilidades, de su entorno y de sus medios porque esa investigación que se ha desarrollado genera posibles ideas para futuros resultados de la empresa.

Considerando el alcance que tiene la planificación y control de la producción y viendo la organización como un todo integrado, es lógico que sus diferentes áreas estén asociadas y juntas para operar de acuerdo a las metas de la empresa. La correcta coordinación entre las diferentes áreas dependerá de la fluidez de información que circula entre ellas (Wollmann, Berry y Whybark, 2005).

En el plan de producción se decide qué productos hacer, cuántos, cómo y dónde se han de fabricar, y el control de la producción vigila que el proceso sea viable y llegue a lograrse sin problemas. La producción consiste en una secuencia de operaciones que transforma los materiales o materias primas, haciendo que pasen de una forma dada a otra que se desea obtener (Domínguez-Machuca, 1995). Manteniendo los niveles óptimos de stocks que faciliten el equilibrio entre las necesidades y los costes de mantenimiento, se alcanza una optimización de la gestión de inventarios y la capacidad productiva. Esto está estrechamente ligado al ahorro en las compras, puesto que manteniendo los niveles de inventarios actualizados se permite no almacenar más que lo necesario y es posible tener un mayor control en los suministros.

(25)

Por último, destacar que el conocimiento de la producción y las operaciones, la adaptación y la capacidad de evolucionar hacia nuevas tecnologías, son hoy en día herramientas esenciales en la gestión de la producción, dados los altos niveles de competencia, el encarecimiento de los recursos (en algunas ocasiones) y la internacionalización de las operaciones. Esto último, actualmente, se reconoce como esencial y necesario para las empresas puesto que es una vía de expansión y crecimiento. Aumenta la independencia de los ciclos económicos del mercado local, se accede a un mercado más amplio con más oportunidades de obtener mayor rentabilidad, se diversifican los riesgos comerciales y de aprovisionamiento, y aumenta la capacidad productiva, todo ello posterior a una definida y acertada estrategia que resulte exitosa (Cruelles-Ruiz, 2013).

(26)

2. Objeto

La programación de operaciones consiste en identificar, organizar y ordenar en secuencia lógica, todas las actividades derivadas del plan de producción (García-Sánchez, 2014). En este caso, nos centraremos en los trabajos que deben realizar las máquinas para llevar a cabo la fabricación de los productos. Uno de los aspectos más importantes a considerar es la asignación de dichos trabajos, teniendo en cuenta el tiempo en que se realizan, que debe estar dentro del tiempo total disponible para la entrega de los mismos. Lo anterior implica, también, preservar las relaciones de interdependencia de los trabajos, así como asignar tiempos y responsables de ejecución y comprobación de los recursos para cada uno de dichos trabajos.

Por ello el presente trabajo, trata de la programación de las operaciones en un taller de flujo con operaciones perdidas, una parte fundamental en la planificación de la producción. Dicha programación y posterior análisis se realizará mediante algoritmos conocidos.

Una correcta programación de las operaciones tiene un impacto muy favorable en la productividad y por lo tanto en los beneficios económicos que conseguirá la empresa cuando presente sus resultados. Del mismo modo, aumenta el servicio al cliente al conocer las fechas de entrega de los productos, y es posible ajustar la programación para que la emisión de éstos se produzca en fecha y no con antelación, que repercute en gastos de mantenimiento, y por supuesto, no con retrasos.

La secuenciación de trabajos en máquinas, universalmente conocido como scheduling, se puede definir como la asignación en el tiempo de los recursos disponibles con objeto de optimizar una determinada medida de comportamiento (Framiñan y Leisten, 2004). Existen diversas formas y características que pueden asociarse a los trabajos y al modo de procesamiento en el sistema. Un problema se determina según la arquitectura del taller, las características de los trabajos y el criterio de optimización.

(27)

La disposición de la maquinaria define el tipo de configuración productiva necesaria para realizar el proceso de fabricación. Las necesidades de los clientes se traducen en órdenes de trabajo que se liberan y "transforman" en trabajos con fecha de entrega determinada. Como ya se citó anteriormente, la programación de la producción se preocupa de la asignación de recursos limitados a tareas productivas, y debe realizarse de manera detallada para mantener la eficiencia y el control de las operaciones dentro del sistema productivo y así constituir una ventaja competitiva. Los distintos productos que se fabrican requieren en su elaboración de distintas operaciones, las que se realizan en un orden y configuración productiva determinada, dependiendo del tipo de producto, su volumen de producción, la variedad de productos que se produce en la misma línea, etc. Este trabajo atiende al diseño de máquinas en serie cuyo modelo de paso para los diferentes trabajos por las máquinas es el mismo. Esto se denomina sistemas de flujo uniforme, Flow shop, en la que todos los trabajos pasan por cada una de las máquinas del sistema usando el mismo orden de paso por las mismas, denominado flujo unidireccional. Es decir, el problema de Flow-Shop o problema de secuenciación de tareas de producción lineal, se caracteriza porque todos los trabajos que van a ser programados siguen el mismo flujo de producción y los tiempos de ejecución varían en cada una de las etapas.

Figura 2: Modelo Flow Shop. Fuente:Wikipedia.

La idea básica del diseño de esta línea de producción consiste en la división del conjunto de operaciones a realizar para la obtención del producto y su asignación de manera coherente a una serie de máquinas, de tal manera que el producto puede ser fabricado o montado de una manera más económica y rápida. Para ello, el producto es transportado secuencialmente a lo largo de las máquinas, de tal manera que en cada una de ellos recibe sucesivamente las operaciones hasta conseguir el producto completo.

(28)

A partir de un determinado criterio de optimización, se trata de establecer la secuencia para el procesamiento de una serie de trabajos sobre un conjunto de máquinas. Para este trabajo se buscará minimizar el tiempo de finalización de todos los trabajos, CMAX, también denominado longitud de la programación, makespan,

teniendo como objetivo alcanzar una solución adecuada y satisfactoria para nuestro tipo de problema que se encuadra a continuación.

El problema de Flow-Shop, al igual que muchos otros, en el campo de secuenciación de tareas es de difícil solución. Esta característica hace que el problema sea de permutación, es decir, cada una de las combinatorias que pueden formarse deben contener las n tareas a procesar y una permutación se diferencia de otra únicamente en el orden de colocación de los elementos, obteniéndose de esta manera que el número de permutaciones posibles es n!. En la literatura especializada los problemas combinatorios están catalogados como NP-difícil, dado que no se cuentan con algoritmos de orden polinomial a partir de los cuales se pueda resolver el problema de forma óptima y en el menor tiempo posible. Se dice que un problema es NP-difícil cuando se demuestra que cualquier algoritmo de solución tiene un tiempo de ejecución que aumenta, en el peor de los casos, exponencialmente con el tamaño del problema. Esto invita a desarrollar estrategias de solución con las que se puedan aprovechar las características combinatorias del problema y adaptarlas de forma ágil a alguna técnica de solución para resolverlo en un tiempo computacional adecuado y de forma óptima. Por lo que elegimos el algoritmo NEH.

El problema se encuadra de la siguiente forma:

 Todos los trabajos son independientes y disponibles para ser procesados.

 Las máquinas están continuamente disponibles.

 Cada máquina solo puede procesar una tarea a la vez.

 Cada trabajo puede ser procesado solo en una maquina a la vez.

 Una vez un el procesamiento de un trabajo dado se ha iniciado en una

máquina determinada, no puede ser interrumpido y el proceso continúa hasta ser completado.

(29)

 Los tiempos de preparación (set up) son independientes de la secuencia y son incluidos en el tiempo de proceso, o ignorados.

Para resolver este problema existen diferentes métodos exactos y heurísticos, constructivos o de mejora. Para el caso de dos máquinas, el clásico algoritmo de Johnson obtiene la solución óptima del problema con minimización de makespan y

denotado por CMAX (Johnson, 1954). Cuando se tienen tres o más máquinas, como

es nuestro caso, se han desarrollado métodos heurísticos constructivos que entregan soluciones factibles, entre las que se destacan las conocidas heurísticas de Palmer, Gupta, MPS, CDS, RA y NEH.

Elegimos la heurística NEH porque para el problema que se plantea en este estudio ha mostrado ser la heurística más eficiente para encontrar la mejor solución (Fernandez-Viagas y Framiñan-Torres, 2014), y por lo tanto será la que se considere en la experimentación.

Los algoritmos están diseñados con el objetivo de minimizar el makespan en el problema sin tiempos de set up. Por lo que en el caso, en el que en la línea fabrique varios productos a la vez o se fabriquen varios modelos de productos muy diferentes entre sí, y existan ciertas diferencias entre las operaciones a realizar, se hace necesario invertir un cierto tiempo de cambio de partida en desmontar el utillaje usado en el anterior tipo de producto y montar el nuevo, ajustar maquinaria, lanzar lotes de prueba, etc. pero para nuestro estudio supondremos que estos tiempos de set up no son destacables.

(30)

3. Metodología

Este documento discute el modelo de programación de los trabajos tratando el proceso de planificación de la producción. Para ello se utiliza el programa informático Code::Blocks, formado por un conjunto de herramientas de programación para el desarrollo de programas en lenguaje C y C++.

Code::Blocks tiene como soporte de apoyo a la programación, espacios de trabajo (workspaces) para combinar múltiples proyectos adaptables para cambiar según la tarea que se esté realizando o como se configure, navegador de proyectos, vista de archivos, editor tabulado, lista de tareas y más funciones entre otras. También presenta un sistema de construcción (build) rápido y soportes para la compilación. Del mismo modo contiene para la depuración breakpoints, funciones locales o argumentos y pilas de llamadas para ver valores de variables definidas por el usuario (http://www.codeblocks.org/). Éstas son algunas de las características para la creación del programa deseado.

Code::Blocks nos permite la edición de los códigos de los algoritmos seleccionados para resolver el problema que se nos plantea. En la bibliografía de este documento se recoge el manual de usuario de dicho programa. Una vez creados, a través del símbolo del sistema de Windows, se procede a operar con los archivos ejecutables mostrando la secuencia de trabajos correcta para el criterio de minimizar el tiempo de finalización de todos los trabajos, makespan.

Para la implementación de los códigos y a su vez de los algoritmos nos hemos basado y apoyado en la librería Schedule facilitada por el tutor de este trabajo. Dicha librería presenta una colección de clases y funciones escritas en el núcleo del lenguaje. Tiene declaradas numerosas funciones y definidos tipos usados por varias operaciones estándar. Las funciones que se encuentran en dicha librería y que se han utilizado en este estudio, las recojo en el Anexo 2, aunque a continuación se realiza una breve presentación de su contenido.

(31)

Destacar funciones para la manipulación de matrices y vectores como por ejemplo copiar una fila de una matriz de enteros en un vector, ordenar un vector o introducir un valor en las posiciones de una matriz. Funciones cuyos objetivos están relacionados con las operaciones propias de Scheduling, como por ejemplo para nuestro estudio, facilitándole la matriz de tiempos, el número de máquinas y la secuencia de trabajos te devuelve el makespan (CMAX) así como también se podría

calcular la tardanza máxima, el número de trabajos no entregados a tiempo, la máxima precocidad o la suma de los retrasos. Para cada función es necesaria una serie de valores y parámetros específicos. Del mismo modo, subrayar funciones pertenecientes a la escritura y salida, desde la carga de los tiempos de procesos desde un archivo, a la impresión de un vector por pantalla. Y por otro lado también se puede conseguir el valor máximo o mínimo de dos números mediante funciones que te lo calculan una vez le proporcionas dichas cifras.

Por último, para el análisis de los resultados me he apoyado en el software Excel debido a que permite crear tablas, y calcular y analizar datos. Este programa es una hoja donde se puede calcular cualquier tipo de operación matemática, por eso se conoce como hoja de cálculo, donde tiene diversas utilidades, la más básica es crear tablas de números y operar con ellos a través de fórmulas, de una manera rápida y sencilla puesto que calcula de forma automática los totales de los valores numéricos que se especifiquen, imprime tablas con diseños cuidados y crear gráficos simples.

(32)

4. Desarrollo de los algoritmos

4.1 Identificar algoritmos

Los programas de producción se elaboran con una misión concreta, alcanzar un objetivo. Para el estudio de este trabajo, el objetivo es minimizar el tiempo de finalización de todos los trabajos, makespan. Buscaremos satisfacer dicho objetivo mediante la experimentación de tres algoritmos: algoritmo Random, algoritmo de cálculo de los tiempos medios y algoritmo NEH.

A continuación identificaremos cada uno de ellos.

4.1.1 Algoritmo Random

El algoritmo Random presenta una posible solución a nuestro problema cuya técnica es la búsqueda aleatoria en la región factible, en la cual genera una solución aleatoria de la secuencia de trabajos a procesar. Nuestra región factible es el número de trabajos que hay que efectuar para llevar a cabo la producción.

Esta técnica no garantiza la obtención de la solución más adecuada ni en los mejores casos, y es tratada como la alternativa a no realizar ninguna acción referente a la planificación de los trabajos. Permite obtener unas soluciones aceptables en intervalos cortos, es decir, para un número muy pequeño de trabajos a procesar.

Este método puede formar parte de un algoritmo más complejo, desarrollando una secuencia de trabajos inicialmente aleatoria para ir evolucionando hasta encontrar la solución más favorable dentro de las limitaciones. Por ello es utilizada para problemas de gran complejidad y para los cuales no existen procedimientos que permitan resolverlos de manera satisfactoria. La búsqueda aleatoria pura se presenta como una alternativa ya que permite abordar casi cualquier tipo de problema de optimización, con la ventaja adicional que no es necesario hacer prácticamente ningún supuesto, uno de los principales problemas de los modelos de optimización tradicionales.

(33)

4.1.2 Algoritmo Tiempos medios

Este algoritmo radica en ordenar los trabajos por su tiempo medio de proceso. Teniendo en cuenta el tiempo en cada una de las máquinas, se efectúa la media de cada uno de los trabajos. Con esos valores se discute y se forma la secuencia de trabajos buscada por el algoritmo.

Es un algoritmo sencillo y fácil de implantar, no presenta ninguna idea compleja ni se apoya en reglas empíricas para llegar a la solución.

Con esta técnica se busca minimizar el tiempo de finalización de todos los trabajos calculando CMAX. A pesar del conocimiento certero de los tiempos que tarda cada

máquina en procesar cada trabajo, la secuencia solución del algoritmo es muy mejorable para un problema de m máquinas y n trabajos a procesar, pero localiza una secuencia solución aceptable y considerablemente correcta para el objetivo marcado, en ciertas dimensiones del problema.

(34)

4.1.3 Algoritmo NEH

La heurística NEH construye una secuencia agregando trabajos de una lista de trabajos (ordenados de mayor a menor tiempo total de proceso) de forma sucesiva y evaluando múltiples inserciones de éstos en las secuencias parcialmente construidas.

La heurística NEH fue creada por Nawaz, Enscore y Ham (1983) y también es utilizada en otros algoritmos, como los evolutivos, con el fin de generar al inicio un individuo muy bueno. Los pasos de la heurística son los siguientes:

1. Se ordenan los trabajos de mayor a menor teniendo en cuenta la suma de los tiempos de procesamiento en las máquinas.

2. Se toman los dos primeros trabajos de la lista y se organizan de forma tal que el makespan sea el mínimo como si solo existieran esas dos tareas. 3. De aquí en adelante y hasta la cantidad de tareas, se va insertando el

trabajo que sigue en la lista en el lugar que minimice el makespan.

4. Al final de las iteraciones se obtendrá el orden de los trabajos, con las condiciones iniciales, el cual tendrá el makespan mínimo.

Con el objetivo de reducir el número de combinaciones a estudiar y obtener un algoritmo más eficiente y menos complejo, solo se analizan las posibles inserciones para cada iteración del método, a diferencia de analizar las n! combinaciones que son posibles en un principio, siendo n el número de trabajos a procesar.

Para ilustrar el algoritmo de NEH se procede a realizar un ejemplo donde se mostrarán los pasos a seguir. La tabla 1 muestra el tiempo que se tarda en ejecutar los 3 trabajos en cada una de las 5 máquinas existentes.

M1 M2 M3 M4 M5

J1 1 2 1 2 2

J2 3 4 1 1 2

J3 2 3 1 2 1

(35)

1) Se suma el tiempo que tarda cada tarea en pasar por todas las máquinas. Para la matriz de tiempos dada en la tabla 1 se tiene:

i. J1 = 1 + 2 + 1 + 2 + 2 = 8

ii. J2 = 3 + 4 + 1 + 1 + 2 = 11

iii. J3 = 2 + 3 + 1 + 2 + 1 = 9

2) Una vez obtenidos los tiempos se procede a organizar de forma decreciente

los trabajos. Para este ejemplo el orden es: J2 – J3 – J1.

3) Se seleccionan las tareas J2 y J3 de la lista ordenada y se procede a calcular el

makespan teniendo en cuenta solo estas dos tareas.

Figura 3: Cálculo del makespan para la secuencia J2– J3. Fuente: Elaboración propia.

Figura 4: Cálculo del makespan para la secuencia J3 – J2. Fuente: Elaboración propia.

Como se puede ver en las figuras 3 y 4 el cálculo del makespan se debe realizar para cada una de las posibilidades de ordenamiento de los trabajos. La mejor secuencia de trabajos es J3 – J2 con un makespan = 13. Esto indica que necesariamente al final

el trabajo J3 deberá ser ejecutado antes que la tarea J2 pero no necesariamente

debe ser la inmediatamente anterior.

4) Ahora se selecciona la siguiente tarea en la lista, J1, y se inserta en cada una

de las posibles posiciones. Las figuras 5, 6, 7 muestran el cálculo del makespan para cada uno de las posibles combinaciones de trabajos. En la figura 5 se muestra la mejor secuencia una vez incluida la tarea J1, con un

(36)

Figura 5: Cálculo del makespan para la secuencia J1 – J3 – J2. Fuente: Elaboración propia.

Figura 6: Cálculo del makespan para la secuencia J3 – J1 – J2. Fuente: Elaboración propia.

Figura 7: Cálculo del makespan para la secuencia J3 – J2 – J1. Fuente: Elaboración propia.

5) Finalmente la secuencia J1 – J3 – J2 es la secuencia solución de trabajos que

(37)

4.2 Pseudocódigos de los algoritmos

Decidir el código es la primera decisión que se debe tomar en el momento de implementar el algoritmo. El principal objetivo de la codificación reside en que los elementos característicos del problema se puedan representar de tal forma que resulte sencilla su implementación y comprensión. Los códigos, que son realizados por el autor de este trabajo, se encuentran en el Anexo 1 al final de este

documento. A continuación se muestran los tres pseudocódigos para los respectivos algoritmos utilizados.

4.2.1 Pseudocódigo Random

En este apartado se describe el pseudocódigo perteneciente al algoritmo Random. El código detallado en C aparece en el anexo 1 de este documento, bajo el título de Código Algoritmo Random.

1. Declarar las variables. 2. Cargar los datos.

3. Generar secuencia aleatoria para los trabajos dados. 4. Calcular makespan.

5. Mostrar resultados. 6. Liberar memoria.

4.2.2 Pseudocódigo Tiempos medios

En esta unidad se representa el pseudocódigo referente al algoritmo basado en el cálculo de los tiempos medios. Su código detallado en C aparece en el anexo 1.

1. Declarar las variables. 2. Cargar los datos.

3. Calcular los tiempos medios de los trabajos.

4. Ordenar los trabajos de forma creciente respecto a sus tiempos medios. 5. Calcular makespan.

6. Mostrar los resultados. 7. Liberar memoria.

(38)

4.2.3 Pseudocódigo NEH

En esta sección se describe el pseudocódigo perteneciente al algoritmo basado en la heurística NEH. El código detallado en C aparece en el anexo 1 de este documento, bajo el título de Código Algoritmo NEH.

1. Declarar las variables. 2. Cargar los datos.

3. Calcular los tiempos de los trabajos en todas las máquinas.

4. Ordenar los trabajos de forma decreciente respecto a sus tiempos de procesos totales.

5. Seleccionar los dos primeros trabajos y programarlos para minimizar el makespan.

6. Para k=3…n con n = Nº de trabajos:

6.1. Insertar el trabajo k en la posición en la que la secuencia parcial

6.2. Entre las k posibles, escoger la que minimice el tiempo total de proceso o makespan.

7. Mostrar los resultados. 8. Liberar memoria.

(39)

5. Experimentación

5.1 Validación

En este apartado del trabajo se realizan una serie de experimentos o problemas donde utilizo los códigos de los algoritmos anteriormente descritos. Los valores escogidos para validar el trabajo son los siguientes:

 Porcentaje de ceros: 10-20-30-40.

 Número de trabajos: 50-150-250-400-500.

 Número de máquinas: 10-20-30-40-50.

El porcentaje de ceros representa el porcentaje de tiempos de proceso de un trabajo en una determinada máquina que van a ser ceros. El número de trabajos a procesar se va a encontrar en el rango manifestado anteriormente, donde se podrá analizar y obtener unos resultados fiables a la dimensión que pueda tener una empresa. Por último, el rango de máquinas que serán utilizadas por los trabajos se encuentra conforme a la extensión que se requiere del problema de la misma forma que sucede con el rango de trabajos.

Para alcanzar un resultado fiable del experimento se opta por efectuar treinta instancias para cada número de trabajo y número de máquina, ya que consideramos que es un valor lo suficientemente correcto para elaborar un análisis adecuado posteriormente. Un ejemplo de los resultados que se obtienen para uno de los experimentos se recoge en el Anexo 3 de este documento.

Los datos de dichos experimentos son obtenidos a través de un código que atendiendo a los rangos comentados anteriormente me genera un conjunto de archivos de texto donde se encuentra la matriz de tiempos de proceso de cada trabajo en cada máquina, así como el número de máquinas utilizadas y el número de trabajos demandados, declarados en las dos primeras filas respectivamente. Es decir, el programa generará, dentro del porcentaje de ceros que presentarán los tiempos de procesamientos, 30 archivos de texto para el caso de 50 trabajos y 10

(40)

máquinas, 30 archivos de texto para el caso de 50 trabajos y 20 máquinas, y así sucesivamente hasta alcanzar los 500 trabajos y 50 máquinas. Se realizará esta operación para los casos en los que el porcentaje de ceros en los tiempos de proceso sea del 10%, 20% 30% y 40%.

Una vez obtenidos todos los datos en los que nos basaremos para hacer los experimentos, se realiza la ejecución de cada algoritmo identificado en este estudio para cada archivo de texto. Para ello utilizamos el programa símbolo del sistema (CMD) del ordenador. De las treinta instancias se realiza la media que corresponderá al resultado de ese experimento, y por otro lado, se obtiene la desviación típica. Para estas operaciones nos ayudamos de la herramienta Excel. En el momento en el que se tienen recogidos todos los experimentos en sus respectivas hojas de Excel, nos disponemos a analizar los resultados en su conjunto. Para ello se realiza una nueva hoja Excel donde se manifiestan todos los resultados agrupándolos según número de trabajo y número de máquina. En ella queda recogido el valor promedio de las treinta instancias de cada porcentaje de ceros para cada algoritmo, la desviación típica hallada y el porcentaje de mejora de los algoritmos Random y tiempo medio respecto a NEH. A continuación se muestran todos los resultados obtenidos y recogidos en las tablas siguientes:

VALORES PROMEDIO j50 m10

%CEROS RANDOM T. MEDIO NEH

0,1 3663,600 3587,333 3025,367 0,2 3360,333 3326,533 2707,767 0,3 3110,467 3091,467 2437,200 0,4 2836,600 2805,667 2171,767

Tabla 2: Valores promedio para el experimento de 50 trabajos y 10 máquinas.

VALORES DESVIACIÓN j50 m10

%CEROS RANDOM T. MEDIO NEH

0,1 124,838 165,687 102,925 0,2 136,612 162,249 99,564 0,3 142,287 173,069 95,583 0,4 130,296 183,817 96,579

(41)

PORCENTAJES DE MEJORA %CEROS RANDOM T. MEDIO

0,1 21,096 18,575

0,2 24,100 22,852

0,3 27,625 26,845

0,4 30,613 29,188

Tabla 4: Porcentaje de mejora respecto a NEH para el experimento de 50 trabajos y 10 máquinas.

VALORES PROMEDIO j50 m20

%CEROS RANDOM T. MEDIO NEH

0,1 4555,000 4576,667 3760,900 0,2 4277,600 4298,200 3429,867 0,3 4009,567 3992,533 3127,933 0,4 3712,367 3683,333 2778,833

Tabla 5: Valores promedio para el experimento de 50 trabajos y 20 máquinas.

VALORES DESVIACIÓN j50 m20

%CEROS RANDOM T. MEDIO NEH

0,1 104,390 116,142 96,098 0,2 146,973 178,783 102,928 0,3 161,742 154,436 89,689 0,4 145,423 146,147 86,133

Tabla 6: Valores desviación para el experimento de 50 trabajos y 20 máquinas.

PORCENTAJES DE MEJORA %CEROS RANDOM T. MEDIO

0,1 21,115 21,691

0,2 24,716 25,317

0,3 28,186 27,641

0,4 33,594 32,550

Tabla 7: Porcentaje de mejora respecto a NEH para el experimento de 50 trabajos y 20 máquinas.

VALORES PROMEDIO j50 m30

%CEROS RANDOM T. MEDIO NEH

0,1 5388,200 5336,400 4554,800 0,2 5074,400 5069,967 4188,633 0,3 4776,833 4773,033 3818,233 0,4 4437,167 4398,933 3394,633

(42)

VALORES DESVIACIÓN j50 m30

%CEROS RANDOM T. MEDIO NEH

0,1 159,057 147,710 90,302 0,2 149,687 125,823 91,261 0,3 163,331 188,705 94,246 0,4 193,344 172,797 91,041

Tabla 9: Valores desviación para el experimento de 50 trabajos y 30 máquinas.

PORCENTAJES DE MEJORA %CEROS RANDOM T. MEDIO

0,1 18,297 17,160

0,2 21,147 21,041

0,3 25,106 25,006

0,4 30,711 29,585

Tabla 10: Porcentaje de mejora respecto a NEH para el experimento de 50 trabajos y 30 máquinas.

VALORES PROMEDIO j50 m40

%CEROS RANDOM T. MEDIO NEH

0,1 6126,867 6127,067 5210,933 0,2 5843,167 5800,300 4835,367 0,3 5454,800 5444,900 4450,200 0,4 5021,833 5000,033 3965,100

Tabla 11: Valores promedio para el experimento de 50 trabajos y 40 máquinas.

VALORES DESVIACIÓN j50 m40

%CEROS RANDOM T. MEDIO NEH

0,1 129,373 126,351 99,720 0,2 186,673 152,755 121,555 0,3 190,374 135,033 124,075 0,4 174,111 136,884 107,218

Tabla 12: Valores desviación para el experimento de 50 trabajos y 40 máquinas.

PORCENTAJES DE MEJORA %CEROS RANDOM T. MEDIO

0,1 17,577 17,581

0,2 20,842 19,956

0,3 22,574 22,352

0,4 26,651 26,101

(43)

VALORES PROMEDIO j50 m50

%CEROS RANDOM T. MEDIO NEH

0,1 6845,233 6832,133 5934,833 0,2 6497,467 6477,933 5529,900 0,3 6114,900 6092,800 5028,567 0,4 5626,067 5621,233 4547,833

Tabla 14: Valores promedio para el experimento de 50 trabajos y 50 máquinas.

VALORES DESVIACIÓN j50 m50

%CEROS RANDOM T. MEDIO NEH

0,1 159,930 157,052 113,233 0,2 206,443 158,115 112,181 0,3 194,528 173,640 109,968 0,4 170,770 138,824 125,338

Tabla 15: Valores desviación para el experimento de 50 trabajos y 50 máquinas.

PORCENTAJES DE MEJORA %CEROS RANDOM T. MEDIO

0,1 15,340 15,119

0,2 17,497 17,144

0,3 21,603 21,164

0,4 23,709 23,602

Tabla 16: Porcentaje de mejora respecto a NEH para el experimento de 50 trabajos y 50 máquinas.

VALORES PROMEDIO j150 m10

%CEROS RANDOM T. MEDIO NEH

0,1 8850,400 8940,000 7829,167 0,2 8149,667 8180,533 7040,967 0,3 7495,300 7421,900 6252,200 0,4 6654,667 6670,333 5480,367

Tabla 17: Valores promedio para el experimento de 150 trabajos y 10 máquinas.

VALORES DESVIACIÓN j150 m10

%CEROS RANDOM T. MEDIO NEH

0,1 226,037 276,121 272,870 0,2 218,548 217,303 207,980 0,3 274,551 219,332 206,031 0,4 255,334 253,685 240,186

(44)

PORCENTAJES DE MEJORA %CEROS RANDOM T. MEDIO

0,1 13,044 14,188

0,2 15,746 16,185

0,3 19,883 18,709

0,4 21,427 21,713

Tabla 19: Porcentaje de mejora respecto a NEH para el experimento de 150 trabajos y 10 máquinas.

VALORES PROMEDIO j150 m20

%CEROS RANDOM T. MEDIO NEH

0,1 10288,600 10244,000 8693,267 0,2 9572,867 9582,333 7871,267 0,3 8822,433 8824,567 7102,733 0,4 8074,367 7937,867 6210,400

Tabla 20: Valores promedio para el experimento de 150 trabajos y 20 máquinas.

VALORES DESVIACIÓN j150 m20

%CEROS RANDOM T. MEDIO NEH

0,1 230,586 213,281 137,601 0,2 253,595 195,536 111,988 0,3 207,211 240,615 150,464 0,4 231,377 217,608 164,444

Tabla 21: Valores desviación para el experimento de 150 trabajos y 20 máquinas.

PORCENTAJES DE MEJORA %CEROS RANDOM T. MEDIO

0,1 18,351 17,838

0,2 21,618 21,738

0,3 24,212 24,242

0,4 30,014 27,816

Tabla 22: Porcentaje de mejora respecto a NEH para el experimento de 150 trabajos y 20 máquinas.

VALORES PROMEDIO j150 m30

%CEROS RANDOM T. MEDIO NEH

0,1 11412,167 11285,633 9572,867 0,2 10652,533 10559,700 8713,933 0,3 9945,700 9818,433 7893,033 0,4 8999,500 8919,200 6925,633

(45)

VALORES DESVIACIÓN j150 m30

%CEROS RANDOM T. MEDIO NEH

0,1 235,855 176,741 134,410 0,2 253,777 256,876 130,735 0,3 191,697 211,908 146,639 0,4 258,346 217,724 91,888

Tabla 24: Valores desviación para el experimento de 150 trabajos y 30 máquinas.

PORCENTAJES DE MEJORA %CEROS RANDOM T. MEDIO

0,1 19,214 17,892

0,2 22,247 21,182

0,3 26,006 24,394

0,4 29,945 28,785

Tabla 25: Porcentaje de mejora respecto a NEH para el experimento de 150 trabajos y 30 máquinas.

VALORES PROMEDIO j150 m40

%CEROS RANDOM T. MEDIO NEH

0,1 12405,433 12391,433 10511,400 0,2 11687,200 11629,733 9644,033 0,3 10838,733 10869,333 8725,767 0,4 9934,000 9827,300 7736,433

Tabla 26: Valores promedio para el experimento de 150 trabajos y 40 máquinas.

VALORES DESVIACIÓN j150 m40

%CEROS RANDOM T. MEDIO NEH

0,1 226,420 214,692 112,886 0,2 164,189 208,605 102,095 0,3 216,543 256,171 114,322 0,4 236,560 188,398 106,820

Tabla 27: Valores desviación para el experimento de 150 trabajos y 40 máquinas.

PORCENTAJES DE MEJORA %CEROS RANDOM T. MEDIO

0,1 18,019 17,886

0,2 21,186 20,590

0,3 24,215 24,566

0,4 28,405 27,026

(46)

VALORES PROMEDIO j150 m50

%CEROS RANDOM T. MEDIO NEH

0,1 13227,600 13244,133 11427,167 0,2 12583,733 12595,767 10530,700 0,3 11687,967 11636,000 9565,067 0,4 10729,267 10818,700 8549,767

Tabla 29: Valores promedio para el experimento de 150 trabajos y 50 máquinas.

VALORES DESVIACIÓN j150 m50

%CEROS RANDOM T. MEDIO NEH

0,1 173,187 184,449 96,616 0,2 203,125 205,769 80,803 0,3 218,232 220,811 114,692 0,4 204,635 252,299 108,332

Tabla 30: Valores desviación para el experimento de 150 trabajos y 50 máquinas.

PORCENTAJES DE MEJORA %CEROS RANDOM T. MEDIO

0,1 15,756 15,900

0,2 19,496 19,610

0,3 22,194 21,651

0,4 25,492 26,538

Tabla 31: Porcentaje de mejora respecto a NEH para el experimento de 150 trabajos y 50 máquinas.

VALORES PROMEDIO j250 m10

%CEROS RANDOM T. MEDIO NEH

0,1 13932,100 13810,467 12561,733 0,2 12803,033 12810,867 11326,133 0,3 11550,600 11576,900 10034,033 0,4 10304,133 10261,600 8747,267

Tabla 32: Valores promedio para el experimento de 250 trabajos y 10 máquinas.

VALORES DESVIACIÓN j250 m10

%CEROS RANDOM T. MEDIO NEH

0,1 255,574 233,813 344,918 0,2 282,632 307,102 311,515 0,3 294,186 471,830 239,048 0,4 370,117 338,720 323,082

(47)

PORCENTAJES DE MEJORA %CEROS RANDOM T. MEDIO

0,1 10,909 9,941

0,2 13,040 13,109

0,3 15,114 15,376

0,4 17,798 17,312

Tabla 34: Porcentaje de mejora respecto a NEH para el experimento de 250 trabajos y 10 máquinas.

VALORES PROMEDIO j250 m20

%CEROS RANDOM T. MEDIO NEH

0,1 15715,467 15620,333 13470,567 0,2 14518,900 14491,167 12193,933 0,3 13300,900 13199,300 10925,733 0,4 11975,867 11891,233 9547,100

Tabla 35: Valores promedio para el experimento de 250 trabajos y 20 máquinas.

VALORES DESVIACIÓN j250 m20

%CEROS RANDOM T. MEDIO NEH

0,1 319,153 299,344 191,879 0,2 293,089 259,053 208,632 0,3 245,203 304,566 204,134 0,4 396,357 279,734 207,302

Tabla 36: Valores desviación para el experimento de 250 trabajos y 20 máquinas.

PORCENTAJES DE MEJORA %CEROS RANDOM T. MEDIO

0,1 16,665 15,959

0,2 19,067 18,839

0,3 21,739 20,809

0,4 25,440 24,553

Tabla 37: Porcentaje de mejora respecto a NEH para el experimento de 250 trabajos y 20 máquinas.

VALORES PROMEDIO j250 m30

%CEROS RANDOM T. MEDIO NEH

0,1 16992,600 17014,567 14495,467 0,2 15772,367 15793,767 13108,633 0,3 14544,200 14563,867 11757,067 0,4 13260,733 13160,567 10334,033

(48)

VALORES DESVIACIÓN j250 m30

%CEROS RANDOM T. MEDIO NEH

0,1 256,503 277,571 151,953 0,2 282,177 302,628 106,508 0,3 239,709 353,057 162,584 0,4 318,562 288,220 162,367

Tabla 39: Valores desviación para el experimento de 250 trabajos y 30 máquinas.

PORCENTAJES DE MEJORA %CEROS RANDOM T. MEDIO

0,1 17,227 17,379

0,2 20,320 20,484

0,3 23,706 23,873

0,4 28,321 27,352

Tabla 40: Porcentaje de mejora respecto a NEH para el experimento de 250 trabajos y 30 máquinas.

VALORES PROMEDIO j250 m40

%CEROS RANDOM T. MEDIO NEH

0,1 18116,467 18069,467 15485,500 0,2 16921,633 16922,600 14151,467 0,3 15729,533 15694,733 12720,933 0,4 14251,900 14320,733 11190,267

Tabla 41: Valores promedio para el experimento de 250 trabajos y 40 máquinas.

VALORES DESVIACIÓN j250 m40

%CEROS RANDOM T. MEDIO NEH

0,1 307,822 211,636 104,459 0,2 255,973 319,482 151,067 0,3 357,108 240,590 118,985 0,4 243,575 306,555 140,583

Tabla 42: Valores desviación para el experimento de 250 trabajos y 40 máquinas.

PORCENTAJES DE MEJORA %CEROS RANDOM T. MEDIO

0,1 16,990 16,686

0,2 19,575 19,582

0,3 23,651 23,377

0,4 27,360 27,975

Referencias

Documento similar

Las poliamidas, como se ha explicado anteriormente, tienen un módulo de elasticidad bajo por lo que carecería de resistencia mecánica suficiente para poder ejercer

Urban et al., present a series of clinical cases of patients with bone atrophy of the anterior maxillary sector treated with autologous bone and hydroxyapatite

The final diagnosis presented to the patient was ‘Oehlers type II DI with necrotic pulp and chronic peri-radicular periodontitis in the left maxillary lateral incisor’

Además, para realizar y procesar los resultados experimentales también se han utilizado softwares de edición y visualización de moléculas como Pymol (11), UCSF

Cranio-photographic superimposition, compared to the other necro- identification techniques can be considered as useful as the other individualization method when

Como acabamos de ver la articulación temporomandibular (ATM) es una articulación sinovial bicondílea, compuesta por dos estructuras óseas convexas: el cóndilo

Los materiales que se emplean para esta función son los que están elaborados con resinas, compuestos por partículas de nanorelleno y microrelleno, aportando mejores

Se puede concluir que la microbiota intestinal desempeña un papel relevante en el estado de salud-enfermedad del hospedador, aportando su contribución en la