La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Introducción a la secuenciación

Presentaciones similares


Presentación del tema: "Introducción a la secuenciación"— Transcripción de la presentación:

1 Introducción a la secuenciación
Paz Pérez González Sistemas de Producción Integrados Curso 2008/2009 Secuenciación

2 Índice Ejemplo: Los aprendices de Adriá Secuenciación de tareas
Problema de secuenciación Algoritmo Complejidad Conclusiones

3 Índice Ejemplo: Los aprendices de Adriá Secuenciación de tareas
Problema de secuenciación Algoritmo Complejidad Conclusiones

4 Ejemplo: Los aprendices de Adrià
Juan y Antonio: Compañeros de piso y estudiantes de ingeniería Quieren impresionar a dos chicas con sus habilidades en la cocina Prepararán una cena espectacular para los cuatro Problema: Juan sólo sabe manejar el microondas Antonio sólo sabe manejar el libro de recetas de su madre

5 Ejemplo: Los aprendices de Adrià
Lista de platos: 1er plato: Ensalada con almendras fundidas Lavar y cortar verduras Plato frío, sólo fundir las almendras (5 minutos de horno) Preparar 2º plato: Pato a la naranja Preparar pato con el zumo de naranja Hornear durante 60 minutos a 250 ºC Postre: Bizcocho Comprado en el supermercado, solo desenvolver, calentar en el horno 90 minutos a 200 º C y presentar

6 Ejemplo: Los aprendices de Adrià
Organización: Antonio queda a cargo de la preparación y vigilar el horno Juan queda a cargo de la presentación final Estimación de tiempos (minutos): Preparación (Antonio) Horno Presentación (Juan) 1er plato 30 5 20 2º plato 60 postre 90

7 Ejemplo: Los aprendices de Adrià
Decisión: ¿cuál debería ser el orden de cada una de las tareas para acabar lo antes posible? Intentar dar una solución en 5 minutos Preparación (Antonio) Horno Presentación (Juan) 1er plato 30 5 20 2º plato 60 postre 90

8 Ejemplo: Los aprendices de Adrià
Diagrama de Gantt: Herramienta básica para la representación y cálculo de soluciones a los problemas de secuenciación Ejemplo: representar decisión primer plato ( ), segundo plato ( ), postre ( ) Preparación Horno Presentación T. terminación = 205 min.

9 Ejemplo: Los aprendices de Adrià
¿Son decisiones relevantes? ¿Existe alguna diferencia entre una decisión y otra? Lista exhaustiva de todas las decisiones posibles: Decisión Tiempo terminación (min.) (primero, segundo, postre) 205 (segundo, primero, postre) 180 (postre, primero, segundo) 162 (segundo, postre, primero) 195 (primero, postre, segundo) 190 (postre, segundo, primero) 177

10 Ejemplo: Los aprendices de Adrià
Entre la mejor decisión y la peor, hay un 26,5% de diferencia: Ahorro de tiempo Ahorro de costes

11 Índice Ejemplo: Los aprendices de Adriá Secuenciación de tareas
Problema de secuenciación Algoritmo Complejidad Conclusiones

12 Secuenciación de tareas
Definición: Asignación de tareas a recursos escasos a lo largo del tiempo. Se trata de adoptar una decisión (de entre un conjunto de decisiones posibles) para optimizar uno o varios objetivos ¿Dónde aparecen problemas de secuenciación? En la mayor parte de decisiones en la ingeniería de organización, tanto en la industria como en los servicios Relevancia de la secuenciación ¿Es importante tomar la decisión de secuenciación correcta? En el ejemplo quedaba claro, pero… ¿también en la práctica? Algunos estudios sobre el impacto de la secuenciación: Taillard Wein

13 Secuenciación de tareas
Dificultad de la secuenciación ¿Es difícil tomar la mejor decisión del conjunto posible? Depende del tamaño del problema En general, sí De hecho, se demuestra que para muchos problemas no es factible encontrar la mejor solución del conjunto posible Restricción adicional: intervalo de decisión

14 Índice Ejemplo: Los aprendices de Adriá Secuenciación de tareas
Problema de secuenciación Algoritmo Complejidad Conclusiones

15 Problema de secuenciación
Formulación general de una decisión a tomar Un problema se caracteriza por un conjunto de parámetros o datos de entrada que son necesarios para resolver el problema. Cuando se le dan unos valores concretos a los parámetros de un problema se genera una instancia de ese problema Proceso de toma de decisiones para planificar la producción, con el propósito de optimizar uno o más objetivos Decisión sobre el orden de paso de los trabajos/pedidos por los centros de trabajo (máquinas)

16 Problema de secuenciación
En general es un problema de optimización en el que se busca la secuencia (orden de los trabajos en las máquinas) para minimizar un objetivo, bajo ciertas restricciones. Hallar la secuencia óptima para Min f.o s.a r1 … rn ¿De qué datos disponemos? ¿Qué funciones objetivos, y qué restricciones?

17 Problema de secuenciación
Parámetros del problema (datos) n: número de trabajos m: número de máquinas pij: tiempo de proceso del trabajo j en la máquina i rj: release del trabajo j dj: fecha de entrega del trabajo j wj: peso del trabajo j rj dj wj pij

18 Problema de secuenciación
Parámetros del problema (para una secuencia dada) Sij: tiempo de comienzo del trabajo j en la máquina i Cij: tiempo de terminación del trabajo j en la máquina i [j]: trabajo en la posición j-ésima M1 M2 M3 Sij Cij

19 Problema de secuenciación
Parámetros del problema (Relacionados con las fechas de entrega) Cj : tiempo de terminación del trabajo j en el sistema Lj : retraso/adelanto del trabajo j con respecto a la fecha de entrega; Lj=Cj-dj Tj : tardanza; Tj=max(Lj, 0) Uj : trabajos tardíos; Uj=1 si Cj>dj , Uj=0 si Cj≤dj

20 Problema de secuenciación
Objetivos (Funciones objetivo (Minimizar)) No relacionados con fechas de entrega: Cmax=max(C1,…,Cn): Tiempo máximo de terminación (makespan). Instante en el que el último trabajo sale del sistema F= ΣCj: Tiempo de terminación total (flowtime) Fw= ΣwjCj: Tiempo de terminación ponderado total Relacionados con fechas de entrega: Lmax=max(L1,…,Ln): Máximo retraso. El peor de los casos en los que no se cumpla la fecha de entrega Tmax=max(T1,…,Tn), con Tj=max(Lj,0): Máxima tardanza. Considera sólo los retrasos, no los adelantos. T= ΣTj: Tardanza total nT= ΣUj: Número de trabajos tardíos

21 Problema de secuenciación
Algunos entornos típicos: Una máquina (1) Máquinas iguales en paralelo (Pm) Taller de flujo. Flow Shop. Máquinas en serie (Fm) Taller de flujo flexible. Flexible Flow Shop. Varios bloques en serie de máquinas en paralelo (FFs) Taller de trabajo. Job shop. Rutas predefinidas (Jm) Taller abierto. Open shop. Rutas a determinar (Om)

22 Problema de secuenciación
Ejemplo: problema AIRCOND Planta de ensamblado de aparatos de aire acondicionado. Una máquina de ensamblaje procesa los componentes  1 máquina Los componentes de cada aparato (distintos en cada caso) llegan a lo largo del tiempo  rj Cada aparato tiene un tiempo de ensamblaje distinto  pj Decisión: cómo secuenciar los pedidos de forma que se minimice el tiempo total de flujo (suma de los tiempos de terminación de cada componente)  F= ΣCj

23 Problema de secuenciación
Modelado (abstracción) del problema: Se tienen n trabajos a procesar en una máquina, cada uno con su tiempo de proceso pj y su instante mínimo de comienzo rj El objetivo del problema es determinar el orden de los trabajos de forma que se minimice la suma de los tiempos de flujo (Min F= ΣCj) Parámetros del problema: Número de trabajos (n) Tiempo de proceso del trabajo j (pj) Tiempo mínimo de comienzo de j (rj)

24 Problema de secuenciación
Instancia Caso concreto de un problema Ejemplo: Instancia del problema AIRCON El día a las 8:00 se debe decidir el orden de los siguientes trabajos: Trabajo Tiempo proceso (pj) T. Mínimo comienzo (rj) #1 20 8:00 #2 10 #3 25 8:30 #4 15 #5 30 9:00

25 Problema de secuenciación
Solución La solución es una respuesta a una instancia de un problema de decisión A veces se distingue entre solución admisible y solución inadmisible Solución óptima Si una solución es la mejor (respecto al objetivo que se ha fijado) entre todas las soluciones posibles, la solución se dice que es óptima

26 Índice Ejemplo: Los aprendices de Adriá Secuenciación de tareas
Problema de secuenciación Algoritmo Complejidad Conclusiones

27 Algoritmo Conjunto de pasos que se aplican de forma sistemática para resolver un problema En el contexto de secuenciación, servirán para evaluar soluciones o resolver instancias de un problema. Se suelen expresar en forma de pseudo-código

28 Algoritmo Algoritmo calcula_tiempo_flujo(n, ri, pi, S) Pseudocódigo:
Evaluamos una solución S del problema AIRCOND [i] indica la posición i ([i]  i ) C[i]: tiempo de finalización del trabajo que ocupa la posición i en la secuencia dada S Por ejemplo: p[i] tiempo de proceso del trabajo que ocupa la posición i en S r[i] tiempo mínimo de comienzo del trabajo que ocupa la posición i en S Pseudocódigo: C[1]= r[1] + p[1] Tiempo_flujo = 0 For i=2 to i=n C[i]= max{r[i], C[i-1]} + p[i] Tiempo_flujo = Tiempo_flujo + C[i]

29 Algoritmo Un algoritmo también puede describir una forma de generar soluciones admisibles (o incluso óptimas) para un problema Ejemplo: algoritmo ERT (Earliest Release Time) para el problema AIRCOND Descripción de ERT: Ordenar los trabajos de menor a mayor rj (primero se procesan los que llegan antes)

30 Índice Ejemplo: Los aprendices de Adriá Secuenciación de tareas
Problema de secuenciación Algoritmo Complejidad Conclusiones

31 Complejidad La complejidad de un algoritmo define cómo se incrementan el número de cálculos necesarios en función de los parámetros del problema La complejidad se denota como O(parametros) Ejemplos: calcula_tiempo_flujo es O(n) ordenar una lista de n elementos es O(n log (n) ) Resolver el problema de AIRCOND mediante la evaluación de todas las opciones posibles es O(n!)

32 Complejidad A grandes rasgos, se definen dos tipos de algoritmos en función de la complejidad: POLINOMIALES (P): Su complejidad es una función polinómica Ejemplo: ordenar una lista es P NO POLIMONIALES (NP): Su complejidad es mayor que la de una función polinómica Ejemplo: evaluar todas las soluciones de AIRCOND es NP Dicho de otra manera, el tiempo de computación de un algoritmo P (NP) crece de forma (no) polinomial con el tamaño del problema Ya se ha visto la importancia de encontrar métodos P para resolver los problemas

33 Complejidad Historia Años 50-70: No se encuentran métodos P (simplex no lo es) para la mayoría de los problemas de secuenciación … pero se seguía buscando Años 70: Cook (1974) demuestra que existen 6 modelos ‘padres’ de los que se derivan muchos otros modelos (hijos): conjunto de problemas NP Si se encuentra un método P para un modelo ‘padre’, se puede aplicar a los modelos ‘hijos’ Años 80: Practicamente todos los modelos de secuenciación plantean problemas NP Luego basta con encontrar un método eficiente para resolver el problema ‘padre’ Año 2009: Todavía no se ha encontrado un método P para los modelos ‘padres’ Luego no se ha encontrado un método P para los problemas ‘hijos’ de SCM

34 Índice Ejemplo: Los aprendices de Adriá Secuenciación de tareas
Problema de secuenciación Algoritmo Complejidad Conclusiones

35 Conclusiones A día de hoy, no se han encontrado métodos para resolver de forma óptima la mayor parte de problemas de secuenciación Además, hay pocas esperanzas ¿Cómo se aborda este problema en la práctica? Métodos aproximados Instancias pequeñas

36 Conclusiones Métodos aproximados Similitud Métodos genéricos
Algunos modelos sí se resuelven en P. Las soluciones óptimas de modelos en P se utilizan para obtener buenas soluciones de modelos NP Ejemplo: una máquina  flujo regular Métodos genéricos Heurísticas ad hoc  reglas ‘de sentido común’ Metaheurísticas  procedimientos generales

37 Conclusiones Instancias pequeñas
Aunque los problemas sean NP, si se trata de una instancia pequeñas (pocas máquinas, pocos trabajos), si puede ser factible resolver el problema en poco tiempo Métodos eficientes (exactos) de resolución de problemas Métodos de enumeración Branch & bound (ramifica y acota)

38 Entornos en secuenciación
Paz Pérez González Sistemas de Producción Integrados Curso 2008/2009 Secuenciación

39 Índice Secuenciación Entornos máquina Condiciones del sistema
Función Objetivo Una máquina Máquinas en paralelo Taller de flujo Taller de trabajo Taller abierto Conclusiones

40 Índice Secuenciación Entornos máquina Condiciones del sistema
Función Objetivo Una máquina Máquinas en paralelo Taller de flujo Taller de trabajo Taller abierto Conclusiones

41 Secuenciación Asignación de tareas a recursos a lo largo del tiempo
Proceso de toma de decisiones para planificar la producción, con el propósito de optimizar uno o más objetivos Decisión sobre el orden de paso de los trabajos/pedidos por los centros de trabajo (máquinas) ¿Dónde aparecen problemas de secuenciación? En la mayor parte de decisiones en la ingeniería de organización, tanto en la industria como en los servicios

42 Secuenciación Notación: α|β|γ Recordar: Ejemplo: Fm|prmu|Cmax
α  Entorno máquina 1, Pm, Fm, Jm, Om β  Condiciones del sistema prmu, dj, rj,… γ  Función objetivo Cmax, Lmax, Tmax, F, T,… Recordar: n: número de trabajos, 1≤ j ≤ n m: número de máquinas, 1 ≤ i ≤ m Ejemplo: Fm|prmu|Cmax

43 Índice Secuenciación Entornos máquina Condiciones del sistema
Función Objetivo Una máquina Máquinas en paralelo Taller de flujo Taller de trabajo Taller abierto Conclusiones

44 Entornos máquina Una máquina (1) Máquinas iguales en paralelo (Pm)
Taller de flujo. Flow Shop. Máquinas en serie (Fm) Taller de trabajo. Job shop. Rutas predefinidas (Jm) Taller abierto. Open shop. Rutas a determinar (Om)

45 Índice Secuenciación Entornos máquina Condiciones del sistema
Función Objetivo Una máquina Máquinas en paralelo Taller de flujo Taller de trabajo Taller abierto Conclusiones

46 Condiciones del sistema
Fechas de disponibilidad del trabajo (rj) Fechas de entrega (dj) Tiempo de preparación entre trabajos (setup times) (sjk) Interrupción (preemption, prmp) Precedencia (prec) – Una máquina o en paralelo Rotura de la máquina (brkdwn) Permutación (prmu) – Taller de flujo Bloqueo (block) – Taller de flujo No espera (nwt) – Taller de flujo Secuenciación

47 Condiciones del sistema
Release del trabajo (rj) Instante de disponibilidad del trabajo j P. ej. Un taller de reparaciones. Cada trabajo llega cuando el cliente entrega el objeto a reparar Fechas de entrega (dj) Instante en el que el trabajo debe de estar terminado Pueden estar dadas por el cliente, o ser estimadas en la planificación r1 r2 d1 d2 Secuenciación

48 Condiciones del sistema
Tiempo de preparación entre trabajos (setup times) (sjk). Si depende de la máquina se nota sijk. Tiempo de espera del trabajo k después de procesarse el trabajo j. P. ej. Cambiar una pieza o limpiar la máquina antes de procesar un trabajo S12 S12 Secuenciación

49 Condiciones del sistema
Interrupción (preemption,prmp) Se permite parar de procesar un trabajo, para procesar otro. Luego el anterior o se reanuda, o empieza de nuevo. P. ej. Por distintas causas: llegada de un trabajo mas urgente, por necesidad (falta una pieza), para obtener menos tiempos ociosos de las máquinas, etc. Rotura de la máquina (brkdwn) Trabajo iterrumpido Trabajo a iterrumpir 26 22 Secuenciación

50 Condiciones del sistema
Permutación (prmu) El orden de los trabajos es el mismo para todas las máquinas P.ej. El ejemplo de los aprendices de Adrià. Primer plato ( ), segundo plato ( ), postre ( ) Preparación Preparación Horno Horno Presentación Presentación Sin prmu, el bizcocho necesita enfriarse más tiempo, y el pato debe reposar para macerarse, y estar caliente para llevarlo a la mesa prmu Secuenciación

51 Condiciones del sistema
Bloqueo (block) Si el búffer (almacenaje) entre máquinas es limitado y se llena, la máquina que ha terminado el trabajo no puede liberarse (se bloquea). Cuando la máquina siguiente quede libre entra el siguiente trabajo, desbloqueando la anterior. Se supone búffer infinito cuando los ítems son pequeños (p.ej. tornillos) Si el búffer es cero, el trabajo no deja la máquina hasta que la siguiente está libre. Secuenciación

52 Índice Secuenciación Entornos máquina Condiciones del sistema
Función Objetivo Una máquina Máquinas en paralelo Taller de flujo Taller de trabajo Taller abierto Conclusiones

53 Función Objetivo No relacionados con fechas de entrega:
Cmax=max(C1,…,Cn): Tiempo máximo de terminación (makespan). Instante en el que el último trabajo sale del sistema F= ΣCj: Tiempo de terminación total (flowtime) Fw= ΣwjCj: Tiempo de terminación ponderado total Relacionados con fechas de entrega: Lmax=max(L1,…,Ln): Máximo retraso. El peor de los casos en los que no se cumpla la fecha de entrega Tmax=max(T1,…,Tn), con Tj=max(Lj,0): Máxima tardanza. Considera sólo los retrasos, no los adelantos. T= ΣTj: Tardanza total nT= ΣUj: Número de trabajos tardíos

54 Índice Secuenciación Entornos máquina Condiciones del sistema
Función Objetivo Una máquina Máquinas en paralelo Taller de flujo Taller de trabajo Taller abierto Conclusiones

55 Una máquina 1|β|γ Simpleza Caso especial de los demás medios
Un medio más complejo se puede estudiar como una sola máquina Una consulta de un médico suele estar secuenciada mediante la regla FIFO (First In First Out) Secuenciación

56 Una máquina 1||Cmax Makespan o tiempo máximo de terminación: Cmax=max(C1,…,Cn), con Cj tiempo de terminación del trabajo j en el sistema (instante en el que sale del sistema) El problema se denota 1||Cmax Ejemplo: Secuenciar en una máquina 4 trabajos con el objetivo de minimizar el makespan, si los tiempos de proceso son: p1=4 p2=10 p3=6 p4=18 Secuenciación

57 Una máquina 1||Cmax Cuando no hay ninguna restricción la resolución de este problema es inmediato Cmax=Σ pj Secuencia [1,2,3,4] M1 38 Secuencia [3,4,1,2] M1 38 Secuencia [4,2,1,3] M1 38 Secuenciación

58 Una máquina 1||ΣCj Flowtime o tiempo de flujo para un trabajo j de una secuencia dada es el tiempo que transcurre desde que entra el primer trabajo de la secuencia hasta que sale el trabajo j-ésimo El tiempo de flujo total es: F=ΣCj = C1+…+Cn El problema se denota 1||ΣCj Secuenciación

59 Una máquina 1||ΣCj Ejemplo: Secuenciar en una máquina 4 trabajos con el objetivo de minimizar el tiempo de flujo total, si los tiempos de proceso son: p1=4 p2=10 p3=6 p4=18

60 Una máquina 1||ΣCj ΣCj=C1+…+Cn=
Se observa que en una máquina el tiempo de flujo es Cj=p[1]+…+p[j] La regla SPT (Shortest Processing Time) es óptima para este problema. SPT: secuenciar primero el trabajo con menor tiempo de proceso p[1]<p [2] <…<p[n] p[1]+ p[1]+p[2]+ p[1]+p[2]+p[3]+ +……+ p[1]+p[2]+…… +p[n] ΣCj=C1+…+Cn= np[1]+ (n-1)p[2]+……+p[n] Secuenciación

61 Una máquina 1||ΣCj Regla SPT para el ejemplo anterior ΣCj =72 ΣCj =82
Secuencia optima ΣCj =72 1 3 2 4 Secuencia [1,2,3,4] ΣCj =82 Secuencia [3,4,1,2] ΣCj =96 Secuencia [4,2,1,3] ΣCj = 120 Secuenciación

62 Una máquina 1||ΣwjCj Tiempo de flujo total ponderado: Fw=ΣwjCj = w1C1+…+wnCn Es la extensión del problema anterior El problema se denota 1||ΣwjCj El peso es un factor de importancia añadido a cada trabajo j. Secuenciación

63 Una máquina 1||ΣwjCj Ejemplo: Secuenciar en una máquina 4 trabajos minimizando el tiempo de flujo total ponderado, si los tiempos de proceso y los pesos asociados son: p1=3 p2=6 p3=6 p4=5 w1=0 w2=18 w3=12 w4=8 Secuenciación

64 Una máquina 1||ΣwjCj La regla WSPT (Weighted Shortest Processing Time) es óptima para este problema. Esta regla secuencia los trabajos según: w[1]/p[1] > w[2]/p[2] > …> w[n]/p[n] Secuenciación

65 Una máquina 1||ΣwjCj Ejemplo: Secuenciar en una máquina 4 trabajos minimizando el tiempo de flujo total ponderado, si los tiempos de proceso y los pesos asociados son: p1=3 p2=6 p3=6 p4=5 w1=0 w2=18 w3=12 w4=8 Secuencia optima ΣwjCj =388 2 3 4 1 Secuencia [1,2,3,4] ΣwjCj =502 Secuencia [3,4,1,2] ΣwjCj =520 Secuenciación

66 Una máquina 1||Lmax El retraso para un trabajo j es la diferencia entre el instante en el que el trabajo sale del sistema y la fecha de entrega. Lj = Cj-dj Minimizar el máximo retraso es : Min Lmax=Min max(Cj – dj) El problema se denota 1||Lmax Secuenciación

67 Una máquina 1||Lmax Ejemplo: Secuenciar en una máquina 4 trabajos con el objetivo de minimizar el máximo retraso, si los tiempos de proceso y las fechas de entrega son: p1=4 p2=10 p3=6 p4=18 d1=8 d2=12 d3=11 d4=10

68 Una máquina 1||Lmax La regla EDD (Earliest Due Date) es óptima para este problema. EDD: secuenciar primero el trabajo con menor fecha de entrega d[1]<d[2]<…<d[n] Secuenciación

69 Una máquina 1||Lmax Ejemplo: Secuenciar en una máquina 4 trabajos con el objetivo de minimizar el máximo retraso, si los tiempos de proceso y las fechas de entrega son: p1=4 p2=10 p3=6 p4=18 d1=8 d2=12 d3=11 d4=10 1 4 3 2 Lmax = max {C[1]-d[1], C[2]-d[2], C[3]-d[3], C[4]-d[4]} = max {4-8,14-12,20-11,38-10} = max{-4,2,9,28} = 28

70 Índice Secuenciación Entornos máquina Condiciones del sistema
Función Objetivo Una máquina Máquinas en paralelo Taller de flujo Taller de trabajo Taller abierto Conclusiones

71 Máquinas en paralelo Máquinas iguales en paralelo (Pm)
Los trabajos pueden ser procesados en cualquiera de las máquinas P. ej. Un consultorio con varias consultas de médicos. Las cajas de un supermercado. Secuenciación

72 Máquinas en paralelo Pm|β|γ Generalización del caso con una máquina
Caso especial del taller de flujo flexible Es un caso muy común en la vida real Un ejemplo puede ser las cajas de un supermercado

73 Máquinas en paralelo Pm||Cmax
Este problema es NP La regla LPT es un algoritmo que proporciona buenas soluciones, con un determinado error en comparación con la óptima (si ésta se puede hallar). LPT: Longest Processing Time first. LPT: Asignar primero los m trabajos con mayor tiempo de proceso a las m máquinas. Cuando una máquina se quede libre, asignar el siguiente trabajo a dicha máquina, hasta que se hayan asignado todos.

74 Máquinas en paralelo Pm||Cmax
Ejemplo: Secuenciar en 3 máquinas en paralelo 9 trabajos con los siguientes tiempos de proceso: p1=3 p4=10 p7=6 p2=18 p5=9 p8=9 p3=4 p6=15 p9=10 Secuenciación

75 Máquinas en paralelo Pm||Cmax
La regla LPT da una solución buena, pero no la óptima p1=3 p4=10 p7=6 p2=18 p5=9 p8=9 p3=4 p6=15 p9=10 M1 2 8 M2 6 5 3 M3 4 9 7 1 29 Secuenciación

76 Máquinas en paralelo Pm||Cmax
Existe una cota para la relación entre la solución óptima y la que da la regla, por lo que sabemos cómo es de buena nuestra solución Cmax(LPT)/Cmax(OPT) ≤ 4/3 – 1/3m 29 ≤ (4/3 – 1/9)* Cmax(OPT) = 1.22* Cmax(OPT) M1 2 7 3 M2 6 9 1 M3 4 8 5 28 Secuenciación

77 Máquinas en paralelo Pm||ΣCj
Este problema es P La regla SPT es óptima. SPT: Shortest Processing Time first. SPT: Asignar primero los m trabajos con menor tiempo de proceso a las m máquinas. Cuando una máquina se quede libre, asignar el siguiente trabajo a dicha máquina, hasta que se hayan asignado todos. Ejercicio: Resolver el problema con los datos del anterior para este caso.

78 Índice Secuenciación Entornos máquina Condiciones del sistema
Función Objetivo Una máquina Máquinas en paralelo Taller de flujo Taller de trabajo Taller abierto Conclusiones

79 Taller de flujo Taller de flujo. Flow Shop. Máquinas en serie (Fm)
Todos los trabajos deben de pasar por todas las máquinas, con la misma ruta, empezando por una primera hasta la última Cuando un trabajo termina en una máquina, espera en la cola de la siguiente si esta está ocupada. Las salidas de los trabajos de las colas se determinan con la regla FIFO. Secuenciación

80 Taller de flujo El aprendiz de Adrià es un problema de tipo flowshop
Trabajos Máquinas Preparación Horno Presentación Secuenciación

81 Taller de flujo F2||Cmax
El algoritmo de Johnson es óptimo para este problema Sea C1={j/ p1j<p2j} y C2={j/ p1j>p2j} Ordenar C1 según la regla SPT para p1j Ordenar C2 según la regla LPT para p2j La secuencia [SPT(1)-LPT(2)] es óptima para nuestro problema

82 Taller de flujo F2||Cmax
Ejemplo: Secuenciar en un taller de flujo de dos máquinas 5 trabajos, con los siguientes tiempos de proceso: Dar el valor del makespan. Hallar el makespan para otra secuencia cualquiera y comprobar que da igual o peor que para la secuencia dada por el algoritmo de Johnson. j 1 2 3 4 5 p1j p2j

83 Taller de flujo F2||Cmax
Secuencia óptima: [4,5,2,1,3] Otra secuencia [5,1,3,4,2] 1 2 3 4 5 M1 M2 16 M1 M2 19

84 Taller de flujo Fm|prmu|Cmax
Fm||Cmax es NP para más de dos máquinas  Fm|prmu|Cmax es NP también Numerosos métodos heurísticos proporcionan buenas soluciones para estos problemas La heurística constructiva NEH da buenas soluciones para Fm|prmu|Cmax en tiempos de cómputo razonables

85 Taller de flujo Fm|prmu|Cmax
NEH Paso 1: Ordenar los trabajos en función de la suma de los tiempos de proceso (pj= ∑ipij) de forma descendente. La secuencia obtenida es la secuencia inicial. Paso 2: Tomar los dos primeros trabajos de la secuencia inicial y seleccionar de los dos órdenes posibles el que de mejor valor de Cmax Paso 3: Para cada trabajo j de la secuencia inicial, hallar el makespan de las j posibles secuencias obtenidas tras insertar el trabajo en todas las posiciones posibles, seleccionando aquella que de menor valor.

86 Taller de flujo Fm|prmu|Cmax
Ejemplo: Secuenciar en 3 máquinas en serie 3 trabajos con los siguientes tiempos de proceso (pij, 1≤i≤m, 1≤j≤n) p11=3 p21=4 p31=2 1 p12=2 p22=1 p32=4 2 p13=4 p23=5 p33=4 3 Secuenciación

87 Taller de flujo Fm|prmu|Cmax
Ejemplo: Secuenciar en 3 máquinas en serie 3 trabajos con los siguientes tiempos de proceso (pij, 1≤i≤m, 1≤j≤n) p11=3 p21=4 p31=2 1 p12=2 p22=1 p32=4 2 p13=4 p23=5 p33=4 3 p1=3+4+2=9 p2=2+1+4=7 p3=4+5+4=13 Secuencia inicial: [3,1,2] Secuenciación

88 Taller de flujo Fm|prmu|Cmax
[3,1] M1 M2 M3 15 [1,3] M1 M2 M3 16

89 Taller de flujo Fm|prmu|Cmax
[2,3,1] [3,2,1] M1 M2 M3 17 19 [3,1,2] M1 M2 M3 19

90 Índice Secuenciación Entornos máquina Condiciones del sistema
Función Objetivo Una máquina Máquinas en paralelo Taller de flujo Taller de trabajo Taller abierto Conclusiones

91 Taller de trabajo Taller de trabajo. Job shop. Rutas predefinidas (Jm)
Los trabajos deben pasar por todas las máquinas, y las rutas están predefinidas. Trabajo1 Trabajo2 Trabajo3 Secuenciación

92 Taller de trabajo J2||Cmax
Se puede reducir al problema F2||Cmax, por lo que es resoluble en tiempo polinomial J1= {j/ M1-M2} y J2= {j/ M2-M1} Ordenar los trabajos de J1 mediante el algoritmo de Johnson. Ordenar los trabajos de J2 mediante el algoritmo de Johnson intercambiando la máquinas, es decir, tomando como máquina 1 la máquina 2 y viceversa. Secuenciar los trabajos de J= J1 U J2 en cada una de las máquinas, priorizando los trabajos de J1 en la máquina 1, y los trabajos de J2 en la máquina 2.

93 Taller de trabajo J2||Cmax
Ejemplo: Secuenciar en un taller de trabajo de dos máquinas 5 trabajos, con los siguientes tiempos de proceso y rutas de paso por las máquinas: j 1 2 3 4 5 p1j p2j Ruta M2-M1 M1-M2

94 Taller de trabajo J2||Cmax
J1={3,4,5}: C1={4,5}, C2={3}  [4,5,3] J2={1,2}: C1={1,2}, C2=Ø  [1,2] j 1 2 3 4 5 p1j p2j Ruta M2-M1 M1-M2 [4,5,3,1,2] M1 [1,2,4,5,3] M2 15

95 Taller de trabajo Jm||Cmax
Jm||Cmax es NP pq es una generalización de Fm||Cmax, y éste último es NP La heuristica Shifting Bottleneck proporciona buenos resultados. Este método reduce el problema en varios subproblemas 1|rj|Lmax mediante un procedimiento basado en caminos críticos (que indican la localización del cuello de botella). Como 1|rj|Lmax es NP, un método de Branch and Bound que proporciona buenas soluciones es aplicado para cada subproblema de Jm||Cmax

96 Índice Secuenciación Entornos máquina Condiciones del sistema
Función Objetivo Una máquina Máquinas en paralelo Taller de flujo Taller de trabajo Taller abierto Conclusiones

97 Taller abierto Taller abierto. Open shop. Rutas a determinar (Om)
Los trabajos deben pasar por todas las máquinas, pero no hay restricción en la ruta. Cada trabajo puede pasar primero por la máquina que mejor convenga. Secuenciación

98 Taller abierto O2||Cmax
La Regla LAPT (Longest Alternate Processing Time first) es óptima para este problema. Cuando una máquina está libre, seleccionar el trabajo con el mayor tiempo de proceso en la otra máquina. Al principio, puede que un trabajo pueda ser seleccionado para ser secuenciado primero en las dos máquinas. En este caso da igual la máquina en el que éste sea procesado. Cuando una máquina está libre, los trabajos que ya han sido completados en la otra máquina tienen prioridad cero para procesarse en la máquina libre. Dos trabajos que ya han sido procesados en una de las máquinas tienen la misma prioridad para la otra.

99 Taller abierto O2||Cmax
Ejemplo: Secuenciar en un taller abierto de dos máquinas 5 trabajos, con los siguientes tiempos de proceso: j 1 2 3 4 5 p1j p2j

100 Taller abierto O2||Cmax
El trabajo con mayor tiempo de proceso es el trabajo 3 en la máquina 1, por lo tanto es secuenciado primero en la máquina 2. j 1 2 3 4 5 p1j p2j M1 M2 15

101 Taller abierto Om||Cmax
Es NP Si los tiempos de proceso son 0 ó 1, el problema es resoluble en tiempo polinomial Om|prmp|Cmax es resoluble en tiempo polinomial también

102 Conclusiones Hay algunos problemas de secuenciación que se pueden resolver mediante algoritmos que proporcionan la solución óptima La mayoría de los problemas son NP: 1 Pm Fm Jm Om 1||T P2||Cmax F2||∑Cj Jm||Cmax O2||∑Cj 1||∑wjUj P2||∑wjCj F2||Lmax O2||Lmax

103 Paz Pérez González Departamento de Organización Industrial y Gestión de Empresas taylor.us.es/paz


Descargar ppt "Introducción a la secuenciación"

Presentaciones similares


Anuncios Google