Professional Documents
Culture Documents
Formulação
• Definição das variáveis:
xij quantidade de tomate, em toneladas, a transportar da quinta i
(A,B) para o cliente j (P,Q,R) [ton]
F custo global de transporte da colheita [€]
• Função objectivo:
Min F = 200 x AP + 250 x AQ + 220 x AR + 240 xBP + 190 xBQ + 180 xBR
• Restrições:
Nuno Moreira - 2002/2003
x AP + x AQ + x AR ≤ 200 x AP + x AQ + x AR + x AF = 200
xBP + xBQ + xBR ≤ 300 xBP + xBQ + xBR + xBF = 300
x AP + xBP = 100 x AP + xBP = 100
x AQ + xBQ = 200 x AQ + xBQ = 200
x AR + xBR = 150 x AR + xBR = 150
xij ≥ 0 xij ≥ 0
54
27
Problema de Transportes – Formulação
• Definição das variáveis:
cij custo unitário de transporte de i para j
xij quantidade a transportar de i para j
F custo global do transporte
• Função objectivo:
Min F = ∑ ∑ cij ⋅ xij
i j
• Restrições: Problema com:
Nuno Moreira - 2002/2003
m origens
∑ xij = Oi n destinos
j
∑ xij = Pj (m x n) variáveis
i
(m + n –1) restrições linearmente
xij ≥ 0 independentes
(m + n –1) variáveis básicas
55
Problema de Transportes
• Resolução pelo simplex
0 1 4 0 0 1 4 0 4 0 1 4 0 P2 v2
6 6 6 6 6 6 6 6 6 6
0 0 4 1 0 0 4 1 4 0 0 4 1 Pn vn
-F c11 c12 4 cin c21 C22 4 c2n 4 cm1 cm2 4 cmn 0
-F c11 c12 4 c1n c21 c22 4 c2n 4 cm1 cm2 4 cmn
-u1-v1 -u1-v2 -u1-vn -u2-v1 -u2-v2 -u2-vn -um-v1 -um-v2 -um-v2
28
Algoritmo dos Transportes
1º - Equilibrar o Problema
57
29
Algoritmo dos Transportes
2º b) - Encontrar uma solução inicial possível
Método dos Custos mínimos
2.1 – Seleccionar a variável “livre” com custo unitário mais baixo
2.2 – Atribuir o máximo possível a essa variável
2.3 – Se existirem variáveis “livres” voltar ao passo 2.1
2.4 – Verificar o número de variáveis básicas e definir variáveis básicas nulas se
necessário
P Q R Fict Oferta
Nuno Moreira - 2002/2003
100 50 – 50
2 linhas A 200t
200 250 220 0
4 colunas
8 variáveis
– 150 150 –
B 300t
2+4-1 = 5 variáveis 220 190 180 0
básicas
Procura 100t 200t 150t 50t 500t
F = 100x200+50x250+50x0+150x190+150x180 = 88 000 € 59
P Q R Fict Oferta
Nuno Moreira - 2002/2003
100 50 – 50
A 200t uA=0
200 250 220 0
– 150 150 –
B 300t uB=-60
220 190 180 0
30
Algoritmo dos Transportes
4º – Calcular C’ij e verificar se a solução é óptima
4.1 – Para as variáveis não básicas calcular c’ij através da expressão:
c’ij=cij-ui-vj
4.2 – A solução é óptima se ao minimizar/maximizar todos os coeficientes
c’ij forem positivos/negativos ou nulos
c’AR = cAR-uA-vR =220-0-240 = -20 c’AR<0 => solução não é
c’BP = cBP-uB-vP = 220-(-60)-200 = 80 óptima
c’BF = cBF-uB-vF = 0-(-60)-0 = 60
Nuno Moreira - 2002/2003
P Q R Fict Oferta
100 50 – 50
A 200t uA=0
200 250 220 0
– 150 150 –
B 300t uB=-60
220 190 180 0
P Q R Fict Oferta
100 50- ∆ – + ∆ 50
A 200t uA=0
200 250 220 0
– 150+∆ 150- ∆ –
B 300t uB=-60
220 190 180 0
∆ max=50
Procura 100t 200t 150t 50t 500t
62
vP=200 vQ=250 vR=240 vF=0
31
Algoritmo dos Transportes
3º – Calcular ui e vj tal que cij-ui-vj=0 se xij é variável básica
4º – Calcular c’ij=cij-ui-vj e verificar se a solução é óptima
P Q R Fict Oferta
100 – 50 50
A 200t uA=0
200 250 220 0
– 200 100 –
B 300t uB=-40
Nuno Moreira - 2002/2003
F = 100x200+50x220+50x0+200x190+100x180 = 87 000 € 63
P Q R Fict Oferta
100 – 50 50
A 200t uA=0
200 250 220 0
– 200 100 –
B 300t uB=-40
Nuno Moreira - 2002/2003
64
32
Algoritmo dos Transportes – Análise Sensibilidade
Devido à queda de uma ponte não é possível efectuar a ligação entre a Quinta da Alfarroba
e a fábrica da Ressumo. A solução mantém-se? Qual a nova solução?
65
xAR ≥ 0 ⇒ 50- ∆ ≥ 0
solução possível enquanto -50 ≤ ∆ ≤ 50
xAF ≥ 0 ⇒ 50+∆ ≥ 0
xBR ≥ 0 ⇒ 100+∆ ≥ 0 250t ≤ OB ≤ 350t
33
Casos Particulares de PL
A Corrida de Carros
O André, o Bernardo, o Carlos, o Daniel e o Eduardo formam
uma equipa que vai fazer uma corrida de carros em 5 etapas em
que cada um executa uma das etapas. Durante os treinos, os
tempos obtidos por cada um em cada uma das etapas foram os
representados no quadro seguinte. Qual a etapa que cada um deve
executar de forma a obter o menor tempo de corrida para a
Nuno Moreira - 2002/2003
equipa?
André Bernardo Carlos Daniel Eduardo
Etapa 1 11 12 9 11 13
Etapa 2 9 8 10 7 11
Etapa 3 8 10 6 9 12
Etapa 4 5 9 7 6 8
Etapa 5 7 7 5 8 9
67
Formulação
• Definição das variáveis:
xij variável binária de afectação da etapa i (1,2,3,4,5) ao elemento
da equipa j (A,B,C,D,E) (=1 o elemento j executa a etapa i; =0 o
elemento j não realiza a etapa i)
F tempo da equipa para realizar a corrida
• Função objectivo: Min F = 11x1 A + 12 x1B + 9 x1C + 11x1D + 13x1E +
+ 9 x2 A + 8 x2 B + 10 x2C + 7 x2 D + 11x2 E
+ 8 x3 A + 10 x3 B + 6 x3C + 9 x3 D + 12 x3 E
+ 5 x4 A + 9 x 4 B + 7 x4 C + 6 x 4 D + 8 x4 E
Nuno Moreira - 2002/2003
• Restrições:
+ 7 x5 A + 7 x5 B + 5 x5C + 8 x5 D + 9 x5 E
34
Problema de Afectação – Formulação
• Definição das variáveis:
cij
custo de execução da tarefa i pelo elemento j
xij
variável binária (=1 tarefa i executada por j; =0 tarefa i não é
executada por j)
F custo total da afectação
• Função objectivo: Problema com:
n tarefas
Min F = ∑ ∑ cij ⋅ xij
Nuno Moreira - 2002/2003
i j n elementos
• Restrições: (n x n) variáveis
∑ xij = 1 Resolução
j
∑ xij = 1 •Simplex
i
•Algoritmo Transportes
xij ∈ {0;1}
•Algoritmo Húngaro
69
5 7 7 5 8 9 2 7+ 2 0 3 0 1
A B C D E 3 6+ 2 3 0 3 3
1 9+ 2 3 0 2 4 4 5+ 0 3 2 1 0
2 7+ 2 1 3 0 4 5 5+ 2 1 0 3 1
3 6+ 2 4 0 3 6 Σ 32 36
4 5+ 0 4 2 1 3 Deverá resultar uma matriz com pelo menos um zero
em cada linha e em cada coluna.
5 5+ 2 2 0 3 4
Será possível seleccionar um zero em cada linha e 70
Σ 32 coluna ?
35
Algoritmo Húngaro
3º) Tentar afectar uma tarefa a cada elemento
3.1 Seleccionar a linha com menor número de zeros, enquadrar um e eliminar
os restantes zeros da linha e da coluna do zero enquadrado
3.2 Repetir 3.1 até não existir mais nenhum zero “livre”
3.3 Se foi enquadrado um zero por cada linha e por cada coluna então a
solução é uma solução óptima.
Nuno Moreira - 2002/2003
A B C D E
0+ 1+ 0+ 0+ 3+ 1º
1 9+ 2 2 0 2 1 2º
2 7+ 2 0 3
X
0 1 3º
X
3 6+ 2 3 0 3 3 Foram escolhidos 3 zeros dos 5 necessários
∴ a solução não é óptima
X
4 5+ 0 3 2 1 0
X
5 5+ 2 1 0 3 1
71
Algoritmo Húngaro
4º) Gerar mais zeros na matriz
4.1 Cortar com tantas rectas como o número de zeros enquadrados no passo
anterior todos os zeros da matriz
4.2 Escolher o menor valor da matriz do conjunto de elementos não cortados
pelas rectas anteriores como elemento pivot
4.3 Subtrair o elemento pivot a todas as colunas (ou linhas) e adicionar o
elemento pivot em cada uma das rectas do passo 4.1.
4.4 Voltar ao 3º passo
A B C D E A B C D E Σ
Nuno Moreira - 2002/2003
0+ 1+ 0+ 0+ 3+ 1+ 2+ 0+ 1+ 4+ 8
A B C D E
1 9+ 2 2 0 2 1 1 9+ 1 1 0 1 0
X
2 7+ 2 0 3 0 1 1 -P -P -P -P
2 6+ 2 0 4 0 1
X
3 6+ 2 3 0 3 3 2 +P 3 6+ 1 2 0 2 2
X 3 -P -P -P -P
4 5+ 0 3 2 1 0 4 4+ 0 3 3 1 0
X 4 +P
5 5+ 2 1 0 3 1 5 -P -P -P -P
5 5+ 1 0 0 2 0
Σ 30 38
Cortar todos os zeros com três rectas
72
36
Algoritmo Húngaro
3º Tentar afectar uma tarefa a cada elemento
A B C D E Σ A B C D E
1+ 2+ 0+ 1+ 4+ 8 1 11 12 9 11 13
X
1 9+ 1 1 0 1 0 2 9 8 10 7 11
X
2 6+ 2 0 4 0 1 1º 3 8 10 6 9 12
3 6+ 1 2 0 2 2 2º 4 5 9 7 6 8
X
4 4+ 0 3 3 1 0 3º 5 7 7 5 8 9
Nuno Moreira - 2002/2003
5 5+ 1 0
X
0 2
X
0 4º
5º
Σ 30 38 1ª Etapa – Eduardo Tempo 13
37