Você está na página 1de 131

INTRODUÇÃO AO

SEQUENCIAMENTO
DA PRODUÇÃO

Hélio Y. Fuchigami

Universidade Federal de Goiás


2021

versão 8.0
Como referenciar este trabalho:

FUCHIGAMI, H.Y. Introdução ao sequenciamento da produção. Aparecida de Goiânia: UFG,


2021. Material didático, versão 8.0.

Envie comentários, sugestões e correções para heliofuchigami@yahoo.com.br.


Agradeço aos alunos e alunas, de gradução e mestrado,

que cursaram as disciplinas de Sequenciamento da Produção,

de 2009 a 2015, na Universidade Federal de Goiás,

e especialmente aos meus orientados, pela contribuição

no contínuo aprimoramento deste material.


SUMÁRIO
PARTE I – INTRODUÇÃO
1 Programação da produção ...................................................................................................... 5
1.1 Definições ..................................................................................................................... 5
1.2 Pressupostos dos problemas de programação .......................................................... 11
1.3 Variáveis que descrevem um problema de programação ........................................... 12
1.4 Medidas de desempenho mais comuns ..................................................................... 14
SUPLEMENTO Tipos de setup ............................................................................................. 16
Tempos de espera e de ociosidade ............................................................. 17
Restição no-wait .......................................................................................... 17
Restrição no-idle .......................................................................................... 17
Restrição de bloqueio (blocking) .................................................................. 18
Observações sobre makespan e tempo de fluxo.......................................... 18
Exercícios ......................................................................................................................... 19
2 Classificação de problemas ................................................................................................... 21
2.1 Problemas clássicos .................................................................................................. 21
2.2 Casos particulares de flow shop ................................................................................ 24
2.3 Relação entre os problemas ...................................................................................... 26
2.4 Notação de três campos ............................................................................................ 26
Exercícios ......................................................................................................................... 28
3 Métodos de solução................................................................................................................ 30
3.1 Definições de solução ................................................................................................. 30
3.2 Métodos de solução exata .......................................................................................... 31
3.3 Métodos heurísticos ................................................................................................... 31
3.4 Regras de prioridade ................................................................................................. 35
4.5 Solver Evolucionário ................................................................................................. 40
SUPLEMENTO Regra de prioridade ATCS .......................................................................... 42
Exercícios ......................................................................................................................... 44

PARTE II – PROBLEMAS E ALGORITMOS CLÁSSICOS


4 Máquina única ........................................................................................................................ 47
4.1 Tempo médio de fluxo ................................................................................................ 47
4.2 Tempo de fluxo ponderado ......................................................................................... 48
4.3 Atraso máximo............................................................................................................ 48
4.4 Adiantamento máximo ................................................................................................ 49
4.5 Número de tarefas atrasadas ..................................................................................... 50
4.6 Tempo médio de fluxo sem tarefas atrasadas ............................................................ 51
4.7 Makespan com setup dependente .............................................................................. 52
Exercícios ......................................................................................................................... 57
5 Máquinas paralelas ................................................................................................................ 62
5.1 Makespan .................................................................................................................. 62
5.2 Tempo médio de fluxo ............................................................................................... 63
5.3 Tempo médio de fluxo com mínimo makespan .......................................................... 63
5.4 Custo de alocação ..................................................................................................... 64
5.5 Eficácia da heurística ................................................................................................. 65
Exercícios ......................................................................................................................... 68
6 Flow shop ............................................................................................................................... 70
6.1 Formas do cálculo do makespan ............................................................................... 70
6.2 Relação entre as heurísticas clássicas ...................................................................... 73
6.3 Algoritmo de Johnson ................................................................................................ 74
6.4 Heurística de Palmer ................................................................................................. 76
6.5 Heurística CDS .......................................................................................................... 77
6.6 Heurística de Hundal e Rajgopal ............................................................................... 79
6.7 Heurística de Gupta ................................................................................................... 81
6.8 Heurística de Dannenbring ........................................................................................ 82
6.9 Heurística NEH .......................................................................................................... 84
6.10 Relação entre as heurísticas modernas ................................................................... 86
Exercícios ......................................................................................................................... 87
7 Job shop ................................................................................................................................. 89
7.1 Algoritmo de Jackson ................................................................................................. 89
7.2 Algoritmo heurístico ................................................................................................... 92
Exercícios ......................................................................................................................... 93

PARTE III – MÉTODOS DE SOLUÇÃO EXATA


8 Método Branch-and-bound ................................................................................................... 95
8.1 Algoritmo de Ignall e Schrage .................................................................................... 96
Exercícios ......................................................................................................................... 98
9 Programação Linear Inteira Mista ....................................................................................... 100
9.1 Máquina única .......................................................................................................... 100
9.1.1 Tempo médio de fluxo ...............................................................................................100
9.1.2 Atraso máximo ...........................................................................................................101
9.1.3 Atraso total .................................................................................................................101
9.1.4 Adiantamentos e atrasos ............................................................................................101
9.1.5 Número de tarefas atrasadas .....................................................................................101
9.1.6 Makespan com setup dependente ..............................................................................102
9.2 Máquinas paralelas .................................................................................................. 103
9.2.1 Makespan....................................................................................................................103
9.2.2 Adiantamentos e atrasos ...........................................................................................103
9.3 Flow shop ................................................................................................................ 104
9.3.1 Makespan ...................................................................................................................104
9.4 Job shop .................................................................................................................. 106
7.4.1 Makespan ...................................................................................................................106

PARTE IV – META-HEURÍSTICAS
10 Principais Meta-heurísticas ............................................................................................... 108
10.1 Algoritmo Genético ................................................................................................ 108
10.2 Simulated Annealing .............................................................................................. 110
10.3 Busca Tabu ........................................................................................................... 111
10.4 Outras meta-heurísticas ......................................................................................... 112

SUPLEMENTO
Exercícios Selecionados ......................................................................................................... 115
Referências .............................................................................................................................. 126
Introdução ao Sequenciamento da Produção - Hélio Fuchigami ⬧ 5

PARTE I – INTRODUÇÃO

1 PROGRAMAÇÃO DA PRODUÇÃO

1.1 Definições

Programação da produção (Scheduling)

 Alocação de recursos escassos para a execução de tarefas em uma base de tempo


(BAKER, 1974, p.2).
 Processo de tomada de decisão presente tanto em sistemas de produção como em
ambientes de processamento de informações, além das empresas de transporte e
distribuição e outros tipos de serviços industriais (PINEDO, 2012, p.1).

▪ Recursos:
▪ máquinas em uma fábrica
▪ pistas em um aeroporto
▪ trabalhadores em construções
▪ unidades de processamento em ambiente computacional
▪ Tarefas:
▪ pedidos de produção (ordens de serviço ou de produção)
▪ decolagens e aterrissagens de aviões
▪ estágios de um projeto de construção
▪ execuções de programas computacionais

Pesquisa Operacional
(Engenharias, Computação,
Matemática Industrial, Administração)

Planejamento e
Otimização
Controle da Produção
Combinatória
(Engenharia de Produção,
(Matemática Aplicada)
Matemática Industrial)

Figura 1.1 – Correlação das áreas com Programação da Produção (Scheduling)


6 ⬧ Introdução ao Sequenciamento da Produção - Hélio Fuchigami

PESQUISA OPERACIONAL (PO)


 Ciência focada na tomada de decisão e resolução de problemas reais. Área
multidisciplinar que utiliza modelos matemáticos, algoritmos e ferramentas
computacionais na análise de problemas práticos de grande complexidade. Também
referenciada como “Ciência da Gestão” ou “Ciência da Decisão”. Disciplina presente
em diversos cursos: Engenharias, Matemática Industrial, Administração, Computação.

PLANEJAMENTO E CONTROLE DA PRODUÇÃO (PCP)


 Atividade de decidir sobre o melhor emprego dos recursos de produção, assegurando
a execução do que foi previsto, no momento, quantidade e com os recursos adequados.
Recebe dados de diversas áreas e os transforma nas informações necessárias para o
suporte à produção. Área presente tanto em empresas de produtos como de serviços.

OTIMIZAÇÃO COMBINATÓRIA (OC)


 Estudo de problemas em que se busca minimizar ou maximizar uma função (“medida
de desempenho”) por meio da escolha de valores de variáveis (“variáveis de decisão”)
dentro de um conjunto viável (“conjunto de soluções”). Utiliza modelos matemáticos que
representam o problema real e técnicas de otimização visando encontrar a “solução
ótima”, aquela que resulta no melhor desempenho possível do sistema.

DEFINIÇÕES GENÉRICAS da programação da produção:


▪ Tarefa: conjunto de operações inter-relacionadas por restrições de precedência e
tecnológicas
▪ Operação: atividade elementar a ser executada
▪ Máquina: equipamento, dispositivo ou instalação capaz de executar uma operação
▪ Tempo de processamento: tempo requerido para execução de uma operação

ETAPAS da programação da produção:


▪ Alocação: associação das tarefas às máquinas
▪ Sequenciamento: ordenação das tarefas em cada máquina
▪ Cronograma: definição do instante de início e término de cada operação
Introdução ao Sequenciamento da Produção - Hélio Fuchigami ⬧ 7

Número de programações possíveis:


▪ n tarefas ➔ n! sequências possíveis
 Exemplo: para 10 tarefas existem 10! = 3.628.800 sequências possíveis
▪ n tarefas e m máquinas ➔ (n!)m programações possíveis
 Exemplo: para 10 tarefas e 2 máquinas há (10!)2= 13.168.189.440.000
programações possíveis

GRÁFICO DE GANTT
▪ Importante ferramenta visual para programação da produção
▪ Inventado em 1917 por Henry Laurence Gantt (1861-1919)
▪ Representa por barras o tempo de processamento das tarefas
▪ Indica início e fim das atividades e o seu progresso
▪ Vantagem: representação visual simples de cada operação

Figura 1.2 – Exemplo de gráfico de Gantt de programação com três máquinas em série e quatro tarefas

EXEMPLO INTUITIVO DE SEQUENCIAMENTO (COMPLETE AS TABELAS E OS GRÁFICOS):

DADOS
Tarefas J1 J2 J3 J4 J5 J6
Tempo de processamento 2 2 3 3 1 4
Prazo 4 3 12 7 4 6

SEQUÊNCIA 1: ordem aleatória (sorteio)

Sequência Total
Término (fluxo)
Adiantamento
Atraso

0 5 10 15
8 ⬧ Introdução ao Sequenciamento da Produção - Hélio Fuchigami

DADOS
Tarefas J1 J2 J3 J4 J5 J6
Tempo de processamento 2 2 3 3 1 4
Prazo 4 3 12 7 4 6

SEQUÊNCIA 2: ordem crescente dos tempos de processamento (desempate pelo prazo)

Sequência Total
Término (fluxo)
Adiantamento
Atraso

0 5 10 15

SEQUÊNCIA 3: ordem decrescente dos tempos de processamento (desempate pelo prazo)

Sequência Total
Término (fluxo)
Adiantamento
Atraso

0 5 10 15

SEQUÊNCIA 4: ordem dos prazos (desempate pelo tempo de processamento)


Sequência Total
Término (fluxo)
Adiantamento
Atraso

0 5 10 15
Introdução ao Sequenciamento da Produção - Hélio Fuchigami ⬧ 9

DADOS
Tarefas J1 J2 J3 J4 J5 J6
Tempo de processamento 2 2 3 3 1 4
Prazo 4 3 12 7 4 6
Folga (prazo menos proc.)

SEQUÊNCIA 5: ordem das folgas (prazo menos processamento)

Sequência Total
Término (fluxo)
Adiantamento
Atraso

0 5 10 15

SEQ. 1 SEQ. 2 SEQ. 3 SEQ. 4 SEQ. 5


MEDIDAS (ALEAT.) (<PROC.) (>PROC.) (PRAZO) (FOLGA)
Tempo médio de fluxo
Número de tarefas adiantadas
Total de adiantamentos
Número de tarefas atrasadas
Total de atrasos
Atraso médio
Atraso máximo
Total adiantamentos e atrasos
Duração total da programação

EXERCÍCIO:

SEQUÊNCIA 6: ordem crescente dos tempos de processamento (desempate pelo índice)

SEQUÊNCIA 7: ordem decrescente dos tempos de processamento (desempate pelo índice)

Qual a sua conclusão a respeito do critério de desempate das sequências?


10 ⬧ Introdução ao Sequenciamento da Produção - Hélio Fuchigami

EXEMPLO: INFLUÊNCIA DO SEQUENCIAMENTO


▪ 3 máquinas em série: corte, costura, passadoria
▪ 4 tarefas (produtos): meia, cueca, lingerie, pijama

Sequência 1 (aleatória)

Figura 1.2 – Exemplo de programação de quatro tarefas em três máquinas usando uma nova sequência
aleatória

▪ duração da programação: 27
▪ tempo total de espera das máquinas para início da 1ª tarefa: 16
▪ tempo total de máquina ociosa: 22
▪ vantagens:
▪ se as primeiras tarefas tiverem menor prazo de entrega
▪ se quiser reduzir tempo ocioso entre as operações (no-idle)

Sequência 2 (aleatória)

Figura 1.3 – Exemplo de programação de quatro tarefas em três máquinas usando uma sequência aleatória

▪ duração da programação: 21
▪ tempo total de espera das máquinas para início da 1ª tarefa: 6
▪ tempo total de máquina ociosa: 14

EXERCÍCIO: a) Existe outra sequência com duração da programação menor que 21?
b) Compare o tempo médio de fluxo das duas sequências.
Introdução ao Sequenciamento da Produção - Hélio Fuchigami ⬧ 11

1.2 Pressupostos dos problemas de programação da produção

1) As tarefas e os seus dados relevantes ao problema (tempos de processamento e


de setup, datas de liberação, prazos de entrega, penalidades) são conhecidos
previamente.

2) As tarefas são independentes e todas deverão ser executadas.

3) A sequência das operações de cada tarefa (rota) é conhecida e a sua execução


deve respeitar as precedências tecnológicas. O processo de execução também é
conhecido e deve existir pelo menos um conjunto de recursos capaz de executar
cada operação.

4) Os recursos (mão de obra, máquinas, equipamentos, ferramentas etc.) a serem


utilizados na execução das tarefas são previamente especificados.

5) Cada máquina está disponível desde o início da programação e assim


permanece continuamente durante um período de tempo suficiente para executar
todas as tarefas. Não são consideradas indisponibilidades temporárias devido a
quebras ou manutenção.

6) Uma máquina não pode executar duas operações simultaneamente.

7) Cada operação pode ser executada por somente uma máquina.

8) Não é permitida a interrupção (preemption) da execução de qualquer operação.

9) As tarefas podem esperar entre dois estágios de produção e o armazenamento


intermediário (buffer) é ilimitado.

10) As operações de cada tarefa não podem ser subdivididas (no splitting).
12 ⬧ Introdução ao Sequenciamento da Produção - Hélio Fuchigami

1.3 Variáveis que descrevem um problema de programação

Variáveis de entrada de um problema de programação:

▪ n tarefas (jobs) Jj: J = {J1, ..., Jn}

▪ m máquinas (machines) Mk: M = {M1, ..., Mm}

▪ rj: data de liberação da tarefa Jj (release date)

▪ dj: data de entrega ou prazo da tarefa Jj (due date)

▪ pjk: tempo de processamento da tarefa Jj na máquina Mk (processing time)


“pj” quando houver apenas uma máquina

▪ sjk: tempo de preparação (setup) da máquina Mk para produzir a tarefa Jj


“sj” quando houver apenas uma máquina
“sijk” quando o setup for dependente da sequência de tarefas Ji–Jj na máquina Mk

▪ wj: prioridade da tarefa Jj (weight)

▪ g operações que compõem uma tarefa Jj: {opj1, opj2, ..., opjg}

▪ opjk: k-ésima operação da tarefa Jj

M1 J1

s1=2 p1=6

r1=3 C1=11 d1=14

Figura 1.4 – Ilustração das variáveis que definem um problema


Introdução ao Sequenciamento da Produção - Hélio Fuchigami ⬧ 13

Variáveis que descrevem a solução de um problema de programação:

▪ Cj: data de término da tarefa Jj na última máquina (completion time)


“Cjk” para data de término da tarefa Jj na máquina Mk

▪ Fj: tempo de fluxo da tarefa Jj (flowtime)


Fj = Cj – rj

▪ Tj: atraso da tarefa Jj (tardiness)


Tj = max{0,Cj –dj }

▪ Ej: adiantamento da tarefa Jj (earliness)


Ej = max{0, dj –Cj }

▪ Lj: desvio de pontualidade da tarefa Jj (lateness)


Lj = Cj – dj

adiant. pontual. atraso


Lj > 0: atraso (Tj > 0; Ej = 0)
Cj<dj Cj=dj Cj>dj
Lj < 0: adiantamento (Ej > 0; Tj = 0)
Lj = 0: pontualidade (Tj = Ej = 0) dj
Ej>0; Tj=0 Ej=0; Tj>0
Ej=Tj=0
Lj<0 Lj>0
Lj=0
▪ Uj: penalidade unitária da tarefa Jj (unit penalty)
1, se Jj atrasada (Cj > dj)
Uj =
0, caso contrário

d2=7 d3=11 d1=13


L2<0 L3=0 L1>0
(adiantamento: E2=3) (pontual) (atraso:T1=1)

M1 J2 J3 J1

p2=4 p3=7 p1=3

C2=4 C2=11 C1=14


F2=4
F3=11

F1=14

Figura 1.5 – Ilustração das variáveis que descrevem a solução de um problema


14 ⬧ Introdução ao Sequenciamento da Produção - Hélio Fuchigami

1.4 Medidas de desempenho mais comuns

MAKESPAN
▪ Duração total da programação: Cmax = max Cj

▪ Equivale a maximização da utilização dos recursos

▪ Apenas para problemas com várias máquinas (em máquina única Cmax é constante)

TEMPO DE FLUXO
▪ Tempo total de fluxo (flowtime): F = Fj
▪ Tempo médio de fluxo (flowtime médio): F = (F j ) / n
▪ Equivale à minimização do estoque em processamento (work-in-process – WIP)

ADIANTAMENTO E ATRASO
▪ Soma dos adiantamentos e atrasos: ET = (Ej+Tj)
▪ Equivale à filosofia Just-in-Time
▪ Geralmente com pesos globais (Ej+Tj) ou por tarefas (jEj+jTj)
▪ Adiantamento e atraso máximos: Emax+Tmax
▪ Maximização do número de tarefas just-in-time (pontuais)
▪ Contribui para reduzir custos: adiantamentos produzem estoques e atrasos geram
multas

Observação: não faz sentido somar os desvios de pontualidade (lateness) Lj, pois os
adiantamentos anulariam os atrasos.

EXERCÍCIO: Para o problema com quatro tarefas e duas máquinas em série (flow shop),
calcule o makespan e o flowtime médio da sequência apresentada na tabela:

J1 J2 J3 J4
pj1 4 3 5 2
pj2 2 6 1 2

M1
Cmax =
M2 F=
0 5 10 15
Introdução ao Sequenciamento da Produção - Hélio Fuchigami ⬧ 15

ATRASO
▪ Atraso máximo (tardiness): Tmax = max Tj
▪ Atraso total (total tardiness): T = Tj
▪ Número de tarefas atrasadas (tardy jobs): Uj
▪ Contribui para reduzir tempo e custo (multas) e melhorar a qualidade do serviço
▪ Tipos de prazos:
 Datas de entrega diferentes (dj)
 Datas de entrega comuns (dj = d)
 Entrega com janelas de tempo ou tolerância ( d j inicial e d j final)
 Duas datas de entrega (interna e externa)

EXEMPLO (COMPLETE AS TABELAS E OS GRÁFICOS COM AS SEQUÊNCIAS DADAS)

Tarefas J1 J2 J3 J4 J5
Tempo de processamento 2 2 2 2 2
Prazo 4 4 6 2 9

SEQUÊNCIA 1: J4 – J2 – J3 – J1 – J5

Tarefas J4 J2 J3 J1 J5
Término
Atraso 0 5 10

SEQUÊNCIA 2: J4 – J1 – J3 – J5 – J2

Tarefas J4 J1 J3 J5 J2
Término
Atraso 0 5 10

SEQUÊNCIA 3: J2 – J4 – J1 – J3 – J5

Tarefas J2 J4 J1 J3 J5
Término
Atraso 0 5 10

MEDIDAS SEQUÊNCIA 1 SEQUÊNCIA 2 SEQUÊNCIA 3

Atraso máximo
Atraso total
Número de tarefas atrasadas
16 ⬧ Introdução ao Sequenciamento da Produção - Hélio Fuchigami

SUPLEMENTO -
TIPOS DE SETUP
▪ Tempo de setup independente da sequência: o tempo de setup depende apenas
da tarefa a ser processada
EXEMPLO 1: VETOR DE TEMPOS DE SETUP
J1 J2 J3 J4 J5 J6
sj 6 4 2 8 1 9

▪ Tempo de setup dependente da sequência: o tempo de setup depende tanto da


tarefa a ser processada como da imediatamente precedente
EXEMPLO 2: MATRIZ DE TEMPOS DE SETUP (INDÚSTRIAS QUÍMICAS, DE TINTA)
J1 J2 J3 J4 J5 J6
J0 5 7 8 3 4 11
J1 – 2 1 2 6 8
J2 9 – 3 9 7 5
J3 8 12 – 13 1 6
J4 4 2 7 – 5 1
J5 3 1 4 5 – 2
J6 6 3 9 8 4 –

▪ Setup antecipado: atividade de setup que pode ser realizada completamente


antes da liberação da tarefa, ou seja, o setup é realizado em uma máquina
enquanto a operação da tarefa na máquina anterior ainda está sendo processada

M1 s1 J1 s2 J2

M2 s1 J1 s2 J2

r1 r2
Figura 1.6 – Flow shop com setup antecipado

▪ Setup não antecipado: setup que somente pode ser realizado quando a tarefa
estiver disponível (na máquina) para ser processada

M1 s1 J1 s2 J2

M2 s1 J1 s2 J2

r1 r2
Figura 1.7 – Flow shop anterior com setup não antecipado
Introdução ao Sequenciamento da Produção - Hélio Fuchigami ⬧ 17

TEMPOS DE ESPERA E DE OCIOSIDADE

▪ Wjk: tempo de espera da tarefa Jj entre as máquinas Mk e Mk+1 (wait time)

▪ Ijk: tempo ocioso da máquina Mk na produção da tarefa Jj (idle time)

I11=0 I21=0
M1 J1 J2
W11=0 W21=0

M2 J1 J2
I12>0 I22>0
W22>0
W12=0

M3 J1 J2
I13>0
I23=0

Figura 1.8 – Tempo de espera das tarefas versus tempo ocioso das máquinas

RESTRIÇÃO “NO-WAIT”

M1 J1 J2
W11=0 W21=0

M2 J1 J2
W12=0 W22=0

M3 J1 J2

Figura 1.9 – Programação “no-wait” (sem tempo de espera entre as operações das tarefas)

RESTRIÇÃO “NO-IDLE”

M1 J1 J2
I21=0

M2 J1 J2
I22=0

M3 J1 J2
I23=0

Figura 1.10 – Programação “no-idle” (sem tempo ocioso de máquina entre as tarefas)
18 ⬧ Introdução ao Sequenciamento da Produção - Hélio Fuchigami

RESTRIÇÃO DE BLOQUEIO (“BLOCKING”)

blocking blocking

M1 J1 J2 J3 J4

blocking

M2 J1 J2 J3 J4

M3 J1 J2 J3 J4

Figura 1.11 – Programação com bloqueio (“blocking” – a máquina fica bloqueada enquanto a tarefa
processada não for transferida para a próxima máquina)

OBSERVAÇÕES SOBRE MAKESPAN E TEMPO DE FLUXO

▪ Em problemas com rj > 0, Cmax = max Cj – min rj

▪ Cálculo da utilização dos recursos:

U=
p j
ou U=
p j

m(max C j − min r j ) m Cmax

▪ WIP equivale ao número de clientes no sistema de serviços ou número médio de


tarefas no sistema ( N )
▪ Contribui para reduzir custos de armazenamento e para entrega mais rápida

WIP =
F j
N=
 (n + 1 − j )p [ j]

Cmax p j

▪ Estoque total (ET): soma do WIP e dos bens acabados


▪ Mede a efetividade das programações de processos de fabricação
▪ Considera que não entrega com antecipação, apenas na data prometida (prazo) ou
com atraso
▪ Data de entrega real (max[Cj,dj])  data de entrega prometida (prazo dj)

ET =
 max(C ,d j j )
Cmax
Introdução ao Sequenciamento da Produção - Hélio Fuchigami ⬧ 19

EXERCÍCIOS: :

1) Considere os dados de cada conjunto de tarefas abaixo e a sequência em que


aparecem na tabela (ordenação pelo índice j da tarefa). Construa o gráfico de Gantt para
o problema com uma única máquina representando os valores de Cj, Fj e Tj.

a) J1 J2 J3 b) J1 J2 J3 J4
rj 3 10 6 rj 1 5 9 10
pj 6 2 3 pj 2 3 2 5
dj 11 12 13 dj 2 9 7 12

2) Considere os dados de cada conjunto de tarefas abaixo para o problema com uma
única máquina. Construa o gráfico de Gantt para as sequências fornecidas indicando o
makespan, o tempo médio de fluxo, o atraso total e o número de tarefas atrasadas.

a) J1 J2 J3 J4 J5
rj 2 4 6 2 4
pj 6 5 4 6 9
dj 12 15 11 10 18
Sequência: J4 – J3 – J1 – J2 – J5

b) J1 J2 J3 J4
sj 5 7 3 2
pj 4 5 3 8
dj 16 8 17 15
Sequência: J2 – J3 – J4 – J1

3) Considere os dados de cada conjunto de tarefas abaixo para o problema com uma
única máquina.

a) J1 J2 J3 J4
pj 7 4 9 3
dj 15 30 28 18

b) J1 J2 J3 J4 J5
pj 15 30 25 10 20
dj 50 100 75 80 40
20 ⬧ Introdução ao Sequenciamento da Produção - Hélio Fuchigami

c) J1 J2 J3 J4 J5 J6
pj 5 6 4 3 2 4
dj 12 8 7 9 8 15

Sequencie as tarefas de acordo com os critérios:

Sequência 1: Ordem crescente dos tempos de processamento;


Sequência 2: Ordem decrescente dos tempos de processamento;
Sequência 3: Ordem crescente dos prazos de entrega;
Sequência 4: Ordem crescente das folgas (prazo menos tempo de processamento).

Para cada sequência, construa tabelas informando para cada tarefa a sua data de
término, o adiantamento e o atraso, e para cada sequência, o tempo médio de fluxo, o
atraso médio, o atraso máximo, o adiantamento máximo e número de tarefas
atrasadas.
Introdução ao Sequenciamento da Produção - Hélio Fuchigami ⬧ 21

2 CLASSIFICAÇÃO DE PROBLEMAS

2.1 Problemas clássicos

Legenda: Tarefa a processar


Tarefa processada
Máquina
Fluxo das tarefas

MÁQUINA ÚNICA: apenas uma máquina disponível para o processamento


Aplicações:
▪ oficinas com uma única máquina
▪ conjunto de máquinas e equipamentos que operam como se fosse uma
única máquina. Exemplo: indústrias químicas
▪ máquina-dominante em um processo. Exemplo: indústria de papel
▪ máquina gargalo
▪ pista em um aeroporto
▪ equipamentos de uma sala de cirurgia

... M ...

Figura 2.1 – Ilustração de um problema de máquina única

MÁQUINAS PARALELAS: várias máquinas disponíveis para o processamento


(cada tarefa pode ser processada em qualquer máquina, porém em apenas uma)
Aplicações:
▪ várias injetoras operando em paralelo
▪ caixas de um banco
▪ pontos de atracação de navios

M1

... M2 ...
..
.
Mm

Figura 2.2 – Ilustração de um problema de máquinas paralelas


22 ⬧ Introdução ao Sequenciamento da Produção - Hélio Fuchigami

FLOW SHOP: as tarefas possuem um fluxo linear de processamento passando por


várias máquinas (cada máquina é um estágio de produção)
Aplicações:
▪ máquinas e equipamentos organizados em série
▪ sequência de células de produção especializadas em determinados tipos de
produtos
▪ operações de fundição e laminação com fluxo unidirecional

M1 M2 Mm
... ... ...

Figura 2.3 – Ilustração de um flow shop

Rotas das tarefas nas máquinas:


▪ J1: M1 → M2 → M3
▪ J2: M1 → M2 → M3
▪ J3: M1 → M2 → M3
▪ J4: M1 → M2 → M3

FLOW SHOP HÍBRIDO (FLEXIBLE FLOW SHOP ou FLOW SHOP


FLEXÍVEL): flow shop em que os estágios de produção podem conter várias
máquinas disponíveis
Aplicações:
▪ várias prensas operando em paralelo
▪ estágios de produção com capacidade incrementada

Estágio 1 Estágio g
...
M1 M1

... M2 ... M2 ...


.. ..
. .
Mm1 Mmg

Figura 2.4 – Ilustração de um flexible flow shop


Introdução ao Sequenciamento da Produção - Hélio Fuchigami ⬧ 23

JOB SHOP: cada tarefa tem seu fluxo individual ou rota específica nas máquinas
Aplicações:
▪ oficina de manutenção
▪ oficina de ferramentaria
▪ funilaria de carros

M2

... ...
M1

M3

Figura 2.5 – Ilustração de um job shop

Exemplo de rotas das tarefas nas máquinas (n!m programações possíveis):


▪ J1: M1 → M2 → M3
▪ J2: M2 → M3 → M1
▪ J3: M2 → M1 → M3
▪ J4: M3 → M1 → M2

JOB SHOP FLEXÍVEL: job shop em que existem estágios com duas ou mais
máquinas disponíveis (mas a tarefa é processada por somente uma máquina em cada
estágio)

OPEN SHOP: semelhante ao job shop, porém as tarefas não possuem uma rota
específica conhecida previamente, podendo inclusive não passar por uma ou mais
máquinas; as tarefas podem ser processadas em qualquer ordem
Aplicações:
▪ oficina de reparos específicos (em aviões)
▪ centros de controle de qualidade (com atividades simultâneas)
24 ⬧ Introdução ao Sequenciamento da Produção - Hélio Fuchigami

Figura 2.6 – Comparação entre flow shop, job shop e open shop

2.2 Casos particulares de flow shop

FLOW SHOP PERMUTACIONAL: flow shop em que a ordem de


processamento das tarefas em cada máquina é a mesma

J4 J3 J2 J1 J4 J3 J 2 J1 J4 J3 J2 J1
J4 J3 J2 J1 M1 M2 M3 J4 J3 J2 J1

Figura 2.7 – Ilustração de um flow shop permutacional

J3 J1 J4 J2 J2 J3 J1 J4 J4 J2 J1 J3
J4 J3 J2 J1 M1 M2 M3 J4 J2 J1 J3

Figura 2.8 – Ilustração de um flow shop não permutacional

▪ Flow shop permutacional: n! programações possíveis (apenas sequenciamento)


▪ Flow shop não permutacional: (n!)m programações possíveis (sequenciamento em
cada máquina)
Introdução ao Sequenciamento da Produção - Hélio Fuchigami ⬧ 25

▪ Programação permutacional: quando a mesma sequência de tarefas é mantida


em todas as máquinas (programação = permutação de tarefas)

Teorema 1. Para o problema de programação em flow shop com m máquinas, todas as


tarefas simultaneamente disponíveis e o objetivo de minimizar uma função não-decrescente
das datas de término das tarefas, é suficiente considerar somente as programações em que
a mesma sequência de tarefas ocorre na primeira e na segunda máquinas.

▪ Implicação: existe um conjunto dominante de (n!)m-1 programações

Teorema 2. Para o problema de programação em flow shop com m máquinas e


objetivo de minimizar o makespan, é suficiente considerar apenas as programações em
que a mesma sequência de tarefas ocorre nas duas últimas máquinas.

▪ A melhor programação pode não ser permutacional!

EXEMPLO:
Construa os gráficos de Gantt com as duas
programações permutacionais e com a seguinte
pjk J1 J2
programação não permutacional:
M1 1 4
M1: J1 – J2
M2 4 1
M2: J1 – J2
M3 4 1
M3: J2 – J1
M4 1 4
M4: J2 – J1
Compare o makespan e o tempo médio de fluxo das
três programações.

FLOW LINE (ou SKIP-SHOP): flow shop em que as tarefas podem saltar
máquinas (as tarefas não são processadas em uma ou mais máquinas)

J4 J3 J1 J3 J 2 J4 J2 J1
J4 J3 J2 J1 M1 M2 M3 J4 J3 J2 J1

Figura 2.9 – Ilustração de um flow line


26 ⬧ Introdução ao Sequenciamento da Produção - Hélio Fuchigami

2.3 Relação entre os problemas clássicos

FLOW SHOP
uma máquina por estágio

MÁQUINA ÚNICA PERMUTACIONAL OPEN SHOP


g>1 sem
rotas

mesma sem sem


g>1 sequência rotas rotas

m>1
FLOW SHOP JOB SHOP
diferentes
rotas

mk>1 mk>1
multi-máquinas

diferentes
MÁQUINAS g>1 FLOW SHOP rotas JOB SHOP
PARALELAS HÍBRIDO FLEXÍVEL

estágio único multiestágio (g>1) multiestágio (g>1)


(g=1) fluxo padrão sem fluxo padrão

g: número de estágios de produção


mk: número de máquinas do estágio k (com k = 1, 2, ..., g)

Figura 2.9 – Relação entre os problemas clássicos (fonte: autor)

2.4 Notação dos problemas

Notação de 3 campos:  |  | 

: ambiente de produção com o número de máquinas ou estágios

1: máquina única
P: máquinas paralelas idênticas
Q: máquinas paralelas uniformes
R: máquinas paralelas não relacionadas
J: job shop
O: open shop
F: flow shop
HF: flow shop híbrido
FFS: flexible flow shop ou flexible flow line

✓ Observação: Pode-se acrescentar o número de máquinas à notação do campo .


Por exemplo: “Fm” é flow shop com m máquinas, “F2” é flow shop com duas máquinas.
Introdução ao Sequenciamento da Produção - Hélio Fuchigami ⬧ 27

: propriedades (ou restrições) dos recursos e tarefas

: quando não houver propriedades específicas ou restrições


r j: presença de datas de liberação (release dates ou ready times)
dj: presença de prazos de entrega (due dates)
sij (sijk): presença de tempos de setup (preparação) dependentes da sequência
sj (sjk): presença de tempos de setup (preparação) independentes da sequência
prmp: as operações podem ser interrompidas (preemption)
prmu: a solução deve ser uma programação permutacional
brkdwn: as máquinas podem ficar indisponíveis (breakdown)
split: as operações podem ser subdivididas (splitting)
block: bloqueio (blocking); indica que existe uma capacidade finita de
armazenamento temporário (buffer) entre duas máquinas.
Mj: elegibilidade de máquina; conjunto de máquinas que podem processar a
operação da tarefa Jj
no-wait:as tarefas não podem esperar entre duas máquinas sucessivas (no-wait)
recrc: as tarefas podem visitar uma máquina mais de uma vez (recirculation)
prec: presença de restrições de precedência geral;
outros tipos de restrições de precedência:
chain: cada tarefa pode ter somente uma antecessora e uma sucessora
in tree: cada tarefa pode ter somente uma sucessora
out tree: cada tarefa pode ter somente uma antecessora

: medida de desempenho

Cmax: duração total da programação (makespan)


F̅: tempo médio de fluxo (flow time) das tarefas
F (ou Fj): tempo total de fluxo (total flow time) das tarefas
Fw (ou wjFj): fluxo ponderado (weighted flow time) das tarefas
T (ou Tj): atraso total (total tardiness) das tarefas
Tw (ou wjTj): atraso ponderado (weighted tardiness) das tarefas
Tmax: maior atraso (tardiness) das tarefas
nT (ou Uj): número de tarefas atrasadas (tardy jobs)
Emax: maior adiantamento (earliness) das tarefas
E (ou Ej): adiantamento total (total earliness) das tarefas
Lmax: maior desvio de pontualidade (lateness) das tarefas
ET (ou Ej+Tj):soma dos adiantamentos e atrasos das tarefas
I (ou Ij): total de tempo ocioso das máquinas (idle time)

✓ Observação: os problemas podem ter também multicritério (bicritério, tricritério).


28 ⬧ Introdução ao Sequenciamento da Produção - Hélio Fuchigami

EXEMPLOS:
▪ F 2 | | Cmax : flow shop com duas máquinas e minimização do makespan
(Problema de Johnson)

▪ P 3 || F : três máquinas paralelas e minimização do flowtime médio

▪ 1 | d j , s j|Tmax : máquina única com tempos de setup independentes da


sequência e minimização do atraso máximo

EXERCÍCIOS: :
1) Considere os dados de cada conjunto de tarefas abaixo para o problema com duas
máquinas paralelas idênticas e construa o gráfico de Gantt para as sequências fornecidas
indicando o makespan, o tempo médio de fluxo, o atraso total e o número de tarefas
atrasadas.

a) J1 J2 J3 J4 J5
rj 2 4 6 2 4
pj 6 5 4 6 9
dj 12 15 11 10 18
Sequência: J4 – J3 – J1 – J2 – J5

b) J1 J2 J3 J4
sj 5 7 3 2
pj 4 5 3 8
dj 16 8 17 15
Sequência: J2 – J3 – J4 – J1

2) Considere os dados de cada conjunto de tarefas abaixo para o problema de progra-


mação em flow shop permutacional. Construa o gráfico de Gantt para as sequências
fornecidas indicando o makespan, o tempo médio de fluxo, o atraso total e o número de
tarefas atrasadas.

a) J1 J2 J3 J4 b) J1 J2 J3 J4
sj1 2 5 4 3 pj1 3 2 6 5
sj2 4 1 2 2 pj2 2 5 4 3
pj1 7 2 5 4 pj3 4 3 6 2
pj2 3 4 3 2 dj 17 24 21 26
dj 21 18 14 19
Flow shop com três máquinas
Flow shop com duas máquinas e setup Sequência: J4 – J3 – J1 – J2
Sequência: J2 – J3 – J4 – J1
29 ⬧ Introdução ao Sequenciamento da Produção - Hélio Fuchigami

3) Considerando os dados e as sequências apresentados no exercício 2, proponha para


cada problema sequências melhores que as fornecidas em relação ao makespan e ao
tempo médio de fluxo.

4) Descreva os problemas representados pelas seguintes notações de três campos:

a) 1 | sij | C max

b) P 4 | rj , d j| ET
c) Pm | s j| F

d) F 3 | rj , sijk|F

e) Fm | s jk , d j|T

f) Fm | prmu, d j |Tmax
g) Jm | sijk | C max + F
30 ⬧ Introdução ao Sequenciamento da Produção - Hélio Fuchigami

3 MÉTODOS DE SOLUÇÃO

3.1 Definições de solução

▪ Solução viável (ou factível): solução que satisfaz todas as restrições


▪ Solução inviável (ou infactível): solução que viola pelo menos uma restrição
▪ Solução ótima: melhor solução que pode ser encontrada em relação a uma
medida de desempenho ou função-objetivo

EXEMPLO 1: 1 | |F j n! = 24 sequências possíveis


Exemplo de solução viável: J2 – J1 – J4 – J3
Tarefa J1 J2 J3 J4 Exemplos de soluções inviáveis: J2 – J4 – J3 ou
pj 8 3 6 1 J2 – J2 – J4 – J3 ou J2 – J4 – J3 – J8

Topologia ou espaço de soluções J3–J2–J4–J1

J2–J4–J1–J3
J3–J1–J2–J4 J3–J4–J2–J1
J3–J1–J4–J2
J2–J3–J1–J4 J2–J4–J3–J1 J3–J2–J1–J4
J3–J4–J1–J2
J2–J3–J4–J1 solução inicial J1–J2–J3–J4
J4–J2–J1–J3 (aleatória) solução vizinha
J4–J1–J3–J2 J2–J1–J4–J3 J2–J1–J3–J4
J1–J4–J3–J2
J4–J1–J2–J3
J1–J4–J2–J3 J1–J2–J4–J3
J1–J3–J4–J2
solução ótima J1–J3–J2–J4
J4–J2–J3–J1 J4–J3–J1–J2
J4–J3–J2–J1

Figura 3.1 – Ilustração do espaço de soluções do problema com quatro tarefas

Mínimo local Mínimo global


Solução ótima

Figura 3.2 – Tempo total de fluxo das 24 soluções viáveis


Introdução ao Sequenciamento da Produção - Hélio Fuchigami ⬧ 31

3.2 Métodos de solução exata

▪ Métodos de solução ótima


▪ Enumeram sistematicamente o espaço de soluções para encontrar a melhor
solução do problema
Exemplos:
 Programação Matemática: Programação Linear, Linear Inteira e Linear
Inteira Mista
 Algoritmo Branch-and-bound
 Programação Dinâmica
 Enumeração Completa (Busca exaustiva)
▪ Limitações computacionais:
 tamanho do problema (número de tarefas e de máquinas)
 natureza das hipóteses e restrições do problema
 tempo computacional (código implementado)

3.3 Métodos heurísticos

▪ Critérios racionais ou computacionais para escolher um caminho entre vários


possíveis, sem necessariamente percorrer todas as possibilidades ou atingir a
melhor solução
▪ Objetiva encontrar uma solução viável pelo menos próxima da ótima com tempo de
computação aceitável
▪ Outras vantagens:
 fácil implementação
 não exige altos níveis de ferramental matemático
 mais rápidas que os métodos exatos
 podem ser usados em problemas reais

▪ Origem da palavra: do grego heuriskein = encontrar, descobrir


▪ “Eureka”, imortalizado pelo matemático e filósofo grego Arquimedes
32 ⬧ Introdução ao Sequenciamento da Produção - Hélio Fuchigami

▪ Diversas situações em que as heurísticas são úteis na resolução de um problema:


 quando não existe um método exato para a resolução do problema ou se tal
método requer um tempo de processamento muito grande;
 quando não é necessária a solução ótima, pois as soluções obtidas já são
razoáveis;
 quando os dados são pouco confiáveis; neste caso, a busca pela solução
ótima não tem sentido, uma vez que a mesma também será uma
aproximação da realidade;
 quando limitações de tempo e/ou dinheiro obriguem a utilização de métodos
de resposta rápida;
 como passos intermediários de outros algoritmos, potencialmente exatos ou
heurísticos (ou meta-heurísticos).

CLASSIFICAÇÃO DAS HEURÍSTICAS:

▪ HEURÍSTICAS CONSTRUTIVAS: a solução é obtida por meio de um procedimento


iterativo sobre soluções parciais (subsequências e alocações). O algoritmo parte de
uma solução vazia e vai construindo-a, um passo de cada vez, até completá-la.
Algoritmos construtivos não possuem esquema de backtracking, ou seja, após
inserir uma tarefa na solução, não é possível retirá-la.

EXEMPLO 2:
Heurística “Improviso”
PASSO 1 – Sequencie as tarefas pela ordem descrecente dos índices.
PASSO 2 – Programe sequencialmente as tarefas com índice par e em seguida as
tarefas com índice ímpar.

Resolução:
n tarefas a serem programadas: J1, J2, J3, J4
PASSO 1 – Tarefas ordenadas não programadas: J4, J3, J2, J1
PASSO 2 – 1ª iteração: {J4}
2ª iteração: {J4, J2}
3ª iteração: {J4, J2, J3}
4ª iteração: {J4, J2, J3, J1} sequência completa: solução final
Introdução ao Sequenciamento da Produção - Hélio Fuchigami ⬧ 33

EXERCÍCIO 1: Programe um conjunto de cinco tarefas genéricas pelo seguinte método:

Heurística “Aleatória”
PASSO 1 – Associe aleatoriamente um número gerado no intervalo de 1 a 99
a cada tarefa.
PASSO 2 – Programe as tarefas pela ordem crescente do número associado.

EXERCÍCIO 2: Elabore uma heurística construtiva, incluindo um teste de inserção, para o


problema de minimização do atraso médio em máquina única e aplique ao exemplo
numérico a seguir.

J1 J2 J3 J4
pj 6 3 4 5
dj 8 12 7 15

▪ HEURÍSTICAS DE MELHORIA (OU MELHORATIVAS): procedimentos iterativos


são aplicados a uma solução inicial visando melhorá-la quanto à medida de
desempenho adotada. O algoritmo já inicia com uma solução viável (que atenda a
todas as restrições do problema) e trabalha no seu melhoramento por meio de
passos sucessivos, que excluem e incluem tarefas e fazem movimentações.

EXEMPLO 3:
Heurística “Tentativa” para minimização do adiantamento total
PASSO 1 – Programe as tarefas pela ordem crescente dos prazos. Calcule o
adiantamento total das tarefas.
PASSO 2 – Execute 3 vezes o seguinte procedimento:
Selecione aleatoriamente uma tarefa e troque a sua posição com a da
tarefa seguinte. Se a solução for melhor*, mantenha; caso contrário,
volte à posição original.
[*melhor valor da medida de desempenho considerada.]

Resolução:
J1 J2 J3 J4
pj 5 8 6 2
dj 13 20 18 9
34 ⬧ Introdução ao Sequenciamento da Produção - Hélio Fuchigami

PASSO 1 – Tarefas programadas (sequência completa): {J4, J1, J3, J2}


J4 J1 J3 J2
Cj 2 7 13 21 ∑Ej
Ej 7 6 5 0 18

PASSO 2 – Etapa de melhoria (3 iterações):


1ª iteração: seleção aleatória da 2ª posição
{J4, J1, J3 , J2}  {J4, J3, J1 , J2}

J4 J3 J1 J2
Cj 2 8 13 21 ∑Ej
Ej 7 10 0 0 17
A nova solução é melhor? Sim, então mantém.

2ª iteração: seleção aleatória da 3ª posição


{J4, J3, J1, J2 }  {J4, J3, J2, J1 }

J4 J3 J2 J1
Cj 2 8 16 21 ∑Ej
Ej 7 10 4 0 21
A nova solução é melhor? Não, então volte à anterior.
{J4, J3, J1, J2}

3ª iteração: seleção aleatória da 1ª posição


{J4, J3 , J1, J2}  {J3, J4 , J1, J2}

J3 J4 J1 J2
Cj 6 8 13 21 ∑Ej
Ej 12 1 0 0 13
A nova solução é melhor? Sim, então mantém.

Fim das iterações. Solução final: {J3, J4, J1, J2} ∑Ej = 13

EXERCÍCIO 3: A operação de trocar uma tarefa com a da posição seguinte é chamada


movimento de busca em vizinhança, neste caso, especificamente a troca de pares
adjacentes (adjacent pairwise interchange). Pesquise outros movimentos de busca em
vizinhaça.

EXERCÍCIO 4: Elabore uma heurística de melhoria para o problema de minimização do


adiantamento máximo em máquina única e aplique ao exemplo numérico anterior.
Introdução ao Sequenciamento da Produção - Hélio Fuchigami ⬧ 35

▪ META-HEURÍSTICAS: procedimentos de busca das soluções possíveis utilizando


alguma estratégia de exploração racional, geralmente incluindo algum processo
aleatório. Exploram as características das soluções encontradas e experimentam
diferentes espaços de soluções fora da vizinhança. Na maioria dos casos, simulam
algum fenômeno encontrado na natureza (algoritmos bioinspirados).
Exemplos: Algoritmo Genético, Simulated Annealing, Busca Tabu, Greedy
Randomized Search Procedure (GRASP), Colônia de Formigas (Ant Colony),
Colônia de Abelhas (Bee Colony) Busca Local Iterativa, Nuvem de Partículas
(Particle Swarm), Algoritmo Imunológico, Algoritmo Memético, Algoritmo Harmônico.
(Mais informações sobre as meta-heurísticas na Parte IV deste material.)

EFICÁCIA x EFICIÊNCIA x EFETIVIDADE

EFICÁCIA DA SOLUÇÃO [objetivo, fim]


▪ Heurística eficaz: fornece uma boa solução (ótima ou próxima da ótima)
EFICIÊNCIA COMPUTACIONAL [meio]
▪ Heurística eficiente: fornece a solução em tempo de computação aceitável
EFETIVIDADE DO MÉTODO [finalidade]
▪ Heurística efetiva: método tem utilidade, aplicação prática

3.4 Regras de prioridade

▪ “Regras de prioridade”, “regras de sequenciamento”, “regras de ordenação”,


“regras de despacho”
▪ Regras de decisão lógica que selecionam a próxima tarefa a ser executada por
meio de algum critério
▪ Vantagens:
 Simples (de compreender) e fáceis de implementar (computacionalmente)
 Úteis na prática (muito utilizadas nas empresas)
 Podem incorporar informações de última hora durante a programação
▪ Suficientes para a programação em alguns ambientes de produção (máquina
única, flow shop permutacional)
▪ Comuns em sistemas de produção empurrados1
▪ Servem de base para métodos de solução mais complexos

1 Sistema de produção empurrado: cada estágio de produção empurra o trabalho, sem considerar se o
estágio seguinte pode realizá-lo, podendo acarretar estoque intermediário e filas.
Sistema de produção puxado: o ritmo de produção é definido pelo estágio consumidor, que puxa o
trabalho do estágio anterior (fornecedor), geralmente por meio de um kanban.
36 ⬧ Introdução ao Sequenciamento da Produção - Hélio Fuchigami

Regras mais conhecidas e seus critérios de prioridade:

▪ SPT (Shortest Processing Time): menor tempo de processamento (pj)


▪ LPT (Longest Processing Time): maior tempo de processamento (pj)
▪ WSPT (Weighted Shortest Processing Time): menor razão entre o tempo de
processamento e a prioridade ou penalidade (pj/wj)

▪ WLPT (Weighted Longest Processing Time): maior razão pj/wj


▪ EDD (Earliest Due Date): menor data de entrega (dj)
▪ MST (Minimum Slack Time): menor folga ou maior urgência (dj – pj)
▪ FIFO (First In First Out), FCFS (First Come First Served) ou PEPS (Primeiro que
Entra, Primeiro que Sai): “fila”, a primeira que chega é a primeira a ser processada,
ou seja, ordenar pela menor data de liberação (rj)

▪ LIFO (Last In First Out): “pilha”, a última que chega é a primeira a ser processada,
ou seja, ordenar pela maior data de liberação (rj)

▪ CR (Critical Ratio): menor razão crítica, ou seja, o tempo disponível dividido pelo
 d j − rj 
tempo de processamento  
 p 
 j 
▪ SST (Shortest Setup Time): menor tempo de setup (sj)

Regras dinâmicas:

Selecionam a próxima tarefa, entre as remanescentes, a cada instante t, quando a


máquina é liberada

▪ MST(t): menor folga ( max{dj – pj –t, 0} )


d −t 
▪ CR(t): menor razão crítica  j 
 pj 
CR(t) > 1: tarefa adiantada
CR(t) < 1: tarefa atrasada
CR(t) = 1: tarefa pontual

▪ MDD(t): menor valor ( max{dj, t + pj} ) [Modified Due Date]

✓ Observação: existem ainda algumas regras paramétricas famosas, como


COVERT, ATC, ATCS. (Mais informações sobre a ATCS no Suplemento deste
capítulo e sobre as regras ATC, COVERT e MDD em Yoon e Lee, 2011).
Introdução ao Sequenciamento da Produção - Hélio Fuchigami ⬧ 37

EXEMPLO 4: (COMPLETE OS GRÁFICOS E AS TABELAS):

SPT e LPT
DADOS
Tarefas J1 J2 J3 J4 J5
Processamento (pj) 3 7 2 8 4

Sequência SPT ∑Fj


Tempo de fluxo (Fj)

0 5 10 15 20 25

Sequência LPT ∑Fj


Tempo de fluxo (Fj)

0 5 10 15 20 25

COMPARATIVO F
SPT
LPT

WSPT e WLPT
DADOS
Tarefas J1 J2 J3 J4 J5
Processamento (pj) 3 7 2 8 4
Prioridade (wj) 4 2 6 5 2

Sequência WSPT ∑wjFj


Fluxo ponderado (wjFj)

0 5 10 15 20 25
38 ⬧ Introdução ao Sequenciamento da Produção - Hélio Fuchigami

Sequência WLPT ∑wjFj


Fluxo ponderado (wjFj)

0 5 10 15 20 25

COMPARATIVO Fw
WSPT
WLPT

EDD e MST
DADOS
Tarefas J1 J2 J3 J4 J5
Processamento (pj) 3 7 2 8 4
Prazo (dj) 9 20 13 10 14
Folga (dj – pj)

Sequência EDD ∑
Adiantamento (Ej)
Atraso (Tj)

0 5 10 15 20 25

Sequência MST ∑
Adiantamento (Ej)
Atraso (Tj)

0 5 10 15 20 25
Introdução ao Sequenciamento da Produção - Hélio Fuchigami ⬧ 39

CR
DADOS
Tarefas J1 J2 J3 J4 J5
Processamento (pj) 3 7 2 8 4
Prazo (dj) 9 20 13 10 14
Liberação (rj) 4 6 1 7 5
Razão crítica [(dj – rj)/pj]

Sequência CR ∑
Adiantamento (Ej)
Atraso (Tj)

0 5 10 15 20 25

COMPARATIVO E T T Tmax nT
EDD
MST
CR

FIFO e LIFO
DADOS
Tarefas J1 J2 J3 J4 J5
Processamento (pj) 3 7 2 8 4
Liberação (rj) 4 6 1 7 5

Sequência FIFO ∑Fj


Tempo de fluxo (Fj)

0 5 10 15 20 25 30

Sequência LIFO ∑Fj


Tempo de fluxo (Fj)

0 5 10 15 20 25 30
40 ⬧ Introdução ao Sequenciamento da Produção - Hélio Fuchigami

3.5 Solver Evolucionário

▪ Solução por implementação em planilhas eletrônicas


▪ Comando “Solver” dos suplementos
▪ Relatório de resposta informa o tempo de computação da solução (em segundos)

EXEMPLO 5: Problema 1 | d j|T

J1 J2 J3 J4 J5
pj 7 5 6 2 8
dj 13 11 18 20 23

Figura 3.3 – Fórmulas da implementação do problema na planilha eletrônica


Introdução ao Sequenciamento da Produção - Hélio Fuchigami ⬧ 41

Figura 3.4 – Parâmetros do solver

Figura 3.5 – Opções dos métodos (à esquerda) e do solver evolucionário (à direita) – valores padrão
42 ⬧ Introdução ao Sequenciamento da Produção - Hélio Fuchigami

Figura 3.6 – Solução do problema

EXERCÍCIO 5: Utilizando os dados do Exemplo 5, resolva os seguintes problemas,


implementando-os em planilhas eletrônicas:
a) 1 | d j| Tmax

b) 1 | d j| ET

EXERCÍCIO 6: Crie seus próprios dados numéricos e implemente em planilhas


eletrônicas os seguintes problemas:
a) Fm | prmu| Cmax

b) Fm| prmu| F

c) Fm | prmu, d j|T

d) Fm | prmu, d j| nT

e) Fm | prmu , d j| ET
Introdução ao Sequenciamento da Produção - Hélio Fuchigami ⬧ 43

SUPLEMENTO -
REGRA DE PRIORIDADE ATCS (Apparent Tardiness Cost with Setups)

▪ Minimização do atraso ponderado com setup dependente no problema de máquina

única (1 | sij , d j | w jT j )
▪ Combina as regras WSPT, MST e SST (Shortest Setup Time ou Vizinho Mais
Próximo)

▪ Regra disponível no software Lekin

▪ Em um instante t, quando a máquina é liberada, tendo realizada a tarefa Ji,


seleciona entre as tarefas remanescentes Jj aquela com o maior índice Iij(t)

wj  max( d j − p j − t ,0)   s 
I ij (t ) = exp −  exp − ij  ,
pj  K 1p   K2s 

onde: p é a média dos tempos de processamento das tarefas remanescentes,


s é a média dos tempos de setup das tarefas remanescentes,
K1 é um parâmetro de escalonamento dos prazos,
K2 é um parâmetro de escalonamento dos tempos de setup

Os parâmetros K1 e K2 são funções de três fatores:

- o fator de atraso T = 1 −
d j

nCmax
d − d min
- a faixa de prazos R = max
Cmax
- o fator de ponderação dos tempos de setup  = s / p

n
O makespan deve antes ser estimado: Cˆ max = p
j =1
j + ns

Assim, os valores de K1 e K2 são calculados:

4,5 + R, R  0,5
K1 =  K 2 = T /(2  )
6 − 1R, R  0,5

Observação: valores de T próximos de 1 indicam que os prazos são apertados e valores

próximos de 0 indicam que os prazos são largos. Altos valores de R indicam uma faixa
ampla de prazos, enquanto que baixos valores indicam uma faixa mais estreita.
44 ⬧ Introdução ao Sequenciamento da Produção - Hélio Fuchigami

EXEMPLO 6:

J1 J2 J3 J4 sij J1 J2 J3 J4
pj 13 9 13 10 J0 1 1 3 4
dj 12 37 21 22 J1 – 4 1 3
wj 2 4 2 5 J2 0 – 1 0
J3 1 2 – 3
J4 4 3 1 –

p = 11 s 2 Cˆ max = 45 + 4 * 2 = 53

R = 25 / 53  0,47 T = 1 − 23 / 53  0,57  = 1/ 11  0,18


K1 = 5 K2 = 0,7

I 01 (0) = 0,075 I 02 (0) = 0,131 I 03 (0) = 0,016 I 04 (0) = 0,020


J2 tem maior prioridade

I 21 (10) = ? I 23 (10) = ? I 24 (10) = ?

(Para simplificação dos cálculos, Pinedo (2012) sugere manter os valores de K1 p e K 2 s )

Sequência final: J2 – J4 – J3 – J1 w jT j = 98

A enumeração completa mostrou que a sequência é ótima.


Note que neste caso a cada passo, foi selecionada a tarefa com o menor setup.

Fonte: Pinedo (2012)

EXERCÍCIOS: :

1) Utilizando as dez regras de prioridade descritas na seção 3.4, sequencie as tarefas:

a) J1 J2 J3 J4 J5
rj 5 2 1 4 3
sj 2 1 2 2 1
pj 3 5 2 6 1
dj 13 7 4 10 8
wj 2 1 3 2 4
Introdução ao Sequenciamento da Produção - Hélio Fuchigami ⬧ 45

b) J1 J2 J3 J4 J5
rj 2 3 6 2 4
sj 1 2 3 3 2
pj 6 2 4 2 5
dj 8 12 21 18 14
wj 2 2 1 2 1

2) Para cada problema abaixo sequencie as tarefas pelas regras SPT, LPT, EDD, FIFO,
LIFO, MST e CR e compare os desempenhos em relação ao makespan, o tempo médio
de fluxo, o atraso total e o número de tarefas atrasadas.

J1 J2 J3 J4
rj 1 5 9 10
pj 2 3 2 5
dj 2 9 7 12
a) máquina única

J1 J2 J3 J4 J5
rj 2 4 6 2 4
pj 6 5 4 6 9
dj 12 15 11 10 18
b) máquina única

J1 J2 J3 J4
sj 5 7 3 2
pj 4 5 3 8
dj 16 8 17 15
c) máquina única

J1 J2 J3 J4
pj1 7 2 5 4
pj2 3 4 3 2
dj 21 18 14 19
d) flow shop com duas máquinas

J1 J2 J3 J4
pj1 3 2 6 5
pj2 2 5 4 3
pj3 4 3 6 2
dj 17 24 21 26
e) flow shop com três máquinas
46 ⬧ Introdução ao Sequenciamento da Produção - Hélio Fuchigami

3) Uma empresa de consultoria deverá executar 7 projetos, tendo cada um sua data de
entrega estabelecida. A empresa é de pequeno porte, de modo que somente executará
um projeto de cada vez, ou seja, os projetos serão executados sequencialmente e sem
interrupção. De acordo com o contrato, a empresa receberá um prêmio de $800 para
cada projeto terminado sem atraso e pagará uma multa de $500 para cada projeto que for
concluído após a data de entrega estabelecida. As durações dos projetos e as respectivas
datas de entrega são dadas abaixo. Como deverão ser sequenciados os projetos, de
forma a maximizar o prêmio líquido? (MOCCELLIN, 1999) De acordo com a sequência
encontrada, qual será o prêmio líquido?

Projeto Proj1 Proj2 Proj3 Proj4 Proj5 Proj6 Proj7


Duração 2 4 6 8 10 12 14
Data de entrega 6 12 30 19 12 18 24
47 ⬧ Introdução ao Sequenciamento da Produção - Hélio Fuchigami

PARTE II – PROBLEMAS E
ALGORITMOS CLÁSSICOS

4 MÁQUINA ÚNICA

▪ Programação = sequenciamento
▪ Número de sequências possíveis para n tarefas: n!
▪ Com rj = 0 e sem setup depentente, todas as n! sequências têm o mesmo valor de Cmax

... M ...

Figura 4.1 – Ilustração do problema de máquina única

4.1 Minimização do tempo médio de fluxo (1 || F )


n
j =1
Fj
▪ F =
n
▪ Problemas equivalentes: 1 | | F , 1 | |  F j e 1 | |  W j (tempo total de espera)

▪ Solução ótima: regra SPT

EXEMPLO 1:

J1 J2 J3 J4 J5
pj 5 6 2 5 3

SPT: ________________________________

0 5 10 15 20

F* =
48 ⬧ Introdução ao Sequenciamento da Produção - Hélio Fuchigami

4.2 Minimização do tempo de fluxo ponderado (1 | | Fw )

 w jC j  w j Fj
▪ Fw = =
 wj  wj
▪ Solução ótima: regra WSPT

EXEMPLO 2:

J1 J2 J3 J4 J5
pj 5 6 2 5 3
wj 4 1 5 3 2
pj/wj

WSPT: ________________________________

0 5 10 15 20

Cj Fw* =
wj Cj

4.3 Minimização do atraso máximo (1 | d j | Tmax )

▪ Tmax = max T j , com T j = max{0, C j − d j } , j=1,...,n


j =1,...,n

▪ Problema equivalente: 1 | d j | Lmax


▪ Solução ótima: regra EDD (Regra de Jackson)

EXEMPLO 3:

J1 J2 J3 J4 J5
pj 4 2 3 5 3
dj 7 6 11 13 5

EDD: ________________________________
49 ⬧ Introdução ao Sequenciamento da Produção - Hélio Fuchigami

J5 J2 J1 J3 J4
Cj *
Tmax =
Tj

EXEMPLO 4:

J1 J2 J3 J4 J5 J6
pj 4 6 4 2 5 3
dj 6 20 10 5 22 9

 Resolva e construa o gráfico de Gantt

4.4 Minimização do adiantamento máximo (1 | d j | Emax )

▪ E max = max E j , com E j = max{0, d j − C j } , j=1,...,n


j =1,...,n

▪ Solução ótima: regra MST

DO EXEMPLO 3:

J1 J2 J3 J4 J5
pj 4 2 3 5 3
dj 7 6 11 13 5
dj – pj

MST: ________________________________

Cj *
Emax =
Ej

EXEMPLO 4 (anterior): Resolva e construa o gráfico de Gantt


50 ⬧ Introdução ao Sequenciamento da Produção - Hélio Fuchigami

4.5 Minimização do número de tarefas atrasadas (1 | d j | nT )

▪ nT ou  U j : número de tarefas atrasadas

ALGORITMO DE HODGSON (solução ótima):

PASSO 1 – Ordene as tarefas pela regra EDD.


PASSO 2 – Identifique a primeira tarefa atrasada (JT). Se não houver tarefas atrasadas,
vá para o Passo 4. Caso contrário, vá para o Passo 3.
PASSO 3 – Da primeira tarefa até JT, remova a tarefa com maior tempo de
processamento para a lista de tarefas removidas. Atualize as datas de
término e vá para o Passo 2.
PASSO 4 – Acrescente as tarefas removidas (em qualquer ordem) à sequência obtida.
Pare.

EXEMPLO 5:

J1 J2 J3 J4 J5 J6 J7 J8
pj 10 6 3 1 4 8 7 6
dj 35 20 11 8 6 25 28 9

maior pj

EDD J5 J4 J8 J3 J2 J6 J7 J1 Tarefas
removidas:
Cj 4 5 11
Tj 0 0 2 J8
JT
maior pj

J5 J4 J3 J2 J6 J7 J1 – Tarefas
removidas:
Cj 4 5 8 14 22 29
Tj 0 0 0 0 0 1 J8, J6
JT

J5 J4 J3 J2 J7 J1 J8 J6
Cj 4 5 8 14 21 31 37 45
Tj 0 0 0 0 0 0 28 20
nenhuma tarefa atrasada tarefas removidas

nT* = 2
Introdução ao Sequenciamento da Produção - Hélio Fuchigami ⬧ 51

4.6 Minimização do tempo médio de fluxo sem tarefas atrasadas


(1 | d j , nT = 0 | F )

▪ Problema equivalente: 1 | d j , Tmax = 0 | F

REGRA DE SMITH (solução ótima):

A tarefa Ji deve ser programada na última posição da sequência se e somente se


n
a) d i  j =1
pj e


n
b) pi  pk , J k | d k  j =i
pj .

Caso contrário, não há solução viável.

EXEMPLO 6:

J1 J2 J3 J4 J5
pj 4 7 1 6 3
dj 16 16 8 21 9

ITERAÇÃO 1: pj = 21 Candidatas para J[5] devem ter d i  21: J4

J4

ITERAÇÃO 2: pj = 15 Candidatas para J[4] devem ter d i  15 : J1, J2 (maior pj)

J2 J4

ITERAÇÃO 3: pj = 8 Candidatas para J[3] devem ter d i  8 : J1, J3, J5 (maior pj)

J1 J2 J4

ITERAÇÃO 4: pj = 4 Candidatas para J[2] devem ter d i  8 : J3, J5 (maior pj)

J5 J1 J2 J4

ITERAÇÃO 5: J[1]
J3 J5 J1 J2 J4 Sequência ótima

J3 J5 J1 J2 J4
Cj 1 4 8 15 21 nT* = 0, F * = 9,8
Tj 0 0 0 0 0
52 ⬧ Introdução ao Sequenciamento da Produção - Hélio Fuchigami

0 5 10 15 20

EXEMPLO 7:

J1 J2 J3 J4 J5
pj 4 2 3 5 3
dj 10 10 12 18 6

 Resolva e construa o gráfico de Gantt

4.7 Minimização do makespan com setup dependente (1 | sij | C max )

▪ Makespan (Cmax) ou soma dos tempos de setup (Sij)


▪ Analogia com Problema do Caixeiro Viajante (Travelling Salesman Problem – TSP)
Viagem de um caixeiro (vendedor ambulante) que deseja percorrer o caminho mais
curto a partir da sua morada, passando por todas as cidades e retornando ao ponto
de origem
▪ cidades = tarefas
▪ distâncias entre as cidades = tempos de setup

▪ Heurísticas construtivas
▪ Critério de seleção míope (ou guloso), busca a melhor opção local
▪ Algoritmo do Vizinho Mais Distante tende a ser melhor que Vizinho Mais Próximo

ALGORITMO DO VIZINHO MAIS PRÓXIMO (solução heurística):

PASSO 1 – Escolha arbitrariamente o nó inicial (tarefa fictícia J0). Selecione o nó mais


próximo.
PASSO 2 – Entre os nós ainda não selecionados, escolha o mais próximo (menor
setup) de qualquer nó já selecionado.
PASSO 3 – Examine todas as possibilidades de inserção do nó escolhido, adotando a
que leve ao menor comprimento total da rota (menor makespan).
PASSO 4 – Se todos os nós foram selecionados, Pare. Senão, volte para o Passo 2.
Introdução ao Sequenciamento da Produção - Hélio Fuchigami ⬧ 53

EXEMPLO 8:

J1 J2 J3 J4
pj 2 1 2 3

sij J1 J2 J3 J4
J0 3 1 2 5
J1 – 2 9 6
J2 7 – 4 1
J3 3 8 – 2
J4 5 4 6 –

INICIALIZAÇÃO
J0

ITERAÇÃO 1
TOTAL
J0 sij

J0 TOTAL
sij

ITERAÇÃO 2
TOTAL
J0 sij
TOTAL
J0 sij
TOTAL
J0 sij

ITERAÇÃO 3
TOTAL
J0 sij
TOTAL
J0 sij
TOTAL
J0 sij
TOTAL
J0 sij

Solução:
54 ⬧ Introdução ao Sequenciamento da Produção - Hélio Fuchigami

0 5 10 15 20

Cmax =

ALGORITMO DO VIZINHO MAIS DISTANTE (solução heurística):

PASSO 1 – Escolha arbitrariamente o nó inicial (tarefa fictícia J0). Selecione o nó mais


distante.
PASSO 2 – Entre os nós ainda não selecionados, escolha o mais distante (maior setup)
de qualquer nó já selecionado.
PASSO 3 – Examine todas as possibilidades de inserção do nó escolhido, adotando a
que leve ao menor comprimento total da rota (menor makespan).
PASSO 4 – Se todos os nós foram selecionados, Pare. Senão, volte para o Passo 2.

DO EXEMPLO 8:

INICIALIZAÇÃO
J0

ITERAÇÃO 1
TOTAL
J0 sij

J0 TOTAL
sij

ITERAÇÃO 2
TOTAL
J0 sij
TOTAL
J0 sij
TOTAL
J0 sij
Introdução ao Sequenciamento da Produção - Hélio Fuchigami ⬧ 55

ITERAÇÃO 3
TOTAL
J0 sij
TOTAL
J0 sij
TOTAL
J0 sij
TOTAL
J0 sij

Solução: e

0 5 10 15 20

Cmax =

MÉTODO DE VOGEL (adaptação de Fuchigami para máquina única – solução heurística):

PASSO 1 – Para cada linha e coluna da matriz quadrada dos tempos de setup Sij(nxn),
determine uma multa subtraindo os dois menores elementos válidos
(desconsiderando a diagonal principal).
PASSO 2 – Na linha ou coluna com maior multa identifique a célula i-j com o menor
valor. Desempates são arbitrários. Selecione o par de tarefas Ji – Jj.
PASSO 3 – Cancele a linha i, a coluna j e a célula j-i. Se não houver células válidas, a
sequência circular está completa*, vá para o Passo 5. Caso contrário,
continue.
PASSO 4 – Se restar apenas linhas ou colunas com um único elemento válido,
selecione o menor elemento válido i-j da matriz e volte ao Passo 3.
Senão, volte ao Passo 1.
PASSO 5 – A partir da sequência circular formada, quebre cada elo possível (entre os
pares de tarefas) e insira a tarefa fictícia J0, formando uma sequência real
completa. Considere a sequência com o menor makespan.

* Pode haver a formação de subciclos, cuja junção para formar apenas um ciclo completo é a feita de forma arbitrária.

▪ Método de Aproximação de Vogel (MAV) original para Problemas de Transporte: Taha (2008)
▪ MAV em flow shop com setup dependente: Stinson e Smith (1982), Simons Jr. (1992)
56 ⬧ Introdução ao Sequenciamento da Produção - Hélio Fuchigami

DO EXEMPLO 8:

sij J1 J2 J3 J4 multas -
J1 – 2 9 6 -
J2 7 – 4 1
-
J3 3 8 – 2
J4 5 4 6 –
multas

Pares formados:
-

Sequência circular:

Sequências possíveis
TOTAL
J0 sij
TOTAL
J0 sij
TOTAL
J0 sij
TOTAL
J0 sij

Solução:
e

0 5 10 15 20

Cmax =
Introdução ao Sequenciamento da Produção - Hélio Fuchigami ⬧ 57

Vizinho Mais Vizinho Mais Método de


COMPARATIVO
Próximo Distante Vogel
Sequência
Cmax

EXERCÍCIO 1: Elabore um método de solução heurística para o problema 1 | sij | C max e


resolva com o conjunto de dados a seguir. Compare a sua solução com a dos métodos do
Vizinho Mais Próximo, Vizinho Mais Distante e Método de Voguel.

J1 J2 J3 J4
pj 5 4 2 6

sij J1 J2 J3 J4
J0 2 7 4 3
J1 – 1 5 2
J2 6 – 3 8
J3 9 2 – 1
J4 3 4 9 –

EXERCÍCIO 2: Elabore métodos de solução heurística para os problemas 1 | sij | F

e 1 | r j , sij | F . Crie conjuntos de dados para cada problema e resolva-os com os métodos
criados.

EXERCÍCIOS: :
1) Considere o problema de programação em máquina única e os conjuntos de tarefas
com seus respectivos dados apresentados nas tabelas:

a) J1 J2 J3 J4
pj 6 3 4 8
dj 10 12 9 20

b) J1 J2 J3 J4 J5
pj 3 9 5 1 7
dj 11 10 24 5 12
wj 2 7 4 1 5
58 ⬧ Introdução ao Sequenciamento da Produção - Hélio Fuchigami

c) J1 J2 J3 J4 J5 J6 J7 J8
pj 5 2 4 8 2 4 7 3
dj 14 10 32 25 12 15 22 7

d) J1 J2 J3 J4 J5 J6 J7 J8
pj 8 5 2 4 3 7 3 6
dj 21 32 18 26 14 30 25 12

e) J1 J2 J3 J4 J5 J6 J7 J8
pj 5 6 9 5 11 7 3 2
dj 21 40 12 32 22 8 17 15
wj 4 8 5 3 2 1 9 3

f) J1 J2 J3 J4 J5 J6 J7 J8 J9 J10
pj 3 6 5 3 7 2 2 4 5 4
dj 15 25 14 7 22 10 12 32 26 18
wj 6 5 9 2 10 1 8 3 2 7

1.1) Sequencie as tarefas pelas regras SPT, LPT, WSPT (quando houver
prioridades), EDD, FIFO, MST e CR e compare o tempo total de fluxo, atraso
máximo, número de tarefas atrasadas e atraso total.
1.2) Resolva os problemas 1 || F , 1 | d j | Tmax e 1 | d j | nT .

2) Considerando os conjuntos de dados das tarefas, resolva o problema 1 | sij | Cmax pelo
Algoritmo do Vizinho Mais Próximo, Algoritmo do Vizinho Mais Distante e Método de
Vogel.

a) J1 J2 J3 J4 b) J1 J2 J3 J4
pj 4 3 5 2 pj 6 1 2 3

sij J1 J2 J3 J4 sij J1 J2 J3 J4
J0 1 4 5 2 J0 2 3 1 5
J1 – 1 2 4 J1 – 6 4 1
J2 6 – 3 1 J2 1 – 2 9
J3 2 4 – 5 J3 7 2 – 3
J4 3 5 6 – J4 4 5 8 –

3) Imagine que você foi indicado como gerente de operações para a Advantan Company,
que fabrica artigos usados em vários outros produtos. Atuando em um ambiente muito
competitivo, a Advantan não pode permitir que os prazos não sejam cumpridos. O gerente
Introdução ao Sequenciamento da Produção - Hélio Fuchigami ⬧ 59

de operações precisa sequenciar seis tarefas do centro de trabalho, cujos tempos de


processamento são dados na tabela a seguir.

Tarefas 1 2 3 4 5 6
Tempo de processamento (dias) 8 14 10 16 11 18
Prazo de entrega (dias) 13 22 10 23 21 24

Considere que a ordem de chegada destas tarefas é tal como apresentado na tabela.
Como gerente de operações, você deve determinar a sequência, o tempo médio de fluxo,
o atraso médio e o número de tarefas atrasadas no centro de trabalho. Compare o
resultado das seguintes regras de sequenciamento: FIFO, SPT, EDD e CR.
(adaptado de Kruger, De Wit e Ramdass, 2005)

4) A Precision Machining realiza usinagem personalizada para seus clientes. A empresa


usa atualmente a regra de sequenciamento “primeiro a entrar, primeiro a ser atendido”.
Uma vez que a empresa quer finalizar as tarefas dos clientes mais rapidamente, ela está
considerando duas outras regras: menor tempo de processamento e razão crítica. A
empresa acha que estes critérios são importantes na escolha de uma regra de
sequenciamento: tempo médio de fluxo, atraso médio das tarefas e número de tarefas
atrasadas. Estude a situação da Precision e recomende uma regra de sequenciamento.

Tarefas A B C D E F
Tempo de produção (horas) 2 5 3 4 6 4
Tempo de entrega prometido (horas) 4 18 8 4 20 24

(adaptado de Gaither e Frazier, 2002)

5) A maioria das pessoas que trabalham em atividades administrativas como professores,


consultores, administradores, engenheiros etc. tem sempre uma fila de atividades para
serem realizadas. Cada uma dessas atividades demanda um tempo. As atividades podem
ser por exemplo: ler uma reportagem (0,4 hora), ler um relatório (2 horas), ligar para a avó
(0,2 hora), escrever um e-mail (0,1 hora), escrever um artigo (200 horas), escrever um
livro (2000 horas), atender subordinados (1 hora), delegar atividades (1,5 hora), fazer a
proposta de um evento de marketing (16 horas) etc. Para que as atividades sejam
realizadas o quanto antes, em qual ordem elas deve ser feitas?
(adaptado de Colin, 2007)

6) Uma empresa produtora de rodas automotivas especiais de alumínio possui um único


centro de usinagem, que executa todas as operações das rodas fabricadas por ela. A
empresa precisa programar o centro de usinagem de modo que algum critério seja
otimizado.
60 ⬧ Introdução ao Sequenciamento da Produção - Hélio Fuchigami

Para o dia em que se deseja fazer a programação, a carteira de pedidos dos clientes é
apresentada na tabela a seguir:

Horário de entrega Penalidade


Produto Quantidade Cliente
solicitado pelo cliente de atraso
Roda A 200 8 9 Ferrari
Roda B 360 6 8 Chrysler
Roda C 100 9 1 Rolls-Royce
Roda D 800 4 3 Land-Rover
Roda E 100 21 6 Lamborghini

A produção horária dos produtos no centro de usinagem e os tempos de preparação das


máquinas para cada produto são conhecidos e apresentados na tabela a seguir:

Produção horária Tempo de


Produto
(peças/hora) preparação (horas)
Roda A 34 0,1
Roda B 120 2,0
Roda C 50 1,0
Roda D 129 1,8
Roda E 59 0,3

Com estes dados, consegue-se definir a quantidade de horas necessárias para o dia de
produção. No tempo de produção das rodas, deve-se incluir o tempo de preparação da
máquina para cada produto. Os tempos de preparação são fixos e sem relações de
precedência, isto é, o tempo é o mesmo para qualquer combinação de entrada e saída de
produtos. Isso acontece porque ferramentas e fixadores são individuais para cada
produto, não podendo ser aproveitados de uma troca para outra.

número de produtos
tempo de produção de uma ordem = tempo de preparação +
produção horária

Assim, com as informações descritas anteriormente, pode-se resumir na tabela a seguir


os dados necessários para a programação:

Tempo de Data de Penalidade


Produto
processamento entrega de atraso
Roda A
Roda B
Roda C
Roda D
Roda E

Considere que não haja tempo de espera entre a realização de duas ordens de produção
e que todas as ordens estejam disponíveis para o processamento antes de se iniciar a
primeira delas. Analise o desempenho das regras SPT, LPT, WSPT, EDD, MST e CR no
Introdução ao Sequenciamento da Produção - Hélio Fuchigami ⬧ 61

caso de se querer minimizar o tempo total de fluxo, o atraso máximo, o número de tarefas
atrasadas e o atraso total.

(adaptado de Colin, 2007)


62 ⬧ Introdução ao Sequenciamento da Produção - Hélio Fuchigami

5 MÁQUINAS PARALELAS

▪ Programação = alocação + sequenciamento


▪ Número de programações possíveis para n tarefas e m máquinas: (n!)m

Tipos de máquinas:
▪ Idênticas: os tempos de processamento das tarefas em quaisquer máquinas são
iguais, ou seja, as tarefas têm o mesmo pj independente da máquina (pjk=pj, k)
▪ Uniformes ou proporcionais: os tempos de processamento pjk se diferem por um
fator multiplicativo (pjk=γkpj, onde γk é o fator multiplicativo da máquina Mk)
▪ Não relacionadas: em cada máquina, as tarefas têm diferentes tempos de
processamento sem correlação (pjk)

M1

... M2 ...
..
.
Mm

Figura 5.1 – Ilustração do problema de máquinas paralelas

5.1 Minimização do makespan ( Pm || Cmax )

ALGORITMO (solução heurística):

PASSO 1 – Ordene as tarefas pela regra LPT.


PASSO 2 – Designe uma tarefa de cada vez à máquina de menor carga.

EXEMPLO 1: m=2

J1 J2 J3 J4 J5 J6 J7
pj 3 2 2 1 4 6 5

LPT: ________________________________
63 ⬧ Introdução ao Sequenciamento da Produção - Hélio Fuchigami

M1
Cmax =
M2

0 5 10 15

 Veja no Suplemento deste capítulo uma forma de medir a eficácia da heurística.

5.2 Minimização do tempo médio de fluxo ( Pm || F )

ALGORITMO (solução ótima):

PASSO 1 – Ordene as tarefas pela regra SPT.


PASSO 2 – Designe uma tarefa de cada vez à máquina de menor carga.

DO EXEMPLO 1: m=2

J1 J2 J3 J4 J5 J6 J7
pj 3 2 2 1 4 6 5

SPT: ________________________________

M1

F* =
M2

0 5 10 15

5.3 Minimização do tempo médio de fluxo com mínimo makespan


( Pm || F / min Cmax )

ALGORITMO (solução heurística):

PASSO 1 – Resolva o Problema Pm | | Cmax .

PASSO 2 – Reordene as tarefas de cada máquina segundo a regra SPT.


64 ⬧ Introdução ao Sequenciamento da Produção - Hélio Fuchigami

AINDA DO EXEMPLO 1:

M1: ____________________
Pm | | Cmax
M2: ____________________

M1: ____________________
SPT
M2: ____________________

M1 Cmax =
M2 F=
0 5 10 15

5.4 Custo de alocação

▪ Particularidade: cada máquina só pode processar uma tarefa (m  n)


▪ Transformação do Problema da Designação em Máquinas Paralelas

MÉTODO HÚNGARO (adaptação de Fuchigami para máquinas paralelas - solução ótima):

PASSO 1 – Reduza a matriz de custos, subtraindo das linhas o menor valor de cada
linha e depois subtraindo das colunas o menor valor de cada coluna.
PASSO 2 – Cubra com traços as linhas e colunas com zeros, utilizando o menor
número de traços possível. Se o menor número de traços for igual a n,
PARE, pois a matriz contém pelo menos uma solução ótima. Senão,
prossiga ao Passo 3.
PASSO 3 – Identifique o menor elemento descoberto da matriz. Subtraia este valor de
todos os elementos descobertos e some-o a todas as células que têm
intersecção entre um traço horizontal e um vertical. Retorne ao Passo 2.

▪ Método Húngaro original para Problemas de Designação: Taha (2008)


Introdução ao Sequenciamento da Produção - Hélio Fuchigami ⬧ 65

EXEMPLO 2:

Menor valor
custo J1 J2 J3 J4 das linhas custo J1 J2 J3 J4
M1 1 3 4 5 M1
M2 4 2 4 7 M2
M3 6 7 8 3 M3
M4 5 4 2 1 M4
Menor valor
das colunas

Matriz reduzida: Solução viável (ótima):

custo J1 J2 J3 J4 aloc. J1 J2 J3 J4
M1 M1
M2 M2
M3 M3
M4 M4

Z* =

EXEMPLO 3:

Menor valor
custo J1 J2 J3 J4 das linhas custo J1 J2 J3 J4
M1 94 1 54 68 M1
M2 74 10 88 82 M2
M3 62 88 8 76 M3
M4 11 74 81 21 M4
Menor valor
das colunas

Matrizes reduzidas:

custo J1 J2 J3 J4 custo J1 J2 J3 J4 custo J1 J2 J3 J4


M1 M1 M1
M2 M2 M2
M3 M3 M3
M4 M4 M4

Número de traços? Número de traços? Número de traços?


66 ⬧ Introdução ao Sequenciamento da Produção - Hélio Fuchigami

Solução ótima:

aloc. J1 J2 J3 J4
M1
M2 Z* =
M3
M4

5.5 Eficácia da heurística

Pode-se medir a eficácia (qualidade da solução) heurística, comparando com:


(1) Método de solução exata (geralmente para problemas de pequeno porte)
(2) Enumeração completa das soluções (método ineficiente)
(3) Soluções disponíveis na literatura (em benchmarks de problemas conhecidos)
(4) Implementação de métodos de solução da literatura
(5) Limitante inferior LB (lower bound) em problemas de minimização

Solução ótima Z*: (1), (2) e algumas vezes o (3)


Melhor solução conhecida Z*: (3) e (4)
Valor de referência LB: (5)

 Z heur − Z *   Z heur − LB 
Desvio Relativo Percentual: RPD =  *

.100 ou RPD =  .100
 Z   LB 

LIMITANTE INFERIOR (LB)


▪ Valor calculado de forma independente da programação, garantindo-se que seja
menor ou igual ao makespan ótimo ( LB  Cmax )
*

▪ Utilização de uma expressão matemática definida com base nas propriedades


estruturais do problema
▪ Quanto maior o valor do LB, melhor (em problemas de minimização)

LB ruim LB C*max

Cmax (soluções)

Figura 5.2 – Ilustração do limitante inferior para o makespan


Introdução ao Sequenciamento da Produção - Hélio Fuchigami ⬧ 67

1 m 
▪ Para Cmax: LB = max   p j , max p j , p[ m ] + p[ m +1] 
 m j =1 j

1 m
1º termo:  pj
m j =1
2º termo: max p j
j

relaxação do problema: subdivisão de tarefa limitante “job-based”: maior tarefa

maior pj

LB LB

Figura 5.3 – Ilustração do 1º termo do LB Figura 5.4 – Ilustração do 2º termo do LB

3º termo: p[ m ] + p[ m +1]

Soma dos tempos de processamento das tarefas


nas posições m e (m+1) da ordenação LPT

p[1] = maior pj
p
p[2] = p[m] p[3] = p[m+1]

LB
Referências: Baker e Trietsch (2009) e
Figura 5.5 – Ilustração do 3º termo do LB Chen (2004)

DO EXEMPLO 1:
heur
Cmax = 12

1 n 23
1º termo: 
m j =1
pj =
2
= 11,5

2º termo: max p j = 6 LB = max{11,5; 6; 9} = 11,5


j

3º termo: p[ m ] + p[ m +1] = p[ 2 ] + p[ 3] = 9

Daqui sabe-se que C max  11,5 . Como não há subdivisão de tarefas, então Cmax  12 .
* *

Portanto, a solução heurística é ótima: Cmax = Cmax = 12 .


heur *
68 ⬧ Introdução ao Sequenciamento da Produção - Hélio Fuchigami

EXERCÍCIO: Elabore uma expressão para o limitante inferior da solução do problema


1 | sij | C max . Verifique a qualidade da solução das três heurísticas para o exemplo da
Seção 4.7.

EXERCÍCIOS: :

1) Considere o problema programação em duas máquinas paralelas idênticas e os dados


das tarefas na tabela a seguir. Construa gráficos de Gantt e analise o desempenho das
regras SPT, LPT, WSPT, EDD, FIFO, MST e CR para o makespan, tempo total de fluxo,
atraso máximo, número de tarefas atrasadas e atraso total.

J1 J2 J3 J4 J5
rj 5 2 1 4 3
pj 3 5 2 6 1
dj 13 7 4 10 8
wj 2 1 3 2 4

2) Considere os conjuntos de tarefas e seus respectivos dados do Exercício 1 do Capítulo 4:

a) Sequencie as tarefas pelas regras SPT, LPT, WSPT (quando houver prioridades),
EDD, FIFO (ou FCFS), MST e CR. Aloque-as uma de cada vez à máquina de
menor carga em um problema com três máquinas paralelas. Compare o
makespan, tempo total de fluxo, atraso máximo, número de tarefas atrasadas e
atraso total.
b) Resolva os problemas P2 || F , P3 || F , P2 || Cmax , P3 || Cmax e
P 2 || F / min Cmax .

3) Considerando os custos de alocação, faça as designações das tarefas às máquinas


pelo Método Húngaro.

a) J1 J2 J3 J4 b) J1 J2 J3 J4
M1 76 37 3 35 M1 30 4 33 12
M2 23 29 1 24 M2 19 18 17 40
M3 40 62 78 36 M3 7 29 17 12
M4 55 52 31 38 M4 21 28 29 5
69 ⬧ Introdução ao Sequenciamento da Produção - Hélio Fuchigami

c) J1 J2 J3 J4 J5
M1 7 31 34 58 37
M2 18 49 33 43 44
M3 49 3 28 60 6
M4 53 54 41 32 32
M5 37 18 54 48 39

d) J1 J2 J3 J4
M1 14 6 3 14
M2 5 55 31 5
M3 84 54 71 84
M4 1 14 54 7
M5 40 22 44 40
M6 16 83 16 16
70 ⬧ Introdução ao Sequenciamento da Produção - Hélio Fuchigami

6 FLOW SHOP

▪ “FÁBRICA EM FLUXO” (unidirecional) ou “MÁQUINAS EM SÉRIE”


▪ Produção de alto volume e baixa variedade
▪ Processos contínuos ou em linha
▪ Máquinas distintas em série
▪ Tarefas processadas em todas as máquinas (mesma rota)
▪ Flow shop permutacional: programação = sequenciamento

M1 M2 Mm
... ... ...

Figura 6.1 – Ilustração do flow shop

6.1 Formas do cálculo do makespan

EXEMPLO 1:

J1 J2 J3 J4 J5
pj1 6 4 3 9 5
pj2 8 1 9 5 6
pj3 2 1 5 8 6

Sequência: J1 – J2 – J3 – J4 – J5

FORMA 1: GRÁFICO DE GANTT

M1

M2

M3

0 5 10 15 20 25
Introdução ao Sequenciamento da Produção - Hélio Fuchigami ⬧ 71

FORMA 2: EXPRESSÃO MATEMÁTICA RECURSIVA

Sejam p[j]k: tempo de processamento da tarefa que ocupa a j-ésima posição na máquina Mk
C[j]k: data de término da tarefa que ocupa a j-ésima posição na máquina Mk

C[1]1 = p[1]1,
C[j]1 = C[j-1]1 + p[j]1, j = 2, …, n,
C[1]k = C[1](k-1) + p[1]k, k = 2, …, m,

C[j]k = max { C[j-1]k, C[j](k-1) } + p[j]k , j = 2, ..., n, k = 2, ..., m.

Cmax = C[n]m

DO EXEMPLO 1:
C[1]1 = p[1]1: C11 = _______
C[j]1 = C[j-1]1 + p[j]1: C21 = ___________________________ (j = 2)

C31 = ___________________________ (j = 3)

C41 = ___________________________ (j = 4)

C51 = ___________________________ (j = 5)

C[1]k = C[1](k-1) + p[1]k: C12 = ___________________________ (k = 2)

C13 = ___________________________ (k = 3)

C[j]k = max { C[j-1]k, C[j](k-1) } + p[j]k:


C22 = ___________________________________ (j = 2, k = 2)

C23 = ___________________________________ (j = 2, k = 3)

C32 = ___________________________________ (j = 3, k = 2)

C33 = ___________________________________ (j = 3, k = 3)

C42 = ___________________________________ (j = 4, k = 2)

C43 = ___________________________________ (j = 4, k = 3)

C52 = ___________________________________ (j = 5, k = 2)

C53 = ___________________________________ (j = 5, k = 3)

Cmax = C[n]m = C53 = _______


72 ⬧ Introdução ao Sequenciamento da Produção - Hélio Fuchigami

FORMA 3: TABELA

J[1] J[2] ... J[n]

C[j]1 C[1]1=p[1]1 C[2]1=C[1]1+p[2]1 ... C[n]1=C[n-1]1+p[n]1


max{C[1]2,C[2]1} max{C[n-1]2,C[n]1}
C[j]2 C[1]2=C[1]1+p[1]2
+p[2]2
... +p[n]2
... ... ... ... ...
C[1]m=C[1]m-1 max{C[1]m,C[2]m-1} max{C[n-1]m,C[n]m-1}
C[j]m +p[1]m +p[2]m
... +p[n]m

Generalizando:

Cjk

Ci(k+1) max{Ci(k+1), Cjk} + pj(k+1)

DO EXEMPLO 1:

J1 J2 J3 J4 J5
pj1 6 4 3 9 5
pj2 8 1 9 5 6
pj3 2 1 5 8 6

J1 J2 J3 J4 J5

Cj1

Cj2

Cj3
Introdução ao Sequenciamento da Produção - Hélio Fuchigami ⬧ 73

6.2 Relação entre as heurísticas clássicas

prova

JOHNSON
(1954)

LB

PAGE
(1961)
ótima

PALMER
(1965)

CDS
(1970)

GUPTA
(1971)

DANNENBRING
(1977)

NEH
(1983)

HUN RAJ
(1988)

HO CHANG
(1991)

(!)

KOULAMAS
(1998)
(!)

SULIMAN
(2000)

(!)
Legenda:
A B: método B foi baseado em A
POUR
A B: método B foi comparado com A
(2001)

Figura 6.2 – Ilustração da relação entre as heurísticas clássicas em ordem cronológica (fonte: autor)
74 ⬧ Introdução ao Sequenciamento da Produção - Hélio Fuchigami

EXERCÍCIOS: Considerando a extensa avaliação de Ruiz e Maroto (2005) dos métodos


de solução heurística (construtivas, melhorativas e meta-heurísticas) para o problema de
minimização do makepan em flow shop permutacional:
1) Elabore um ranking, pelo percentual de aumento em relação à solução ótima, das 14
heurísticas implementadas (construtivas e melhorativas).
2) Qual é a melhor heurística e qual o seu percentual de aumento em relação à solução
ótima?
3) Além das heurísticas, foram também implementadas quatro regras de prioridades
para solução do problema. Qual o desempenho delas? Com esse desempenho, o
que se pode concluir em comparação às heurísticas?
4) Como foi estudado no capítulo anterior, a regra LPT fornece uma boa solução para
minimização do makespan em máquinas paralelas. Como foi o desempenho desta
regra para minimização do makespan em flow shop permutacional?

6.3 Algoritmo de Johnson

▪ solução ótima do problema F 2 || Cmax (apenas 2 máquinas)

ALGORITMO DE JOHNSON (1954):

PASSO 1 – Determine min{pjk}.


PASSO 2 – Se min{pjk}M1, coloque a tarefa na primeira posição disponível da
sequência, senão coloque-a na última posição disponível.
PASSO 3 – Desconsiderando a tarefa alocada, repita os Passos 1 e 2 até que todas as
tarefas sejam programadas.

EXEMPLO 2:

J1 J2 J3 J4 J5
pj1 3 5 1 6 7
pj2 6 2 2 6 5
Introdução ao Sequenciamento da Produção - Hélio Fuchigami ⬧ 75

ITERAÇÃO 1:
J1 J2 J3 J4 J5 min{pjk}: p31M1  primeira posição
pj1 3 5 1 6 7
pj2 6 2 2 6 5 J3

ITERAÇÃO 2:
J1 J2 J3 J4 J5 min{pjk}: p22M2  última posição
pj1 3 5 1 6 7
pj2 6 2 2 6 5 J3 J2

ITERAÇÃO 3:
J1 J2 J3 J4 J5 min{pjk}: p11M1  primeira posição
pj1 3 5 1 6 7
pj2 6 2 2 6 5 J3 J1 J2

ITERAÇÃO 4:
J1 J2 J3 J4 J5 min{pjk}: p52M2  última posição
pj1 3 5 1 6 7
pj2 6 2 2 6 5 J3 J1 J5 J2

ITERAÇÃO 5:
J1 J2 J3 J4 J5 última tarefa na posição remanescente
pj1 3 5 1 6 7
J3 J1 J4 J5 J2
pj2 6 2 2 6 5

M1

M2

0 5 10 15 20 25

*
C max = 24

EXEMPLO 3:

J1 J2 J3 J4 J5
pj1 8 5 4 7 4
pj2 5 6 6 8 2
76 ⬧ Introdução ao Sequenciamento da Produção - Hélio Fuchigami

6.4 Heurística de Palmer

▪ “Heurística Slope Index”

▪ solução heurística do problema Fm | | Cmax


▪ usa ideia de Johnson de sequenciar primeiro tarefas com pequeno tempo de
processamento nas primeiras máquinas e grandes nas últimas

ALGORITMO DE PALMER (1965):

m
PASSO 1 – Sequencie as tarefas pela ordem decrescente de A j = − (m − 2k + 1) p jk ,
k =1

ou seja, A j = −(m − 1) p j1 − (m − 3) p j 2 − ... + (m − 5) p j ( m−2 ) + (m − 3) p j ( m−1) + (m − 1) p jm

DO EXEMPLO 1:

J1 J2 J3 J4 J5 – (m–2k+1)

pj1 6 4 3 9 5
pj2 8 1 9 5 6
pj3 2 1 5 8 6
Aj

Sequência J3 J5 J4 J2 J1
Cj1 3 8 17 21 27
Cj2 12 18 23 24 35
Cj3 17 24 32 33 37

C max = 37

EXEMPLO 4:

J1 J2 J3 J4 J5
pj1 4 8 6 5 8
pj2 7 5 3 2 3
pj3 9 2 2 4 6
Introdução ao Sequenciamento da Produção - Hélio Fuchigami ⬧ 77

6.5 Heurística CDS

▪ solução heurística do problema Fm | | Cmax


▪ utiliza o Algoritmo de Johnson de forma heurística
▪ obtém m–1 programações viáveis, escolhendo a melhor

ETAPA 1 – Aplique o Algoritmo de Johnson considerando somente a primeira e a


última máquinas (as demais são ignoradas).
ETAPA 2 – Aplique o Algoritmo de Johnson considerando a soma dos tempos de
processamento da primeira e da segunda máquina e da última e a
penúltima máquina.
...

ETAPA (m–1) – Aplique o Algoritmo de Johnson considerando a soma dos tempos de


processamentos das (m–1) primeiras máquinas e das (m–1) últimas
máquinas.

Após as m–1 etapas, considere a programação com o melhor makespan.

ALGORITMO CDS (Campbell, Dudek e Smith, 1970):

PASSO 1 – Para cada etapa h, de 1 a m–1, faça:


1.1) Considere o problema original como um problema fictício de
duas máquinas com os tempos de processamento modificados:

pj1 = k =1 p jk e pj 2 = k =1 p j ( m−k +1)


h h

.
1.2) Resolva o problema fictício pelo Algoritmo de Johnson.
1.3) Com a sequência obtida, calcule o makespan do problema original.
PASSO 2 – Das m–1 etapas, considere como solução final a sequência que forneceu o
melhor makespan.

▪ Por exemplo, se o problema tiver 5 máquinas (m=5), o algoritmo CDS obterá 4


programações possíveis (m–1) e considerará a de melhor makespan. Assim, com 5
máquinas, o algoritmo CDS terá 4 etapas.

m máquinas ➔ m–1 etapas


78 ⬧ Introdução ao Sequenciamento da Produção - Hélio Fuchigami

DO EXEMPLO 1:
m = 3 máquinas ➔ h = 2 etapas

ETAPA 1: primeira X última máquina

J1 J2 J3 J4 J5
pj1 6 4 3 9 5
pj3 2 1 5 8 6

Algoritmo de Johnson: J3 – J5 – J4 – J1 – J2

Sequência J3 J5 J4 J1 J2
Cj1
Cj2
Cj3 ➔ C max = ______

.
ETAPA 2: primeira e segunda máquinas X penúltima e última máquinas

J1 J2 J3 J4 J5
pj1+pj2 14 5 12 14 11
pj2+pj3 10 2 14 13 12

Algoritmo de Johnson: J5 – J3 – J4 – J1 – J2

Sequência J5 J3 J4 J1 J2
Cj1
Cj2
Cj3 ➔ C max = ______

.
Melhor programação: J3 – J5 – J4 – J1 – J2 (Etapa 1) C max = 35

EXEMPLO 4:

J1 J2 J3 J4 J5
pj1 4 8 6 5 8
pj2 7 5 3 2 3
pj3 9 2 2 4 6
Introdução ao Sequenciamento da Produção - Hélio Fuchigami ⬧ 79

6.6 Heurística de Hundal e Rajgopal

▪ solução heurística do problema Fm | | Cmax


▪ extensão da heurística de Palmer, gerando outras duas sequências candidatas –
Modified Palmer Sequence (MPS)
▪ com m ímpar, heurística de Palmer ignora a máquina (m+1)/2 com Aj = 0

Exemplos: para m = 5  pesos de Palmer: –4, –2, 0, 2, 4


 pesos da MPS: –3, –1, 1, 3, 5 e –5, –3, –1, 1, 3
para m = 4  pesos de Palmer: –3, –1, 1, 3
 pesos da MPS: –2, 0, 2, 4 e –4, –2, 0, 2

▪ melhor do que heurística CDS com bem menos esforço computacional

ALGORITMO MPS (MODIFIED PALMER SEQUENCE) DE HUNDAL E RAJGOPAL (1988):

PASSO 1 – Crie três sequências pela ordem decrescente dos índices:


m
▪ Sequência 1: A j = − (m − 2k + 1) p jk (sequência de Palmer),
k =1
m
▪ Sequência 2: A'j = − (m − 2k ) p jk (MPS 1) e
k =1
m
▪ Sequência 3: A'j' = − (m − 2k + 2) p jk (MPS 2).
k =1

PASSO 2 – Calcule o makespan das três sequências e considere como solução final a
que forneceu o menor valor.

DO EXEMPLO 1:

Sequência 1:

J1 J2 J3 J4 J5 – (m–2k+1)

pj1 6 4 3 9 5 –2
pj2 8 1 9 5 6 0
pj3 2 1 5 8 6 2
Aj –8 –6 4 –2 2

Sequência (de Palmer): J3 – J5 – J4 – J2 – J1 Cmax = 37


80 ⬧ Introdução ao Sequenciamento da Produção - Hélio Fuchigami

Sequência 2:

J1 J2 J3 J4 J5 – (m–2k)

pj1 6 4 3 9 5
pj2 8 1 9 5 6
pj3 2 1 5 8 6
Aj

Sequência
Cj1
Cj2
Cj3 ➔ C max = ______

.
Sequência 3:

J1 J2 J3 J4 J5 – (m–2k+2)

pj1 6 4 3 9 5
pj2 8 1 9 5 6
pj3 2 1 5 8 6
Aj

Sequência
Cj1
Cj2
Cj3 ➔ C max = ______

Melhor programação: ____________________________________ C max =

EXEMPLO 4:

J1 J2 J3 J4 J5
pj1 4 8 6 5 8
pj2 7 5 3 2 3
pj3 9 2 2 4 6
Introdução ao Sequenciamento da Produção - Hélio Fuchigami ⬧ 81

6.7 Heurística de Gupta

▪ solução heurística do problema Fm | | Cmax

ALGORITMO DE GUPTA (1971):

ej
PASSO 1 – Sequencie as tarefas pela ordem crescente de A j =
min p jk + p j ( k +1) 
,
1k m−1

 − 1 se p j1  p jm
onde e j =  .
 1 se p j 1  p jm

DO EXEMPLO 1:

J1 J2 J3 J4 J5
pj1 6 4 3 9 5
pj2 8 1 9 5 6
pj3 2 1 5 8 6
Aj 0,100 0,500 –0,083 0,077 –0,091

Sequência J5 J3 J4 J1 J2
Cj1
Cj2
Cj3

C max = 36

EXEMPLO 4:

J1 J2 J3 J4 J5
pj1 4 8 6 5 8
pj2 7 5 3 2 3
pj3 9 2 2 4 6
82 ⬧ Introdução ao Sequenciamento da Produção - Hélio Fuchigami

6.8 Heurística de Dannenbring

▪ solução heurística do problema Fm | | Cmax


▪ combina vantagens de Palmer e CDS
▪ resolve apenas um problema fictício pelo Algoritmo de Johnson
▪ heurística melhorativa

ALGORITMO RA (RAPID ACCESS) DE DANNENBRING (1977):

PASSO 1 – Considere o problema original como um problema fictício de duas


máquinas com os tempos de processamento modificados:

p j1 = k =1 (m − k + 1) p jk e pj 2 = k =1 k p jk .
m m

PASSO 2 – Resolva o problema fictício pelo Algoritmo de Johnson.


PASSO 3 – Com a sequência obtida, calcule o makespan do problema original.

FASES DE MELHORIA:
RACS (RAPID ACCESS WITH CLOSE ORDER SEARCH)
Gera todas as (n–1) soluções vizinhas pela troca de pares adjacentes e escolhe
a solução com menor makespan.

RAES (RAPID ACCESS WITH EXTENSIVE SEARCH)


A partir da melhor solução vizinha encontrada pelo RACS, gera novamente todas
as (n–1) soluções vizinhas pela troca de pares adjacentes e escolhe a com
menor makespan. Repete o processo enquanto houver soluções melhores.

DO EXEMPLO 1:

J1 J2 J3 J4 J5
pj1 6 4 3 9 5
pj2 8 1 9 5 6
pj3 2 1 5 8 6
Introdução ao Sequenciamento da Produção - Hélio Fuchigami ⬧ 83

Problema fictício:
J1 J2 J3 J4 J5
p'j1 36 15 32 45 33
p'j2 28 9 36 43 35

Algoritmo de Johnson: J3 – J5 – J4 – J1 – J2 Cmax = 35

Sugestão: implementar esta sequência no software Lekin para verificar


o makespan das (n–1) soluções vizinhas.

RACS – (n–1) soluções vizinhas:


J5 – J3 – J4 – J1 – J2 Cmax = 36
J3 – J4 – J5 – J1 – J2 Cmax = 34 ✓
J3 – J5 – J1 – J4 – J2 Cmax = 40
J3 – J5 – J4 – J2 – J1 Cmax = 37

RAES – a partir da melhor solução encontrada, gera novamente as


(n–1) soluções vizinhas:
J4 – J3 – J5 – J1 – J2 Cmax = 40
J3 – J5 – J4 – J1 – J2 Cmax = 35 Não houve melhoria
J3 – J4 – J1 – J5 – J2 Cmax = 39
J3 – J4 – J5 – J2 – J1 Cmax = 37

Melhor programação: J3 – J4 – J5 – J1 – J2

C max = 34

EXEMPLO 4:

J1 J2 J3 J4 J5
pj1 4 8 6 5 8
pj2 7 5 3 2 3
pj3 9 2 2 4 6
84 ⬧ Introdução ao Sequenciamento da Produção - Hélio Fuchigami

6.9 Heurística NEH

▪ solução heurística do problema Fm | | Cmax

ALGORITMO NEH (Nawaz; Enscore Jr. e Ham, 1983):

PASSO 1 – Ordene as tarefas pela regra LPT considerando a soma dos tempos de
processamento em todas as máquinas.
PASSO 2 – Com as duas primeiras tarefas da ordenação obtida, encontre a
subsequência (entre as duas possíveis) com o melhor makespan.
PASSO 3 – Para cada seguinte da ordenação inicial, insira-a em todas as posições
possíveis da subsequência e mantenha aquela com o melhor makespan.

Do EXEMPLO 1:

J1 J2 J3 J4 J5
pj1 6 4 3 9 5
pj2 8 1 9 5 6
pj3 2 1 5 8 6
∑pjk 16 6 17 22 17

LPT: J4 – J3 – J5 – J1 – J2

ITERAÇÃO 1:

J4 J3 J3 J4
Cj1 Cj1
Cj2 Cj2
Cj3 Cj3

ITERAÇÃO 2:

J3 J4 J5 J3 J5 J4 J5 J3 J4
Cj1 Cj1 Cj1
Cj2 Cj2 Cj2
Cj3 Cj3 Cj3
Introdução ao Sequenciamento da Produção - Hélio Fuchigami ⬧ 85

ITERAÇÃO 3:

J3 J4 J5 J1 J3 J4 J1 J5
Cj1 Cj1
Cj2 Cj2
Cj3 Cj3

J3 J1 J4 J5 J1 J3 J4 J5
Cj1 Cj1
Cj2 Cj2
Cj3 Cj3

ITERAÇÃO 4:

J3 J4 J5 J1 J2 J3 J4 J5 J2 J1
Cj1 Cj1
Cj2 Cj2
Cj3 Cj3

J3 J4 J2 J5 J1 J3 J2 J4 J5 J1
Cj1 Cj1
Cj2 Cj2
Cj3 Cj3

J2 J3 J4 J5 J1
Solução: J3 – J4 – J5 – J1 – J2
Cj1
Cj2 C max =
Cj3

EXEMPLO 4:
J1 J2 J3 J4 J5
pj1 4 8 6 5 8
pj2 7 5 3 2 3
pj3 9 2 2 4 6

EXEMPLO 1 EXEMPLO 4
COMPARATIVO
Sequência Makespan Sequência Makespan
Palmer
CDS
Hundal e Rajgopal
Gupta
Dannenbring
NEH
86 ⬧ Introdução ao Sequenciamento da Produção - Hélio Fuchigami

6.10 Relação entre as heurísticas modernas

NEH

N&M
(2002)

NEH NEH

CHAKRABORTY KK-I
NEH LAHA (2007) NEH (2007) DANN NEH

DONG HUANG NBM KK-II


CHEN (2008) (2008) (2008)

NEHT
RRB FLR
(2009)

NEH IGA
RCT
(2010)
Gupta Palmer

NEHT NEH Johnson CDS NEH

LIU SONG WU SEMANCO


(2012) NEH MODRÁK (2012)

YING LIN
(2013)
NEH

FF
(2014)

NEH
VD
(2015)
NEH

NEH
DI
RNT
(2016)
(2016)

Legenda:
A B: método B foi baseado em A
A B: método B foi comparado com A

Figura 6.3 – Ilustração da relação entre as heurísticas modernas em ordem cronológica (fonte: autor)
Introdução ao Sequenciamento da Produção - Hélio Fuchigami ⬧ 87

Referência (em ordem cronológica) Acrônimo


Nagano e Moccellin (2002) N&M
Chakraborty e Laha (2007) Chakraborty Laha
Kalczynski e Kamburowski (2007) KK-I
Dong, Huang e Chen (2008) Dong Huang Chen
Nagano, Branco e Moccellin (2008) NBM
Kalczynski e Kamburowski (2008) KK-II
Rad, Ruiz e Boroojerdian (2009) RRB
Ribas, Companys e Tort-Martorell (2010) RCT
Liu, Song e Wu (2012) Liu Song Wu
Semanco e Modrák (2012) Semanco Modrák
Ying e Lin (2013) Ying Lin
Fernandez-Viagas e Framinan (2014) FF
Vasiljevic e Danilovic (2015) VD
Danilovic e Ilic (2016) DI
Rossi, Nagano e Tavares Neto (2016) RNT

Estudos comparativos: Park, Pegden Enscore (1984), Tang (2002), Ruiz e Maroto
(2005), Malik e Dhingra (2013) e Rossi, Nagano e Tavares Neto (2016)

EXERCÍCIOS: :

1) Proponha uma alteração no Algoritmo de Johnson para o problema Fm || C max e


utilize-a na resolução do Exemplo 1 deste capítulo.

2) Proponha uma alteração na Heurística NEH para o problema Fm || F e resolva


considerando os dados a seguir:

J1 J2 J3 J4 J5
pj1 4 8 6 5 8
pj2 7 5 3 2 3
pj3 9 2 2 4 6

3) Considerando os dados das tabelas abaixo, resolva o problema F 2 | | Cmax utilizando


o Algoritmo de Johnson.

a) J1 J2 J3 J4 J5
pj1 5 4 8 2 7
pj2 3 7 6 4 5
88 ⬧ Introdução ao Sequenciamento da Produção - Hélio Fuchigami

b) J1 J2 J3 J4 J5 J6
pj1 6 2 5 8 7 2
pj2 4 1 6 7 9 5

4) Considerando os dados das tabelas abaixo, resolva o problema de minimização do


makepan (Cmax) em um flow shop, utilizando as heurísticas de Palmer, CDS, Gupta,
Dannenbring, NEH e Hundal e Hajgopal.

a) J1 J2 J3 J4 b) J1 J2 J3 J4 J5
pj1 13 7 26 2 pj1 2 3 1 4 3
pj2 3 12 9 6 pj2 1 2 1 2 7
pj3 12 16 7 1 pj3 2 4 2 3 5
pj4 6 10 14 4 2

c) J1 J2 J3 J4 J5 J6
pj1 13 7 9 2 10 15
pj2 8 12 10 6 5 5
pj3 14 6 7 1 12 8

5) Seis ordens de produção devem ser processadas na máquina A e em seguida na


máquina B. Os tempos de processamento incluindo os setups, as datas de entrega (em
horas a partir do início da programação) e as prioridades atribuídas a cada ordem são
apresentados na tabela a seguir. Sequencie estas ordens segundo as regras SPT, LPT,
WSPT, EDD, FIFO, MST e CR e pelo Algoritmo de Johnson, construa os respectivos
gráficos de Gantt e avalie cada alternativa pelo tempo total da programação (makespan),
tempo total de fluxo (lead time total) e atraso total. Para a aplicação da regra FIFO, admita
que as ordens de fabricação chegaram na sequência em que aparecem na tabela.

Ordem de Tempo de processamento Entrega


Prioridade
Fabricação Máquina A Máquina B (horas)
OF1 15 10 30 5
OF2 18 16 40 1
OF3 14 15 55 3
OF4 13 14 35 2
OF5 10 17 45 4
OF6 14 13 30 6

(adaptado de Tubino, 2006)


Introdução ao Sequenciamento da Produção - Hélio Fuchigami ⬧ 89

7 JOB SHOP
▪ “FÁBRICA POR ROTA” ou “OFICINA DE MÁQUINAS”
▪ Produção de volume baixo e alta variedade
▪ Processos por tarefa (job) ou lote
▪ Tarefas têm rotas distintas nas máquinas
▪ Todas as máquinas podem iniciar e terminar a rota
▪ Operação i da tarefa Jj: opij
▪ Programação = sequenciamento das operações nas máquinas (sequência + rota)

M2

... ...
M1

M3

Figura 7.1 – Ilustração do job shop

7.1 Algoritmo de Jackson

▪ solução ótima do problema J 2 | | Cmax (apenas 2 máquinas)

ALGORITMO DE JACKSON (1956):

PASSO 1 – Ordene as tarefas que visitam primeiro a máquina M1 e depois a M2, de


acordo com o Algoritmo de Johnson, formando a sequência S12.
PASSO 2 – Ordene as tarefas que visitam primeiro a máquina M2 e depois a M1, de
acordo com o Algoritmo de Johnson (respeitando a ordem das operações),
formando a sequência S21.
PASSO 3 – A programação ótima é obtida combinando as sequências da seguinte
forma: M1: S12 + S21 e M2: S21 + S12.
90 ⬧ Introdução ao Sequenciamento da Produção - Hélio Fuchigami

▪ QUANDO HÁ TAREFAS QUE VISITAM APENAS UMA MÁQUINA:


Programação ótima: M1: S12 + S1 + S21 e M2: S21 + S2 + S12
S1: conjunto de tarefas (em qualquer ordem) que visitam somente a máquina M1
S2: conjunto de tarefas (em qualquer ordem) que visitam somente a máquina M2

EXEMPLO 1:

J1 J2 J3 J4 J5 J6 J7
pj1 2 6 2 5 6 4 6
pj2 5 4 3 4 7 3 5

rotas J1 J2 J3 J4 J5 J6 J7
opj1 M1 M2 M2 M1 M2 M1 M1
opj2 M2 M1 M1 M2 M1 M2 M2

Sequência S12 (rota M1–M2):

J1 J4 J6 J7
pj1 2 5 4 6
pj2 5 4 3 5

Algoritmo de Johnson: J1 – J7 – J4 – J6

Sequência S21 (rota M2–M1):

J2 J3 J5
pj2 (M2) 4 3 7
pj1 (M1) 6 2 6

Algoritmo de Johnson: J2 – J5 – J3

Programação ótima:
M1 (S12 + S21): J1 – J7 – J4 – J6 – J2 – J5 – J3
M2 (S21 + S12): J2 – J5 – J3 – J1 – J7 – J4 – J6

M1

M2

0 5 10 15 20 25 30 35

*
C max =
Introdução ao Sequenciamento da Produção - Hélio Fuchigami ⬧ 91

EXEMPLO 2:

J1 J2 J3 J4 J5 J6
pj1 – 5 2 – 7 5
pj2 1 – 3 4 2 –

rotas J1 J2 J3 J4 J5 J6
opj1 M2 M1 M2 M2 M1 M1
opj2 – – M1 – M2 –

Sequência S12 (rota M1–M2): J5


Sequência S21 (rota M2–M1): J3
Sequência S1 (apenas M1): J2 – J6 (ou J6 – J2)
Sequência S2 (apenas M2): J1 – J4 (ou J4 – J1)

Programação ótima:
M1 (S12 + S1 + S21): J5 – J2 – J6 – J3
M2 (S21 + S2 + S12): J3 – J1 – J4 – J5

M1

M2

0 5 10 15 20 25 30 35

Outra programação ótima:


M1 (S12 + S1 + S21): J5 – J6 – J2 – J3
M2 (S21 + S2 + S12): J3 – J4 – J1 – J5

M1

M2

0 5 10 15 20 25 30 35

*
C max =
92 ⬧ Introdução ao Sequenciamento da Produção - Hélio Fuchigami

7.2 Algoritmo heurístico

▪ solução heurística do problema Jm || Cmax (qualquer número de máquinas)

ALGORITMO HEURÍSTICO (adaptado de Baker e Trietsch, 2009, p.334):

PASSO 1 – Respeitando as restrições de precedência e a carga das máquinas, calcule


os valores de ajk, ou seja, os instantes mais cedo de início das operações
das tarefas Jj nas máquinas Mk que não têm precedência ou que suas
precedentes já foram programadas.
PASSO 2 – Programe a operação da tarefa Jj com min{ajk} na máquina Mk.
PASSO 3 – Atualize os valores de ajk e volte ao Passo 2 até que as operações de todas
as tarefas sejam programadas.

EXEMPLO 1:

J1 J2 J3 J4 rotas J1 J2 J3 J4
pj1 4 1 3 3 op1j M1 M2 M3 M2
pj2 3 4 2 3 op2j M2 M1 M2 M3
pj3 2 4 3 1 op3j M3 M3 M1 M1

 A cada iteração, ir construindo o gráfico de Gantt

M1

M2

M3

0 5 10 15 20 25

a11 = 0 a22 = 0 a33 = 0 a42 = 0 a12 = 4 a21 = 4 a33 = 0 a42 = 4


programar programar

M1 : J1 M1 : J1
M2 : M2 : J2
M3 : M3 : J3

a12 = 4 a22 = 0 a33 = 0 a42 = 0 a12 = 4 a21 = 4 a32 = 4 a42 = 4


programar
programar
M1 : J1 M1 : J1
M2 : J2 M2 : J2 – J1
M3 : M3 : J3
Introdução ao Sequenciamento da Produção - Hélio Fuchigami ⬧ 93

a13 = 7 a21 = 4 a32 = 7 a42 = 7 a42 = 9


programar programar
M1 : J1 – J2 M1 : J1 – J2 – J3
M2 : J2 – J1 M2 : J2 – J1 – J3 – J4
M3 : J3 M3 : J3 – J2 – J1

a13 = 7 a23 = 5 a32 = 7 a42 = 7 a43 = 12


programar programar
M1 : J1 – J2 M1 : J1 – J2 – J3
M2 : J2 – J1 M2 : J2 – J1 – J3 – J4
M3 : J3 – J2 M3 : J3 – J2 – J1 – J4

a13 = 9 a32 = 7 a42 = 7 a41 = 13


programar programar

M1 : J1 – J2
M2 : J2 – J1 – J3
M3 : J3 – J2
Programação:
a13 = 9 a31 = 9 a42 = 9 M1 : J1 – J2 – J3 – J4
programar
M1 : J1 – J2
M2 : J2 – J1 – J3 – J4
M2 : J2 – J1 – J3 M3 : J3 – J2 – J1 – J4
M3 : J3 – J2 – J1

a31 = 9 a42 = 9
programar Cmax = 16
M1 : J1 – J2 – J3
M2 : J2 – J1 – J3
M3 : J3 – J2 – J1

EXERCÍCIOS: :

1) Considerando os dados das tabelas abaixo, resolva o problema de minimização do


makepan (Cmax) em um job shop.

a) J1 J2 J3 J4 J5 rotas J1 J2 J3 J4 J5
pj1 4 3 5 6 3 op1j M1 M2 M1 M1 M2
pj2 2 5 1 2 7 op2j M2 M1 M2 M2 M1

b) J1 J2 J3 J4 J5 rotas J1 J2 J3 J4 J5
pj1 2 4 7 3 – op1j M1 M2 M1 M2 M2
pj2 – 1 – 5 2 op2j – M1 – M1 –
94 ⬧ Introdução ao Sequenciamento da Produção - Hélio Fuchigami

c) J1 J2 J3 J4 rotas J1 J2 J3 J4
pj1 5 4 6 5 op1j M2 M1 M3 M3
pj2 1 3 2 4 op2j M1 M2 M2 M1
pj3 2 2 1 3 op3j M3 M3 M1 M2

d) J1 J2 J3 J4 rotas J1 J2 J3 J4
pj1 6 – 7 3 op1j M3 M3 M1 M1
pj2 2 4 – 2 op2j M1 M2 M3 M2
pj3 3 5 6 2 op3j M2 – – M3

2) Onze pacientes passarão por uma cirurgia executada por dois médicos, Dr. A e Dr. B.
Os pacientes 1, 2, 3 e 4 querem ser operados pelo Dr. A antes do Dr. B; já os pacientes 5,
6 e 7 exigem passar primeiro pelo Dr. B e depois pelo Dr. A. Os pacientes 8 e 9 querem a
cirurgia apenas com o Dr. A e os pacientes 10 e 11 pediram que sejam operados somente
pelo Dr. B. Os tempos de cada cirurgia (em unidades de tempo padronizadas) são dados
na tabela abaixo. Encontre uma programação para esses pacientes com a menor duração
total.

Pacientes 1 2 3 4 5 6 7 8 9 10 11
Dr. A 3 2 1 1 2 4 3 1 2 – –
Dr. B 2 1 2 1 4 8 9 – – 2 1
95 ⬧ Introdução ao Sequenciamento da Produção - Hélio Fuchigami

PARTE III – MÉTODOS


DE SOLUÇÃO EXATA

8 MÉTODO BRANCH-AND-BOUND
▪ solução exata (ótima)
▪ método de enumeração implícita
▪ pode ser usado heuristicamente, limitando o tempo computacional

“Branching” (ramificar): dividir em subproblemas (menores e mais simples)


“Bounding” (limitar): calcular valor limitante inferior para a medida de desempenho

Nível 0
P[0] problema original
com n tarefas

P1[1] P2[1] ... Pn[1] Nível 1


n subproblemas

Pn[+21] Pn[+22] ... Pn[+23]


Nível 2
n(n-1) subproblemas
...

Nível n
n! subproblemas

Figura 8.1 – Ilustração de uma árvore do método Branch-and-bound

Subproblema P[l] do nível l:


▪ l primeiras tarefas programadas e (n-l) em quaisquer posições
▪ solução viável do problema original

Subproblemas ativos: problemas encontrados em cada ramificação, que não foram


ramificados (não têm filhos) nem eliminados (por propriedade de dominância)
96 ⬧ Introdução ao Sequenciamento da Produção - Hélio Fuchigami

8.1 Algoritmo de Ignall e Schrage

▪ solução ótima para Fm | prmu | Cmax

Seja : subsequência de tarefas já programadas


J =  ∪ ’
’: subsequência de tarefas não programadas
qk: carga da máquina Mk com a subsequência programada 

 ’

M1 q1

M2 q2

M3 q3

Figura 8.2 – Carga das máquinas

Limitante inferior para o makespan:


▪ LB para cada subproblema tal que Cmax  LB para todas as (n-l)! soluções a
partir dele
▪ Limitantes baseados no processamento requerido por cada máquina:

 b1 = q1 +  p j 1 + minp j 2 + p j 3  (8.1)
j '
j '

 b2 = q 2 +  p j 2 + minp j 3  (8.2)
j '
j '

 b3 = q3 +  p j 3 (8.3)
j '

LB = maxb1, b2 , b3  (8.4)

▪ Generalização para m máquinas:


1 k  m

LB = maxmax qk + min u =h p ju
 h k  J j  '

k −1
 +  J  '
j
p jk + min
J j  '

m
u = k +1
 
p ju  . (8.5)

Introdução ao Sequenciamento da Produção - Hélio Fuchigami ⬧ 97

Propriedade de dominância:
Suponha que as subsequências (1) e (2) contenham as mesmas tarefas (em
ordens diferentes). Se q 2(1)  q 2(2 ) e q 3(1)  q 3(2 ) , então (1) domina (2), e (2) não precisa ser

considerada na busca pela solução ótima.

▪ Aplicada apenas a nós do mesmo nível (mesmo número de tarefas) e não podem
ser filhos do mesmo pai (sequências em ordens diferentes)

ALGORITMO DE IGNALL E SCHRAGE (1965):

PASSO 1 – A partir do problema original, gere os n subproblemas do nível 1 e calcule


os LB.
PASSO 2 – Considere o subproblema ativo com o menor LB.
*
 Se o subproblema for do nível n, a sequência é ótima e LB = Cmax .

 Senão, gere os subproblemas do próximo nível e calcule os LB.


PASSO 3 – Aplique a propriedade de dominância entre os subproblemas ativos,
desconsiderando os dominados. Volte ao Passo 2.

EXEMPLO 1:

J1 J2 J3 J4
pj1 3 11 7 10
pj2 4 1 9 12
pj3 10 5 13 2

Cálculos para os limitantes inferiores:

Subsequência  (q1, q2, q3) (b1, b2, b3) LB


J1 (3, 7, 17) (37, 31, 37) 37
J2 (11, 12, 17) (45, 39, 42) 45
J3 (7, 16, 29) (37, 35, 46) 46
J4 (10, 22, 24) (37, 41, 52) 52
J1 – J2 (14, 15, 22) (45, 38, 37) 45
J1 – J3 (10, 19, 32) (37, 34, 39) 39
J1 – J4 (13, 25, 27) (37, 40, 45) 45
J1 – J3 – J2 (21, 22, 37) (45, 36, 39) 45
J1 – J3 – J4 (20, 32, 34) (37, 38, 39) 39
J1 – J3 – J4 – J2 (31, 33, 39) (31, 33, 39) 39
98 ⬧ Introdução ao Sequenciamento da Produção - Hélio Fuchigami

Árvore de busca das soluções:

P [0 ]

P1[1] P2[1] P3[1] P4[1]


J1 J2 J3 J4
LB=37 LB=45 LB=46 LB=52

P5[ 2 ] P6[ 2 ] P7[ 2 ]


J 1J 2 J 1J 3 J 1J 4
LB=45 LB=39 LB=45

P8[ 3 ] P9[ 3 ]
J 1J 3 J 2 J 1J 3 J 4
LB=45 LB=39

P10[ 4 ] *
Cmax = 39
J 1J 3 J 4 J 2

Figura 8.3 – Árvore de busca do algoritmo Branch-and-bound para o problema exemplo

EXERCÍCIOS: :

1) Adaptando o Algoritmo de Ignall e Schrage para problemas com m>3, mostre como os
limitantes inferiores (bi) poderiam ser calculados.

2) Considere os conjuntos de tarefas das tabelas a seguir e seus respectivos tempos de


processamento. Encontre o mínimo makespan usando o Algoritmo de Ignall e Schrage.
Quantos nós foram gerados?
Introdução ao Sequenciamento da Produção - Hélio Fuchigami ⬧ 99

a) J1 J2 J3 J4
pj1 13 7 26 2
pj2 3 12 9 6
pj3 12 16 7 1

b) J1 J2 J3 J4 J5 J6
pj1 6 12 4 3 6 2
pj2 7 2 6 11 8 14
pj3 3 3 8 7 10 12
100 ⬧ Introdução ao Sequenciamento da Produção - Hélio Fuchigami

9 PROGRAMAÇÃO LINEAR INTEIRA MISTA

▪ Seja:
 J0 uma tarefa fictícia que precede imediatamente a primeira tarefa e sucede
imediatamente a última tarefa da sequência
 B um número muito grande.

9.1 Problemas de máquina única

▪ Variáveis de decisão: Xij = 1, se a tarefa Ji precede imediatamente a tarefa Jj


0, caso contrário

9.1.1 Tempo médio de fluxo ( 1 | | F )

1 n
min C j
n j =1
(9.1)
n
s.a X
i =0 , i  j
ij = 1, j=0, 1, ..., n (9.2)
n

X
j =0 , j i
ij =1, i=0, 1, ..., n (9.3)

C j − Ci + B (1 − X ij )  p j , i=0, 1, ..., n, j=1, ..., n (9.4)

Cj  0, j=1, ..., n, C 0 = 0 (9.5)

X ij  {0,1} , i=0, 1, ..., n, j=0, 1, ..., n, X jj = 0 (9.6)

As restrições (9.2) e (9.3) garantem que cada tarefa tenha apenas uma
predecessora imediata e uma sucessora imediata, respectivamente. Se X ij = 1 , a

restrição (9.4) implica que C j  Ci + p j e se X ij = 0 , tem-se que C j − Ci  − B , ou seja, a

restrição (9.4) é desativada. As restrições (9.5) e (9.6) indicam o tipo das variáveis.

Para a minimização do tempo total de fluxo ( 1 || F j ), basta considerar, com


n
as mesmas restrições anteriores, a seguinte função objetivo: min C
j =1
j .

Relembrando: a solução ótima destes dois problemas é obtida pela regra SPT.
Esta formulação serve portanto como base para modelos de outros problemas.
Introdução ao Sequenciamento da Produção - Hélio Fuchigami ⬧ 101

9.1.2 Atraso máximo ( 1 | d j | Tmax )

min Tmax (9.7)


s.a (9.2) a (9.6)
Tmax  T j , j=1, ..., n (9.8)

Tj  C j − d j , j=1, ..., n (9.9)

Tj  0 , j=1, ..., n (9.10)

Relembrando: a solução ótima deste problema é obtida pela regra EDD.

9.1.3 Atraso total ( 1 | d j | T )

n
min T
j =1
j (9.11)

s.a (9.2) a (9.6)


Tj  C j − d j , j=1, ..., n (9.12)

Tj  0 , j=1, ..., n (9.13)

9.1.4 Soma dos adiantamentos e atrasos ( 1 | d j | ET )

 (E + Tj )
n
min j (9.14)
j =1

s.a (9.2) a (9.6)


Ej  d j − Cj , j=1, ..., n (9.15)

Tj  C j − d j , j=1, ..., n (9.16)

E j  0 , Tj  0 , j=1, ..., n (9.17)

9.1.5 Número de tarefas atrasadas ( 1 | d j | nT ) )

n
min U
j =1
j (9.18)

s.a (9.2) a (9.6)


Tj  C j − d j , j=1, ..., n (9.19)

T j  BU j , j=1, ..., n (9.20)

U j  {0, 1} , T j  0 , j=1, ..., n (9.21)

Pela restrição (9.15), se T j  0 , então U j = 1 .

Relembrando: a solução ótima deste problema é obtida pelo Algoritmo de Hodgson.


102 ⬧ Introdução ao Sequenciamento da Produção - Hélio Fuchigami

9.1.6 Makespan com setup dependente ( 1 | sij | Cmax )

Formulação de Baker (1974):


▪ Seja uj a posição da tarefa Jj na sequência

min Cmax (9.22)


n
s.a X
i =0 , i  j
ij = 1, j=1, ..., n (9.23)
n

X
j =1, j i
ij = 1, i=0, 1, ..., n (9.24)

ui − u j + nX ij  n − 1 , i=0, 1, ..., n, j=1, ..., n (9.25)


n n n
Cmax =  sij X ij +  p j ,
i =0 j =1 j =1
(9.26)

X ij  {0,1} , u j  0 , i=0, 1, ..., n, j=1, ..., n, X jj = 0 (9.27)

As restrições (9.23) e (9.24) garantem que cada tarefa tenha apenas uma
predecessora imediata e uma sucessora imediata, respectivamente. As restrições (9.25)
garantem que as seleções de Xij representem uma solução viável, ou seja, uma rota
completa (com todas as tarefas). Para todos os pares da sequência, ui − u j = −1 sempre
que X ij = 1 , satisfazendo a expressão (9.25) com a estrita igualdade. Por outro lado,
quando X ij = 0 , segue que ui − u j  n − 1 , satisfazendo também a restrição (9.25). A
expressão (9.26) define o makespan, considerando a soma dos tempos de setup entre os
pares de tarefas da sequência e dos tempos de processamento. As expressões (9.27)
definem o domínio das variáveis.

Formulação baseada em Dantzig, Fulkerson e Johnson (1954):


▪ Seja S um subconjunto de J e |S| o número de tarefas desse subconjunto.

min Cmax (9.28)


n
s.a X
i =0 , i  j
ij = 1, j=1, ..., n (9.29)
n

X
j =1, j i
ij = 1, i=0, 1, ..., n (9.30)
n n

 X
i =1 j =1
ij  S, S  J (9.31)
n n n
Cmax =  sij X ij +  p j ,
i =0 j =1 j =1
(9.32)

X ij  {0,1} , i=0, 1, ..., n, j=1, ..., n, X jj = 0 (9.33)

As restrições são análogas ao modelo anterior, exceto o conjunto (9.31), que


impede a formação de sub-rotas de tarefas.
Introdução ao Sequenciamento da Produção - Hélio Fuchigami ⬧ 103

9.2 Problemas de máquinas paralelas

9.2.1 Makespan ( Pm || Cmax )

▪ Variáveis de decisão: Xjk = 1, se a tarefa Jj é processada na máquina Mk


0, caso contrário
▪ Máquinas paralelas idênticas

min C max (9.34)


m
s.a X
k =1
jk = 1, j=1, ..., n (9.35)

n
Cmax −  p j X jk  0 , k=1, ..., m (9.36)
j =1

X jk  {0, 1} , j=1, ..., n, k=1, ..., m, (9.37)

As restrições (9.35) garantem que cada tarefa é designada a exatamente uma


máquina, enquanto as restrições (9.36) asseguram que o makespan é a maior carga entre
todas as máquinas. A restrição (8.37) indica o tipo das variáveis.

9.2.2 Soma dos adiantamentos e atrasos ( Pm | d j | ET )

▪ Variáveis de decisão: Xijk = 1, se a tarefa Ji precede imediatamente a tarefa Jj


na máquina Mk
0, caso contrário

 (E + Tj )
n
min j (9.38)
j =1
m n
s.a  X
k =1 i =0
ijk = 1, j=1, ..., n (9.39)
n

X
j =1
0 jk  1, k=1, ..., m (9.40)
n n

 X ihk −
i =1, i  h
X
j =1, j  h
hjk =0, h=1, ..., n, k=1, ..., m (9.41)

C j − Ci + B(1 − X ijk ) − p j  0 , i=0, 1, ..., n, j=1, ..., n, k=1, ..., m (9.42)

Ej  d j − Cj , j=1, ..., n (9.43)

Tj  C j − d j , j=1, ..., n (9.44)

E j  0 , T j  0 , X ijk  {0, 1} , i=0, 1, ..., n, j=1, ..., n, k=1, ..., m (9.45)


104 ⬧ Introdução ao Sequenciamento da Produção - Hélio Fuchigami

As restrições (9.39) impõem que cada tarefa tenha uma única predecessora
imediata em uma única máquina. As restrições (9.40) garantem que cada máquina, se
usada, tenha uma única sequência de processamento. As restrições (9.41) asseguram
que cada tarefa tenha uma única sucessora imediata, com exceção da tarefa fictícia J0,
que estabelece o início e o final da sequência de processamento em uma máquina. Se
X ijk = 1 , a restrição (9.42) implica que, na máquina Mk, C j  Ci + p j e se X ijk = 0 , tem-se
que C j − Ci  − B , ou seja, a restrição (9.42) fica desativada. As restrições (9.45) indicam o
tipo das variáveis.

9.3 Problemas de flow shop

9.3.1 Makespan ( Fm | | Cmax )

▪ Relações de viabilidade entre tarefas adjacentes (FUCHIGAMI, 2015, p.63)

 Iijk: tempo ocioso de máquina (idle time) ou intervalo de tempo entre o


término da tarefa Ji e o início da tarefa Jj na máquina Mk
 Wijk: tempo de espera da tarefa (waiting time) ou intervalo de tempo entre o
término da tarefa Jj na máquina Mk e o seu início na máquina Mk+1, com a
tarefa Ji precedendo diretamente a tarefa Jj.

I ijk Wijk = 0

Mk Ji Jj

Mk+1 Jh Ji Jj
Whi ( k +1) = 0 I ij ( k +1)

Figura 9.1 – Relações de viabilidade para duas tarefas adjacentes no flow shop permutacional (Eq. 9.47)

I ijk Wijk

Mk Ji Jj

Mk+1 Jh Ji Jj
Whi ( k +1) = 0 I ij ( k +1) = 0

Figura 9.2 – Relações de viabilidade para duas tarefas adjacentes no flow shop permutacional (Eq. 9.48)
Introdução ao Sequenciamento da Produção - Hélio Fuchigami ⬧ 105

Relações de viabilidade:
a) Iijk + pjk + Wijk = Whi(k+1) + pi(k+1) + Iij(k+1) (9.46)
b) Se Iij(k+1) > 0 então Wijk = 0 (9.47)
Se Wijk > 0 então Iij(k+1) = 0 (9.48)

Formulação adaptada de Pinedo (2012):

▪ Variáveis de decisão: Xjl = 1, se a tarefa Jj é designada à posição l na sequência


0, caso contrário

▪ Variáveis auxiliares: Ikl: tempo ocioso da máquina Mk entre as tarefas das


posições l e l+1
Wkl: tempo de espera da tarefa na posição t entre as
máquinas Mk e Mk+1

Ikl Wk(l+1)
Mk p(l+1)k

Wkl I(k+1)l
Mk+1 pl (k+1)

Figura 9.3 – Intervalo de consistência para formulação do modelo

min C max (9.49)


n
s.a X
j =1
j =1, l =1, ..., n (9.50)
n

X
=1
j =1, j=1, ..., n (9.51)
n n
I k +  p jk X j ( +1) + Wk ( +1) − Wk −  p j ( k +1) X j − I ( k +1)  = 0 ,
j =1 j =1
l = 1, ..., n–1, k = 1, ..., m–1 (9.52)
n m−1 n−1 n
Cmax =  p jk X j1 +  I m +  p jm , (9.53)
j =1 k =1 =1 j =1

Wk 1 = 0 , k = 1,..., m–1, (9.54)

I1 = 0 , l = 1, ..., n–1, (9.55)

X j  {0,1} , j=1, ..., n, l =1, ..., n (9.56)


106 ⬧ Introdução ao Sequenciamento da Produção - Hélio Fuchigami

Neste problema, minimizar o makespan equivale a minimizar o tempo total ocioso


m −1 n −1
na última máquina Mm, que é igual a  p[1]k +  I m[ j ] , correspondendo ao tempo ocioso
k =1 j =1
que ocorre antes da primeira tarefa chegar à última máquina e a soma dos tempos
ociosos entre as tarefas na última máquina. Para a variável pjk, a notação [j] indica a
n
tarefa na j-ésima posição da sequência. Usando a identidade p[ j ]k =  p jk X j , pode-se
j =1

formular o modelo de Programação Inteira Mista. O makespan, portanto, é definido


somando-se os tempos de processamento na última máquina, conforme a restrição
(9.53).
As restrições (9.50) especificam que exatamente uma tarefa pode ser designada a
uma posição e o conjunto (9.51) garante que uma tarefa pode ser programada em apenas
uma única posição. O conjunto de restrições (9.52) relaciona a variável de decisão Xjt às
restrições físicas, que se referem às relações de viabilidade entre tarefas adjacentes,
descritas anteriormente. As demais restrições especificam o tipo e o os valores das
variáveis.
(O modelo que será descrito na seção 9.4.1 pode facilmente ser adaptado para o problema de flow shop.)

9.4 Problemas de job shop

9.4.1 Makespan ( Jm | | Cmax )

▪ Variáveis de decisão: Xijk = 1, se a tarefa Ji precede imediatamente a tarefa Jj


na máquina Mk
0, caso contrário

min Cmax (9.57)

s.a C j[1]  p j[1] , j=1, ..., n (9.58)

C j[ k +1] + C j[ k ]  p j[ k +1] , j=1, ..., n, k=1, ..., m–1 (9.59)

C jk − Cik + B(1 − X ijk )  p jk , i=1, ..., n, j=1, ..., n, k=1, ..., m (9.60)

Cik − C jk + BX ijk  pik , i=1, ..., n, j=1, ..., n, k=1, ..., m (9.61)

Cmax − C jk  0 , j=1, ..., n, k=1, ..., m (9.62)

C jk  0 , X ijk  {0, 1} , C j 0 = 0 i=1, ..., n, j=1, ..., n, k=1, ..., m (9.63)


Introdução ao Sequenciamento da Produção - Hélio Fuchigami ⬧ 107

As restrições (9.58) garantem que a primeira operação de cada tarefa será


completada após o respectivo tempo de processamento. As restrições (9.59) impõem que
a operação k+1 da tarefa Jj será concluída depois do término da operação k e do tempo de
processamento da operação k+1. As expressões (9.60) e (9.61) são restrições disjuntivas
que garantem a consistência das datas de término se na máquina Mk a tarefa Ji precede a
tarefa Jj, ou quando a tarefa Jj precede a tarefa Ji. Se X ijk = 1 , a restrição (9.61) é

desativada e se X ijk = 0 , então a restrição (9.60) é desativada. As expressões (9.62)

definem o valor do makespan. E as restrições (9.63) estabelecem o tipo das variáveis.

Referências dos modelos:


▪ Seções 9.1.1 a 9.1.5: Arenales (2007, p.216-217)
▪ Seção 9.1.6: Baker (1974, p.104-105) e Dantzig, Fulkerson e Johnson (1954)
▪ Seções 9.2.1 e 9.2.2: Arenales (2007, p.221-222)
▪ Seção 9.3.1: adaptado de Pinedo (2010, p.158-159)
▪ Seção 9.4.1: adaptado de Arenales (2007, p.223)
108 ⬧ Introdução ao Sequenciamento da Produção - Hélio Fuchigami

PARTE IV – META-HEURÍSTICAS

10 PRINCIPAIS META-HEURÍSTICAS

10.1 Algoritmo Genético

▪ originalmente desenvolvido por Holland (1976)


▪ analogia com a estrutura genética de um cromossomo
▪ na reprodução de plantas e animais, os descendentes (offspring) possuem
características provenientes do cruzamento dos cromossomos dos pais
▪ mantém uma população de indivíduos
▪ cruzamento entre indivíduos gerando novos indivíduos
▪ seleção dos melhores indivíduos
▪ aplicado a sequenciamento de flow shop por Reeves (1995)

INDIVÍDUO  SOLUÇÃO (SEQUÊNCIA DE TAREFAS)


POPULAÇÃO  CONJUNTO DE SOLUÇÕES (CONJUNTO DE SEQUÊNCIAS)
CROMOSSOMO  CODIFICAÇÃO DA SOLUÇÃO (ÍNDICES DAS TAREFAS)
GENE  ELEMENTO QUE FORMA A SOLUÇÃO (TAREFA)
APTIDÃO/FITNESS  QUALIDADE DA SOLUÇÃO (FUNÇÃO OBJETIVO)

Operadores genéticos:
 Seleção: mecanismo de escolha dos pais
 Cruzamento/Crossover: troca de seções dos cromossomos dos pais
 Mutação: modificação aleatória do cromossomo para maior variabilidade

Exemplo de codificação – sequência de tarefas:


Cromossomo 1: 4 8 3 2 5 1 7 9 6
Cromossomo 2: 7 2 6 1 4 3 9 5 8

Exemplo de seleção para cruzamento ou mutação:


 Seleção aleatória
 Seleção baseada em aptidão
 Um mesmo indivíduo pode estar em vários cruzamentos ou mutações
Introdução ao Sequenciamento da Produção - Hélio Fuchigami ⬧ 109

Exemplo de cruzamento:
 Seleção aleatória de 2 pontos de cruzamento
Pai 1: 4 8 3  2 5 1 7  9 6
Pai 2: 7 2 6  1 4 3 9  5 8

Filho 1: 6 4 3  2 5 1 7  9 8
Filho 2: 8 2 5  1 4 3 9  7 6

O Filho 1 recebe material genético do Pai 1 entre os pontos de cruzamento e


em seguida é preenchido fora dos pontos de cruzamento com o material
genético do Pai 2, sequencialmente, sem repetir os genes. O Filho 2 é
constituído de forma análoga.

Exemplos de mutação:
CROMOSSOMO: 8 2 5 1 4 3 9 7 6
 Troca: 8 2 5 1 4 3 9 7 6  8 4 5 1 2 3 9 7 6
 Migração: 8 2 5 1 4 3 9 7 6  8 2 4 5 1 3 9 7 6
 Inversão: 8 2 5 1 4 3 9 7 6  8 4 1 5 2 3 9 7 6
 Rearranjo aleatório: 8 2 5 1 4 3 9 7 6  8 1 4 2 5 3 9 7 6

ALGORITMO GENÉTICO

PASSO 1 – Defina o tamanho da população inicial, o operador de cruzamento, a


mutação e o número de gerações (iterações).
Faça k = 1. Crie a população inicial (aleatória ou heurística).
PASSO 2 – Avalie e ordene os indivíduos pela medida de desempenho.
PASSO 3 – Selecione os dois melhores indivíduos como PAI 1 e PAI 2.
Aplique o operador de cruzamento (crossover) nos pais, gerando o
FILHO 1 e o FILHO 2.
PASSO 4 – Aplique a mutação nos filhos gerados.
PASSO 5 – Calcule o valor da medida de desempenho dos filhos gerados.
Substitua os filhos pelos dois piores indivíduos da população.
PASSO 6 – Se k < número de gerações, faça k = k + 1 e vá para o PASSO 2.
Senão, PARE. A solução é o melhor indivíduo da população.

Variações: tamanho da população, número de gerações, operadores, mutação etc.


110 ⬧ Introdução ao Sequenciamento da Produção - Hélio Fuchigami

10.2 Simulated Annealing

▪ “Recozimento Simulado”
▪ originalmente desenvolvido por Kirkpatrick, Gelatt e Vecchi (1983)
▪ analogia com fenômeno físico da recristalização de metais (aço)
▪ aquecimento do sistema a uma temperatura efetivamente alta e então resfriá-lo em
estágios progressivos até que não haja alteração nas características do metal
▪ parte de uma solução inicial e escolhe uma solução vizinha aplicando um operador
▪ aceita nova solução melhor e nova solução pior com probabilidade e −  / T , onde Δ é
a diferença de desempenho das soluções e T a temperatura atual
▪ há também um fator de resfriamento r até um critério de parada

Operadores ou esquemas de perturbação (NEARCHOU, 2004):


 PS1: Duas tarefas adjacentes [API – Adjacent Pairwise Interchange]
1 2 3 4 5 6 7 8 9
1 2 3 4 6 5 7 8 9

 PS2: Duas tarefas aleatórias [PI – Pairwise Interchange ou SWAP (troca)]


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

 PS3: Uma tarefa é movida [SHIFT (migração)]


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

 PS4: Uma subsequência é movida


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

 PS5: Uma subsequência é invertida


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

 PS6: Uma subsequência é invertida e/ou movida


1 2 3 4 5 6 7 8 9
1 6 7 8 5 4 3 2 9
Introdução ao Sequenciamento da Produção - Hélio Fuchigami ⬧ 111

SIMULATED ANNEALING

PASSO 1 – Defina as temperaturas inicial Ti e final Tf, o fator de resfriamento r e o


esquema de perturbação.
Gere uma solução inicial S (aleatória ou heurística).
Calcule Z(S). Faça S* = S (onde S* é a melhor solução encontrada).
Faça T = Ti.
PASSO 2 – Utilizando o esquema de perturbação, gere uma solução candidata S’ a
partir da solução atual S.
Calcule Δ = Z(S’) – Z(S).
Se Δ < 0 (melhora), então faça S = S’,
e se Z(S) < Z(S*), faça S* = S.
Senão (Δ  0), gere um número aleatório u no intervalo [0,1].
Se u ≤ e–Δ/T (Critério de Metrópolis), faça S = S’.
PASSO 3 – Faça T = rT (resfriamento).
Se T > Tf, então volte ao PASSO 2.
Senão, PARE. Retorne S*.

10.3 Busca Tabu

▪ originalmente desenvolvido por Glover (1989, 1990)


▪ listas tabus (movimentos ou soluções que não podem ser escolhidas) são usadas
para evitar ciclos quando o movimento não melhora
▪ parte de uma solução inicial e faz movimentos sucessivos na vizinhança (busca
local) para a melhor solução (pode inclusive não ser melhor que a solução atual)
▪ considera toda a vizinhança e não apenas uma nova solução candidata
▪ a nova solução é aceita se não estiver na lista tabu ou se um critério de aspiração
for satisfeito (por exemplo, se a nova solução tem melhor valor que o encontrado
até então)
112 ⬧ Introdução ao Sequenciamento da Produção - Hélio Fuchigami

BUSCA TABU

PASSO 1 – Defina o tamanho da lista tabu e o número de iterações.


Faça k = 1 e lista_tabu = .
Gere uma solução inicial S (aleatória ou heurística). Calcule Z(S).
Faça S* = S (onde S* é a melhor solução encontrada).
PASSO 2 – Gere o conjunto das soluções candidatas vizinhas a partir da solução
atual S cujos movimentos não estejam na lista_tabu.
Encontre a melhor solução candidata S.
Se Z(S) < Z(S*), faça S* = S.
Atualize a list_tabu: se já está completa (tamanho limite), exclua o
movimento mais antigo; se a melhor solução candidata foi obtida pela
troca entre Ji e Jj, então adicione o movimento (Ji, Jj).
PASSO 4 – Faça k = k + 1.
Se k ≤ número de iterações, então volte ao PASSO 2.
Senão, PARE. Retorne S*.

10.4 Outras meta-heurísticas

❑ Colônia de Formigas (Ant Colony): baseia-se no comportamento de formigas


reais que usam trilhas de feromônio para comunicação e cooperação. O caminho
feito pela formiga do ninho até a fonte de alimento é uma solução do problema. É
depositada uma quantidade de feromônio no caminho percorrido para privilegiar as
melhores soluções. Existe também um decaimento da quantidade de feromônio
com o passar do tempo, de forma que os melhores caminhos sejam escolhidos
com mais frequência que os demais.

❑ Otimização por Nuvem de Partículas (Particle Swarm Optimization): simula o


comportamento de um bando de pássaros em voo (partículas). A posição ocupada
por uma partícula é uma solução viável para o problema. O comportamento de
cada partícula é baseado na sua experiência anterior e na das outras partículas
com as quais se relaciona. De forma semelhante aos Algoritmos Genéticos, o
conjunto das partículas tende a preservar as posições com maior aptidão e
descartar as piores.
Introdução ao Sequenciamento da Produção - Hélio Fuchigami ⬧ 113

❑ Busca Dispersa (Scatter Search): apresenta similaridades com o Algoritmo


Genético, porém difere no uso de estratégias determinísticas ao invés de
probabilísticas para promover a diversificação e intensificação, e também no
tamanho da população, que aqui é relativamente pequeno.

❑ Evolução Diferencial (Differential Evolution): assim como o Algoritmo Genético,


emprega operadores de mutação, crossover e seleção, entretanto os cromossomos
são representados por vetores compostos por números de ponto flutuante. Na
mutação, a diferença entre dois indivíduos selecionados é somada a um terceiro
indivíduo, criando uma “solução mutante” e uma “população mutante”.

❑ Algoritmo Imunológico (Immune Algorithm): inspirado no processo de defesa do


sistema imunológico do organismo: a função-objetivo é representada por
“antígenos” (invasores do organismo) e as soluções viáveis são os “anticorpos”. O
anticorpo que melhor “atacar” o antígeno por meio de uma função de avaliação
(fitness) é escolhido como solução do problema.

❑ GRASP (Greedy Randomized Adaptative Search Procedure): procedimento que


consiste basicamente de duas etapas: uma fase de construção iterativa de uma
solução viável e uma fase de busca local. A ideia básica é utilizar diferentes
soluções iniciais como pontos de partida para a busca local.

❑ Busca Local Iterativa (Iterated Local Search): processo iterativo em que uma
solução é perturbada, gerando novas soluções como partida para um método de
busca local.

❑ Busca em Vizinhança Variável (Variable Neighborhood Search – VNS): consiste


numa busca local com mudança dinâmica de vizinhança. A vizinhança é expandida
ou novos métodos de escolha da vizinhança são utilizados à medida que não se
obtêm soluções melhores na vizinhança atual.

❑ Algoritmo Memético (Memetic Algorithm): versão híbrida do Algoritmo Genético


com busca local, com o objetivo de aumentar o desempenho.
114 ⬧ Introdução ao Sequenciamento da Produção - Hélio Fuchigami

❑ Busca em Feixe (Beam Search): método de enumeração implícita, uma adaptação


do Branch-and-bound, em que somente os nós mais promissores de cada nível da
árvore de busca são armazenados na memória para serem visitados, enquanto os
demais nós são descartados permanentemente.

❑ Colônia de Abelhas (Bee Colony): inspirado no comportamento de coleta de


alimento das abelhas. Existem três tipos de abelhas: as escoteiras, que voam
aleatoriamente no espaço de busca sem orientação específica; as empregadas
exploram a vizinhança de sua localização para selecionar uma solução aleatória a
ser perturbada; e as espectadoras, que selecionam probabilisticamente uma
solução para explorar sua vizinhança.

❑ Colônia de Vaga-lumes (Firefly Colony): baseada no comportamento social de


insetos lampirídeos como vaga-lumes ou pirilampos. Os lampejos são produzidos
para atrair presas, comunicação ou acasalamento e são associados com o valor da
função objetivo a ser otimizada.

❑ Algoritmo do Morcego (Bat Algorithm): inspirado no processo de eco-localização


desempenhado pelos morcegos durante o seu voo para detectar presas e evitar
obstáculos. O morcego representa uma solução viável.

❑ Busca Harmônica (Harmonic Search): fundamenta-se na observação do


desempenho de músicos em uma orquestra, que buscam a harmonia perfeita. A
harmonia perfeita se refere a um padrão de qualidade de áudio e é análoga à
busca pela solução ótima. Considera a capacidade de improvisação dos músicos
para obtenção de novas harmonias, levando-se em conta a frequência, o timbre e a
amplitude de cada instrumento.
115 ⬧ Introdução ao Sequenciamento da Produção - Hélio Fuchigami

PARTE V – SUPLEMENTO
EXERCÍCIOS SELECIONADOS
1) A Precision Machining realiza usinagem personalizada para seus clientes. A empresa usa
atualmente a regra de sequenciamento “primeiro a entrar, primeiro a ser atendido”. Uma vez
que a empresa quer finalizar as tarefas dos clientes mais rápido, ela está considerando duas
outras regras: menor tempo de processamento e razão crítica. A empresa acha que estes
critérios são importantes na escolha de uma regra de sequenciamento: tempo médio de fluxo,
número médio de tarefas no sistema e atraso médio das tarefas. Estude a situação da
Precision e recomende uma regra de sequenciamento.

Tarefa A B C D E F
Tempo de produção (horas) 2 5 3 4 6 4
Data de entrega prometida (horas) 4 18 8 4 20 24

2) A Sure Print Company faz trabalhos de impressão personalizados para empresas, políticos
e escolas. A Sure Print está em meio ao boom de um ano eleitoral, e inúmeros cartazes de
políticos estão esperando para ser processados na máquina de offset. Alicia Smith, que faz o
planejamento de tarefas da Sure Print, está desenvolvendo atualmente um programa de
impressão semanal para a máquina de offset. Ela desenvolveu esses custos de preparação
(setup) para seis tarefas à espera. Todas as tarefas portam igual prioridade; sendo assim, o
fator decisivo para escolher uma sequência de tarefas é o custo total de preparação para as
seis tarefas. Proponha uma sequência para ajudar Alicia Smith.

Tarefas que sucedem


A B C D E F
A – 25 27 16 35 20
Tarefas que

B 12 – 15 30 20 25
precedem

C 15 20 – 10 25 15
D 10 20 12 – 30 25
E 35 25 20 25 – 30
F 20 20 15 30 30 –

3) Há dois centros de trabalho na Precision Machining: usinagem e acabamento. A


administração da Precision deseja adotar um procedimento que defina rotineiramente a
sequência na qual as tarefas passariam por ambos os centros de trabalho. Proponha a
sequência que minimize o tempo total de execução das tarefas nos dois centros.

Tempo estimado de processamento (horas)


Trabalho A B C D E F
Usinagem 1,50 4,00 0,75 1,00 2,00 1,80
Acabamento 0,50 1,00 2,25 3,00 4,00 2,20
116 ⬧ Introdução ao Sequenciamento da Produção - Hélio Fuchigami

4) A Bill’s Machining faz usinagem personalizada baseando-se em 8 horas de trabalho por


dia, 5 dias por semana. Um programa de produção está sendo preparado agora para a
próxima semana. As tarefas, os tempos estimados de produção, os tempos estimados de
preparação e o progresso na quarta-feira ao meio-dia são mostrados a seguir:

Tempo de produção da tarefa (horas) Tempo de Progresso


preparação na 4ª-feira
Centro de Trabalho A B C D E (horas) (horas)
Torneamento – – 16 16 10 2 –
Usinagem – 12 10 16 8 1 -1
Tratamento térmico 8 8 8 8 8 3 1
Acabamento 8 8 8 8 8 1 0,5

A empresa acaba de encerrar uma semana de férias; portanto, centros de trabalho serão
introduzidos gradualmente conforme necessário. As tarefas serão sequenciadas nesta ordem:
A – B – C – D – E. Prepare um gráfico de Gantt para a empresa que exiba os programas de
cada semana para os centros de trabalho. Você proporia outra forma de sequenciamento?

5) Seis tarefas estão aguardando para ser processadas numa estação de trabalho. Seus
códigos de tarefa, tempos estimados de produção e tempos de entrega prometidos são
apresentados na tabela seguinte.

Tempo de produção Tempo para a Entrega


Código da Tarefa (horas) Prometida (horas)
161 3,8 6,0
162 2,1 3,0
163 4,5 14,0
164 3,0 10,0
165 4,2 20,0
166 2,9 19,0

Determine a sequência de produção das tarefas usando as seguintes regras:


a) Regra do menor tempo de processamento
b) Regra da menor folga
c) Regra da razão crítica

6) Sete tarefas estão aguardando para ser processadas numa estação de trabalho. Seus
códigos de tarefas, tempos estimados de produção e os tempos de entrega prometidos são
apresentados a seguir.

Tempo de produção Tempo para a Entrega


Código da Tarefa (horas) Prometida (horas)
241 2,4 31,0
242 3,7 12,0
243 5,2 19,0
244 3,3 14,0
245 5,6 10,0
246 6,1 27,0
247 4,0 24,0
Introdução ao Sequenciamento da Produção - Hélio Fuchigami ⬧ 117

Determine a sequência de produção das tarefas usando as seguintes regras:


a) Regra do menor tempo de processamento
b) Regra da menor folga
c) Regra da razão crítica

7) Um planejador da produção deve decidir-se a respeito da sequência na qual produzir


quatro pedidos de clientes.

Pedido do Cliente A B C D
Tempo Estimado de Produção (dias) 10 21 26 19
Tempo para a Entrega Prometida (dias) 15 30 60 77

Avalie as regras FIFO, SPT e CR em três medidas de desempenho: tempo médio de fluxo,
número de tarefas no sistema e atraso médio das tarefas.

8) Uma empresa faz trabalhos de tratamento térmico (recozimento, cementação, imersão em


óleo etc.) para clientes. Cada trabalho geralmente requer uma preparação diferente, e essas
preparações têm diferentes custos. Hoje a empresa deve decidir-se a respeito da sequência
de tarefa para cinco trabalhos de forma a minimizar os custos de preparação (setup).

Tarefas que sucedem


A B C D E
A – 85 62 95 55
Tarefas que
precedem

B 75 – 91 85 85
C 90 79 – 55 65
D 60 97 87 – 95
E 42 45 75 65 –

a) Use a seguinte regra para desenvolver uma sequência de tarefas: primeiro escolha
o menor custo de preparação dentre todas as possibilidades; isso define a primeira
e a segunda tarefas. A tarefa seguinte a ser escolhida terá o menor custo de
preparação entre as tarefas restantes que sucedem a tarefa anteriormente
escolhida.
b) Qual é o custo total de preparação da sequência?
c) É possível criar uma sequência melhor?

9) Um programador de produção deve determinar a sequência na qual processar quatro


pedidos de clientes. Cada um dos pedidos deve passar por duas operações principais:
inserção e soldagem. O programador desenvolveu estas estimativas do tempo de produção
para os quatro pedidos:

Pedido do Cliente A B C D
Inserção do componente (horas) 6,9 7,3 5,7 2,6
Solda a fluxo (horas) 5,9 6,1 4,9 3,6
118 ⬧ Introdução ao Sequenciamento da Produção - Hélio Fuchigami

Se as operações não necessitarem de preparações para novas tarefas simultaneamente:


a) Use o Algoritmo de Johnson para definir a sequência de produção dos pedidos nas
duas operações.
b) Quantas horas serão necessárias para produzir todos os pedidos por meio de
ambas as operações?

10) A Oficina de Máquinas Taylor faz a retífica de blocos de motor. Atualmente, cinco blocos
de motor estão esperando por processamento. Os problemas com os motores foram
diagnosticados e os tempos de processamento para as tarefas foram estimados. Os tempos
de conclusão esperados foram combinados com os clientes. A tabela a seguir mostra a
situação a partir de segunda-feira de manhã. Como a Oficina de Máquinas Taylor está aberta
das 8h às 17h todos os dias úteis, mais horas no fim de semana se necessário, os tempos de
entrega ao cliente são medidos em termos e horário de funcionamento a partir de segunda-
feira de manhã. Determine a programação para os motores usando:

a) Regra EDD
b) Regra SPT

Para cada regra, calcule as horas de antecipação médias, as horas de atraso, o WIP e o
estoque total. Se os tempos de fluxo das tarefas e os WIP baixos são críticos, qual regra deve
ser escolhida? (Estoque total é a soma das datas de entrega reais dividida pelo makespan.)

Tempo de processamento Tempo para a Entrega


Bloco do Motor incluindo preparação (horas) Prometida (horas)
Ranger 8 10
Explorer 6 12
Bronco 15 20
Econoline 150 3 18
Thunderbird 12 22

11) A tabela a seguir contém informações sobre um conjunto de quatro tarefas (ordens de
produção) aguardando em um torno mecânico. Várias operações, inclusive a do torno
mecânico, ainda precisam ser executadas em cada ordem. Determine a programação usando
as regras SPT, EDD, CR e FIFO (chegadas em ordem dos índices).

Tarefa 1 2 3 4
Tempo de operação no torno mecânico (horas) 2,3 10,5 6,2 6,2
Data de entrega (dias) 15 10 20 8

Preencha a tabela a seguir e discuta as medidas de desempenho de cada regra.

Medida de desempenho SPT EDD CR FIFO


Tempo médio de fluxo
Tempo médio de antecipação
Tempo médio de atraso
WIP
Introdução ao Sequenciamento da Produção - Hélio Fuchigami ⬧ 119

12) A Companhia de Máquinas Morris acabou de fazer um pedido para restaurar cinco
motores de equipamento de movimentação de materiais que foram danificados em um
incêndio. Os motores serão consertados em duas estações de trabalho da seguinte maneira:

Estação de trabalho 1: desmontar o motor e limpar as peças.


Estação de trabalho 2: substituir as peças de acordo com a necessidade, testar o
motor e fazer ajustes.

A oficina do cliente ficará fora de operação até que todos os motores tenham sido
consertados. Desse modo, o gerente da planta está interessado em elaborar uma
programação que minimize a sua duração total. O tempo estimado para consertar cada motor
é mostrado na tabela a seguir:

Tempo (horas)
Motor M1 M2 M3 M4 M5
Estação de trabalho 1 12 4 5 15 10
Estação de trabalho 2 22 5 3 16 8

13) A Oficina de Máquinas Neptune’s Den especializa-se na revisão de motores de popa.


Alguns motores requerem substituição de peças quebradas, ao passo que outros precisam de
uma revisão completa. Atualmente, cinco motores com problemas variados estão aguardando
serviço. As melhores estimativas para os tempos de trabalho envolvidos e as datas
prometidas (em número de dias a partir de hoje) são mostradas na tabela a seguir. Os
clientes normalmente não buscam seus motores antes da hora.

Tempo de trabalho Data prometida


Motor estimado (dias) (dias a partir de hoje)
Evinrude 50 hp 5 8
Johnson 7 hp 4 15
Mercury 100 hp 10 12
Sportsman 4 hp 1 20
Nautique 75 hp 3 10

a) Elabore programações separadas usando as regras SPT e EDD. Compare as duas


programações por meio do tempo médio de fluxo, percentual de tarefas com prazo
esgotado e o máximo de dias de pedido vencido para qualquer motor.
b) Para cada programação, calcule o estoque em processo médio (em motores) e o
estoque total médio (em motores).

Dica: o estoque total médio é o soma dos tempos no sistema dividida pelo makespan; na tabela de
solução, faça uma coluna de “Data de entrega real”, cujo total é a soma dos tempos no sistema.

14) Os dados seguintes foram relatados pelo sistema de controle de chão de fábrica para
processamento de ordens de produção no aparador de arestas. A data atual é dia 150. O
número de operações e o trabalho total restantes incluem a operação no aparador de arestas.
Todos os pedidos estão disponíveis para processamento e nenhum foi iniciado ainda.
120 ⬧ Introdução ao Sequenciamento da Produção - Hélio Fuchigami

Tempo de Data de entrega (dia)


Pedido atual processamento (horas)
A101 10 162
B272 7 158
C105 15 152
D707 4 170
E555 8 154

a) Especifique as prioridades para cada tarefa se o sistema de controle do chão de


fábrica usar as regras SPT, LPT, EDD, CR, MST ou FIFO (chegadas na ordem em
que aparecem na tabela).
b) Para cada regra de sequenciamento, calcule o tempo médio de fluxo das tarefas no
aparador de arestas.

15) A Fábrica de Armas Rocky Mountain, antigamente um local de fabricação de substâncias


químicas para operações militares, parece ser um dos locais mais poluídos dos Estados
Unidos. A limpeza de bacias de armazenamento de lixo químico envolverá duas operações:

Operação 1: drenar e dragar a bacia.


Operação 2: incinerar materiais.

A gerência estima que cada operação exigirá as quantidades de tempo seguintes (em dias):

Bacia de armazenamento
Operação A B C D E F G H I J
Dragar 3 4 3 6 1 3 2 1 8 4
Incinerar 1 4 2 1 2 6 4 1 2 8

O objetivo da gerência é minimizar o tempo de processamento total das operações de


limpeza. Primeiro, encontre uma programação que minimize a duração total. Em seguida,
calcule o tempo médio de fluxo das bacias de armazenamento do princípio ao fim das duas
operações. Qual é o tempo decorrido para limpar as dez bacias? Exiba a programação em um
gráfico de Gantt.

16) A Companhia Nogueira fabrica escrivaninhas de madeira. A gerência programa horas


extras todo final de semana para reduzir o acúmulo (backlog) nos modelos mais populares. A
máquina de rotina automática é usada para cortar certos tipos de arestas das escrivaninhas.
Os pedidos a seguir precisam ser programados para a máquina de rotina:

Tempo de Data de entrega (dia)


Pedido processamento (horas)
1 10 12
2 3 8
3 15 18
4 9 20
5 7 21
Introdução ao Sequenciamento da Produção - Hélio Fuchigami ⬧ 121

As datas de entrega refletem a necessidade de que o pedido esteja em sua próxima


operação.

a) Desenvolva programações separadas usando as regras FIFO, SPT e EDD.


Compare as programações tendo como referência o tempo médio de fluxo, o tempo
médio de antecipação e as horas médias de atraso.
b) Para cada programação, calcule o WIP médio (em pedidos) e o estoque total médio
(em pedidos).
c) Comente sobre o desempenho das regras em relação a essas medidas.

17) A máquina de furar fixa é uma operação gargalo em um sistema de produção.


Atualmente, cinco tarefas estão esperando para serem processadas, cujos dados estão a
seguir.

Tempo de Data de entrega


Tarefa processamento
AA 4 10
BB 8 16
CC 13 21
DD 6 23
EE 2 12

a) Especifique a prioridade para cada tarefa se o sistema de controle de chão de


fábrica usar cada uma das regras de sequenciamento a seguir: SPT, LPT, EDD,
CR, MST e FIFO (chegadas na ordem em que aparecem na tabela).
b) Para cada regra de sequenciamento, calcule o tempo médio de fluxo na máquina
de furar fixa.
c) Qual dessas regras de sequenciamento funcionaria melhor para planejamento de
prioridade com um sistema de MRP? Por quê?

18) A oficina de máquinas da empresa Bycraft funciona 24 horas por dia e usa uma máquina
de solda controlada numericamente (CN). A carga na máquina é monitorada e não são
lançadas mais de 24 horas de trabalho para os operadores de solda em um dia. Os dados
para um conjunto típico de tarefas são mostrados na tabela a seguir. A gerência investigou
procedimentos de programação que reduziriam o estoque e aumentariam o atendimento ao
cliente na oficina. Suponha que às 8h na segunda-feira, a máquina de solda CN estivesse
ociosa.

Instante de Tamanho Tempo de Tempo de


Tarefa liberação do lote processamento preparação Data de entrega
(horas/unidade) (horas)
1 9h Segunda-feira 50 0,06 4 21h Segunda-feira
2 10h Segunda-feira 120 0,05 3 22h Segunda-feira
3 11h Segunda-feira 260 0,03 5 23h Segunda-feira
4 12h Segunda-feira 200 0,04 2 2h Terça-feira
122 ⬧ Introdução ao Sequenciamento da Produção - Hélio Fuchigami

a) Elabore programações para as regras de sequenciamento SPT e EDD e trace um


gráfico de Gantt para cada programação.
b) Para cada programação, calcule as horas médias de atraso e o tempo médio de
fluxo. Tenha em mente que as tarefas estão disponíveis para processamento em
momentos diferentes.
c) Comente sobre o desempenho do atendimento ao cliente e do estoque das duas
regras. Que alternativas a gerência deve considerar ao selecionar regras para
programar a máquina de solda no futuro?

19) Recorra ao gráfico de Gantt de máquina da figura a seguir.

Tarefa
A Tarefa 1 Tarefa 3
2

Tarefa
B Tarefa 2 Tarefa 3
1
0 1 2 3 4 5 6 7 8 9

a) Suponha que um requisito de itinerário seja que cada tarefa deva ser processada
primeiro na máquina A. A duração total da programação pode ser melhorada?
Nesse caso, desenhe um gráfico de Gantt com a programação aperfeiçoada. Se
não, explique por quê.
b) Suponha que a sequência de máquina não tenha nenhuma restrição de itinerário;
em outras palavras, as tarefas podem ser processadas nas máquinas em qualquer
rota. Nesse caso, a duração total da programação pode ser melhorada? Em caso
afirmativo, desenhe um gráfico de Gantt com a sua programação. Caso não possa,
explique por quê.

20) Um fabricante de velas para barcos pequenos tem um grupo de velas personalizadas
aguardando as últimas duas operações de processamento antes delas serem enviadas aos
clientes. A operação 1 deve ser executada antes da operação 2, e as tarefas têm requisitos
de tempo diferentes para cada operação. As horas requeridas são as seguintes:

Tarefa 1 2 3 4 5 6 7 8 9 10
Operação 1 1 5 8 3 9 4 7 2 4 9
Operação 2 8 3 1 2 8 6 7 2 4 1

a) Determine a programação com duração total ótima.


b) Desenhe um gráfico de Gantt com a programação.

21) A Companhia de Peças McGee está sob grande pressão para concluir um contrato
governamental para seis pedidos em 31 dias úteis. Os pedidos são de peças sobressalentes
para equipamentos de manutenção de estradas. De acordo com o contrato governamental,
uma multa por atraso de mil dólares é imposta para cada dia de atraso do pedido. Devido a
um aumento de âmbito nacional na construção de estradas, a Peças McGee recebeu muitos
pedidos de substituição de peças sobressalentes e a oficina tem ficado extremamente
Introdução ao Sequenciamento da Produção - Hélio Fuchigami ⬧ 123

ocupada. Para concluir o contrato governamental, as peças devem ter as rebarbas removidas
e tratadas com temperaturas elevadas. O gerente de controle de produção sugeriu a
programação seguinte:

Remoção de rebarbas Tratamento térmico


Tarefa Início Fim Início Fim
1 0 2 2 8
2 2 5 8 13
3 5 12 13 17
4 12 15 17 25
5 15 16 25 30
6 16 24 30 32

a) Determine a sequência ótima para a duração total da programação.


b) Desenhe o gráfico de Gantt para a programação.

22) Carolyn Roberts é a gerente de operações da oficina de manutenção da Reliable


Manufacture. Ela tem de programar oito tarefas que devem ser enviadas para montagem final
para atender ao pedido de um cliente importante. Atualmente, todas as oito tarefas estão no
departamento 12 e, em seguida, devem ser encaminhadas para o departamento 22. Jason
Mangano, supervisor do departamento 12, está interessado em manter seu estoque em
processo baixo e é inflexível quanto a processar as tarefas através de seu departamento de
acordo com o menor tempo de processamento. Pat Mooney, supervisora do departamento 22,
chamou atenção para o fato de que, se Mangano fosse mais flexível, os pedidos poderiam ter
sido terminados e enviados antes. Os tempos de processamento (em dias) para cada tarefa
em cada departamento são os seguintes:

Tarefa 1 2 3 4 5 6 7 8
Departamento 12 2 4 7 5 4 10 8 2
Departamento 22 3 6 3 8 2 6 6 5

a) Determine uma programação para as operações em cada departamento. Use a


regra SPT para o departamento 12 e a mesma sequência para o departamento 22.
Qual é o tempo de fluxo médio de fluxo para o departamento 12? Qual é o tempo
médio de fluxo considerando ambos os departamentos? Qual é o número total de
dias gastos no sistema?
b) Encontre uma programação que minimize a duração total nos dois departamentos
e, em seguida, calcule o tempo médio de fluxo no departamento 12. Qual é o
número total de dias gastos no sistema?
c) Discuta as alternativas representadas por essas duas programações. Que
implicações elas têm para a programação da empresa?
124 ⬧ Introdução ao Sequenciamento da Produção - Hélio Fuchigami

23) O gerente de conserto da Standard Components precisa desenvolver uma programação


de prioridade para reparar oito computadores. Cada tarefa requer análises com o mesmo
sistema de diagnóstico. Além disso, cada tarefa exigirá processamento adicional após a
avaliação de diagnóstico. O gerente não espera nenhum atraso de reprogramação, e as
tarefas devem ser transferidas diretamente para o próximo processo depois que o trabalho de
diagnóstico for concluído. O gerente coletou o tempo de processamento e os dados de
programação a seguir para cada tarefa de conserto:

Tarefa Tempo de trabalho (dias) Data de entrega (dias)


1 1,25 6
2 2,75 5
3 2,50 7
4 3,00 6
5 2,50 5
6 1,75 8
7 2,25 7
8 2,00 5

a) Compare o desempenho relativo das regras FIFO, SPT, LPT, EDD, CR e MST.
b) Discuta a seleção de uma das regras para essa empresa. Que critérios você
considera mais importantes na seleção de uma regra nessa situação?

24) A Sistemas de Suporte Penultimate fabrica alto-falantes e estandes de equipamento de


apoio de boa qualidade para grupos musicais. O processo de montagem envolve duas
operações: (1) fabricação ou corte de tubulação de alumínio em comprimentos corretos e (2)
montagem com prendedores comprados e peças de plástico montadas por injeção. O tempo
de preparação para montagem é insignificante. Seguem o tempo de preparação para
fabricação e o tempo de execução por unidade, o tempo de montagem por unidade e a
programação de produção para a próxima semana. Organize o trabalho para minimizar a
duração total da programação e crie um gráfico de Gantt. Esse trabalho pode ser realizado
dentro de dois turnos de 40 horas?

Fabricação Montagem
Preparação Tempo de Tempo de
Modelo Quantidade (h) execução execução
(h/unidade) (h/unidade)
1 200 2 0,050 0,04
2 300 3 0,070 0,10
3 100 1 0,050 0,12
4 250 2 0,064 0,60

25) Oito tarefas devem ser processadas em três máquinas na sequência M1, M2 e M3. Os
tempos de processamento (em horas) são:
Introdução ao Sequenciamento da Produção - Hélio Fuchigami ⬧ 125

Tarefa 1 2 3 4 5 6 7 8
Máquina M1 2 5 2 3 1 2 4 2
Máquina M2 4 1 3 5 5 6 2 1
Máquina M3 6 4 5 2 3 2 6 2

A máquina M2 é um gargalo e a gerência quer maximizar seu uso. Consequentemente, a


programação para as oito tarefas, através das três máquinas, foi baseada na regra SPT na
máquina M2. A programação proposta é 2, 8, 7, 3, 1, 4, 5 e 6.

a) Agora são 16h da segunda-feira. Suponha que o processamento na máquina M2


deva começar às 7h na terça-feira. Use a programação proposta para determinar
as programações para M1 e M3, de forma que a tarefa 2 comece o processo na
máquina M2 às 7h, na terça-feira. Desenhe o gráfico de Gantt para M1, M2 e M3.
Qual é a duração total da programação para as oito tarefas?
b) Encontre uma programação que utilize M2 melhor e ofereça um tempo de
processamento total menor.

26) Os últimos passos de um processo de produção requerem duas operações. Algumas


tarefas necessitam de processamento em M1 antes do processamento em M3. Outras tarefas
requerem processamento em M2 antes de M3. No momento, seis tarefas estão esperando em
M1 e quatro tarefas estão esperando em M2. Os dados a seguir foram fornecidos pelo
sistema de controle de chão de fábrica:

M1 M2 M3 Data de entrega
Tarefa (horas a partir de agora)
1 6 – 4 13
2 2 – 1 18
3 4 – 7 22
4 5 – 3 16
5 7 – 4 30
6 3 – 1 29
7 – 4 6 42
8 – 2 10 31
9 – 6 9 48
10 – 8 2 40

a) Programe esta oficina usando as seguintes regras: SPT, LPT, EDD, CR, MST e
FIFO.
b) Discuta as implicações operacionais e cada uma das programações elaboradas por
meio das regras.

Referências dos Exercícios Selecionados:


▪ Exercícios 1 a 9: adaptados de Gaither e Frazier (2004, cap.11)
▪ Exercícios 10 a 26: adaptados de Krajewski, Ritzman e Malhotra (2009, cap.16)
126 ⬧ Introdução ao Sequenciamento da Produção - Hélio Fuchigami

REFERÊNCIAS

LIVROS DE SCHEDULING:

ALHARKAN, I.M. Algorithms for sequencing and scheduling. Riyadh: King Saud University,
2010.

BAKER, K.R. Introduction to sequencing and scheduling. New York: John Wiley & Sons, 1974.

BAKER, K.R.; TRIETSCH, D. Principles of sequencing and scheduling. New York: John Wiley
& Sons, 2009.

BLAZEWICZ, J.; ECKER, K.H.; PESCH, E.; SCHMIDT, G.; WEGLARZ, J. Handbook of
scheduling: from theory to applications. Berlin Heidlberg: Springer-Verlag, 2007.

BRUCKER, P. Scheduling algorithms. Berlin Heidlberg: Springer-Verlag, 2007.

CONWAY, R.W.; MAXWELL, W.L.; MILLER, L.W. Theory of scheduling. Reading: Addison-
Wesley, 1967.

FRANCH, S. Sequencing and scheduling: na introduction to the mathematics of the job-shop.


Ellis Horwood Ltd., 1982.

FUCHIGAMI, H.Y. Sequenciamento da produção em sistemas flow shop. Goiânia: Gráfica


UFG, 2015.

LAWLER, E.L.; LENSTRA, J.K.; RINNOOY KAN, A.H.G.; SHMOYS, D.B. Sequencing and
scheduling: algorithms and complexity. Amsterdam, 1989.

LEUNG, J.Y.-T. Handbook of scheduling: algorithms, models, and performance analysis. Boca
Raton: Chapman & Hall/CRC, 2004.

MORTON, T.E.; PENTICO, D.W. Heuristic scheduling systems: with applications to production
systems and project management. New York: John Wiley & Sons, 1993.

PINEDO, M. Planning and scheduling in manufacturing and services. New York: Springer,
2009. 2ª ed.

PINEDO, M. Scheduling: theory, algorithms and systems. New Jersey: Prentice-Hall, 2012. 4ª ed.

RÍOS-MERCADO, R.Z.; RÍOS-SOLÍS, Y.A. Just-in-time systems. New York: Springer, 2012.

ARENALES, M.; ARMENTANO, V.; MORABITO, R; YANASSE, H. Pesquisa Operacional para


Cursos de Engenharia. Rio de Janeiro: Elsevier, 2007.

CAMPBELL, H.G.; DUDEK, R.A.; SMITH, M.L. A heuristic algorithm for the n job m machine
sequencing problem. Management Science, Rhode Island, v. 16, p. B630-637, 1970.

CHAKRABORTY, U.D.; LAHA, D. An improved heuristic for permutation flowshop scheduling.


International Journal of Information and Communication Technology, v. 1, n. 1, p. 89-97,
2007.

CHEN, B. Parallel scheduling for early completion. In: LEUNG, J. Y. T. Handbook of scheduling:
algorithms, models, and performance analysis. Boca Raton: Champan & Hall/CRC, 2004.
Introdução ao Sequenciamento da Produção - Hélio Fuchigami ⬧ 127

COLIN, E.C. Pesquisa Operacional: 170 aplicações em Estratégia, Finanças, Logística,


Produção, Marketing e Vendas. Rio de Janeiro: LTC, 2007.

DANILOVIC, M.; ILIC, O. A generalized constructive algorithm using insertion-based heuristic.


Computers & Operations Research, v. 66, p. 29-43, 2016.

DANNENBRING, D.G. An evaluation of flow shop sequencing heuristics. Management Science,


v. 23, n. 11, p. 1174-1182, 1977.

DANTZIG, G.B.; FULKERSON, D.R.; JOHNSON, S.M. Solution of a large-scale traveling


salesman problem. Operations Research, v. 2, p. 393-410, 1954.

DONG, X.; HUANG, H.; CHEN, P. An improved NEH-based heuristic for the permutation flowshop
problem. Computers & Operations Research, v. 35, p. 3962-3968, 2008.

FERNANDES, F.C.F.; GODINHO FILHO, M. Planejamento e Controle da Produção: dos


fundamentos ao essencial. São Paulo: Atlas, 2010.

FERNANDEZ-VIAGAS, V.; FRAMINAN, J.M. On insertion tie-breaking rules in heuristics for the
permutation flowshop scheduling problem. Computers & Operations Research, v. 45, p. 60-67,
2014.

GAITHER, N.; FRAZIER, G. Administração da produção e operações. São Paulo: Pioneira


Thomson Learning, 2004. 8ª ed.

GLOVER, F. First comprehensive description of tabu search, “Tabu Search — Part I”. ORSA
Journal on Computing, v. 1, n. 3, p. 190-206, 1989.

GLOVER, F. The second part of this comprehensive description of tabu search introduces
additional mechanisms such as the reverse elimination method, “Tabu Search — Part II”. ORSA
Journal on Computing, v. 2, n. 1, p. 4-32, 1990.

GUPTA, J.N. A functional heuristic algorithm for the flowshop scheduling problem. Operational
Research Quarterly, v. 22, n. 1, p. 39-47, 1971.

HO, J.C.; CHANG, Y.-L. A new heuristic for the n-job, mmachine flow-shop problem. European
Journal of Operational Research, v. 52, p. 194-202, 1991.

HODGSON, T.J. A note on single machine sequencing with random processing times.
Management Science, v. 23, n. 10, p. 1144-1146, 1977.

HOLLAND, J. H. Adaptation in Natural and Artificial Systems. Ann Arbor, MI: The University of
Michigan Press, 1976.

HUNDAL, T.S.; RAJGOPAL, J. An extension of Palmer’s heuristic for the flow shop scheduling
problem. International Journal of Production Research, v. 26, n. 6, p. 1119-1124, 1988.

IGNALL, E.; SCHRAGE, L. Application of the branch and bound technique to some flow-shop
scheduling problems. Operations Research, v. 13, n. 3, p. 400-412, 1965.

JACKSON, J.R. An extension of Johnson’s results on job lot scheduling. Naval Research
Logistics Quarterly, v. 3, p. 201-203, 1956.

JOHNSON, S.M. Optimal two- and three-stage production schedules with setup times included.
Naval Research Logistics Quarterly, v. 1, p. 61-68, 1954.

KALCZYNSKI, P.J.; KAMBUROWSKI, J. An improved NEH heuristic to minimize makespan in


permutation flow shops. Computers & Operations Research, v. 35, p. 3001-3008, 2008.
128 ⬧ Introdução ao Sequenciamento da Produção - Hélio Fuchigami

KALCZYNSKI, P.J.; KAMBUROWSKI, J. On the NEH heuristic for minimizing the makespan in
permutation flowshop. Omega, v. 35, p. 53-60, 2007.

KIRKPATRICK, S.; GELATT, D.C.; VECCHI, M.P. Optimization by simulated annealing. Science,
v. 220, p. 671-680, 1983.

KOULAMAS, C.. A new constructive heuristic for the flowshop scheduling problem. European
Journal of Operational Research Society, v. 105, p. 66-71, 1998.

KRAJEWSKI, L.; RITZMAN, L.; MALHOTRA, M. Administração de produção e operações. São


Paulo: Pearson Prentice Hall, 2009. 8ª ed.

KRUGER, D.; DE WIT, P.; RAMDASS, K. Operations Management. Southern Africa: Oxford
University Press, 2005.

LIU, G.; SONG, S.; WU, C. Two techniques to improve the NEH algorithm for flow-shop scheduling
problems. Advanced Intelligent Computing Theories and Applications: with aspects of artificial
intelligence, v. 6839, p. 41-48, 2011.

MALIK, A.; DHINGRA, A.K. Comparative analysis of heuristics for makespan minimising in flow
shop scheduling. International Journal of Innovations in Engineering and Technology, v. 2, n.
4, p. 263-269, 2013.

MOCCELLIN, J.V. Introdução à Programação de Operações em Máquinas. São Carlos: USP,


1999.

MOCCELLIN, J.V. Técnicas de Sequenciamento e Programação de Operações em Máquinas.


São Carlos: USP, 1994.

NAGANO, M.S.; BRANCO, F.J.C.; MOCCELLIN, J.V. Soluções de alto desempenho para a
programação da produção flow shop. GEPROS, p. 11-23, 2009.

NAGANO, M.S.; MOCCELLIN, J.V. A high quality solution constructive heuristic for flow shop
sequencing. Journal of the Operational Research Society, v. 53, p. 1374-1379, 2002.

NAWAZ, M.; ENSCORE JR., E.E.; HAM, I. A heuristic algorithm for the m-machine n-job flow-shop
sequencing problem. OMEGA – The International Journal of Management Science, v. 11, n. 1,
p. 91-95, 1983.

NEARCHOU, A.C. Flowshop sequencing using hybrid simulated annealing. Journal of Intelligent
Manufacturing, v. 15, p. 317-328, 2004.

PAGE, E.S. An approach to the scheduling of jobs on machines. Journal of the Royal Statistical
Society, B Series, v. 23, n. 2, p. 484-492, 1961.

PALMER, D. Sequencing jobs through a multi-stage process in the minimum total time - a quick
method of obtaining a near optimum. Operational Research Quarterly, v. 16, n. 1, p. 101-107,
1965.

PARK, Y.B.; PEGDEN, C.D.; ENSCORE, E.E. A survey and evaluation of static flowshop
scheduling heuristics. International Journal of Production Research, v. 22, n. 1, p. 127-141,
1984.

POUR, H.D. A new heuristic for the n-job, m-machine flow-shop problem. Production Planning
and Control, v. 12, n. 7, p. 648-653, 2001.
Introdução ao Sequenciamento da Produção - Hélio Fuchigami ⬧ 129

RAD, S.F.; RUIZ, R.; BOROOJERDIAN, N. New high performing heuristics for minimizing
makespan in permutation flowshops. Omega, v. 37, p. 331-345, 2009.

REEVES, C.R. A genetic algorithm for flowshop sequencing. Computers & Operations
Research, Oxford, v. 22, n. 1, p. 5-13, 1995.

RIBAS, I.; COMPANYS, R.; TORT-MARTORELL, X. Comparing three-step heuristics for the
permutation flow shop problem. Computers & Operations Research, v. 37, p. 2062-2070, 2010.

ROCHA, M.N.; RAGGI, L.A.; SANTOS, H.N. Pesquisa Operacional I. Universidade Federal de
Viçosa, Departamento de Informática, 2005.

ROSSI, F.L.; NAGANO, M.S.; TAVARES NETO, R.F. Evaluation of high performance constructive
heuristics for the flow shop with makespan minimization. The International Journal of Advanced
Manufacturing Technology, p. 1-12, 2016.

RUIZ, R.; MAROTO, C. A comprehensive review and evaluation of permutation flowshop


heuristics. European Journal of Operational Research, v. 165, p. 479-494, 2005.

SEMANCO, P.; MODRÁK, V. A comparison of constructive heuristics with the objective of


minimizing makespan in the flow-shop scheduling problem. Acta Polytechnica Hungarican, v. 9,
n. 5, p. 177-190, 2012.

SIMONS JR., J.V. Heuristics in flow shop scheduling with sequence dependent setup times.
OMEGA – International Journal of Management Science, v. 20, n. 2, p. 215-225, 1992.

STINSON, J.P.; SMITH, A.W. A heuristic programming procedure for sequencing the static
flowshop. International Journal of Production Research, v. 20, n. 6, p. 753-764, 1982.

SULIMAN, S. A two-phase heuristic approach to the permutation flow-shop scheduling problem.


International Journal of Production Economics, v. 64, p. 143-152, 2000.

TAHA, H.A. Pesquisa Operacional: uma visão geral. São Paulo: Pearson Prentice Hall, 2008. 8ª
ed.

TANG, H.-C. Experimental comparison of heuristics for flow shop scheduling. Journal of
Information and Optimization Sciences, v. 23, n. 2, p. 313-321, 2002.

TUBINO, D.F. Manual de Planejamento e Controle da Produção. São Paulo: Atlas, 2006. 2ª ed.

VASILJEVIC, D.; DANILOVIC, M. Handling ties in heuristics for the permutation flow shop
scheduling problem. Journal of Manufacturing Systems, v. 35, p. 1-9, 2015.

YING, K.-C.; LIN, S.-W. A high-performing constructive heuristic for minimizing makespan in
permutation flowshops. Journal of Industrial and Production Engineering, v. 30, n. 6, p. 355-
362, 2013.

YOON, S.H.; LEE, I.S. New constructive heuristics for the total weighted tardiness problem.
Journal of the Operational Research Society, v. 62, p. 232-237, 2011.

Você também pode gostar