SlideShare uma empresa Scribd logo
1 de 16
Baixar para ler offline
UNIVERSIDADE FEDERAL DE ALFENAS      Teoria dos Grafos




                               Algoritmo de Floyd-Warshall

                           Discentes: Jéverson Abreu, João A. Silva,
                                Sueli Perpétua, Thalles Terra
                                 Docente: Douglas Castilho
                                Disciplina: Teoria dos Grafos



                                             23 de setembro de 2012




Jéverson, João, Sueli, Thalles (Unifal-MG)                                   23 de setembro de 2012   1 / 16
Introdução


           Também conhecido como algoritmo de Floyd, algoritmo de
           Roy-Floyd, algoritmo de Roy-Warshall ou algoritmo WFI;
               Foi explicado por Bernard Roy em 1959 e publica 3 anos
               mais tarde por Stephen Warshall e Robert Floyd.

           É um algoritmo que resolve o problema de encontrar o menor
           caminho entre todos os pares de vértices de um grafo orientado e
           ponderado
               Ele apenas encontra os valores de tais caminhos, e não
               a seqüência de arestas a ser percorrida.




Jéverson, João, Sueli, Thalles (Unifal-MG)              23 de setembro de 2012   2 / 16
Outras Aplicações




           Calcular o Fecho Transitivo de um grafo;
           Verificar se um grafo não-dirigido é bipartido;
           Achar um vértice central, isto é, aquele que minimiza a distância
           máxima ou média entre todos os vértices;




Jéverson, João, Sueli, Thalles (Unifal-MG)                  23 de setembro de 2012   3 / 16
Problema de se encontrar um vértice central




           Poderíamos pensar, em como avaliar o melhor local para
           instalarmos uma loja. Podemos definir como melhor local aquele
           que diminui a distância entre a loja e locais estratégicos como:
                  Um bairro onde o consumo dos produtos vendidos por ela é alto;
                  Estabelicimentos que prestarão serviços para a loja;
                  Um local onde se tenha uma grande concentração de um público
                  alvo para a loja.




Jéverson, João, Sueli, Thalles (Unifal-MG)                    23 de setembro de 2012   4 / 16
Menor caminho entre todos os vértices




           Dado um grafo G direcionado e ponderado, encontrar para todo
           par u, v de vértices um caminho mínimo de u a v.




Jéverson, João, Sueli, Thalles (Unifal-MG)             23 de setembro de 2012   5 / 16
Menor caminho entre todos os vértices




           O algorimto de Floyd-Warshall tem como objetivo calcular o
           caminho mínimo entre cada par de vértices de um grafo
                  O grafo pode conter arestas negativas
                  Não pode conter ciclos negativos
                  Utiliza técnica de programação dinâmica




Jéverson, João, Sueli, Thalles (Unifal-MG)                  23 de setembro de 2012   6 / 16
Menor caminho entre todos os vértices



           Entrada: matriz de adjacência representando os pesos das
           arestas de um grafo orientado e satisfaça a seguinte condição:
                          
                           0,
                                                             se i = j,
                  yj =      o peso da aresta orientada(i, j), se, i = j e (i, j) ∈ A,
                           ∞,
                          
                                                              caso contrário.
           Saída: Uma matriz quadrada D|V |X |V | onde cada célula dij contém
           a distancia mínima entre o vétice i e j, onde a entrada dij contém
           o peso do caminho mais curto do vértice i até o vértice j.




Jéverson, João, Sueli, Thalles (Unifal-MG)                           23 de setembro de 2012   7 / 16
Menor caminho entre todos os vértices




   func floyd-Warshall(caminho[][])
       for k = 1 to n
                  for i = 1 to n
                          for j = 1 to n
                                caminho[i][j] = min(caminho[i][j], caminho[i][k]+caminho[k][j])




Jéverson, João, Sueli, Thalles (Unifal-MG)                                 23 de setembro de 2012   8 / 16
Menor caminho entre todos os vértices


   func floyd-Warshall(caminho[][])
       for k = 1 to n
                  for i = 1 to n
                          for j = 1 to n
                                caminho[i][j] = min(caminho[i][j], caminho[i][k]+caminho[k][j])




Jéverson, João, Sueli, Thalles (Unifal-MG)                                 23 de setembro de 2012   9 / 16
Acompanhamento


           Matriz de adjacência de entrada

                                                     0 8 5
                                             D (0) = 3 0 ∞
                                                     ∞ 2 0

           Após iteração sobre o primeiro vértice

                                                     0 8 5
                                             D (1) = 3 0 8
                                                     ∞ 2 0




Jéverson, João, Sueli, Thalles (Unifal-MG)                   23 de setembro de 2012   10 / 16
Acompanhamento


           Após iteração sobre o segundo vértice

                                                     0 8 5
                                             D (2) = 3 0 8
                                                     5 2 0

           Após iteração sobre o terceiro vértice

                                                       0 7 5
                                             D (3)   = 3 0 8
                                                       5 2 0




Jéverson, João, Sueli, Thalles (Unifal-MG)                     23 de setembro de 2012   11 / 16
Complexidade




           É fácil analisar o tempo de execução do algoritmo de
           Floyd-warshall. O laço principal é executado n vezes e o laço
           interno considera cada um dos O(n2 ) pares de vértices,
           realizando um operação de tempo constante para cada par. Se
           usarmos uma estrutura de dados como a matriz de adjacência,
           temos um tempo de execução total de O(n3 ).




Jéverson, João, Sueli, Thalles (Unifal-MG)             23 de setembro de 2012   12 / 16
Bellman Ford x Dijkstra x Floyd-Warshall




                            BF               Dijkstra            FW
                            |V |O(|V ∗ A|)   |V |O(|V |2 + |A|   O(|V |3 )




Jéverson, João, Sueli, Thalles (Unifal-MG)                          23 de setembro de 2012   13 / 16
Considerações Finais



           O Algoritmo de Floyd-Warshall e Bellman Ford trabalha com
           arestas de peso negativo enquanto Dijkstra não.
           Floyd-Warshall tem como saída uma matriz de caminho mínimos
           já Bellman Ford e Dijkstra fornece um vetor.
           No Dijkstra, é possível reproduzir o caminho, enquanto que o
           Floyd-Warshall apenas fornece o caminho mais curto, e não a
           sequência das arestas.
           Bellman Ford aceita ciclo negativo enquanto Floyd-Warshall não.




Jéverson, João, Sueli, Thalles (Unifal-MG)              23 de setembro de 2012   14 / 16
Bibliografia




           CORMEN, T. H.; LEISERSON, C. E.; RIVEST, R. L.; (2002).
           Algoritmos - Teoria e Prática. Tradução da 2a edição americana.
           Rio de Janeiro. Editora Campus




Jéverson, João, Sueli, Thalles (Unifal-MG)              23 de setembro de 2012   15 / 16
Perguntas???




Jéverson, João, Sueli, Thalles (Unifal-MG)                  23 de setembro de 2012   16 / 16

Mais conteúdo relacionado

Mais procurados

Hidrogênio e Gases Nobres
Hidrogênio e Gases NobresHidrogênio e Gases Nobres
Hidrogênio e Gases Nobresguividaloka00
 
Aula de Física - Calor e energia térmica (Ciências 9º Ano)
Aula de Física - Calor e energia térmica (Ciências 9º Ano)Aula de Física - Calor e energia térmica (Ciências 9º Ano)
Aula de Física - Calor e energia térmica (Ciências 9º Ano)Ronaldo Santana
 
3.1 dinâmica forças peso,normal, tração, elástica e atrito
3.1 dinâmica forças peso,normal, tração, elástica e atrito3.1 dinâmica forças peso,normal, tração, elástica e atrito
3.1 dinâmica forças peso,normal, tração, elástica e atritoWALTER ALENCAR DE SOUSA
 
Apresentação geometria analítica
Apresentação geometria analíticaApresentação geometria analítica
Apresentação geometria analíticaprofluizgustavo
 
Equações lineares
Equações lineares Equações lineares
Equações lineares LCCIMETRO
 
Noções básicas de cinemática
Noções básicas de cinemáticaNoções básicas de cinemática
Noções básicas de cinemáticaAngélica Brasil
 
Laboratório de Programação II: Grafos - Matriz de adjacência e Matriz de inci...
Laboratório de Programação II: Grafos - Matriz de adjacência e Matriz de inci...Laboratório de Programação II: Grafos - Matriz de adjacência e Matriz de inci...
Laboratório de Programação II: Grafos - Matriz de adjacência e Matriz de inci...Alex Camargo
 
Lancamento horizontal e obliquo resumo
Lancamento horizontal e obliquo   resumoLancamento horizontal e obliquo   resumo
Lancamento horizontal e obliquo resumoNS Aulas Particulares
 

Mais procurados (20)

Regressão Linear Simples
Regressão Linear SimplesRegressão Linear Simples
Regressão Linear Simples
 
Hidrogênio e Gases Nobres
Hidrogênio e Gases NobresHidrogênio e Gases Nobres
Hidrogênio e Gases Nobres
 
Aula 1 velocidade média
Aula 1  velocidade médiaAula 1  velocidade média
Aula 1 velocidade média
 
Aula de Física - Calor e energia térmica (Ciências 9º Ano)
Aula de Física - Calor e energia térmica (Ciências 9º Ano)Aula de Física - Calor e energia térmica (Ciências 9º Ano)
Aula de Física - Calor e energia térmica (Ciências 9º Ano)
 
3.1 dinâmica forças peso,normal, tração, elástica e atrito
3.1 dinâmica forças peso,normal, tração, elástica e atrito3.1 dinâmica forças peso,normal, tração, elástica e atrito
3.1 dinâmica forças peso,normal, tração, elástica e atrito
 
Apresentação geometria analítica
Apresentação geometria analíticaApresentação geometria analítica
Apresentação geometria analítica
 
Movimento - Física
Movimento - FísicaMovimento - Física
Movimento - Física
 
Equações lineares
Equações lineares Equações lineares
Equações lineares
 
FRAÇÕES COM LEGO.pptx
FRAÇÕES COM LEGO.pptxFRAÇÕES COM LEGO.pptx
FRAÇÕES COM LEGO.pptx
 
Noções básicas de cinemática
Noções básicas de cinemáticaNoções básicas de cinemática
Noções básicas de cinemática
 
Cinemática introdução
Cinemática introduçãoCinemática introdução
Cinemática introdução
 
Laboratório de Programação II: Grafos - Matriz de adjacência e Matriz de inci...
Laboratório de Programação II: Grafos - Matriz de adjacência e Matriz de inci...Laboratório de Programação II: Grafos - Matriz de adjacência e Matriz de inci...
Laboratório de Programação II: Grafos - Matriz de adjacência e Matriz de inci...
 
Sistema nervoso - 8º ANO
Sistema nervoso - 8º ANOSistema nervoso - 8º ANO
Sistema nervoso - 8º ANO
 
Cinemática Vetorial
Cinemática VetorialCinemática Vetorial
Cinemática Vetorial
 
Big data
Big dataBig data
Big data
 
questoes enem
questoes enemquestoes enem
questoes enem
 
Funções
FunçõesFunções
Funções
 
Lancamento horizontal e obliquo resumo
Lancamento horizontal e obliquo   resumoLancamento horizontal e obliquo   resumo
Lancamento horizontal e obliquo resumo
 
Tabela Periódica.pdf
Tabela Periódica.pdfTabela Periódica.pdf
Tabela Periódica.pdf
 
Cinemática introdução
Cinemática introduçãoCinemática introdução
Cinemática introdução
 

Último

Falando de Física Quântica apresentação introd
Falando de Física Quântica apresentação introdFalando de Física Quântica apresentação introd
Falando de Física Quântica apresentação introdLeonardoDeOliveiraLu2
 
M0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptxM0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptxJustinoTeixeira1
 
aula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptaula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptssuser2b53fe
 
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024azulassessoria9
 
P P P 2024 - *CIEJA Santana / Tucuruvi*
P P P 2024  - *CIEJA Santana / Tucuruvi*P P P 2024  - *CIEJA Santana / Tucuruvi*
P P P 2024 - *CIEJA Santana / Tucuruvi*Viviane Moreiras
 
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...PatriciaCaetano18
 
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptxMonoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptxFlviaGomes64
 
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...andreiavys
 
Expansão Marítima- Descobrimentos Portugueses século XV
Expansão Marítima- Descobrimentos Portugueses século XVExpansão Marítima- Descobrimentos Portugueses século XV
Expansão Marítima- Descobrimentos Portugueses século XVlenapinto
 
Cartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxCartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxMarcosLemes28
 
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...azulassessoria9
 
Slide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemáticaSlide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemáticash5kpmr7w7
 
Historia de Portugal - Quarto Ano - 2024
Historia de Portugal - Quarto Ano - 2024Historia de Portugal - Quarto Ano - 2024
Historia de Portugal - Quarto Ano - 2024Cabiamar
 
LENDA DA MANDIOCA - leitura e interpretação
LENDA DA MANDIOCA - leitura e interpretaçãoLENDA DA MANDIOCA - leitura e interpretação
LENDA DA MANDIOCA - leitura e interpretaçãoLidianePaulaValezi
 
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...azulassessoria9
 
O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...
O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...
O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...azulassessoria9
 
Sopa de letras | Dia da Europa 2024 (nível 1)
Sopa de letras | Dia da Europa 2024 (nível 1)Sopa de letras | Dia da Europa 2024 (nível 1)
Sopa de letras | Dia da Europa 2024 (nível 1)Centro Jacques Delors
 
Sistema de Bibliotecas UCS - Cantos do fim do século
Sistema de Bibliotecas UCS  - Cantos do fim do séculoSistema de Bibliotecas UCS  - Cantos do fim do século
Sistema de Bibliotecas UCS - Cantos do fim do séculoBiblioteca UCS
 
6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptxJssicaCassiano2
 

Último (20)

Novena de Pentecostes com textos de São João Eudes
Novena de Pentecostes com textos de São João EudesNovena de Pentecostes com textos de São João Eudes
Novena de Pentecostes com textos de São João Eudes
 
Falando de Física Quântica apresentação introd
Falando de Física Quântica apresentação introdFalando de Física Quântica apresentação introd
Falando de Física Quântica apresentação introd
 
M0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptxM0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptx
 
aula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptaula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.ppt
 
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
 
P P P 2024 - *CIEJA Santana / Tucuruvi*
P P P 2024  - *CIEJA Santana / Tucuruvi*P P P 2024  - *CIEJA Santana / Tucuruvi*
P P P 2024 - *CIEJA Santana / Tucuruvi*
 
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
 
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptxMonoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
 
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
 
Expansão Marítima- Descobrimentos Portugueses século XV
Expansão Marítima- Descobrimentos Portugueses século XVExpansão Marítima- Descobrimentos Portugueses século XV
Expansão Marítima- Descobrimentos Portugueses século XV
 
Cartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxCartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptx
 
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
 
Slide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemáticaSlide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemática
 
Historia de Portugal - Quarto Ano - 2024
Historia de Portugal - Quarto Ano - 2024Historia de Portugal - Quarto Ano - 2024
Historia de Portugal - Quarto Ano - 2024
 
LENDA DA MANDIOCA - leitura e interpretação
LENDA DA MANDIOCA - leitura e interpretaçãoLENDA DA MANDIOCA - leitura e interpretação
LENDA DA MANDIOCA - leitura e interpretação
 
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
 
O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...
O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...
O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...
 
Sopa de letras | Dia da Europa 2024 (nível 1)
Sopa de letras | Dia da Europa 2024 (nível 1)Sopa de letras | Dia da Europa 2024 (nível 1)
Sopa de letras | Dia da Europa 2024 (nível 1)
 
Sistema de Bibliotecas UCS - Cantos do fim do século
Sistema de Bibliotecas UCS  - Cantos do fim do séculoSistema de Bibliotecas UCS  - Cantos do fim do século
Sistema de Bibliotecas UCS - Cantos do fim do século
 
6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx
 

Algoritmo de Floyd-Warshall

  • 1. UNIVERSIDADE FEDERAL DE ALFENAS Teoria dos Grafos Algoritmo de Floyd-Warshall Discentes: Jéverson Abreu, João A. Silva, Sueli Perpétua, Thalles Terra Docente: Douglas Castilho Disciplina: Teoria dos Grafos 23 de setembro de 2012 Jéverson, João, Sueli, Thalles (Unifal-MG) 23 de setembro de 2012 1 / 16
  • 2. Introdução Também conhecido como algoritmo de Floyd, algoritmo de Roy-Floyd, algoritmo de Roy-Warshall ou algoritmo WFI; Foi explicado por Bernard Roy em 1959 e publica 3 anos mais tarde por Stephen Warshall e Robert Floyd. É um algoritmo que resolve o problema de encontrar o menor caminho entre todos os pares de vértices de um grafo orientado e ponderado Ele apenas encontra os valores de tais caminhos, e não a seqüência de arestas a ser percorrida. Jéverson, João, Sueli, Thalles (Unifal-MG) 23 de setembro de 2012 2 / 16
  • 3. Outras Aplicações Calcular o Fecho Transitivo de um grafo; Verificar se um grafo não-dirigido é bipartido; Achar um vértice central, isto é, aquele que minimiza a distância máxima ou média entre todos os vértices; Jéverson, João, Sueli, Thalles (Unifal-MG) 23 de setembro de 2012 3 / 16
  • 4. Problema de se encontrar um vértice central Poderíamos pensar, em como avaliar o melhor local para instalarmos uma loja. Podemos definir como melhor local aquele que diminui a distância entre a loja e locais estratégicos como: Um bairro onde o consumo dos produtos vendidos por ela é alto; Estabelicimentos que prestarão serviços para a loja; Um local onde se tenha uma grande concentração de um público alvo para a loja. Jéverson, João, Sueli, Thalles (Unifal-MG) 23 de setembro de 2012 4 / 16
  • 5. Menor caminho entre todos os vértices Dado um grafo G direcionado e ponderado, encontrar para todo par u, v de vértices um caminho mínimo de u a v. Jéverson, João, Sueli, Thalles (Unifal-MG) 23 de setembro de 2012 5 / 16
  • 6. Menor caminho entre todos os vértices O algorimto de Floyd-Warshall tem como objetivo calcular o caminho mínimo entre cada par de vértices de um grafo O grafo pode conter arestas negativas Não pode conter ciclos negativos Utiliza técnica de programação dinâmica Jéverson, João, Sueli, Thalles (Unifal-MG) 23 de setembro de 2012 6 / 16
  • 7. Menor caminho entre todos os vértices Entrada: matriz de adjacência representando os pesos das arestas de um grafo orientado e satisfaça a seguinte condição:   0,  se i = j, yj = o peso da aresta orientada(i, j), se, i = j e (i, j) ∈ A,  ∞,  caso contrário. Saída: Uma matriz quadrada D|V |X |V | onde cada célula dij contém a distancia mínima entre o vétice i e j, onde a entrada dij contém o peso do caminho mais curto do vértice i até o vértice j. Jéverson, João, Sueli, Thalles (Unifal-MG) 23 de setembro de 2012 7 / 16
  • 8. Menor caminho entre todos os vértices func floyd-Warshall(caminho[][]) for k = 1 to n for i = 1 to n for j = 1 to n caminho[i][j] = min(caminho[i][j], caminho[i][k]+caminho[k][j]) Jéverson, João, Sueli, Thalles (Unifal-MG) 23 de setembro de 2012 8 / 16
  • 9. Menor caminho entre todos os vértices func floyd-Warshall(caminho[][]) for k = 1 to n for i = 1 to n for j = 1 to n caminho[i][j] = min(caminho[i][j], caminho[i][k]+caminho[k][j]) Jéverson, João, Sueli, Thalles (Unifal-MG) 23 de setembro de 2012 9 / 16
  • 10. Acompanhamento Matriz de adjacência de entrada 0 8 5 D (0) = 3 0 ∞ ∞ 2 0 Após iteração sobre o primeiro vértice 0 8 5 D (1) = 3 0 8 ∞ 2 0 Jéverson, João, Sueli, Thalles (Unifal-MG) 23 de setembro de 2012 10 / 16
  • 11. Acompanhamento Após iteração sobre o segundo vértice 0 8 5 D (2) = 3 0 8 5 2 0 Após iteração sobre o terceiro vértice 0 7 5 D (3) = 3 0 8 5 2 0 Jéverson, João, Sueli, Thalles (Unifal-MG) 23 de setembro de 2012 11 / 16
  • 12. Complexidade É fácil analisar o tempo de execução do algoritmo de Floyd-warshall. O laço principal é executado n vezes e o laço interno considera cada um dos O(n2 ) pares de vértices, realizando um operação de tempo constante para cada par. Se usarmos uma estrutura de dados como a matriz de adjacência, temos um tempo de execução total de O(n3 ). Jéverson, João, Sueli, Thalles (Unifal-MG) 23 de setembro de 2012 12 / 16
  • 13. Bellman Ford x Dijkstra x Floyd-Warshall BF Dijkstra FW |V |O(|V ∗ A|) |V |O(|V |2 + |A| O(|V |3 ) Jéverson, João, Sueli, Thalles (Unifal-MG) 23 de setembro de 2012 13 / 16
  • 14. Considerações Finais O Algoritmo de Floyd-Warshall e Bellman Ford trabalha com arestas de peso negativo enquanto Dijkstra não. Floyd-Warshall tem como saída uma matriz de caminho mínimos já Bellman Ford e Dijkstra fornece um vetor. No Dijkstra, é possível reproduzir o caminho, enquanto que o Floyd-Warshall apenas fornece o caminho mais curto, e não a sequência das arestas. Bellman Ford aceita ciclo negativo enquanto Floyd-Warshall não. Jéverson, João, Sueli, Thalles (Unifal-MG) 23 de setembro de 2012 14 / 16
  • 15. Bibliografia CORMEN, T. H.; LEISERSON, C. E.; RIVEST, R. L.; (2002). Algoritmos - Teoria e Prática. Tradução da 2a edição americana. Rio de Janeiro. Editora Campus Jéverson, João, Sueli, Thalles (Unifal-MG) 23 de setembro de 2012 15 / 16
  • 16. Perguntas??? Jéverson, João, Sueli, Thalles (Unifal-MG) 23 de setembro de 2012 16 / 16