SlideShare une entreprise Scribd logo
1  sur  16
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

Complexidade do Algoritmo: Caminho mínimo Floyd Warshall
Complexidade do Algoritmo: Caminho mínimo Floyd WarshallComplexidade do Algoritmo: Caminho mínimo Floyd Warshall
Complexidade do Algoritmo: Caminho mínimo Floyd WarshallLucas Vinícius
 
Introdução a Algoritmos: Conceitos Básicos
Introdução a Algoritmos: Conceitos BásicosIntrodução a Algoritmos: Conceitos Básicos
Introdução a Algoritmos: Conceitos BásicosElaine Cecília Gatto
 
Medidas de tendência central
Medidas de tendência centralMedidas de tendência central
Medidas de tendência centralpaulocsm
 
Dante didática da resolução de problemas de matemática[1]
Dante didática da resolução de problemas de matemática[1]Dante didática da resolução de problemas de matemática[1]
Dante didática da resolução de problemas de matemática[1]Sonia Piaya
 
Seminário sobre Grafos por Samyra Lara
Seminário sobre Grafos por Samyra LaraSeminário sobre Grafos por Samyra Lara
Seminário sobre Grafos por Samyra LaraIFPB
 
Teoria dos Grafos - História e COnceitos Iniciais
Teoria dos Grafos - História e COnceitos IniciaisTeoria dos Grafos - História e COnceitos Iniciais
Teoria dos Grafos - História e COnceitos IniciaisVictor Hazin da Rocha
 
Fração de um número aula26
Fração de um número aula26Fração de um número aula26
Fração de um número aula26Marcia Roberto
 
Lógica de Programação - Algoritmos
Lógica de Programação - AlgoritmosLógica de Programação - Algoritmos
Lógica de Programação - AlgoritmosRoney Sousa
 
Estatística 8.º ano
Estatística 8.º anoEstatística 8.º ano
Estatística 8.º anoaldaalves
 
61321330 adm-estoque-e-almoxarifado-130612211743-phpapp02
61321330 adm-estoque-e-almoxarifado-130612211743-phpapp0261321330 adm-estoque-e-almoxarifado-130612211743-phpapp02
61321330 adm-estoque-e-almoxarifado-130612211743-phpapp02Sheila Moreira Bezerra
 
Tms (transportation management system)
Tms (transportation management system)Tms (transportation management system)
Tms (transportation management system)Marcos Liranco
 
AULÃO SOBRE O SPAECE.pptx
AULÃO SOBRE O SPAECE.pptxAULÃO SOBRE O SPAECE.pptx
AULÃO SOBRE O SPAECE.pptxmessias ferreira
 

Tendances (20)

Grafos
GrafosGrafos
Grafos
 
Complexidade do Algoritmo: Caminho mínimo Floyd Warshall
Complexidade do Algoritmo: Caminho mínimo Floyd WarshallComplexidade do Algoritmo: Caminho mínimo Floyd Warshall
Complexidade do Algoritmo: Caminho mínimo Floyd Warshall
 
questoes enem
questoes enemquestoes enem
questoes enem
 
Introdução a Algoritmos: Conceitos Básicos
Introdução a Algoritmos: Conceitos BásicosIntrodução a Algoritmos: Conceitos Básicos
Introdução a Algoritmos: Conceitos Básicos
 
Medidas de tendência central
Medidas de tendência centralMedidas de tendência central
Medidas de tendência central
 
Dante didática da resolução de problemas de matemática[1]
Dante didática da resolução de problemas de matemática[1]Dante didática da resolução de problemas de matemática[1]
Dante didática da resolução de problemas de matemática[1]
 
Grafos
GrafosGrafos
Grafos
 
Aula01 - Logica de Programação
Aula01 - Logica de ProgramaçãoAula01 - Logica de Programação
Aula01 - Logica de Programação
 
Seminário sobre Grafos por Samyra Lara
Seminário sobre Grafos por Samyra LaraSeminário sobre Grafos por Samyra Lara
Seminário sobre Grafos por Samyra Lara
 
Teoria dos Grafos - História e COnceitos Iniciais
Teoria dos Grafos - História e COnceitos IniciaisTeoria dos Grafos - História e COnceitos Iniciais
Teoria dos Grafos - História e COnceitos Iniciais
 
Big Data
Big DataBig Data
Big Data
 
Paletes
PaletesPaletes
Paletes
 
Fração de um número aula26
Fração de um número aula26Fração de um número aula26
Fração de um número aula26
 
Lógica de Programação - Algoritmos
Lógica de Programação - AlgoritmosLógica de Programação - Algoritmos
Lógica de Programação - Algoritmos
 
Estatística 8.º ano
Estatística 8.º anoEstatística 8.º ano
Estatística 8.º ano
 
61321330 adm-estoque-e-almoxarifado-130612211743-phpapp02
61321330 adm-estoque-e-almoxarifado-130612211743-phpapp0261321330 adm-estoque-e-almoxarifado-130612211743-phpapp02
61321330 adm-estoque-e-almoxarifado-130612211743-phpapp02
 
Tms (transportation management system)
Tms (transportation management system)Tms (transportation management system)
Tms (transportation management system)
 
O Problema de Transporte - Pesquisa Operacional
O Problema de Transporte - Pesquisa OperacionalO Problema de Transporte - Pesquisa Operacional
O Problema de Transporte - Pesquisa Operacional
 
AULÃO SOBRE O SPAECE.pptx
AULÃO SOBRE O SPAECE.pptxAULÃO SOBRE O SPAECE.pptx
AULÃO SOBRE O SPAECE.pptx
 
Aula 2 Compras.ppt
Aula 2 Compras.pptAula 2 Compras.ppt
Aula 2 Compras.ppt
 

Dernier

PROJETO DE EXTENSÃO - SEGURANÇA, INOVAÇÃO E SUSTENTABILIDADE PARA O BEM COMUM...
PROJETO DE EXTENSÃO - SEGURANÇA, INOVAÇÃO E SUSTENTABILIDADE PARA O BEM COMUM...PROJETO DE EXTENSÃO - SEGURANÇA, INOVAÇÃO E SUSTENTABILIDADE PARA O BEM COMUM...
PROJETO DE EXTENSÃO - SEGURANÇA, INOVAÇÃO E SUSTENTABILIDADE PARA O BEM COMUM...Colaborar Educacional
 
autismo conhecer.pptx, Conhecer para entender
autismo conhecer.pptx, Conhecer para entenderautismo conhecer.pptx, Conhecer para entender
autismo conhecer.pptx, Conhecer para entenderLucliaResende1
 
Slides Lição 1, CPAD, O Início da Caminhada, 2Tr24, Pr Henrique.pptx
Slides Lição 1, CPAD, O Início da Caminhada, 2Tr24, Pr Henrique.pptxSlides Lição 1, CPAD, O Início da Caminhada, 2Tr24, Pr Henrique.pptx
Slides Lição 1, CPAD, O Início da Caminhada, 2Tr24, Pr Henrique.pptxLuizHenriquedeAlmeid6
 
EBOOK LINGUAGEM GRATUITO EUDCAÇÃO INFANTIL.pdf
EBOOK LINGUAGEM GRATUITO EUDCAÇÃO INFANTIL.pdfEBOOK LINGUAGEM GRATUITO EUDCAÇÃO INFANTIL.pdf
EBOOK LINGUAGEM GRATUITO EUDCAÇÃO INFANTIL.pdfIBEE5
 
AS REBELIÕES NA AMERICA IBERICA (Prof. Francisco Leite)
AS REBELIÕES NA AMERICA IBERICA (Prof. Francisco Leite)AS REBELIÕES NA AMERICA IBERICA (Prof. Francisco Leite)
AS REBELIÕES NA AMERICA IBERICA (Prof. Francisco Leite)profesfrancleite
 
A CONCEPÇÃO FILO/SOCIOLÓGICA DE KARL MARX
A CONCEPÇÃO FILO/SOCIOLÓGICA DE KARL MARXA CONCEPÇÃO FILO/SOCIOLÓGICA DE KARL MARX
A CONCEPÇÃO FILO/SOCIOLÓGICA DE KARL MARXHisrelBlog
 
SEMIOSES DO OLHAR - SLIDE PARA ESTUDO 123
SEMIOSES DO OLHAR - SLIDE PARA ESTUDO 123SEMIOSES DO OLHAR - SLIDE PARA ESTUDO 123
SEMIOSES DO OLHAR - SLIDE PARA ESTUDO 123JaineCarolaineLima
 
QUIZ - GEOGRAFIA - 8º ANO - FASES DO CAPITALISMO.pptx
QUIZ - GEOGRAFIA - 8º ANO - FASES DO CAPITALISMO.pptxQUIZ - GEOGRAFIA - 8º ANO - FASES DO CAPITALISMO.pptx
QUIZ - GEOGRAFIA - 8º ANO - FASES DO CAPITALISMO.pptxAntonioVieira539017
 
Caça palavras - BULLYING
Caça palavras  -  BULLYING  Caça palavras  -  BULLYING
Caça palavras - BULLYING Mary Alvarenga
 
Depende De Nós! José Ernesto Ferraresso.ppsx
Depende De Nós! José Ernesto Ferraresso.ppsxDepende De Nós! José Ernesto Ferraresso.ppsx
Depende De Nós! José Ernesto Ferraresso.ppsxLuzia Gabriele
 
A Congregação de Jesus e Maria, conhecida também como os Eudistas, foi fundad...
A Congregação de Jesus e Maria, conhecida também como os Eudistas, foi fundad...A Congregação de Jesus e Maria, conhecida também como os Eudistas, foi fundad...
A Congregação de Jesus e Maria, conhecida também como os Eudistas, foi fundad...Unidad de Espiritualidad Eudista
 
Atividade de matemática para simulado de 2024
Atividade de matemática para simulado de 2024Atividade de matemática para simulado de 2024
Atividade de matemática para simulado de 2024gilmaraoliveira0612
 
Verbos - transitivos e intransitivos.pdf
Verbos -  transitivos e intransitivos.pdfVerbos -  transitivos e intransitivos.pdf
Verbos - transitivos e intransitivos.pdfKarinaSouzaCorreiaAl
 
Ressonancia_magnetica_basica_slide_da_net.pptx
Ressonancia_magnetica_basica_slide_da_net.pptxRessonancia_magnetica_basica_slide_da_net.pptx
Ressonancia_magnetica_basica_slide_da_net.pptxPatriciaFarias81
 
Como fazer um Feedback Eficaz - Comitê de Gestores
Como fazer um Feedback Eficaz - Comitê de GestoresComo fazer um Feedback Eficaz - Comitê de Gestores
Como fazer um Feedback Eficaz - Comitê de GestoresEu Prefiro o Paraíso.
 
Aula 6 - O Imperialismo e seu discurso civilizatório.pptx
Aula 6 - O Imperialismo e seu discurso civilizatório.pptxAula 6 - O Imperialismo e seu discurso civilizatório.pptx
Aula 6 - O Imperialismo e seu discurso civilizatório.pptxMarceloDosSantosSoar3
 
Trabalho DAC História 25 de Abril de 1974
Trabalho DAC História 25 de Abril de 1974Trabalho DAC História 25 de Abril de 1974
Trabalho DAC História 25 de Abril de 1974AnaRitaFreitas7
 

Dernier (20)

PROJETO DE EXTENSÃO - SEGURANÇA, INOVAÇÃO E SUSTENTABILIDADE PARA O BEM COMUM...
PROJETO DE EXTENSÃO - SEGURANÇA, INOVAÇÃO E SUSTENTABILIDADE PARA O BEM COMUM...PROJETO DE EXTENSÃO - SEGURANÇA, INOVAÇÃO E SUSTENTABILIDADE PARA O BEM COMUM...
PROJETO DE EXTENSÃO - SEGURANÇA, INOVAÇÃO E SUSTENTABILIDADE PARA O BEM COMUM...
 
Abordagem 2. Análise temática (Severino, 2013)_PdfToPowerPoint.pdf
Abordagem 2. Análise temática (Severino, 2013)_PdfToPowerPoint.pdfAbordagem 2. Análise temática (Severino, 2013)_PdfToPowerPoint.pdf
Abordagem 2. Análise temática (Severino, 2013)_PdfToPowerPoint.pdf
 
autismo conhecer.pptx, Conhecer para entender
autismo conhecer.pptx, Conhecer para entenderautismo conhecer.pptx, Conhecer para entender
autismo conhecer.pptx, Conhecer para entender
 
Slides Lição 1, CPAD, O Início da Caminhada, 2Tr24, Pr Henrique.pptx
Slides Lição 1, CPAD, O Início da Caminhada, 2Tr24, Pr Henrique.pptxSlides Lição 1, CPAD, O Início da Caminhada, 2Tr24, Pr Henrique.pptx
Slides Lição 1, CPAD, O Início da Caminhada, 2Tr24, Pr Henrique.pptx
 
EBOOK LINGUAGEM GRATUITO EUDCAÇÃO INFANTIL.pdf
EBOOK LINGUAGEM GRATUITO EUDCAÇÃO INFANTIL.pdfEBOOK LINGUAGEM GRATUITO EUDCAÇÃO INFANTIL.pdf
EBOOK LINGUAGEM GRATUITO EUDCAÇÃO INFANTIL.pdf
 
Abordagem 1. Análise textual (Severino, 2013).pdf
Abordagem 1. Análise textual (Severino, 2013).pdfAbordagem 1. Análise textual (Severino, 2013).pdf
Abordagem 1. Análise textual (Severino, 2013).pdf
 
AS REBELIÕES NA AMERICA IBERICA (Prof. Francisco Leite)
AS REBELIÕES NA AMERICA IBERICA (Prof. Francisco Leite)AS REBELIÕES NA AMERICA IBERICA (Prof. Francisco Leite)
AS REBELIÕES NA AMERICA IBERICA (Prof. Francisco Leite)
 
A CONCEPÇÃO FILO/SOCIOLÓGICA DE KARL MARX
A CONCEPÇÃO FILO/SOCIOLÓGICA DE KARL MARXA CONCEPÇÃO FILO/SOCIOLÓGICA DE KARL MARX
A CONCEPÇÃO FILO/SOCIOLÓGICA DE KARL MARX
 
SEMIOSES DO OLHAR - SLIDE PARA ESTUDO 123
SEMIOSES DO OLHAR - SLIDE PARA ESTUDO 123SEMIOSES DO OLHAR - SLIDE PARA ESTUDO 123
SEMIOSES DO OLHAR - SLIDE PARA ESTUDO 123
 
QUIZ - GEOGRAFIA - 8º ANO - FASES DO CAPITALISMO.pptx
QUIZ - GEOGRAFIA - 8º ANO - FASES DO CAPITALISMO.pptxQUIZ - GEOGRAFIA - 8º ANO - FASES DO CAPITALISMO.pptx
QUIZ - GEOGRAFIA - 8º ANO - FASES DO CAPITALISMO.pptx
 
Caça palavras - BULLYING
Caça palavras  -  BULLYING  Caça palavras  -  BULLYING
Caça palavras - BULLYING
 
Depende De Nós! José Ernesto Ferraresso.ppsx
Depende De Nós! José Ernesto Ferraresso.ppsxDepende De Nós! José Ernesto Ferraresso.ppsx
Depende De Nós! José Ernesto Ferraresso.ppsx
 
A Congregação de Jesus e Maria, conhecida também como os Eudistas, foi fundad...
A Congregação de Jesus e Maria, conhecida também como os Eudistas, foi fundad...A Congregação de Jesus e Maria, conhecida também como os Eudistas, foi fundad...
A Congregação de Jesus e Maria, conhecida também como os Eudistas, foi fundad...
 
Atividade de matemática para simulado de 2024
Atividade de matemática para simulado de 2024Atividade de matemática para simulado de 2024
Atividade de matemática para simulado de 2024
 
Abordagem 3. Análise interpretativa (Severino, 2013)_PdfToPowerPoint.pdf
Abordagem 3. Análise interpretativa (Severino, 2013)_PdfToPowerPoint.pdfAbordagem 3. Análise interpretativa (Severino, 2013)_PdfToPowerPoint.pdf
Abordagem 3. Análise interpretativa (Severino, 2013)_PdfToPowerPoint.pdf
 
Verbos - transitivos e intransitivos.pdf
Verbos -  transitivos e intransitivos.pdfVerbos -  transitivos e intransitivos.pdf
Verbos - transitivos e intransitivos.pdf
 
Ressonancia_magnetica_basica_slide_da_net.pptx
Ressonancia_magnetica_basica_slide_da_net.pptxRessonancia_magnetica_basica_slide_da_net.pptx
Ressonancia_magnetica_basica_slide_da_net.pptx
 
Como fazer um Feedback Eficaz - Comitê de Gestores
Como fazer um Feedback Eficaz - Comitê de GestoresComo fazer um Feedback Eficaz - Comitê de Gestores
Como fazer um Feedback Eficaz - Comitê de Gestores
 
Aula 6 - O Imperialismo e seu discurso civilizatório.pptx
Aula 6 - O Imperialismo e seu discurso civilizatório.pptxAula 6 - O Imperialismo e seu discurso civilizatório.pptx
Aula 6 - O Imperialismo e seu discurso civilizatório.pptx
 
Trabalho DAC História 25 de Abril de 1974
Trabalho DAC História 25 de Abril de 1974Trabalho DAC História 25 de Abril de 1974
Trabalho DAC História 25 de Abril de 1974
 

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