PESQUISA OPERACIONAL II
Prof. Dr. Daniel Caetano
2019 - 1
O PROBLEMA DO FLUXO MÁXIMO: MÉTODO DE FORD-FULKERSON
Objetivos
• Compreender o Problema do Fluxo Máximo
• Compreender o método de Ford-Fulkerson
• Compreender o tratamento das incertezas
• Atividade Aula 10 – SAVA!
Material de Estudo
Material Acesso ao Material
Apresentação http://www.caetano.eng.br/ (Pesquisa Operacional II – Aula 10)
Biblioteca Virtual Pesquisa Operacional (Taha) – Seção 6.4
Recursos na Web Algoritmo de Ford-Fulkerson: https://tinyurl.com/y6hjhl5s
O PROBLEMA DO FLUXO MÁXIMO
Problema do Fluxo Máximo
• Escoar a produção por um conjunto de vias
– Quanto é o máximo que consigo levar de A a B?
– Comum em linhas de trem
• Múltiplos caminhos, capacidades diferentes
• Quanto é o fluxo máximo de A a B?
– Água
– Energia
– Gás
• Maximizar fluxo entre os pontos 1 e 6
• Modelo Completo
• F.O.:
• S.A.:
Modelagem Matemática
1
2
3 4
5
6
16
13
14
4 7
20
4
9
12
𝑚𝑎𝑥 𝑥𝑜𝑗𝑗
− 𝑥𝑖𝑜𝑖
𝑥𝑖𝑗𝑖𝑗∈𝐸
− 𝑥𝑗𝑘𝑗𝑘∈𝐸
= 0
𝑥𝑖𝑗 ≤ 𝑐𝑖𝑗
• Método com Complexidade O(v+a)
– Limite em O(a.f)
• Passos
1. Encontrar um caminho viável
2. Descontar da capacidade
3. Acrescentar fluxo reverso
4. Volta para passo 1
Método de Ford-Fulkerson
• Grafo Base + Grafo Residual
– Encontrar caminho no residual
Método de Ford-Fulkerson
0/12
1
2
3 4
5
6
0/16
0/13
0/14
0/4 0/7
0/20
0/4
0/9
12
1
2
3 4
5
6
16
13
14
4 7
20
4
9
• Grafo Base + Grafo Residual
– Encontrar caminho no residual
Método de Ford-Fulkerson
0/12
1
2
3 4
5
6
0/16
0/13
0/14
0/4 0/7
0/20
0/4
0/9
12
1
2
3 4
5
6
16
13
14
4 7
20
4
9
• Grafo Base + Grafo Residual
– Identificar a menor capacidade do caminho
Método de Ford-Fulkerson
0/12
1
2
3 4
5
6
0/16
0/13
0/14
0/4 0/7
0/20
0/4
0/9
12
1
2
3 4
5
6
16
13
14
4 7
20
4
9
• Grafo Base + Grafo Residual
– Alocar no grafo original
Método de Ford-Fulkerson
0/12
1
2
3 4
5
6
0/16
0/13
0/14
0/4 0/7
0/20
0/4
0/9
12
1
2
3 4
5
6
16
13
14
4 7
20
4
9
• Grafo Base + Grafo Residual
– Alocar no grafo original
Método de Ford-Fulkerson
12/12
1
2
3 4
5
6
12/16
0/13
0/14
0/4 0/7
12/20
0/4
0/9
12
1
2
3 4
5
6
16
13
14
4 7
20
4
9
• Grafo Base + Grafo Residual
– Refazer o residual... reduzindo a capacidade...
Método de Ford-Fulkerson
12/12
1
2
3 4
5
6
12/16
0/13
0/14
0/4 0/7
12/20
0/4
0/9
12
1
2
3 4
5
6
16
13
14
4 7
20
4
9
0
1
2
3 4
5
6
4
13
14
4 7
8
4
9
• Grafo Base + Grafo Residual
– Refazer o residual... eliminando arcos zerados...
Método de Ford-Fulkerson
12/12
1
2
3 4
5
6
12/16
0/13
0/14
0/4 0/7
12/20
0/4
0/9
12
1
2
3 4
5
6
16
13
14
4 7
20
4
9
0
1
2
3 4
5
6
4
13
14
4 7
8
4
9
• Grafo Base + Grafo Residual
– Refazer o residual... eliminando arcos zerados...
Método de Ford-Fulkerson
12/12
1
2
3 4
5
6
12/16
0/13
0/14
0/4 0/7
12/20
0/4
0/9
12
1
2
3 4
5
6
16
13
14
4 7
20
4
9
1
2
3 4
5
6
4
13
14
4 7
8
4
9
• Grafo Base + Grafo Residual
– Refazer o residual... adicionando arcos reversos...
Método de Ford-Fulkerson
12/12
1
2
3 4
5
6
12/16
0/13
0/14
0/4 0/7
12/20
0/4
0/9
12
1
2
3 4
5
6
16
13
14
4 7
20
4
9
1
2
3 4
5
6
4
13
14
4 7
8
4
9 12
12
12
• Grafo Base + Grafo Residual
– Encontrar novo caminho no residual...
Método de Ford-Fulkerson
12/12
1
2
3 4
5
6
12/16
0/13
0/14
0/4 0/7
12/20
0/4
0/9 1
2
3 4
5
6
4
13
14
4 7
8
4
9 12
12
12
• Grafo Base + Grafo Residual
– Encontrar novo caminho no residual...
Método de Ford-Fulkerson
12/12
1
2
3 4
5
6
12/16
0/13
0/14
0/4 0/7
12/20
0/4
0/9 1
2
3 4
5
6
4
13
14
4 7
8
4
9 12
12
12
• Grafo Base + Grafo Residual
– Identificar a menor capacidade do caminho
Método de Ford-Fulkerson
12/12
1
2
3 4
5
6
12/16
0/13
0/14
0/4 0/7
12/20
0/4
0/9 1
2
3 4
5
6
4
13
14
4 7
8
4
9 12
12
12
• Grafo Base + Grafo Residual
– Alocar no grafo original
Método de Ford-Fulkerson
12/12
1
2
3 4
5
6
12/16
0/13
0/14
0/4 0/7
12/20
0/4
0/9 1
2
3 4
5
6
4
13
14
4 7
8
4
9 12
12
12
• Grafo Base + Grafo Residual
– Alocar no grafo original
Método de Ford-Fulkerson
12/12
1
2
3 4
5
6
12/16
4/13
4/14
0/4 0/7
12/20
4/4
0/9 1
2
3 4
5
6
4
13
14
4 7
8
4
9 12
12
12
• Grafo Base + Grafo Residual
– Refazer o residual... reduzindo a capacidade...
Método de Ford-Fulkerson
12/12
1
2
3 4
5
6
12/16
4/13
4/14
0/4 0/7
12/20
4/4
0/9 1
2
3 4
5
6
4
13
14
4 7
8
4
9 12
12
12
1
2
3 4
5
6
4
9
10
4 7
8
0
9 12
12
12
• Grafo Base + Grafo Residual
– Refazer o residual... eliminando arcos zerados...
Método de Ford-Fulkerson
12/12
1
2
3 4
5
6
12/16
4/13
4/14
0/4 0/7
12/20
4/4
0/9 1
2
3 4
5
6
4
13
14
4 7
8
4
9 12
12
12
1
2
3 4
5
6
4
9
10
4 7
8
0
9 12
12
12
• Grafo Base + Grafo Residual
– Refazer o residual... eliminando arcos zerados...
Método de Ford-Fulkerson
12/12
1
2
3 4
5
6
12/16
4/13
4/14
0/4 0/7
12/20
4/4
0/9 1
2
3 4
5
6
4
13
14
4 7
8
4
9 12
12
12
1
2
3 4
5
6
4
9
10
4 7
8
9 12
12
12
• Grafo Base + Grafo Residual
– Refazer o residual... adicionando arcos reversos...
Método de Ford-Fulkerson
12/12
1
2
3 4
5
6
12/16
4/13
4/14
0/4 0/7
12/20
4/4
0/9 1
2
3 4
5
6
4
13
14
4 7
8
4
9 12
12
12
1
2
3 4
5
6
4
9
10
4 7
8
9 12
12
12
4
4
4
• Grafo Base + Grafo Residual
– Encontrar novo caminho no residual...
Método de Ford-Fulkerson
12/12
1
2
3 4
5
6
12/16
4/13
4/14
0/4 0/7
12/20
4/4
0/9 1
2
3 4
5
6
4
9
10
4 7
8
9 12
12
12
4
4
4
• Grafo Base + Grafo Residual
– Encontrar novo caminho no residual...
Método de Ford-Fulkerson
12/12
1
2
3 4
5
6
12/16
4/13
4/14
0/4 0/7
12/20
4/4
0/9 1
2
3 4
5
6
4
9
10
4 7
8
9 12
12
12
4
4
4
• Grafo Base + Grafo Residual
– Identificar a menor capacidade do caminho
Método de Ford-Fulkerson
12/12
1
2
3 4
5
6
12/16
4/13
4/14
0/4 0/7
12/20
4/4
0/9 1
2
3 4
5
6
4
9
10
4 7
8
9 12
12
12
4
4
4
• Grafo Base + Grafo Residual
– Alocar no grafo original
Método de Ford-Fulkerson
12/12
1
2
3 4
5
6
12/16
4/13
4/14
0/4 0/7
12/20
4/4
0/9 1
2
3 4
5
6
4
9
10
4 7
8
9 12
12
12
4
4
4
• Grafo Base + Grafo Residual
– Alocar no grafo original
Método de Ford-Fulkerson
12/12
1
2
3 4
5
6
12/16
11/13
11/14
0/4 7/7
19/20
4/4
0/9 1
2
3 4
5
6
4
9
10
4 7
8
9 12
12
12
4
4
4
• Grafo Base + Grafo Residual
– Refazer o residual... reduzindo a capacidade...
Método de Ford-Fulkerson
12/12
1
2
3 4
5
6
12/16
11/13
11/14
0/4 7/7
19/20
4/4
0/9 1
2
3 4
5
6
4
9
10
4 7
8
9 12
12
12
4
4
4
1
2
3 4
5
6
4
2
3
4 0
1
9 12
12
12
4
4
4
• Grafo Base + Grafo Residual
– Refazer o residual... eliminando arcos zerados...
Método de Ford-Fulkerson
12/12
1
2
3 4
5
6
12/16
11/13
11/14
0/4 7/7
19/20
4/4
0/9 1
2
3 4
5
6
4
9
10
4 7
8
9 12
12
12
4
4
4
1
2
3 4
5
6
4
2
3
4 0
1
9 12
12
12
4
4
4
• Grafo Base + Grafo Residual
– Refazer o residual... eliminando arcos zerados...
Método de Ford-Fulkerson
12/12
1
2
3 4
5
6
12/16
11/13
11/14
0/4 7/7
19/20
4/4
0/9 1
2
3 4
5
6
4
9
10
4 7
8
9 12
12
12
4
4
4
1
2
3 4
5
6
4
2
3
4
1
9 12
12
12
4
4
4
• Grafo Base + Grafo Residual
– Refazer o residual... adicionando arcos reversos...
Método de Ford-Fulkerson
12/12
1
2
3 4
5
6
12/16
11/13
11/14
0/4 7/7
19/20
4/4
0/9 1
2
3 4
5
6
4
9
10
4 7
8
9 12
12
12
4
4
4
1
2
3 4
5
6
4
2
3
4
1
9 12
12
12
4
4
4
• Grafo Base + Grafo Residual
– Refazer o residual... adicionando arcos reversos...
Método de Ford-Fulkerson
12/12
1
2
3 4
5
6
12/16
11/13
11/14
0/4 7/7
19/20
4/4
0/9 1
2
3 4
5
6
4
9
10
4 7
8
9 12
12
12
4
4
4
1
2
3 4
5
6
4
2
3
4
1
9 19
12
12
4
4
4
• Grafo Base + Grafo Residual
– Refazer o residual... adicionando arcos reversos...
Método de Ford-Fulkerson
12/12
1
2
3 4
5
6
12/16
11/13
11/14
0/4 7/7
19/20
4/4
0/9 1
2
3 4
5
6
4
9
10
4 7
8
9 12
12
12
4
4
4
1
2
3 4
5
6
4
2
3
4
1
9 19
12
12
4
4
4
7
• Grafo Base + Grafo Residual
– Refazer o residual... adicionando arcos reversos...
Método de Ford-Fulkerson
12/12
1
2
3 4
5
6
12/16
11/13
11/14
0/4 7/7
19/20
4/4
0/9 1
2
3 4
5
6
4
9
10
4 7
8
9 12
12
12
4
4
4
1
2
3 4
5
6
4
2
3
4
1
9 19
12
12
4
11
4
7
• Grafo Base + Grafo Residual
– Refazer o residual... adicionando arcos reversos...
Método de Ford-Fulkerson
12/12
1
2
3 4
5
6
12/16
11/13
11/14
0/4 7/7
19/20
4/4
0/9 1
2
3 4
5
6
4
9
10
4 7
8
9 12
12
12
4
4
4
1
2
3 4
5
6
4
2
3
4
1
9 19
12
12
4
11
11
7
• Grafo Base + Grafo Residual
– Encontrar novo caminho no residual...
Método de Ford-Fulkerson
12/12
1
2
3 4
5
6
12/16
11/13
11/14
0/4 7/7
19/20
4/4
0/9 1
2
3 4
5
6
4
2
3
4
1
9 19
12
12
4
11
11
7
• Caminhos Encontrados
Método de Ford-Fulkerson
12/12
1
2
3 4
5
6
12/16
11/13
11/14
0/4 7/7
19/20
4/4
0/9
EXEMPLO E EXERCÍCIO
• Aplique o método de Ford-Fulkerson
Exemplo
12
1
2
3 4
5
6
16
13
14
7 7
25
10 9
• Aplique o método de Ford-Fulkerson
Exemplo
12/12
1
2
3 4
5
6
12/16
13/13
10/14
0/7 0/7
15/25
10/10 3/9
1
2
3 4
5
6
4
4
7 7
10
10
6 15 12
12
10
13
3
• Aplique o método de Ford-Fulkerson
Exercício
15
1
2
3
4
5
6
12
17
14
7
25
10
9
• Aplique o método de Ford-Fulkerson
Exercício
12/15
1
2
3
4
5
6
12/12
17/17
10/14
0/7
12/25
10/10
7/9
3
1
2
3
4
5
6
12
4
7
13
10
2
12 12
10
17 7
CONCLUSÕES
Resumo
• Fluxo Máximo de uma Rede
– Importante em problemas de escoamento
• Método de Ford-Fulkerson
• TAREFA: Exercícios Aula 10
• Problema do Caixeiro Viajante
– O problema da cobertura dos nós
PERGUNTAS?
EXERCÍCIO
Exercício (para casa)
• Identifique o fluxo máximo
O
2
3
4
5
6
D
15
17
12
10
12
15
4
4 16
12
14
5