Dirección de Operaciones. Programación de …...Dirección de Operaciones. Programación de...

42
Dirección de Operaciones. Programación de operaciones: secuenciación y temporización Joaquín Bautista Valhondo, Rocío Alfaro Pozo y Alberto Cano Pérez D-12/2013 Publica: Universitat Politècnica de Catalunya www.upc.edu Edita: Cátedra Organización Industrial www.prothius.com [email protected] Departamento de Organización de Empresas Universidad Politécnica de Cataluña

Transcript of Dirección de Operaciones. Programación de …...Dirección de Operaciones. Programación de...

Page 1: Dirección de Operaciones. Programación de …...Dirección de Operaciones. Programación de operaciones: secuenciación y temporización Joaquín Bautista Valhondo, Rocío Alfaro

Dirección de Operaciones. Programación de operaciones: secuenciación y temporización

Joaquín Bautista Valhondo, Rocío Alfaro Pozo y Alberto Cano Pérez

D-12/2013

Publica: Universitat Politècnica de Catalunya www.upc.edu

Edita:

Cátedra Organización Industrial www.prothius.com

[email protected]

Departamento de Organización de Empresas

Universidad Politécnica de Cataluña

Page 2: Dirección de Operaciones. Programación de …...Dirección de Operaciones. Programación de operaciones: secuenciación y temporización Joaquín Bautista Valhondo, Rocío Alfaro

Universitat Politècnica de CatalunyaUPC

IO-T-10

Programación de operaciones: Secuenciación y Temporización

Page 3: Dirección de Operaciones. Programación de …...Dirección de Operaciones. Programación de operaciones: secuenciación y temporización Joaquín Bautista Valhondo, Rocío Alfaro

www.prothius.com IO-T-20

Contenido

Decisiones en los sistemas productivos. El problema del Taller Mecánico.

• Clasificación.• Nomenclatura.• Medidas de eficiencia.

Ejemplo de aplicación. Secuencias una máquina. Secuencias varias máquinas.

• Algoritmo de Johnson.• Algoritmo de Johnson generalizado.• Cotas para el problema.• Heurísticas para el Flow Shop.

Page 4: Dirección de Operaciones. Programación de …...Dirección de Operaciones. Programación de operaciones: secuenciación y temporización Joaquín Bautista Valhondo, Rocío Alfaro

www.prothius.com

Decisiones de diseño del sistema productivo

1. Previsión y planificación a largoplazo.

2. Diseño productivo de los elementosfabricados.

3. Distribución en planta.

4. Selección de equipos y procesos.

5. Localización del sistema productivo.

6. Diseño de tareas y medida deltrabajo.

Decisiones de dirección de operaciones

1. Previsión de la demanda.

2. Planificación de operaciones.

3. Cálculo de necesidades y gestión demateriales.

4. Programación y control deoperaciones.

5. Fiabilidad y entretenimiento delsistema productivo.

6. Gestión de la calidad.

7. Control de costes y de la mano deobra.

IO-T-30

Decisiones en los sistemas productivos

Page 5: Dirección de Operaciones. Programación de …...Dirección de Operaciones. Programación de operaciones: secuenciación y temporización Joaquín Bautista Valhondo, Rocío Alfaro

www.prothius.com

Los 3 Niveles de Decisión en Dirección de Operaciones

IO-T-40

Corto plazo Medio plazo Largo plazoP

LA

NIF

ICA

CIÓ

N D

E

OP

ER

AC

ION

ES

LC

UL

O D

E

NE

CE

SID

AD

ES

PR

OG

RA

MA

CIÓ

N

DE

TA

LL

AD

A

SIS

TE

MA

P

RO

DU

CT

IVO

SE

GU

IMIE

NT

O

PL

AN

IF.

AP

RO

VIS

ION

.P

RE

PR

OG

RA

-M

AC

IÓN

Po

lítica de

d

irecció

n

Info

rmació

n

com

ercial

Ap

rovisionamientos

críticos

Ciclo

s sim

plificad

os

PL

AN

M

AE

ST

RO

Situ

ación

sto

cks

Lista d

e

mate

riales

Ob

ra en

cu

rso

ÓR

DE

NE

S

FA

BR

ICA

CIÓ

N

ÓR

DE

NE

S

AP

RO

V./C

OM

PR

A

LA

NZ

AM

IEN

TO

Me

dio

s

Ciclo

s

Disp

on

ibilid

ad

Page 6: Dirección de Operaciones. Programación de …...Dirección de Operaciones. Programación de operaciones: secuenciación y temporización Joaquín Bautista Valhondo, Rocío Alfaro
Page 7: Dirección de Operaciones. Programación de …...Dirección de Operaciones. Programación de operaciones: secuenciación y temporización Joaquín Bautista Valhondo, Rocío Alfaro

www.prothius.com

El problema del Taller mecánico (Job Shop Problem)

IO-T-60

n, piezas o trabajos. m, etapas, máquinas o estaciones de trabajo. Una operación asignada a cada máquina. Orden establecido de proceso en las máquinas. pi,k, tiempos de proceso para cada trabajo.Máquinas y piezas disponibles en el instante 0.

Objetivo: determinar una secuencia para las piezas, la mismaen cada máquina, que optimice un índice de eficiencia (porejemplo makespan o Cmax)

mn

Page 8: Dirección de Operaciones. Programación de …...Dirección de Operaciones. Programación de operaciones: secuenciación y temporización Joaquín Bautista Valhondo, Rocío Alfaro

www.prothius.com

El problema del Taller mecánico: Clasificación (I)

Problema estático

Las piezas en número finito y determinado deben realizarse en un taller con unnúmero finito de máquinas.

En el instante de realizar la programación se conoce la ruta de cada pieza, lasoperaciones que la componen, en que máquina debe realizarse cada operación ysu duración correspondiente.

Todas las piezas y máquinas están disponibles en el mismo instante quehabitualmente se adoptará como inicial o instante 0 en tiempo relativo.

Finalidad del problema: buscar un programa que optimice un índice de eficienciaestablecido, por ejemplo la ocupación total del taller.

IO-T-70

Page 9: Dirección de Operaciones. Programación de …...Dirección de Operaciones. Programación de operaciones: secuenciación y temporización Joaquín Bautista Valhondo, Rocío Alfaro

www.prothius.com

El problema del Taller mecánico: Clasificación (II)

Problema semidinámico

Las piezas en número finito y determinado deben realizarse en un taller con unnúmero finito de máquinas.

En el instante de realizar la programación es conocida la ruta de cada pieza, lasoperaciones que la componen, en que máquina debe realizarse cada operación yla duración correspondiente.

Los instantes de disponibilidad de las piezas y/o máquinas pueden no seridénticos, pero sí conocidos, en el instante de realizar la programación.

Finalidad del problema: buscar un programa que optimice un índice de eficienciaadecuado.

IO-T-80

Page 10: Dirección de Operaciones. Programación de …...Dirección de Operaciones. Programación de operaciones: secuenciación y temporización Joaquín Bautista Valhondo, Rocío Alfaro

www.prothius.com

El problema del Taller mecánico: Clasificación (III)

Problema dinámico

Horizonte de funcionamiento del taller: ilimitado hacia el futuro. El número depiezas, no el de máquinas, es también ilimitado.

El conocimiento concreto en un instante determinado se limita a la situaciónactual y a una cartera finita de piezas a realizar.

Progresivamente algunas piezas terminan su elaboración en el taller y loabandonan, mientras que otras nuevas llegan a él para ser tratadas.

No podemos pretender hallar aquí un programa único.

Finalidad en este caso: establecer un procedimiento de programación, y juzgar lacalidad de un procedimiento; los índices de eficiencia se asocian a lascaracterísticas medias de los programas a lo largo de un intervalo temporalsuficiente.

IO-T-90

Page 11: Dirección de Operaciones. Programación de …...Dirección de Operaciones. Programación de operaciones: secuenciación y temporización Joaquín Bautista Valhondo, Rocío Alfaro

www.prothius.com

El problema del Taller mecánico: Hipótesis de Conway, Maxwell y Miller (1967)

1. Cada máquina está continuamente disponible desde 0 hasta T, con T arbitrariamentegrande.

2. No hay montajes (convergencias) ni particiones en lotes (divergencias). Para cadaoperación i existe una sola precedente inmediata h (se exceptúa la primera operación decada pieza, que no tiene precedente); y una sola siguiente inmediata j (se exceptúa laúltima operación de cada pieza que no tiene siguiente).

3. Cada operación puede hacerse en un solo tipo de máquina del taller.4. Sólo hay una máquina de cada tipo en el taller.5. Cuando una operación ha comenzado debe terminarse antes de empezar otra en la misma

máquina; no se admiten interrupciones.6. No pueden solaparse dos operaciones de la misma pieza (en la misma máquina o en

máquinas distintas).7. Cada máquina puede tratar una sola operación a la vez.8. La única restricción activa en el taller es la relativa a las máquinas; no hay restricciones

de disponibilidad de mano de obra, materiales, etc.

Nótese que las hipótesis descritas únicamente describen problemas estáticos.

IO-T-100

Page 12: Dirección de Operaciones. Programación de …...Dirección de Operaciones. Programación de operaciones: secuenciación y temporización Joaquín Bautista Valhondo, Rocío Alfaro

www.prothius.com

Ejemplo

6 piezas (n=6). 3 máquinas (m=3). Flujo regular. Existen buffers de almacenamiento. Medida de eficiencia Cmax

Nomenclatura: Los tiempos de proceso (pi,k) son los siguientes:

IO-T-110

maxCprmuFm

A B C D E F

m1 1 4 9 10 3 1

m2 3 5 9 2 5 4

m3 10 9 6 3 4 1

Page 13: Dirección de Operaciones. Programación de …...Dirección de Operaciones. Programación de operaciones: secuenciación y temporización Joaquín Bautista Valhondo, Rocío Alfaro

www.prothius.com

Fm|prmu|Cmax

IO-T-120

Cmax=37

Page 14: Dirección de Operaciones. Programación de …...Dirección de Operaciones. Programación de operaciones: secuenciación y temporización Joaquín Bautista Valhondo, Rocío Alfaro

www.prothius.com

Fm|block|Cmax

Flujo regular. No existen buffers de almacenamiento. Medida de eficiencia Cmax

Nomenclatura:

IO-T-130

maxCblockFm

Cmax=39

Page 15: Dirección de Operaciones. Programación de …...Dirección de Operaciones. Programación de operaciones: secuenciación y temporización Joaquín Bautista Valhondo, Rocío Alfaro

www.prothius.com

El problema del Taller mecánico: Clasificación del flujo de piezas en el taller

Algunos de los problemas comunes:

Flujo regular (Flow Shop): Todas las piezas tienen la misma ruta. Las m máquinas sepueden numerar 1,2,...,m de tal forma que una pieza cualquiera será procesada por todaslas máquinas en orden creciente. Ninguna pieza sufre más de una operación en cadamáquina.

Flujo permutacional (Permutation Flow Shop): Es un caso particular del flujo regular enel cual la secuencia de piezas es la misma en todas las máquinas. Por lo tanto el programaqueda definido tan solo por una permutación de las piezas, de aquí el nombre.

Flujo aleatorio (Randomly Routed Job Shop): Indica el caso en que la ruta de las piezas escasual, es decir, no responde a un esquema definido.

Flujo general (Job Shop): Existen piezas en las que dos operaciones sucesivas se ejecutanla primera en la máquina j y la segunda en la máquina j’ y otras piezas en que dosoperaciones se ejecutan la primera en j’ y la segunda en j. Además una pieza puede sufrirvarias operaciones en la misma máquina.

IO-T-140

Page 16: Dirección de Operaciones. Programación de …...Dirección de Operaciones. Programación de operaciones: secuenciación y temporización Joaquín Bautista Valhondo, Rocío Alfaro

www.prothius.com

El problema del Taller mecánico: Nomenclatura

ri: instante de entrada de la pieza i en el taller. di: fecha de vencimiento de la pieza i. gi: número de operaciones de la pieza i.

• mi,k: máquina para la operación k de la pieza i.• pi,k: duración de la operación k de la pieza i.

ai: tiempo concedido para la realización de la pieza i. wi,k: tiempo de espera de la operación k de la pieza i. ci: instante de finalización de la pieza i en el taller. Fi: tiempo de permanencia de la pieza i en el taller. Ti: retraso de la pieza i en el taller. Algunas equivalencias:

IO-T-150iiiiiiiii

g

kkii

g

kkii

pwrcFpwrc

wwppii

+=−=++=

∑=∑=== 1

,1

,

Page 17: Dirección de Operaciones. Programación de …...Dirección de Operaciones. Programación de operaciones: secuenciación y temporización Joaquín Bautista Valhondo, Rocío Alfaro

www.prothius.com

El problema del Taller mecánico: Medidas de Eficiencia

Permiten clasificar los programas en clases ordenadas. Una medida de eficiencia es regular si no disminuye (no mejora) cuando alguno o

todos los valores ci aumentan. Algunas medidas de eficiencia:

• Cmax: instante de finalización de la última pieza del taller.

• Fmax: tiempo de permanencia en el taller de la pieza que permanece más tiempo, es equivalente a la anterior si todos los retrasos son iguales a 0.

• Fmed: tiempo medio de permanencia de las piezas en el taller.

• Tmax: retraso de la pieza que se retrasa más

• Tmed: retraso medio de las piezas.

IO-T-160

}{max iimax cC =

}{max iimax FF =

∑==

n

iimed F

nF

1

1

}{max iimax TT =

∑==

n

iimed T

nT

1

1

Page 18: Dirección de Operaciones. Programación de …...Dirección de Operaciones. Programación de operaciones: secuenciación y temporización Joaquín Bautista Valhondo, Rocío Alfaro

www.prothius.com

El problema del Taller mecánico: Nomenclatura de Conway, Maxwell y Miller

A / B / C / D A corresponde a la llegada de las piezas. En los problemas dinámicos puede

indicar una ley de probabilidad; en los estáticos será el número de piezas (se usael símbolo n para indicar un número de piezas arbitrario)

B describe el número de máquinas en el taller (se usa el símbolo m para indicarun número arbitrario)

C se refiere al tipo de flujo de las piezas por el taller, y generalmente toma uno delos valores F, P, R o G:• F indica flujo regular.• P indica flujo permutacional.• R indica flujo aleatorio.• G indica flujo general.

D se refiere al índice de eficiencia elegido para evaluar los programas (Fmax, Cmax,Fmed, Tmax,…)

IO-T-170

Page 19: Dirección de Operaciones. Programación de …...Dirección de Operaciones. Programación de operaciones: secuenciación y temporización Joaquín Bautista Valhondo, Rocío Alfaro

www.prothius.com

El problema del Taller mecánico: Nomenclatura de Lawler (I)

α: Se divide en dos partes, α1 y α2.• α1 puede ser:

• ∅: una única máquina.• P: máquinas idénticas en

paralelo.• Q: máquinas en paralelo

uniformes, con un factor develocidad qi para cada máquina.

• R: máquinas en paraleloindependientes unas de otras.

• O: indica que se trata de unproblema Open Shop.

• J: indica que se trata de unproblema Job Shop (flujogeneral).

• F: indica que se trata de unproblema Flow Shop (flujoregular), con máquinas en serie.

• HF: Flow Shop híbrido,generalización del caso anterior,en el cual existen una serie deetapas, cada una formada porunas máquinas en paralelo.

• FF: Flow Shop flexible,representa un flow shop en queno todas las piezas tienen queser procesadas en todas lasetapas.

• α2 presenta el número de máquinas.Puede ser un entero positivo (1 sóloen el caso que α1 sea ∅) o bien m(indicar un número arbitrario).

IO-T-180

α|β|γ

Page 20: Dirección de Operaciones. Programación de …...Dirección de Operaciones. Programación de operaciones: secuenciación y temporización Joaquín Bautista Valhondo, Rocío Alfaro

www.prothius.com

El problema del Taller mecánico: Nomenclatura de Lawler (I)

β: indica características de las piezas.• pmtn: una pieza se puede interrumpir

y continuar su ejecución en un momento posterior.

• res: indica la presencia de recursos limitados.

• prmu: indica que se trata de un problema con flujo permutacional (Permutation Flow Shop).

• block: en este tipo de problemas no existen espacios de almacenamiento entre máquinas, con lo cual se ha de esperar a que la máquina siguiente este libre antes de entregarle una pieza. Es un caso particular del problema Permutation Flow Shop.

• prec: existen relaciones de precedencia entre las piezas.

• tree: igual que la anterior, pero el grafo asociado a las precedencias entre piezas corresponde a un árbol.

• rj: fechas de disponibilidad de las piezas diferente de 0.

• mj: existe una cota superior constante para cada máquina (sólo si α1=J)

• pi,j: denota cotas (superior e inferior) sobre los tiempos de proceso de las piezas en las máquinas.

• sh,i: tiempos de preparación dependientes de la secuencia.

• bkdw: indisponibilidad de máquinas. γ: indica la medida de eficiencia

escogida. IO-T-190

α|β|γ

Page 21: Dirección de Operaciones. Programación de …...Dirección de Operaciones. Programación de operaciones: secuenciación y temporización Joaquín Bautista Valhondo, Rocío Alfaro

www.prothius.com

Secuencias finitas para una máquina (I)

Datos:• m =1 ; gi = 1 ; pi = pi,1 ; wi = wi,1 ⇒ Hay n! soluciones posibles (potencialmente)• Si además ri = 0 ⇒ ai = di ; ci = Fi = wi + pi ;

• Llamaremos [k]: la pieza que ocupa la k-ésima posición en la permutación:

1. Secuencia conforme a la duración o SPT (Shortest Processing Time):

• Corresponde a la regla heurística: “ejecutar primero la operación más corta”.

• El programa asociado a esta secuencia minimiza Fmed, y también minimiza el stock medio.

IO-T-200

∑==

n

iipF

1max

[ ] [ ] [ ]nccc <<< ...21

[ ] [ ] [ ]nppp <<< ...21

Page 22: Dirección de Operaciones. Programación de …...Dirección de Operaciones. Programación de operaciones: secuenciación y temporización Joaquín Bautista Valhondo, Rocío Alfaro

www.prothius.com

Secuencias finitas para una máquina (II)

2. Secuencia conforme a la fecha de vencimiento o EDD (Earliest DueDate):

• Corresponde a la regla heurística: “ejecutar primero lo más urgente”.

• El programa asociado a esta secuencia minimiza Tmax y Lmax (Jackson, 1955).

3. Secuencia conforme al margen o SFT (Shortest Float Time):

• Corresponde a la regla heurística: “ejecutar primero lo que tiene menosmargen”.

• Puede demostrarse que el programa asociado a esta secuencia maximiza Tmin(y Lmin o holgura (negativa: adelanto, positiva: retraso)).

IO-T-210

[ ] [ ] [ ]nddd <<< ...21

[ ] [ ] [ ] [ ] [ ] [ ]nn pdpdpd −<<−<− ...2211

Page 23: Dirección de Operaciones. Programación de …...Dirección de Operaciones. Programación de operaciones: secuenciación y temporización Joaquín Bautista Valhondo, Rocío Alfaro

www.prothius.com

Secuencias finitas para una máquina (III)

Secuencias SPT, EDD y SFT en un ejemplar con 8 piezas, 1 máquina.

IO-T-220

i 1 2 3 4 5 6 7 8pi 8 3 6 2 7 9 4 5di 15 20 21 27 29 33 39 42

di-pi 7 17 15 25 22 24 35 37

k 1 2 3 4 5 6 7 8

[k] 4 2 7 8 3 5 1 6

c[k] 2 5 9 14 20 27 35 44

d[k] 27 20 39 42 21 29 15 33

L[k] -25 -15 -30 -28 -1 -2 20 11

k 1 2 3 4 5 6 7 8

[k] 1 2 3 4 5 6 7 8

c[k] 8 11 17 19 26 35 39 44

d[k] 15 20 21 27 29 33 39 42

L[k] -7 -9 -4 -8 -3 2 0 2

Secuencia SPT Secuencia EDD

Page 24: Dirección de Operaciones. Programación de …...Dirección de Operaciones. Programación de operaciones: secuenciación y temporización Joaquín Bautista Valhondo, Rocío Alfaro

www.prothius.com

Secuencias finitas para una máquina (IV)

IO-T-230

k 1 2 3 4 5 6 7 8

[k] 1 3 2 5 6 4 7 8

c[k] 8 14 17 24 33 35 39 44

d[k] 15 21 20 29 33 27 39 42

L[k] -7 -7 -3 -5 0 8 0 2

k 1 2 3 4 5 6 7 8

[k] 1 3 2 5 4 6 7 8

c[k] 8 14 17 24 26 35 39 44

d[k] 15 21 20 29 27 33 39 42

L[k] -7 -7 -3 -5 -1 2 0 2

Secuencia SFT Secuencia cualquiera

Fmed Tmax Tmed Lmin Lmed Σ|Li|SPT 19,5 20 3,875 -30 -8,75 132EDD 24,875 2 0,5 -9 -3,375 35SFT 26,75 8 1,25 -7 -1,5 32

X 25,875 2 0,5 -7 -2,375 27

Parámetros característicos

Page 25: Dirección de Operaciones. Programación de …...Dirección de Operaciones. Programación de operaciones: secuenciación y temporización Joaquín Bautista Valhondo, Rocío Alfaro

www.prothius.com

Flow-shop: Problema Fm|prmu|Fmax

Si todas las piezas y máquinas disponibles en el instante 0. Lemas de Johnson (1954):

• Lema 1: En un problema Fm|prmu| con todas las piezas y máquinas disponiblessimultáneamente y una medida de eficiencia regular, siempre existe un programaóptimo en el que las piezas tienen la misma secuencia en las dos primeras máquinas,por tanto los programas considerados en la búsqueda de un programa óptimo puedenlimitarse a los de este tipo.

• Lema 2: En un problema Fm|prmu|Fmax con todas las piezas y máquinas disponiblessimultáneamente, siempre existe un programa óptimo en el que las piezas tienen lamisma secuencia en las dos últimas máquinas, por tanto los programas consideradosen la búsqueda de un programa óptimo pueden limitarse a los de este tipo.

Si m = 2 o m = 3, la medida de eficiencia es Fmax (regular), con las piezas ymáquinas disponibles en el instante 0: existe un programa óptimo con lasecuencia de piezas mantenida en todas las máquinas.

Determinación de un programa óptimo: búsqueda de una permutación de las npiezas (no descarta programas óptimos de otro tipo, secuencias no idénticas entodas las máquinas).

IO-T-240

Page 26: Dirección de Operaciones. Programación de …...Dirección de Operaciones. Programación de operaciones: secuenciación y temporización Joaquín Bautista Valhondo, Rocío Alfaro

www.prothius.com

Flow-shop: Problema F2|prmu|Fmax

Johnson enunció la siguiente condición, suficiente para que unapermutación sea óptima:

Algoritmo de Johnson:

Paso 1: Se busca la menor de las duraciones de las piezas no ordenadas todavía, pi,j; encaso de empate, se elige cualquiera de ellas.

Paso 2: Si j =1 la pieza i se coloca delante de todas las no ordenadas; si j =2 se colocadetrás de las mismas.

Paso 3: Se marca la pieza i como ordenada; si quedan piezas por ordenar, se vuelve alpaso 1, y en caso contrario, FIN (permutación obtenida).

IO-T-250

“Para todo par de piezas, h e i, tal que min { ph,1 , pi,2 } < min { ph,2 , pi,1 }h ocupa una posición anterior a la de i en la permutación.”

Page 27: Dirección de Operaciones. Programación de …...Dirección de Operaciones. Programación de operaciones: secuenciación y temporización Joaquín Bautista Valhondo, Rocío Alfaro

www.prothius.com

Flow-shop: Problema F2|prmu|Fmax

5 piezas, 2 máquinas. Se dispone de los siguientes tiempos de proceso:

Cálculo de Fmax. Sea [k] la pieza situada en la posición k de lapermutación y fj(k) el instante en que termina la k-ésima operación en lamáquina j:•••

IO-T-260

j\i 1 2 3 4 5

1 8 2 4 3 5

2 4 6 1 4 7

Orden de Johnson: 2 – 4 – 5 – 1 – 3.

,...,n, k ,..,m, j pk , fkf kf ,jkjj-j 21;21)}1()(max{)( ][1 ==+−=

jfk kf j ∀=∀= ;0)0(y;0)(0)(max nfF m=

k 1 2 3 4 5

[k] 2 4 5 1 3

f1(k) 2 5 10 18 22

f2(k) 8 12 19 23 24

12 34 5

Page 28: Dirección de Operaciones. Programación de …...Dirección de Operaciones. Programación de operaciones: secuenciación y temporización Joaquín Bautista Valhondo, Rocío Alfaro

www.prothius.com

Flow-shop: Algoritmo de Johnson generalizado (I)

Condición de Johnson generalizada, una secuencia la cumple si:

Algoritmo de doble ordenación:Paso 1: Construir una secuencia cualquiera de las n piezas.Paso 2: Mientras se produzcan cambios de orden:

2.1: poner a cero el contador de cambios de orden2.2: recorrer la secuencia haciendo k = 1, 2, ..., n-12.3: hacer h = [k], i = [k+1]2.4: si min {ph,1 , pi,2} > min {ph,2 , pi,1} o min {ph,1 , pi,2} = min {ph,2 , pi,1} y ph,1−ph,2 > pi,1−pi,2

hacer [k] = i, [k+1] = h; anotar un cambio de orden2.5: pasar al siguiente valor de k

Fin mientras

IO-T-270

Para todo par de piezas, h e i, tal quemin { ph,1 , pi,2 } < min { ph,2 , pi,1 } o bien

min { ph,1 , pi,2 } = min { ph,2 , pi,1 } y ph,1 − ph,2 < pi,1 − pi,2h ocupa una posición anterior a la de i en la permutación.

Page 29: Dirección de Operaciones. Programación de …...Dirección de Operaciones. Programación de operaciones: secuenciación y temporización Joaquín Bautista Valhondo, Rocío Alfaro

www.prothius.com

Flow-shop: Algoritmo de Johnson generalizado (II)

Johnson extendió su algoritmo a problemas F3|prmu|Fmax cuando lasegunda máquina es poco importante:

Si mini { pi,1 } ≥ maxi { pi,2} o bien maxi { pi,2 } ≤ mini { pi,3 }

Una permutación óptima puede encontrarse aplicando el algoritmo deJohnson a un problema con 2 máquinas “ficticias” cuyos tiempos deproceso sean (pi,1 + pi,2 ; pi,2 + pi,3).

El mismo esquema es válido con 2 máquinas y un tiempo de latencia qiintermedio, la permutación óptima se obtiene aplicando el algoritmo deJohnson a: (pi,1 + qi ; pi,2 + qi).

Ecuaciones recurrentes:

IO-T-280

2],[2][121],[11 )}1()({max)(;)1()( kkk p k- , f q k f k f p k- f kf ++=+=

Page 30: Dirección de Operaciones. Programación de …...Dirección de Operaciones. Programación de operaciones: secuenciación y temporización Joaquín Bautista Valhondo, Rocío Alfaro

www.prothius.com

Flow-shop: Algoritmo de Johnson generalizado (III)

Si k > j + 1 el subproblema, aunque de menor dimensión que el original, tiene unacomplejidad comparable, sin embargo relajando la condición de que lasoperaciones en las máquinas comprendidas entre la j+1 y k-1, ambas inclusive, nodeben solaparse podemos obtener la solución óptima (mantenemos la condiciónde que la secuencia en las máquinas j y k sean idénticas). Naturalmente el valorde la solución óptima del problema relajado será una cota inferior del valor de lasolución óptima del problema sin relajar. Definamos el tiempo de latencia, qi parala pieza i como:

Si ordenamos las piezas utilizando el algoritmo de Johnson para dos máquinasficticias, asociando unas duraciones ficticias pi,j + qi para la primera máquina ypi,k + qi para la segunda, la permutación obtenida será óptima para el problemarelajado.

IO-T-290

∑=−

+=

1

1,

k

jllii pq

Page 31: Dirección de Operaciones. Programación de …...Dirección de Operaciones. Programación de operaciones: secuenciación y temporización Joaquín Bautista Valhondo, Rocío Alfaro

www.prothius.com

Flow-shop: Algoritmo de Johnson generalizado (IV)

Ejemplo:

Nuevo problema:

IO-T-300

A B C D E F

m1 1 4 9 10 3 1

m2 3 5 9 2 5 4

m3 10 9 6 3 4 1

A B C D E F

qi 3 5 9 2 5 4

A B C D E F

m1 4 9 18 12 8 5

m2 13 14 15 5 9 5

1 23 45 6

Orden de Johnson: A-F-E-B-C-D.orden A F E B C D

pi,1 1 1 3 4 9 10pi,2 10 1 4 9 6 3qi 3 4 5 5 9 2

f1(k) 1 2 5 9 18 28f2(k) 14 15 19 28 34 37 2],[2][12

1],[11

)}1()({max)(

)1()(

kk

k

p k- , f q k f kf p k- f kf

++=

+=

Page 32: Dirección de Operaciones. Programación de …...Dirección de Operaciones. Programación de operaciones: secuenciación y temporización Joaquín Bautista Valhondo, Rocío Alfaro

www.prothius.com

Flow-shop: Fm|prmu|Fmax Heurísticas de Palmer y Gupta (I)

Sirve para resolver el caso Fm|prmu|Fmax

Se calculan unos índices (estáticos) asociados a las piezas:

Palmer (1965) propone ordenar las piezas en orden creciente de Si,3. Índice para cada pieza:

Gupta (1971) propone ordenar las piezas en orden creciente de Si,4.

IO-T-310

2,1,3,

1,2,

1,1,

)1(

)(

iii

m

jjii

m

jjii

SSS

pjS

pjmS

−=

⋅−=

⋅−=

=

=

1)( sino ; si 1)(

}{min)(

1

1,,114,

= -ix p p = ix

ppixS

i,mi,

jijimji

+=

+−≤≤

Page 33: Dirección de Operaciones. Programación de …...Dirección de Operaciones. Programación de operaciones: secuenciación y temporización Joaquín Bautista Valhondo, Rocío Alfaro

www.prothius.com

Flow-shop: Fm|prmu|Fmax Heurísticas de Palmer y Gupta (II)

Ejemplo:

Índices:

IO-T-320

A B C D E F

m1 1 4 9 10 3 1

m2 3 5 9 2 5 4

m3 10 9 6 3 4 1

A B C D E F

Si,1 5 13 27 22 11 6

Si,2 23 23 21 8 13 6

Si,3 -18 -10 6 14 -2 0

Orden de Palmer: A-B-E-F-C-D.

orden A B E F C Dpi,1 1 4 3 1 9 10pi,2 3 5 5 4 9 2pi,3 10 9 4 1 6 3

f1(k) 1 5 8 9 18 28f2(k) 4 10 15 19 28 30f3(k) 14 23 27 28 34 37

2310)13(3)12(1)11(

510)33(3)23(1)13(

2,

1,

=−+−+−=

=−+−+−=

A

A

SS

Page 34: Dirección de Operaciones. Programación de …...Dirección de Operaciones. Programación de operaciones: secuenciación y temporización Joaquín Bautista Valhondo, Rocío Alfaro

www.prothius.com

Flow-shop: Fm|prmu|Fmax Heurísticas de Palmer y Gupta (III)

Ejemplo:

Índice:

IO-T-330

A B C D E F

m1 1 4 9 10 3 1

m2 3 5 9 2 5 4

m3 10 9 6 3 4 1

A B C D E F

x(i) -1 -1 1 1 -1 1

den. 4 9 15 5 8 5

Si,4 -0.25 -0.1 0.067 0.2 -0.125 0.2

Orden de Gupta: A-E-B-C-D-F.

orden A E B C D Fpi,1 1 3 4 9 10 1pi,2 3 5 5 9 2 4pi,3 10 4 9 6 3 1

f1(k) 1 4 8 17 27 28f2(k) 4 9 14 26 29 33f3(k) 14 18 27 33 36 37

}103,31min{}{min1101)(

1,,11 ++=+−→≥→

+−≤≤ jijimj ppix

Page 35: Dirección de Operaciones. Programación de …...Dirección de Operaciones. Programación de operaciones: secuenciación y temporización Joaquín Bautista Valhondo, Rocío Alfaro

www.prothius.com

Flow-shop: Fm|prmu|Cmax Cotas globales para el problema

Problema Fm|prmu|Cmax con todas las piezas y máquinas disponibles en el instante inicial.

Cota inferior de Cmax para la máquina k:

Cota inferior de Cmax de para todas las máquinas:

Cota inferior de Cmax para la pieza i:

Cota inferior de Cmax considerando todas las piezas:

IO-T-340

KkpppkLBk

k

m

kkkhki

n

i hinhiki ∈∀

∑ ∑+∑ +=

= +== ≠=,min)(1

1

1' 1'',',

1 :,...,1),(,

{ })(1max1 kLBLBKk∈

=

{ } nippiLB khm

k ihnh Kkki ,...,1,min)(2 ,

1 :,...,1, =∀∑ ∑+=

= ≠= ∈

{ })(2max2,...,1

iLBLBni=

=

Page 36: Dirección de Operaciones. Programación de …...Dirección de Operaciones. Programación de operaciones: secuenciación y temporización Joaquín Bautista Valhondo, Rocío Alfaro

www.prothius.com

Sea ek,t el instante en que la máquina k finaliza la operación en la pieza que ocupa la posición t de la secuencia, y dada una subsecuencia parcial, π, podemos adaptar la cota LB1:

Flow-shop: Fm|prmu|Cmax Cotas para un segmento dado (I)

IO-T-350

++= ∑ ∑

∉= +=∉=∈ π πni

m

kkki

nikitk

KkppetLB

,...,1 1'',

,...,1,, minmax)(1

37minmax)(1,...,1 1'

',,...,1

,, =

∑++=

∉= +=∉=∈ π πni

m

kkki

nikitkKk

ppetLB141,3 =e

∑∉= πni

ip,...,1

1,

+=∉=

m

kki

nip

11'',

,...,1min

π{ }A=π

Page 37: Dirección de Operaciones. Programación de …...Dirección de Operaciones. Programación de operaciones: secuenciación y temporización Joaquín Bautista Valhondo, Rocío Alfaro

www.prothius.com

Flow-shop: Fm|prmu|Cmax Cotas para un segmento dado (II)

Ejemplo:

Sumatorio para el resto de máquinas de las piezas no secuenciadas:

Cota LB1(1):

IO-T-360

A B C D E F ek,t

m1 1 4 9 10 3 1 1 27

m2 3 5 9 2 5 4 4 25

m3 10 9 6 3 4 1 14 23

{ }A=π∑∉πi

kip ,

B C D E F

m1 14 15 5 9 5

m2 9 6 3 4 1

m3 0 0 0 0 0

ek,t Valor para k

m1 1 27 5 33

m2 4 25 1 30

m3 14 23 0 37

∑∉πi

kip ,

+=∉=

m

kkki

nip

1'',

,...,1min

π

Page 38: Dirección de Operaciones. Programación de …...Dirección de Operaciones. Programación de operaciones: secuenciación y temporización Joaquín Bautista Valhondo, Rocío Alfaro

www.prothius.com

Flow-shop: Fm|prmu|Cmax Cotas para un segmento dado (III)

También es posible adaptar LB2, dada una subsecuencia parcial π :

IO-T-370

{ }

∑ ∑++== ∉≠= ∈∉=

m

kkh

hinh Kkkinit ppetLB

1,

,,...,1,,...,1,1 minmax)(2

ππ

{ }A=π

{ } 35minmax)(21

,,,...,1

,,...,1,1 =

∑ ∑++== ∉≠= ∈∉=

m

kkh

hinh Kkkinit ppetLB

ππ

11,1 =e

π∉∀∑=

ipm

kki ,

1,

{ }khhinh Kk

p ,,,...,1

min∑∉≠= ∈π

Page 39: Dirección de Operaciones. Programación de …...Dirección de Operaciones. Programación de operaciones: secuenciación y temporización Joaquín Bautista Valhondo, Rocío Alfaro

www.prothius.com

Flow-shop: Fm|prmu|Cmax Cotas para un segmento dado (IV)

Ejemplo:

Sumatorio para el resto de piezas no secuenciadas:

Cota

IO-T-380

A B C D E F ek,t

m1 1 4 9 10 3 1 1

m2 3 5 9 2 5 4 4

m3 10 9 6 3 4 1 14

{ }A=π

B 18 6+2+3+1=12 30

C 24 4+2+3+1=10 34

D 15 4+6+3+1=14 29

E 12 4+6+2+1=13 25

F 6 4+6+2+3=15 21

∑∉πi

kip , { }khhinh Kk

p ,,,...,1

min∑∉≠= ∈π

{ }∑ ∑+= ∉≠= ∈

m

kkh

hinh Kkki pp

1,

,,...,1, min

π

{ } 35341minmax)1(21

,,,...,1

,,...,1,1 =+=

∑ ∑++== ∉≠= ∈∉=

m

kkh

hinh Kkkinit ppeLB

ππ

Page 40: Dirección de Operaciones. Programación de …...Dirección de Operaciones. Programación de operaciones: secuenciación y temporización Joaquín Bautista Valhondo, Rocío Alfaro

www.prothius.com

Procedimiento BDP (Bounded Dynamic Programming) (I)

BDP: Programación dinámica acotada. Combina características de la programación dinámica con características

de brach-and-bound. Genera una parte del grafo desde el nivel 0 hasta T. Los vértices generados pueden formar parte potencialmente de un camino

óptimo. Basado en:

• Construcción segmento óptimo de t etapas.• Evaluación cota para Cmax para alcanzar la etapa T (LB(t)).• Descarte de soluciones menos prometedoras (upperbound o Z0).• Mantiene en cada etapa un máximo de H soluciones (ancho de ventana)

En este caso, veremos un ejemplo para la variante Igualmente, la cota anterior es válida para esta variante (usaremos LB1).

IO-T-390

maxCblockFm

Page 41: Dirección de Operaciones. Programación de …...Dirección de Operaciones. Programación de operaciones: secuenciación y temporización Joaquín Bautista Valhondo, Rocío Alfaro

www.prothius.com

Procedimiento BDP (Bounded Dynamic Programming) (III)

Esquema procedimiento:• Entradas: Z0 y H.

IO-T-400

1 etapa:=0;

2 mientras (etapa<T) hacer

3 etapa:=etapa+1;

4 mientras (queden soluciones en la etapa anterior) hacer

5 Escoger();

6 Desarrollar();

7 Filtrar (H, Z0);

8 fin mientras

9 Finalizar_etapa();

10 fin mientras

11 Mejor solución:= mejor solución obtenida en la última etapa (T)

Page 42: Dirección de Operaciones. Programación de …...Dirección de Operaciones. Programación de operaciones: secuenciación y temporización Joaquín Bautista Valhondo, Rocío Alfaro

www.prothius.com

Procedimiento BDP (Bounded Dynamic Programming) (IV)

Grafo resultante sobre el ejemplo, H=6, Z0 =40

IO-T-410

Secuencia BDP: A-B-C-D-E-F.Cmax=39