trabajo fin de grado - servidor de la biblioteca de...

74
1 Trabajo Fin de Grado Grado en Ingeniería de Tecnologías Industriales MODELOS DE PROGRAMACIÓN LINEAL PARA DOS PROBLEMAS DE SECUENCIACIÓN CON VARIOS CONJUNTOS DE TRABAJOS Autor: Lucía Soriano Palomo Tutor: Paz Pérez González Dep. de Organización Industrial y G.E.I. Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2014

Upload: vukhuong

Post on 29-Sep-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Trabajo Fin de Grado - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/90100/fichero/TFG-LUCIA+SORIANO... · Esta minimización conduce a un uso estable de los recursos,

1

Trabajo Fin de Grado

Grado en Ingeniería de Tecnologías Industriales

MODELOS DE PROGRAMACIÓN LINEAL

PARA DOS PROBLEMAS DE SECUENCIACIÓN

CON VARIOS CONJUNTOS DE TRABAJOS

Autor: Lucía Soriano Palomo

Tutor: Paz Pérez González

Dep. de Organización Industrial y G.E.I.

Escuela Técnica Superior de Ingeniería

Universidad de Sevilla

Sevilla, 2014

Page 2: Trabajo Fin de Grado - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/90100/fichero/TFG-LUCIA+SORIANO... · Esta minimización conduce a un uso estable de los recursos,

2

MODELOS DE PROGRAMACIÓN LINEAL PARA DOS

PROBLEMAS DE SECUENCIACIÓN CON VARIOS

CONJUNTOS DE TRABAJOS

AUTOR: LUCÍA SORIANO PALOMO

TUTOR: PAZ PÉREZ GONZÁLEZ

UNIVERSIDAD DE SEVILLA

ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA

Page 3: Trabajo Fin de Grado - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/90100/fichero/TFG-LUCIA+SORIANO... · Esta minimización conduce a un uso estable de los recursos,

3

Page 4: Trabajo Fin de Grado - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/90100/fichero/TFG-LUCIA+SORIANO... · Esta minimización conduce a un uso estable de los recursos,

4

CONTENIDO

Pag.

LISTA DE FIGURAS 6

LISTA DE TABLAS 7

INTRODUCIÓN 10

1 SECUENCIACIÓN 15

1.1 ENTORNOS 16

1.2 RESTRICCIONES DE PROCESAMIENTOS 17

1.3 OBJETIVOS 18

1.4 MÉTODOS DE RESOLUCIÓN 19

2 SECUENCIACIÓN CON VARIOS CONJUNTOS 22

3 PROBLEMA DE SECUENCIACIÓN CON DOS CONJUNTOS DE

TRABAJOS EN MÁQUINAS PARALELAS Y OBJETIVO MAKESPAN 26

3.1 DESCRIPCIÓN 26

3.2 PROBLEMAS RELACIONADOS 27

3.3 EJEMPLOS NUMÉRICOS 31

3.4 MODELO DE PROGRAMACIÓN LINEAL 37

4 PROBLEMA DE SECUENCIACIÓN CON DOS CONJUNTOS DE

TRABAJOS EN FLOW SHOP DE PERMUTACIÓN Y OBJETIVO TIEMPO

TOTAL DE FINALIZACIÓN 41

Page 5: Trabajo Fin de Grado - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/90100/fichero/TFG-LUCIA+SORIANO... · Esta minimización conduce a un uso estable de los recursos,

5

4.1 DESCRIPCIÓN 41

4.2 EJEMPLOS NUMÉRICOS 42

4.3 MODELO DE PROGRAMACIÓN LINEAL 51

4.4 EXPERIMENTOS 52

4.4.1 Batería de problemas y cálculo de épsilon 54

4.4.2 Resultados 55

5 CONCLUSIONES 63

6 ANEXOS 66

6.1 BATERIA DE PROBLEMAS 66

6.2 CÁLCULO ÉPSILON 66

6.3 MODELO MATEMÁTICO EN MATLAB 67

BIBLIOGRAFIA 73

Page 6: Trabajo Fin de Grado - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/90100/fichero/TFG-LUCIA+SORIANO... · Esta minimización conduce a un uso estable de los recursos,

6

LISTA DE FIGURAS

ILUSTRACIÓN 1: SECUENCIA FACTIBLE PARA EN EL EJEMPLO DEL PROBLEMA

.........................................................................................................................30

ILUSTRACIÓN 2: SECUENCIA FACTIBLE PARA PARA EL EJEMPLO DEL PROBLEMA

.........................................................................................................................30

ILUSTRACIÓN 3: REPRESENTACIÓN DE LA PRIMERA ASIGNACIÓN PARA EL PROBLEMA

.....................................................................................................................33

ILUSTRACIÓN 4: REPRESENTACIÓN DE LA TERCERA ASIGNACIÓN PARA EL PROBLEMA

.....................................................................................................................34

ILUSTRACIÓN 5: PRIMERA SECUENCIA ADMISIBLE PARA ÉPSILON MÍNIMO EN EL

PROBLEMA ......................................................................................................44

ILUSTRACIÓN 6: SECUENCIA ADMISIBLE PARA ENCONTRAR ÉPSILON MÍNIMO EN EL

PROBLEMA ......................................................................................................44

ILUSTRACIÓN 7: SECUENCIA ADMISIBLE PARA ENCONTRAR ÉPSILON MÁXIMO EN EL

PROBLEMA ......................................................................................................45

ILUSTRACIÓN 8: SECUENCIA ADMISIBLE PARA ENCONTRAR ÉPSILON MÁXIMO EN EL

PROBLEMA ......................................................................................................46

ILUSTRACIÓN 9: SECUENCIA ADMISIBLE PARA ENCONTRAR ÉPSILON MÁXIMO EN EL

PROBLEMA ......................................................................................................46

ILUSTRACIÓN 10: SECUENCIA ADMISIBLE PARA ENCONTRAR ÉPSILON MÁXIMO EN EL

PROBLEMA ......................................................................................................47

ILUSTRACIÓN 11: SOLUCIÓN ÓPTIMA PARA ÉPSILON=11 EN EL PROBLEMA

..........................................................................................................................................................50

ILUSTRACIÓN 12: TIEMPOS MEDIOS DE RESOLUCIÓN PARA EL PROBLEMA

PARA LOS DISTINTOS TAMAÑOS ......................................61

Page 7: Trabajo Fin de Grado - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/90100/fichero/TFG-LUCIA+SORIANO... · Esta minimización conduce a un uso estable de los recursos,

7

LISTA DE TABLAS

TABLA 1: TIEMPOS DE PROCESO DEL CONJUNTO B PARA EL EJEMPLO DEL PROBLEMA

29

TABLA 2: TIEMPOS DE PROCESO DEL CONJUNTO A PARA EL EJEMPLO DEL PROBLEMA

29

TABLA 3: TIEMPOS DE PROCESO DEL CONJUNTO A PARA EL EJEMPLO

31

TABLA 4: TIEMPOS DE PROCESO DEL CONJUNTO B PARA EL EJEMPLO

31

TABLA 5: SECUENCIAS POSIBLES ASIGNANDO PRIMERO LOS TRABAJOS DEL CONJUNTO

B PARA EL PROBLEMA 32

TABLA 6: SECUENCIAS POSIBLES ASIGNANDO PRIMERO LOS TRABAJOS DEL CONJUNTO

A PARA EL PROBLEMA 33

TABLA 7: SECUENCIAS ADMISIBLES PARA ÉPSILON=4 PARA EL PROBLEMA

34

TABLA 8: SECUENCIAS ADMISIBLES PARA =5 PARA EL PROBLEMA

35

TABLA 9: SECUENCIAS ADMISIBLES PARA =6 PARA EL PROBLEMA

36

TABLA 10: SECUENCIAS ADMISIBLES PARA =7 PARA EL PROBLEMA

36

TABLA 11: TIEMPOS DE PROCESO DE DOS CONJUNTOS DE TRABAJOS EN EL PROBLEMA

43

TABLA 12: SOLUCIONES ADMISIBLES PARA LOS DISTINTOS VALORES DE ÉPSILON EN EL

PROBLEMA 49

TABLA 13: SOLUCIONES ADMISIBLES PARA LOS DISTINTOS VALORES DE ÉPSILON EN EL

PROBLEMA 49

TABLA 14: RESULTADOS PARA 56

TABLA 15: RESULTADOS PARA 56

Page 8: Trabajo Fin de Grado - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/90100/fichero/TFG-LUCIA+SORIANO... · Esta minimización conduce a un uso estable de los recursos,

8

TABLA 16: RESULTADOS PARA 57

TABLA 17: RESULTADOS PARA 58

TABLA 18: RESULTADOS PARA 58

TABLA 19: RESULTADOS PARA 59

TABLA 20: TIEMPOS QUE TARDA GUROBI EN RESOLVER EL PROBLEMA

PARA 60

Page 9: Trabajo Fin de Grado - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/90100/fichero/TFG-LUCIA+SORIANO... · Esta minimización conduce a un uso estable de los recursos,

9

Page 10: Trabajo Fin de Grado - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/90100/fichero/TFG-LUCIA+SORIANO... · Esta minimización conduce a un uso estable de los recursos,

10

INTRODUCIÓN

La secuenciación, conocida como scheduling, se define como la asignación de

recursos a tareas durante periodos de tiempo determinados, con objeto de

optimizar una determinada medida de comportamiento [Pinedo, 2012]. Los

recursos y las tareas pueden presentarse de diferentes formas. Los recursos

pueden ser máquinas en un taller, puertas de embarque en un aeropuerto o aulas

en centros de enseñanza, entre otros. Las tareas a las que podemos asociar

dichos recursos son por ejemplo, operaciones en un proceso de producción,

vuelos de llegada o de salida o grupos de alumnos. Los objetivos a optimizar,

pueden ser muy diferentes también: minimizar la suma de los tiempos de

finalización de los trabajos, minimizar el tiempo total en que están desocupadas

las máquinas o minimizar la suma de retrasos, son algunos ejemplos. La

secuenciación es por tanto un proceso de toma de decisiones que existe tanto en

entornos de producción como en entornos de servicios logísticos [Cortés et al.,

2010].

Los resultados de la teoría de programación de una sola máquina se pueden

aplicar al estudio de sistemas de múltiples máquinas, pero a pesar de esta

simplificación en absoluto es un problema fácil. En la programación en varias

máquinas añadimos un nivel adicional de complejidad debido a la asignación de

máquinas. Así, la complejidad del problema de programación en varias máquinas

se infla, a menudo de manera exponencial. Como resultado, de la complejidad, es

la aparición del concepto NP. La tendencia en la investigación es por lo tanto o

encontrar un algoritmo polinómico para un problema tratable, o mostrar que el

problema es intratable y buscar un algoritmo de aproximación [Cheng et al., 1990].

En un problema de programación nos podemos encontrar con distintos entornos

de máquinas. En una primera clasificación se distinguen los sistemas con

máquinas en serie y los sistemas con máquinas en paralelo.

Page 11: Trabajo Fin de Grado - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/90100/fichero/TFG-LUCIA+SORIANO... · Esta minimización conduce a un uso estable de los recursos,

11

En entornos con máquinas en paralelo, una determinada operación sobre un

trabajo puede ser procesada sobre una máquina cualquiera de entre un conjunto

de máquinas. [Lee et al., 2005] Pinedo señaló que un entorno de máquinas en

paralelo es una situación que es importante tanto desde un punto de vista teórico,

ya que es una generalización de la máquina individual, como desde un punto de

vista práctico, debido a la ocurrencia de los recursos en paralelo en el mundo real.

Cuando se trata con máquinas en paralelo, minimizar el makespan, el tiempo de

finalización de todos los trabajos (longitud de la programación), se convierte en un

objetivo de considerable interés. La programación en máquinas en paralelo se

puede ver en dos pasos:

En un primer paso, determinar qué trabajos van a ser asignados a qué

máquinas

En segundo lugar, hay que determinar la secuencia de los trabajos

asignados a cada máquina.

Si el objetivo es minimizar el makespan, sólo es importante el proceso de

asignación, ya que minimizar el makespan, conlleva equilibrar la carga de las

máquinas. Este problema es NP-hard, y durante el último par de décadas se han

desarrollado muchas heurísticas para resolverlo considerando un conjunto de

trabajos.

En entornos en máquinas en serie, cada máquina realiza una operación diferente

del conjunto de operaciones a las que se someten los trabajos. Entre las distintas

configuraciones de máquinas en serie, los sistemas de flujo uniforme o flow-shop

como son conocidos, han sido unos de los temas más investigados en la historia

de la secuenciación [Framinan et al., 2003]. Este problema implica la

determinación del orden de los trabajos sobre las máquinas para cumplir con un

objetivo deseado. Además para muchas situaciones [J.M. Framinan et al., 2005],

se supone que este orden es el mismo en cada máquina (permutation flow-shop).

Entre los objetivos a tener en cuenta al programar en flow-shop, los más comunes

que se encuentran en la literatura sobre secuenciación son minimizar el makespan

o la suma de los tiempos de finalización [Framinan et al., 2005]. Aunque en las

Page 12: Trabajo Fin de Grado - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/90100/fichero/TFG-LUCIA+SORIANO... · Esta minimización conduce a un uso estable de los recursos,

12

últimas décadas la mayoría de la investigación se centra en el makespan, más

recientemente se ha incrementado el estudio de la minimización de la suma de los

tiempos de finalización o completion time. Esta minimización conduce a un uso

estable de los recursos, un rápido paso de los trabajos de máquina a máquina y

por lo tanto la reducción del mínimo inventario en proceso.

En secuenciación existe la posibilidad de encontrarse con varios objetivos [Pérez-

González et al., 2014]. Por lo tanto, los problemas multicriterio han sido

ampliamente estudiados en la literatura de programación de operaciones. En la

literatura clásica de secuenciación multicriterio, lo usual es considerar que los

criterios considerados afectan a todos los trabajos. Pero también es posible tener

situaciones en las que los trabajos pertenecen a clases o conjuntos distintos y con

criterios asociados a cada conjunto [Balasubramanian et al., 2009]. Este tipo de

problemas surgen en un número grande de aplicaciones de la vida real y por lo

tanto han sido objeto de interés por parte de investigadores y profesionales en los

últimos años a pesar de la falta de no haber ni siquiera un nombre común para

dichos problemas. Para ello en [Pérez-González et al., 2014] se trata de dar una

visión unificada sobre el tema que permita avanzar en investigaciones futuras.

Así, teniendo en cuenta el marco de secuenciación descrito, en este Trabajo fin de

Grado se va a llevar a cabo el estudio de dos problemas.

Un primer problema de secuenciación de trabajos pertenecientes a dos

conjuntos distintos en máquinas en paralelo, asociando a cada uno de los

conjuntos el criterio makespan.

El segundo problema está enmarcado en un entorno flowshop, con

restricción de permutación, considerando también trabajos pertenecientes a

dos conjuntos distintos y con criterios asociados a estos conjuntos, el

tiempo total de flujo o completion time.

Este trabajo aborda ambos problemas en cuatro capítulos. El capítulo 1, describe

qué son los problemas de secuenciación y la notación que se emplea en ellos.

También se describe brevemente las distintas formas que existe de abordar un

problema de programación de operaciones.

Page 13: Trabajo Fin de Grado - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/90100/fichero/TFG-LUCIA+SORIANO... · Esta minimización conduce a un uso estable de los recursos,

13

En el capítulo 2, se describe la secuenciación con varios conjuntos de trabajos, la

importancia dentro de los problemas de secuenciación y la notación particular,

aplicada a los problemas que se tratan en capítulos siguientes.

En el capítulo 3, se estudia el primer problema, un problema con máquinas en

paralelo, con dos conjuntos de trabajos, asociados a cada uno de ellos el criterio

makespan. Se va a partir de problemas relacionados ya estudiados en la literatura

sobre secuenciación, para continuar con el estudio de pequeñas instancias del

problema para analizar su comportamiento, para posteriormente modelar el

problema con un modelo de programación lineal entero mixto..

En el capítulo 4, se aborda el segundo problema, un problema en un entono

flowshop con restricción de permutación, con dos conjuntos de trabajos, asociados

a cada uno de ellos la suma de los tiempos de finalización. Al igual que el

problema anterior en máquinas paralelas, en el estudio de este problema se parte

de un pequeño ejemplo, en el que se puede ver el comportamiento de éste, para

seguidamente modelarlo mediante programación lineal. Además, en el último

apartado de este capítulo, se programa el problema en el lenguaje Matlab y con la

ayuda de un solver Gurobi se estudia el tiempo de cómputo necesario para que

éste devuelva el óptimo, estudiando la capacidad de Gurobi para dicho resolver de

forma óptima problema, analizando para qué tamaños el tiempo supera un criterio

de parada máximo de una hora.

En el capítulo 5, se exponen las conclusiones llegadas tras el estudio de los

problemas abordados en el capítulo 3 y en el capítulo 4.

Por último en el capítulo 6, se encuentra el código en lenguaje Matlab que se

explica en el capítulo 4.

Page 14: Trabajo Fin de Grado - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/90100/fichero/TFG-LUCIA+SORIANO... · Esta minimización conduce a un uso estable de los recursos,

14

Page 15: Trabajo Fin de Grado - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/90100/fichero/TFG-LUCIA+SORIANO... · Esta minimización conduce a un uso estable de los recursos,

15

1 SECUENCIACIÓN

Como ya se ha comentado en la introducción, los problemas de secuenciación

pueden entenderse como un problema de asignación de recursos en el tiempo,

para llevar a cabo un conjunto de tareas. En este capítulo se van a introducir unas

nociones básicas de los conceptos y la notación usual utilizada en secuenciación

siguiendo el libro de Pinedo, [Pinedo, 2012].

En todos los problemas de secuenciación se ha de considerar el número de

trabajos y el número de máquinas, ambos números se suponen finitos. Al número

de trabajos se denota por n, mientras que al número de máquinas por m. Por lo

general el subíndice j se refiere a trabajos y el subíndice i a máquinas. Si un

trabajo requiere ser procesado por una máquina, dicha etapa se denota como el

par (i, j), operación de trabajo j en la máquina i. Existen unos datos asociados a las

tareas a tener en cuenta, en la formulación y resolución de los problemas de

secuenciación:

Tiempo de proceso o ejecución ( ): representa el tiempo de proceso del

trabajo j en la máquina i.

Fecha de llegada ( ): es el tiempo en el que el trabajo llega al sistema, es

decir, el tiempo más temprano en el que puede comenzar su

procesamiento.

Fecha de entrega ( ): representa el envío cometido o fecha de finalización,

la fecha en que el trabajo se le promete al cliente.

Peso ( ): es básicamente un factor de priorización. Denota la importancia

del trabajo j con el resto de trabajos en el sistema. Por ejemplo, este peso

puede representar el coste de producción, de almacenamiento o la cantidad

de valor añadido, entre otras formas.

Un problema de programación se describe por un triplete α | β | γ notación

introducida por [R.L. Graham, 1977]. El campo α denota el entorno de las

máquinas y contiene solamente una entrada. El campo β proporciona las

Page 16: Trabajo Fin de Grado - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/90100/fichero/TFG-LUCIA+SORIANO... · Esta minimización conduce a un uso estable de los recursos,

16

características de procesamiento y las limitaciones. Este campo puede contener

ninguna entrada, una entrada o varias entradas. Por último el campo γ describe el

objetivo a minimizar.

En el primer apartado de este capítulo 1, se presentan los diferentes tipos de

entornos que se pueden encontrar, entendiendo por entorno la disposición de los

recursos en la planta. Una vez definido el campo α, en el apartado 2.2 se analiza

el segundo campo del triplete, presentando las restricciones más comunes en los

problemas de secuenciación. Y por último, en el apartado 2.3 se exponen algunos

de los objetivos más relevantes en la literatura..

1.1 ENTORNOS

Como se expuso en la introducción, existen diferentes tipos de entornos de

máquinas:

Una máquina (1): es el caso de una sola máquina. Es el más simple de

todos los entornos y por lo tanto un caso especial de todos los otros más

complicados.

En los entornos con máquinas en serie, se puede establecer una clasificación

respecto al esquema de paso de los trabajos por las diferentes máquinas:

Sistemas de flujo uniforme (Flow shop): todos los trabajos siguen la misma

ruta, es decir, tienen que ser procesados primero en la máquina 1, luego en

máquina 2, y así sucesivamente. Después de terminar en una máquina, el

trabajo se une a una cola que operará bajo la disciplina FIFO (first in, first

out).

Sistemas de tipo taller (Job shop): cada trabajo tiene su propia ruta

predeterminada a seguir.

Sistemas de taller abierto (Open shop): el paso de cada trabajo por las

máquinas es libre.

Respecto a los entornos con máquinas en paralelo se distinguen tres tipos:

Page 17: Trabajo Fin de Grado - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/90100/fichero/TFG-LUCIA+SORIANO... · Esta minimización conduce a un uso estable de los recursos,

17

Máquinas idénticas en paralelo ( ): el trabajo requiere una sola operación

y puede ser procesado en cualquiera de las m máquinas.

Máquinas con diferentes velocidades en paralelo ( ): la velocidad de la

máquina i se denota por . Este entorno es conocido como máquinas

uniformes. denota el tiempo que gasta la máquina i en procesar el

trabajo j. Si todas las máquinas tienen la misma velocidad, =1 y = ,

por lo tanto estaríamos en el caso anterior.

Máquinas independientes en paralelo ( ): Es una generalización del caso

anterior. Cada máquina posee una velocidad de proceso diferente sobre

cada trabajo. Trabajo j es procesado con velocidad en máquina i. Si las

velocidades de las máquinas son independientes de los trabajos = , por

lo tanto estaríamos en el caso anterior.

Existen otros entornos más complejos, entornos híbridos que no se incluyen en

este trabajo, para más información ver, por ejemplo, Pinedo 2012.

1.2 RESTRICCIONES DE PROCESAMIENTOS

Las restricciones de proceso y limitaciones especificadas en el campo β pueden

ser más de una, por lo que este campo puede incluir múltiples entradas, como ha

sido comentado anteriormente. A continuación se presentan algunas de las más

comunes en la literatura sobre secuenciación:

Fechas de llegada ( ): si este símbolo aparece en el segundo campo, el

trabajo j no puede iniciar su proceso antes de su fecha de llegada. Si no

aparece en el campo β, el procesamiento de la tarea j puede comenzar en

cualquier momento.

Preemptions (prmp): Interrupción, es decir, no es necesario mantener un

trabajo en una máquina, una vez iniciado hasta su terminación. Se permite

interrumpir el proceso de un trabajo en cualquier punto en el tiempo y poner

un trabajo en diferentes máquinas (en el caso de que haya máquinas

iguales para realizarlo).

Page 18: Trabajo Fin de Grado - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/90100/fichero/TFG-LUCIA+SORIANO... · Esta minimización conduce a un uso estable de los recursos,

18

Restricciones de precedencia (prec): Requiere que uno o más trabajos

deban ser completados antes de permitir que otro trabajo inicie su proceso.

Tiempos de setup (sik): es el tiempo de cambio en el proceso de los trabajos

i y los trabajos k.

Permutación (prmu): sólo se da en el flowshop. Las colas en las máquinas

operan de acuerdo con la disciplina FIFO (first in first out). Esto implica que

el orden o permutación en el que los trabajos pasan por la primera máquina

se mantiene a lo largo del sistema.

Para conocer más restricciones, ver, por ejemplo, Pinedo 2012.

1.3 OBJETIVOS

Los objetivos a minimizar más comunes se definen en función del tiempo de

finalización de los trabajos. Por ello se definen los siguientes parámetros:

Tiempo de finalización del trabajo j en la máquina i ( ): instante de

terminación del proceso de la operación j en la máquina i. En los entornos

con una única máquina se denota . En los entornos flowshop de

permutación, se suele denotar por al tiempo de finalización del trabajo j

en la última máquina .

Retraso de un trabajo j ( ): se define como = - . Mide la desviación

respecto a la fecha de entrega. Es positiva cuando el trabajo j se haya

completado tarde y negativa cuando dicho trabajo se ha completado

temprano.

Tardanza de un trabajo j ( ): se define como =max ( - , 0)=max

( ,0).Mide el tiempo de retraso cuando el trabajo se termina más tarde de

su fecha.

A continuación se exponen algunos de los objetivos más comunes en la literatura

sobre secuenciación:

Tiempo de finalización (∑ ): minimizar la suma de los tiempos de

finalización de los trabajos.

Page 19: Trabajo Fin de Grado - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/90100/fichero/TFG-LUCIA+SORIANO... · Esta minimización conduce a un uso estable de los recursos,

19

Makespan ( ): el makespan definido como el máximo de ( ,…, ), es

equivalente al tiempo en el que la última tarea sale del sistema.

Tiempo de finalización ponderado (∑ ): minimizar el coste total asociado

a la finalización de los trabajos.

Retraso total (∑ ): minimizar la suma de retrasos o retraso total.

Retraso máximo ( ): se define como el máximo de ( ,…, ). Minimizar

el retraso máximo sería, minimizar el retraso de todos los trabajos.

Retraso total ponderado (∑ ): minimizar el coste total asociado al retraso

total.

Tardanza total (∑ ): minimizar la tardanza total.

Tardanza máxima ( ): se define como el máximo de ( ,.., ). Minimizar

la tardanza máxima sería, minimizar la tardanza de todos los trabajos.

Tardanza total ponderada (∑ ): minimizar el coste total asociado a la

tardanza total.

Hay ocasiones que interesa optimizar más de un objetivo. Se denominan

problemas multicriterio. Los enfoques en los problemas multicirterio más comunes

a optimizar, considerando el caso de dos objetivos y son:

Combinación lineal convexa: Min λ + (1-λ) , con λ (0,1)

Épsilon Constraint: Min sujeto a ≤ϵ, que se denota ϵ( / )

Pareto: Min ( , ), que se denota #( , )

1.4 MÉTODOS DE RESOLUCIÓN

Para abordar un problema de secuenciación, se puede hacer mediante métodos

exactos o métodos aproximados [Pinedo, 2012].

Los procedimientos exactos buscan la mejor solución, denominada óptimo, con

respecto al objetivo que se quiere hallar. Dichos métodos son rápidos para

Page 20: Trabajo Fin de Grado - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/90100/fichero/TFG-LUCIA+SORIANO... · Esta minimización conduce a un uso estable de los recursos,

20

problemas polinomiales (P) y para algunos tamaños pequeños de problemas no

polinomiales (NP) que no sean excesivamente complejos. Estos métodos para

problemas NP-hard requieren a menudo un tiempo de búsqueda de la solución

muy grande cuando el número de trabajos/máquinas se incrementa. Entre estos

métodos se encuentran, por ejemplo, la programación dinámica y los algoritmos

de ramificación y acotamiento (branch and bound).

Los métodos aproximados o heurísticos se centran en buscar una buena solución,

sin necesidad de que tenga que ser la mejor, en periodos de tiempos pequeños o

razonables. Estas técnicas se clasifican de la siguiente forma:

Heurísticas de tipo constructivo, comienzan sin una secuencia, y se

construye una poco a poco mediante la adición de un trabajo cada vez de

acuerdo a una regla. Son heurísticas de este tipo las reglas de despacho o

dispatching rules, como por ejemplo FIFO (First In First Out), SPT (Shortest

Processing Time first) o LPT (Longest Processing Time first).

Metaheurísticas, se basan en mejorar soluciones ya encontradas. Los

procedimientos tratan de optimizar localmente alrededor de una solución,

para hallar mínimos locales. En este grupo se encuentran por ejemplo,

Algoritmos Genéticos, Colonias de Hormigas o Búsqueda de Entorno

Variable.

Page 21: Trabajo Fin de Grado - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/90100/fichero/TFG-LUCIA+SORIANO... · Esta minimización conduce a un uso estable de los recursos,

21

Page 22: Trabajo Fin de Grado - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/90100/fichero/TFG-LUCIA+SORIANO... · Esta minimización conduce a un uso estable de los recursos,

22

2 SECUENCIACIÓN CON VARIOS CONJUNTOS

En los últimos años [Agnetis et al., 2004], los problemas de secuenciación en los

que múltiples agentes compiten por el uso de recursos están recibiendo cada vez

más atención en diferentes entornos de aplicaciones y campos, como la

inteligencia artificial, la teoría de decisión, etc. En [Pérez-González et al., 2014]

encontramos algunas de estas aplicaciones en la vida real:

La secuenciación en una cadena de suministro: en una cadena de

suministro, un problema clásico es reducir los costes de fabricación y

distribución. Si los clientes están compitiendo por un recurso común

entonces el problema implica interferencia de dos conjuntos de trabajos.

Resecuenciación: actualizar la secuencia existente teniendo en cuenta

interrupciones u otros cambios, como por ejemplo la llegada de nuevos

trabajos a procesar. En este problema existen dos conjuntos de trabajos,

los trabajos que ya han sido programados y los nuevos a programar, por lo

que se puede formular como un problema de programación con dos

agentes.

Telecomunicaciones: la transmisión de paquetes de datos que deben llegar

a su destino dentro de un límite de tiempo es otro ejemplo. Mientras que

para algunas aplicaciones, esta transferencia de archivos o comunicación,

no debe exceder una demora media, para otras aplicaciones como voz o

video, tienen más prioridad lograr una tasa de pérdida específica. Se

identifica de nuevo varios conjuntos de trabajos con diferentes objetivos que

deben competir por el mismo recurso, el ancho de banda.

A pesar de estas aplicaciones en la vida real, no ha sido establecido una

definición, un nombre común, ni una notación específica para este tipo de

problemas hasta que en [Pérez-González et al., 2014] se ha dado una visión

unificada de este tipo de problemas que, aunque se trata de un caso especial de

problemas de programación multicriterio, la existencia de varios conjuntos de

Page 23: Trabajo Fin de Grado - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/90100/fichero/TFG-LUCIA+SORIANO... · Esta minimización conduce a un uso estable de los recursos,

23

trabajos hace que la complejidad de estos problemas cambie incluso si las

funciones objetivos son las mismas para todos los conjuntos.

El nombre más empleado para denominar a este tipo de problemas es multi-agent

scheuduling problem (MASP) [Pérez-González et al., 2014]. La situación es la

siguiente, se considera conjuntos de trabajos denotados por

. Se define y . Cada conjunto de trabajos

tiene asignado un criterio . Como muchas referencias trata con dos conjuntos

(este trabajo particularmente también), se denota un conjunto como y otro

conjunto como con y trabajos cada uno respectivamente, y funciones

objetivos y . Como ya se señaló en el apartado 1.3, en la programación con

dos agentes, algunos de los enfoques que más se estudian para el problema

MASP, son combinación lineal convexa, épsilon constraint y pareto [Agnetis et al.,

2004]:

MÉTODO DE COMBINACIÓN LINEAL: Dado dos conjuntos de trabajos

y , con objetivos y , se pondera cada objetivo dependiendo de su

importancia para buscar la solución óptima. Por lo tanto, dado un valor, λ

(0,1), encontrar una secuencia óptima tal que λ + (1-λ) sea

mínimo.MÉTODO DE RESTRICCIÓN-EPSILON: Dado dos conjuntos de

trabajos y con objetivos y y dado un valor ϵ, encontrar una

secuencia óptima tal que y sea mínima. Siguiendo la

notación de Gra am se indica este problema como o también

se puede indicar simplemente como siempre que esto no

genere confusión

ÉTODO DE PARETO Dado dos conjuntos de trabajos y con

objetivos y encontrar el conjunto de todas las soluciones no

dominadas ( , ) y una correspondiente secuencia de y de para

cada par. Se indica este problema como o también lo

podemos encontrar como .

En el primer enfoque se pretende encontrar una solución en equilibrio para los

objetivos dependiendo del peso que se le da a cada agente/conjunto

Page 24: Trabajo Fin de Grado - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/90100/fichero/TFG-LUCIA+SORIANO... · Esta minimización conduce a un uso estable de los recursos,

24

(dependiendo de ). En el segundo enfoque, el agente A encuentra la mejor

solución para él, dada una secuencia aceptable para el agente B restringido por el

coste . Una secuencia del método restricción-épsilon puede no tener soluciones

factibles (por ejemplo, si es muy pequeño). En el último enfoque, los dos agentes

proporcionan la lista de todas las posibles soluciones no dominadas, para negociar

el equilibrio más aceptable para los dos.

Otros enfoques que se pueden encontrar en la literatura son Goal Programming y

Lexicographical approach. El enfoque Goal Programming, denotado por

, también llamado modelo de decisión, es un caso especial del método

de restricción épsilon. El objetivo aquí es encontrar una secuencia factible

satisfaciendo y . El enfoque lexicográfico, denotado por

, minimiza todos los criterios en el orden dado. Sólo en los enfoques

épsilon constraint y lexicográfico, el orden en el que son considerados los criterios

es relevante, diferentes órdenes implican diferentes problemas.

Para el estudio de los problemas que se han considerado en este trabajo se van a

tener en cuenta las siguientes propiedades básicas de problemas con una

máquina y un conjunto de trabajos:

Propiedad 1: Si el makespan es el criterio para cada uno de los conjuntos,

entonces hay una secuencia óptima en el que todos los trabajos que

pertenecen al conjunto se procesan de forma consecutiva.

Propiedad 2: Si el tiempo total de finalización es el criterio para uno de los

conjuntos entonces existe una secuencia óptima en la que los trabajos son

procesados por la regla SPT (Shortest Processing Time), es decir, desde

menos a más duración.

Page 25: Trabajo Fin de Grado - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/90100/fichero/TFG-LUCIA+SORIANO... · Esta minimización conduce a un uso estable de los recursos,

25

Page 26: Trabajo Fin de Grado - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/90100/fichero/TFG-LUCIA+SORIANO... · Esta minimización conduce a un uso estable de los recursos,

26

3 PROBLEMA DE SECUENCIACIÓN CON DOS

CONJUNTOS DE TRABAJOS EN MÁQUINAS

PARALELAS Y OBJETIVO MAKESPAN

3.1 DESCRIPCIÓN

En la práctica, a menudo se tiene que hacer frente al problema de equilibrar la

carga en las máquinas en paralelo. En las máquinas idénticas en paralelo el

trabajo sólo requiere de una sola operación y puede ser procesado en cualquiera

de las m máquinas. Es por ello que [Pinedo, 2012] señala que es una

generalización del problema con una única máquina.

Mientras que con una máquina el objetivo makespan solo tiene interés cuando

hay tiempos de set-up (ya que sin tiempos de preparación el problema es trivial),

cuando se trata de máquinas en paralelo el maskespan se convierte en un objetivo

de considerable interés ya que minimizando el makespan de un banco de

máquinas en paralelo, se asegura un buen equilibrio [Pinedo, 2012]. Sin embargo,

en este caso el problema es NP-hard, por lo que obtener la solución óptima no es

fácil cuando el problema considera muchos trabajos.

Dado que en la práctica es posible tener situaciones en la que los trabajos

pertenecen a conjuntos distintos [Agnetis et al., 2003], con un criterio asociado con

cada conjunto, y este problema no se ha considerado anteriormente en la literatura

sobre secuenciación, se plantea el siguiente problema:

Sean dos agentes A y B, cada uno con un conjunto de trabajos

y respectivamente. Cada conjunto tiene un número de trabajos a procesar

y . El conjunto de trabajos tiene unos tiempos de proceso,

y . Los trabajos van a ser procesados en máquinas idénticas paralelas,

denotado por . Los agentes tienen que programar sus trabajos en dichas

máquinas paralelas, recursos comunes, pero cada agente desea minimizar una

función objetivo. Ambos agentes van a minimizar el tiempo de finalización del

último trabajo en procesaro makespan, denotado ,

para cada agente

Page 27: Trabajo Fin de Grado - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/90100/fichero/TFG-LUCIA+SORIANO... · Esta minimización conduce a un uso estable de los recursos,

27

respectivamente. El enfoque estudiado en este problema es el conocido como

épsilon constraint. Por lo tanto, utilizando la notación propuesta por Graham se

define el problema como sigue:

3.2 PROBLEMAS RELACIONADOS

Para el estudio del problema planteado en el apartado anterior, se va a partir del

estudio de problemas relacionados, en concreto dos. En el primero se minimiza el

makespan con un solo conjunto de trabajos en máquinas paralelas, y en el

segundo se minimiza el makespan de dos conjuntos de trabajo mediante el

enfoque de épsilon constraint para una sola máquina.

Primero se considera el problema [Pinedo, 2012]. Este problema es

interesante porque, como ya se ha comentado anteriormente, minimizar el

makespan tiene el efecto de equilibrar la carga sobre las distintas máquinas, como

señala [Pinedo, 2012]. Este problema a partir de dos máquinas es NP-hard, por lo

que, durante el último par de décadas, se han desarrollado muchas heurísticas

para resolverlo. Una heurística muy común usada para resolver el problema de

forma sencilla, y que da una solución aproximada del problema, se describe a

continuación [Pinedo, 2012]:

Se ordenan los trabajos mediante la regla LPT (The Longest Processing Time

first). Luego se van asignando a la máquina más libre de carga. Esta heurística

tiende a colocar los trabajos más cortos al final del programa, donde pueden ser

utilizados para equilibrar las cargas.

Existe un teorema que demuestra que la solución encontrada por esta heurística

dista de la solución óptima una cantidad dependiente del número de máquinas y

no superior a

:

Page 28: Trabajo Fin de Grado - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/90100/fichero/TFG-LUCIA+SORIANO... · Esta minimización conduce a un uso estable de los recursos,

28

Ahora se aborda el problema de encontrar una solución óptima de

. Para ello estudiamos primero el problema

analizado por

[Agnetis et al., 2003]. Se demuestra que este problema puede ser resuelto

eficientemente por una reducción conocida, problema de un solo agente

.Para este último Lawler (1973) elabora un algoritmo con complejidad

O ( .

Dada una secuencia σ para dos conjuntos de trabajos, el tiempo de finalización del

último trabajo:

donde para

Si existe una secuencia factible resolviendo con función objetivo

finita , entonces es también factible y óptima para

y

alcanza el mismo valor óptimo

. De lo contrario si , entonces

no hay solución factible existente para el problema con dos agentes.

A continuación se va a aplicar el algoritmo de Lawler para el problema

en un pequeño ejemplo, para entender un poco mejor este algoritmo.

Se define el tiempo de finalización total , como la suma de los tiempos de

proceso de todos los trabajos, tanto del conjunto A como del conjunto B (Tabla 2,

Tabla 1)

Page 29: Trabajo Fin de Grado - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/90100/fichero/TFG-LUCIA+SORIANO... · Esta minimización conduce a un uso estable de los recursos,

29

Si dicho tiempo p es menor que ϵ, la secuencia factible es procesar primeramente

todos los trabajos de A, y a continuación se procesan los trabajos del conjunto B,

como podemos observar en la Ilustración 1. En dicho diagrama de Gantt se

observa que el tiempo de finalización de la última tarea de A que se procesa, el

makespan de A, es un valor de cuatro, mientras que el de B es de diez.

3 1

Tabla 1: Tiempos de proceso del conjunto B para el ejemplo del problema

2 4

Tabla 2: Tiempos de proceso del conjunto A para el ejemplo del problema

Page 30: Trabajo Fin de Grado - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/90100/fichero/TFG-LUCIA+SORIANO... · Esta minimización conduce a un uso estable de los recursos,

30

Ilustración 1: Secuencia factible para en el ejemplo del problema

Si por el contrario el valor que toma épsilon es menor que la suma de los tiempos

de proceso de todos los trabajos de todos los conjuntos, es decir , la

secuencia factible, sería procesar todos los trabajos de B, ya que el valor del

makespan del conjunto B está restringido por ϵ, y a continuación procesamos los

trabajos del conjunto A. Para dicha secuencia podemos observar en la Ilustración

2 que el makespan de A ahora toma un valor de diez y el de B toma un valor de

seis.

Ilustración 2: Secuencia factible para para el ejemplo del problema

3 1 2 4

0 1 2 3 4 5 6 7 8 9 10 11 12

Máquina 1

2 4 3 1

0 1 2 3 4 5 6 7 8 9 10 11 12

Máquina 1

Page 31: Trabajo Fin de Grado - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/90100/fichero/TFG-LUCIA+SORIANO... · Esta minimización conduce a un uso estable de los recursos,

31

3.3 EJEMPLOS NUMÉRICOS

En este apartado se va a analizar un ejemplo pequeño para el problema

, considerando m=2, y dos conjuntos de trabajos, y , con

dos trabajos, j=1…2 y k=1…2 con sus tiempos de proceso y

dados en las

tablas 3 y 4respectivamente.

En este apartado se pretende estudiar las distintas secuencias posibles del

problema, que dependen del valor que tome la constante épsilon, que restringe el

valor del makespan del conjunto B. Existirá un valor de épsilon mínimo, por debajo

del cual el problema será infactible y un valor de épsilon máximo por encima del

cual el problema será siempre posible. Y entre estos dos valores extremos, épsilon

mínimo y épsilon máximo, oscilaran valores de épsilon para los cuales habrá

secuencias factibles y una o más secuencias óptimas.

3 1

Tabla 3: Tiempos de proceso del conjunto A para el ejemplo

2 4

Tabla 4: Tiempos de proceso del conjunto B para el ejemplo

Page 32: Trabajo Fin de Grado - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/90100/fichero/TFG-LUCIA+SORIANO... · Esta minimización conduce a un uso estable de los recursos,

32

Para estudiar los diferentes casos que se pueden encontrar según los valores del

parámetro , se van a generar las distintas secuencias posibles. Asignando

primero todos los trabajos pertenecientes al conjunto B a las dos máquinas,

obtenemos las siguientes distintas secuencias posibles:

Primera

asignación

Segunda

asignación

Tercera

asignación

Cuarta

asignación

Máquina 2 ,

,

,

,

Máquina 1 ,

,

,

,

5 7 7 5

4 4 4 4

Tabla 5: Secuencias posibles asignando primero los trabajos del conjunto B para el

problema

Asignando primero los trabajos del conjunto B se pretende encontrar el , es

decir, el mínimo valor que puede tomar en el problema con el que podría ser

minimizado el objetivo de dicho conjunto, ya que si se recuerda la formulación del

problema, este objetivo está sujeto a dicho parámetro. En este ejemplo, .

Por debajo de este valor, no es posible resolver el problema ya que no existe

ninguna secuencia factible (problema infactible).

Page 33: Trabajo Fin de Grado - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/90100/fichero/TFG-LUCIA+SORIANO... · Esta minimización conduce a un uso estable de los recursos,

33

Ilustración 3: Representación de la primera asignación para el problema

Asignando ahora todos los trabajos de A lo antes posible:

Primera

asignación

Segunda

asignación

Tercera

asignación

Cuarta

asignación

Máquina 2 ,

,

,

,

Máquina 1 ,

,

,

,

3 3 3 3

5 7 7 5

Tabla 6: Secuencias posibles asignando primero los trabajos del conjunto A para el

problema

Procesando primero todos los trabajos del conjunto A, se atrasan todos los

trabajos del conjunto B, con lo que se pretende encontrar el , el épsilon a

partir del cual todas las soluciones del objetivo del conjunto B son admisibles. En

este ejemplo, .

0 1 2 3 4 5 6 7 8

Máquina 1

Máquina 2

Page 34: Trabajo Fin de Grado - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/90100/fichero/TFG-LUCIA+SORIANO... · Esta minimización conduce a un uso estable de los recursos,

34

Ilustración 4: Representación de la tercera asignación para el problema

Por lo tanto, los valores de que va permitir que el problema tenga soluciones

admisibles serán valores:

Se analizan ahora las posibles soluciones admisibles con oscilando entre dichos

valores mínimo y máximo.

Si ϵ=4, las asignaciones admisibles que se pueden tener en este ejemplo son:

Primera

asignación

Segunda

asignación

Tercera

asignación

Cuarta

asignación

Quinta

asignación

Sexta

asignación

Máquina

2

,

,

,

,

, ,

Máquina

1

,

,

,

,

,

,

5 7 7 5 6 6

4 4 4 4 4 4

Tabla 7: Secuencias admisibles para épsilon=4 para el problema

0 1 2 3 4 5 6 7 8

Máquina 1

Máquina 2

Page 35: Trabajo Fin de Grado - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/90100/fichero/TFG-LUCIA+SORIANO... · Esta minimización conduce a un uso estable de los recursos,

35

Observando la Tabla 7, la primera asignación y la cuarta asignación son

soluciones óptimas para este valor de .

Si ϵ=5, todas las anteriores asignaciones son soluciones válidas (ϵ=4), más las

nuevas obtenidas para dicho valor de .

Séptima

asignación

Máquina

2

,

Máquina

1

,

5

5

Tabla 8: Secuencias admisibles para =5 para el problema

Para este nuevo valor de siguen siendo óptimas la primera y la cuarta

asignación.

Si ϵ=6, todas las anteriores asignaciones son soluciones válidas (ϵ=4,5), más las

nuevas obtenidas para dicho valor de .

Page 36: Trabajo Fin de Grado - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/90100/fichero/TFG-LUCIA+SORIANO... · Esta minimización conduce a un uso estable de los recursos,

36

Octava

asignación

Novena

asignación

Máquina

2

,

Máquina ,

,

,

5 4

5 6

Tabla 9: Secuencias admisibles para =6 para el problema

Para este nuevo valor de es óptima la novena asignación, ya que conseguimos

reducir el makespan de A a un valor 4, sometiendo al conjunto B al valor de .

Si ϵ=7 todas las anteriores asignaciones son soluciones válidas (ϵ=4, 5,6), más las

nuevas obtenidas para dicho valor de .

Décima

asignación

Máquina

2

,

Máquina

1

,

5

5

Tabla 10: Secuencias admisibles para =7 para el problema

Page 37: Trabajo Fin de Grado - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/90100/fichero/TFG-LUCIA+SORIANO... · Esta minimización conduce a un uso estable de los recursos,

37

Con este nuevo valor de no es mejorada la secuencia novena, que sigue siendo

óptima para dicho valor.

Por lo tanto, se puede observar a partir del pequeño ejemplo que se ha analizado,

que dependiendo del valor de , el problema puede que sea infactible (cuando

es menor que ), que todas las asignaciones sean factibles, y el problema sea

trivial (cuando es mayor que ), o que el problema tenga distintas

asignaciones factibles, y una o más sean óptimas (cuando está entre y

).

3.4 MODELO DE PROGRAMACIÓN LINEAL

Como define literalmente [Canca, 2013]:

“Un modelo es una cierta “estructura” construida con el propósito de reflejar

determinadas características y analizar el comportamiento de un determinado

objeto o sistema. Utiliza, de forma general, relaciones y definiciones matemáticas,

con el fin de representar relaciones internas del sistema que está siendo

modelado.”

Existen varias razones por las que emplear modelos. Hacer experimentos con

modelos reales supone una dificultad y puede conllevar algún riesgo. Otra razón

por la que utilizar modelos es que al modelar el problema se hace un estudio de

mayor profundidad del sistema que estamos modelando.

La construcción de un modelo implica la asociación de un criterio de maximizar o

minimizar el objetivo que estamos considerando. Es por ello que cuando hablamos

de modelar, hablamos de optimizar. Y en el ámbito del modelado, la programación

lineal es una parte muy importante, ya que a pesar de la difícil tarea que supone

esta característica al modelar, facilita la resolución del modelo.

La formulación del modelo de programación lineal que se presenta en este

apartado es una modificación del modelo de programación lineal formulado para

dos conjuntos de trabajos en máquinas paralelas, en el que se minimizan y

Page 38: Trabajo Fin de Grado - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/90100/fichero/TFG-LUCIA+SORIANO... · Esta minimización conduce a un uso estable de los recursos,

38

, [Balasubramanian et al, 2008]. Es una formulación en

tiempo discretizado que fue propuesta originalmente por Sousa y Wolsey(1992).

Para el problema estudiado,

se tienen las siguientes variables:

L indica el parámetro que decide el valor makespan.

T es el tiempo máximo de comienzo posible, que viene dado por

El modelo modificado es el siguiente:

(1) y (2) Aseguran que cada trabajo esté programado exactamente una vez. El

primer grupo también asegura que ningún trabajo de A se complete después de L.

(3) Se asegura de que no haya más trabajos en procesamiento que máquinas.

Page 39: Trabajo Fin de Grado - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/90100/fichero/TFG-LUCIA+SORIANO... · Esta minimización conduce a un uso estable de los recursos,

39

(4) Son limitaciones de integralidad en las variables de decisión.

Tras un estudio exhaustivo del problema, y la búsqueda de un modelo de

programación lineal más sencillo con el que se pueda representar el problema

estudiado, dada la complejidad del modelo modificado de [Balasubramanian et al,

2008], en este Trabajo Fin de Grado se ha optado por no programarlo con una

herramienta de resolución matemática (como Gurobi), siendo una línea de

investigación interesante para los investigadores en secuenciación.

Page 40: Trabajo Fin de Grado - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/90100/fichero/TFG-LUCIA+SORIANO... · Esta minimización conduce a un uso estable de los recursos,

40

Page 41: Trabajo Fin de Grado - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/90100/fichero/TFG-LUCIA+SORIANO... · Esta minimización conduce a un uso estable de los recursos,

41

4 PROBLEMA DE SECUENCIACIÓN CON DOS

CONJUNTOS DE TRABAJOS EN FLOW SHOP DE

PERMUTACIÓN Y OBJETIVO TIEMPO TOTAL DE

FINALIZACIÓN

4.1 DESCRIPCIÓN

Un flow-shop es un conjunto de m máquinas en serie, en las que cada trabajo

tiene que ser procesado en cada unas de éstas máquinas [Pinedo, 2012]. Es decir

todos los trabajos tienen que seguir la misma ruta, primero ser procesados en la

máquina 1, a continuación en la máquina 2, y así sucesivamente. Es por ello que

después de terminar en una máquina un trabajo, se une a la cola de la siguiente

máquina.

A esta disciplina está asociada la restricción de permutación (pmru), el orden por

el que pasan los trabajos en la primera máquina se mantienen a lo largo del

sistema. Operan bajo la disciplina FIFO, el primero que entra, es el primero en

salir.

Como se comentó en la introducción, entre los objetivos que podemos asociar a

flow-shop, encontramos la minimización del tiempo de finalización de la última

tarea, makespan, objetivo que implica por lo general una buena utilización de la

máquina. Es por ello que la mayoría de la investigación durante las últimas

décadas se han centrado en este objetivo, pero más recientemente, la

investigación dedicada a la minimización de los tiempos de finalización de los

trabajos (completion time) se ha incrementado ya que conduce a un uso estable

de los recursos y la reducción del inventario [J.M. Framinan et al., 2005]. Este

problema es NP para el caso con un único conjunto.

Al ser considerado más relevante dicho objetivo para el entorno de producción

dinámico actual, [J.M. Framinan et al., 2005], unido a que los problemas de

gestión en los que múltiples agentes compiten en el uso de recursos están

Page 42: Trabajo Fin de Grado - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/90100/fichero/TFG-LUCIA+SORIANO... · Esta minimización conduce a un uso estable de los recursos,

42

recibiendo cada vez más atención como se comentó en el Capítulo 0, se plantea el

estudio del siguiente problema:

Sean dos agentes A y B, cada uno con un conjunto de trabajos

y respectivamente. Cada conjunto tiene un número de trabajos a procesar

y . El conjunto de trabajos tiene unos tiempos de proceso,

y . Los trabajos van a ser procesados en máquinas m máquinas en serie,

denotado por . Los trabajos de ambos agentes tienen que pasar con en el

mismo orden que hayan pasado por la primera máquina por todas las máquinas.

Esta limitación es denotada como pmru en el campo beta de la notación de

Graham. Ambos agentes van a minimizar el tiempo de finalización cada uno de los

trabajos en la última máquina que los procesa , . El enfoque estudiado en

este problema es el conocido como épsilon constraint. Por lo tanto utilizando la

notación propuesta por Graham se define el problema como sigue:

Al igual que el caso con un único conjunto, este problema es NP, por lo que no

existe un algoritmo que proporcione la solución óptima en tiempo polinomial.

4.2 EJEMPLOS NUMÉRICOS

A partir de un pequeño ejemplo que va a ser analizado, se van a buscar los

distintos valores entre los que se mueve el valor de épsilon. Un épsilon mínimo,

por debajo del cual el problema es infactible y un épsilon máximo por encima del

cual todas las soluciones son factibles. También será analizado el problema

cuando se mueva entre estos valores extremos, identificando la o las soluciones

óptimas que pudiesen aparecer en el ejemplo.

Considérese dos conjuntos de trabajos, y , con dos trabajos, con tiempos de

proceso , dependiente de la máquina en el que es procesado (i=1,2),

respectivamente.

Page 43: Trabajo Fin de Grado - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/90100/fichero/TFG-LUCIA+SORIANO... · Esta minimización conduce a un uso estable de los recursos,

43

Máquina 1 Máquina 2

2 4

4 3

2 1

1 4

Tabla 11: Tiempos de proceso de dos conjuntos de trabajos en el problema

Para ver con mayor facilidad dicho ejemplo se va a denominar los trabajos de

ambos conjuntos de j=1…4. Se va a tratar de encontrar para este ejemplo los

valores entre los que oscila el parámetro épsilon, parámetro que restringe el

objetivo del conjunto B. Por debajo de épsilon mínimo no hay soluciones

admisibles y por encima de épsilon máximo todas las soluciones son admisibles.

Para encontrar hay que probar qué secuencia proporciona el menor valor del

tiempos total de terminación de los trabajos de B, es decir, el menor valor de .

Se tendrá los menores valores cuando los trabajos de B se secuencien al principio

en la secuencia. Así, se probará el caso [3,4,x,x] y el caso [4,3,x,x], para

comprobar cuál de las dos secuencias da menor valor de , y ése será el valor

de . Notar que da igual en qué lugar se secuencian los trabajos de A (trabajos

1 y 2), ya que no influyen en este caso en el valor de .

Page 44: Trabajo Fin de Grado - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/90100/fichero/TFG-LUCIA+SORIANO... · Esta minimización conduce a un uso estable de los recursos,

44

Ilustración 5: Primera secuencia admisible para épsilon mínimo en el problema

Ilustración 6: Secuencia admisible para encontrar épsilon mínimo en el problema

En la Ilustración 5 secuenciando primero el trabajo 3 y después el 4, puede

comprobarse que los tiempos de finalización de ambos trabajos pertenecientes al

conjunto B son:

Por lo tanto la suma de los tiempos de finalización del conjunto B para esta

secuencia:

3 4

3 4

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Máquina 1

Máquina 2

4 3

4 3

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Máquina 1

Máquina 2

Page 45: Trabajo Fin de Grado - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/90100/fichero/TFG-LUCIA+SORIANO... · Esta minimización conduce a un uso estable de los recursos,

45

En la Ilustración 6 secuenciando primero el trabajo 4 y después el 3, puede

comprobarse que los tiempos de finalización de ambos trabajos pertenecientes al

conjunto B son:

Por lo tanto la suma de los tiempos de finalización del conjunto B para esta

secuencia:

Así la primera secuencia ilustrada en este ejemplo da el valor de épsilon mínimo:

Para encontrar los últimos trabajos en ser procesados, van a ser los del

conjunto B, alargando así lo máximo el tiempo total de terminación de B. Ahora

influyen el orden en el que se van a procesar los trabajos del conjunto A , por lo

que habrá que probar con las distintas secuencias, [1,2,3,4], [1,2,4,3], [2,1,3,4], y

[2,1,4,3] y ver para cada una, la suma de los tiempos de finalización del conjunto

B. El de mayor valor de entre las secuencias, será el épsilon máximo.

Ilustración 7: Secuencia admisible para encontrar épsilon máximo en el problema

En la Ilustración 7 se puede observar la secuencia [1,2,3,4] y como los tiempos de

finalización son los siguientes:

1 2

1

3 4

2 3 4

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

Máquina 1

Máquina 2

Page 46: Trabajo Fin de Grado - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/90100/fichero/TFG-LUCIA+SORIANO... · Esta minimización conduce a un uso estable de los recursos,

46

Y por lo tanto la suma de los tiempos de finalización para esta secuencia es:

Ilustración 8: Secuencia admisible para encontrar épsilon máximo en el problema

En la Ilustración 8 se puede observar la secuencia [1,2,4,3] y como los tiempos de

finalización son los siguientes:

Y por lo tanto la suma de los tiempos de finalización para esta secuencia es:

Ilustración 9: Secuencia admisible para encontrar épsilon máximo en el problema

1 2

1

4 3

2 4 3

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

Máquina 1

Máquina 2

2 1

2

3

1

4

3 4

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

Máquina 1

Máquina 2

Page 47: Trabajo Fin de Grado - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/90100/fichero/TFG-LUCIA+SORIANO... · Esta minimización conduce a un uso estable de los recursos,

47

En la Ilustración 9 se puede observar la secuencia [2,1,3,4] y como los tiempos de

finalización son los siguientes:

Y por lo tanto la suma de los tiempos de finalización para esta secuencia es:

Ilustración 10: Secuencia admisible para encontrar épsilon máximo en el problema

Y por último, en la Ilustración 10 se puede observar la secuencia [2,1,4,3] y como

los tiempos de finalización son los siguientes:

Y por lo tanto la suma de los tiempos de finalización para esta secuencia es:

Al retrasar lo máximo la finalización de los trabajos tres y cuatro, pertenecientes al

conjunto B, la máxima suma de tiempos de finalización de dichos trabajos es 29,

como se puede ver en la secuencia admisible en la Ilustración 8. Se observa en

este ejemplo que por lo tanto .

Por lo tanto, los valores que puede tomar épsilon en este ejemplo serían:

2 1

2

4

1

3

4 3

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

Máquina 1

Máquina 2

Page 48: Trabajo Fin de Grado - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/90100/fichero/TFG-LUCIA+SORIANO... · Esta minimización conduce a un uso estable de los recursos,

48

Se analizan ahora las posibles soluciones admisibles con épsilon oscilando entre

dichos valores mínimo y máximo.

Page 49: Trabajo Fin de Grado - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/90100/fichero/TFG-LUCIA+SORIANO... · Esta minimización conduce a un uso estable de los recursos,

49

ϵ=10 ϵ=10 ϵ=11 ϵ=11 ϵ=13 ϵ=14 ϵ=14 ϵ=16 ϵ=16 ϵ=16 ϵ=17 ϵ=18

Secuencia [3,4,1,2] [3,4,2,1] [4,3,1,2] [4,3,2,1] [4,1,3,2] [4,2,3,1] [3,1,4,2] [1,3,4,2] [3,2,4,1] [4,2,1,3] [4,1,2,3] [3,2,1,4]

22 22 21 22 20 20 21 18 24 18 18 20

10 10 11 11 13 14 14 16 16 16 17 18

Tabla 12: Soluciones admisibles para los distintos valores de épsilon en el problema

Tabla 13: Soluciones admisibles para los distintos valores de épsilon en el problema

ϵ=19 ϵ=19 ϵ=20 ϵ=22 ϵ=22 ϵ=23 ϵ=23 ϵ=24 ϵ=25 ϵ=26 ϵ=27 ϵ=29

Secuencia [3,1,2,4] [1,4,3,2] [2,3,4,1] [1,3,2,4] [1,4,2,3] [2,3,1,4] [2,4,3,1] [2,1,3,4] [2,4,1,3] [1,2,3,4] [2,1,4,3] [1,2,4,3]

19 18 21 17 17 18 21 16 20 15 16 15

19 19 20 22 22 23 23 24 25 26 27 29

Page 50: Trabajo Fin de Grado - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/90100/fichero/TFG-LUCIA+SORIANO... · Esta minimización conduce a un uso estable de los recursos,

50

En la Tabla 12, aparece para cada valor de épsilon las secuencias admisibles y el

tiempo total de terminación (o flowtime) de cada conjunto de trabajos. A medida

que aumentamos el valor de épsilon todas las secuencias establecidas para

épsilon menores son también admisibles.

Si todas las secuencias anteriores (para épsilon menores hasta ) son

factibles. Así sucesivamente. Por ejemplo, la secuencia óptima para dicho épsilon

sería [4,3,1,2]:

Ilustración 11: Solución óptima para épsilon=11 en el problema

Los tiempos de finalización que podemos observar en la Ilustración 11 para todos

los trabajos son:

Por lo tanto, el flow-time de ambos conjuntos de trabajos es de:

4 3

4

1

3

2

1 2

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Máquina 1

Máquina 2

Page 51: Trabajo Fin de Grado - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/90100/fichero/TFG-LUCIA+SORIANO... · Esta minimización conduce a un uso estable de los recursos,

51

4.3 MODELO DE PROGRAMACIÓN LINEAL

El siguiente modelo de programación lineal está basado en el modelo Manne,

[Tseng et al. ,2004], que propone un modelo de programación lineal entera para el

problema general de job shop. En su modelo, Manne asegura que solo se puede

cumplir una de las siguientes opciones, que o el trabajo j precede al trabajo k en

algún lugar de la secuencia, o el trabajo k precede al trabajo j.

(1) Asegura que el tiempo de finalización de cada trabajo en la máquina 1 no

ocurra antes de la duración del tiempo de proceso del trabajo en la máquina 1.

(2) Asegura que el tiempo de finalización de cada trabajo en la máquina i no sea

antes que el tiempo de finalización del trabajo en la máquina i-1 más el tiempo de

proceso en la máquina i.

Page 52: Trabajo Fin de Grado - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/90100/fichero/TFG-LUCIA+SORIANO... · Esta minimización conduce a un uso estable de los recursos,

52

(3) y (4) Son restricciones disyuntivas pareadas que aseguran que el trabajo j

precede al trabajo k, o bien el trabajo k sigue en la secuencia, pero no ambos.

(5) Suma de los tiempos de finalización de los trabajos del conjunto B en la última

máquina.

4.4 EXPERIMENTOS

En este apartado se va a comprobar la capacidad que puede llegar a soportar el

solver Gurobi resolviendo el modelo de programación lineal del apartado 4.3, es

decir, el número máximo de trabajos que puede resolver el solver sin llegar a

tomarse un tiempo excesivamente alto. Para ello, aparte de hacer uso del

programa Gurobi, también se va a hacer uso del programa Matlab:

Matlab, según sus creadores (http://www.mathworks.es/products/matlab/),

es un lenguaje de alto nivel y entono interactivo para el cálculo numérico, la

visualización y la programación. Mediante Matlab es posible analizar datos,

desarrollar algoritmos y crear modelos o aplicaciones. El lenguaje, las

herramientas y las funciones matemáticas incorporadas permiten explorar

diversos enfoques y llegar a una solución antes que con hojas de cálculo o

lenguajes de programación tradicionales.

Gurobi (http://www.gurobi.com/) es un solver para dar solución a la

programación matemática. Resuelve programación lineal (LP),

programación cuadrática (QP), programación cuadrática restringida (QCP),

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

(MIQP) y programación cuadrática entera mixta restringida (MIQCP).

Existen diversos lenguajes de programación y modelado que soporta

Gurobi, por ejemplo, Java,C++ ,Python y Matlab, entre otros muchos.

Para resolver el modelo (http://www.gurobi.com/documentation/5.6/reference-

manual/matlab_gurobi), lo primero es construir el modelo con el lenguaje Matlab.

Los datos asociados con un modelo de optimización se deben almacenar en un

Page 53: Trabajo Fin de Grado - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/90100/fichero/TFG-LUCIA+SORIANO... · Esta minimización conduce a un uso estable de los recursos,

53

Matlab struct. Los campos de esta estructura contienen las diferentes partes del

modelo:

model.A: la matriz de restricciones del modelo. Es un campo obligatorio.

model.obj: el vector objetivo. Es un campo obligatorio.

model.rhs: el vector término independiente de las restricciones (b). Es un

campo obligatorio.

model.sense: el vector de caracteres que indica el sentido de cada

restricción. Puede ser <,= ó >. Es un campo obligatorio.

model.modelsense: es el objetivo de optimización. Puede ser ‘min’,

minimizar la función o ‘max’, maximizar la función. El valor predeterminado

en ausencia de indicación es minimizar la función. Es un campo opcional.

model.vtype: es un vector de caracteres que indica los tipos de las

variables. Las variables pueden ser de tipo continuas ‘C’, enteras ‘I’,

binarias ‘B’, semi-continuas ‘S’ o semi-enteras ‘N’. El valor predeterminado

en ausencia de indicación es de tomar variables como continuas. Es un

campo opcional.

Gurobi devuelve una estructura, con los diversos resultados de la optimización

almacenados en sus campos. La siguiente es una lista de campos más habituales

disponibles en el resultado devuelto:

result.status: el estado de la optimización, lo devuelve como una cadena. Si

el resultado es "óptimo”, indica que se ha encontrado una solución óptima al

modelo. Entre otros estados posibles, por ejemplo es si el modelo no tiene

solución factible.

result.objval: el valor objetivo de la solución encontrada.

Page 54: Trabajo Fin de Grado - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/90100/fichero/TFG-LUCIA+SORIANO... · Esta minimización conduce a un uso estable de los recursos,

54

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

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

columna de A.

result.slack: la holgura de cada restricción de la solución. Este vector

contiene un valor para cada fila de A.

4.4.1 Batería de problemas y cálculo de épsilon

Para comprobar la capacidad del modelo se ha generado una serie de problemas,

con diez instancias para cada tamaño de problema. Cada vez que se crea una

instancia, mediante la función “bateria” (puede verse en el Anexo 6.1) se crea un

problema con el número de trabajos elegido por el usuario para el conjunto de

trabajos , y el número de trabajos para el conjunto de trabajos . Este número

de trabajos para cada conjunto es el elegido por el usuario cambiando la variable

nc en la función “batería”. Se a supuesto que el número de trabajos es igual para

ambos conjuntos, por lo tanto . En la función “batería” se generan los

tiempos de proceso para cada máquina, siguiendo una distribución aleatoria

uniforme entre 1 y 99, teniendo que ser todos los valores generados números

enteros.

También para cada instancia se calcula el valor de épsilon, en otra función en

lenguaje Matlab “calculoepsilon” (puede verse en el Anexo 6.2) que opera de la

siguiente manera. Se suman los tiempos de procesos para cada trabajo del

conjunto B en todas las máquinas y con estos resultados se

emplea la regla SPT (Shortest Processing Time), ordenando los trabajos del

conjunto B de menor a mayor suma de los tiempos de procesos en todas las

máquinas. Con este orden se calcula el valor de la suma de los tiempos de

finalización y éste será el valor de épsilon. La elección de este proceso es para

garantizar que no haya ningún valor de épsilon demasiado pequeño que haga el

problema infactible, y que no haya ningún valor de épsilon demasiado grande que

haga el problema trivial.

Page 55: Trabajo Fin de Grado - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/90100/fichero/TFG-LUCIA+SORIANO... · Esta minimización conduce a un uso estable de los recursos,

55

4.4.2 Resultados

En este apartado se ha llevado a cabo la resolución del problema para distintos

valores de , incrementando el número de trabajos en los conjuntos,

para ver el tiempo que puede llevarse el modelo buscando la solución óptima.

Para cada número de trabajos elegido en cada conjunto, se han creado diez

instancias y se han calculado para cada instancia, el valor de los tiempos de

procesos de todos los trabajos en dos máquinas y el valor de épsilon como se

especificó en el apartado 4.4.1. Con todos los datos calculados, y se procede

a formular el modelo mediante la forma especificada en el apartado 4.4 y a llamar

al solver Gurobi para que busque el óptimo en cada instancia. Esta función es la

que aparece descrita en el Anexo 6.3. Gurobi devuelve la solución óptima que

buscamos, el valor de la función objetivo en dicha solución óptima (es decir, la

suma de los tiempos de finalización de los trabajos del conjunto A) y el tiempo que

tarda en encontrar este óptimo. También devuelve los tiempos de finalización de

todos los trabajos en todas las máquinas, de los que se sirve la función para

calcular la suma de tiempos de finalización del conjunto B (pudiendo comprobarse

así que la solución es factible, esta suma es menor o igual que épsilon).

A continuación se muestran los resultados obtenidos para .

Instancias Tiempo (seg)

1 2 2 164 496 164 0,016

2 2 2 283 679 283 0,031

3 2 2 276 611 276 0

4 2 2 173 489 173 0,031

5 2 2 231 491 231 0

6 2 2 194 492 194 0

7 2 2 158 471 158 0

8 2 2 243 457 243 0

9 2 2 185 426 185 0,016

10 2 2 205 428 205 0,016

Media de tiempos

0,011

Page 56: Trabajo Fin de Grado - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/90100/fichero/TFG-LUCIA+SORIANO... · Esta minimización conduce a un uso estable de los recursos,

56

Tabla 14: Resultados para

En la Tabla 14, se muestran los resultados obtenidos cuando el número de

trabajos elegido para ambos conjuntos es de dos. El tiempo que tarda Gurobi en

proporcionar el óptimo para cada instancia es prácticamente cero, da una solución

inmediata para tan pocos trabajos. También se puede observar en cada instancia

como la suma de los tiempos de terminación para el conjunto B nunca es mayor

que el épsilon calculado, siempre tiene que ser igual o menor.

Instancias Tiempo (seg)

1 3 3 520 1076 520 0,0468

2 3 3 639 1292 639 0,0936

3 3 3 276 849 276 0,2028

4 3 3 445 944 443 0,0780

5 3 3 343 914 343 0,0312

6 3 3 313 944 312 0,0936

7 3 3 465 897 465 0,1248

8 3 3 444 778 411 0,1716

9 3 3 423 650 422 0,1872

10 3 3 543 830 540 0,1404

Media de tiempos

0,1170

Tabla 15: Resultados para

En la Tabla 15, se muestran los resultados para seis trabajos en total, tres trabajos

pertenecen al conjunto A y otros tres pertenecen al conjunto B. Comparando la

tabla anterior con ésta se puede ver cómo se ha incrementado el tiempo que tarda

Gurobi en proporcionar una solución óptima, llegando de media a tardar en

resolver una instancia 0,2 segundos. Este tiempo sigue siendo muy bajo. Se sigue

observando el cumplimiento de la restricción (5) del apartado 4.3, la suma de los

tiempos de terminación del conjunto B se mantienen por debajo del valor que toma

épsilon, en cada instancia.

Page 57: Trabajo Fin de Grado - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/90100/fichero/TFG-LUCIA+SORIANO... · Esta minimización conduce a un uso estable de los recursos,

57

Instancias Tiempo (seg)

1 4 4 565 1225 565 0,2964

2 4 4 269 1000 254 0,1404

3 4 4 738 1474 738 0,4836

4 4 4 764 1227 761 0,2340

5 4 4 763 1721 763 0,2184

6 4 4 596 1522 569 0,2496

7 4 4 603 1486 603 0,0780

8 4 4 688 1346 674 0,2496

9 4 4 909 1495 877 0,3120

10 4 4 983 1156 983 0,3900

Media de tiempos 0,2652

Tabla 16: Resultados para

En la Tabla 16, se muestran los resultados al añadir un trabajo más a cada

conjunto con respecto al experimento de la Tabla 15. Ahora se procesan cuatro

trabajos del conjunto A y cuatro del conjunto B. En total se están procesando ocho

trabajos en las dos máquinas. El tiempo en segundos que tarda Gurobi en

proporcionar una solución óptima para cada instancia ha aumentado de nuevo,

pero sigue siendo un tiempo muy pequeño, décimas de segundos, no es un

tiempo todavía muy notable. Y cómo para todos los casos anteriores, puede verse

reflejada en la solución el criterio Épsilon Constraint elegido para los objetivos de

ambos conjuntos de trabajos.

Instancias Tiempo (seg)

1 5 5 652 2271 638 0,2180

2 5 5 844 2236 843 1,0608

3 5 5 700 1826 669 0,3590

4 5 5 838 2169 834 0,4840

5 5 5 777 1592 777 1,0608

6 5 5 1157 2364 1156 0,9050

Page 58: Trabajo Fin de Grado - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/90100/fichero/TFG-LUCIA+SORIANO... · Esta minimización conduce a un uso estable de los recursos,

58

7 5 5 590 2215 590 0,2650

8 5 5 788 1971 788 1,0608

9 5 5 1018 2357 1009 0,4520

10 5 5 1135 1852 1133 0,5620

Media de tiempos 0,6660

Tabla 17: Resultados para

En Tabla 17están expuestos los resultados obtenidos cuando el conjunto A tiene

para procesar cinco trabajos y el conjunto B otros cinco trabajos. Al aumentar en

dos el número total de trabajos pertenecientes a ambos conjuntos con respecto al

caso anterior (Tabla 16), el tiempo que tarda Gurobi en resolver cada instancia es

mayor pero sigue siendo la resolución muy rápida también. Aquí también se

presentan casos en los que la suma de tiempos de terminación de los trabajos del

conjunto B son menores que épsilon, como en la instancia 1, y casos en los que

esta suma es igual al valor de épsilon, por ejemplo la instancia 7.

Instancias Tiempo (seg)

1 6 6 1056 2857 1056 2,8236

2 6 6 904 3132 904 1,6380

3 6 6 1264 2993 1254 1,1076

4 6 6 1038 2862 1037 0,9204

5 6 6 1126 3305 1126 1,0140

6 6 6 1356 2984 1356 1,5600

7 6 6 1170 2958 1164 1,6848

8 6 6 1103 2803 1077 1,0764

9 6 6 1094 3276 1094 1,3728

10 6 6 1431 3451 1425 7,1604

Media de tiempos 2,0358

Tabla 18: Resultados para

Page 59: Trabajo Fin de Grado - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/90100/fichero/TFG-LUCIA+SORIANO... · Esta minimización conduce a un uso estable de los recursos,

59

En la Tabla 18, se vuelve a ver los resultados obtenidos al incrementar en uno los

trabajos de ambos conjuntos con respecto al experimento anterior, en el que la se

tenían en total diez trabajos. Ahora Gurobi tiene que programar doce trabajos,

cumpliendo que la suma de los tiempos de terminación de los trabajos del

conjunto B sea menor o igual que épsilon (comparando las columnas cuatro y seis

de la tabla, se ve que se cumple) y buscando el óptimo en la suma de los tiempos

de terminación de los trabajos del conjunto A (en la columna cinco, están las

soluciones óptimas proporcionadas por Gurobi en cada instancia). La media de

tiempos que tarda en dar la solución se ha incrementado bastante respecto a los

casos anteriores, pero aún así es un tiempo pequeño, dos segundos.

Instancias Tiempo (seg)

1 7 7 1734 4334 1718 100,1200

2 7 7 2085 4471 2080 147,6500

3 7 7 1277 3550 1277 15,8810

4 7 7 2080 4536 2075 15,8960

5 7 7 1410 2641 1404 68,9050

6 7 7 1860 4124 1858 38,1890

7 7 7 1487 3321 1469 13,0260

8 7 7 1373 3737 1371 790,1700

9 7 7 1500 2935 1497 13,8220

10 7 7 1430 3819 1429 3,5412

Media de tiempos

120,7200

Tabla 19: Resultados para

En la Tabla 19, se muestran los resultados obtenidos en las diez instancias para

catorce trabajos, siete pertenecientes al conjunto A y siete pertenecientes al

conjunto B. El tiempo medido en segundos, que tarda Gurobi en proporcionar la

solución óptima se ha incrementado considerablemente respecto a los casos

Page 60: Trabajo Fin de Grado - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/90100/fichero/TFG-LUCIA+SORIANO... · Esta minimización conduce a un uso estable de los recursos,

60

anteriores. Con este número de trabajos tarda una media de dos minutos,

mientras que en los casos anteriores no se llegaba a tardar ni el minuto. Se sigue

cumpliendo el criterio Épsilon Constraint.

A medida que aumentamos el número de los trabajos en cada conjunto (Tabla 20),

el tiempo que necesita Gurobi para buscar una solución óptima es mayor. Aunque

éste cambio se percibe más al incrementar a partir de 6 el número de trabajos.

1 0,0156 0,0468 0,2964 0,2184 2,8236 100,1200

2 0,0312 0,0935 0,1404 1 1,6380 147,6500

3 0 0,2028 0,4836 0,3588 1,1076 15,8810

4 0,0312 0,0780 0,2340 0,4836 0,9204 15,8960

5 0 0,0311 0,2184 1 1,0140 68,9050

6 0 0,0936 0,2496 0,9048 1,5600 38,1890

7 0 0,1248 0,0779 0,2652 1,6848 13,0260

8 0 0,1716 0,2496 1 1,0764 790,1700

9 0,0156 0,1872 0,3120 0,4524 1,3728 13,8220

10 0,0156 0,1404 0,3900 0,5616 7,1604 3,5412

Media de tiempos

0,0109 0,1170 0,2651 0,6661 2,0358 120,7200

Tabla 20: Tiempos que tarda Gurobi en resolver el problema

para

Este incremento de tiempo se puede percibir en la Ilustración 12, donde en el eje

abscisas están representados los problemas con los distintos números de trabajos

asignados a cada conjunto, y en el eje de ordenadas están representados los

tiempos medios que tarda el solver en dar la solución óptima.

Instancias

trabajos

Page 61: Trabajo Fin de Grado - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/90100/fichero/TFG-LUCIA+SORIANO... · Esta minimización conduce a un uso estable de los recursos,

61

Ilustración 12: Tiempos medios de resolución para el problema

para los

distintos tamaños

Al experimentar con un tamaño , el solver Gurobi tarda en dar una

solución óptima para el modelo en cada instancia, más de una hora, por lo tanto

se paró de experimentar. Se puede decir que es el umbral máximo de

trabajos para resolver el problema

con las herramientas Matlab

y Gurobi.

0

20

40

60

80

100

120

140

0 1 2 3 4 5 6 7 8

Page 62: Trabajo Fin de Grado - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/90100/fichero/TFG-LUCIA+SORIANO... · Esta minimización conduce a un uso estable de los recursos,

62

Page 63: Trabajo Fin de Grado - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/90100/fichero/TFG-LUCIA+SORIANO... · Esta minimización conduce a un uso estable de los recursos,

63

5 CONCLUSIONES

La secuenciación o la programación de operaciones es una forma de toma de

decisiones que juega un papel crucial en las industrias manufactureras y de

servicios. En el entorno competitivo actual la programación efectiva se ha

convertido en una necesidad para la supervivencia de las empresas en el

mercado. De ahí la necesidad de programar los trabajos para utilizar los recursos

de la manera más eficiente [Pinedo, 2012].

Por este papel que juega la secuenciación en la actualidad, se ha contribuido con

el estudio de dos problemas. Pero estos dos problemas no han sido dos

problemas clásicos de secuenciación con un único conjunto de trabajos. Sino

ambos, con dos conjuntos de trabajos que como vimos en el capítulo 3 tienen

algunas aplicaciones en la vida real.

Cada uno de los problemas ha tratado un caso particular de los distintos entornos

de las máquinas que se pueden dar en la programación de operaciones, paralelo y

serie. Cada uno de los problemas ha tratado diferentes objetivos, en uno el

makespan y en el otro, flow-time, para ambos conjuntos de trabajos. Pero han

tenido en común la manera de abordar el problema con varios conjuntos de

trabajos, es decir, no sobrepasando el valor del objetivo del conjunto B, una cierta

cantidad fijada, épsilon, y minimizando el objetivo del conjunto A.

Es por ello que para cada problema se han buscado mediante pequeños ejemplos,

los valores máximos y mínimos de este parámetro, examinando cuando el

problema se hace factible, o infactible, y buscando entre las soluciones factibles la

óptima.

A partir de analizar el comportamiento del problema en casos pequeños, se ha

modelado cada uno de ellos con programación lineal, una tarea bastante

complicada por la búsqueda de la linealidad, que facilita el proceso de resolución.

A pesar de esta premisa, el modelo obtenido para el problema de máquinas en

paralelo con dos conjuntos de trabajos y objetivo makespan para ambos, es

bastante complejo, por lo que no se ha llevado a cabo su programación con solver

Page 64: Trabajo Fin de Grado - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/90100/fichero/TFG-LUCIA+SORIANO... · Esta minimización conduce a un uso estable de los recursos,

64

(Gurobi en este caso). Por ello la programación de dicho modelo mediante algún

solver, puede ser una futura línea de investigación.

El modelado del segundo problema, minimizar el flow-time de dos conjuntos de

trabajos en un flow-shop, al ser más sencillo que el anterior y se ha programado

mediante lenguaje Matlab y ha sido resuelto por el solver Gurobi. Se ha probado

con distintos números de trabajos para cada conjunto para ver el tiempo que tarda

el solver en obtener el óptimo. Se ha obtenido que a partir de ocho trabajos para

cada conjunto, el programa tarda un tiempo excesivamente alto en dar la solución.

Por ello entre las futuras líneas de investigación de este problema, puede ser

resolverlo mediante otro solver, para comprobar si el tiempo computacional puede

bajar al aumentar el número de trabajos.

Ambos problemas se han abordado desde la búsqueda del óptimo, por lo que

otras posibles investigaciones, teniendo en cuenta que ambos problemas son NP,

sería abordar el problema desde una búsqueda aproximada de soluciones.

Page 65: Trabajo Fin de Grado - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/90100/fichero/TFG-LUCIA+SORIANO... · Esta minimización conduce a un uso estable de los recursos,

65

Page 66: Trabajo Fin de Grado - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/90100/fichero/TFG-LUCIA+SORIANO... · Esta minimización conduce a un uso estable de los recursos,

66

6 ANEXOS

6.1 BATERIA DE PROBLEMAS

function [m,nc,pA,pB]=bateria nc=8; m=2; pA=[]; for i=1:m for b=1:nc pA(i,b)=floor(random('unif',1,99)); end end pB=[]; for i=1:m for b=1:nc pB(i,b)=floor(random('unif',1,99)); end end DATOS=[pA pB]; dlmwrite('datostrabajos.txt',DATOS);

6.2 CÁLCULO ÉPSILON

function [epsilon]=calculoepsilon(pB,nB) A=pB(1,:) B=pB(2,:) for k=1:nB-1 for j=1:nB-1 if A(j)+B(j)>A(j+1)+B(j+1) aux=A(j) aux2=B(j) A(j)=A(j+1) B(j)=B(j+1) A(j+1)=aux B(j+1)=aux2 end end end pB=[A;B] datostrabajose=[pB] sumam1=datostrabajose(1,1) sumam2=sumam1+datostrabajose(2,1) epsilon=sumam2 for j=2:nB

Page 67: Trabajo Fin de Grado - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/90100/fichero/TFG-LUCIA+SORIANO... · Esta minimización conduce a un uso estable de los recursos,

67

sumam1=sumam1+datostrabajose(1,j) if sumam1<sumam2 sumam2=sumam2+datostrabajose(2,j) epsilon=sumam2+epsilon else sumam2=sumam1+datostrabajose(2,j) epsilon=sumam2+epsilon end end

6.3 MODELO MATEMÁTICO EN MATLAB

function [R1]=restriccion1(m,n) c=zeros(m,n); x=zeros(n,n); totalvariables=(m*n)+(n*n); R1=zeros(n,totalvariables); for j=1:n for i=1 c(i,j)=1; end R1j=[c(:)' x(:)']; R1(j,:)=R1j; c=zeros(m,n); end end

function [R2]=restriccion2(m,n) c=zeros(m,n); x=zeros(n,n); totalvariables=(m*n)+(n*n); R2=zeros((n*(m-1)),totalvariables); for i=2:m for j=1:n c(i,j)=1; c(i-1,j)=-1; R2j=[c(:)' x(:)']; R2(j,:)=R2j; c=zeros(m,n); end end end

function [R3]=restriccion3(m,n,nA) c=zeros(m,n);

Page 68: Trabajo Fin de Grado - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/90100/fichero/TFG-LUCIA+SORIANO... · Esta minimización conduce a un uso estable de los recursos,

68

x=zeros(n,n); totalvariables=(m*n)+(n*n); R3=zeros(1,totalvariables); for i=m for j=nA+1:n c(i,j)=1; end end R3=[c(:)' x(:)']; end

function [R4]=restriccion4(m,n) c=zeros(m,n); x=zeros(n,n); R4=[]; b=1; for i=1:m for j=1:n for k=j+1:n c(i,j)=1; c(i,k)=-1; x(j,k)=1000; R4b=[c(:)' x(:)']; R4(b,:)=R4b; b=b+1; c=zeros(m,n); x=zeros(n,n); end end end function [R5]=restriccion5(m,n) c=zeros(m,n); x=zeros(n,n); R5=[]; b=1; for i=1:m for j=1:n for k=j+1:n c(i,j)=1; c(i,k)=-1; x(j,k)=1000; R5b=[c(:)' x(:)']; R5(b,:)=R5b; b=b+1; c=zeros(m,n);

Page 69: Trabajo Fin de Grado - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/90100/fichero/TFG-LUCIA+SORIANO... · Esta minimización conduce a un uso estable de los recursos,

69

x=zeros(n,n); end end end function [b1]=independiente1(n,datostrabajos) b1=[]; for i=1 for j=1:n b1=[b1 datostrabajos(i,j)]; end end function [b2]=independiente2(datostrabajos,m,n) b2=[]; for i=2:m for j=1:n b2=[b2 datostrabajos(i,j)]; end end function [b3]=independiente3(epsilon) b3=epsilon; end function [b4]=independiente4(datostrabajos,n,m) b4=[]; for i=1:m for j=1:n for k=j+1:n b4=[b4 datostrabajos(i,j)]; end end end function [b5]=independiente5(datostrabajos,n,m) b5=[]; for i=1:m for j=1:n for k=j+1:n b5=[b5 1000-datostrabajos(i,k)];

Page 70: Trabajo Fin de Grado - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/90100/fichero/TFG-LUCIA+SORIANO... · Esta minimización conduce a un uso estable de los recursos,

70

end end end function [objetivo]=vectorobjetivo(n,m,nA) c=zeros(m,n); x=zeros(n,n); for i=m for j=1:nA c(i,j)=1; end end objetivo=[c(:)' x(:)']; end RESULTADO=[]; for instancia=1:10 [m,nc,pA,pB]=bateria; load datostrabajos.txt; nA=nc; nB=nc; n=nA+nB; [epsilon]=calculoepsilon(pB,nB); [R1]=restriccion1(m,n); [R2]=restriccion2(m,n); [R3]=restriccion3(m,n,nA); [R4]=restriccion4(m,n); [R5]=restriccion5(m,n); A=[]; for j=1:n A=[A;R1(j,:)]; end for j=1:(n*(m-1)) A=[A;R2(j,:)]; end A=[A;R3]; [fil,col]=size(R4); for j=1:fil A=[A;R4(j,:)]; end for j=1:fil A=[A;R5(j,:)]; end [b1]=independiente1(n,datostrabajos); [b2]=independiente2(datostrabajos,m,n);

Page 71: Trabajo Fin de Grado - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/90100/fichero/TFG-LUCIA+SORIANO... · Esta minimización conduce a un uso estable de los recursos,

71

[b3]=independiente3(epsilon); [b4]=independiente4(datostrabajos,n,m); [b5]=independiente5(datostrabajos,n,m); B=[b1 b2 b3 b4 b5]; [objetivo]=vectorobjetivo(n,m,nA); model.A=sparse(A); model.obj=objetivo; model.rhs=B; for j=1:n model.sense(j)='>'; end for j=1:(n*(m-1)) model.sense(j+n)='>'; end model.sense(n+(n*(m-1))+1)='<'; for j=1:fil model.sense(j+n+(n*(m-1))+1)='>'; end [fil2,col2]=size(R5); for j=1:fil2 model.sense(j+n+(n*(m-1))+1+fil)='<'; end for z=1:(n*m) model.vtype(z)='C'; end for p=((n*m)+1):((n*m)+(n*n)) model.vtype(p)='B'; end model.modelsense='Min'; result=gurobi(model) disp(result.objval); disp(result.x); OBJETIVO=result.objval TIEMPO=result.runtime resultad=result.x'; totalB=0 for j=(2+(nA*2)):2:(n*2) totalB=totalB+resultad(j) end RESUL=[instancia nA nB epsilon OBJETIVO totalB TIEMPO]; RESULTADO(instancia,:)=RESUL; end dlmwrite('resultados.txt',RESULTADO);

Page 72: Trabajo Fin de Grado - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/90100/fichero/TFG-LUCIA+SORIANO... · Esta minimización conduce a un uso estable de los recursos,

72

Page 73: Trabajo Fin de Grado - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/90100/fichero/TFG-LUCIA+SORIANO... · Esta minimización conduce a un uso estable de los recursos,

73

BIBLIOGRAFIA

[Balasubramanian et al., 2009] Balasubramanian H., Fowler J., Keha A. and Pfund

M. (2009). Scheduling interfering job sets on parallel machines. European Journal

of Operational Research 199 (2009), 55–67.

[Pinedo, 2012] Pinedo, M. L. (2012). Scheduling: Theory, Algorithms, and

Systems.

[Lee et al., 2005] Lee W., Wu C. and Chen P. (2005). A simulated annealing

approach to makespan minimization on identical parallel machines.

[Agnetis et al., 2004] Agnetis A., Mirchandani P.B., Pacciarelli D., Pacifici A.,

(2003). Scheduling Problems with Two Competing Agents. Scheduling Problems

Operations Research 52(2), pp. 229–242.

[Tseng et al. ,2004] Tseng F.T., Stafford Jr. E.F, Gupta J. An empirical analysis of

integer programming formulations for the permutation fowshop. Omega 32 (2004)

285 – 293.

[J.M. Framinan et al. ,2005] Framinan J.M., Leisten R., Ruiz-Usano R., (2005).

Comparison of heuristics for flowtime minimisation in permutation flowshops.

Computers & Operations Research 32 (2005) 1237–1254.

[Zhao et al., 2012] Zhao K., Lu X., (2012). Approximation schemes for two-agent

scheduling on parallel machine. Theoretical Computer Science (2012), doi:

10.1016/j.tcs.2012.11.002.

[Framinan et al., 2003] Framinan J.M., Listen R., (2003). An effcient constructive

heuristic for flowtime minimisation in permutation flow shops. Omega 31 (2003)

311 – 317.

[Cheng et al., 1990] Cheng T.C.E., Sin C.C.S., (1990). A state of the art review of

parallel machine scheduling research. European Journal of Operational Research

47 (1990) 271-292.

Page 74: Trabajo Fin de Grado - Servidor de la Biblioteca de ...bibing.us.es/proyectos/abreproy/90100/fichero/TFG-LUCIA+SORIANO... · Esta minimización conduce a un uso estable de los recursos,

74

[Cortés et al., 2010] Cortés P., Onieva L., (2010). Ingeniería de organización.

Modelos y aplicaciones.

[R.L. Graham, 1977] R. L. Graham, E. L. Lawler, J. K. L. A. H. G. R. K. (1977).

Optimization and approximation in deterministic sequencing and scheduling: A

survey.

[Pérez-González et al., 2014] Pérez-Gonzalez P., Framinan J.M., (2014). A

common framework and taxonomy for multicriteria scheduling problems with

interfering and competing jobs: Multi-agent scheduling problems. European Journal

of Operational Research 235 (2014) 1–16.

[Canca, 2013] Canca O. J. D., (2013) Construcción de modelos de programación

lineal. “Apuntes de Técnicas de Optimización”, GITI.

[Huson, 2014] Huson C., (2014) Modelo de Programación Lineal y Metaheurística

aplicada a la resolución de un problema de secuenciación.