universidade federal de campina grande centro de ... · fluxo máximo a custo mínimo min cost max...
TRANSCRIPT
![Page 1: Universidade Federal de Campina Grande Centro de ... · Fluxo Máximo a Custo Mínimo Min Cost Max Flow ... “Saber a quantia mínima em dinheiro que um grupo de amigos precisa dispor](https://reader031.vdocuments.site/reader031/viewer/2022022109/5c45cbeb93f3c34c643f9b9c/html5/thumbnails/1.jpg)
DSC/CEEI/UFCG
Fluxo Máximo a Custo Mínimo
Min Cost Max Flow
Universidade Federal de Campina GrandeCentro de Engenharia Elétrica e InformáticaDepartamento de Sistemas e Computação
Programa de Educação Tutorial (PET)
Demontiê Junior([email protected])
![Page 2: Universidade Federal de Campina Grande Centro de ... · Fluxo Máximo a Custo Mínimo Min Cost Max Flow ... “Saber a quantia mínima em dinheiro que um grupo de amigos precisa dispor](https://reader031.vdocuments.site/reader031/viewer/2022022109/5c45cbeb93f3c34c643f9b9c/html5/thumbnails/2.jpg)
DSC/CEEI/UFCG
Introdução
Conceitos importantes
Apresentação e análise do algoritmo
Exemplo de implementação
Considerações Finais
Agenda
Introdução
Conceitos importantes
Algoritmo de Bellman-Ford
Redes de fluxo
Apresentação e análise do algoritmo
Exemplo de implementação
Considerações Finais
2CST – Fluxo Máximo a Custo
Mínimo – Demontiê Junior
![Page 3: Universidade Federal de Campina Grande Centro de ... · Fluxo Máximo a Custo Mínimo Min Cost Max Flow ... “Saber a quantia mínima em dinheiro que um grupo de amigos precisa dispor](https://reader031.vdocuments.site/reader031/viewer/2022022109/5c45cbeb93f3c34c643f9b9c/html5/thumbnails/3.jpg)
DSC/CEEI/UFCG
Introdução
Conceitos importantes
Apresentação e análise do algoritmo
Exemplo de implementação
Considerações Finais
Introdução
Caracterização do Problema: Encontrar os caminhos de menor custo
que geram o fluxo máximo de uma rede.
Utiliza algoritmos de fluxo máximo e de
menor caminho de origem única.
Cada aresta tem dois atributos: peso e
capacidade
3CST – Fluxo Máximo a Custo
Mínimo – Demontiê Junior
![Page 4: Universidade Federal de Campina Grande Centro de ... · Fluxo Máximo a Custo Mínimo Min Cost Max Flow ... “Saber a quantia mínima em dinheiro que um grupo de amigos precisa dispor](https://reader031.vdocuments.site/reader031/viewer/2022022109/5c45cbeb93f3c34c643f9b9c/html5/thumbnails/4.jpg)
DSC/CEEI/UFCG
Introdução
Conceitos importantes
Apresentação e análise do algoritmo
Exemplo de implementação
Considerações Finais
Introdução
Motivação: Aplicável a vários problemas reais.
Exemplo (variação: fluxo a custo mínimo):
“Saber a quantia mínima em dinheiro que um grupo de amigos precisa dispor para se deslocar entre duas cidades. O transporte será feito por aviões, que seguem determinados trechos (existe apenas um vôo para cada trecho durante todo o período do passeio, mas o tempo do vôo é desprezível). Todos os vôos tem a mesma capacidade, e cada um tem seu custo por pessoa.”
4CST – Fluxo Máximo a Custo
Mínimo – Demontiê Junior
![Page 5: Universidade Federal de Campina Grande Centro de ... · Fluxo Máximo a Custo Mínimo Min Cost Max Flow ... “Saber a quantia mínima em dinheiro que um grupo de amigos precisa dispor](https://reader031.vdocuments.site/reader031/viewer/2022022109/5c45cbeb93f3c34c643f9b9c/html5/thumbnails/5.jpg)
DSC/CEEI/UFCG
Introdução
Conceitos importantes
Apresentação e análise do algoritmo
Exemplo de implementação
Considerações Finais
Introdução
Objetivos:
Apresentar um algoritmo para resolução do problema de Fluxo Máximo a Custo Mínimo
Mostrar a importância do conhecimento desse tipo de algoritmos para a resolução de problemas reais
5CST – Fluxo Máximo a Custo
Mínimo – Demontiê Junior
![Page 6: Universidade Federal de Campina Grande Centro de ... · Fluxo Máximo a Custo Mínimo Min Cost Max Flow ... “Saber a quantia mínima em dinheiro que um grupo de amigos precisa dispor](https://reader031.vdocuments.site/reader031/viewer/2022022109/5c45cbeb93f3c34c643f9b9c/html5/thumbnails/6.jpg)
DSC/CEEI/UFCG
Conceitos Importantes
![Page 7: Universidade Federal de Campina Grande Centro de ... · Fluxo Máximo a Custo Mínimo Min Cost Max Flow ... “Saber a quantia mínima em dinheiro que um grupo de amigos precisa dispor](https://reader031.vdocuments.site/reader031/viewer/2022022109/5c45cbeb93f3c34c643f9b9c/html5/thumbnails/7.jpg)
DSC/CEEI/UFCG
Introdução
Conceitos importantes
Apresentação e análise do algoritmo
Exemplo de implementação
Considerações Finais
Contextualizando...
O que é um grafo?
Dois tipos de elementos: vértices e arestas
De maneira mais formal, grafos são tuplas do tipo G = <V, E>:
V é o conjunto finito, não vazio, de vértices
E é o conjunto finito de arestas
Se Ǝ e = {v, w} | e ∈ E, então, dizemos que
e é incidente a v e w, bem como v e w são adjacentes
7CST – Fluxo Máximo a Custo
Mínimo – Demontiê Junior
![Page 8: Universidade Federal de Campina Grande Centro de ... · Fluxo Máximo a Custo Mínimo Min Cost Max Flow ... “Saber a quantia mínima em dinheiro que um grupo de amigos precisa dispor](https://reader031.vdocuments.site/reader031/viewer/2022022109/5c45cbeb93f3c34c643f9b9c/html5/thumbnails/8.jpg)
DSC/CEEI/UFCG
Introdução
Conceitos importantes
Apresentação e análise do algoritmo
Exemplo de implementação
Considerações Finais
Menor caminho de origem única
Em que consiste?
Encontrar os menores caminhos entre um vértice inicial e todos os outros vértices de um grafo
Utiliza grafos valorados
Algoritmos mais famosos:
Dijkstra
Bellman-Ford
Floyd-Warshall
8CST – Fluxo Máximo a Custo
Mínimo – Demontiê Junior
![Page 9: Universidade Federal de Campina Grande Centro de ... · Fluxo Máximo a Custo Mínimo Min Cost Max Flow ... “Saber a quantia mínima em dinheiro que um grupo de amigos precisa dispor](https://reader031.vdocuments.site/reader031/viewer/2022022109/5c45cbeb93f3c34c643f9b9c/html5/thumbnails/9.jpg)
DSC/CEEI/UFCG
Introdução
Conceitos importantes
Apresentação e análise do algoritmo
Exemplo de implementação
Considerações Finais
Algoritmo de Bellman-Ford
Bellman-Ford(G, w, s)for ∀u ∈ V[G] do
d[u] ← ∞
π[u] ← NIL
d[s] ← 0
for i 1 to |V[G]| - 1 dofor ∀(u, v) ∈ E[G] do
if d[v] > d[u] + w(u,v) then
d[v] ← d[u] + w(u,v)
π[v] ← ufor ∀(u, v) ∈ E[G] do
if d[v] > d[u] + w(u, v) then
return FALSE
return TRUE
Relaxamento
Inicia as variáveis
Checa a presença
de ciclo negativo
9CST – Fluxo Máximo a Custo
Mínimo – Demontiê Junior
![Page 10: Universidade Federal de Campina Grande Centro de ... · Fluxo Máximo a Custo Mínimo Min Cost Max Flow ... “Saber a quantia mínima em dinheiro que um grupo de amigos precisa dispor](https://reader031.vdocuments.site/reader031/viewer/2022022109/5c45cbeb93f3c34c643f9b9c/html5/thumbnails/10.jpg)
DSC/CEEI/UFCG
Introdução
Conceitos importantes
Apresentação e análise do algoritmo
Exemplo de implementação
Considerações Finais
Redes de fluxo
O que são redes de fluxo?
Cada aresta tem uma capacidade (fluxo máximo nessa aresta)
Possui dois vértices especiais: fonte (f) e sovedouro (s)
∀v ∈ V, existe um caminho entre f e s
passando por v
10CST – Fluxo Máximo a Custo
Mínimo – Demontiê Junior
![Page 11: Universidade Federal de Campina Grande Centro de ... · Fluxo Máximo a Custo Mínimo Min Cost Max Flow ... “Saber a quantia mínima em dinheiro que um grupo de amigos precisa dispor](https://reader031.vdocuments.site/reader031/viewer/2022022109/5c45cbeb93f3c34c643f9b9c/html5/thumbnails/11.jpg)
DSC/CEEI/UFCG
Introdução
Conceitos importantes
Apresentação e análise do algoritmo
Exemplo de implementação
Considerações Finais
Redes de fluxo
Exemplo:
F
V
X
W
Y
S
16
13
10 4
12
9
14
4
7
20
11CST – Fluxo Máximo a Custo
Mínimo – Demontiê Junior
![Page 12: Universidade Federal de Campina Grande Centro de ... · Fluxo Máximo a Custo Mínimo Min Cost Max Flow ... “Saber a quantia mínima em dinheiro que um grupo de amigos precisa dispor](https://reader031.vdocuments.site/reader031/viewer/2022022109/5c45cbeb93f3c34c643f9b9c/html5/thumbnails/12.jpg)
DSC/CEEI/UFCG
Introdução
Conceitos importantes
Apresentação e análise do algoritmo
Exemplo de implementação
Considerações Finais
Considere c(e) a função capacidade de e, e ∈ E
A rede residual de uma rede R é um grafo R = <V, Eresidual>, tal que:
∀e ∈ E, Ǝ uma eresidual cuja capacidade
é cresidual
cresidual(e) = c(e) – fluxo(e)
12CST – Fluxo Máximo a Custo Mínimo –
Demontiê Junior
Rede residual
![Page 13: Universidade Federal de Campina Grande Centro de ... · Fluxo Máximo a Custo Mínimo Min Cost Max Flow ... “Saber a quantia mínima em dinheiro que um grupo de amigos precisa dispor](https://reader031.vdocuments.site/reader031/viewer/2022022109/5c45cbeb93f3c34c643f9b9c/html5/thumbnails/13.jpg)
DSC/CEEI/UFCG
Introdução
Conceitos importantes
Apresentação e análise do algoritmo
Exemplo de implementação
Considerações Finais
Rede residual
Rede residual após um fluxo de 4 no caminho FXYS
F
V
X
W
Y
S
16
9
10 4
12
9
10
0
7
20
13CST – Fluxo Máximo a Custo
Mínimo – Demontiê Junior
4
4
4
![Page 14: Universidade Federal de Campina Grande Centro de ... · Fluxo Máximo a Custo Mínimo Min Cost Max Flow ... “Saber a quantia mínima em dinheiro que um grupo de amigos precisa dispor](https://reader031.vdocuments.site/reader031/viewer/2022022109/5c45cbeb93f3c34c643f9b9c/html5/thumbnails/14.jpg)
DSC/CEEI/UFCG
Introdução
Conceitos importantes
Apresentação e análise do algoritmo
Exemplo de implementação
Considerações Finais
Algoritmo de fluxo máximo
Ford-Fulkerson
Rede residual
Caminho expandível
(*) capacidade do arco de menor capacidade de p
Ford-Fulkerson(G, s, t)for ∀e ∈ E[G] do
fluxo[e] ← 0
while exisitr um caminho expandível p na rede residual doaumentar f (*) ao longo de p
return f
14CST – Fluxo Máximo a Custo
Mínimo – Demontiê Junior
![Page 15: Universidade Federal de Campina Grande Centro de ... · Fluxo Máximo a Custo Mínimo Min Cost Max Flow ... “Saber a quantia mínima em dinheiro que um grupo de amigos precisa dispor](https://reader031.vdocuments.site/reader031/viewer/2022022109/5c45cbeb93f3c34c643f9b9c/html5/thumbnails/15.jpg)
DSC/CEEI/UFCG
Apresentação e análise do algoritmo
![Page 16: Universidade Federal de Campina Grande Centro de ... · Fluxo Máximo a Custo Mínimo Min Cost Max Flow ... “Saber a quantia mínima em dinheiro que um grupo de amigos precisa dispor](https://reader031.vdocuments.site/reader031/viewer/2022022109/5c45cbeb93f3c34c643f9b9c/html5/thumbnails/16.jpg)
DSC/CEEI/UFCG
Introdução
Conceitos importantes
Apresentação e análise do algoritmo
Exemplo de implementação
Considerações Finais
Fluxo Máximo a Custo Mínimo
“Por que não encontrar os menores caminhos com Dijkstra e, simplesmente, sair distribuindo o fluxo?”
Temos que gerar, sempre, a rede residual, para que não seja encontrado um fluxo diferente do máximo
Quando geramos a rede residual, temos que modificar, também, os custos das arestas
Algumas vezes invertemos o custo de uma aresta
Dijkstra não funciona bem com pesos negativos
16CST – Fluxo Máximo a Custo
Mínimo – Demontiê Junior
![Page 17: Universidade Federal de Campina Grande Centro de ... · Fluxo Máximo a Custo Mínimo Min Cost Max Flow ... “Saber a quantia mínima em dinheiro que um grupo de amigos precisa dispor](https://reader031.vdocuments.site/reader031/viewer/2022022109/5c45cbeb93f3c34c643f9b9c/html5/thumbnails/17.jpg)
DSC/CEEI/UFCG
Introdução
Conceitos importantes
Apresentação e análise do algoritmo
Exemplo de implementação
Considerações Finais
Exemplo
CST – Fluxo Máximo a Custo Mínimo –
Demontiê Junior
17
Fluxo Máximo a Custo Mínimo
F
V
X
W
Y
S
16
13
12
9
14
4
2020
20
1
20
20
20
20
![Page 18: Universidade Federal de Campina Grande Centro de ... · Fluxo Máximo a Custo Mínimo Min Cost Max Flow ... “Saber a quantia mínima em dinheiro que um grupo de amigos precisa dispor](https://reader031.vdocuments.site/reader031/viewer/2022022109/5c45cbeb93f3c34c643f9b9c/html5/thumbnails/18.jpg)
DSC/CEEI/UFCG
Introdução
Conceitos importantes
Apresentação e análise do algoritmo
Exemplo de implementação
Considerações Finais
Exemplo
CST – Fluxo Máximo a Custo Mínimo –
Demontiê Junior
18
Fluxo Máximo a Custo Mínimo
F
V
X
W
Y
S
16
13
12
9
14
4
2020
20
1
20
20
20
20
ERRADO
![Page 19: Universidade Federal de Campina Grande Centro de ... · Fluxo Máximo a Custo Mínimo Min Cost Max Flow ... “Saber a quantia mínima em dinheiro que um grupo de amigos precisa dispor](https://reader031.vdocuments.site/reader031/viewer/2022022109/5c45cbeb93f3c34c643f9b9c/html5/thumbnails/19.jpg)
DSC/CEEI/UFCG
Introdução
Conceitos importantes
Apresentação e análise do algoritmo
Exemplo de implementação
Considerações Finais
Exemplo
CST – Fluxo Máximo a Custo Mínimo –
Demontiê Junior
19
Fluxo Máximo a Custo Mínimo
F
V
X
W
Y
S
16
13
12
9
14
4
2020
20
1
20
20
20
20
CORRETO
![Page 20: Universidade Federal de Campina Grande Centro de ... · Fluxo Máximo a Custo Mínimo Min Cost Max Flow ... “Saber a quantia mínima em dinheiro que um grupo de amigos precisa dispor](https://reader031.vdocuments.site/reader031/viewer/2022022109/5c45cbeb93f3c34c643f9b9c/html5/thumbnails/20.jpg)
DSC/CEEI/UFCG
Introdução
Conceitos importantes
Apresentação e análise do algoritmo
Exemplo de implementação
Considerações Finais
20CST – Fluxo Máximo a Custo Mínimo –
Demontiê Junior
MinCostMaxFlow(G, s, t)for ∀e ∈ E[G] do
fluxo[e] ← 0
redeResidual ← Gcusto ← 0
while exisitr um caminho entre F e S (rodar Bellman-Fordpara encontra menor caminho F S (*)) do
atualizar custoaumentar fluxo ao longo do caminho cgerar rede residual, modificando o custo das arestas
return fluxo, custo
O algoritmo
(*) o Bellman-Ford roda em cima da rede residual
![Page 21: Universidade Federal de Campina Grande Centro de ... · Fluxo Máximo a Custo Mínimo Min Cost Max Flow ... “Saber a quantia mínima em dinheiro que um grupo de amigos precisa dispor](https://reader031.vdocuments.site/reader031/viewer/2022022109/5c45cbeb93f3c34c643f9b9c/html5/thumbnails/21.jpg)
DSC/CEEI/UFCG
Introdução
Conceitos importantes
Apresentação e análise do algoritmo
Exemplo de implementação
Considerações Finais
Analisando o algoritmo
Análise do Bellman-Ford
Ordem de complexidade: (|V|.|E|)
Análise do Ford-Fulkerson
Ordem de complexidade: O(E.|f*|)
Na implementação de Edmonds-Karp, utilizando busca em largura: O(V.E²)
21CST – Fluxo Máximo a Custo
Mínimo – Demontiê Junior
![Page 22: Universidade Federal de Campina Grande Centro de ... · Fluxo Máximo a Custo Mínimo Min Cost Max Flow ... “Saber a quantia mínima em dinheiro que um grupo de amigos precisa dispor](https://reader031.vdocuments.site/reader031/viewer/2022022109/5c45cbeb93f3c34c643f9b9c/html5/thumbnails/22.jpg)
DSC/CEEI/UFCG
Introdução
Conceitos importantes
Apresentação e análise do algoritmo
Exemplo de implementação
Considerações Finais
Analisando o algoritmo
Análise do Fluxo Máximo a Custo Mínimo
MinCostMaxFlow = O(V.E²)
22CST – Fluxo Máximo a Custo
Mínimo – Demontiê Junior
MinCostMaxFlow(G, s, t)for ∀e ∈ E[G] do
fluxo[e] ← 0
redeResidual ← Gcusto ← 0
while exisitr um caminho entre F e S (rodar Bellman-Fordpara encontra menor caminho F S (*)) do
atualizar custoaumentar fluxo ao longo do caminho cgerar rede residual, modificando o custo das arestas
return fluxo, custo
O(E)
O(|f*|.E.V)
O(E)
![Page 23: Universidade Federal de Campina Grande Centro de ... · Fluxo Máximo a Custo Mínimo Min Cost Max Flow ... “Saber a quantia mínima em dinheiro que um grupo de amigos precisa dispor](https://reader031.vdocuments.site/reader031/viewer/2022022109/5c45cbeb93f3c34c643f9b9c/html5/thumbnails/23.jpg)
DSC/CEEI/UFCG
Introdução
Conceitos importantes
Apresentação e análise do algoritmo
Exemplo de implementação
Considerações Finais
Exemplo de Implementação
Código Java que responde ao exemplo citado
23CST – Fluxo Máximo a Custo
Mínimo – Demontiê Junior
![Page 24: Universidade Federal de Campina Grande Centro de ... · Fluxo Máximo a Custo Mínimo Min Cost Max Flow ... “Saber a quantia mínima em dinheiro que um grupo de amigos precisa dispor](https://reader031.vdocuments.site/reader031/viewer/2022022109/5c45cbeb93f3c34c643f9b9c/html5/thumbnails/24.jpg)
DSC/CEEI/UFCG
Introdução
Conceitos importantes
Apresentação e análise do algoritmo
Exemplo de implementação
Considerações Finais
Prof. Jorge Figueiredo, notas de aula 6 e 10;
CORMEN, THOMAS H., Introduction To Algorithms 2.ed. MIT PRESS, 2001
http://www.slideshare.net/rafaelspereira/fluxo-a-custo-mnimo-1828149
http://courses.csail.mit.edu/6.854/06/scribe/s12-minCostFlowAlg.pdf
CST – Fluxo Máximo a Custo Mínimo –
Demontiê Junior
24
Referências
![Page 25: Universidade Federal de Campina Grande Centro de ... · Fluxo Máximo a Custo Mínimo Min Cost Max Flow ... “Saber a quantia mínima em dinheiro que um grupo de amigos precisa dispor](https://reader031.vdocuments.site/reader031/viewer/2022022109/5c45cbeb93f3c34c643f9b9c/html5/thumbnails/25.jpg)
DSC/CEEI/UFCG
Introdução
Conceitos importantes
Apresentação e análise do algoritmo
Exemplo de implementação
Considerações Finais
CST – Fluxo Máximo a Custo Mínimo –
Demontiê Junior
25
Dúvidas?