Você está na página 1de 16

17/04/2015

Algoritmos de Sequenciamento
Definio do problema
 Dadas n

tarefas, cada uma possui:

tempo de setup,

Sequenciamento

tempo de processamento,
data de entrega pr-fixada, e/ou outros atributos.

Michel J. Anzanello, PhD

 P/

serem completadas, cada tarefa precisa


passar por uma mquina ou sequncia delas.
 A sequncia deve otimizar certos critrios de
desempenho.
8-2

8-1

Critrios tpicos de desempenho

Exemplo numrico
 Duas tarefas

Atender

as datas de entrega dos

clientes;
Minimizar o tempo de Fluxo (makespan);
Minimizar o estoque em processo (WIP);
Minimizar o tempo ocioso dos
recursos.
8-3

A e B requerem processamento
em duas mquinas M1 e M2.
 Cada tarefa processada primeiro na M1 e
depois na M2, com os seguintes tempos:

Tarefas
A
B

Tempo de Processo
M1
M2
8
5
7
10

8-4

17/04/2015

Exemplo (Grfico de Gantt)


M1

tarefa A

tarefa B

M2

tarefa A

M1

Exemplo introdutrio

tarefa B

Tempo total = 25

tarefa B

13 15

25

Tempo

A segunda sequncia
minimiza o makespan
(Tempo de fluxo).

tarefa A

M2

tarefa B

Tempo total = 22

tarefa A

15 17

22

Job Operao
necessria
A
C
1
A
B
C
B
A
2
C
A
B

Analisar o sequenciamento de utilizao das


operaes em um grfico de Gantt

Tempo

8-5

Operao

Arranjo invivel.
P/ observar sequncia,
mesmo recurso
utilizado por mais
de um job

2
1

2
1

1
2

Tempo, horas
Arranjo invivel

Operao

Tempo
necessrio (h)
10
10
30
20
5
15
10
10
10
10

Arranjo vivel.
Sequncia
observada e utilizao
racional de recursos.

Tempo, horas
Arranjo vivel
IV - 7

IV - 6

Lote Operao
Tempo
necessria necessrio (h)
C
5
A
10
1
B
20
C
30
B
10
C
10
A
15
2
B
5
A
20
C
5
A
5
B
20
3
A
5
B
10
C
35

Exerccio Sequenciamento
Deseja-se saber qual a
data mais cedo para
entrega de cada um dos
lotes ao lado.

IV - 8

17/04/2015

Fatores que descrevem e classificam


um problema de sequenciamento

Flow Shop

Nmero de tarefas a serem programadas.

Nmero de mquinas envolvidas.

Tempo para liberao da tarefa (release


date).

Critrio de avaliao utilizado p/ as


alternativas de programao.

8-9

8 - 10

Problemas de sequenciamento podem


ser:

Job Shop

8 - 11

8 - 12

17/04/2015

Heursticas para programao em


ambiente flow shop:

Descrio padro de problemas de


sequenciamento

n

tarefas 1 mquina:

MFT / Min setups, caixeiro viajante.

n

tarefas 2 mquinas:

Johnson.

n

arranjo mquinas: nica, linha, paralelo, ...

tarefas 3 mquinas:

Johnson, Branch and Bound.

restries: liberao da tarefa, setup...


objetivos: makespan, atraso, adiantamento

8 - 14

8 - 13

Programando n tarefas em 1 mquina

Exemplo

(Mean Flow TimeTime-MFT)

 Dados

os tempos de processo de quatro


tarefas a serem processadas em uma
mquina.

MFT =

i =1 Ci

onde:
Ci = Tempo para completar a tarefa i (Ci = Wi + ti):

Tarefa i
Tempo de processo (ti )

Wi = Tempo de espera

J1
7

J2
6

J3
8

J4
5

ti = Tempo de processo
n = nmero de tarefas a serem processadas.
8 - 15

8 - 16

17/04/2015

Exemplo

Exemplo

MFTA = 67 = 16 3
4
4

Tarefa (i )
2
3
1
4
soma

Seqncia B
Wi
ti
0
6
6
8
14
7
21
5

Ci
6
14
21
26

41

67

26

MFTC = 60 = 15
4

Para uma nica mquina e n tarefas, como neste caso, a regra


SPT (Shortest Processing Time, ou seja, ordenar as tarefas em
ordem crescente de ti) garante o mnimo tempo mdio de
escoamento.

MFTB = 67 = 16 3
4
4

8 - 17

8 - 18

Atividade 1

Tempo de concluso ponderado

a) As presentes atividades so processadas em uma


furadeira. Determine uma sequncia que minimize o
tempo mdio de escoamento.

 Algumas

Tarefa
ti

1
10

2
5

3
8

4
7

5
5

6
4

7
8

b) Mostre que uma sequncia aleatria aumenta o tempo


de escoamento (maior do que a sugerida pelo SPT)
c) Use a regra LPT (longest processing time) e compare
a mdia do tempo de escoamento para (a) e (c).
8 - 19

tarefas podem ter prioridade por diversos

motivos;
 Cada atividade

recebe um peso wj

 Conhecido por

1| |wjCj

 Sequenciamento timo:

Ordenar wj/tj em ordem decrescente


tarefa
wj
tj

1
1
3

2
18
6

3
12
6

4
8
5

5
8
4

6
17
8

7
16
9

8 - 20

17/04/2015

Programando n tarefas em 2 mquinas

Programando n tarefas em 2 mquinas

(Mtodo ou Regra de Johnson).

(Mtodo ou Regra de Johnson).

1 - Listar o tempo de operao para cada


tarefa em ambas as mquinas (M1 e M2);
2 - Selecionar a tarefa com menor tempo
de durao;

3 - Se o menor tempo o da M1, fazer esta


tarefa primeiro. Caso contrrio (se pertencer a
M2), alocar esta tarefa por ltimo;
4 - Repetir as etapas 2 e 3 para cada tarefa
restante at todas as tarefas estarem
alocadas.

8 - 21

Exemplo: (Mtodo ou Regra de Johnson).

8 - 22

Exemplo: (Mtodo ou Regra de Johnson).

1 - Listar os tempos de operao


Tarefa
Tarefa
A
B
C
D

Tempo de operao Tempo de operao


M1
M2
3
2
6
8
5
6
7
4

A
B
C
D

2 e 3 - A tarefa de menor tempo a A na M2


(ento aloque por ltimo). A tarefa D a 2a de
menor tempo na M2 (aloque esta por penltimo pois a tarefa A j est alocada).
8 - 23

Tempo de operao Tempo de operao


M1
M2
3
2
6
8
5
6
7
4

4 - Repetir 2 e 3 at todas serem alocadas


A seqncia fica: C B D A. Esta
a seqncia de entrada das tarefas em M1.
8 - 24

17/04/2015

Minimizando o tempo de
adiantamento e atraso de uma tarefa

Atividade 2
Os tempos de uma furadeira e uma mquina
rebitadora para seis tarefas so dados a seguir. Para
toda a tarefa, um furo feito primeiro, seguido da
colocao de um rebite.
 Encontre a sequncia que minimiza o makespan
para estas tarefas.


Tarefa
Furadeira
Rebitadeira

1
4
11

2
7
7

3
3
10

4
12
8

5
11
10

 Funo objetivo: min

(E+T)

T

= tempo de atraso, Tj = max (Cj-dj, 0)

E

= tempo de adiantamento Ej = max (dj-Cj,0)

6
9
13

8 - 25

Algoritmo para minimizar (E+T


E+T)) com
nico))
data de entrega estrangulada (d nico

8 - 36

Algoritmo para minimizar (E+T


E+T)) com
data de entrega estrangulada

 Passo

0: Ordene as tarefas em ordem


decrescente de pj;
 Passo 1:

 Passo 3:
Se k<n, k+1 e retorne ao passo 2
Se k=n, PARE

Defina 1=d e 2=pj d


Inicialize k=1


Passo 2:
Se 1 > 2 insira tarefa k na primeira posio
disponvel na sequncia e subtraia pk de 1.
Se 1 < 2 insira tarefa k na ltima posio
disponvel na sequncia e subtraia pk de 2.

8 - 37

8 - 38

17/04/2015

Exemplo

Prtica Ve

 Considere a

seguinte situao com 6 tarefas e


data de entrega d=180.
tarefas
pj

1
106

2
100

tau1
180
74
74
-22
-22
-22

3
96

tau2
166
166
66
66
44
24
12

4
22

5
20

6
2

 Sequencie as

seguintes tarefas com data de


entrega d=30.

Tarefa
pj

1
5

2
8

3
7

4
6

5
2

6
7

7
5

8
4

Sequncia
1,*,*,*,*,*
1,*,*,*,*,2
1,3,*,*,*,2
1,3,*,*,4,2
1,3,*,5,4,2
1,3,6,5,4,2
8 - 39

Sequenciamento estocstico

8 - 40

Sequenciamento estocstico - Exemplo

 Do

origem aos problemas mais complexos


de sequenciamento

 Considere 2

tarefas com datas de entrega


distintas (dj) a serem processadas em 1
mquina

 Tempos de

processamento no mais
determinsticos, mas representados por
distribuies

 Veremos um

 Datas

de entrega: d1=1 e d2=4

algoritmo atravs de um

exemplo:
8 - 41

8 - 42

17/04/2015

Tempos de processamento so discretos


 Distribuio dos

Exemplo (cont
(cont))

tempos de processamento da

tarefa 1:
 Deseja-se minimizar

P(X1=1) = P(X1=2) = P(X1=4) = 1/3

 Distribuio dos

 Lj

tempos de processamento da

tarefa 2:

o mximo atraso L, onde:

= Cj-dj

 Repare que

o atraso L, diferentemente do atraso


T, pode apresentar valores negativos.

P(X2=2) = P(X2=4) = 1/2


8 - 44

8 - 43

Testando sequncia 1 2
Testando sequncia 2 1
max1 , 2

= max1 , 2
| 1 = 1, 2 = 2
 1 = 1, 2 = 2

+ max1 , 2
| 1 = 1, 2 = 4
 1 = 1, 2 = 4

+ max1 , 2
| 1 = 2, 2 = 2
 1 = 2, 2 = 2

+ max1 , 2
| 1 = 2, 2 = 4
 1 = 2, 2 = 4

+ max1 , 2
| 1 = 4, 2 = 2
 1 = 4, 2 = 2

+ max1 , 2
| 1 = 4, 2 = 4
 1 = 4, 2 = 4

max1 , 2

= 0 + 1 + 1 + 2 + 3 + 4
1/6

max2 , 1

= max2 , 1
| 2 = 2, 1 = 1
 2 = 2, 1 = 1

+ max2 , 1
| 2 = 2, 1 = 2
 2 = 2, 1 = 2

+ max2 , 1
| 2 = 2, 1 = 4
 2 = 2, 1 = 4

+ max2 , 1
| 2 = 4, 1 = 1
 2 = 4, 1 = 1

+ max2 , 1
| 2 = 4, 1 = 2
 2 = 4, 1 = 2

+ max2 , 1
| 2 = 4, 1 = 4
 2 = 4, 1 = 4

max2 , 1

= 2 + 3 + 5 + 4 + 5 + 7
1/6

8 - 45

8 - 46

17/04/2015

Programando n tarefas em 3 mquinas

Exerccio
 Sequencie as

tarefas 1 e 2 com os tempos de


processamento dados por:

 Problema

uma extenso do problema


anterior (n tarefas 2 mquinas).
 Solues timas podem ser encontradas
quando todas as tarefas forem
processadas na mesma ordem em cada
mquina.

Tarefa 1
P(X1=3) = 1/3 e P(X1=5) = 2/3

Tarefa 2:
P(X2=4) = P(X2=7) =

d1=6 e d2=8

8 - 47

Programando n tarefas em 3 mquinas


 Uma

soluo tima para este tipo de problema pode


ser encontrada utilizando-se:
Algoritmo de Johnson para n 2, se certas condies
forem atendidas, ou
Utilizando o algoritmo do Branch & Bound.

8 - 48

Programando n tarefas em 3 mquinas


(Algoritmo do Branch & Bound)
 Algoritmo

B & B pode ser usado quando as


condies do mtodo de Johnson no forem
satisfeitas.
 O problema representado por uma estrutura de
rvore, onde cada n representa uma seqncia
parcial de tarefas.
Para encontrar qual a seqncia parcial a partir da
qual poderamos continuar ramificando, necessrio
encontrar os limites inferiores do makespan para
todos os ns (de cada seqncia parcial).

8 - 49

8 - 50

10

17/04/2015

Programando n tarefas em 3 mquinas

Diagrama de rvore

(Algoritmo B & B)
 Segue-se

ramificando a partir do n com o


menor limite inferior. Processo continua at que
seqncia c/ limite inferior mais baixo seja
encontrada.
 As tarefas devem ser processadas primeiro na
M1, depois na M2 e, por ltimo, na M3. A
ordem de processamento ser a mesma nas trs
mquinas (como no mtodo anterior - Johnson n 3).

12

123

124

13

132

14

134

21

142

23

24

143

8 - 51

8 - 52

Programando n tarefas em 3 mquinas

Programando n tarefas em 3 mquinas

(Algoritmo B & B)

(Algoritmo B & B)

 Considere

n tarefas (1, 2, ..., n)


 O limite inferior para o makespan definido da
seguinte forma:

8 - 53

Onde:
tij= tempo de processo da tarefa i na mquina j
grupo de n - r tarefas que ainda no
foram alocadas a uma posio na seqncia Jr
LB(P) = LB(Jr) = limite inferior para o
makespan para qualquer nodo que emana de um
nodo P.
8 - 54

11

17/04/2015

Programando n tarefas em 3 mquinas


Exemplo:

(Algoritmo B & B)

n tarefas, 3 mquinas(Algoritmo B & B)

 Considere 4

 Aps

encontrar o limite inferior dos nodos


at ento existentes, continua-se ramificando
a partir do nodo c/ menor limite inferior,
criando novos nodos p/ todas as tarefas que
ainda no foram programadas.

tarefas e trs mquinas em um


problema de programao.
 Utilize o algoritmo Branch-and-Bound para
encontrar a seqncia que minimiza o makespan
para todas as tarefas.
Tarefa
1
2
3
4

Tempos das Tarefas


M1
M2
M3
14
6
15
8
11
4
10
13
17
16
15
5

8 - 55

Exemplo:

Tarefa
1
2
3
4

n tarefas, 3 mquinas(Algoritmo B & B)

Para calcular os limites inferiores, preciso:


TIMEM1(1) = 14
TIMEM1(2) = 8
TIMEM1(3) = 10
TIMEM1(4) = 16

TIMEM2(1) = 20
TIMEM2(2) = 19
TIMEM2(3) = 23
TIMEM2(4) = 31

8 - 56

Tempos das Tarefas


M1
M2
M3
14
6
15
8
11
4
10
13
17
16
15
5

Os limites inferiores so:

TIMEM3(1) = 35
TIMEM3(2) = 23
TIMEM3(3) = 40
TIMEM3(4) = 36

TIMEM1(Jr), TIMEM2(Jr) e TIMEM3(Jr) so os tempos nos quais as


mquinas M1, M2 e M3 completam a ltima tarefa da seqncia Jr.

8 - 57

8 - 58

12

17/04/2015

Exemplo:

n tarefas, 3 mquinas(Algoritmo B & B)

 Menor limite

LB(1) = 63, ento ramifica-se a


partir dele.
 Na sequncia, calculam-se os tempos das
seqncias parciais 1i (i = 2, 3 e 4), como mostrado
a seguir:
TIMEM1(12) = TIMEM1(1) + t21 = 14 + 8 = 22
TIMEM2(12) = max (TIMEM1(12) + t22 , TIMEM2(1) + t22)
= max (22 + 11 , 20 + 11) = 33
TIMEM3(12) = max (TIMEM2(12) + t23 , TIMEM3(1) + t23)
= max (33 + 4 , 35 + 4) = 39
8 - 59

Exemplo:

8 - 60

Exemplo:

n tarefas, 3 mquinas(Algoritmo B & B)

TIMEM1(13) = TIMEM1(1) + t31 = 14 + 10 = 24


TIMEM2(13) = max (TIMEM1(13) + t32 , TIMEM2(1) + t32)
= max (24 + 13 , 20 + 13 ) = 37
TIMEM3(13) = max (TIMEM2(13) + t33 , TIMEM3(1) + t33)
= max (37 + 17 , 35 + 17 ) = 54

n tarefas, 3 mquinas(Algoritmo B & B)

Os limites inferiores so:

TIMEM1(14) = TIMEM1(1) + t41 = 14 + 16 = 30


TIMEM2(14) = max (TIMEM1(14) + t42 , TIMEM2(1) + t42)
= max (30 + 15 , 20 + 15 ) = 45
TIMEM3(14) = max (TIMEM2(14) + t43 , TIMEM3(1) + t43)
= max (45 + 5 , 35 + 5 ) = 50
8 - 61

8 - 62

13

17/04/2015

Exemplo:

n tarefas, 3 mquinas(Algoritmo B & B)

Comparando os nodos neste estgio verifica-se que o menor


limite inferior LB(3) = 64. Ento continua-se ramificando a
partir deste.

TIMEM1(31) = TIMEM1(3) + t11 = 10 + 14 = 24


TIMEM2(31) = max (TIMEM1(31) + t12 , TIMEM2(3) + t12)
= max (24 + 6 , 23 + 6 ) = 30
TIMEM3(31) = max (TIMEM2(31) + t13 , TIMEM3(3) + t13)
= max (30 + 15 , 40 + 15 ) = 55

8 - 63

Exemplo:

8 - 64

Exemplo:

n tarefas, 3 mquinas(Algoritmo B & B)

n tarefas, 3 mquinas(Algoritmo B & B)

TIMEM1(34) = TIMEM1(3) + t41 = 10 + 16 = 26


TIMEM2(34) = max (TIMEM1(34) + t42 , TIMEM2(3) + t42)
= max (26 + 15 , 23 + 15 ) = 41
TIMEM3(34) = max (TIMEM2(34) + t43 , TIMEM3(3) + t43)
= max (41 + 5 , 40 + 5 ) = 46

TIMEM1(31) = TIMEM1(3) + t11 = 10 + 14 = 24


TIMEM2(31) = max (TIMEM1(31) + t12 , TIMEM2(3) + t12)
= max (24 + 6 , 23 + 6 ) = 30
TIMEM3(31) = max (TIMEM2(31) + t13 , TIMEM3(3) + t13)
= max (30 + 15 , 40 + 15 ) = 55

Novamente so calculados os limites inferiores para as sequencias 31, 32 e


34.

TIMEM1(32) = TIMEM1(3) + t21 = 10 + 8 = 18


TIMEM2(32) = max (TIMEM1(32) + t22 , TIMEM2(3) + t22)
= max (18 + 11 , 23 + 11) = 34
TIMEM3(32) = max (TIMEM2(32) + t23 , TIMEM3(3) + t23)
= max (34 + 4 , 40 + 4 ) = 44

8 - 65

8 - 66

14

17/04/2015

Exemplo:

n tarefas, 3 mquinas(Algoritmo B & B)

O menor LB LB(31) = 64. Ento ramifica-se a partir dele.

Exemplo:

n tarefas, 3 mquinas(Algoritmo B & B)

Os limites inferiores so:

TIMEM1(312) = TIMEM1(31) + t21 = 24 + 8 = 32


TIMEM2(312) = max (TIMEM1(312) + t22 , TIMEM2(31) + t22)
= max (32 + 11 , 30 + 11 ) = 43
TIMEM3(312) = max (TIMEM2(312) + t23 , TIMEM3(31) + t23)
= max (43 + 4 , 55 + 4 ) = 59
TIMEM1(314) = TIMEM1(31) + t41 = 24+ 16 = 40
TIMEM2(314) = max (TIMEM1(314) + t42 , TIMEM2(31) + t42)
= max (40 + 15 , 30 + 15 ) = 55
TIMEM3(314) = max (TIMEM2(314) + t43 , TIMEM3(31) + t43)
= max (55 + 5 , 55 + 5 ) = 60
8 - 67

Exemplo:

n tarefas, 3 mquinas(Algoritmo B & B)

8 - 68

Exemplo:

n tarefas, 3 mquinas(Algoritmo B & B)

O menor LB LB(34) = 65. Ento ramifica-se a partir dele.

Os limites inferiores so:


TIMEM1(341) = TIMEM1(34) + t11 = 26 + 14 = 40
TIMEM2(341) = max (TIMEM1(341) + t12 , TIMEM2(34) + t12)
= max (40 + 6 , 41 + 6) = 47
TIMEM3(341) = max (TIMEM2(341) + t13 , TIMEM3(34) + t13)
= max (47 + 15 , 46 + 15 ) = 62
TIMEM1(342) = TIMEM1(34) + t21 = 26 + 8 = 34
TIMEM2(342) = max (TIMEM1(342) + t22 , TIMEM2(34) + t22)
= max (34 + 11 , 41 + 11 ) = 52
TIMEM3(342) = max (TIMEM2(342) + t23 , TIMEM3(34) + t23)
= max (52 + 4 , 46 + 4 ) = 56

O menor limite inferior da rvore LB(341) = 66.


A seqncia tima 3-4-1-2 com makespan de 66
unidades de tempo
8 - 69

8 - 70

15

17/04/2015

Atividade B&B
 Quatro tarefas

so processadas atravs de trs


mquinas. Os presentes dados so pertinentes
ao problema de programao. Encontre a
seqncia tima para as tarefas tal que
minimize o makespan.
Tarefa
1
2
3
4

Tempos das Tarefas


M1
M2
M3
7
10
8
5
7
9
11
5
9
8
9
8

8 - 71

16

Você também pode gostar