SlideShare une entreprise Scribd logo
1  sur  25
Télécharger pour lire hors ligne
Universidade Federal de Campina Grande
              Centro de Engenharia Elétrica e Informática
               Departamento de Sistemas e Computação
                 Programa de Educação Tutorial (PET)



                                                Demontiê Junior
                                            (demontie@dsc.ufcg.edu.br)




Fluxo Máximo a Custo Mínimo
Min Cost Max Flow

    DSC/CEEI/UFCG
Agenda
Introdução             Introdução
Conceitos


                        Conceitos importantes
importantes
Apresentação      e
análise do
algoritmo                   Algoritmo de Bellman-Ford
Exemplode
implementação
                            Redes de fluxo
Considerações


                         Apresentação e análise do algoritmo
Finais
                       
                        Exemplo de implementação
                        Considerações Finais
   DSC/CEEI/UFCG




                                   CST – Fluxo Máximo a Custo   2
                                    Mínimo – Demontiê Junior
Introdução
Introdução
                        Caracterização              do Problema:
Conceitos
importantes
Apresentação      e
                           Encontrar os caminhos de menor custo
análise do
algoritmo                   que geram o fluxo máximo de uma rede.
Exemplode
implementação
Considerações
Finais                     Utiliza algoritmos de fluxo máximo e de
                            menor caminho de origem única.

                           Cada aresta tem dois atributos: peso e
   DSC/CEEI/UFCG
                            capacidade

                                  CST – Fluxo Máximo a Custo         3
                                   Mínimo – Demontiê Junior
Introdução
Introdução               Motivação:
Conceitos
importantes                  Aplicável a vários problemas reais.
Apresentação      e
análise do                   Exemplo (variação: fluxo a custo mínimo):
algoritmo
Exemplode                      “Saber a quantia mínima em dinheiro que
implementação
Considerações
                           um grupo de amigos precisa dispor para se
Finais                     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
   DSC/CEEI/UFCG           tem a mesma capacidade, e cada um tem seu
                           custo por pessoa.”
                                    CST – Fluxo Máximo a Custo         4
                                     Mínimo – Demontiê Junior
Introdução
Introdução               Objetivos:
Conceitos
importantes
                              Apresentar um algoritmo para resolução
Apresentação      e
análise do
algoritmo
                               do problema de Fluxo Máximo a Custo
Exemplode
implementação
                               Mínimo
Considerações
Finais
                              Mostrar a importância do conhecimento
                               desse tipo de algoritmos para a
                               resolução de problemas reais


   DSC/CEEI/UFCG




                                     CST – Fluxo Máximo a Custo    5
                                      Mínimo – Demontiê Junior
Conceitos Importantes

   DSC/CEEI/UFCG
Contextualizando...
Introdução               O que é um grafo?
Conceitos
importantes
                            Dois tipos de elementos: vértices e
Apresentação      e
análise do
algoritmo
                             arestas
Exemplode
implementação               De maneira mais formal, grafos são
Considerações
Finais
                             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
   DSC/CEEI/UFCG
                                 adjacentes

                                     CST – Fluxo Máximo a Custo            7
                                      Mínimo – Demontiê Junior
Menor caminho de origem única
Introdução               Em que consiste?
Conceitos
importantes
                            Encontrar os menores caminhos entre
Apresentação      e
análise do
algoritmo
                             um vértice inicial e todos os outros
Exemplode
implementação
                             vértices de um grafo
Considerações
Finais
                            Utiliza grafos valorados
                            Algoritmos mais famosos:
                                Dijkstra
                                Bellman-Ford
                                Floyd-Warshall
   DSC/CEEI/UFCG




                                      CST – Fluxo Máximo a Custo    8
                                       Mínimo – Demontiê Junior
Algoritmo de Bellman-Ford
Introdução

Conceitos
importantes            Bellman-Ford(G, w, s)
Apresentação      e       for ∀u ∈ V[G] do
análise do                    d[u] ← ∞
algoritmo
                              π[u] ← NIL                             Inicia as variáveis
Exemplode
implementação             d[s] ← 0
Considerações
                          for i  1 to |V[G]| - 1 do
Finais                        for ∀(u, v) ∈ E[G] do
                                  if d[v] > d[u] + w(u,v) then
                                      d[v] ← d[u] + w(u,v)           Relaxamento
                                      π[v] ← u
                          for ∀(u, v) ∈ E[G] do
                              if d[v] > d[u] + w(u, v) then          Checa a presença
                                  return FALSE                       de ciclo negativo
   DSC/CEEI/UFCG
                          return TRUE


                                        CST – Fluxo Máximo a Custo                         9
                                         Mínimo – Demontiê Junior
Redes de fluxo
Introdução               O que são redes de fluxo?
Conceitos
importantes
                            Cada aresta tem uma capacidade (fluxo
Apresentação      e
análise do
algoritmo
                             máximo nessa aresta)
Exemplode
implementação               Possui dois vértices especiais: fonte (f)
Considerações
Finais
                             e sovedouro (s)
                            ∀v ∈ V, existe um caminho entre f e s
                             passando por v

   DSC/CEEI/UFCG




                                   CST – Fluxo Máximo a Custo       10
                                    Mínimo – Demontiê Junior
Redes de fluxo
Introdução               Exemplo:
Conceitos
importantes
Apresentação      e                                 12
análise do                                   V                  W
algoritmo
Exemplode                         16                                   20
implementação
Considerações
Finais
                                        10       4   9          7
                               F                                             S


                                   13                                   4

                                             X                      Y
   DSC/CEEI/UFCG
                                                     14


                                   CST – Fluxo Máximo a Custo                    11
                                    Mínimo – Demontiê Junior
Rede residual
Introdução             Considere c(e) a função capacidade
                         de e, e ∈ E
Conceitos
importantes
Apresentação      e

                        A rede residual de uma rede R é um
análise do
algoritmo


                         grafo R = <V, Eresidual>, tal que:
Exemplode
implementação
Considerações
Finais                      ∀e ∈ E, Ǝ uma eresidual cuja capacidade
                             é cresidual
                            cresidual(e) = c(e) – fluxo(e)


   DSC/CEEI/UFCG




                                 CST – Fluxo Máximo a Custo Mínimo –   12
                                           Demontiê Junior
Rede residual
Introdução               Rede residual após um fluxo de 4 no
Conceitos
importantes                caminho FXYS
Apresentação      e
análise do
                                                          12
algoritmo                                         V              W
Exemplode
implementação
                                    16                                       20
Considerações
Finais


                                             10       4   9      7
                                F                                                 S

                                         9                               0
                                                                              4
                                    4
                                                          10
                                                  X                  Y
   DSC/CEEI/UFCG




                                                           4
                                    CST – Fluxo Máximo a Custo                        13
                                     Mínimo – Demontiê Junior
Algoritmo de fluxo máximo
Introdução               Ford-Fulkerson
Conceitos
importantes
                            Rede residual
Apresentação      e

                            Caminho expandível
análise do
algoritmo
Exemplode
implementação
                       Ford-Fulkerson(G, s, t)
Considerações
Finais                    for ∀e ∈ E[G] do
                              fluxo[e] ← 0

                           while exisitr um caminho expandível p na rede residual do
                              aumentar f (*) ao longo de p
                           return f

   DSC/CEEI/UFCG
                                 (*) capacidade do arco de menor capacidade de p


                                       CST – Fluxo Máximo a Custo                  14
                                        Mínimo – Demontiê Junior
Apresentação e análise do
algoritmo

    DSC/CEEI/UFCG
Fluxo Máximo a Custo Mínimo
Introdução               “Por que não encontrar os menores
Conceitos
importantes                caminhos com Dijkstra e, simplesmente, sair
Apresentação
análise do
                   e       distribuindo o fluxo?”
algoritmo
Exemplode
                              Temos que gerar, sempre, a rede residual, para
implementação                  que não seja encontrado um fluxo diferente do
Considerações
Finais                         máximo
                              Quando geramos a rede residual, temos que
                               modificar, também, os custos das arestas
                              Algumas vezes invertemos o custo de uma
                               aresta
   DSC/CEEI/UFCG

                              Dijkstra não funciona bem com pesos negativos

                                      CST – Fluxo Máximo a Custo          16
                                       Mínimo – Demontiê Junior
Fluxo Máximo a Custo Mínimo
Introdução               Exemplo
Conceitos
importantes
Apresentação      e                                    12
análise do                                   V                    W
algoritmo                                               20
Exemplode                          16                                       20
implementação
                                      20                                20
Considerações
Finais                                                  9
                              F                     1                             S

                                       20                               20
                                    13                                       4
                                                        20
                                              X                    Y
   DSC/CEEI/UFCG
                                                        14


                                  CST – Fluxo Máximo a Custo Mínimo –                 17
                                            Demontiê Junior
Fluxo Máximo a Custo Mínimo
Introdução               Exemplo
Conceitos
importantes
Apresentação      e                                   12
análise do                                   V                    W
algoritmo                                              20
Exemplode                          16                                       20
implementação
                                      20                                20
Considerações
Finais                                                 9
                              F             ERRADO
                                              1                                   S

                                       20                               20
                                    13                                       4
                                                      20
                                              X                    Y
   DSC/CEEI/UFCG
                                                      14


                                  CST – Fluxo Máximo a Custo Mínimo –                 18
                                            Demontiê Junior
Fluxo Máximo a Custo Mínimo
Introdução               Exemplo
Conceitos
importantes
Apresentação      e                                    12
análise do                                   V                    W
algoritmo                                               20
Exemplode                          16                                       20
implementação
                                      20                                20
Considerações
Finais                                                  9
                              F          CORRETO    1                             S

                                       20                               20
                                    13                                       4
                                                        20
                                              X                    Y
   DSC/CEEI/UFCG
                                                        14


                                  CST – Fluxo Máximo a Custo Mínimo –                 19
                                            Demontiê Junior
O algoritmo
Introdução

Conceitos             MinCostMaxFlow(G, s, t)
importantes
                         for ∀e ∈ E[G] do
Apresentação      e
análise do
                             fluxo[e] ← 0
algoritmo
Exemplode               redeResidual ← G
implementação            custo ← 0
Considerações
Finais
                         while exisitr um caminho entre F e S (rodar Bellman-Ford
                              para encontra menor caminho F  S (*)) do
                           atualizar custo
                           aumentar fluxo ao longo do caminho c
                           gerar rede residual, modificando o custo das arestas

   DSC/CEEI/UFCG
                         return fluxo, custo

                             (*) o Bellman-Ford roda em cima da rede residual
                                  CST – Fluxo Máximo a Custo Mínimo –           20
                                            Demontiê Junior
Analisando o algoritmo
Introdução               Análise do Bellman-Ford
Conceitos
importantes
                              Ordem de complexidade: (|V|.|E|)
Apresentação      e

                           Análise do Ford-Fulkerson
análise do
algoritmo              
Exemplode
implementação
                            Ordem de complexidade: O(E.|f*|)
Considerações
Finais
                            Na implementação de Edmonds-Karp,
                             utilizando busca em largura: O(V.E²)


   DSC/CEEI/UFCG




                                     CST – Fluxo Máximo a Custo     21
                                      Mínimo – Demontiê Junior
Analisando o algoritmo
Introdução               Análise do Fluxo Máximo a Custo Mínimo
Conceitos
importantes                 MinCostMaxFlow(G, s, t)
                              for ∀e ∈ E[G] do
Apresentação      e
                                  fluxo[e] ← 0              O(E)
análise do
algoritmo
                               redeResidual ← G
Exemplode                     custo ← 0
implementação
                               while exisitr um caminho entre F e S (rodar Bellman-Ford
Considerações                      para encontra menor caminho F  S (*)) do
                                                                                          O(|f*|.E.V)
Finais                           atualizar custo
                                 aumentar fluxo ao longo do caminho c                     O(E)
                                 gerar rede residual, modificando o custo das arestas

                               return fluxo, custo



                              MinCostMaxFlow = O(V.E²)
   DSC/CEEI/UFCG




                                             CST – Fluxo Máximo a Custo                                 22
                                              Mínimo – Demontiê Junior
Exemplo de Implementação
Introdução

Conceitos
importantes
Apresentação      e
análise do
algoritmo
Exemplode
                            Código Java que responde ao
implementação
Considerações
                                   exemplo citado
Finais




   DSC/CEEI/UFCG




                                CST – Fluxo Máximo a Custo   23
                                 Mínimo – Demontiê Junior
Referências
Introdução             Prof. Jorge Figueiredo, notas de aula
                         6 e 10;
Conceitos
importantes
Apresentação      e

                        CORMEN, THOMAS H., Introduction
análise do
algoritmo


                         To Algorithms 2.ed. MIT PRESS, 2001
Exemplode
implementação
Considerações
Finais
                        http://www.slideshare.net/rafaelspere
                         ira/fluxo-a-custo-mnimo-1828149
                        http://courses.csail.mit.edu/6.854/06/

   DSC/CEEI/UFCG
                         scribe/s12-minCostFlowAlg.pdf

                               CST – Fluxo Máximo a Custo Mínimo –   24
                                         Demontiê Junior
Dúvidas?
Introdução

Conceitos
importantes
Apresentação      e
análise do
algoritmo
Exemplode
implementação
Considerações
Finais




   DSC/CEEI/UFCG




                           CST – Fluxo Máximo a Custo Mínimo –   25
                                     Demontiê Junior

Contenu connexe

Tendances (20)

Funcoesvetorias
FuncoesvetoriasFuncoesvetorias
Funcoesvetorias
 
Análise de Algoritmos - As classes P e NP
Análise de Algoritmos - As classes P e NPAnálise de Algoritmos - As classes P e NP
Análise de Algoritmos - As classes P e NP
 
Integral de linha
Integral de linhaIntegral de linha
Integral de linha
 
Análise de Algoritmos - Método Guloso
Análise de Algoritmos - Método GulosoAnálise de Algoritmos - Método Guloso
Análise de Algoritmos - Método Guloso
 
Algebra Linear cap 07
Algebra Linear cap 07Algebra Linear cap 07
Algebra Linear cap 07
 
Transformações lineares
Transformações linearesTransformações lineares
Transformações lineares
 
Matemática v
Matemática vMatemática v
Matemática v
 
Derivação e integração
Derivação e integraçãoDerivação e integração
Derivação e integração
 
Programação Dinâmica - Segmento de Soma Máxima
Programação Dinâmica - Segmento de Soma MáximaProgramação Dinâmica - Segmento de Soma Máxima
Programação Dinâmica - Segmento de Soma Máxima
 
Aula 8
Aula   8Aula   8
Aula 8
 
Transformação linear
Transformação linearTransformação linear
Transformação linear
 
05 int linha
05 int linha05 int linha
05 int linha
 
Tensão média e tensão eficaz
Tensão média e tensão eficazTensão média e tensão eficaz
Tensão média e tensão eficaz
 
Árvores Espalhadas Mínimas
Árvores Espalhadas MínimasÁrvores Espalhadas Mínimas
Árvores Espalhadas Mínimas
 
Mhs
MhsMhs
Mhs
 
Aula 9
Aula   9Aula   9
Aula 9
 
Trabalho de corrente alternada
Trabalho de corrente alternadaTrabalho de corrente alternada
Trabalho de corrente alternada
 
Apostila derivadas
Apostila derivadasApostila derivadas
Apostila derivadas
 
Aula 10
Aula   10Aula   10
Aula 10
 
Cordas vibrantes
Cordas vibrantesCordas vibrantes
Cordas vibrantes
 

Similaire à Fluxo Maximo Custo Minimo - Min Cost Max Flow

[Pereira, IC'2013] Uma nova abordagem para detecção e extracao de paralelismo...
[Pereira, IC'2013] Uma nova abordagem para detecção e extracao de paralelismo...[Pereira, IC'2013] Uma nova abordagem para detecção e extracao de paralelismo...
[Pereira, IC'2013] Uma nova abordagem para detecção e extracao de paralelismo...Marcio Machado Pereira
 
CAP 375 - Aula 1 - Introdução - Eduardo Luz
CAP 375 - Aula 1 - Introdução - Eduardo LuzCAP 375 - Aula 1 - Introdução - Eduardo Luz
CAP 375 - Aula 1 - Introdução - Eduardo LuzEduardo Luz
 
Comitê Tecnico Coex Mae - Capacity Fee
Comitê Tecnico Coex Mae - Capacity FeeComitê Tecnico Coex Mae - Capacity Fee
Comitê Tecnico Coex Mae - Capacity Feelmaurer
 
Encargo De Capacidade
Encargo De CapacidadeEncargo De Capacidade
Encargo De Capacidadelmaurer
 
Fluxos em Rede e Associação
Fluxos em Rede e AssociaçãoFluxos em Rede e Associação
Fluxos em Rede e AssociaçãoIorgama Porcely
 
3 - TRAFFIC SHAPPING-DUMMYNET
3 - TRAFFIC SHAPPING-DUMMYNET3 - TRAFFIC SHAPPING-DUMMYNET
3 - TRAFFIC SHAPPING-DUMMYNETVinicius Batista
 

Similaire à Fluxo Maximo Custo Minimo - Min Cost Max Flow (7)

[Pereira, IC'2013] Uma nova abordagem para detecção e extracao de paralelismo...
[Pereira, IC'2013] Uma nova abordagem para detecção e extracao de paralelismo...[Pereira, IC'2013] Uma nova abordagem para detecção e extracao de paralelismo...
[Pereira, IC'2013] Uma nova abordagem para detecção e extracao de paralelismo...
 
CAP 375 - Aula 1 - Introdução - Eduardo Luz
CAP 375 - Aula 1 - Introdução - Eduardo LuzCAP 375 - Aula 1 - Introdução - Eduardo Luz
CAP 375 - Aula 1 - Introdução - Eduardo Luz
 
Comitê Tecnico Coex Mae - Capacity Fee
Comitê Tecnico Coex Mae - Capacity FeeComitê Tecnico Coex Mae - Capacity Fee
Comitê Tecnico Coex Mae - Capacity Fee
 
Encargo De Capacidade
Encargo De CapacidadeEncargo De Capacidade
Encargo De Capacidade
 
Fluxos em Rede e Associação
Fluxos em Rede e AssociaçãoFluxos em Rede e Associação
Fluxos em Rede e Associação
 
Camada rede
Camada redeCamada rede
Camada rede
 
3 - TRAFFIC SHAPPING-DUMMYNET
3 - TRAFFIC SHAPPING-DUMMYNET3 - TRAFFIC SHAPPING-DUMMYNET
3 - TRAFFIC SHAPPING-DUMMYNET
 

Dernier

COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEMCOMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEMVanessaCavalcante37
 
Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.keislayyovera123
 
“Sobrou pra mim” - Conto de Ruth Rocha.pptx
“Sobrou pra mim” - Conto de Ruth Rocha.pptx“Sobrou pra mim” - Conto de Ruth Rocha.pptx
“Sobrou pra mim” - Conto de Ruth Rocha.pptxthaisamaral9365923
 
Cultura e Literatura indígenas: uma análise do poema “O silêncio”, de Kent Ne...
Cultura e Literatura indígenas: uma análise do poema “O silêncio”, de Kent Ne...Cultura e Literatura indígenas: uma análise do poema “O silêncio”, de Kent Ne...
Cultura e Literatura indígenas: uma análise do poema “O silêncio”, de Kent Ne...ArianeLima50
 
GÊNERO TEXTUAL - TIRINHAS - Charges - Cartum
GÊNERO TEXTUAL - TIRINHAS - Charges - CartumGÊNERO TEXTUAL - TIRINHAS - Charges - Cartum
GÊNERO TEXTUAL - TIRINHAS - Charges - CartumAugusto Costa
 
Música Meu Abrigo - Texto e atividade
Música   Meu   Abrigo  -   Texto e atividadeMúsica   Meu   Abrigo  -   Texto e atividade
Música Meu Abrigo - Texto e atividadeMary Alvarenga
 
Bullying - Texto e cruzadinha
Bullying        -     Texto e cruzadinhaBullying        -     Texto e cruzadinha
Bullying - Texto e cruzadinhaMary Alvarenga
 
Modelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e TaniModelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e TaniCassio Meira Jr.
 
UFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfUFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfManuais Formação
 
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptxAD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptxkarinedarozabatista
 
activIDADES CUENTO lobo esta CUENTO CUARTO GRADO
activIDADES CUENTO  lobo esta  CUENTO CUARTO GRADOactivIDADES CUENTO  lobo esta  CUENTO CUARTO GRADO
activIDADES CUENTO lobo esta CUENTO CUARTO GRADOcarolinacespedes23
 
A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.silves15
 
A Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesA Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesMary Alvarenga
 
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -Aline Santana
 
Habilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasHabilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasCassio Meira Jr.
 
ELETIVA TEXTOS MULTIMODAIS LINGUAGEM VER
ELETIVA TEXTOS MULTIMODAIS LINGUAGEM VERELETIVA TEXTOS MULTIMODAIS LINGUAGEM VER
ELETIVA TEXTOS MULTIMODAIS LINGUAGEM VERDeiciane Chaves
 
02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdf02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdfJorge Andrade
 
ANTIGUIDADE CLÁSSICA - Grécia e Roma Antiga
ANTIGUIDADE CLÁSSICA - Grécia e Roma AntigaANTIGUIDADE CLÁSSICA - Grécia e Roma Antiga
ANTIGUIDADE CLÁSSICA - Grécia e Roma AntigaJúlio Sandes
 
Simulado 2 Etapa - 2024 Proximo Passo.pdf
Simulado 2 Etapa  - 2024 Proximo Passo.pdfSimulado 2 Etapa  - 2024 Proximo Passo.pdf
Simulado 2 Etapa - 2024 Proximo Passo.pdfEditoraEnovus
 

Dernier (20)

COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEMCOMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
 
Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.
 
“Sobrou pra mim” - Conto de Ruth Rocha.pptx
“Sobrou pra mim” - Conto de Ruth Rocha.pptx“Sobrou pra mim” - Conto de Ruth Rocha.pptx
“Sobrou pra mim” - Conto de Ruth Rocha.pptx
 
Cultura e Literatura indígenas: uma análise do poema “O silêncio”, de Kent Ne...
Cultura e Literatura indígenas: uma análise do poema “O silêncio”, de Kent Ne...Cultura e Literatura indígenas: uma análise do poema “O silêncio”, de Kent Ne...
Cultura e Literatura indígenas: uma análise do poema “O silêncio”, de Kent Ne...
 
GÊNERO TEXTUAL - TIRINHAS - Charges - Cartum
GÊNERO TEXTUAL - TIRINHAS - Charges - CartumGÊNERO TEXTUAL - TIRINHAS - Charges - Cartum
GÊNERO TEXTUAL - TIRINHAS - Charges - Cartum
 
Música Meu Abrigo - Texto e atividade
Música   Meu   Abrigo  -   Texto e atividadeMúsica   Meu   Abrigo  -   Texto e atividade
Música Meu Abrigo - Texto e atividade
 
Bullying - Texto e cruzadinha
Bullying        -     Texto e cruzadinhaBullying        -     Texto e cruzadinha
Bullying - Texto e cruzadinha
 
Modelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e TaniModelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e Tani
 
UFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfUFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdf
 
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptxAD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
 
activIDADES CUENTO lobo esta CUENTO CUARTO GRADO
activIDADES CUENTO  lobo esta  CUENTO CUARTO GRADOactivIDADES CUENTO  lobo esta  CUENTO CUARTO GRADO
activIDADES CUENTO lobo esta CUENTO CUARTO GRADO
 
A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.
 
A Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesA Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das Mães
 
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -
 
Habilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasHabilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e Específicas
 
ELETIVA TEXTOS MULTIMODAIS LINGUAGEM VER
ELETIVA TEXTOS MULTIMODAIS LINGUAGEM VERELETIVA TEXTOS MULTIMODAIS LINGUAGEM VER
ELETIVA TEXTOS MULTIMODAIS LINGUAGEM VER
 
CINEMATICA DE LOS MATERIALES Y PARTICULA
CINEMATICA DE LOS MATERIALES Y PARTICULACINEMATICA DE LOS MATERIALES Y PARTICULA
CINEMATICA DE LOS MATERIALES Y PARTICULA
 
02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdf02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdf
 
ANTIGUIDADE CLÁSSICA - Grécia e Roma Antiga
ANTIGUIDADE CLÁSSICA - Grécia e Roma AntigaANTIGUIDADE CLÁSSICA - Grécia e Roma Antiga
ANTIGUIDADE CLÁSSICA - Grécia e Roma Antiga
 
Simulado 2 Etapa - 2024 Proximo Passo.pdf
Simulado 2 Etapa  - 2024 Proximo Passo.pdfSimulado 2 Etapa  - 2024 Proximo Passo.pdf
Simulado 2 Etapa - 2024 Proximo Passo.pdf
 

Fluxo Maximo Custo Minimo - Min Cost Max Flow

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