+ All Categories
Home > Documents > Trabajo Fin de Grado Grado en Ingeniería de Organización...

Trabajo Fin de Grado Grado en Ingeniería de Organización...

Date post: 29-Mar-2021
Category:
Upload: others
View: 3 times
Download: 0 times
Share this document with a friend
111
Trabajo Fin Grado en In Problema d no Relacion Autor: Fernando Tutor: Paz Pérez Dep. Orga Esc 31 Equation C n de Grado ngeniería de Organización de Secuenciación en Máqu nadas y Restricción de Ele o Lozano García z González anización Industrial y Gestión de Em cuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2016 Chapter 1 Section 1 n Industrial uinas Paralelas egibilidad mpresas I a
Transcript
Page 1: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

Trabajo Fin de GradoGrado en Ingeniería de Organización Industrial

Problema de Secuenciación en Máquinas Paralelas no Relacionadas y Restricción de Elegibilidad

Autor: Fernando Lozano García

Tutor: Paz Pérez González

Dep. Organización Industrial y Gestión de Empresas IEscuela Técnica Superior de Ingeniería

31

Equation Chapter 1 Section 1

Trabajo Fin de Grado Grado en Ingeniería de Organización Industrial

Problema de Secuenciación en Máquinas Paralelas no Relacionadas y Restricción de Elegibilidad

Fernando Lozano García

Paz Pérez González

Organización Industrial y Gestión de Empresas IEscuela Técnica Superior de Ingeniería

Universidad de Sevilla

Sevilla, 2016

Equation Chapter 1 Section 1

Grado en Ingeniería de Organización Industrial

Problema de Secuenciación en Máquinas Paralelas no Relacionadas y Restricción de Elegibilidad

Organización Industrial y Gestión de Empresas I Escuela Técnica Superior de Ingeniería

Page 2: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

1

Trabajo Fin de Grado Grado Ingeniería de Organización Industrial

Problema de Secuenciación en Máquinas Paralelas

no Relacionadas y Restricción de Elegibilidad

Autor:

Fernando Lozano García

Tutor:

Paz Pérez González

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

Escuela Técnica Superior de Ingeniería

Universidad de Sevilla Sevilla, 2016

Page 3: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

3

Índice

Índice 3

Índice de Tablas 5

Índice de Figuras 7

1 Introducción 9

1.1. Objetivos 9

1.2. Estructura del documento 10

2 Programación de la Producción 13

2.1. Introducción a la programación de la producción 13

2.2. Conceptos básicos 16

2.3. Modelos de programación de la producción 18

2.4. Métodos de programación de la producción 23

3 Problema de Máquinas Paralelas no Relacionadas 25

3.1. Problemas en máquinas paralelas 25

3.2. Descripción del problema 27

3.3. Modelo de Programación Lineal 29

3.4. Ejemplo numérico 29

4 Resolución del Problema de Forma Exacta 33

4.1. Introducción 33

4.2. Matlab 33

4.3. Gurobi 34

4.4. Batería de Problemas 38

4.5. Resultados del MILP 40

5 Resolución del Problema de Forma Aproximada 55

5.1. Introducción 55

5.2. Presentación de la heurística 57

5.3. Ejemplo numérico 58

5.4. Resultados 63

6 Conclusiones 77

Bibliografía 79

Anexos 81

Anexo 1: Batería de problemas y modelo matemático en Matlab 81

Anexo 2: Programación de heurística en C 85

Anexo 3: Resultados del modelo 89

Anexo 4: Resultados de la Heurística 101

Page 4: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

4

Page 5: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

5

Índice de Tablas Tabla 1. Datos del ejemplo numérico del modelo 30

Tabla 2. Datos de Tiempos medios y Desviación Típica de BP para el modelo de PL. 42

Tabla 3. Datos de Tiempos medios y Desviación Típica de BG para el modelo de PL 48

Tabla 4. Datos de Tiempos medios del modelo de PL y Heurística y PDR Medio para BP 64

Tabla 5. Datos de Tiempos medios del modelo de PL y Heurística y PDR Medio para BG 70

Tabla 6. Resultados del Modelo. 2 Máquinas 90

Tabla 7. Resultados del Modelo. 4 Máquinas 91

Tabla 8. Resultados del Modelo. 6 Máquinas 93

Tabla 9. Resultados del Modelo. 8 Máquinas 94

Tabla 10. Resultados del Modelo. 10 Máquinas 96

Tabla 11. Resultados del Modelo. 20 Máquinas 97

Tabla 12. Resultados del Modelo. 30 Máquinas 97

Tabla 13. Resultados del Modelo. 40 Máquinas 98

Tabla 14. Resultados del Modelo. 50 Máquinas 98

Tabla 15. Resultados del Modelo. 100 Máquinas 99

Tabla 16. Resultados del Modelo. 200 Máquinas 99

Tabla 17. Resultados de la Heurística. Batería Pequeña 107

Tabla 18. Resultados de la Heurística. Batería Grande 111

Page 6: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

6

Page 7: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

7

Índice de Figuras Figura 1. Máquina única (Pérez González, 2014) 19

Figura 2. Máquinas paralelas idénticas (Pérez González, 2014) 19

Figura 3. Flow Shop (Pérez González, 2014) 20

Figura 4. Job Shop (Pérez González, 2014) 20

Figura 5. Open Shop (Pérez González, 2014) 20

Figura 6. Hybrids Flowshop (Pérez González, 2014) 21

Figura 7. Modelo Programación Lineal de Máquinas Paralelas no Relacionadas (Pinedo, 2012) 29

Figura 8. Resolución en Excel del ejemplo numérico del modelo 30

Figura 9. Representación de solución óptima del ejemplo numérico del modelo 31

Figura 10. Esquema de Gurobi (http://www.gurobi.com) 35

Figura 11. Tiempos medios para los valores de n para el modelo de PL. m = 2 43

Figura 12. Tiempos medios para los valores de n para el modelo de PL. m = 4 43

Figura 13. Tiempos medios para los valores de n para el modelo de PL. m = 6 44

Figura 14. Tiempos medios para los valores de n para el modelo de PL. m = 8 44

Figura 15. Tiempos medios para los valores de n para el modelo de PL. m = 10 45

Figura 16. Comparación por máquinas de Tiempos de ejecución medios en BP para el modelo de PL 45

Figura 17. Comparación por máquinas de Desviación estándar medias en BP para el modelo de PL 46

Figura 18. Tiempo de cómputo de Gurobi para BP. Comparación de tiempos medios 46

Figura 19. Tiempos medios para los valores de n para el modelo de PL. m = 20 49

Figura 20. Tiempos medios para los valores de n para el modelo de PL. m = 30 50

Figura 21. Tiempos medios para los valores de n para el modelo de PL. m = 40 50

Figura 22. Tiempos medios para los valores de n para el modelo de PL. m = 50 51

Figura 23. Tiempos medios para los valores de n para el modelo de PL. m = 100 51

Figura 24. Tiempos medios para los valores de n para el modelo de PL. m = 200 52

Figura 25. Comparación por máquinas de Tiempos de ejecución medios en BG para el modelo de PL 52

Figura 26. Tiempo de cómputo de Gurobi para BG. Comparación de tiempos medios 53

Figura 27. Diagrama de flujo del algoritmo 58

Figura 28. Paso 1. Ejemplo numérico de la heurística 59

Figura 29. Paso 2. Ejemplo numérico de la heurística 60

Figura 30. Paso 3. Ejemplo numérico de la heurística 60

Figura 31. Paso 4. Ejemplo numérico de la heurística 61

Figura 32. Paso 5. Ejemplo numérico de la heurística 62

Figura 33. PDR medio para los valores de n. m = 2 65

Figura 34. PDR medio para los valores de n. m = 4 65

Figura 35. PDR medio para los valores de n. m = 6 66

Figura 36. PDR medio para los valores de n. m = 8 66

Page 8: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

8

Figura 37. PDR medio para los valores de n. m = 10 67

Figura 38. Resumen de PDR medios para los valores de m de la BP 67

Figura 39. PDR medio para BP de las distintas máquinas 68

Figura 40. Diferencia de tiempos de cómputo entre modelo y heurística en BP 68

Figura 41. PDR medio para los valores de n. m = 20 71

Figura 42. PDR medio para los valores de n. m = 30 72

Figura 43. PDR medio para los valores de n. m = 40 72

Figura 44. PDR medio para los valores de n. m = 50 73

Figura 45. PDR medio para los valores de n. m = 100 73

Figura 46. PDR medio para los valores de n. m = 200 74

Figura 47. Resumen de PDR medios para los valores de m de la BG 74

Figura 48. PDR medio para BG de las distintas máquinas 75

Figura 49. Diferencia de tiempos de cómputo entre modelo y heurística en BG 76

Page 9: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

9

1 INTRODUCCIÓN

1.1. Objetivos

El objetivo principal del presente Trabajo Fin de Grado es el de estudiar y resolver un problema de

programación de la producción. Para ello se asignarán recursos a los distintos trabajos cuyos tiempos

de proceso vienen establecidos, con la finalidad de optimizar un objetivo. La programación de la

producción no es una tarea fácil en la práctica ya que cada empresa o entorno en que se quiera aplicar

es diferente y cada una tiene sus propias restricciones y recursos. La incorporación de esta

programación en un entorno tiene una gran importancia, a pesar de ser muy complicada de implantar,

ya que con ello se consigue optimizar la producción, lo que supone un aumento de beneficios

optimizando el rendimiento de la planta. Hoy en día es primordial cumplir con los plazos de entrega,

siendo necesario para ello cumplir a su vez con los plazos de producción. Es por ello que la

programación de la producción se convierte en una herramienta esencial.

Los distintos recursos que pueden aparecer son desde máquinas en una planta de producción,

operarios con herramientas, cintas transportadoras… Los trabajos pueden ser operaciones a realizar

en un determinado producto durante su proceso productivo y etapas de un proyecto, entre otros. Los

objetivos a perseguir en una programación de la producción pueden ser muy diversos como, por

ejemplo, minimizar la tardanza total, minimizar el makespan, minimizar los tiempos de finalización

de los trabajos o minimizar los retrasos. Otra importante característica a tener en cuenta en un

problema a la hora de programar su producción es el entorno en el que se realizan los trabajos, es

decir, la distribución de las máquinas. Los distintos entornos se describen en el capítulo 2 del

presente Trabajo Fin de Grado.

Debido a las importantes ventajas que aporta la programación de la producción, ésta se utiliza en

empresas y procesos de sectores muy diferentes. Es el caso de empresas de fabricación donde se

persigue disminuir todo lo posible los retrasos y tiempos muertos de las máquinas, empresas de

servicios en las que la prioridad es disminuir la mano de obra o empresas de logística donde el

objetivo principal es el de reducir los costes de transporte.

Mediante este trabajo se pretende comparar los resultados obtenidos por un modelo de programación

lineal y una heurística para un problema de máquinas paralelas no relacionadas cuyo objetivo es el de

minimizar el tiempo de finalización de todos los trabajos (makespan). El problema en cuestión tiene

una restricción muy común en el día a día de las empresas pero de la cual no se dispone mucha

información y no es fácil encontrar publicaciones donde se tenga en consideración dicha restricción.

La restricción en cuestión recibe el nombre de elegibilidad (elegibility) y consiste en la imposibilidad

Page 10: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

10

de que una máquina pueda realizar un determinado trabajo. En capítulos posteriores se describe de

manera más detallada esta restricción y cómo se ha incluido en el problema.

1.2. Estructura del documento

Este Trabajo Fin de Grado se compone de seis capítulos y unos anexos en los cuales se ha estudiado

dicho problema y se han llevado a cabo los análisis y pruebas necesarias para poder comprender su

mecánica.

En el capítulo 2 se describe lo que es la programación de la producción, empezando por una breve

introducción histórica y teórica y continuando por sus características, objetivos y demás elementos

relacionados con la programación.

Tras esta introducción teórica, el capítulo 3 comienza con un análisis en mayor profundidad de los

problemas de programación en máquinas paralelas ya que el problema a tratar en este Trabajo Fin de

Grado consiste en un problema de dichas características. Tras esto, se explica el problema objeto de

estudio de este Trabajo Fin de Grado, donde se realiza una descripción del problema a tratar, sus

restricciones, función objetivo y todas aquellas consideraciones a tener en cuenta para poder resolver

dicho problema, además de mostrar el modelo de programación lineal a resolver. Tras esta

introducción al problema, en este capítulo se lleva a cabo la resolución de un ejemplo sencillo

mediante la herramienta Solver de Microsoft Excel con el fin de entender el problema a tratar.

En el capítulo 4 se analizarán los programas necesarios que se han utilizado en este Trabajo para

poder realizar las pruebas necesarias y obtener los resultados oportunos del problema en cuestión. En

este caso se ha utilizado el lenguaje de programación Matlab para realizar la batería de problemas y

generar el modelo de programación lineal a resolver. Este modelo será resuelto posteriormente por

Gurobi, proporcionando el makespan del problema y el tiempo de cómputo necesario para obtener la

solución de cada problema. Tras esto se explica cómo se ha generado la batería de problemas, sus

características y demás consideraciones que se han tenido en cuenta a la hora de realizarla. Una vez

presentados los programas necesarios para resolver de forma óptima el problema y las características

de las instancias de los problemas que se van a resolver, el capítulo finaliza con la presentación de los

resultados de los distintos problemas y análisis de los mismos.

Una vez obtenidos el óptimo de los problemas, en el capítulo 5 se va a realizar un análisis de los

mismos problemas mediante su resolución por una heurística. Para ello en este capítulo se comenzará

por una introducción teórica a las heurísticas y se continuará con una presentación a la heurística

seleccionada para llevar a cabo la resolución de los problemas. Tras esto se llevará a cabo la

resolución de un problema pequeño de manera manual (sin utilizar software) para comprender el

Page 11: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

11

funcionamiento de la heurística. Por último, en este capítulo se resolverá mediante el lenguaje de

programación C los mismos problemas resueltos por el modelo de programación lineal y se

compararán los resultados obtenidos por esta heurística y los obtenidos por el modelo de

programación lineal mediante el cálculo del Porcentaje de Desviación Relativa (PDR).

En el capítulo 6 se recogen las conclusiones que se pueden extraer de este Trabajo Fin de Grado y de

los resultados obtenidos a lo largo de dicho trabajo

Por último, este trabajo se compone también de cuatro anexos. El Anexo 1 recoge el código en

Matlab de la batería de problemas y del modelo de programación lineal necesarios para que Gurobi

realice la resolución de los problemas. En el Anexo 2 se puede apreciar el código en C de la

heurística utilizada para resolver de manera aproximada los problemas. El Anexo 3 está compuesto

por los resultados obtenidos por Gurobi una vez resuelto el modelo de programación lineal. Por

último, en el Anexo 4, se recogen los resultados obtenidos de la heurística y la comparación con las

soluciones proporcionadas por Gurobi.

Page 12: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

12

Page 13: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

13

2 PROGRAMACIÓN DE LA PRODUCCIÓN

2.1. Introducción a la programación de la producción

La programación de la producción empezó a considerarse a principios del siglo XX con los trabajos

realizados por Henry Gantt (Gantt, 1910 y Gantt, 1919). Hasta que no transcurrieron varios años no

aparecieron las primeras publicaciones en la literatura de la investigación operativa, en la década de

1950 con los artículos de Smith (1956), Johnson (1954) y Jackson (1956) (Juan Velasco Sánchez,

2013). Durante la década de 1980 se siguieron diferentes líneas de investigación tanto a nivel teórico

como práctico, cobrando un gran interés la programación estocástica (Pinedo, 2008). En esta época

se desarrollaron programas para poder utilizar en la práctica, todo esto fue posible gracias a la

difusión de los ordenadores en el ámbito empresarial (Juan Velasco Sánchez, 2013).

La planificación y el control de la producción tienen una serie de funciones como las que se muestran

a continuación (Juan Velasco Sánchez, 2013):

- Predecir la demanda en relación al tipo de producto, cantidad y momento en el que se

presentará dicha demanda.

- Planificar la producción, asignar los recursos de que dispone una empresa a las necesidades

de producción, de manera que se logre satisfacer la predicción de la demanda.

- Controlar y gestionar el stock, estableciendo órdenes de producción y compras en los niveles

de materias primas, partes compradas y productos terminados.

- Programación de la producción. Consiste en asignar actividades a puestos de trabajos

específicos, obteniendo unos tiempos de iniciación y finalización de cada uno de los trabajos

en los distintos puestos.

- Lanzamiento y control de la producción. Implica un aprovisionamiento de herramientas,

materiales y la comunicación de las instrucciones a la planta. Este control realimenta a las

funciones anteriores para su posterior corrección.

Existen dos tipos de producción dentro de una empresa, que depende del conocimiento de la

demanda que se tenga en el momento, estos dos tipos son (Companys Pascual, 1989):

- Fabricación para almacenar. Tiene gran importancia la predicción de la demanda, la

planificación de la producción y el control y gestión del stock. Por contrario, la programación

de la producción y el lanzamiento y control tienen una importancia media.

- Fabricación bajo pedido. Tiene una importancia moderada las funciones de predicción de la

Page 14: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

14

demanda, planificación de la producción y el control y gestión del stock, mientras que la

programación de la producción y el lanzamiento y control tienen una importancia alta.

Bajo este contexto, el presente Trabajo Fin de Grado se va a centrar en la programación de la

producción. La finalidad de la programación de la producción es establecer un tiempo de inicio y fin

de cada trabajo en cada una de las máquinas o estaciones necesarias para obtener el producto final.

Para poder obtener dichos tiempos de inicio y finalización es necesario que previamente cada trabajo

haya sido cargado (asignar su realización en una máquina en concreto) y puesto en secuencia, es

decir, establecer el orden de ejecución de cada trabajo en cada máquina.

Otro concepto a tener en cuenta es el de período de programación, el cuál es el período durante el

cual se considera que un programa se mantiene fijo. Este período debe procurarse que sea lo más

corto posible. El rango de variación del período de programación puede ser de entre unas pocas horas

hasta una semana, tiempo durante el cual únicamente se aceptan órdenes de producción de

emergencia. (Companys Pascual, 1989) El período ideal de programación sería de cero (Pinedo,

2009), es decir, las órdenes se reciben y asignan continuamente, de igual modo, el trabajo en proceso

y la programación se revisarán de forma continua como resultado de los continuos cambios que

ocurren dentro de la planta.

Existen diferentes sistemas de fabricación cuya naturaleza y complejidad de programación varían de

forma sustancial. Estos sistemas de fabricación varían desde la fabricación continua hasta el trabajo

de taller, pasando por la producción intermitente. A continuación se definirán dichos sistemas

(Companys Pascual, 1989):

- Fabricación continua: su programación es sencilla ya que la capacidad de producción es fija y

se determina durante el diseño de la línea de producción. Algunos ejemplos de este sistema

de fabricación los encontramos en las fábricas cementeras, siderurgia, automoción, etc.

- Trabajo de taller: es el sistema opuesto al de fabricación continua, donde los trabajos se

realizan bajo pedido. Resulta muy difícil conseguir una predicción de la demanda, lo que

conlleva a una complicación en la planificación de la producción. Esto puede hacer que

máquinas que están desocupadas pasen a estar sobrecargadas. Debido a esta complejidad a la

hora de predecir la demanda, es necesario que en la empresa haya todo tipo de materias

primas, ya que no se sabe si serán necesarias próximamente o no. De igual modo se debe

contar con personal suficiente para cubrir posibles picos de demanda y que sean capaces de

efectuar distintos trabajos. La programación en este tipo de empresas tiene la función de

asignar los distintos recursos de que se dispone en el taller a los diferentes trabajos que

llegan. Los pedidos casi siempre se enviarán con retraso ya que resulta muy difícil conseguir

Page 15: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

15

una alta utilización de la maquinaria y del personal. Algunos ejemplos de este tipo de sistema

de fabricación es la fabricación de matrices, moldes…

- Producción intermitente: es un tipo de sistema de fabricación que se encuentra entre la

fabricación continua y el trabajo de taller. Es posible que un sistema de este tipo fabrique

únicamente bajo pedido, aunque de forma frecuente se atienden a los pedidos por medio de

los stocks, ya que estas empresas poseen un programa de las necesidades de los clientes a lo

largo de todos los meses del año y esto facilita la planificación de la producción. En el caso

de producirse una variación en la demanda del cliente, estos programas pueden ser

modificados semanalmente. La secuencia de los trabajos en las distintas máquinas para la

fabricación de cada producto suele ser fija. En el caso en que se necesite fabricar grandes

cantidades de una misma pieza se utiliza una distribución en planta por producto,

denominada distribución en línea. También se diseña una línea de fabricación en el caso en

que formando familias de piezas se llegue a cantidades importantes. Un ejemplo de este tipo

de sistemas de fabricación es la industria auxiliar del automóvil, formada por empresas cuya

misión es la de suministrar piezas a la empresa que se encarga del ensamblaje del automóvil.

Con todo lo visto anteriormente podemos observar que cada empresa es distinta de las otras, lo cual

conlleva a que cada sistema y su complejidad varían de una empresa a otra. Otro aspecto importante

a tener en cuenta son las decisiones que deben tomarse a la hora de programar la producción, estas

decisiones deben tener las siguientes características (Framinan et al., 2014):

- Exhaustivas y con un gran nivel de detalle: el volumen de datos a manejar debe ser muy

grande debido a la necesidad de establecer el tiempo de inicio de cada trabajo en cada recurso

de la empresa.

- Se deben tomar en intervalos cortos de tiempo, a ser posible en tiempo real:

• Horizonte rodante (Rolling horizon): consiste en la obtención de un programa para un

número determinado de intervalos de tiempo, del que solo se ejecuta el primer intervalo.

Con esto se consigue incorporar los cambios y variaciones ocurridas en cada período.

• Reprogramación (Rescheduling): se trata de modificar el programa debido a la

incertidumbre del entorno de la producción.

- Tiene una gran influencia en los resultados finales.

- Debido a que cada empresa es distinta de las otras, las condiciones de la decisión, las

restricciones y los objetivos, depende de cada empresa.

- Decisiones estructuradas: en muchas ocasiones, las decisiones relacionadas con la

Page 16: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

16

programación pueden ser formalizadas mediante técnicas cuantitativas:

• Modelos matemáticos: posibilitan la definición del conjunto de restricciones y objetivos

de las decisiones. Estos modelos matemáticos pueden resolverse de forma óptima o

aproximada mediante distintas técnicas.

• Los datos que son necesarios para tomar decisiones, datos tales como tiempos de

proceso, fechas, etc., se obtienen con cierta facilidad.

La programación de la producción presenta una serie de problemas. Según (Juan Velasco Sánchez,

2013), los problemas presentes en la programación de la producción pueden ser: la competencia

entre los trabajos por los recursos necesarios para ser realizados, lo que origina colas en las entradas

de las distintas máquinas. Existe la posibilidad de que las máquinas y herramientas sufran averías,

además de otros factores que pueden llevar a retrasos en el programa previsto inicialmente como es

el absentismo laboral, la variación de rendimientos de cada uno de los trabajadores o materiales

defectuosos o que no cumplan con las especificaciones que se requieran. Otro problema que puede

aparecer durante la realización de los trabajos es el de la cancelación, reducción o aumento de las

órdenes de fabricación, además de los retrasos en la llegada de las materias primas, o un aumento o

disminución de la demanda.

2.2. Conceptos básicos

Entre los objetivos más importantes que persigue la programación de la producción destaca

(Companys Pascual, 1989) el cumplimiento de los plazos de entrega, evitar tiempos ociosos en las

máquinas y trabajadores, evitar quedarse sin stock, reducir el stock en curso de fabricación, y evitar

las horas extras. Estos objetivos deben lograrse siempre de tal manera que se minimicen los costes

asociados con el incumplimiento de estos objetivos.

La programación de la producción se compone de las siguientes fases (Juan Velasco Sánchez, 2013):

- Carga de máquinas: las órdenes de producción pasan a ser operaciones a llevar a cabo. Estas

operaciones son asignadas a las distintas máquinas. En el caso de ser posible asignaciones

alternativas, se debe tener en cuenta la carga de trabajo en las máquinas alternativas. En esta

fase se determinan las necesidades de máquinas, materiales y mano de obra.

- Evaluar la carga de trabajo: en esta fase se lleva a cabo la comparación de las necesidades de

horas de máquina y de mano de obra con las capacidades correspondientes. En esta fase se

debe tener en cuenta si es necesario establecer turnos adicionales, horas extras, contratar

mano de obra temporal, etc., para lograr equilibrar las necesidades con las capacidades.

Page 17: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

17

- Poner en secuencia los trabajos en cada máquina: se trata de ordenar las operaciones

asignadas a cada una de las máquinas cumpliendo los objetivos por orden de prioridad.

- Desarrollo de un programa detallado: determinar los tiempos de inicio y fin de cada uno de

los trabajos en cada máquina, en esta fase, el programa está listo para ser lanzado. A través de

un sistema de recolección de datos y de un sistema de control de progreso se consigue

información actualizada y exacta.

(Juan Velasco Sánchez, 2013) define la máquina como un recurso productivo con una cierta

capacidad para transformar o transportar un material. Este término puede representar distintos

objetos físicos, tales como operarios, herramientas, máquinas, combinación de operarios,

herramientas y máquinas, la planta de producción al completo, sistema de transporte de

material…Otro concepto a tener en cuenta es el trabajo que se define como producto objeto de una

operación en alguna de las máquinas. De estas dos definiciones anteriores surge la de tiempo de

proceso como la duración en el tiempo de una operación y transformación de un trabajo en una

máquina determinada.

Un programa (Schedule) consiste en la asignación en una escala temporal concreta de las máquinas

para la fabricación de un conjunto de trabajos, es quién determina los tiempos de inicio y fin de cada

operación a realizar en cada uno de los recursos. Debido a que en la mayoría de los casos el tiempo

de proceso es conocido, basta con obtener el tiempo de inicio o de fin. Esto no siempre se cumple ya

que en muchos casos existen operaciones interrumpibles e implica establecer dichos instantes de

interrupción y de continuación de las operaciones. Los programas pueden ser de dos tipos (Framiñan

et al., 2014):

- Un programa admisible (Feasible Schedule) es aquel que cumple con todas las restricciones y

características del proceso productivo. Lograr este programa es el principal objetivo de toda

programación de la producción. Puede darse el caso de la existencia de varios programas

admisibles, en dicho caso se debe establecer criterios adicionales para evaluar cada uno de

estos programas y poder seleccionar el más adecuado para ser ejecutado en la planta. Este

procedimiento por el que obtenemos un programa se denomina algoritmo. Dentro de este

tipo de programas se encuentra el programa óptimo (Optimal Schedule), que se define como

aquel programa admisible que resulta ser mejor que cualquier otro programa admisible. Este

programa óptimo se obtiene mediante un algoritmo denominado algoritmo óptimo.

- El otro tipo de programas es el no admisible, este tipo de programas no cuenta con los

requisitos necesarios para poder aplicarlo al problema en cuestión, no cumple con las

restricciones y características del proceso productivo.

Page 18: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

18

En los problemas NP-Hard, el objetivo no es buscar la solución óptima debido a su gran

complejidad, sino buscar soluciones buenas próximas a la óptima, con lo que los algoritmos

utilizados para este tipo de problemas son los algoritmos de aproximación que nos devuelve una

solución cercana a la óptima. Otra manera de obtener una solución próxima a la óptima es resolver el

problema mediante heurísticas aunque es posible no obtener una solución de calidad ni un tiempo de

cálculo aceptable (Luis Fanjul Peyró, 2010).

2.3. Modelos de programación de la producción

Un modelo de programación de la producción consiste en una abstracción de un problema concreto

donde es necesaria una toma de decisión en el ámbito de la programación de la producción

(Framiñan, Leisten, & Ruiz García, 2014). Para poder realizar el modelo son necesarios una serie de

datos como los que se muestran a continuación:

- Conjuntos de trabajos y de máquinas.

- La operación de un trabajo en una máquina.

- Ruta de proceso. Ruta predefinida que debe seguir un trabajo a lo largo de las distintas

máquinas. Es el orden que debe seguir el trabajo en las máquinas.

- Tiempo de proceso. Tiempo en que una máquina está ocupada en procesar un trabajo en

concreto. Es el tiempo que tarda una máquina en realizar un trabajo.

- Fecha de llegada. Instante en que un trabajo puede empezar a ser procesado por una máquina.

- Fecha de entrega. Instante de tiempo en el que un trabajo debe estar terminado. Esta fecha de

entrega puede no cumplirse con la consiguiente penalización o coste adicional.

- Fecha de entrega obligatoria. Fecha de entrega que no puede ser retrasada bajo ningún

concepto.

- Peso. Prioridad que tiene un trabajo en ser realizado en una máquina determinada.

- Disponibilidad de las máquinas. Instante de tiempo a partir del cual una máquina está

disponible para ser usada.

Un problema de programación de la producción se identifica por la letra de los tres campos α, β y γ.

Cada una de estas letras corresponde a una característica del modelo. El significado de estas letras es

el siguiente (Graham, 1969):

- α: relacionada con la característica de la máquina. Es el tipo de entorno. Dependiendo del

valor de α, el entorno a estudiar es el siguiente:

Page 19: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

19

• α = 1: una única máquina. Cada trabajo debe procesarse en una máquina en una sola

operación. Los trabajos no siguen una ruta concreta.

• α = P: máquinas paralelas idénticas. Cada trabajo debe procesarse en una máquina en una

sola operación. Los trabajos no siguen una ruta concreta. El tiempo de proceso de cada

trabajo en cada una de las máquinas no depende de la máquina donde se procese.

• α = Q: máquinas paralelas uniformes. Cada trabajo debe procesarse en una máquina en

una sola operación. Los trabajos no siguen una ruta concreta. Cada máquina tiene

diferentes velocidades de procesado, siendo la misma para todos los trabajos, es decir,

una máquina más rápida procesa los trabajos más rápido que otra más lenta.

• α = R: máquinas paralelas no relacionadas. Cada trabajo debe procesarse en una máquina

en una sola operación. Los trabajos no siguen una ruta concreta. Todas las máquinas son

diferentes. El tiempo en que se procesa un trabajo depende de la máquina en que se

procese.

• α = F: taller de flujo regular (Flow Shop). Las máquinas están dispuesta en serie, cada

una realiza un proceso diferente, siendo necesario que cada trabajo sea procesado en

todas las máquinas. La ruta de los trabajos es la misma para todos ellos.

Máquina 1 Salida de Trabajos Entrada de Trabajos

Máquina 1

Máquina 2

Máquina 3

Entrada de Trabajos Salida de Trabajos

Figura 1. Máquina única (Pérez González, 2014)

Figura 2. Máquinas paralelas idénticas (Pérez González, 2014)

Page 20: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

20

Existe un caso particular denominado taller de flujo regular de permutación (Permutation

Flow Shop) en el que la secuencia para todas las máquinas es la misma.

• α = J: taller (Job Shop). Las máquinas están dispuesta en serie, cada una realiza un

proceso diferente, siendo necesario que cada trabajo sea procesado en todas las máquinas.

La ruta de los trabajos es distinta para cada uno de ellos.

• α = O: taller abierto (Open Shop). Las máquinas están dispuesta en serie, cada una realiza

un proceso diferente, siendo necesario que cada trabajo sea procesado en todas las

máquinas. La ruta de los trabajos no está determinada, siendo posible cualquier

combinación.

Máquina 1 Máquina 2 Máquina m . . . . .

Entrada de Trabajos

Salida de Trabajos

Máquina 1 Máquina 2 Máquina m

Entrada de Trabajos

Salida de Trabajos

Entrada de Trabajos

Entrada de Trabajos

Salida de Trabajos

Salida de Trabajos

. . . . .

Máquina 1 Máquina 2 Máquina m . . . . .

Figura 3. Flow Shop (Pérez González, 2014)

Figura 4. Job Shop (Pérez González, 2014)

Figura 5. Open Shop (Pérez González, 2014)

Page 21: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

21

• Existe un último caso denominado entorno híbrido en el que se unen máquinas paralelas

con un taller. El taller está compuesto por estados en vez de máquinas y cada uno de

estos estados está formado por una o varias máquinas paralelas.

- β: son las restricciones a las que está sujeto el modelo de programación de la producción.

Algunas de las restricciones más destacadas que pueden encontrarse en dichos modelos son:

precedencia de trabajos, tiempos de setup, elección de máquinas, disponibilidad de las

máquinas, interrupción de los trabajos, fecha de llegada y de entrega, almacenaje o buffer…

(Framinan et al., 2014).

- γ: es la función objetivo o criterio. Las funciones objetivos pueden clasificarse según el coste,

tiempo, calidad y flexibilidad.

Existen las siguientes medidas a la hora de evaluar la función objetivo de un modelo:

• Cj: tiempo de terminación del trabajo j (completion time). Es el tiempo en que un trabajo

termina su procesado en el entorno.

• Fj: tiempo de flujo del trabajo j (flowtime). Es el tiempo en el que un trabajo se encuentra

en el entorno. Fj = Cj – rj.

• Lj: retraso del trabajo j (lateness). Mide lo que se retrasa o adelanta un trabajo.

Lj = Cj – dj.

Máquina 1 Máquina 1 Máquina 1

Máquina 2 Máquina 2 Máquina 2

Máquina m1 Máquina m2 Máquina mm

Estación 1 Estación 2 Estación m

Entrada de Trabajos

Salida de Trabajos

Figura 6. Hybrids Flowshop (Pérez González, 2014)

Page 22: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

22

• Tj: tardanza del trabajo j (tardiness). Mide lo que se retrasa un trabajo. Tj = máx {0, Lj}.

• Ej: adelanto del trabajo j (earliness). Mide lo que se adelanta un trabajo.

Ej = máx {0, -Lj}.

• Uj: trabajo tardío (tardy job). Uj vale 1 en el caso en que se retrase y 0 si no. Es decir,

Uj =1 si Tj > 0 y Uj = 0 en caso contrario.

Los objetivos que pueden aparecer en un modelo de programación de la producción se

agrupan en cuatro grupos. El primero de ello consiste en encontrar un programa factible, es

decir γ = -. Otro grupo de objetivos son los relacionados con la reprogramación. El siguiente

está formado por aquellos objetivos que no están relacionados con las fechas de entrega,

estos objetivos pueden ser:

• Makespan. C��� = máx�� C�. • Maximum flowtime. máx F� =máx�� ��. • Total completion time. ∑�� = ∑ ����� .

• Total flowtime. ∑�� = ∑ ����� .

Por ultimo están los objetivos relacionados con las fechas de entrega. Destacan los

siguientes:

• Maximum lateness. máx L� =máx�� ��. • Maximum tardiness. máxT� =máx�� ��. • Maximum earliness. máxE� =máx�� ��. • Total lateness. ∑�� = ∑ ����� .

• Total tardiness. ∑�� = ∑ ����� .

• Total earliness. ∑�� = ∑ ����� .

• Number of tardy jobs. ∑�� = ∑ ����� .

Puede darse el caso que cada trabajo tenga un peso o importancia diferente, esto lleva a que

las expresiones anteriores deben ponderarse con el peso de cada uno de los trabajos.

Page 23: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

23

2.4. Métodos de programación de la producción

La función principal de los métodos de programación es la de resolver un problema de programación

de la producción. Estos métodos de programación proporcionan una solución factible a un problema.

Dichos métodos son aplicables a cualquier instancia de un modelo y la solución obtenida debe

proporcionar unos buenos resultados teniendo en cuenta un objetivo (Framiñan et al., 2014). Estos

métodos que proporcionan una solución se denominan algoritmos. Estos algoritmos pueden ser de

dos tipos:

- Exacto: proporciona la solución óptima a un problema concreto. Dentro de este tipo se

encuentran los algoritmos constructivos exactos (reglas básicas de despacho) y los algoritmos

enumerativos (programación matemática, Branch and Bound y programación dinámica).

- Aproximado: proporciona un programa factible, sin garantizar que sea el óptimo. Entre este

tipo de algoritmos se encuentran las heurísticas constructivas, las heurísticas de mejora y las

metaheurísticas.

Existen una reglas básicas de despacho (Basic dispatching rules) que se utilizan para resolver ciertos

tipos de problemas de programación de la producción. Algunas de las reglas de despacho más

importantes son (Pérez González, 2014) la regla FIFO (First In First Out) que consiste en que el

primer trabajo que llega a una máquina es el primero en ser procesado, LIFO (Last In First Out) en el

que el último trabajo que llega a una máquina es el primero en ser procesado, SPT (Shortest

Processing Time first) caracterizado por procesar primero el trabajo con un menor tiempo de

proceso, LPT (Longest Processing Time first) en el que se procesa primero el trabajo con un mayor

tiempo de proceso y EDD (Earlier Due Date first) el cual procesa en primer lugar el trabajo con una

menor fecha de entrega.

Existe un grupo de algoritmos exactos, los cuales se consideran los más importantes, entre los que

destacan el algoritmo de Johnson para problemas F2|| Cmax, el algoritmo de Lawler que resuelve

problemas del tipo 1| prec| máx g (Cj) y el algoritmo de Moore para problemas 1|| ∑Uj.

Entre las distintas clases de algoritmos, destacan los enumerativos que se caracterizan por garantizar

que se evalúan todas las soluciones del modelo. Los principales algoritmos enumerativos son los

siguientes:

- Programación matemática: la formulación se realiza mediante la programación lineal entera

mixta (MILP) y se resuelve mediante un Solver. Mediante este algoritmo es posible resolver

cualquier tipo de problema como, por ejemplo, ��||�� !, ��|#$%|�� ! y

��|&'�(|�� !.

Page 24: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

24

- Branch and Bound: se utiliza para resolver problemas de optimización combinatoria. Para

ello es necesario definir los nodos, definir la ramificación, calcular la cota y establecer una

estrategia de ramificación.

Para resolver un problema mediante metaheurísticas el primer paso a realizar es el de representar la

solución, tras esto debemos establecer una solución inicial mediante alguna heurística o de forma

aleatoria. El siguiente paso es el de definir la vecindad o soluciones posibles realizando algún cambio

en la solución. Estos tipos de vecindades pueden verse, por ejemplo, en (Pinedo, 2009). Tras definir

la vecindad se comienza el proceso de búsqueda, la cual consiste en la aplicación de algún cambio en

la vecindad de manera que se logre una mejora en la función objetivo. Es necesario definir un

criterio de aceptación, el cual nos hará saber si el cambio realizado reemplazará a la solución actual.

Por último se debe imponer un criterio de terminación que pondrá fin a la metaheurística.

Algunas de las metaheurísticas más utilizadas y conocidas son el Método de Búsqueda Descendente

Simple, Simulated Annealing, Algoritmo Genético Scatter Search e Iterated Greedy entre otros

(Pinedo, 2009).

Page 25: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

25

3 PROBLEMA DE MÁQUINAS PARALELAS NO

RELACIONADAS En este capítulo se va a realizar un análisis de los distintos problemas en máquinas paralelas, tras

esto, se describirá de una manera detallada el problema en cuestión que se quiere estudiar y se

mostrará el modelo de programación lineal que se debe resolver. Por último, se realizará un ejemplo

con un número reducido de trabajos y máquinas con el objeto de entender y analizar el problema.

3.1. Problemas en máquinas paralelas

En apartados anteriores se han definido, de forma general, los diferentes tipos de problemas en

máquinas paralelas. A continuación se estudiarán, con mayor profundidad, estos problemas.

De acuerdo a (Pinedo, 2012), los problemas de máquinas paralelas son una generalización de los

problemas con una máquina. Es un problema de gran importancia debido a que son distribuciones de

máquinas muy comunes en la realidad. Algunos de los objetivos más importantes en este tipo de

problemas son la minimización del makespan, el tiempo total de terminación y la tardanza máxima.

En el caso de minimizar el makespan el principal objetivo para lograrlo consiste en equilibrar la

carga de las máquinas, garantizando un buen equilibrio.

La programación de las máquinas en paralelo suele realizarse en dos etapas. La primera consiste en

asignar los trabajos a cada una de las máquinas, la segunda es asignar la secuencia de los trabajos en

las máquinas. En aquellos problemas cuyo objetivo es minimizar el makespan únicamente es

relevante la etapa de asignación ya que la secuencia no influye en el objetivo (Pinedo, 2012). Este

trabajo se centra en este objetivo, por lo que se comentarán los entornos para este caso.

Existen tres problemas diferentes en máquinas paralelas dependiendo de las características de las

máquinas:

- Máquinas paralelas idénticas: fue denotado por Graham (1979) como )||��*+. En este tipo

de problemas el tiempo de proceso de un trabajo en cualquier máquina es el mismo, es decir,

las máquinas son idénticas. En la mayoría de los casos la resolución de estos problemas se

llevan a cabo asignando el trabajo a la primera máquina que quede libre (Framiñan et al.,

2014). En este problema, al minimizar el makespan, se equilibran las cargas entre todas las

máquinas.

- Máquinas paralelas uniformes: en este caso(-||��*+), los tiempos de proceso vienen

dados por la expresión &/� = &�/1/, donde si es la velocidad de la máquina i, es decir, el

Page 26: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

26

tiempo de proceso de un trabajo j se encuentra afectado por la velocidad relativa de la

máquina i (Framinan et al., 2014). Este tipo de problemas es una generalización del caso de

máquinas paralelas idénticas.

- Máquinas paralelas no relacionadas: Se trata del caso más general de los problemas de

máquinas paralelas. En este tipo de problemas los tiempos de proceso de cada trabajo son

distintos en cada máquina donde se procesen. (Graham et al., 1979) clasificó el problema

cuyo objetivo era minimizar el �� ! como �||�� !.

En este Trabajo Fin de Grado se trata un problema determinista, es decir, se conoce a priori tanto el

número de máquinas y trabajos como los tiempos de procesos de los trabajos en las diferentes

máquinas, en contraposición con los problemas estocásticos, también llamados probabilísticos,

donde hay algún dato que no se conoce, lo que incorpora al problema cierta incertidumbre. Es por

ello que a continuación se analizarán con más detalle algunos problemas de la literatura (Pinedo,

2012):

El Makespan sin interrupción de trabajos: el problema a considerar es el )�||�� !. La peculiaridad

de este problema es que al minimizar el makespan se consigue un equilibrio de las cargas de las

máquinas. En la actualidad existe un gran número de heurísticas capaces de resolver este tipo de

problemas. En (Pinedo, 2012) vienen explicadas de manera muy detallada dichas heurísticas.

El Makespan con interrupción de trabajos: el problema a estudiar es el )�|&'�&|�� !. En la

mayoría de los casos, el permitir la interrupción de los trabajos simplifica el estudio del problema. Al

igual que en el caso del makespan sin interrupción de trabajos, existen una gran variedad de

algoritmos capaces de resolver este tipo de problemas. Algunos de estos algoritmos vienen detallados

en (Pinedo, 2012).

El Tiempo Total de Finalización sin interrupción de trabajos: en este caso, el problema a resolver es

)�||∑��. El tiempo total de finalización para el caso de una sola máquina puede expresarse

mediante la siguiente expresión:

2�� = 3&() + (3 − 1)&(7) +⋯+ 2&(�:) + &�

Como se puede observar en la expresión anterior, hay n coeficientes que serán asignados a n tiempos

de proceso (p). El objetivo es asignar los tiempos de proceso de forma que se minimice la suma de

los productos, para ellos se debe asignar el coeficiente n más alto al menor tiempo de proceso, y así

sucesivamente hasta haber asignado a todos los tiempos de proceso un coeficiente. Con esto se

consigue que la regla SPT (Shortest Processing Time first) sea óptima, con lo que se minimiza el

tiempo total de finalización del problema. Esta expresión puede extenderse al caso de máquinas en

Page 27: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

27

paralelo. En (Pinedo, 2012) pueden observarse distintos teoremas y heurísticas para conseguir una

solución a estos problemas.

El Tiempo Total de Finalización con interrupción de trabajos: en este caso se van a considerar m

máquinas en paralelo cuyas velocidades de procesamiento son diferentes (-�|&'�&|∑��). En este

problema se pretende asignar el tiempo de proceso más corto a la máquina más rápida (SRPT – FM),

el segundo tiempo de proceso más corto a la segunda máquina más rápida, y así sucesivamente hasta

haber asignado todos los trabajos en todas las máquinas. Una vez que la máquina más rápida haya

terminado su trabajo, la segunda máquina más rápida interrumpe su trabajo y este trabajo es asignado

a la máquina más rápida, seguidamente la tercera máquina más rápida interrumpe igualmente su

trabajo y este es asignado a la segunda máquina más rápida, y así hasta completar todos los cambios

en el problema. Este proceso se repite hasta que se termine el procesamiento de todos los trabajos.

Mediante esta heurística se consigue minimizar el tiempo total de finalización del problema cuando

se permite interrupciones en los trabajos.

Objetivos relacionados con la fecha de entrega: el caso del problema -�|&'�&|�� ! es uno de los

cuales es posible resolverlo en un tiempo polinomial. Suponiendo que se necesita establecer un

programa factible con �� ! = ;, es necesario que el tiempo de terminación Cj del trabajo j sea igual

o inferior a dj + z. Para conseguir un programa factible donde se completen todos los trabajos antes

de estos plazos es equivalente a resolver el problema -�<'� , &'�&<�� !. Para llevar a cabo este

procedimiento, es necesario invertir la dirección del tiempo aplicando la regla LRPT – FM (Longest

Remaining Processing Time on the Faster Machine first) a partir de la última fecha límite y trabajar

hacia atrás. En el problema original, los plazos juegan el papel de fechas de lanzamiento en el

problema invertido, lo cual es equivalente al problema -�<'�, &'�&<�� !. Si aplicando esta regla

se consigue un programa factible donde todos los trabajos en el problema original empiecen en el

instante cero o mayor que cero, entonces existe un programa para -�<'� , &'�&<�� ! con

�� ! ≤ z. Para poder hallar el mínimo �� ! es necesario realizar una búsqueda simple consiguiendo

con ello encontrar el valor mínimo de z.

3.2. Descripción del problema

El problema a estudiar en el presente Trabajo Fin de Grado consiste en un problema de

programación de la producción de máquinas paralelas no relacionadas, es decir, los tiempos de

proceso de cada trabajo en cada una de las máquinas es distinto e independiente de la máquina en la

que se procese. El objetivo de este problema será el de minimizar el makespan.

Es frecuente encontrar en la literatura el tratamiento de este tipo de problemas suponiendo que las

Page 28: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

28

máquinas son idénticas. En las empresas, debido a la evolución tecnológica en el tiempo o por

decisión de la empresa para tener los equipos más adecuados a las necesidades de producción, lo más

común es encontrarse con máquinas paralelas no relacionadas (Arango, Giraldo, & Castrillón, 2013).

En este trabajo se estudia el problema ��|>?@A@B@?@CD|�� ! (de acuerdo a la notación presentada

anteriormente), cuyo modelo de programación lineal es el mismo que para el problema ��||�� !.

La diferencia con el problema ��||�� ! está en los datos de la instancia, ya que la restricción de

elegibilidad implicará dar tiempos de proceso elevados a aquellos trabajos que no puedan ser

procesados en determinadas máquinas, como se explicará más adelante. Esta restricción consiste en

que no todos los trabajos pueden ser procesados en todas las máquinas, existen máquinas que, por

sus propias características o por las del trabajo en particular, no son capaces de procesar el trabajo.

Cada trabajo debe ser procesado por una de las máquinas teniendo en cuenta que hay máquinas que

no pueden realizar algunos trabajos, de esta manera se debe minimizar el makespan.

En relación a la teoría de la complejidad computacional de (Garey and Johnson, 1979) el problema a

estudiar es de complejidad NP-Hard, al igual que en la mayoría de los problemas reales de

producción (Luis Fanjul Peyró, 2010). La resolución del problema puede abordarse desde dos

metodologías diferentes, como se ha comentado en el capítulo anterior:

- Seleccionar un método exacto de resolución. Para los problemas NP-Hard, estos métodos

requieren en su mayoría un tiempo de búsqueda exponencial de la solución óptima, estos

tiempos de cómputo no son razonables para problemas con un número elevado de máquinas

y/o trabajos.

- Búsqueda de una solución aproximada mediante un método heurístico.

En este trabajo se va a resolver el problema aplicando ambos métodos. Se resolverán instancias

pequeñas (números reducidos de trabajos y máquinas) del problema de forma exacta mediante un

modelo de programación lineal que será resuelto mediante un solver de optimización (Gurobi). Para

problemas grandes, el tiempo de cómputo será muy elevado, con lo que es posible que no sea factible

resolver el problema por este método, para ello se utilizará una heurística que obtendrá una solución

aproximada en un tiempo pequeño, solución que puede ser suficiente para el problema que se desea

resolver.

Page 29: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

29

3.3. Modelo de Programación Lineal

A continuación, en la Figura 7, se muestra el modelo de programación lineal que es necesario

resolver para obtener las soluciones a las distintas instancias del problema que se desea resolver. El

modelo corresponde al de los problemas ��||�� !. En este problema se impondrá la restricción de

elegibilidad.

+/� = E1, 1@>?C'*B*FGF>1*1@A3*HG*?*�áI(@3*@0, >3GC'GK*1G L

M@3�� !

s.a:

2+/� = 1�

/�∀F ∈ P(1)

2&/� · +/� ≤ �� !∀@ ∈ M�

��(2)

+/� ∈ S0,1T∀F ∈ P, ∀@ ∈ M Figura 7. Modelo Programación Lineal de Máquinas Paralelas no Relacionadas (Pinedo, 2012)

El conjunto de restricciones 1 logra que un trabajo se realice en una única máquina al hacer que la

suma de la variable +/� sea uno (la suma de las máquinas a las que es asignado un trabajo debe ser

uno).

El conjunto de restricciones 2 hace que la suma de todos los trabajos asignados a cada máquina debe

ser menor o igual al �� !, el producto de la variable +/� por el tiempo de proceso nos proporciona lo

que tarda cada máquina en terminar de procesar todos los trabajos que tenga asignados, siendo esta

suma menor o igual al �� !.

Para conocer en mayor profundidad este tipo de problemas, y a modo de una primera toma de

contacto, se resolverá a continuación de forma óptima un ejemplo pequeño, en el que se considerará

un número reducido de trabajos y de máquinas.

3.4. Ejemplo numérico

Como se ha mencionado anteriormente, este ejemplo se va a realizar con un número pequeño de

trabajos y máquinas. Los datos a considerar para este caso son los tiempos de proceso que vienen

dados en la Tabla 1 que se muestra a continuación. Se debe tener en cuenta que hay trabajos que no

pueden ser procesados en alguna máquina. Así, el trabajo 1 no puede ser asignado en la máquina 3.

Page 30: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

30

De igual manera ocurre con el trabajo 4 en la máquina 1 y con el trabajo 5 en la máquina 2.

Máquinas (i)

M1 M2 M3

Tra

bajo

s (j)

1 5 3

2 8 1 5

3 2 6 7

4 5 4

5 4 1

Tabla 1. Datos del ejemplo numérico del modelo

Primero se resolverá de forma exacta este problema mediante el uso de la herramienta Solver del

programa Microsoft Excel. Al ser un problema pequeño, la solución óptima se obtiene en un tiempo

aceptable. El modelo usado es el mostrado anteriormente en la Figura 7. En la Figura 8 se puede

observar el modelo resuelto por Excel.

VARIABLES

máquinas

Xij 1 2 3

Trabajos

1 0 1 0

2 0 1 0

3 1 0 0

4 0 0 1

5 0 0 1

F.O Min Cmax 5

RESTRICCIONES

R1 1 = 1

R2 1 = 1

R3 1 = 1

R4 1 = 1

R5 1 = 1

R6 2 <= 5

R7 4 <= 5

R8 5 <= 5

Figura 8. Resolución en Excel del ejemplo numérico del modelo

Page 31: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

31

Donde las cinco primeras restricciones corresponden al primer conjunto de restricciones

especificadas en el modelo mientras que las tres restricciones restantes corresponden al segundo

conjunto de restricciones.

Para aquellos trabajos que no pueden ser procesados en alguna máquina se les ha dado un valor del

tiempo de proceso elevado, concretamente, en el ejemplo se ha elegido el valor de 1000, de manera

que no será seleccionado por esa máquina.

Mediante este modelo de programación resuelto en Excel obtenemos la solución óptima del

problema consiguiendo un valor del �� ! de 5 unidades de tiempo. Mediante este modelo en Excel

puede observarse que para problemas pequeños puede conseguirse soluciones de una manera rápida

y sencilla, sin embargo, para problemas de un mayor tamaño, es mucho más complejo, ya que es

necesario introducir todas las restricciones de forma manual, al igual que los tiempos de proceso de

cada trabajo. Por otro lado el tiempo de cómputo necesario para resolver el problema es mucho

mayor que si lo resolvemos con otros optimizadores.

En la Figura 9 se representa la solución óptima de una manera gráfica, mediante un diagrama de

Gantt.

En la Figura anterior puede observarse cómo en la máquina 1 se realiza el trabajo 3, a la máquina 2

se le asigna los trabajos 1 y 2. Por último, en la máquina 3 se realizarán los trabajos 4 y 5. Con esta

solución se obtiene el makespan óptimo, siendo de 5 u.t. El makespan corresponde al mayor tiempo

de terminación de las máquinas, en este caso el de la máquina 3.

Notar que el trabajo 5 no puede ser asignado a la máquina 2, y que su asignación a la máquina 1

implicaría un mayor tiempo de proceso, y por tanto el makespan aumentará. La solución dada es la

óptima.

Figura 9. Representación de solución óptima del ejemplo numérico del modelo

Page 32: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

32

Page 33: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

33

4 RESOLUCIÓN DEL PROBLEMA DE FORMA

EXACTA

4.1. Introducción

Tras presentar un modelo matemático para resolver el problema y haber realizado algunas pruebas

para entender el problema con un ejemplo pequeño, se va a realizar una serie de pruebas con

problemas de mayor tamaño para poder conocer el límite al que puede llegar el solver y de esta

forma, conocer el número máximo de trabajos que podemos resolver con el modelo sin que el tiempo

de cómputo sea muy alto.

Para realizar este análisis se van a utilizar los programas Matlab y Gurobi. El primero es una

herramienta de software matemático que ofrece un entorno de desarrollo integrado con un lenguaje

de programación propio (lenguaje M). La página web de esta empresa

(http://www.mathworks.es/products/matlab/) lo define como “un lenguaje de alto nivel para el

cálculo numérico, la visualización y el desarrollo de aplicaciones y un entorno interactivo utilizado

por millones de ingenieros y científicos en todo el mundo. Permite explorar y visualizar ideas, así

como colaborar interdisciplinarmente en procesamiento de señales e imagen, comunicaciones,

sistemas de control y finanzas computacionales. Mediante Matlab es posible analizar datos,

desarrollar algoritmos y crear modelos”. Por todos estos motivos, se ha optado por elegir este

software de programación para la creación del modelo matemático.

El otro programa a utilizar es el optimizador de Gurobi. Este programa es un solver para la

programación lineal (LP), programación cuadrática (QP), programación cuadrática entera mixta

(MIQP) y programación cuadrática entera mixta restringido (MIQCP). El optimizador de Gurobi es

capaz de soportar diferentes lenguajes de programación y modelado donde es posible trabajar con

una interface para el uso de Matlab.

4.2. Matlab

A continuación se describirá brevemente el lenguaje Matlab, analizando su funcionamiento,

utilidades y distintas opciones que nos ofrece (http://es.mathworks.com).

Matlab es al mismo tiempo un entorno y un lenguaje de programación. Uno de sus puntos fuertes es

el hecho de que el lenguaje Matlab permite construir nuestras propias herramientas reusables.

Podemos fácilmente crear nuestras propias funciones y programas especiales (archivos-M) en código

Matlab. Los podemos agrupar en Toolbox: colección especializada de archivos-M para trabajar en

Page 34: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

34

las clases particulares de problemas.

Como lenguaje de programación, es de alto nivel y orientado a problemas de cálculo intensivo.

Permite el desarrollo de aplicaciones técnicas de maneras más eficiente que la programación en

lenguajes tradicionales como C, C++ o Phyton (Miranda Zambrana, 2010).

Podemos pensar en Matlab como una calculadora totalmente equipada, aunque, realmente, ofrece

muchas más características y es mucho más versátil que cualquier calculadora. Matlab es una

herramienta para hacer cálculos matemáticos. Es una plataforma de desarrollo de aplicaciones, donde

conjuntos de herramientas inteligentes para la resolución de problemas en áreas de aplicación

específica (toolboxes) se pueden desarrollar con facilidad relativa.

Matlab trabaja interpretando las órdenes dadas al sistema, tanto desde la línea de comandos propia,

como a través de ficheros de texto. Todas las funciones deben declararse en el fichero abierto, o

acceder a través de un fichero con el mismo nombre, lo que permite crear funciones y saltos del

programa, a través de ficheros.

Entre sus utilidades se encuentran el cálculo matricial y álgebra lineal, los polinomios e

interpolación, la regresión, el ajuste de funciones, las ecuaciones diferenciales ordinarias, la

integración, las funciones y los gráficos bi y tridimensionales. Además se encuentran disponibles los

módulos (toolboxes) de optimización, procesamiento de señales, ecuaciones en derivadas parciales y

Simulink (simulación no lineal).

4.3. Gurobi

En este apartado se analizará el funcionamiento del optimizador Gurobi y su estructura, así como las

distintas funciones y campos necesarios para poder realizar el modelo (http://www.gurobi.com).

El optimizador Gurobi soporta una gran variedad de lenguajes de programación y modelado

incluyendo.

- Las interfaces orientadas a objetos de C++, Java, .NET y Python.

- Interfaces orientadas a matrices: C, Matlab y R.

- Enlaces a lenguajes de modelado estándar: AIMMS, AMPL, GAMS y MPL.

- Enlaces a Excel a través de Premium Solver Platform y Risk Solver Platform.

Como se ha comentado anteriormente, el optimizador de Gurobi resuelve modelos LP, QP, MILP,

MIQP y MIQCP. Para la resolución de los modelos LP y QP, Gurobi incluye implementaciones de

alto rendimiento del método simplex, el método dual simplex, y un solucionador de barrera paralela.

Page 35: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

35

Para los modelos MILP, MIQP y MIQCP, Gurobi incorpora los últimos métodos, incluyendo los

planos de corte y otras heurísticas.

El optimizador Gurobi está escrito en C y es accesible desde varios lenguajes de programación.

Tiene una interface de Python potente e interactiva, un ejecutable simple de línea de comandos y una

interface orientada a la matriz C, que proporcionan orientación a objetos de C++, Java y Python.

En la siguiente Figura se muestra un gráfico de cómo trabaja el optimizador Gurobi:

Figura 10. Esquema de Gurobi (http://www.gurobi.com)

Para trabajar con Gurobi y Matlab, debemos instalar el optimizador Gurobi en el lenguaje de

programación Matlab mediante la interface necesaria. Tras esto es necesario generar el modelo

matemático que se desea resolver partiendo de unos datos de entrada del problema particular, en este

caso son los tiempos de proceso de cada trabajo en cada una de las máquinas (pij), así como el

número de trabajos (n) y máquinas (m), el número de instancias para cada tipo de problemas (k) y la

probabilidad de que un trabajo no pueda ser realizado en una determinada máquina.

Para la creación del modelo de programación lineal en Matlab es necesario seguir las indicaciones

que da Gurobi para que este pueda resolver el problema. Dicho formato es:

Gurobi

Interactive

Shell

C++ API

Java API

.NET API

Phyton API

MATLAB API

R API

Gurobi

Command

Line

C API

Model Data

Gurobi Algorithms

Solution Data

Page 36: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

36

min(KW · + + +W · - · + + X) 1. *

Y · + = B

? ≤ + ≤ (

+W · -Z · + + IW · + ≤ [

La estructura del modelo debe contener los siguientes campos obligatorios descritos a continuación:

- model.A: La matriz de restricciones del modelo.

- model.obj: Vector objetivo lineal.

- model.sense: Signo de las restricciones lineales. Los valores que se permiten son <, = o >. Se

debe especificar un valor para cada fila de Y, o un único valor para especificar que todas las

restricciones tienen el mismo signo. Debe ser un vector de caracteres.

- model.rhs: Es el vector de término independiente de las restricciones lineales. Debe

especificar un valor para cada fila de la matriz Y.

El modelo también puede contener los siguientes campos opcionales:

- model.lb: Los límites inferiores de las variables. Se debe especificar un valor para cada

columna de la matriz Y.

- model.ub: Los límites superiores de las variables. Se debe especificar un valor para cada

columna de la matriz Y.

- model.vtype: Los tipos de variables. Es un vector de caracteres. Los valores que se permiten

son “C” (continua), “B” (binario), “I” (entero), “S” (semi-continuo), o “N” (semi-entero). Se

debe especificar un valor para cada columna de la matriz Y, o un solo valor para especificar

que todas las variables deben tener el mismo tipo de variable. Cuando está ausente, cada

variable se trata como una variable continua.

- model.modelsense: El objetivo de optimización. Los valores permitidos son “min”

(Minimizar) o “max” (Maximizar). Cuando está ausente, el objetivo del modelo por defecto

es de minimización.

- model.modelname: Nombre para todo el modelo.

- model.objcon: Desplazamiento de la función objetivo (α en el modelo descrito

anteriormente).

Page 37: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

37

- model.vbasis: El vector de estado de las variables. Se utiliza para proporcionar un avanzado

punto de partida para el algoritmo simplex.

- model.cbasis: El vector de estado de las restricciones. Se utiliza para proporcionar un

avanzado punto de partida para el algoritmo simplex.

- model.Q: La matriz objetivo cuadrática.

- model.cones: Las restricciones de segundo orden.

- model.quadcon: Las restricciones cuadráticas.

- model.start: El vector de inicio MIP. El solucionador MIP intentará construir una solución

inicial de este vector. Cuando está presente debe especificar un valor inicial para cada

variable.

- model.varnames: Nombres de las variables. Cuando está presente, cada elemento de la matriz

define el nombre de una variable. Debe especificar un nombre para cada columna de la

matriz Y.

- model.constrnames: Nombres de las restricciones. Cuando está presente, cada elemento de la

matriz define el nombre de una restricción. Debe especificar un nombre para cada fila de la

matriz Y.

La estructura del resultado de la optimización del problema contendrá el siguiente campo:

- result.status: El estado de la optimización, la devuelve como una cadena. Cuando el resultado

deseado es “óptimo”, indica que se encontró la solución óptima para el modelo. Existen otros

estados especificados en los manuales de Gurobi.

La estructura de los resultados de la optimización puede contener también los siguientes campos

opcionales:

- result.objval: Valor objetivo de la solución encontrada.

- result.objbound: La mejor solución disponible para un límite inferior para la minimización y

un límite superior para la maximización.

- result.runtime: El tiempo en segundos de la resolución de la optimización.

- result.intercount: El número de iteraciones que realiza.

- result.baritercount: El estado de la optimización, la devuelve como una cadena. Cuando el

resultado deseado es “óptimo”, indica que se encontró la solución óptima para el modelo.

Existen otros estados posibles recogidos en los manuales de Gurobi.

Page 38: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

38

- result.nodecount: El número de nodos explorados.

- result.x: la solución calculada. Este vector contiene un valor para cada columna de la matriz

Y. - result.slack: La holgura de cada restricción de la solución. Este vector contiene un valor para

cada fila de la matriz Y.

- result.qcslack: La holgura cuadrática de cada restricción de la solución actual.

- result.rc: El coste reducido de la solución actual. Este solo está disponible para modelos

continuos. Este vector contiene un valor para cada columna de la matriz Y.

- result.pi: Los valores duales para la solución computarizada. Este vector contiene un valor

para cada fila de la matriz Y.

- result.qcpi: Los valores duales asociados a las restricciones cuadráticas.

- result.vbasis: Los valores de estado de las variables para el óptimo.

- result.cbasis: Los valores de estado de las restricciones para el óptimo.

4.4. Batería de Problemas

Con objeto de comprobar la capacidad del solver para resolver el problema planteado se ha generado

una serie de problemas, con un número determinado de instancias (k) para cada tamaño de problema.

Esta generación de problemas se realiza mediante una batería de problemas generada mediante un

código en Matlab (Anexo 1), y cuyas salidas son archivos con extensión .txt. Por cada instancia

creada se genera un problema con un número de trabajos (n) y un número de máquinas (m). El

usuario debe introducir en un vector (numtrab) los distintos números de trabajos cuyos problemas se

desea generar, de manera que se generan distintos problemas con distintos números de trabajos.

Al igual que con el número de trabajos, el número de máquinas de los problemas deben ser

introducidos en otro vector (nummaq) el cual debe contener distintos números de máquinas, de

manera que se generen distintas instancias con cada número de trabajos y de máquinas, logrando una

gran variedad de problemas sin necesidad de modificar constantemente los parámetros del código

Matlab.

Por otro lado, se debe tener en cuenta que no todos los trabajos pueden ser procesados en todas las

máquinas. Para lograr esto, se ha generado una variable B que sigue una distribución aleatoria

uniforme entre 0 y 1, esta variable dará un valor, si este valor es inferior a la probabilidad de que un

trabajo no se pueda procesar en una máquina determinada el trabajo no podrá realizarse en dicha

Page 39: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

39

máquina, asignándole un tiempo de proceso suficientemente grande para que no sea asignado dicho

trabajo a la máquina en ningún caso.

El resultado de esta batería de problemas es una serie de archivos .txt, los cuales cada uno de ellos

contiene una instancia con un número determinado de trabajos y de máquinas. Dichos archivos están

compuestos por los tiempos de proceso de cada trabajo en cada máquina. Estos tiempos de proceso

son generados mediante una variable A que sigue una distribución aleatoria uniforme entre 1 y 100,

teniendo en cuenta que algunos de estos trabajos tomarán valores superiores debido a la posibilidad

de que no se pueda procesar un determinado trabajo en una máquina. En ese caso el tiempo de

proceso será 1000, tiempo lo suficientemente grande como para que, a la hora de optimizar, el

modelo de programación lineal no asigne dicho trabajo a esa máquina.

A continuación se muestra un ejemplo de uno de los archivos .txt que se genera mediante esta batería

de problemas para 5 trabajos en 2 máquinas:

24 89

60 92

29 30

5 21

35 1000

Cada trabajo corresponde a cada una de las filas de la matriz, mientras que cada máquina está

asignada a cada una de las columnas de la matriz, de tal modo conseguimos una matriz de 3+�

tiempos de proceso. Podemos observar como el trabajo 5 en la máquina 2 tiene un tiempo de proceso

de 1000, lo que implica que dicho trabajo no debe ser asignado a la máquina 2.

Para estudiar este problema se realizan dos baterías distintas de problemas, la primera, denominada

BP (Batería Pequeña) en la cual se utilizan n ∈{100, 200, 300, 400, 500, 600, 700, 800, 900, 1000}

trabajos y m ∈{2, 4, 6, 8, 10} máquinas. Para cada tipo de problema se van a resolver k = 5

instancias distintas, de esta manera se resolverá un total de 250 instancias diferentes.

La segunda batería de problemas llamada BG (Batería Grande) utiliza n ∈{100, 200, 300, 400, 500}

trabajos y m ∈{20, 30, 40, 50, 100, 200} máquinas. Al igual que en el caso anterior se resolverán

k = 5 instancias distintas de cada problema, lo que supone un total de 150 instancias diferentes.

El código de batería de problemas también genera otro conjunto de archivos, los cuales pertenecen a

las mismas baterías de problemas descritas anteriormente pero con un formato distinto. Estas baterías

de problemas son las necesarias para poder estudiar el problema mediante una heurística

posteriormente. El nombre de estos archivos sigue el siguiente formato: H_BP o H_BG. A

Page 40: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

40

continuación se muestra un ejemplo de uno de los archivos .txt generado mediante esta batería:

2

5

24 89

60 92

29 30

21 78

35 1000

En este caso, corresponde con un problema de 2 máquinas y 5 trabajos. Al igual que en el caso

anterior cada fila pertenece a un trabajo, mientras que las columnas se corresponden a las máquinas.

Cabe destacar que las dos primeras filas pertenecen al número de máquinas y el número de trabajos

respectivamente.

El código en Matlab de programación de la batería de problemas se encuentra en el Anexo 1.

4.5. Resultados del MILP

A continuación se va a estudiar para cada instancia el tiempo de cómputo que Gurobi necesita para

resolverla. De esta manera se determinará el comportamiento del modelo planteado y la capacidad de

Gurobi para resolverlo de forma óptima.

Para cada instancia se tomarán los datos y se generará el modelo matemático en Matlab con la

interface de Gurobi. Una vez generado el modelo de cada instancia, se generará un archivo

denominado “Solución.txt” donde se mostrará tanto el valor óptimo de la función objetivo como el

tiempo de cómputo que ha necesitado Gurobi para alcanzar dicho valor. Estos archivos .txt tienen el

siguiente formato:

Page 41: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

41

Problema01_10x2 247 0.01700

Problema 02_10x2 205 0.01000

Problema 03_10x2 188 0.01100

Problema 04_10x2 157 0.01700

Problema 05_10x2 229 0.01100

Problema 01_10x4 67 0.01700

Problema 02_10x4 70 0.02100

Problema 03_10x4 85 0.01400

Problema 04_10x4 77 0.01600

Problema 05_10x4 89 0.01500

Cada una de las filas de la tabla pertenece a un problema distinto. Cada fila se divide en tres

columnas, donde la primera muestra los datos del problema. Esta columna está compuesta, en primer

lugar, por el número de la instancia, en nuestro problema se han generado cinco instancias para cada

tipo de problema, indicando el número de trabajos y de máquinas (nxm). La segunda columna

muestra el makespan para ese problema mientras que la tercera columna contiene el tiempo de

cómputo, es decir, el tiempo que Gurobi tarda en obtener la solución óptima al problema.

Para estudiar estos resultados se van a analizar estos tiempos de cómputo para cada valor del número

de máquinas. Cabe destacar que se ha utilizado un criterio de parada de 45.000 segundos, es decir, si

el modelo no ha proporcionado el óptimo en este tiempo, parará de buscarlo sin proporcionar

ninguna solución. En una primera prueba se van a analizar los resultados obtenidos utilizando la

Batería Pequeña (BP), cuyo número de trabajos y máquinas fueron comentados en el apartado

anterior, para ver cómo se comporta el modelo. En la siguiente Tabla se muestran, en resumen, los

resultados obtenidos por Gurobi y cuyos resultados pueden observarse de una manera más detallada

en el Anexo 3.

Page 42: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

42

m n

2 4 6 8 10 Tiempo Medio

(seg) Desv. St

(seg) Tiempo Medio

(seg) Desv. St

(seg) Tiempo Medio

(seg) Desv. St

(seg) Tiempo Medio

(seg) Desv. St

(seg) Tiempo Medio

(seg) Desv. St

(seg) 100 0,0676 0,0592 0,2896 0,0967 1,3831 0,5429 1,8565 1,9914 6,1132 5,5867 200 0,0240 0,0050 0,4692 0,1389 3,2135 1,3251 4,6603 5,3151 15,0237 8,1831 300 0,0556 0,0271 0,6744 0,3397 3,2751 2,0843 26,9921 24,0554 385,1370 655,7735 400 0,0564 0,0152 0,8715 0,5197 2,4473 1,548 108,2386 74,0246 115,1596 100,7548 500 0,0560 0,0168 0,8949 0,3236 4,8811 4,4019 10,5204 9,7570 2332,7603 4015,9932 600 0,0648 0,0185 0,9627 0,2265 14,5958 9,0306 23,5181 29,2545 159,3929 122,4857 700 0,0802 0,0196 1,0067 0,5496 2,5667 3,5244 25,1582 18,4680 400,9519 436,6598 800 0,0698 0,0156 0,9099 0,3596 1,3177 1,0599 17,8684 20,2313 59,3008 71,1832 900 0,0796 0,0159 1,8351 1,1807 14,5958 24,4606 195,3192 202,1155 288,4547 524,5349 1000 0,0954 0,0183 1,2657 0,3866 18,1296 33,0213 46,4169 14,9628 866,2115 1137,9016 Total 0,0649 0,0211 0,9180 0,4122 6,6406 8,0999 46,0549 40,0176 462,8506 707,9057

Tabla 2. Datos de Tiempos medios y Desviación Típica de BP para el modelo de PL.

Page 43: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

43

En la Tabla 2 se observa que a medida que crece el número de trabajos (n) el tiempo de cómputo

crece. También se puede apreciar como los valores de la desviación típica no siguen un patrón claro.

Tanto los valores medios como las desviaciones típicas aumentan con el número de máquinas (m),

como se esperaba, observándose un salto importante en los valores medios totales (última fila) para

m = 8 y m = 10.

En las Figuras que se muestran a continuación se puede observar el comportamiento del modelo para

cada número de máquina conforme aumenta el número de trabajos (Figuras 11, 12, 13, 14 y 15):

Figura 11. Tiempos medios para los valores de n para el modelo de PL. m = 2

Figura 12. Tiempos medios para los valores de n para el modelo de PL. m = 4

0

0,02

0,04

0,06

0,08

0,1

0,12

0 200 400 600 800 1000 1200

Tie

mp

o d

e e

jecu

ció

n (

Seg)

Nº Trabajos

0

0,2

0,4

0,6

0,8

1

1,2

1,4

1,6

1,8

2

0 200 400 600 800 1000 1200

Tie

mp

o d

e e

jecu

ció

n (

seg)

Nº Trabajos

Page 44: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

44

Figura 13. Tiempos medios para los valores de n para el modelo de PL. m = 6

Figura 14. Tiempos medios para los valores de n para el modelo de PL. m = 8

0

2

4

6

8

10

12

14

16

18

20

0 200 400 600 800 1000 1200

Tie

mp

o d

e e

jecu

ció

n (

seg)

Nº Trabajos

0

50

100

150

200

250

0 200 400 600 800 1000 1200

Tie

mp

o d

e e

jecu

ció

n (

seg)

Nº Trabajos

Page 45: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

45

Figura 15. Tiempos medios para los valores de n para el modelo de PL. m = 10

Como se puede apreciar en las Figuras 11, 12, 13, 14 y 15, para números de máquinas pequeños, el

modelo se comporta de una manera muy inestable, habiendo una gran variabilidad entre las

instancias de igual tamaño.

En las Figuras 16 y 17 que a continuación se muestran puede observarse el tiempo medio de

ejecución y la desviación estándar media para cada número de máquinas:

Figura 16. Comparación por máquinas de Tiempos de ejecución medios en BP para el modelo de PL

0

500

1000

1500

2000

2500

0 200 400 600 800 1000 1200

Tie

mp

o d

e e

jecu

ció

n (

seg)

Nº Trabajos

0

50

100

150

200

250

300

350

400

450

500

0 2 4 6 8 10 12

Tie

mp

o d

e e

jecu

ció

n m

ed

io (

seg)

Nº Máquinas

Page 46: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

46

Figura 17. Comparación por máquinas de Desviación estándar medias en BP para el modelo de PL

Puede observarse como hasta las 8 máquinas, tanto el tiempo de ejecución como la desviación

estándar son pequeños, es a partir de 10 máquinas cuando estos dos valores aumentan

considerablemente destacando sobre los números de máquinas inferiores de forma notable.

Por último, en la Figura 18, se muestra una comparación de los tiempos medios ejecución de los

distintos números de máquinas:

Con estos datos se llega a la conclusión que para números de máquinas pequeños (hasta m = 8),

Gurobi resuelve el problema en un tiempo aceptable.

0

100

200

300

400

500

600

700

800

0 2 4 6 8 10 12

De

svia

ció

n e

stán

dar

me

dia

(se

g)

Nº Máquinas

0

500

1000

1500

2000

2500

0 200 400 600 800 1000 1200

Tie

mp

o d

e e

jecu

ció

n (

seg)

Nº Trabajos

2 Máquinas

4 Máquinas

6 Máquinas

8 Máquinas

10 Máquinas

Figura 18. Tiempo de cómputo de Gurobi para BP. Comparación de tiempos medios

Page 47: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

47

Para poner a prueba el modelo y comprobar cuál es el límite de Gurobi, se va a aumentar

considerablemente el número de máquinas. Al igual que en la prueba anterior, para cada tipo de

problema se va a realizar 5 instancias, obteniendo valores de tiempos de ejecución que se analizarán

más adelante. En este caso se analizará la Batería Grande (BG) cuyos valores de número de

máquinas y de trabajos fueron comentados anteriormente. Al igual que en la BP, el criterio de parada

será de 45.000 segundos, interrumpiendo la búsqueda si el modelo llega a este tiempo. En la Tabla 3

se muestra un resumen de las tablas obtenidas por Gurobi para cada número de máquinas y cuyos

resultados se muestran en el Anexo 3 de manera más detallada.

En las Figuras 19, 20, 21, 22, 23 y 24 se muestra el comportamiento del modelo para cada número de

máquina conforme aumenta el número de trabajos. En la Figura 19 se puede observar como para un

problema de 20 máquinas, el modelo funciona muy bien para problemas con hasta 400 trabajos, una

vez que se pasa a los 500 trabajos se observa cómo el tiempo de cómputo aumenta

considerablemente, llegando hasta los 10.337 segundos (alrededor de las 3 horas). Aumentando a 30

máquinas, en la Figura 20, para número de trabajos inferiores a 500, el modelo se comporta muy bien

con un tiempo de cómputo considerablemente pequeño. A partir de este valor el tiempo de ejecución

se dispara, siendo este tiempo de unos 28.000 segundos (8 horas aproximadamente). Con estos datos

se llega a la conclusión que el límite es de unos 400 trabajos aproximadamente. Para problemas con

40 máquinas, a diferencia de los casos anteriores, el modelo se comporta bien para un número de

trabajos de 300 como máximo, con tiempos de ejecución muy pequeños (Figura 21). Sin embargo,

cuando se pasa a los 400 trabajos, Gurobi tarda un tiempo considerable en resolver el problema, este

tiempo es de unos 40.000 segundos (11 horas aproximadamente), lo cual implica que el límite del

modelo cuando se tienen 40 máquinas es de unos 300 trabajos. Como se aprecia en la Figura 22, con

50 máquinas, el número máximo de trabajos que soporta el modelo es 200, ya que en el momento en

que se pasa a los 300 trabajos el tiempo de cómputo aumenta considerablemente estableciendo el

límite en 200 trabajos. En la Figura 23 observamos que tenemos 100 máquinas, hasta los 100

trabajos Gurobi consigue resolver los problemas en un tiempo de cómputo muy pequeño, sin

embargo, cuando pasamos a analizar 200 trabajos, Gurobi no consigue resolver el problema en un

tiempo razonable. Para este caso, el tiempo de ejecución para resolver un problema con 200 trabajos

es de unos 14.000 segundos (alrededor de unas 4 horas). Con lo cual se llega a la conclusión que el

límite para problemas con 100 máquinas es de unos 100 trabajos. Por último, se han analizado

problemas con número de máquinas de 200. Como se aprecia en la Figura 24, con 200 máquinas,

Gurobi consigue resolver un problema con 100 trabajos en un tiempo bastante aceptable, no obstante,

si se aumenta a 200, Gurobi ya no consigue resolverlo en tiempos adecuados, siendo este tiempo de

unos 23.000 segundos (6 horas aproximadamente). Con esto llegamos a la conclusión que el límite

para problemas con 200 máquinas es de unos 100 trabajos aproximadamente.

Page 48: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

48

m

n

20 30 40 50 100 200 Tiempo

Medio (seg) Desv. St

(seg) Tiempo

Medio (seg) Desv. St

(seg) Tiempo

Medio (seg) Desv. St

(seg) Tiempo

Medio (seg) Desv. St

(seg) Tiempo

Medio (seg) Desv. St

(seg) Tiempo

Medio (seg) Desv. St

(seg) 100 0,3274 0,2108 0,4900 0,3089 0,5294 0,1772 0,6464 0,0418 0,8010 0,0218 0,9487 0,9487 200 171,4956 283,0304 616,6825 1074,6439 746,3883 66,1722 926,6562 69,0117 14172,1513 3831,0343 23276,1201 23276,1201 300 943,2393 1636,4027 995,7762 450,7958 1143,8645 270,8220 14168,0759 2932,2695 > 45000 - > 45000 - 400 1502,5142 317,3385 3309,7865 4135,3501 40415,2911 59324,5426 > 45000 - > 45000 - > 45000 - 500 10337,0884 1248,3481 28616,5653 17450,1896 > 45000 - > 45000 - > 45000 - > 45000 -

Total 2590,9330 697,0661 6707,8601 4622,2577 17461,1215 - 21019,0757 - 29834,5905 - 316554,4138 -

Tabla 3. Datos de Tiempos medios y Desviación Típica de BG para el modelo de PL

Page 49: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

49

60

Puede observarse en la Tabla 3 como, al igual que ocurre con la Batería Pequeña, a medida que

aumenta el número de trabajos, el tiempo medio de cómputo crece. Los valores de la desviación

típica tienden a crecer aunque no siguen un patrón claro. Con respecto al número de máquinas, los

valores de los tiempos medios crecen conforme se aumenta el número de máquinas, mientras que la

desviación típica, como ocurre respecto al número de trabajos, no sigue un patrón claro. Como se

aprecia en la Tabla 3, hay problemas en los que Gurobi no ha podido obtener el óptimo debido a su

tamaño, superando el tiempo de cómputo establecido anteriormente de 45.000 seg. En estos casos,

para poder realizar el posterior análisis, se les ha dado un tiempo de cómputo de 45.000 seg. En

cuanto a las desviaciones típicas de estos problemas en los que no se han podido calcular el óptimo,

no se le ha asignado ningún valor, ya que si se utiliza el tiempo de 45.000 seg la desviación que se

obtiene es de 0, desvirtuando la media total considerablemente.

Figura 19. Tiempos medios para los valores de n para el modelo de PL. m = 20

0

2000

4000

6000

8000

10000

12000

0 100 200 300 400 500 600

Tie

mp

o d

e e

jecu

ció

n (

seg)

Nº Trabajos

Page 50: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

50

Figura 20. Tiempos medios para los valores de n para el modelo de PL. m = 30

Figura 21. Tiempos medios para los valores de n para el modelo de PL. m = 40

0

5000

10000

15000

20000

25000

30000

35000

0 100 200 300 400 500 600

Tie

mp

o d

e e

jecu

ció

n (

seg)

Nº Trabajos

0

5000

10000

15000

20000

25000

30000

35000

40000

45000

50000

0 100 200 300 400 500 600

Tie

mp

o d

e e

jecu

ció

n (

seg)

Nº Trabajos

Page 51: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

51

Figura 22. Tiempos medios para los valores de n para el modelo de PL. m = 50

Figura 23. Tiempos medios para los valores de n para el modelo de PL. m = 100

0

5000

10000

15000

20000

25000

30000

35000

40000

45000

50000

0 100 200 300 400 500 600

Tie

mp

o d

e e

jecu

ció

n (

seg)

Nº Trabajos

0

5000

10000

15000

20000

25000

30000

35000

40000

45000

50000

0 100 200 300 400 500 600

Tie

mp

o d

e e

jecu

ció

n (

seg)

Nº Trabajos

Page 52: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

52

Figura 24. Tiempos medios para los valores de n para el modelo de PL. m = 200

Figura 25. Comparación por máquinas de Tiempos de ejecución medios en BG para el modelo de PL

En la Figura 25 puede observarse el tiempo medio de ejecución medio para cada número de

máquinas. En dicha Figura se aprecia claramente como a medida que aumenta el número de

máquinas, a Gurobi le cuesta más tiempo dar con la solución óptima.

0

5000

10000

15000

20000

25000

30000

35000

40000

45000

50000

0 100 200 300 400 500 600

Tie

mp

o d

e e

jecu

ció

n (

seg)

Nº Trabajos

0

5000

10000

15000

20000

25000

30000

35000

0 50 100 150 200 250

Tie

mp

o d

e e

jecu

ció

n m

ed

io (

seg)

Nº Máquinas

Page 53: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

53

En la Figura 26 que se muestra a continuación se aprecia la comparación de los tiempos medios de

proceso de cada máquina:

Figura 26. Tiempo de cómputo de Gurobi para BG. Comparación de tiempos medios

Analizando todas las pruebas efectuadas con Matlab y Gurobi, se concluye que el número de trabajos

no es un factor de importancia (para lo que se consideran tamaños teóricos en la literatura de

programación de la producción, de hasta 1000 trabajos diferentes) a la hora de resolver el problema,

ya que cuando el número de máquinas es pequeño, el modelo es resuelto en tiempos aceptables. No

ocurre así si usamos un gran número de máquinas, ya que en este caso a medida que aumentamos el

número de trabajos, el tiempo de ejecución que necesita Gurobi para resolver el problema aumenta

considerablemente llegando a necesitar varias horas para conseguir la solución óptima del problema.

0

5000

10000

15000

20000

25000

30000

35000

40000

45000

50000

0 100 200 300 400 500 600

Tie

mp

o d

e e

jecu

ció

n (

seg)

Nº Trabajos

20 Máquinas

30 Máquinas

40 Máquinas

50 Máquinas

100 Máquinas

200 Máquinas

Page 54: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

54

Page 55: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

55

5 RESOLUCIÓN DEL PROBLEMA DE FORMA

APROXIMADA

5.1. Introducción

En ocasiones no es posible obtener una solución óptima de un problema determinado debido a la

complejidad y tamaño del mismo. La idea de heurística persigue, no encontrar la mejor solución,

sino obtener una buena solución en un corto periodo de tiempo.

Se puede definir una heurística como una técnica que aumenta la eficacia de un proceso de búsqueda,

sacrificando demandas de completitud (Ramos, 1995). Si la heurística utilizada es buena se pueden

conseguir soluciones aceptables (cercanas al óptimo) a problemas difíciles.

Debido a la gran diversidad de métodos heurísticos existentes, no es fácil dar una clasificación

completa. A esto hay que sumarle que muchas heurísticas han sido diseñadas para problemas

concretos sin posibilidad de ser generalizados o aplicarlo a problemas similares. A continuación se

clasifican según (Martí, 2010) los heurísticos más conocidos:

- Métodos de descomposición: consiste en la descomposición del problema en subproblemas

más sencillos de resolver.

- Métodos inductivos: estos métodos generalizan versiones pequeñas o sencillas al caso

completo. Pueden aplicarse al problema completo técnicas identificadas más fáciles de

analizar.

- Métodos de reducción: el objetivo de estas heurísticas es restringir el espacio de soluciones

de manera que se simplifique el problema identificando propiedades que se cumplen por las

buenas soluciones e introduciendolas como restricciones del problema. El inconveniente

principal de estos métodos es la posibilidad de dejar fuera soluciones óptimas del problema

original.

- Métodos constructivos: en estos métodos se construyen paso a paso una solución del

problema. Estos métodos suelen ser deterministas y están basados en la mejor elección en

cada iteración. Un problema clásico donde se utiliza este método es el problema del viajante.

- Métodos de búsqueda local: estos métodos comienzan con una solución inicial del problema,

mejorándola paso a paso. En cada paso se realiza un movimiento de una solución a otra con

un valor mejor. El criterio de parada de estos métodos se alcanza cuando no exista una

solución posible que mejore la anterior.

Page 56: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

56

La calidad de un heurístico se puede medir mediante diferentes procedimientos, entre los que

destacan los siguientes (Martí, 2010):

- Comparación con la solución óptima: para ello es necesario disponer de un procedimiento

que proporcione la solución óptima para un conjunto reducido de ejemplos. Lo más habitual

es medir en cada uno de los ejemplos la desviación porcentual de la solución proporcionada

por la heurística frente a la óptima, calculando el promedio de dichas desviaciones. Para

obtener la desviación porcentual de un problema de minimización se utiliza la siguiente

expresión: \]:\^_`\^_` · 100.

- Comparación con una cota: cuando no es posible obtener la solución óptima del problema, se

puede comparar el valor de la solución proporcionada por la heurística con una cota del

problema (en el caso de un problema de minimización es necesaria una cota inferior y en el

caso de un problema de maximización la cota necesaria debe ser superior). Cuanto más cerca

esté esta cota del óptimo del problema, mejor será la solución obtenida por el heurístico. Esto

obliga a tener cierta información de la bondad de dicha cota.

- Comparación con un método exacto truncado: los métodos enumerativos exploran una gran

cantidad de soluciones, sin embargo, es posible establecer un criterio de parada (número de

iteraciones máximas o tiempo máximo) para el algoritmo. En los problemas de

maximización es posible saturar algún nodo en el caso en que su cota inferior sea menor o

igual que la cota superior global más un cierto α (de forma análoga puede usarse para

problemas de minimización). Con esto se consigue que el valor de la mejor solución obtenida

por la heurística no se desvia más de α del óptimo del problema. Mediante la mejor solución

obtenida por este procedimiento es posible contrastar el heurístico con la cota obtenida.

- Comparación con otros heurísticos: este método es el más utilizado para problemas NP-Hard,

en el que el resultado de dicha comparación depende de la bondad de la heurística escogida.

- Análisis del peor caso: consiste en analizar el comportamiento del heurístico en el peor caso

posible, para ello es necesario considerar los ejemplos más desfavorables para el algoritmo y

acotar de forma analítica la máxima desviación respecto del óptimo. Debido a que se acota el

resultado del algoritmo para cualquier ejemplo, los resultados no son representativos.

Page 57: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

57

5.2. Presentación de la heurística

La heurística simple que se propone en este Trabajo Fin de Grado ha sido diseñada con la finalidad

de aumentar las cargas de trabajo de las máquinas lo menos posible asignando y secuenciando

iterativamente los trabajos a las máquinas. El objetivo de esta heurística es el de obtener como

resultado un programa de producción que logre un menor balance de las cargas de trabajo en las

máquinas y un menor makespan (�� !). Según la clasificación anterior, se trata de una heurística

constuctiva en la que se va construyendo paso a paso una solución al problema.

Sea n la cantidad de trabajos y m la cantidad de máquinas, se denominará pij al tiempo de proceso del

trabajo j en la máquina i y L(i) a la carga de trabajo de la máquina i.

La carga de trabajo de una máquina se obtiene mediante la suma de todos los tiempos de proceso de

los trabajos que son asignados a dicha máquina (Pérez González, 2014):

�(@) = 2 &/�∀@∀�∈/

Los pasos a seguir para la resolución de la heurística son los siguientes:

- Paso 1: Inicializar a 0 las cargas de todas las máquinas.

- Paso 2: Seleccionar el primer trabajo y asignarlo a la máquina cuyo tiempo de proceso sea

menor. En caso de igualdad de tiempos de proceso, colocar aleatoriamente.

- Paso 3: Actualizar las cargas de las máquinas sumando al tiempo de proceso la carga de la

máquina donde ha sido asignado el trabajo.

- Paso 4: Seleccionar el siguiente trabajo y asignarlo a la máquina cuya suma de su carga y del

tiempo de proceso del trabajo en esa máquina sea menor. En el caso de igualdad en dicho

valor, colocar aleatoriamente.

- Paso 5: Actualizar las cargas de las máquinas sumando al tiempo de proceso la carga de la

máquina donde ha sido asignado el trabajo.

- Paso 6: Si quedan trabajos por asignar volver al paso 4.

- Paso 7: Calcular el makespan del problema. El makespan corresponde al valor de la mayor

carga de todas las máquinas.

En la Figura 27 que se muestra a continuación se muestra el diagrama de flujo del algoritmo

propuesto para este problema:

Page 58: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

58

5.3. Ejemplo numérico

En este apartado se va a realizar un ejemplo numérico sencillo con el fin de comprender de una

manera más clara el funcionamiento de la heurística presentada. Para la realización del ejemplo se

van a utilizar los datos del problema presentado en el ejemplo numérico del apartado 3.4. donde se

realizó el mismo problema pero resuelto mediante el Solver de Excel, lo cual proporcionó el óptimo

de dicho problema. Al utilizar el mismo ejemplo podremos posteriormente realizar una comparación

entre ambas soluciones y ver si la heurística proporciona una solución cercana al óptimo. Los

tiempos de proceso de cada trabajo en cada máquina se exponen en la Tabla 1.

Para empezar a aplicar la heurística lo primero es definir la variable L(i) correspondiente a las cargas

INICIO

Inicializar carga de máquinas

¿Primer

trabajo a

asignar?

Asignar trabajo a máquina más

rápida

Actualizar la carga de las máquinas

Pasar al siguiente trabajo

Calcular makespan

¿Quedan trabajos por

asignar?

Asignar trabajo a máquina cuya suma de carga de la

máquina y tiempo de proceso sea menor

FIN

Si

Si

No

No

Figura 27. Diagrama de flujo del algoritmo

Page 59: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

59

de trabajo que tiene cada una de las máquinas. Inicialmente esta carga de trabajo es 0 para todas las

máquinas:

L(1) = L(2) = L(3) = 0

Tras esto se selecciona el primer trabajo y observamos en qué máquina se realiza en menor tiempo.

Puede apreciarse que en la máquina 2 el trabajo 1 se realiza en menos tiempo que en las demás

máquinas, con lo cual asignamos este trabajo a esta máquina.

Una vez asignado el primer trabajo, las cargas de las máquinas pasan ser:

L(1) = L(3) = 0

L(2) = 3

Se selecciona el segundo trabajo para asignarlo a la máquina correspondiente. Para ello se calcula la

suma del tiempo de proceso de ese trabajo en esa máquina más la carga de la máquina. En la

máquina en que la que esta suma sea menor se asignará dicho trabajo.

M1: 8 + 0 = 8

M2: 1 + 3 = 4

M3: 5 + 0 = 5

Vemos que el mínimo se corresponde a la máquina 2, por lo tanto será la máquina seleccionada para

asignar el trabajo 2.

Figura 28. Paso 1. Ejemplo numérico de la heurística

Page 60: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

60

Las cargas de las máquinas quedan de la siguiente manera:

L(1) = L(3) = 0

L(2) = 4

Se procede igual con el siguiente trabajo, el trabajo 3, y se vuelve a comprobar en que máquina su

tiempo de trabajo más la carga de la máquina es menor para colocar el trabajo en dicha máquina.

M1: 2 + 0 = 2

M2: 6 + 4 = 10

M3: 7 + 0 = 7

Se observa como el mínimo se corresponde a la máquina 1, es ahí donde se colocará el trabajo 3.

Figura 29. Paso 2. Ejemplo numérico de la heurística

Figura 30. Paso 3. Ejemplo numérico de la heurística

Page 61: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

61

Tras esta operación, las cargas de las máquinas se distribuyen de la siguiente manera:

L(1) = 2

L(2) = 4

L(3) = 0

El siguiente trabajo a colocar es el 4, volvemos a realizar el procedimiento anterior calculando la

suma del tiempo de proceso más la carga de la máquina en cada una de las máquinas. Se debe tener

en cuenta que el trabajo 4 no puede ser procesado por la máquina 1.

M2: 5 + 4 = 9

M3: 4 + 0 = 4

El valor menor se corresponde con la máquina 3, es ahí donde será asignado el trabajo 4.

Las cargas de las máquinas, tras esta última operación, quedan de la siguiente manera:

L(1) = 2

L(2) = 4

L(3) = 4

Por último se comprueba para el trabajo 5 en que máquina su tiempo de proceso más la carga de la

máquina es menor. Este trabajo no puede ser procesado en la máquina 2, con lo que no se tendrá en

cuenta dicha máquina.

M1: 4 + 2 = 6

M3: 1 + 4 = 5

Comprobamos que el valor menor se corresponde con el de la máquina 3, con lo cual será en dicha

máquina donde irá asignado el trabajo 5.

Figura 31. Paso 4. Ejemplo numérico de la heurística

Page 62: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

62

Tras haber asignado cada trabajo a una máquina, el último paso es calcular el makespan, este valor

corresponde al máximo de los valores de las cargas de cada máquina.

L(1) = 2

L(2) = 4

L(3) = 5

El máximo es 5, correspondiente a la máquina 3. Es decir, el makespan de este problema es 5.

Comparando el resultado obtenido por la heurística con el valor del makespan obtenido por el Solver

de Excel, podemos apreciar como el makespan obtenido es el mismo, al igual que la secuencia.

Podemos concluir que mediante esta heurística hemos obtenido el óptimo, aunque no necesariamente

debe ocurrir así con el resto de problemas.

Para comprobar de una manera más exacta la desviación de las soluciones proporcionadas con la

heurística respecto al óptimo se va a utilizar el porcentaje de desviación relativa (PDR) (Martí, 2010)

que viene dada por la siguiente expresión:

)a� = b*?G'ó&C@�G − b*?G'ℎ>('í1C@K*b*?G'ó&C@�G +100

Para este ejemplo sencillo podemos comprobar mediante la fórmula anterior como este porcentaje de

desviación es 0, ya que la solución obtenida con la heurística coincide con el óptimo:

)a� = 5 − 55 +100 = 0

Figura 32. Paso 5. Ejemplo numérico de la heurística

Page 63: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

63

5.4. Resultados

En este apartado se van a analizar los resultados obtenidos por la heurística programada en lenguaje

C. Los resultados a analizar van a ser tanto el tiempo que tarda la heurística en proporcionar la

solución como el makespan. Este último valor nos aportará, mediante el cálculo del PDR, lo cerca

que está dicho valor del óptimo y se podrá comprobar la bondad de esta heurística y para qué valores

proporciona una solución más cercana al óptimo. Al igual que con el modelo anteriormente descrito,

se van a analizar los resultados para la Batería Pequeña (BP) y la Batería Grande (BG) (ver apartado

4.4) que se usaron para el modelo y así poder comparar resultados.

A continuación se muestra un resumen de los resultados obtenidos por la heurística en la batería de

problemas con un número de máquinas pequeño (BP), cuyos valores de número de máquinas y de

trabajos se muestran en el apartado 4.4. Para cada tipo de problema se han usado 5 instancias y se ha

calculado la media de cada tipo de problema. En el Anexo 4 pueden verse los resultados de todos los

problemas de manera más detallada.

En las Figuras 33, 34, 35, 36 y 37 se muestran los resultados del PDR de cada máquina para los

distintos trabajos correspondientes a la Batería Pequeña, es decir, el porcentaje de la diferencia que

existe entre la solución óptima proporcionada por el modelo de programación lineal y la heurística.

Como se muestra en la Figura 33, el PDR medio para problemas con 2 máquinas ronda el 15% de

media, sin producirse grandes variaciones conforme se aumenta el número de trabajos. Para

problemas con 4 máquinas se puede apreciar que el PDR medio aumenta respecto al caso anterior

con 2 máquinas (Figura 34). Al igual que en el caso anterior con 2 máquinas, no se producen grandes

variaciones conforme se aumenta el número de trabajos, siendo la media de un 25%

aproximadamente con un rango de ± 2% sobre la media. En la Figura 35 se muestra el caso en el que

se utilizan 6 máquinas. En estos problemas el PDR medio vuelve a aumentar hasta alcanzar un

30,83%. Como ocurre en los casos anteriores, el PDR medio no aumenta conforme se aumenta el

número de trabajos, siendo el PDR más pequeño de 28,52% en el caso en el que se procesan 900

trabajos y el más grande de 33,41% cuando el número de trabajos es de 300. Aumentando el número

de máquinas a 8, podemos observar en la Figura 36 que sigue aumentando el PDR medio, en este

caso es de un 33,16%. Se produce una variabilidad mínima respecto al número de trabajos,

volviendo a ser el número de trabajos un dato sin relevancia a la hora de calcular el PDR del

problema. Como se observa en la Figura 37, en el último caso de la Batería Pequeña (10 máquinas),

el PDR medio es de un 35,30%. Como ocurre en el resto de problemas de la Batería Pequeña, el

número de trabajos no influye significativamente en el PDR del problema ya que no aumenta

conforme aumenta el número de trabajos, siendo la variabilidad del problema de un 9%

aproximadamente.

Page 64: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

64

m

n

2 4 6 8 10

Media Modelo

(seg)

Media Heurística

(seg)

PDR Medio

Media Modelo

(seg)

Media Heurística

(seg)

PDR Medio

Media Modelo

(seg)

Media Heurística

(seg)

PDR Medio

Media Modelo

(seg)

Media Heurística

(seg)

PDR Medio

Media Modelo

(seg)

Media Heurística

(seg)

PDR Medio

100 0,0676 0,0422 19,65% 0,2896 0,0290 27,18% 1,3831 0,0386 31,55% 1,8565 0,0552 34,48% 6,1132 0,0652 41,58%

200 0,0240 0,0324 16,70% 0,4692 0,0540 26,32% 3,2135 0,0758 31,45% 4,6603 0,0996 37,72% 15,0237 0,1230 37,72%

300 0,0556 0,0472 12,77% 0,6744 0,0830 23,39% 3,2751 0,1146 33,41% 26,9921 0,1472 31,54% 385,1370 0,1934 34,09%

400 0,0564 0,0922 13,91% 0,8715 0,1938 25,75% 2,4473 0,1770 30,71% 108,2386 0,2842 36,01% 115,1596 0,2982 35,42%

500 0,0560 0,0938 14,18% 0,8949 0,1470 26,01% 4,8811 0,2072 31,39% 10,5204 0,2736 31,74% 2332,7606 0,2736 37,46%

600 0,0648 0,1106 16,64% 0,9627 0,1786 24,64% 14,5958 0,2452 30,11% 23,5181 0,3204 33,76% 159,3929 0,3968 33,18%

700 0,0802 0,1218 15,13% 1,0067 0,2416 25,96% 2,5667 0,3962 30,73% 25,1582 0,4302 31,52% 400,9519 0,4750 34,16%

800 0,0698 0,1420 14,26% 0,9099 0,2374 25,41% 1,3177 0,3324 30,05% 17,8684 0,4330 32,17% 59,3008 0,5420 33,96%

900 0,0796 0,1592 15,88% 1,8351 0,2684 23,67% 14,5958 0,3778 28,52% 195,3192 0,4896 31,97% 288,4547 0,6060 32,54%

1000 0,0954 0,1738 14,65% 1,2657 0,2988 24,55% 18,1296 0,4208 30,32% 46,4169 0,5460 30,72% 866,2115 0,6678 32,86%

Total 0,0649 0,1015 15,38% 0,9180 0,1732 25,29% 6,6406 0,2386 30,83% 46,0549 0,3079 33,16% 462,8506 0,3641 35,30%

Tabla 4. Datos de Tiempos medios del modelo de PL y Heurística y PDR Medio para BP

Page 65: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

65

En la Tabla 4 se puede observar una comparación de los tiempos de cómputo obtenidos por el

modelo y los proporcionados por la heurística a la hora de resolver los distintos problemas de la

Batería Pequeña. Se aprecia una gran diferencia entre el tiempo de cómputo que proporciona el

modelo y el que proporciona la heurística, en este último caso, en ninguno de los problemas resueltos

se llega al tiempo de cómputo de un segundo. A pesar de que a medida que se aumenta el número de

máquinas, aumenta el tiempo de cómputo de la heurística, este aumento es muy pequeño, del orden

de centésimas. Puede observarse como el Porcentaje de Desviación Relativa (PDR) aumenta

conforme aumenta el número de máquinas, sin embargo, el PDR no sigue una tendencia clara

conforme aumenta el número de trabajos.

Figura 33. PDR medio para los valores de n. m = 2

Figura 34. PDR medio para los valores de n. m = 4

0,00%

5,00%

10,00%

15,00%

20,00%

25,00%

0 100 200 300 400 500 600 700 800 900 1000 1100

PD

R M

ed

io

Nº Trabajos

23,00%

23,50%

24,00%

24,50%

25,00%

25,50%

26,00%

26,50%

27,00%

27,50%

0 100 200 300 400 500 600 700 800 900 1000 1100

PD

R M

ed

io

Nº Trabajos

Page 66: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

66

Figura 35. PDR medio para los valores de n. m = 6

Figura 36. PDR medio para los valores de n. m = 8

28,00%

29,00%

30,00%

31,00%

32,00%

33,00%

34,00%

0 100 200 300 400 500 600 700 800 900 1000 1100

PD

R M

ed

io

Nº Trabajos

0,00%

5,00%

10,00%

15,00%

20,00%

25,00%

30,00%

35,00%

40,00%

0 100 200 300 400 500 600 700 800 900 1000 1100

PD

R M

ed

io

Nº Trabajos

Page 67: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

67

Figura 37. PDR medio para los valores de n. m = 10

Como puede apreciarse en la Tabla y las Figuras anteriores, para la batería BP, el porcentaje de

desviación relativa (PDR) no es muy elevado tratándose de una heurística constructiva, en la que no

se utiliza una búsqueda local ni métodos complejos. A medida que se aumenta el número de

máquinas este porcentaje va aumentando, llegando al 40% en el caso más elevado en el que el

número de máquinas es 10 y el de trabajos es 100. A pesar de ser una heurística en la que la

diferencia con el óptimo es elevada, el verdadero valor de esta heurística es que proporciona

soluciones de una manera muy rápida como se muestra en los tiempos de cómputo presentados en la

Tabla 4.

En la Figura 38 se recogen todas las Figuras anteriores para ver de una manera más clara como

aumenta el PDR conforme aumenta el número de máquinas:

Figura 38. Resumen de PDR medios para los valores de m de la BP

0,00%

5,00%

10,00%

15,00%

20,00%

25,00%

30,00%

35,00%

40,00%

45,00%

0 100 200 300 400 500 600 700 800 900 1000 1100

PD

R M

ed

io

Nº Trabajos

0,00%

5,00%

10,00%

15,00%

20,00%

25,00%

30,00%

35,00%

40,00%

45,00%

0 100 200 300 400 500 600 700 800 900 1000 1100

PD

R M

ed

io

Nº Trabajos

2 Máquinas

4 Máquinas

6 Máquinas

8 Máquinas

10 Máquinas

Page 68: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

68

A continuación se muestra la Figura 39 el porcentaje de desviación medio dependiendo del número

de máquinas en la que se puede observar claramente como a medida que aumenta el número de

máquinas y el problema es más grande esta diferencia con el óptimo aumenta:

Figura 39. PDR medio para BP de las distintas máquinas

Por último, para observar de una manera más clara la diferencia de tiempos de cómputo que existe

entre el modelo de programación lineal y la heurística, en la Figura 40 se muestra esta diferencia,

pudiendo observarse como la heurística otorga soluciones en tiempos mucho más cortos que el

modelo.

Figura 40. Diferencia de tiempos de cómputo entre modelo y heurística en BP

0,00%

5,00%

10,00%

15,00%

20,00%

25,00%

30,00%

35,00%

40,00%

0 2 4 6 8 10 12

PD

R M

ed

io

Nº Máquinas

0

50

100

150

200

250

300

350

400

450

500

0 2 4 6 8 10 12

Tie

mp

o d

e c

óm

pu

to (

Seg)

Nº máquinas

Modelo

Heurística

Page 69: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

69

Tras realizar el análisis con un número pequeño de máquinas, al igual que con el modelo, se va a

analizar otra batería de problemas con la batería grande BG. Los números de máquinas y trabajos

utilizados pueden observarse en el apartado 4.4. En la Tabla 5 se muestra un resumen de los

resultados obtenidos por la heurística y su comparación con los obtenidos por el modelo. En el

Anexo 4 se presentan de una forma más detallada los resultados obtenidos por la heurística.

En las Figuras 41, 42, 43, 44, 45 y 46 se muestran los resultados del porcentaje de desviación relativa

existente entre la solución óptima otorgada por el modelo de programación lineal y la heurística

programada de cada máquina para los distintos trabajos correspondientes a la Batería Grande.

Como se muestra en la Figura 41, en el caso en que se utilizan 20 máquinas, el PDR medio es un

66,23%. Se puede observar como hasta los 300 trabajos, este PDR es de un 40% aproximadamente,

es a partir de 400 trabajos cuando el PDR aumenta considerablemente, llegando a un 90% y

aumentando a partir de ese dato. En la Figura 42 se observa como a medida que se aumenta el

número de trabajos, el PDR se incrementa llegando a un 70% aproximadamente. Para estos

problemas con 30 máquinas el PDR medio que se consigue es de un 53,40% aproximadamente, un

PDR medio ligeramente inferior que el obtenido en el caso anterior de 20 máquinas. Para problemas

con 40 máquinas (Figura 43), el PDR medio obtenido es de 57,38%, dato ligeramente superior al

caso de 30 máquinas, aunque muy parecido. En la Figura puede apreciarse como hasta los 300

trabajos el PDR es de un 55% aproximadamente. Cuando se aumenta el número de trabajos a 400

este PDR aumenta considerablemente hasta un 63% aproximadamente. Al aumentar el número de

máquinas a 50, podemos observar en la Figura 44 como los datos de PDR van desde un 38%

aproximadamente para el caso en que se utilizan 100 trabajos hasta un 60% cuando se utilizan 200

trabajos, disminuyendo sensiblemente cuando se aumenta este número de trabajos a 300 llegando

hasta un 55% aproximadamente. El PDR medio para estos problemas en que se utilizan 50 máquinas

es de 51,55%, porcentaje inferior a todos los casos anteriores en que el número de máquinas era

inferior. En la Figura 45 puede apreciarse como el PDR medio para los problemas con 100 máquinas

es de un 36% aproximadamente, dato que vuelve a disminuir al igual que en los casos anteriores. Los

datos obtenidos son de un 32% aproximadamente cuando se tienen 100 trabajos y de un 41%

aproximadamente en el caso en que se utilizan 200 trabajos. Por último, en la Figura 46, se muestra

el problema en que se utilizan 200 trabajos. En estos problemas se obtiene un PDR medio de un

19,83%. Comparando este dato con todos los casos anteriormente analizados, podemos comprobar

cómo es el dato de PDR más pequeño obtenido hasta el momento.

Page 70: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

70

m n

20 30 40 50 100 200

Media Modelo

Media Heurística

PDR Medio

Media Modelo

Media Heurística

PDR Medio

Media Modelo

Media Heurística

PDR Medio

Media Modelo

Media Heurística

PDR Medio

Media Modelo

Media Heurística

PDR Medio

Media Modelo

Media Heurística PDR Medio

100 0,3274 0,1556 46,91% 0,4900 0,2260 33,79% 0,5294 0,2534 53,85% 0,6464 0,3184 37,96% 0,8010 0,6278 32,67% 0,9487 1,2604 10,00%

200 171,4956 0,2532 45,44% 616,6825 0,3756 52,09% 746,3883 0,5006 56,87% 926,6562 0,6340 60,84% 14172,1513 1,2454 40,89% 23276,1201 2,5188 29,67%

300 943,2393 0,4192 41,57% 995,7762 0,5798 47,68% 1143,8645 0,7492 55,52% 14168,0759 0,9464 55,87% > 45000 1,8684 - > 45000 3,7520 -

400 1502,5142 0,5080 90,34% 3309,7865 0,7534 60,63% 40415,2911 0,9986 63,28% > 45000 1,2586 - > 45000 2,5218 - > 45000 4,9430 -

500 10337,0884 0,6202 106,89% 28616,5653 0,9296 72,81% > 45000 1,2146 - > 45000 1,5462 - > 45000 8,5160 - > 45000 6,9818 -

Total 2590,9330 0,3912 66,23% 6707,8601 0,5729 53,40% 17461,2147 0,7433 57,38% 21019,0757 0,9407 51,55% 29834,5905 2,9559 36,78% 31655,4138 3,8912 19,83%

Tabla 5. Datos de Tiempos medios del modelo de PL y Heurística y PDR Medio para BG

Page 71: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

71

En la Tabla 5 puede apreciarse la comparación entre el tiempo de cómputo que proporciona Gurobi

al resolver el modelo de programación lineal y el que proporciona la heurística. Puede apreciarse

como a medida que aumenta el número de máquinas, el tiempo de cómputo de la heurística aumenta,

aunque este incremento es muy pequeño, llegando a los 4 segundos aproximadamente en el caso de

200 máquinas. La diferencia de tiempos entre la heurística y el modelo aumenta considerablemente a

medida que aumenta el número de máquinas. En cuanto al PDR se observa que, conforme aumenta

el número de máquinas, este índice disminuye. Respecto al número de trabajos, el PDR no sigue un

patrón claro si lo aumentamos.

Cabe destacar que hay problemas en los que el modelo no pudo obtener la solución óptima. En estos

casos el tiempo de cómputo que se le asigna es de 45000 seg. Sin embargo, al no obtener el

makespan óptimo de estos problemas, no se ha podido calcular el PDR.

Figura 41. PDR medio para los valores de n. m = 20

0,00%

20,00%

40,00%

60,00%

80,00%

100,00%

120,00%

0 100 200 300 400 500 600

PD

R M

ed

io

Nº Trabajos

Page 72: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

72

Figura 42. PDR medio para los valores de n. m = 30

Figura 43. PDR medio para los valores de n. m = 40

0,00%

10,00%

20,00%

30,00%

40,00%

50,00%

60,00%

70,00%

80,00%

0 100 200 300 400 500 600

PD

R M

ed

io

Nº Trabajos

52,00%

54,00%

56,00%

58,00%

60,00%

62,00%

64,00%

0 100 200 300 400 500

PD

R M

ed

io

Nº Trabajos

Page 73: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

73

Figura 44. PDR medio para los valores de n. m = 50

Figura 45. PDR medio para los valores de n. m = 100

0,00%

10,00%

20,00%

30,00%

40,00%

50,00%

60,00%

70,00%

0 100 200 300 400

PD

R M

ed

io

Nº Trabajos

0,00%

5,00%

10,00%

15,00%

20,00%

25,00%

30,00%

35,00%

40,00%

45,00%

0 100 200 300

PD

R M

ed

io

Nº Trabajos

Page 74: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

74

Figura 46. PDR medio para los valores de n. m = 200

Cabe destacar que hay problemas en los que no pudo obtenerse una solución mediante el modelo ya

que su tiempo de ejecución era muy elevado, no obstante por medio de la heurística se han obtenido

soluciones en tiempos muy reducidos, por lo que para estos tipos de problemas es imprescindible el

uso de la heurística si se desea obtener una solución factible en un tiempo muy reducido

En la Figura 47 se recogen todas las Figuras anteriores para ver de una manera más clara como se

comporta el PDR conforme aumenta el número de máquinas:

Figura 47. Resumen de PDR medios para los valores de m de la BG

0,00%

5,00%

10,00%

15,00%

20,00%

25,00%

30,00%

35,00%

0 100 200 300

PD

R M

ed

io

Nº Trabajos

0,00%

20,00%

40,00%

60,00%

80,00%

100,00%

120,00%

0 100 200 300 400 500 600

PD

R M

ed

io

Nº Trabajos

20 Máquinas

30 Máquinas

40 Máquinas

50 Máquinas

100 Máquinas

200 Máquinas

Page 75: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

75

A continuación se muestra en la Figura 48 el porcentaje de desviación medio dependiendo del

número de máquinas en la que se puede observar claramente como a medida que aumenta el número

de máquinas y el problema es más grande, esta diferencia con el óptimo disminuye:

Se puede apreciar como el porcentaje de desviación relativa aumenta considerablemente respecto a la

batería de problemas anterior (BP). A pesar de ser datos de PDR elevados, puede observarse en la

Tabla 5 como las soluciones se obtienen en tiempos muy rápidos, lo que le otorga a esta heurística

cierta relevancia para problemas en que al modelo le cuesta mucho tiempo dar el óptimo o es incapaz

de darlo en tiempos razonables. Puede apreciarse que para problemas cuyo número de máquinas es

más grande, el PDR es más pequeño, lo que proporciona cierta importancia a esta heurística, ya que

son en estos problemas más grande dónde el modelo encuentra una mayor dificultad a la hora de

proporcionar el óptimo, mientras que la heurística otorga una solución en un tiempo muy razonable.

Para observar de una manera más evidente la diferencia de tiempos de cómputo que existe entre el

modelo de programación lineal y la heurística, en la Figura 49 se muestra esta diferencia, como ya se

ha comentado anteriormente, la heurística proporciona soluciones en tiempos mucho más cortos (en

torno al segundo) que el modelo.

0,00%

10,00%

20,00%

30,00%

40,00%

50,00%

60,00%

70,00%

0 50 100 150 200 250

PD

R M

ed

io

Nº Máquinas

Figura 48. PDR medio para BG de las distintas máquinas

Page 76: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

76

Figura 49. Diferencia de tiempos de cómputo entre modelo y heurística en BG

0

5000

10000

15000

20000

25000

30000

0 50 100 150 200 250

Tie

mp

od

e c

óm

pu

to (

seg)

Nº Máquinas

Modelo

Heurística

Page 77: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

77

6 CONCLUSIONES

En el Trabajo Fin de Grado se ha estudiado un problema de programación de la producción. Para

poder llevar a cabo este estudio se ha resuelto de dos maneras distintas: mediante un modelo de

programación lineal y mediante una heurística. El problema que se ha estudiado es de programación

en máquinas paralelas no relacionadas, con la restricción de elegibilidad y cuyo objetivo ha sido

minimizar su makespan. Para llevar a cabo este estudio, el Trabajo Fin de Grado comienza con unos

capítulos en los que se explica brevemente la historia y evolución de la programación de la

producción continuando con sus características, particularidades y tipos de problemas.

Tras estos capítulos teóricos, el capítulo 3 describe el problema que se aborda, explicando el tipo de

problema y todas las características y peculiaridades a tener en cuenta para poder obtener la solución

al problema. Este capítulo concluye con un ejemplo sencillo resuelto mediante el optimizador Solver

de Excel.

El problema de máquinas paralelas se resuelve de forma óptima en el capítulo 4. Para ello se ha

programado mediante el software Matlab el modelo a resolver habiendo, previamente, programado

mediante el mismo software la creación de las dos baterías de problemas. Estas dos baterías se han

diferenciado por el tamaño de los problemas que generan, una batería de problemas pequeños (BP) y

otra de problemas más grandes (BG) de manera que se pueda estudiar el comportamiento del modelo

ante distintos tamaños de problemas. Para poder resolver el modelo de programación lineal

programado en Matlab se ha utilizado el optimizador Gurobi el cual nos proporciona en archivos .txt

las soluciones a los distintos problemas que se han generado por la batería de problemas. Ante la

inexperiencia y poco conocimiento del lenguaje Matlab y más en concreto del optimizador Gurobi, la

programación y resolución de los problemas no ha sido un trabajo fácil, requiriendo muchas

modificaciones y pruebas hasta conseguir el programa necesario para que se genere y resuelvan de

manera satisfactoria los distintos problemas que se querían estudiar. Tras haber conseguido estas

soluciones en archivos .txt, estos archivos fueron exportados a Excel, donde mediante tablas y

gráficos se ha conseguido obtener una vista de los resultados más fáciles de estudiar y observar. Se

ha demostrado que Gurobi resuelve en tiempos razonables problemas de hasta 8 máquinas,

independientemente del número de trabajos. Para la Batería Grande los tiempos han sido muy

elevados con más de 3 horas para problemas de 20 máquinas y 500 trabajos.

Se observa que hay problemas en los que, debido a su tamaño, el optimizador no es capaz de resolver

en tiempos aceptables. Debido a esta incapacidad del modelo de obtener el óptimo en un tiempo

Page 78: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

78

razonable, se ha optado por programar una heurística que, a pesar de no proporcionar la solución

óptima, otorga soluciones factibles en tiempos muy cortos.

La heurística constructiva propuesta para resolver los problemas está basada en la carga de las

máquinas, asignando los trabajos a las máquinas cuya carga sea menor, de manera que se equilibren

las cargas de todas las máquinas. Esta heurística, programada en lenguaje C, lee los mismos archivos

.txt de los distintos problemas generados por la batería de problemas y que se resolvieron por el

modelo de programación lineal. Al igual que con el modelo de programación lineal, la heurística

proporciona archivos .txt con las soluciones de los problemas, soluciones que son exportadas a Excel

obteniéndose las gráficas y tablas necesarias para su estudio posterior.

Tras obtener las soluciones que proporciona la heurística y el óptimo que calcula el modelo de

programación lineal, se ha procedido a estudiar la diferencia entre las soluciones que proporcionan

ambos métodos. Esto se ha realizado mediante el Porcentaje de Desviación Relativa (PDR) que

estudia la diferencia de makespan entre ambos métodos. Una vez obtenido este índice ya puede

estudiarse la diferencia que existe entre las soluciones obtenidas. Tras el análisis se llega a la

conclusión de que la diferencia entre ambas soluciones es muy elevada, no obteniéndose, mediante la

heurística, soluciones muy cercanas al óptimo, sin embargo, se consiguen soluciones a problemas

que el modelo no ha podido resolver, a la vez que los tiempos de cómputo de la heurística son muy

inferiores a los del modelo. Con todos estos datos se puede concluir que para problemas grandes en

los que el modelo no es capaz de proporcionar el óptimo, o para aquellos cuyos tiempos de cómputo

sean muy elevados la heurística es una buena salida para obtener una solución en tiempos muy

cortos.

Page 79: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

79

BIBLIOGRAFÍA

[Arango, Giraldo, & Castrillón, 2013] Arango, J. a., Giraldo, J. a., & Castrillón, O. D. (2013).

Programación de máquinas paralelas no relacionadas con tiempos de montaje dependientes

de la secuencia y entrada dinámica usando algoritmos genéticos.Información Tecnológica,

Vol. 24 (3), 73-84.

[Companys Pascual, 1989] Companys Pascual, R. (1989). Planificación y programación de la

producción.Marcombo-Boixerau.

[Martí, 2010] Martí, Rafael (2010). Algoritmos Heurísticos en Optimización

Combinatoria.Departamento de Estadística e Investigación Operativa. Facultad de Ciencias

Matemáticas. Universidad de Valencia.

[Framiñan, Leisten, & Ruiz García, 2014] Framinan, J. M., Leisten, R., & Ruiz García, R. (2014).

Manufacturing Scheduling System : An Integrated View on Models, Methods and Tools.

Springer

[Gantt, 1910] Gantt, H. (1910). Work, Wages and Profit. Their influence on the cost of living.The

Engineering Magazine, New York.

[Gantt, 1919] Gantt, H. (1919). Organizing for Work. Harcourt, Brace and Howe, New York.

[Garey and Johnson, 1979] Garey, M. and Johnson, D. D. (1979). Computers and Intractability: A

Guide to the Theory of NP-Completeness.W. H. Freemangantt

[Graham, 1969] Graham, R. L. (1969). Bounds on multiprocessing timing anomalies.SIAM Journal

on Applied Mathematics, Vol. 17 (2), 416-429.

[Graham, 1979] Graham, R. L, Lawler, E. L., Lenstra, J. K., y Rinnooy Kan, A. H. G. (1979).

Optimization and Approximation in Deterministic Sequencing and Scheduling.Annals of

Discrete Mathematics, Vol. 5 (1), 287-326.

[Jackson, 1956] Jackson, J. R. (1956) An extension of Johnson’s results on job lot scheduling.Naval

Research Logistics Quarterly, Vol. 3 (3), 201-203.

[Johnson, 1954] Johnson, S.M. (1954). Optimal Two- and Three- Stage Production Schedules With

Set- up Time Included.Naval Research Logistics Quarterly, Vol. 1 (1), 61-68.

[Juan Velasco Sánchez, 2013] Juan Velasco Sánchez, J. A. C. M. (2013). Gestión de la

producción en la empresa : planificación, programación y control.Pirámide.

Page 80: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

80

[Karp, 1975] Karp, R. M. (1975). Reducibility among combinational problems.The Journal of

Symbolic Logic, Vol. 40 (4), 618-619.

[Luis Fanjul Peyró, 2010] Fanjul Peyró, L. y Ruiz, R. (2010). Nuevos Algoritmos para el Problema

de Secuenciación en Máquinas Paralelas no Relacionadas y Generalizaciones.Tesis

Doctoral. Universidad de Valencia.

[Miranda Zambrana, 2010] Miranda Zambrana, A. (2010). Diseño del Software de control de

instrumento HP4142B para caracterización de dispositivos.Proyecto Fin de Carrera.

Universidad Politécnica de Cataluña.

[Pérez González, 2014] Pérez González, P. (2014). Programación y Control de la Producción.

Universidad de Sevilla.

[Pinedo 2009] Pinedo, M. L. (2009). Planning and Scheduling in Manufacturing and Services.

Springer

[Pinedo, 2012] Pinedo, M. L. (2012). Scheduling: Theory, Algorithms, and Systems.Springer

[Ramos, 1995] Ramos, S. A. (1995). Heurísticas y Problemas Combinatorios.Modelos y

Optimización I. Universidad de Buenos Aires.

[Smith, 1956] Smith, W. E. (1956). Various optimizers for single- stage production.Naval Research

Logistics Quarterly, Vol. 3, (1-2), 59-66.

[http://es.mathworks.com] MathWorks - MATLAB and Simulink for Technical Computing.

[http://www.gurobi.com] Gurobi Optimization - The Best Mathematical Programming Solver.

Page 81: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

81

Anexos

Anexo 1: Batería de problemas y modelo matemático en Matlab

%Batería de problemas

numtrab=[100,200,300,400,500];

nummaq=[20,30,40,50,100,200];

fich2= sprintf('solucionBG.txt');

fi2=fopen(fich2,'wt');

v=1;

for q=1:5

for p=1:6

for k=1:5

T=[];

fich= sprintf('BG%0.3d.txt',v);

fich3=sprintf('H_BG%0.3d.txt',v);

save fich

fi=fopen(fich,'wt');

fi3=fopen(fich3,'wt');

fprintf(fi3,'%d\n%d\n',nummaq(p),numtrab(q));

for i=1:numtrab(q)

for j=1:nummaq(p)

A=floor(random('unif',1,101));

B=rand;

if B<0.1

A=1000;

end

T=[T A];

fprintf(fi,'%d ',A);

fprintf(fi3,'%d ',A);

end

Page 82: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

82

fprintf(fi,'\n');

fprintf(fi3,'\n');

end

fclose(fi);

%Matriz de restricciones

a=0;

b=0;

c=0;

d=0;

m=nummaq(p);

n=numtrab(q);

x=zeros(m+n,m*n+1);

for h=1:n

a=a+1;

for g=1+b:m+b

x(h,g)=1;

end

b=b+m;

end

o=1;

e=0;

for g=a+1:m+n

for h=1:n

x(g,h+c)=T(o+e);

o=o+m;

c=c+m-1;

end

o=1;

e=e+1;

x(g,m*n+1)=-1;

d=d+1;

c=d;

a=a+1;

end

Page 83: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

83

model.A=sparse(x)

%Vector de término independiente

B=[];

a=0;

for j=1:n

B=[B 1];

a=a+1;

end

for j=a+1:m+n

B=[B 0];

end

model.rhs=B;

%Criterio Funcion Objetivo

model.modelsense='Min';

%Signo de restricciones

SIGNO=[];

for i=1:n

SIGNO=[SIGNO '='];

end

for i=n+1:m+n

SIGNO=[SIGNO '<'];

end

model.sense=SIGNO;

%Vector Función Objetivo

objetivo=[];

for i=1:m*n

objetivo=[objetivo 0];

end

for i=m*n+1

objetivo=[objetivo 1];

end

Page 84: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

84

model.obj=objetivo;

%Tipo de variables

V=[];

for i=1:m*n

V=[V 'B'];

end

for i=m*n+1

V=[V 'I'];

end

model.vtype=V;

%Resolucion del modelo

result=gurobi(model)

disp(result.objval)

disp(result.runtime)

resultad=result.x'

fprintf(fi2,'BG%0.3d: Problema%0.2d_%dx%d %d %10.5f

\n',v,k,numtrab(q),nummaq(p),result.objval,result.runtime);

v=v+1;

end

p=p+1;

end

q=q+1;

end

Page 85: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

85

Anexo 2: Programación de heurística en C

#include <stdio.h>

#include <stdlib.h>

#include <time.h>

#include <D:\Nueva carpeta\UNIVERSIDAD\INGENIERÍA ORGANIZACIÓN

INDUSTRIAL\Cuarto\Programación y Control de la Producción\C\Libreria

definitiva\schedule_lib.h>

int main(int argc,char *argv[])

{

//Variables de reloj

clock_t tini;

clock_t tfin;

double z;

z=0;

tini=clock();

FILE *output;

int n;

int m;

int nummaq=m; //Número de máquinas

int numtrab=n; //Número de trabajos

MAT_LONG pt; //Definición de la matriz de tiempos

pt=loadPTimes_nrows(argv[1], &numtrab,&nummaq,YES);

int k=0;

int x=0;

int j=0;

int i=0;

Page 86: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

86

int L[nummaq]; //Carga de las máquinas

int maximo;

int minimo[numtrab];

for(k=0;k<nummaq;k++)//Bucle para poner todas las cargas de las máquinas a 0

{

L[k]=0;

}

for (i=0;i<numtrab;i++)

{

k=0;

if(i==0)//Si es el primer trabajo en colocar

{

minimo[i]=pt[i][0];//El tiempo de proceso del primer trabajo en la primera máquina se considera

el mínimo

for(j=1;j<nummaq;j++) //Bucle para recorrer cada máquina

{

k=x;

if (pt[i][j]<minimo[i])//Si el tiempo de proceso del trabajo en la máquina es menor que el

mínimo

{

minimo[i]=pt[i][j];//El minimo pasa a ser dicho tiempo de proceso

k=j;

x++;

}

else

{

x++;

Page 87: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

87

}

}

L[k]=minimo[i]; //La carga de la máquina es el valor del mínimo

}

else //Si no es el primer trabajo en colocar

{

minimo[i]=pt[i][0]+L[0];

x=1;

for (j=1;j<nummaq;j++) //Bucle para recorrer cada máquina

{

if(pt[i][j]+L[x]<minimo[i]) //Si el tiempo de proceso + la carga de la máquina es menor

que el mínimo

{

minimo[i]=pt[i][j]+L[x]; //El mínimo pasa a ser dicho valor

k=j;

x++;

}

else

{

x++;

}

}

L[k]=minimo[i];//La carga de la máquina es el valor del mínimo

}

}

Page 88: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

88

for (k=0;k<nummaq;k++)

{

printf("L[%d] = %d\n",k,L[k]);

}

//Cálculo del makespan

maximo=L[0];

for (k=1;k<nummaq;k++)//Bucle para ordenar las cargas de cada máquina

{

if(L[k]>maximo)

{

maximo=L[k];

}

}

printf("Cmax = %d",maximo);//El makespan es la mayor carga de las máquinas

// Cálculo del tiempo de cómputo

tfin=clock();

z=(double)(tfin-tini)/CLOCKS_PER_SEC;

printf("\nProcessing time\n%lg\n\n",z);

// Escribir en el archivo de salida

output = fopen(argv[2],"a");

fprintf(output,"%s %d %10.5f\n", argv[1], maximo, z);

fclose(output);// Cerrar archivo

return 0;

}

Page 89: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

89

Anexo 3: Resultados del modelo

Batería Pequeña:

- 2 Máquinas:

Código Problema Cmax Tiempo (Seg) Cmax Medio Tiempo Medio (Seg)

BP001 Problema01_100x2 1791 0,0180

2034 0,0676

BP002 Problema02_100x2 2515 0,0730

BP003 Problema03_100x2 1821 0,0600

BP004 Problema04_100x2 2219 0,1760

BP005 Problema05_100x2 1824 0,0110

BP026 Problema01_200x2 5850 0,0270

4874 0,0240

BP027 Problema02_200x2 3614 0,0160

BP028 Problema03_200x2 4763 0,0230

BP029 Problema04_200x2 3821 0,0310

BP030 Problema05_200x2 6324 0,0230

BP051 Problema01_300x2 6512 0,0330

6828 0,0556

BP052 Problema02_300x2 5576 0,0250

BP053 Problema03_300x2 7349 0,0510

BP054 Problema04_300x2 6897 0,0680

BP055 Problema05_300x2 7805 0,1010

BP076 Problema01_400x2 8216 0,0810

9610 0,0564

BP077 Problema02_400x2 9566 0,0530

BP078 Problema03_400x2 9991 0,0480

BP079 Problema04_400x2 11016 0,0360

BP080 Problema05_400x2 9262 0,0640

BP101 Problema01_500x2 9306 0,0840

11468 0,0560

BP102 Problema02_500x2 12802 0,0400

BP103 Problema03_500x2 12804 0,0660

BP104 Problema04_500x2 11247 0,0490

BP105 Problema05_500x2 11183 0,0410

BP126 Problema01_600x2 16898 0,0450

14394 0,0648

BP127 Problema02_600x2 14574 0,0540

BP128 Problema03_600x2 14690 0,0950

BP129 Problema04_600x2 11944 0,0530

BP130 Problema05_600x2 13863 0,0770

BP151 Problema01_700x2 15231 0,0580

16071 0,0802

BP152 Problema02_700x2 18097 0,0570

BP153 Problema03_700x2 14919 0,1030

BP154 Problema04_700x2 15427 0,0840

BP155 Problema05_700x2 16680 0,0990

Page 90: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

90

Código Problema Cmax Tiempo (Seg) Cmax Medio Tiempo Medio (Seg)

BP176 Problema01_800x2 17958 0,0810

18667 0,0698

BP177 Problema02_800x2 19903 0,0560

BP178 Problema03_800x2 16526 0,0950

BP179 Problema04_800x2 19352 0,0560

BP180 Problema05_800x2 19595 0,0610

BP201 Problema01_900x2 20017 0,0640

20887 0,0796

BP202 Problema02_900x2 19198 0,1030

BP203 Problema03_900x2 26226 0,0940

BP204 Problema04_900x2 18091 0,0710

BP205 Problema05_900x2 20904 0,0660

BP226 Problema01_1000x2 22979 0,1040

22809 0,0954

BP227 Problema02_1000x2 21685 0,0880

BP228 Problema03_1000x2 22863 0,1260

BP229 Problema04_1000x2 23762 0,0720

BP230 Problema05_1000x2 22755 0,0870

Tabla 6. Resultados del Modelo. 2 Máquinas

- 4 Máquinas

Código Problema Cmax Tiempo (Seg) Cmax Medio Tiempo Medio (Seg)

BP006 Problema01_100x4 559 0,3540

561 0,2896

BP007 Problema02_100x4 644 0,4170

BP008 Problema03_100x4 583 0,3210

BP009 Problema04_100x4 485 0,1940

BP010 Problema05_100x4 532 0,1620

BP031 Problema01_200x4 1058 0,5450

1121 0,4692

BP032 Problema02_200x4 1230 0,5540

BP033 Problema03_200x4 1193 0,2840

BP034 Problema04_200x4 1094 0,3250

BP035 Problema05_200x4 1031 0,6380

BP056 Problema01_300x4 1625 0,5370

1730 0,6744

BP057 Problema02_300x4 1767 0,3950

BP058 Problema03_300x4 1774 1,3431

BP059 Problema04_300x4 1753 0,5750

BP060 Problema05_300x4 1731 0,5220

BP081 Problema01_400x4 2247 1,8431

2309 0,8715

BP082 Problema02_400x4 2311 0,5540

BP083 Problema03_400x4 2273 0,7460

BP084 Problema04_400x4 2228 0,3330

BP085 Problema05_400x4 2487 0,8811

Page 91: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

91

Código Problema Cmax Tiempo (Seg) Cmax Medio Tiempo Medio (Seg)

BP106 Problema01_500x4 2870 0,3650

2872 0,8949

BP107 Problema02_500x4 2971 0,7900

BP108 Problema03_500x4 2893 1,1721

BP109 Problema04_500x4 2771 0,8601

BP110 Problema05_500x4 2857 1,2871

BP131 Problema01_600x4 3407 1,0011

3414 0,9627

BP132 Problema02_600x4 3394 1,3151

BP133 Problema03_600x4 3437 1,0381

BP134 Problema04_600x4 3473 0,8201

BP135 Problema05_600x4 3357 0,6390

BP156 Problema01_700x4 4017 0,5320

3929 1,0067

BP157 Problema02_700x4 3827 0,4470

BP158 Problema03_700x4 4131 1,8391

BP159 Problema04_700x4 3664 1,4671

BP160 Problema05_700x4 4007 0,7480

BP181 Problema01_800x4 4543 0,2810

4619 0,9099

BP182 Problema02_800x4 4640 1,1731

BP183 Problema03_800x4 4784 0,8161

BP184 Problema04_800x4 4529 0,9561

BP185 Problema05_800x4 4597 1,3231

BP206 Problema01_900x4 5260 4,0352

5175 1,8351

BP207 Problema02_900x4 5119 0,6300

BP208 Problema03_900x4 5148 1,8121

BP209 Problema04_900x4 5131 1,0291

BP210 Problema05_900x4 5218 1,6691

BP231 Problema01_1000x4 5702 0,7670

5756 1,2657

BP232 Problema02_1000x4 5840 1,7831

BP233 Problema03_1000x4 5838 1,0091

BP234 Problema04_1000x4 5577 1,6461

BP235 Problema05_1000x4 5822 1,1231

Tabla 7. Resultados del Modelo. 4 Máquinas

Page 92: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

92

- 6 Máquinas:

Código Problema Cmax Tiempo (Seg) Cmax Medio Tiempo Medio (Seg)

BP011 Problema01_100x6 277 1,9031

288 1,3831

BP012 Problema02_100x6 259 2,0361

BP013 Problema03_100x6 284 0,5380

BP014 Problema04_100x6 328 1,1521

BP015 Problema05_100x6 290 1,2861

BP036 Problema01_200x6 599 2,4871

571 3,2136

BP037 Problema02_200x6 574 4,2843

BP038 Problema03_200x6 549 0,9471

BP039 Problema04_200x6 575 4,4203

BP040 Problema05_200x6 557 3,9292

BP061 Problema01_300x6 821 7,2754

798 3,2752

BP062 Problema02_300x6 849 2,2441

BP063 Problema03_300x6 818 2,3201

BP064 Problema04_300x6 746 1,3421

BP065 Problema05_300x6 755 3,1942

BP086 Problema01_400x6 1126 3,6962

1110 2,4473

BP087 Problema02_400x6 1072 0,3850

BP088 Problema03_400x6 1080 2,5161

BP089 Problema04_400x6 1119 1,1041

BP090 Problema05_400x6 1154 4,5353

BP111 Problema01_500x6 1302 13,5528

1338 4,8811

BP112 Problema02_500x6 1314 3,5062

BP113 Problema03_500x6 1363 3,5852

BP114 Problema04_500x6 1311 2,1131

BP115 Problema05_500x6 1398 1,6481

BP136 Problema01_600x6 1641 21,4782

1642 14,5958

BP137 Problema02_600x6 1603 23,8374

BP138 Problema03_600x6 1623 2,3571

BP139 Problema04_600x6 1689 4,9833

BP140 Problema05_600x6 1654 20,3232

BP161 Problema01_700x6 1881 1,2911

1939 2,5667

BP162 Problema02_700x6 1864 0,2990

BP163 Problema03_700x6 2007 0,2110

BP164 Problema04_700x6 2013 1,4921

BP165 Problema05_700x6 1929 9,5406

Page 93: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

93

Código Problema Cmax Tiempo (Seg) Cmax Medio Tiempo Medio (Seg)

BP186 Problema01_800x6 2143 2,5902

2186 1,3177

BP187 Problema02_800x6 2294 0,5820

BP188 Problema03_800x6 2132 0,2370

BP189 Problema04_800x6 2244 2,6242

BP190 Problema05_800x6 2117 0,5550

BP211 Problema01_900x6 2395 0,2050

2405 14,0810

BP212 Problema02_900x6 2375 3,3662

BP213 Problema03_900x6 2371 3,6622

BP214 Problema04_900x6 2486 0,2580

BP215 Problema05_900x6 2400 62,9136

BP236 Problema01_1000x6 2651 0,2230

2744 18,1296

BP237 Problema02_1000x6 2771 4,2612

BP238 Problema03_1000x6 2764 1,8431

BP239 Problema04_1000x6 2744 0,2150

BP240 Problema05_1000x6 2789 84,1058

Tabla 8. Resultados del Modelo. 6 Máquinas

- 8 Máquinas:

Código Problema Cmax Tiempo (Seg) Cmax Medio Tiempo Medio (Seg)

BP016 Problema01_100x8 139 0,9331

162 1,8565

BP017 Problema02_100x8 167 1,1531

BP018 Problema03_100x8 160 5,8223

BP019 Problema04_100x8 172 0,5920

BP020 Problema05_100x8 173 0,7821

BP041 Problema01_200x8 327 3,2142

342 4,6603

BP042 Problema02_200x8 352 15,2009

BP043 Problema03_200x8 334 1,4361

BP044 Problema04_200x8 356 1,2601

BP045 Problema05_200x8 343 2,1901

BP066 Problema01_300x8 461 65,5138

480 26,9921

BP067 Problema02_300x8 450 5,9813

BP068 Problema03_300x8 502 21,0112

BP069 Problema04_300x8 517 0,4220

BP070 Problema05_300x8 472 42,0324

BP091 Problema01_400x8 631 0,1890

647 108,2386

BP092 Problema02_400x8 650 149,5806

BP093 Problema03_400x8 653 210,8281

BP094 Problema04_400x8 643 52,5750

BP095 Problema05_400x8 659 128,0203

Page 94: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

94

Código Problema Cmax Tiempo (Seg) Cmax Medio Tiempo Medio (Seg)

BP116 Problema01_500x8 822 6,1194

830 10,5204

BP117 Problema02_500x8 802 3,2002

BP118 Problema03_500x8 851 3,0812

BP119 Problema04_500x8 836 11,0416

BP120 Problema05_500x8 837 29,1597

BP141 Problema01_600x8 970 1,4111

981 23,5181

BP142 Problema02_600x8 1052 80,9076

BP143 Problema03_600x8 979 10,6536

BP144 Problema04_600x8 949 5,9813

BP145 Problema05_600x8 957 18,6371

BP166 Problema01_700x8 1198 30,8448

1139 25,1582

BP167 Problema02_700x8 1144 38,0032

BP168 Problema03_700x8 1104 49,2868

BP169 Problema04_700x8 1131 6,6464

BP170 Problema05_700x8 1119 1,0101

BP191 Problema01_800x8 1252 0,4800

1290 17,8684

BP192 Problema02_800x8 1349 39,0022

BP193 Problema03_800x8 1273 45,9376

BP194 Problema04_800x8 1277 3,2952

BP195 Problema05_800x8 1299 0,6270

BP216 Problema01_900x8 1488 591,3878

1453 195,3192

BP217 Problema02_900x8 1443 160,1652

BP218 Problema03_900x8 1457 59,9784

BP219 Problema04_900x8 1430 117,0887

BP220 Problema05_900x8 1446 47,9757

BP241 Problema01_1000x8 1626 20,6902

1608 46,4169

BP242 Problema02_1000x8 1621 49,3998

BP243 Problema03_1000x8 1531 62,9456

BP244 Problema04_1000x8 1640 58,3603

BP245 Problema05_1000x8 1620 40,6883

Tabla 9. Resultados del Modelo. 8 Máquinas

Page 95: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

95

- 10 Máquinas:

Código Problema Cmax Tiempo (Seg) Cmax Medio Tiempo Medio (Seg)

BP021 Problema01_100x10 120 2,2491

109 6,1132

BP022 Problema02_100x10 96 14,4508

BP023 Problema03_100x10 105 0,1210

BP024 Problema04_100x10 115 2,7162

BP025 Problema05_100x10 111 11,0286

BP046 Problema01_200x10 201 14,4368

211 15,0237

BP047 Problema02_200x10 223 15,1279

BP048 Problema03_200x10 231 30,0027

BP049 Problema04_200x10 187 6,1924

BP050 Problema05_200x10 213 9,3585

BP071 Problema01_300x10 352 1693,9399

328 385,1370

BP072 Problema02_300x10 326 102,5529

BP073 Problema03_300x10 353 107,2001

BP074 Problema04_300x10 287 1,9431

BP075 Problema05_300x10 323 20,0492

BP096 Problema01_400x10 454 235,0645

424 115,1596

BP097 Problema02_400x10 397 13,3308

BP098 Problema03_400x10 422 232,1793

BP099 Problema04_400x10 440 87,5640

BP100 Problema05_400x10 406 7,6594

BP121 Problema01_500x10 567 78,5405

528 2332,7606

BP122 Problema02_500x10 525 10328,0057

BP123 Problema03_500x10 478 66,3858

BP124 Problema04_500x10 531 1076,3206

BP125 Problema05_500x10 537 114,5506

BP146 Problema01_600x10 671 311,5318

636 159,3929

BP147 Problema02_600x10 622 306,7195

BP148 Problema03_600x10 664 55,4152

BP149 Problema04_600x10 632 72,6782

BP150 Problema05_600x10 590 50,6199

BP171 Problema01_700x10 732 291,1317

749 400,9519

BP172 Problema02_700x10 779 132,5996

BP173 Problema03_700x10 776 1264,9994

BP174 Problema04_700x10 723 206,3388

BP175 Problema05_700x10 734 109,6903

Page 96: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

96

Código Problema Cmax Tiempo (Seg)

Cmax Medio Tiempo Medio (Seg)

BP196 Problema01_800x10 826 6,8534

865 59,3008

BP197 Problema02_800x10 817 4,0212

BP198 Problema03_800x10 911 74,5693

BP199 Problema04_800x10 874 18,8661

BP200 Problema05_800x10 897 192,1940

BP221 Problema01_900x10 951 1337,0625

943 288,4547

BP222 Problema02_900x10 952 1,1931

BP223 Problema03_900x10 927 24,0194

BP224 Problema04_900x10 956 50,0129

BP225 Problema05_900x10 930 29,9857

BP246 Problema01_1000x10 1076 65,9588

1051 866,2115

BP247 Problema02_1000x10 1028 3020,9978

BP248 Problema03_1000x10 968 143,4652

BP249 Problema04_1000x10 1091 66,2458

BP250 Problema05_1000x10 1091 1034,3902

Tabla 10. Resultados del Modelo. 10 Máquinas

Batería Grande:

- 20 Máquinas:

Código Problema Cmax Tiempo (Seg) Cmax Medio Tiempo Medio (Seg)

BG001 Problema01_100x20 37 0,4820

35 0,3274

BG002 Problema02_100x20 32 0,1445

BG003 Problema03_100x20 35 0,6650

BG004 Problema04_100x20 39 0,1340

BG005 Problema05_100x20 34 0,2115

BG031 Problema01_200x20 62 3,1672

64 171,4956

BG032 Problema02_200x20 65 37,2411

BG033 Problema03_200x20 65 31,7318

BG034 Problema04_200x20 64 736,7641

BG035 Problema05_200x20 62 48,5738

BG061 Problema01_300x20 90 325,8742

88 943,2393

BG062 Problema02_300x20 86 4209,1598

BG063 Problema03_300x20 87 107,5746

BG064 Problema04_300x20 88 30,7985

BG065 Problema05_300x20 89 42,7896

Page 97: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

97

Código Problema Cmax Tiempo (Seg) Cmax Medio Tiempo Medio (Seg)

BG091 Problema01_400x20 95 1473,5564

95 1502,5142

BG092 Problema02_400x20 94 1135,9431

BG093 Problema03_400x20 94 1730,0046

BG094 Problema04_400x20 97 1197,6661

BG095 Problema05_400x20 96 1975,4006

BG121 Problema01_500x20 102 5748,2514

101 10337,0884

BG122 Problema02_500x20 98 34920,8084

BG123 Problema03_500x20 101 1084,2100

BG124 Problema04_500x20 106 2613,8115

BG125 Problema05_500x20 100 7318,3606

Tabla 11. Resultados del Modelo. 20 Máquinas

- 30 Máquinas:

Código Problema Cmax Tiempo (Seg) Cmax Medio Tiempo Medio (Seg)

BG006 Problema01_100x30 26 0,1230

21 0,4900

BG007 Problema02_100x30 19 0,4500

BG008 Problema03_100x30 22 0,6550

BG009 Problema04_100x30 20 0,2340

BG010 Problema05_100x30 18 0,9881

BG036 Problema01_200x30 28 2,4931

29 616,6825

BG037 Problema02_200x30 29 158,0990

BG038 Problema03_200x30 29 0,6980

BG039 Problema04_200x30 29 2761,3269

BG040 Problema05_200x30 29 160,7952

BG066 Problema01_300x30 45 925,4712

44 995,7762

BG067 Problema02_300x30 43 1058,8651

BG068 Problema03_300x30 45 1320,1559

BG069 Problema04_300x30 42 184,6446

BG070 Problema05_300x30 47 1489,7443

BG096 Problema01_400x30 53 5,7073

52 3309,7865

BG097 Problema02_400x30 51 9929,3499

BG098 Problema03_400x30 53 158,8651

BG099 Problema04_400x30 52 0,4170

BG100 Problema05_400x30 52 6454,5932

BG126 Problema01_500x30 63 51278,2500

61 28616,5653

BG127 Problema02_500x30 62 20621,0265

BG128 Problema03_500x30 57 47841,0000

BG129 Problema04_500x30 58 10896,5547

BG130 Problema05_500x30 65 12445,9954

Tabla 12. Resultados del Modelo. 30 Máquinas

Page 98: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

98

- 40 Máquinas:

Código Problema Cmax Tiempo (Seg) Cmax Medio Tiempo Medio (Seg)

BG011 Problema01_100x40 11 0,5730

12 0,5294

BG012 Problema02_100x40 13 0,1850

BG013 Problema03_100x40 11 0,6350

BG014 Problema04_100x40 13 0,6830

BG015 Problema05_100x40 13 0,5710

BG041 Problema01_200x40 17 783,7690

19 746,3883

BG042 Problema02_200x40 21 670,1138

BG043 Problema03_200x40 19 727,0754

BG044 Problema04_200x40 19 854,9009

BG045 Problema05_200x40 20 696,0821

BG071 Problema01_300x40 27 914,8469

27 1143,8645

BG072 Problema02_300x40 28 1590,3480

BG073 Problema03_300x40 26 1323,7835

BG074 Problema04_300x40 27 987,5864

BG075 Problema05_300x40 26 902,7579

BG101 Problema01_400x40 32 9,7296

32 40415,2911

BG102 Problema02_400x40 31 13403,6436

BG103 Problema03_400x40 33 18752,2247

BG104 Problema04_400x40 32 158432,7454

BG105 Problema05_400x40 31 11478,1123

Tabla 13. Resultados del Modelo. 40 Máquinas

- 50 Máquinas:

Código Problema Cmax Tiempo (Seg) Cmax Medio Tiempo Medio (Seg)

BG016 Problema01_100x50 13 0,7290

12 0,6464

BG017 Problema02_100x50 13 0,6340

BG018 Problema03_100x50 12 0,6300

BG019 Problema04_100x50 12 0,6160

BG020 Problema05_100x50 11 0,6230

BG046 Problema01_200x50 17 1014,4030

14 926,6562

BG047 Problema02_200x50 13 911,5271

BG048 Problema03_200x50 12 950,8243

BG049 Problema04_200x50 14 805,4043

BG050 Problema05_200x50 13 951,1221

BG076 Problema01_300x50 20 11772,9815

18 14168,0759

BG077 Problema02_300x50 18 15795,2462

BG078 Problema03_300x50 17 18819,3583

BG079 Problema04_300x50 20 13874,4558

BG080 Problema05_300x50 16 10578,3378

Tabla 14. Resultados del Modelo. 50 Máquinas

Page 99: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

99

- 100 Máquinas:

Código Problema Cmax Tiempo (Seg) Cmax Medio Tiempo Medio (Seg)

BG021 Problema01_100x100 6 0,8070

5 0,8010

BG022 Problema02_100x100 5 0,8180

BG023 Problema03_100x100 4 0,8000

BG024 Problema04_100x100 5 0,7600

BG025 Problema05_100x100 5 0,8200

BG051 Problema01_200x100 12 15847,7889

8 14172,1513

BG052 Problema02_200x100 9 12974,1528

BG053 Problema03_200x100 5 20715,4463

BG054 Problema04_200x100 5 9745,2540

BG055 Problema05_200x100 9 11578,1146

Tabla 15. Resultados del Modelo. 100 Máquinas

- 200 Máquinas:

Código Problema Cmax Tiempo (Seg) Cmax Medio Tiempo Medio (Seg)

BG026 Problema01_100x200 3 0,9021

3 0,9487

BG027 Problema02_100x200 4 0,9601

BG028 Problema03_100x200 4 0,9441

BG029 Problema04_100x200 3 0,9611

BG030 Problema05_100x200 2 0,9761

BG056 Problema01_200x200 5 20479,1477

4 23276,1201

BG057 Problema02_200x200 4 18732,1100

BG058 Problema03_200x200 3 22711,3345

BG059 Problema04_200x200 4 28456,2279

BG060 Problema05_200x200 4 26001,7805

Tabla 16. Resultados del Modelo. 200 Máquinas

Page 100: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

100

Page 101: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

101

Anexo 4: Resultados de la Heurística

Bateria Pequeña:

Código Problema Modelo Heurística

PDR PDR Medio Makespan Tiempo (Seg) Makespan Tiempo (Seg)

BP001 Problema01_100x2 1791 0,0180 2054 0,0620 14,68%

19,65%

BP002 Problema02_100x2 2515 0,0730 3271 0,0630 30,06%

BP003 Problema03_100x2 1821 0,0600 2082 0,0520 14,33%

BP004 Problema04_100x2 2219 0,1760 2689 0,0170 21,18%

BP005 Problema05_100x2 1824 0,0110 2152 0,0170 17,98%

BP006 Problema01_100x4 559 0,3540 703 0,0290 25,76%

27,18%

BP007 Problema02_100x4 644 0,4170 831 0,0280 29,04%

BP008 Problema03_100x4 583 0,3210 802 0,0300 37,56%

BP009 Problema04_100x4 485 0,1940 605 0,0290 24,74%

BP010 Problema05_100x4 532 0,1620 632 0,0290 18,80%

BP011 Problema01_100x6 277 1,9031 380 0,0390 37,18%

31,55%

BP012 Problema02_100x6 259 2,0361 315 0,0380 21,62%

BP013 Problema03_100x6 284 0,5380 367 0,0380 29,23%

BP014 Problema04_100x6 328 1,1521 421 0,0380 28,35%

BP015 Problema05_100x6 290 1,2861 410 0,0400 41,38%

BP016 Problema01_100x8 139 0,9331 188 0,0510 35,25%

34,48%

BP017 Problema02_100x8 167 1,1531 227 0,0500 35,93%

BP018 Problema03_100x8 160 5,8223 232 0,0500 45,00%

BP019 Problema04_100x8 172 0,5920 211 0,0520 22,67%

BP020 Problema05_100x8 173 0,7821 231 0,0730 33,53%

BP021 Problema01_100x10 120 2,2491 160 0,0750 33,33%

41,58%

BP022 Problema02_100x10 96 14,4508 128 0,0620 33,33%

BP023 Problema03_100x10 105 0,1210 165 0,0630 57,14%

BP024 Problema04_100x10 115 2,7162 163 0,0630 41,74%

BP025 Problema05_100x10 111 11,0286 158 0,0630 42,34%

BP026 Problema01_200x2 5850 0,0270 6432 0,0340 9,95%

16,70%

BP027 Problema02_200x2 3614 0,0160 3975 0,0320 9,99%

BP028 Problema03_200x2 4763 0,0230 5833 0,0320 22,46%

BP029 Problema04_200x2 3821 0,0310 4419 0,0310 15,65%

BP030 Problema05_200x2 6324 0,0230 7932 0,0330 25,43%

BP031 Problema01_200x4 1058 0,5450 1358 0,0540 28,36%

26,32%

BP032 Problema02_200x4 1230 0,5540 1543 0,0540 25,45%

BP033 Problema03_200x4 1193 0,2840 1504 0,0530 26,07%

BP034 Problema04_200x4 1094 0,3250 1397 0,0550 27,70%

BP035 Problema05_200x4 1031 0,6380 1279 0,0540 24,05%

Page 102: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

102

Código Problema Modelo Heurística

PDR PDR Medio Makespan Tiempo (Seg) Makespan Tiempo (Seg)

BP036 Problema01_200x6 599 2,4871 798 0,0750 33,22%

31,45%

BP037 Problema02_200x6 574 4,2843 754 0,0780 31,36%

BP038 Problema03_200x6 549 0,9471 746 0,0760 35,88%

BP039 Problema04_200x6 575 4,4203 757 0,0740 31,65%

BP040 Problema05_200x6 557 3,9292 697 0,0760 25,13%

BP041 Problema01_200x8 327 3,2142 425 0,1020 29,97%

35,44%

BP042 Problema02_200x8 352 15,2009 469 0,0990 33,24%

BP043 Problema03_200x8 334 1,4361 457 0,0990 36,83%

BP044 Problema04_200x8 356 1,2601 503 0,0990 41,29%

BP045 Problema05_200x8 343 2,1901 466 0,0990 35,86%

BP046 Problema01_200x10 201 14,4368 278 0,1230 38,31%

37,72%

BP047 Problema02_200x10 223 15,1279 314 0,1240 40,81%

BP048 Problema03_200x10 231 30,0027 300 0,1220 29,87%

BP049 Problema04_200x10 187 6,1924 263 0,1220 40,64%

BP050 Problema05_200x10 213 9,3585 296 0,1240 38,97%

BP051 Problema01_300x2 6512 0,0330 7336 0,0470 12,65%

12,77%

BP052 Problema02_300x2 5576 0,0250 6167 0,0470 10,60%

BP053 Problema03_300x2 7349 0,0510 8276 0,0480 12,61%

BP054 Problema04_300x2 6897 0,0680 7937 0,0470 15,08%

BP055 Problema05_300x2 7805 0,1010 8811 0,0470 12,89%

BP056 Problema01_300x4 1625 0,5370 2006 0,0870 23,45%

23,39%

BP057 Problema02_300x4 1767 0,3950 2171 0,0800 22,86%

BP058 Problema03_300x4 1774 1,3431 2205 0,0890 24,30%

BP059 Problema04_300x4 1753 0,5750 2146 0,0790 22,42%

BP060 Problema05_300x4 1731 0,5220 2145 0,0800 23,92%

BP061 Problema01_300x6 821 7,2754 1115 0,1120 35,81%

33,41%

BP062 Problema02_300x6 849 2,2441 1149 0,1170 35,34%

BP063 Problema03_300x6 818 2,3201 1100 0,1180 34,47%

BP064 Problema04_300x6 746 1,3421 910 0,1130 21,98%

BP065 Problema05_300x6 755 3,1942 1053 0,1130 39,47%

BP066 Problema01_300x8 461 65,5138 611 0,1470 32,54%

31,54%

BP067 Problema02_300x8 450 5,9813 569 0,1450 26,44%

BP068 Problema03_300x8 502 21,0112 639 0,1460 27,29%

BP069 Problema04_300x8 517 0,4220 700 0,1510 35,40%

BP070 Problema05_300x8 472 42,0324 642 0,1470 36,02%

BP071 Problema01_300x10 352 1693,9399 476 0,1910 35,23%

34,09%

BP072 Problema02_300x10 326 102,5529 451 0,2110 38,34%

BP073 Problema03_300x10 353 107,2001 467 0,1870 32,29%

BP074 Problema04_300x10 287 1,9431 387 0,1900 34,84%

BP075 Problema05_300x10 323 20,0492 419 0,1880 29,72%

Page 103: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

103

Código Problema Modelo Heurística

PDR PDR Medio Makespan Tiempo (Seg) Makespan Tiempo (Seg)

BP076 Problema01_400x2 8216 0,0810 9272 0,0660 12,85%

13,91%

BP077 Problema02_400x2 9566 0,0530 10875 0,0620 13,68%

BP078 Problema03_400x2 9991 0,0480 11423 0,0640 14,33%

BP079 Problema04_400x2 11016 0,0360 12295 0,0650 11,61%

BP080 Problema05_400x2 9262 0,0640 10845 0,2040 17,09%

BP081 Problema01_400x4 2247 1,8431 2896 0,3620 28,88%

25,75%

BP082 Problema02_400x4 2311 0,5540 2839 0,2250 22,85%

BP083 Problema03_400x4 2273 0,7460 2883 0,1300 26,84%

BP084 Problema04_400x4 2228 0,3330 2822 0,1180 26,66%

BP085 Problema05_400x4 2487 0,8811 3072 0,1340 23,52%

BP086 Problema01_400x6 1126 3,6962 1455 0,1890 29,22%

30,71%

BP087 Problema02_400x6 1072 0,3850 1335 0,1690 24,53%

BP088 Problema03_400x6 1080 2,5161 1478 0,1720 36,85%

BP089 Problema04_400x6 1119 1,1041 1520 0,1790 35,84%

BP090 Problema05_400x6 1154 4,5353 1467 0,1760 27,12%

BP091 Problema01_400x8 631 0,1890 886 0,2320 40,41%

36,01%

BP092 Problema02_400x8 650 149,5806 862 0,2160 32,62%

BP093 Problema03_400x8 653 210,8281 887 0,5310 35,83%

BP094 Problema04_400x8 643 52,5750 890 0,2160 38,41%

BP095 Problema05_400x8 659 128,0203 875 0,2260 32,78%

BP096 Problema01_400x10 454 235,0645 602 0,2640 32,60%

35,42%

BP097 Problema02_400x10 397 13,3308 543 0,2760 36,78%

BP098 Problema03_400x10 422 232,1793 575 0,2670 36,26%

BP099 Problema04_400x10 440 87,5640 593 0,2690 34,77%

BP100 Problema05_400x10 406 7,6594 555 0,4150 36,70%

BP101 Problema01_500x2 9306 0,0840 10451 0,0990 12,30%

14,18%

BP102 Problema02_500x2 12802 0,0400 14476 0,0940 13,08%

BP103 Problema03_500x2 12804 0,0660 14458 0,0940 12,92%

BP104 Problema04_500x2 11247 0,0490 13483 0,0910 19,88%

BP105 Problema05_500x2 11183 0,0410 12604 0,0910 12,71%

BP106 Problema01_500x4 2870 0,3650 3628 0,1470 26,41%

26,01%

BP107 Problema02_500x4 2971 0,7900 3707 0,1450 24,77%

BP108 Problema03_500x4 2893 1,1721 3722 0,1430 28,66%

BP109 Problema04_500x4 2771 0,8601 3549 0,1530 28,08%

BP110 Problema05_500x4 2857 1,2871 3489 0,1470 22,12%

BP111 Problema01_500x6 1302 13,5528 1694 0,2080 30,11%

31,39%

BP112 Problema02_500x6 1314 3,5062 1755 0,2050 33,56%

BP113 Problema03_500x6 1363 3,5852 1777 0,2050 30,37%

BP114 Problema04_500x6 1311 2,1131 1772 0,2140 35,16%

BP115 Problema05_500x6 1398 1,6481 1786 0,2040 27,75%

Page 104: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

104

Código Problema Modelo Heurística

PDR PDR Medio Makespan Tiempo (Seg) Makespan Tiempo (Seg)

BP116 Problema01_500x8 822 6,1194 1065 0,2750 29,56%

31,74%

BP117 Problema02_500x8 802 3,2002 1052 0,2660 31,17%

BP118 Problema03_500x8 851 3,0812 1123 0,2760 31,96%

BP119 Problema04_500x8 836 11,0416 1138 0,2840 36,12%

BP120 Problema05_500x8 837 29,1597 1087 0,2670 29,87%

BP121 Problema01_500x10 567 78,5405 754 0,3470 32,98%

37,46%

BP122 Problema02_500x10 525 10328,0057 741 0,3380 41,14%

BP123 Problema03_500x10 478 66,3858 661 0,3350 38,28%

BP124 Problema04_500x10 531 1076,3206 734 0,3840 38,23%

BP125 Problema05_500x10 537 114,5506 734 0,3980 36,69%

BP126 Problema01_600x2 16898 0,0450 20307 0,1230 20,17%

16,64%

BP127 Problema02_600x2 14574 0,0540 17008 0,1110 16,70%

BP128 Problema03_600x2 14690 0,0950 16461 0,1050 12,06%

BP129 Problema04_600x2 11944 0,0530 14054 0,1060 17,67%

BP130 Problema05_600x2 13863 0,0770 16167 0,1080 16,62%

BP131 Problema01_600x4 3407 1,0011 4276 0,1830 25,51%

24,64%

BP132 Problema02_600x4 3394 1,3151 4255 0,1770 25,37%

BP133 Problema03_600x4 3437 1,0381 4213 0,1780 22,58%

BP134 Problema04_600x4 3473 0,8201 4371 0,1760 25,86%

BP135 Problema05_600x4 3357 0,6390 4159 0,1790 23,89%

BP136 Problema01_600x6 1641 21,4782 2158 0,2470 31,51%

30,11%

BP137 Problema02_600x6 1603 23,8374 2098 0,2430 30,88%

BP138 Problema03_600x6 1623 2,3571 2040 0,2460 25,69%

BP139 Problema04_600x6 1689 4,9833 2200 0,2470 30,25%

BP140 Problema05_600x6 1651 20,3232 2183 0,2430 32,22%

BP141 Problema01_600x8 970 1,4111 1333 0,3160 37,42%

33,76%

BP142 Problema02_600x8 1052 80,9076 1412 0,3220 34,22%

BP143 Problema03_600x8 979 10,6536 1292 0,3130 31,97%

BP144 Problema04_600x8 949 5,9813 1271 0,3300 33,93%

BP145 Problema05_600x8 957 18,6371 1256 0,3210 31,24%

BP146 Problema01_600x10 671 311,5318 867 0,3940 29,21%

33,18%

BP147 Problema02_600x10 622 306,7195 829 0,3940 33,28%

BP148 Problema03_600x10 664 55,4152 887 0,3920 33,58%

BP149 Problema04_600x10 632 72,6782 860 0,4000 36,08%

BP150 Problema05_600x10 590 50,6199 789 0,4040 33,73%

BP151 Problema01_700x2 15231 0,0580 17791 0,1200 16,81%

15,13%

BP152 Problema02_700x2 18097 0,0570 20588 0,1230 13,76%

BP153 Problema03_700x2 14919 0,1030 16938 0,1220 13,53%

BP154 Problema04_700x2 15427 0,0840 17697 0,1180 14,71%

BP155 Problema05_700x2 16680 0,0990 19487 0,1260 16,83%

Page 105: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

105

Código Problema Modelo Heurística

PDR PDR Medio Makespan Tiempo (Seg) Makespan Tiempo (Seg)

BP156 Problema01_700x4 4017 0,5320 5034 0,2060 25,32%

25,96%

BP157 Problema02_700x4 3827 0,4470 4883 0,2050 27,59%

BP158 Problema03_700x4 4131 1,8391 5214 0,2770 26,22%

BP159 Problema04_700x4 3664 1,4671 4613 0,2800 25,90%

BP160 Problema05_700x4 4007 0,7480 5000 0,2400 24,78%

BP161 Problema01_700x6 1881 1,2911 2462 0,4440 30,89%

30,73%

BP162 Problema02_700x6 1864 0,2990 2460 0,4310 31,97%

BP163 Problema03_700x6 2007 0,2110 2575 0,3550 28,30%

BP164 Problema04_700x6 2013 1,4921 2679 0,3560 33,08%

BP165 Problema05_700x6 1929 9,5406 2496 0,3950 29,39%

BP166 Problema01_700x8 1198 30,8448 1559 0,4560 30,13%

31,52%

BP167 Problema02_700x8 1144 38,0032 1508 0,5290 31,82%

BP168 Problema03_700x8 1104 49,2868 1423 0,3960 28,89%

BP169 Problema04_700x8 1131 6,6464 1500 0,3880 32,63%

BP170 Problema05_700x8 1119 1,0101 1501 0,3820 34,14%

BP171 Problema01_700x10 732 291,1317 995 0,4800 35,93%

34,16%

BP172 Problema02_700x10 779 132,5996 1035 0,4790 32,86%

BP173 Problema03_700x10 776 1264,9994 1023 0,4810 31,83%

BP174 Problema04_700x10 723 206,3388 1003 0,4650 38,73%

BP175 Problema05_700x10 734 109,6903 965 0,4700 31,47%

BP176 Problema01_800x2 17958 0,0810 20627 0,1420 14,86%

14,26%

BP177 Problema02_800x2 19903 0,0560 22993 0,1380 15,53%

BP178 Problema03_800x2 16526 0,0950 18751 0,1400 13,46%

BP179 Problema04_800x2 19352 0,0560 21991 0,1530 13,64%

BP180 Problema05_800x2 19595 0,0610 22303 0,1370 13,82%

BP181 Problema01_800x4 4543 0,2810 5802 0,2390 27,71%

25,41%

BP182 Problema02_800x4 4640 1,1731 5796 0,2320 24,91%

BP183 Problema03_800x4 4784 0,8161 5951 0,2390 24,39%

BP184 Problema04_800x4 4529 0,9561 5551 0,2300 22,57%

BP185 Problema05_800x4 4597 1,3231 5859 0,2470 27,45%

BP186 Problema01_800x6 2143 2,5902 2800 0,3190 30,66%

30,05%

BP187 Problema02_800x6 2294 0,5820 2955 0,3420 28,81%

BP188 Problema03_800x6 2132 0,2370 2774 0,3410 30,11%

BP189 Problema04_800x6 2244 2,6242 2908 0,3230 29,59%

BP190 Problema05_800x6 2117 0,5550 2775 0,3370 31,08%

BP191 Problema01_800x8 1252 0,4800 1660 0,4380 32,59%

32,17%

BP192 Problema02_800x8 1349 39,0022 1759 0,4300 30,39%

BP193 Problema03_800x8 1273 45,9376 1652 0,4390 29,77%

BP194 Problema04_800x8 1277 3,2952 1735 0,4260 35,87%

BP195 Problema05_800x8 1299 0,6270 1718 0,4320 32,26%

Page 106: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

106

Código Problema Modelo Heurística

PDR PDR Medio Makespan Tiempo (Seg) Makespan Tiempo (Seg)

BP196 Problema01_800x10 826 6,8534 1114 0,5390 34,87%

33,96%

BP197 Problema02_800x10 817 4,0212 1096 0,5480 34,15%

BP198 Problema03_800x10 911 74,5693 1185 0,5380 30,08%

BP199 Problema04_800x10 874 18,8661 1191 0,5480 36,27%

BP200 Problema05_800x10 897 192,1940 1206 0,5370 34,45%

BP201 Problema01_900x2 20017 0,0640 22981 0,1520 14,81%

15,88%

BP202 Problema02_900x2 19198 0,1030 21887 0,1660 14,01%

BP203 Problema03_900x2 26226 0,0940 30220 0,1610 15,23%

BP204 Problema04_900x2 18091 0,0710 21567 0,1510 19,21%

BP205 Problema05_900x2 20904 0,0660 24281 0,1660 16,15%

BP206 Problema01_900x4 5260 4,0352 6561 0,2610 24,73%

23,67%

BP207 Problema02_900x4 5119 0,6300 6331 0,2720 23,68%

BP208 Problema03_900x4 5148 1,8121 6433 0,2620 24,96%

BP209 Problema04_900x4 5131 1,0291 6226 0,2750 21,34%

BP210 Problema05_900x4 5218 1,6691 6452 0,2720 23,65%

BP211 Problema01_900x6 2395 0,2050 3066 0,3660 28,02%

28,52%

BP212 Problema02_900x6 2375 3,3662 3024 0,3770 27,33%

BP213 Problema03_900x6 2371 3,6622 3063 0,3920 29,19%

BP214 Problema04_900x6 2486 0,2580 3202 0,3850 28,80%

BP215 Problema05_900x6 2400 62,9136 3103 0,3690 29,29%

BP216 Problema01_900x8 1488 591,3878 1981 0,4880 33,13%

31,97%

BP217 Problema02_900x8 1443 160,1652 1842 0,4940 27,65%

BP218 Problema03_900x8 1457 59,9784 1933 0,4940 32,67%

BP219 Problema04_900x8 1430 117,0887 1879 0,4840 31,40%

BP220 Problema05_900x8 1446 47,9757 1952 0,4880 34,99%

BP221 Problema01_900x10 951 1337,0625 1261 0,6230 32,60%

32,54%

BP222 Problema02_900x10 952 1,1931 1235 0,6030 29,73%

BP223 Problema03_900x10 927 24,0194 1227 0,6050 32,36%

BP224 Problema04_900x10 956 50,0129 1298 0,6060 35,77%

BP225 Problema05_900x10 930 29,9857 1230 0,5930 32,26%

BP226 Problema01_1000x2 22979 0,1040 26564 0,1710 15,60%

14,65%

BP227 Problema02_1000x2 21685 0,0880 24559 0,1720 13,25%

BP228 Problema03_1000x2 22863 0,1260 26386 0,1880 15,41%

BP229 Problema04_1000x2 23762 0,0720 27559 0,1680 15,98%

BP230 Problema05_1000x2 22755 0,0870 25720 0,1700 13,03%

BP231 Problema01_1000x4 5702 0,7670 6986 0,3010 22,52%

24,55%

BP232 Problema02_1000x4 5840 1,7831 7436 0,3050 27,33%

BP233 Problema03_1000x4 5838 1,0091 7319 0,2860 25,37%

BP234 Problema04_1000x4 5577 1,6461 6970 0,3030 24,98%

BP235 Problema05_1000x4 5822 1,1231 7134 0,2990 22,54%

Page 107: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

107

Código Problema Modelo Heurística

PDR PDR Medio Makespan Tiempo (Seg) Makespan Tiempo (Seg)

BP236 Problema01_1000x6 2651 0,2230 3453 0,4030 30,25%

30,32%

BP237 Problema02_1000x6 2771 4,2612 3678 0,4260 32,73%

BP238 Problema03_1000x6 2764 1,8431 3556 0,4310 28,65%

BP239 Problema04_1000x6 2744 0,2150 3645 0,4240 32,84%

BP240 Problema05_1000x6 2789 84,1058 3546 0,4200 27,14%

BP241 Problema01_1000x8 1626 20,6902 2176 0,5490 33,83%

30,72%

BP242 Problema02_1000x8 1621 49,3998 2095 0,5410 29,24%

BP243 Problema03_1000x8 1531 62,9456 1979 0,5360 29,26%

BP244 Problema04_1000x8 1640 58,3603 2150 0,5470 31,10%

BP245 Problema05_1000x8 1620 40,6883 2109 0,5570 30,19%

BP246 Problema01_1000x10 1076 65,9588 1460 0,6610 35,69%

32,86%

BP247 Problema02_1000x10 1028 3020,9978 1365 0,6790 32,78%

BP248 Problema03_1000x10 968 143,4652 1279 0,6670 32,13%

BP249 Problema04_1000x10 1091 66,2458 1448 0,6640 32,72%

BP250 Problema05_1000x10 1091 1034,3902 1429 0,6680 30,98%

Tabla 17. Resultados de la Heurística. Batería Pequeña

Batería Grande:

Código Problema Modelo Heurística

PDR PDR Medio Makespan Tiempo (Seg) Makespan Tiempo (seg)

BG001 Problema01_100x20 37 0,4820 48 0,2360 29,73%

46,91%

BG002 Problema02_100x20 32 1,1751 49 0,1590 53,13%

BG003 Problema03_100x20 35 0,6650 56 0,1270 60,00%

BG004 Problema04_100x20 39 14,1028 61 0,1280 56,41%

BG005 Problema05_100x20 34 1,7001 46 0,1280 35,29%

BG006 Problema01_100x30 26 0,1230 32 0,1890 23,08%

33,79%

BG007 Problema02_100x30 19 0,4500 27 0,3700 42,11%

BG008 Problema03_100x30 22 0,6550 32 0,1910 45,45%

BG009 Problema04_100x30 20 0,2340 25 0,1910 25,00%

BG010 Problema05_100x30 18 0,9881 24 0,1890 33,33%

BG011 Problema01_100x40 11 0,1730 18 0,2550 63,64%

53,85%

BG012 Problema02_100x40 13 0,1850 24 0,2510 84,62%

BG013 Problema03_100x40 11 0,6350 15 0,2530 36,36%

BG014 Problema04_100x40 13 0,1830 21 0,2510 61,54%

BG015 Problema05_100x40 13 0,1710 16 0,2570 23,08%

BG016 Problema01_100x50 13 0,2290 17 0,3180 30,77%

37,96%

BG017 Problema02_100x50 13 0,2340 19 0,3160 46,15%

BG018 Problema03_100x50 12 0,2300 15 0,3210 25,00%

BG019 Problema04_100x50 12 0,2160 16 0,3140 33,33%

BG020 Problema05_100x50 11 0,2230 17 0,3230 54,55%

Page 108: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

108

Código Problema Modelo Heurística

PDR PDR Medio Makespan Tiempo (Seg) Makespan Tiempo (Seg)

BG021 Problema01_100x100 6 0,4070 8 0,6280 33,33%

32,67%

BG022 Problema02_100x100 5 0,4180 6 0,6240 20,00%

BG023 Problema03_100x100 4 0,4000 6 0,6190 50,00%

BG024 Problema04_100x100 5 0,4600 7 0,6280 40,00%

BG025 Problema05_100x100 5 0,4200 6 0,6400 20,00%

BG026 Problema01_100x200 3 0,9021 3 1,2670 0,00%

10,00%

BG027 Problema02_100x200 4 0,9601 4 1,2520 0,00%

BG028 Problema03_100x200 4 0,9441 4 1,2530 0,00%

BG029 Problema04_100x200 3 0,9611 3 1,2500 0,00%

BG030 Problema05_100x200 2 0,9761 3 1,2800 50,00%

BG031 Problema01_200x20 62 3,1672 99 0,2530 59,68%

45,44%

BG032 Problema02_200x20 65 37,2411 95 0,2500 46,15%

BG033 Problema03_200x20 65 31,7318 85 0,2570 30,77%

BG034 Problema04_200x20 64 736,7641 91 0,2540 42,19%

BG035 Problema05_200x20 62 48,5738 92 0,2520 48,39%

BG036 Problema01_200x30 28 2,4931 43 0,3810 53,57%

52,09%

BG037 Problema02_200x30 29 158,0990 45 0,3760 55,17%

BG038 Problema03_200x30 29 0,6980 48 0,3740 65,52%

BG039 Problema04_200x30 29 2761,3269 42 0,3740 44,83%

BG040 Problema05_200x30 29 160,7952 41 0,3730 41,38%

BG041 Problema01_200x40 17 0,7690 26 0,4970 52,94%

56,87%

BG042 Problema02_200x40 21 67,1138 35 0,4980 66,67%

BG043 Problema03_200x40 19 7,0754 28 0,5020 47,37%

BG044 Problema04_200x40 19 85,9009 28 0,5020 47,37%

BG045 Problema05_200x40 20 2,0821 34 0,5040 70,00%

BG046 Problema01_200x50 17 0,4030 24 0,6370 41,18%

60,84%

BG047 Problema02_200x50 13 1,5271 20 0,6390 53,85%

BG048 Problema03_200x50 12 5,8243 22 0,6280 83,33%

BG049 Problema04_200x50 14 5,4043 23 0,6280 64,29%

BG050 Problema05_200x50 13 1,1221 21 0,6380 61,54%

BG051 Problema01_200x100 12 0,8581 12 1,2620 0,00%

40,89%

BG052 Problema02_200x100 9 0,8491 12 1,2480 33,33%

BG053 Problema03_200x100 5 0,9631 9 1,2390 80,00%

BG054 Problema04_200x100 5 0,8771 9 1,2440 80,00%

BG055 Problema05_200x100 9 0,8701 10 1,2340 11,11%

BG056 Problema01_200x200 5 2,5822 7 2,5080 40,00%

29,67%

BG057 Problema02_200x200 4 2,3511 5 2,4780 25,00%

BG058 Problema03_200x200 3 2,3481 4 2,5230 33,33%

BG059 Problema04_200x200 4 2,3961 5 2,4730 25,00%

BG060 Problema05_200x200 4 2,7262 5 2,6120 25,00%

Page 109: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

109

Código Problema Modelo Heurística

PDR PDR Medio Makespan Tiempo (Seg) Makespan Tiempo (Seg)

BG061 Problema01_300x20 90 19,8101 128 0,4250 42,22%

41,57%

BG062 Problema02_300x20 86 34920,8084 124 0,4710 44,19%

BG063 Problema03_300x20 87 1084,2100 117 0,4020 34,48%

BG064 Problema04_300x20 88 2613,8115 122 0,3860 38,64%

BG065 Problema05_300x20 89 7318,3606 132 0,4120 48,31%

BG066 Problema01_300x30 45 5,7073 66 0,6180 46,67%

47,68%

BG067 Problema02_300x30 43 9929,3499 65 0,5750 51,16%

BG068 Problema03_300x30 45 158,8651 66 0,5710 46,67%

BG069 Problema04_300x30 42 0,4170 60 0,5690 42,86%

BG070 Problema05_300x30 47 6454,5932 71 0,5660 51,06%

BG071 Problema01_300x40 27 9,7296 43 0,7580 59,26%

55,52%

BG072 Problema02_300x40 28 13403,6436 40 0,7500 42,86%

BG073 Problema03_300x40 26 0,9711 50 0,7430 92,31%

BG074 Problema04_300x40 27 987,5864 37 0,7420 37,04%

BG075 Problema05_300x40 26 902,7579 38 0,7530 46,15%

BG076 Problema01_300x50 20 1172,9815 29 0,9350 45,00%

55,87%

BG077 Problema02_300x50 18 15795,2462 27 0,9480 50,00%

BG078 Problema03_300x50 17 18819,3583 29 0,9600 70,59%

BG079 Problema04_300x50 20 13874,4558 29 0,9360 45,00%

BG080 Problema05_300x50 16 105778,3378 27 0,9530 68,75%

BG081 Problema01_300x100 - - 13 1,8730 -

-

BG082 Problema02_300x100 - - 9 1,8630 -

BG083 Problema03_300x100 - - 11 1,8730 -

BG084 Problema04_300x100 - - 9 1,8730 -

BG085 Problema05_300x100 - - 12 1,8600 -

BG086 Problema01_300x200 - - 5 3,7310 -

-

BG087 Problema02_300x200 - - 6 3,7190 -

BG088 Problema03_300x200 - - 4 3,7080 -

BG089 Problema04_300x200 - - 5 3,7020 -

BG090 Problema05_300x200 - - 5 3,9000 -

BG091 Problema01_400x20 95 1473,5564 183 0,5080 92,63%

90,34%

BG092 Problema02_400x20 94 1135,9431 179 0,5030 90,43%

BG093 Problema03_400x20 94 1730,0046 177 0,5130 88,30%

BG094 Problema04_400x20 97 1197,6661 180 0,5090 85,57%

BG095 Problema05_400x20 96 1975,4006 187 0,5070 94,79%

BG096 Problema01_400x30 53 5,7073 82 0,7430 54,72%

60,63%

BG097 Problema02_400x30 51 9929,3499 88 0,7570 72,55%

BG098 Problema03_400x30 53 158,8651 81 0,7690 52,83%

BG099 Problema04_400x30 52 0,4170 86 0,7500 65,38%

BG100 Problema05_400x30 52 6454,5932 82 0,7480 57,69%

Page 110: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

110

Código Problema Modelo Heurística

PDR PDR Medio Makespan Tiempo (Seg) Makespan Tiempo (Seg)

BG101 Problema01_400x40 32 9,7296 58 0,9840 81,25%

63,28%

BG102 Problema02_400x40 31 13403,6436 48 1,0000 54,84%

BG103 Problema03_400x40 33 18752,2247 58 0,9920 75,76%

BG104 Problema04_400x40 32 158432,7454 51 0,9990 59,38%

BG105 Problema05_400x40 31 11478,1123 45 1,0180 45,16%

BG106 Problema01_400x50 - - 39 1,2480 -

-

BG107 Problema02_400x50 - - 34 1,2640 -

BG108 Problema03_400x50 - - 35 1,2460 -

BG109 Problema04_400x50 - - 37 1,2430 -

BG110 Problema05_400x50 - - 37 1,2920 -

BG111 Problema01_400x100 - - 15 2,5680 -

-

BG112 Problema02_400x100 - - 13 2,5240 -

BG113 Problema03_400x100 - - 13 2,4860 -

BG114 Problema04_400x100 - - 14 2,4990 -

BG115 Problema05_400x100 - - 13 2,5320 -

BG116 Problema01_400x200 - - 6 5,0830 -

-

BG117 Problema02_400x200 - - 6 4,9660 -

BG118 Problema03_400x200 - - 6 4,9580 -

BG119 Problema04_400x200 - - 6 4,8090 -

BG120 Problema05_400x200 - - 5 4,8990 -

BG121 Problema01_500x20 102 5748,2514 215 0,6140 110,78%

106,89%

BG122 Problema02_500x20 98 34920,8084 208 0,6250 112,24%

BG123 Problema03_500x20 101 1084,2100 203 0,6240 100,99%

BG124 Problema04_500x20 106 2613,8115 204 0,6190 92,45%

BG125 Problema05_500x20 100 7318,3606 218 0,6190 118,00%

BG126 Problema01_500x30 63 51278,2500 107 0,9210 69,84%

72,81%

BG127 Problema02_500x30 62 20621,0265 102 0,9240 64,52%

BG128 Problema03_500x30 57 47841,0000 106 0,9230 85,96%

BG129 Problema04_500x30 58 10896,5547 103 0,9420 77,59%

BG130 Problema05_500x30 65 12445,9954 108 0,9380 66,15%

BG131 Problema01_500x40 - - 64 1,2230 -

-

BG132 Problema02_500x40 - - 60 1,2110 -

BG133 Problema03_500x40 - - 70 1,2100 -

BG134 Problema04_500x40 - - 64 1,2180 -

BG135 Problema05_500x40 - - 64 1,2110 -

BG136 Problema01_500x50 - - 46 1,5410 -

-

BG137 Problema02_500x50 - - 46 1,5370 -

BG138 Problema03_500x50 - - 43 1,5560 -

BG139 Problema04_500x50 - - 49 1,5410 -

BG140 Problema05_500x50 - - 47 1,5560 -

Page 111: Trabajo Fin de Grado Grado en Ingeniería de Organización Industrialbibing.us.es/.../90590/fichero/Trabajo+Fin+de+Grado.pdf · Tiempos medios para los valores de n para el modelo

111

Código Problema Modelo Heurística

PDR PDR Medio Makespan Tiempo (Seg) Makespan Tiempo (Seg)

BG141 Problema01_500x100 - - 14 4,5090 -

-

BG142 Problema02_500x100 - - 15 5,3670 -

BG143 Problema03_500x100 - - 15 13,2000 -

BG144 Problema04_500x100 - - 14 6,6640 -

BG145 Problema05_500x100 - - 16 12,8400 -

BG146 Problema01_500x200 - - 6 7,5680 -

-

BG147 Problema02_500x200 - - 6 7,3740 -

BG148 Problema03_500x200 - - 7 6,6700 -

BG149 Problema04_500x200 - - 6 6,6850 -

BG150 Problema05_500x200 - - 6 6,6120 -

Tabla 18. Resultados de la Heurística. Batería Grande


Recommended