Você está na página 1de 15

7.

PROBLEMAS DE FLOWSHOP E JOB SHOP SOLVEIS POR ALGORITMOS DE COMPLEXIDADE POLINOMIAL


Hiptese

ri = 0 ,
Flowshop

i=1,2,,n

Restries tecnolgicas
Tarefa 1 Ordem de Processamento

M1 M1 M1

M2 M2 M2

L L L

Mm Mm Mm

2
M

Programa de permutao em flowshop: mesma sequncia de processamento em todas as mquinas. Exemplo 1 1 2 3 2 3

M1 M2

7.1

Teorema 7.1 : Para o problema n/m/F/B, onde B uma medida regular de desempenho, suficiente considerar programas com a mesma sequncia de processamento nas duas primeiras mquinas M1 e M 2 .

Demonstrao Seja S um programa com sequncias distintas em M1 e


M2 .

M1 M2

K K I

Trocando a ordem de I e K em M1 no aumenta o incio de


processamento de I e K em M 2 . Repita as trocas em M1 at obter a mesma sequncia de M 2 .

7.2

Exemplo

M1 M2

2 3 2 1

M1 M2

3 3

2 2 1

M1 M2

2 3

1 2 1

7.3

Teorema 7.2 : Para o problema n / m / F / Cmax basta considerar programas com a mesma sequncia de processamento nas duas ltimas mquinas M m -1 e M m .

Demonstrao Seja S um programa com sequncias distintas em M m -1

e Mm .

M m-1 Mm

K K I

A troca da ordem de I e K em M m no aumenta Cmax pois I precede K em M m -1.

7.4

EXEMPLO

2 3 2 7 2 2 5 6 2 3 5 7 2 8 7 3 9 8 1 11

2 1 3 1 2 1 3 1 2

Corolrio 7.3 : suficiente considerar programas de permutao para o problema n/2/F/B, onde B regular.

Corolrio 7.4 : suficiente considerar programas de permutao para o problema n / 3 / F / C max .

7.5

Algoritmo de Johnson para o problema n/2/F/Cmax

Idia intuitiva do algoritmo 1) Iniciar a sequncia com a tarefa que tem o menor tempo de processamento em M1 ; isto permite que o processamento
em M 2 comece o mais cedo possvel.

2) Terminar a sequncia com a tarefa que tem o menor tempo de processamento em M 2 ; isto porque M1 deve estar ociosa durante esse intervalo de tempo.

M2 deve estar ociosa

M1
M1 deve estar ociosa

M2

7.6

Notao a i = pi1 , tempo de processamento da tarefa i em M1 bi = pi 2 , tempo de processamento da tarefa i em M 2

Algoritmo de Johnson
Passo 1. k = 1 ; l = n Passo 2. Lista corrente das tarefas no sequenciadas = {1, 2, , n}. Passo 3. Encontre o mnimo dos tempos a i , bi associados s tarefas no sequenciadas. Passo 4. Se o tempo mnimo a i , Coloque a tarefa i na k-sima posio da sequncia (ii) Retire a tarefa i da lista corrente de tarefas no sequenciadas (iii) k = k + 1 (iv) V para o passo 6 (i)

7.7

Passo 5. Se o tempo mnimo bi , Coloque a tarefa i na l-sima posio da sequncia (ii) Retire a tarefa i da lista corrente de tarefas no sequenciadas (i) (iii) l = l - 1 (iv) V para o passo 6 Passo 6. Se ainda existem tarefas no sequenciadas, v para o passo 3. Caso contrrio, pare.

Nota : Se o tempo mnimo ocorre para mais de uma tarefa no passo 3, escolha a tarefa i arbitrariamente.

7.8

Exemplo
Seja o problema 7 / 2 / F / Cmax
Tarefa 1 2 2 9 3 4 3 4 1 8 5 7 1 6 4 5 7 7 6

Tempo de Processamento em M1 6 Tempo de Processamento em M 2 3

Aplicando o algoritmo 4 4 4 4 4 4 4 2 2 2 2 2 6 6 7 1 1 1 3 3 3 3 5 5 5 5 5 5

sequncia tima

Teorema 7.5 : O algoritmo de Johnson gera um programa timo para o problema n / 2 / F / Cmax .

7.9

Algoritmo de Johnson para o problema n/2/G/Cmax

Passo 1. Particione o conjunto de tarefas 1, 2, , n em 4 classes: Classe A : tarefas processadas somente na mquina M1 Classe B : tarefas processadas somente na mquina M 2 Classe C : tarefas processadas primeiro em M1 e depois em M2 Classe D : tarefas processadas primeiro em M 2 e depois em M1 Passo 2.

Sequencie as tarefas das classes A e B em qualquer ordem, obtendo as sequncia SA e SB Sequencie as tarefas das classes C e D de acordo com o algoritmo de Johnson para o problema n / 2 / F / Cmax

7.10

Passo 3. Crie o seguinte programa nas mquinas M1 e M 2

Mquina

Ordem de Processamento

M1 M2

(SC , SA , SD ) (SD , SB , SC )

Teorema 7.6 : O programa do passo 3 timo para o problema n / 2 / G / Cmax . Demonstrao


O nico tempo ocioso entre operaes em M1 ou M 2

aquele gerado por uma operao O com incio na segunda mquina bloqueada pelo trmino da operao predecessora PO na primeira mquina (ver figura). Este tempo ocioso mnimo pelo algoritmo de Johnson para n / 2 / F / Cmax .

Primeira Mquina Segunda Mquina

PO PO

O O

7.11

Exemplo
Seja o problema 9 / 2 / G / C max Ordem e Tempos de Processamento
Tarefa 1 2 3 4 5 6

1 Mquina ( M1 ,8) ( M1 ,7) ( M1 ,9) ( M1 ,4) ( M 2 ,6) ( M 2 ,5) 2 Mquina ( M 2 ,2) ( M 2 ,5) ( M 2 ,8) ( M 2 ,7) ( M1 ,4) ( M1 ,3)

Tarefa 1 Mquina

( M1 ,9) ( M 2 ,1) ( M 2 ,5)

SA = 7 SC = (4, 3, 2, 1)

; ;

SB = (8, 9) SD = (5, 6) Programa timo

M1 (4, 3, 2, 1, 7, 5, 6) M 2 (5, 6, 8, 9, 4, 3, 2, 1)

7.12

M1

4 4

3 13

2 20

1 28

7 37

6 41 44

M2

5 6

8 9 11 12 17

4 24

3 32

1 37 39

Cmax = 44

7.13

Casos Especiais para o problema n/3/F/Cmax


O algoritmo de Johnson pode ser estendido para os seguintes casos especiais de n / 3 / F / C max a) min {pi1} max {pi 2 }
i =1 n i =1 n n n

b) min {pi3} max {pi 2 }


i =1 i =1

Se a) ou b) verdadeiro, faa para cada tarefa i a i = pi1 + pi 2 ; bi = pi 2 + pi3

e obtenha um programa timo ao se aplicar o algoritmo de Johnson, onde a i o tempo de processamento da tarefa i na primeira mquina e bi o tempo de processamento da tarefa i na segunda mquina.

7.14

Exemplo
Seja o problema 6 / 3 / F / Cmax

Tempos de Processamento
Tarefa

Tempos de Processamento

(a i , b i )
1 Mquina 5 8 4 8 10 5 2 Mquina 4 11 3 10 8 2

1 2 3 4 5 6

M1 M 2 M3 4 1 3 6 2 9 3 1 2 5 3 7 8 2 6 4 1 1

min {pi1} = 3 ; max {pi 2 } = 3 ; min {pi3} = 1


i =1 i =1 i =1

Portanto, a) verdadeiro. Aplicando algoritmo de Johnson para (a i , bi ) obtm-se o programa timo (2, 4, 5, 1, 3, 6).

7.15

Você também pode gostar