Title: Flow Shop Scheduling
1Flow Shop Scheduling
- Grupo
- Leandro Lopes
- Marcelo Henrique Dias
2Tópicos
- Descrição do problema
- Modelagem
- Implementação (!)
3Descrição do problema
Há um conjunto de n jobs e m máquina cada job
possui um certo número de operações
Ex
JOB 1? M1(2) M2(2) M3(4)
JOB 2? M1(3) M2(1) M3(1)
JOB 3? M1(2) M2(3) M3(2)
4Descrição do problema
Objetivo
Diminuir o makespan, ou seja, a duração total da
programação
5Modelagem
Para representar as operações dos jobs,
utilizamos a seguinte estrutura
JOB M1 M2 M3 SOMA
1 2 2 4 8
2 3 1 1 5
3 2 3 2 7
6Modelagem
Para representar as alocações dos jobs, temos a
estrutura
1 2 3 4 5 6 7 8 9 10 11 12
M1 1 1
M2 1 1
M3
7Modelagem
Será necessária uma matriz para auxiliar nas
alocações dos jobs
JOB Última Máquina Última Posição
1
2
3
1
2
8Modelagem
Construção da solução inicial
- Método guloso
- Aloca sempre a operação do job com a maior
- soma de tempos
JOB M1 M2 M3 SOMA
1 2 2 4 8
2 3 1 1 5
3 2 3 2 7
9Modelagem
Características
- Não há possibilidade de inviabilidades
- Sobreposição
- Alocação de operações em ordem não permitida
1 2 3 4 5 6 7 8 9 10 11 12
M1 1 1 1
M2 1 1
M3
10Modelagem
Função objetivo
- Como não há inviabilidade
- A função objetivo será apenas o tempo
- total da duração da programação.
1 2 3 4 5 6 7 8 9 10 11 12
M1 1 1 3 3 2 2 2
M2 1 1 3 3 3 2
M3 1 1 1 1 3 3 2
11Modelagem
Movimentos
Apenas são aceitos movimentos na máquina 1
1 2 3 4 5 6 7 8 9 10 11 12
M1 1 1 3 3 2 2 2
M2 1 1 3 3 3 2
M3 1 1 1 1 3 3 2
1 2 3 4 5 6 7 8 9 10 11 12
M1 2 2 2
M2
M3
12Modelagem
Heurística
Vizinhança
- Para cada job, movimentar a operação da máquina
1 - em todas as possíveis posições da própria
maquina 1
13Modelagem
Vizinhança
1 2 3 4 5 6 7 8 9 10 11 12
M1 1 1 3 3 2 2 2
M2 1 1 3 3 3 2
M3 1 1 1 1 3 3 2
1 2 3 4 5 6 7 8 9 10 11 12
M1 2 2 2
M2
M3
14Modelagem
Vizinhança
1 2 3 4 5 6 7 8 9 10 11 12
M1 1 1 3 3 2 2 2
M2 1 1 3 3 3 2
M3 1 1 1 1 3 3 2
1 2 3 4 5 6 7 8 9 10 11 12
M1 2 2 2
M2
M3
15Modelagem
Vizinhança
1 2 3 4 5 6 7 8 9 10 11 12
M1 1 1 3 3 2 2 2
M2 1 1 3 3 3 2
M3 1 1 1 1 3 3 2
1 2 3 4 5 6 7 8 9 10 11 12
M1 2 2 2
M2
M3
16Modelagem
Vizinhança
1 2 3 4 5 6 7 8 9 10 11 12
M1 1 1 3 3 2 2 2
M2 1 1 3 3 3 2
M3 1 1 1 1 3 3 2
1 2 3 4 5 6 7 8 9 10 11 12
M1 2 2 2
M2
M3
17Modelagem
Vizinhança
Para cada vizinho de um job x encontrado,
construir a solução e encontrar a
Fo-job. Guardar então o movimento na estrutura a
seguir
vizinhos_job vizinhos_job vizinhos_job
Pi Pf Fo
18Modelagem
Vizinhança
Quando toda vizinhança com aquele job x estiver
completa, encontrar na estrutura vizinho_job o
movimento com melhor Fo Gravar então o movimento
na matriz de melhores vizinhos gerais
vizinho_geral vizinho_geral vizinho_geral
Pi Pf Fo
19Modelagem
Vizinhança
Com a matriz vizinho_geral completa, encontrar O
melhor movimento, observando a Fo. Se o mesmo for
melhor que o Fo_star, Fo_star ? Fo
20Modelagem
Vizinhança
1 2 3 4 5 6 7 8 9 10 11 12
M1 1 1 3 3 2 2 2
M2 1 1 3 3 3 2
M3 1 1 1 1 3 3 2
X
1 2 3 4 5 6 7 8 9 10 11 12
M1 2 2 2
M2
M3
21Modelagem
Lista Tabu
Utilizamos um matriz para guardar os movimentos
proibidos
JOB Pi (Posição Inicial)
2 5
. . .
22Modelagem
JOB M1 M2 M3 SOMA
1 2 2 4 8
2 3 1 1 5
3 2 3 2 7
Exemplo
1 2 3 4 5 6 7 8 9 10 11 12
M1
M2
M3
1 1
3 3
2 2 2
1 1
3 3 3
2
1 1 1 1
3 3
2
23Implementação
Comentários
24Flow Shop Scheduling
Obrigado pela atenção