caminho m nimo entre todos os pares de v...
TRANSCRIPT
![Page 1: Caminho M nimo entre Todos os Pares de V rticesprofessor.ufabc.edu.br/.../materiais/floydwarshall.pdfCaminho Mínimo entre Todos os Pares de Vértices Algoritmo de Floyd-Warshall:](https://reader033.vdocuments.pub/reader033/viewer/2022041901/5e60a9abfdcce26d8a264d9f/html5/thumbnails/1.jpg)
Caminho Mínimo entre Todos os Pares deVértices
Letícia Rodrigues Bueno
UFABC
![Page 2: Caminho M nimo entre Todos os Pares de V rticesprofessor.ufabc.edu.br/.../materiais/floydwarshall.pdfCaminho Mínimo entre Todos os Pares de Vértices Algoritmo de Floyd-Warshall:](https://reader033.vdocuments.pub/reader033/viewer/2022041901/5e60a9abfdcce26d8a264d9f/html5/thumbnails/2.jpg)
Problemas de Caminho Mínimo
• Caminho mínimo de fonte única: algoritmo de Dijsktra;
![Page 3: Caminho M nimo entre Todos os Pares de V rticesprofessor.ufabc.edu.br/.../materiais/floydwarshall.pdfCaminho Mínimo entre Todos os Pares de Vértices Algoritmo de Floyd-Warshall:](https://reader033.vdocuments.pub/reader033/viewer/2022041901/5e60a9abfdcce26d8a264d9f/html5/thumbnails/3.jpg)
Problemas de Caminho Mínimo
• Caminho mínimo de fonte única: algoritmo de Dijsktra;
• Caminho mínimo de destino único: inverta a direçãodas arestas e aplique algoritmo de Dijstra;
![Page 4: Caminho M nimo entre Todos os Pares de V rticesprofessor.ufabc.edu.br/.../materiais/floydwarshall.pdfCaminho Mínimo entre Todos os Pares de Vértices Algoritmo de Floyd-Warshall:](https://reader033.vdocuments.pub/reader033/viewer/2022041901/5e60a9abfdcce26d8a264d9f/html5/thumbnails/4.jpg)
Problemas de Caminho Mínimo
• Caminho mínimo de fonte única: algoritmo de Dijsktra;
• Caminho mínimo de destino único: inverta a direçãodas arestas e aplique algoritmo de Dijstra;
• Caminho mínimo entre quaisquer vértices u e v :algoritmo de Dijsktra;
![Page 5: Caminho M nimo entre Todos os Pares de V rticesprofessor.ufabc.edu.br/.../materiais/floydwarshall.pdfCaminho Mínimo entre Todos os Pares de Vértices Algoritmo de Floyd-Warshall:](https://reader033.vdocuments.pub/reader033/viewer/2022041901/5e60a9abfdcce26d8a264d9f/html5/thumbnails/5.jpg)
Problemas de Caminho Mínimo
• Caminho mínimo de fonte única: algoritmo de Dijsktra;
• Caminho mínimo de destino único: inverta a direçãodas arestas e aplique algoritmo de Dijstra;
• Caminho mínimo entre quaisquer vértices u e v :algoritmo de Dijsktra;
• Caminho mínimo em grafos com pesos negativos:algoritmo de Bellman-Ford;
![Page 6: Caminho M nimo entre Todos os Pares de V rticesprofessor.ufabc.edu.br/.../materiais/floydwarshall.pdfCaminho Mínimo entre Todos os Pares de Vértices Algoritmo de Floyd-Warshall:](https://reader033.vdocuments.pub/reader033/viewer/2022041901/5e60a9abfdcce26d8a264d9f/html5/thumbnails/6.jpg)
Problemas de Caminho Mínimo
• Caminho mínimo de fonte única: algoritmo de Dijsktra;
• Caminho mínimo de destino único: inverta a direçãodas arestas e aplique algoritmo de Dijstra;
• Caminho mínimo entre quaisquer vértices u e v :algoritmo de Dijsktra;
• Caminho mínimo em grafos com pesos negativos:algoritmo de Bellman-Ford;
• Caminho mínimo entre todos os pares de vértices:algoritmo de Floyd-Warshall em tempo O(n3).
![Page 7: Caminho M nimo entre Todos os Pares de V rticesprofessor.ufabc.edu.br/.../materiais/floydwarshall.pdfCaminho Mínimo entre Todos os Pares de Vértices Algoritmo de Floyd-Warshall:](https://reader033.vdocuments.pub/reader033/viewer/2022041901/5e60a9abfdcce26d8a264d9f/html5/thumbnails/7.jpg)
Caminho Mínimo entre Todos os Pares de Vértices
Opções:• Se pesos são não negativos:
![Page 8: Caminho M nimo entre Todos os Pares de V rticesprofessor.ufabc.edu.br/.../materiais/floydwarshall.pdfCaminho Mínimo entre Todos os Pares de Vértices Algoritmo de Floyd-Warshall:](https://reader033.vdocuments.pub/reader033/viewer/2022041901/5e60a9abfdcce26d8a264d9f/html5/thumbnails/8.jpg)
Caminho Mínimo entre Todos os Pares de Vértices
Opções:• Se pesos são não negativos: executar algoritmo de
Dijkstra n vezes (uma para cada vértice);
![Page 9: Caminho M nimo entre Todos os Pares de V rticesprofessor.ufabc.edu.br/.../materiais/floydwarshall.pdfCaminho Mínimo entre Todos os Pares de Vértices Algoritmo de Floyd-Warshall:](https://reader033.vdocuments.pub/reader033/viewer/2022041901/5e60a9abfdcce26d8a264d9f/html5/thumbnails/9.jpg)
Caminho Mínimo entre Todos os Pares de Vértices
Opções:• Se pesos são não negativos: executar algoritmo de
Dijkstra n vezes (uma para cada vértice);
• Quanto custaria?
![Page 10: Caminho M nimo entre Todos os Pares de V rticesprofessor.ufabc.edu.br/.../materiais/floydwarshall.pdfCaminho Mínimo entre Todos os Pares de Vértices Algoritmo de Floyd-Warshall:](https://reader033.vdocuments.pub/reader033/viewer/2022041901/5e60a9abfdcce26d8a264d9f/html5/thumbnails/10.jpg)
Caminho Mínimo entre Todos os Pares de Vértices
Opções:• Se pesos são não negativos: executar algoritmo de
Dijkstra n vezes (uma para cada vértice);
• Quanto custaria? n × O((n + m) log n)
![Page 11: Caminho M nimo entre Todos os Pares de V rticesprofessor.ufabc.edu.br/.../materiais/floydwarshall.pdfCaminho Mínimo entre Todos os Pares de Vértices Algoritmo de Floyd-Warshall:](https://reader033.vdocuments.pub/reader033/viewer/2022041901/5e60a9abfdcce26d8a264d9f/html5/thumbnails/11.jpg)
Caminho Mínimo entre Todos os Pares de Vértices
Opções:• Se pesos são não negativos: executar algoritmo de
Dijkstra n vezes (uma para cada vértice);
• Quanto custaria? n × O((n + m) log n) = n × O(m log n)
![Page 12: Caminho M nimo entre Todos os Pares de V rticesprofessor.ufabc.edu.br/.../materiais/floydwarshall.pdfCaminho Mínimo entre Todos os Pares de Vértices Algoritmo de Floyd-Warshall:](https://reader033.vdocuments.pub/reader033/viewer/2022041901/5e60a9abfdcce26d8a264d9f/html5/thumbnails/12.jpg)
Caminho Mínimo entre Todos os Pares de Vértices
Opções:• Se pesos são não negativos: executar algoritmo de
Dijkstra n vezes (uma para cada vértice);
• Quanto custaria? n × O((n + m) log n) = n × O(m log n)= O(nm log n)
![Page 13: Caminho M nimo entre Todos os Pares de V rticesprofessor.ufabc.edu.br/.../materiais/floydwarshall.pdfCaminho Mínimo entre Todos os Pares de Vértices Algoritmo de Floyd-Warshall:](https://reader033.vdocuments.pub/reader033/viewer/2022041901/5e60a9abfdcce26d8a264d9f/html5/thumbnails/13.jpg)
Caminho Mínimo entre Todos os Pares de Vértices
Opções:• Se pesos são não negativos: executar algoritmo de
Dijkstra n vezes (uma para cada vértice);
• Quanto custaria? n × O((n + m) log n) = n × O(m log n)= O(nm log n) sendo O(n3 log n) para um grafo denso;
![Page 14: Caminho M nimo entre Todos os Pares de V rticesprofessor.ufabc.edu.br/.../materiais/floydwarshall.pdfCaminho Mínimo entre Todos os Pares de Vértices Algoritmo de Floyd-Warshall:](https://reader033.vdocuments.pub/reader033/viewer/2022041901/5e60a9abfdcce26d8a264d9f/html5/thumbnails/14.jpg)
Caminho Mínimo entre Todos os Pares de Vértices
Opções:• Se pesos são não negativos: executar algoritmo de
Dijkstra n vezes (uma para cada vértice);
• Quanto custaria? n × O((n + m) log n) = n × O(m log n)= O(nm log n) sendo O(n3 log n) para um grafo denso;
• Se pesos negativos:
![Page 15: Caminho M nimo entre Todos os Pares de V rticesprofessor.ufabc.edu.br/.../materiais/floydwarshall.pdfCaminho Mínimo entre Todos os Pares de Vértices Algoritmo de Floyd-Warshall:](https://reader033.vdocuments.pub/reader033/viewer/2022041901/5e60a9abfdcce26d8a264d9f/html5/thumbnails/15.jpg)
Caminho Mínimo entre Todos os Pares de Vértices
Opções:• Se pesos são não negativos: executar algoritmo de
Dijkstra n vezes (uma para cada vértice);
• Quanto custaria? n × O((n + m) log n) = n × O(m log n)= O(nm log n) sendo O(n3 log n) para um grafo denso;
• Se pesos negativos: executar algoritmo de Bellman-Fordn vezes (uma para cada vértice);
![Page 16: Caminho M nimo entre Todos os Pares de V rticesprofessor.ufabc.edu.br/.../materiais/floydwarshall.pdfCaminho Mínimo entre Todos os Pares de Vértices Algoritmo de Floyd-Warshall:](https://reader033.vdocuments.pub/reader033/viewer/2022041901/5e60a9abfdcce26d8a264d9f/html5/thumbnails/16.jpg)
Caminho Mínimo entre Todos os Pares de Vértices
Opções:• Se pesos são não negativos: executar algoritmo de
Dijkstra n vezes (uma para cada vértice);
• Quanto custaria? n × O((n + m) log n) = n × O(m log n)= O(nm log n) sendo O(n3 log n) para um grafo denso;
• Se pesos negativos: executar algoritmo de Bellman-Fordn vezes (uma para cada vértice);
• Quanto custaria?
![Page 17: Caminho M nimo entre Todos os Pares de V rticesprofessor.ufabc.edu.br/.../materiais/floydwarshall.pdfCaminho Mínimo entre Todos os Pares de Vértices Algoritmo de Floyd-Warshall:](https://reader033.vdocuments.pub/reader033/viewer/2022041901/5e60a9abfdcce26d8a264d9f/html5/thumbnails/17.jpg)
Caminho Mínimo entre Todos os Pares de Vértices
Opções:• Se pesos são não negativos: executar algoritmo de
Dijkstra n vezes (uma para cada vértice);
• Quanto custaria? n × O((n + m) log n) = n × O(m log n)= O(nm log n) sendo O(n3 log n) para um grafo denso;
• Se pesos negativos: executar algoritmo de Bellman-Fordn vezes (uma para cada vértice);
• Quanto custaria? n × O(nm)
![Page 18: Caminho M nimo entre Todos os Pares de V rticesprofessor.ufabc.edu.br/.../materiais/floydwarshall.pdfCaminho Mínimo entre Todos os Pares de Vértices Algoritmo de Floyd-Warshall:](https://reader033.vdocuments.pub/reader033/viewer/2022041901/5e60a9abfdcce26d8a264d9f/html5/thumbnails/18.jpg)
Caminho Mínimo entre Todos os Pares de Vértices
Opções:• Se pesos são não negativos: executar algoritmo de
Dijkstra n vezes (uma para cada vértice);
• Quanto custaria? n × O((n + m) log n) = n × O(m log n)= O(nm log n) sendo O(n3 log n) para um grafo denso;
• Se pesos negativos: executar algoritmo de Bellman-Fordn vezes (uma para cada vértice);
• Quanto custaria? n × O(nm)= O(n2m)
![Page 19: Caminho M nimo entre Todos os Pares de V rticesprofessor.ufabc.edu.br/.../materiais/floydwarshall.pdfCaminho Mínimo entre Todos os Pares de Vértices Algoritmo de Floyd-Warshall:](https://reader033.vdocuments.pub/reader033/viewer/2022041901/5e60a9abfdcce26d8a264d9f/html5/thumbnails/19.jpg)
Caminho Mínimo entre Todos os Pares de Vértices
Opções:• Se pesos são não negativos: executar algoritmo de
Dijkstra n vezes (uma para cada vértice);
• Quanto custaria? n × O((n + m) log n) = n × O(m log n)= O(nm log n) sendo O(n3 log n) para um grafo denso;
• Se pesos negativos: executar algoritmo de Bellman-Fordn vezes (uma para cada vértice);
• Quanto custaria? n × O(nm)= O(n2m) sendo O(n4) paraum grafo denso;
![Page 20: Caminho M nimo entre Todos os Pares de V rticesprofessor.ufabc.edu.br/.../materiais/floydwarshall.pdfCaminho Mínimo entre Todos os Pares de Vértices Algoritmo de Floyd-Warshall:](https://reader033.vdocuments.pub/reader033/viewer/2022041901/5e60a9abfdcce26d8a264d9f/html5/thumbnails/20.jpg)
Caminho Mínimo entre Todos os Pares de Vértices
Algoritmo de Floyd-Warshall:
![Page 21: Caminho M nimo entre Todos os Pares de V rticesprofessor.ufabc.edu.br/.../materiais/floydwarshall.pdfCaminho Mínimo entre Todos os Pares de Vértices Algoritmo de Floyd-Warshall:](https://reader033.vdocuments.pub/reader033/viewer/2022041901/5e60a9abfdcce26d8a264d9f/html5/thumbnails/21.jpg)
Caminho Mínimo entre Todos os Pares de Vértices
Algoritmo de Floyd-Warshall:• algoritmo de programação dinâmica;
![Page 22: Caminho M nimo entre Todos os Pares de V rticesprofessor.ufabc.edu.br/.../materiais/floydwarshall.pdfCaminho Mínimo entre Todos os Pares de Vértices Algoritmo de Floyd-Warshall:](https://reader033.vdocuments.pub/reader033/viewer/2022041901/5e60a9abfdcce26d8a264d9f/html5/thumbnails/22.jpg)
Caminho Mínimo entre Todos os Pares de Vértices
Algoritmo de Floyd-Warshall:• algoritmo de programação dinâmica;
• Pode ter pesos negativos, sem ciclos de pesos negativos;
![Page 23: Caminho M nimo entre Todos os Pares de V rticesprofessor.ufabc.edu.br/.../materiais/floydwarshall.pdfCaminho Mínimo entre Todos os Pares de Vértices Algoritmo de Floyd-Warshall:](https://reader033.vdocuments.pub/reader033/viewer/2022041901/5e60a9abfdcce26d8a264d9f/html5/thumbnails/23.jpg)
Caminho Mínimo entre Todos os Pares de Vértices
Algoritmo de Floyd-Warshall:• algoritmo de programação dinâmica;
• Pode ter pesos negativos, sem ciclos de pesos negativos;
• Grafo orientado G onde V (G) = 1,2,3, . . . ,n esubconjunto 1,2,3, . . . , k ;
![Page 24: Caminho M nimo entre Todos os Pares de V rticesprofessor.ufabc.edu.br/.../materiais/floydwarshall.pdfCaminho Mínimo entre Todos os Pares de Vértices Algoritmo de Floyd-Warshall:](https://reader033.vdocuments.pub/reader033/viewer/2022041901/5e60a9abfdcce26d8a264d9f/html5/thumbnails/24.jpg)
Caminho Mínimo entre Todos os Pares de Vértices
Algoritmo de Floyd-Warshall:• algoritmo de programação dinâmica;
• Pode ter pesos negativos, sem ciclos de pesos negativos;
• Grafo orientado G onde V (G) = 1,2,3, . . . ,n esubconjunto 1,2,3, . . . , k ;
• grafo representado por matriz de adjacências W onde:
![Page 25: Caminho M nimo entre Todos os Pares de V rticesprofessor.ufabc.edu.br/.../materiais/floydwarshall.pdfCaminho Mínimo entre Todos os Pares de Vértices Algoritmo de Floyd-Warshall:](https://reader033.vdocuments.pub/reader033/viewer/2022041901/5e60a9abfdcce26d8a264d9f/html5/thumbnails/25.jpg)
Caminho Mínimo entre Todos os Pares de Vértices
Algoritmo de Floyd-Warshall:• algoritmo de programação dinâmica;
• Pode ter pesos negativos, sem ciclos de pesos negativos;
• Grafo orientado G onde V (G) = 1,2,3, . . . ,n esubconjunto 1,2,3, . . . , k ;
• grafo representado por matriz de adjacências W onde:• W [i, j] = 0 se i = j;
![Page 26: Caminho M nimo entre Todos os Pares de V rticesprofessor.ufabc.edu.br/.../materiais/floydwarshall.pdfCaminho Mínimo entre Todos os Pares de Vértices Algoritmo de Floyd-Warshall:](https://reader033.vdocuments.pub/reader033/viewer/2022041901/5e60a9abfdcce26d8a264d9f/html5/thumbnails/26.jpg)
Caminho Mínimo entre Todos os Pares de Vértices
Algoritmo de Floyd-Warshall:• algoritmo de programação dinâmica;
• Pode ter pesos negativos, sem ciclos de pesos negativos;
• Grafo orientado G onde V (G) = 1,2,3, . . . ,n esubconjunto 1,2,3, . . . , k ;
• grafo representado por matriz de adjacências W onde:• W [i, j] = 0 se i = j;• W [i, j] = p(i, j) se i 6= j e (i, j) ∈ E(G) onde p(i, j) é o peso
da aresta (i, j);
![Page 27: Caminho M nimo entre Todos os Pares de V rticesprofessor.ufabc.edu.br/.../materiais/floydwarshall.pdfCaminho Mínimo entre Todos os Pares de Vértices Algoritmo de Floyd-Warshall:](https://reader033.vdocuments.pub/reader033/viewer/2022041901/5e60a9abfdcce26d8a264d9f/html5/thumbnails/27.jpg)
Caminho Mínimo entre Todos os Pares de Vértices
Algoritmo de Floyd-Warshall:• algoritmo de programação dinâmica;
• Pode ter pesos negativos, sem ciclos de pesos negativos;
• Grafo orientado G onde V (G) = 1,2,3, . . . ,n esubconjunto 1,2,3, . . . , k ;
• grafo representado por matriz de adjacências W onde:• W [i, j] = 0 se i = j;• W [i, j] = p(i, j) se i 6= j e (i, j) ∈ E(G) onde p(i, j) é o peso
da aresta (i, j);• W [i, j] = ∞ se i 6= j e (i, j) /∈ E(G);
![Page 28: Caminho M nimo entre Todos os Pares de V rticesprofessor.ufabc.edu.br/.../materiais/floydwarshall.pdfCaminho Mínimo entre Todos os Pares de Vértices Algoritmo de Floyd-Warshall:](https://reader033.vdocuments.pub/reader033/viewer/2022041901/5e60a9abfdcce26d8a264d9f/html5/thumbnails/28.jpg)
Caminho Mínimo entre Todos os Pares de Vértices
Algoritmo de Floyd-Warshall:• algoritmo de programação dinâmica;
• Pode ter pesos negativos, sem ciclos de pesos negativos;
• Grafo orientado G onde V (G) = 1,2,3, . . . ,n esubconjunto 1,2,3, . . . , k ;
• grafo representado por matriz de adjacências W onde:• W [i, j] = 0 se i = j;• W [i, j] = p(i, j) se i 6= j e (i, j) ∈ E(G) onde p(i, j) é o peso
da aresta (i, j);• W [i, j] = ∞ se i 6= j e (i, j) /∈ E(G);
• matriz pai :
![Page 29: Caminho M nimo entre Todos os Pares de V rticesprofessor.ufabc.edu.br/.../materiais/floydwarshall.pdfCaminho Mínimo entre Todos os Pares de Vértices Algoritmo de Floyd-Warshall:](https://reader033.vdocuments.pub/reader033/viewer/2022041901/5e60a9abfdcce26d8a264d9f/html5/thumbnails/29.jpg)
Caminho Mínimo entre Todos os Pares de Vértices
Algoritmo de Floyd-Warshall:• algoritmo de programação dinâmica;
• Pode ter pesos negativos, sem ciclos de pesos negativos;
• Grafo orientado G onde V (G) = 1,2,3, . . . ,n esubconjunto 1,2,3, . . . , k ;
• grafo representado por matriz de adjacências W onde:• W [i, j] = 0 se i = j;• W [i, j] = p(i, j) se i 6= j e (i, j) ∈ E(G) onde p(i, j) é o peso
da aresta (i, j);• W [i, j] = ∞ se i 6= j e (i, j) /∈ E(G);
• matriz pai :• pai[i, j] = null se i = j ou se não existe caminho de i para j;
![Page 30: Caminho M nimo entre Todos os Pares de V rticesprofessor.ufabc.edu.br/.../materiais/floydwarshall.pdfCaminho Mínimo entre Todos os Pares de Vértices Algoritmo de Floyd-Warshall:](https://reader033.vdocuments.pub/reader033/viewer/2022041901/5e60a9abfdcce26d8a264d9f/html5/thumbnails/30.jpg)
Caminho Mínimo entre Todos os Pares de Vértices
Algoritmo de Floyd-Warshall:• algoritmo de programação dinâmica;
• Pode ter pesos negativos, sem ciclos de pesos negativos;
• Grafo orientado G onde V (G) = 1,2,3, . . . ,n esubconjunto 1,2,3, . . . , k ;
• grafo representado por matriz de adjacências W onde:• W [i, j] = 0 se i = j;• W [i, j] = p(i, j) se i 6= j e (i, j) ∈ E(G) onde p(i, j) é o peso
da aresta (i, j);• W [i, j] = ∞ se i 6= j e (i, j) /∈ E(G);
• matriz pai :• pai[i, j] = null se i = j ou se não existe caminho de i para j;• pai[i, j]: predecessor de j em caminho mínimo a partir de i.
![Page 31: Caminho M nimo entre Todos os Pares de V rticesprofessor.ufabc.edu.br/.../materiais/floydwarshall.pdfCaminho Mínimo entre Todos os Pares de Vértices Algoritmo de Floyd-Warshall:](https://reader033.vdocuments.pub/reader033/viewer/2022041901/5e60a9abfdcce26d8a264d9f/html5/thumbnails/31.jpg)
Caminho Mínimo entre Todos os Pares de Vértices
Algoritmo de Floyd-Warshall:
![Page 32: Caminho M nimo entre Todos os Pares de V rticesprofessor.ufabc.edu.br/.../materiais/floydwarshall.pdfCaminho Mínimo entre Todos os Pares de Vértices Algoritmo de Floyd-Warshall:](https://reader033.vdocuments.pub/reader033/viewer/2022041901/5e60a9abfdcce26d8a264d9f/html5/thumbnails/32.jpg)
Caminho Mínimo entre Todos os Pares de Vértices
Algoritmo de Floyd-Warshall:• Para i , j ∈ V (G), considera todos caminhos de i a j em que
vértices intermediários pertencem a 1,2,3, . . . , k , onde p éo mais curto de todos;
![Page 33: Caminho M nimo entre Todos os Pares de V rticesprofessor.ufabc.edu.br/.../materiais/floydwarshall.pdfCaminho Mínimo entre Todos os Pares de Vértices Algoritmo de Floyd-Warshall:](https://reader033.vdocuments.pub/reader033/viewer/2022041901/5e60a9abfdcce26d8a264d9f/html5/thumbnails/33.jpg)
Caminho Mínimo entre Todos os Pares de Vértices
Algoritmo de Floyd-Warshall:• Para i , j ∈ V (G), considera todos caminhos de i a j em que
vértices intermediários pertencem a 1,2,3, . . . , k , onde p éo mais curto de todos;
• Analisa caminho p e caminhos mais curtos de i a j comtodos vértices intermediários em 1,2,3, . . . , k − 1;
![Page 34: Caminho M nimo entre Todos os Pares de V rticesprofessor.ufabc.edu.br/.../materiais/floydwarshall.pdfCaminho Mínimo entre Todos os Pares de Vértices Algoritmo de Floyd-Warshall:](https://reader033.vdocuments.pub/reader033/viewer/2022041901/5e60a9abfdcce26d8a264d9f/html5/thumbnails/34.jpg)
Caminho Mínimo entre Todos os Pares de Vértices
Algoritmo de Floyd-Warshall:• Para i , j ∈ V (G), considera todos caminhos de i a j em que
vértices intermediários pertencem a 1,2,3, . . . , k , onde p éo mais curto de todos;
• Analisa caminho p e caminhos mais curtos de i a j comtodos vértices intermediários em 1,2,3, . . . , k − 1;
• Análise depende de k ser vértice intermediário de p;
![Page 35: Caminho M nimo entre Todos os Pares de V rticesprofessor.ufabc.edu.br/.../materiais/floydwarshall.pdfCaminho Mínimo entre Todos os Pares de Vértices Algoritmo de Floyd-Warshall:](https://reader033.vdocuments.pub/reader033/viewer/2022041901/5e60a9abfdcce26d8a264d9f/html5/thumbnails/35.jpg)
Caminho Mínimo entre Todos os Pares de Vértices
• Algoritmo de Floyd-Warshall:
3
45
1
23 4
-5-4
6
8
21
7
dist =
0 3 8 ∞ −4∞ 0 ∞ 1 7∞ 4 0 ∞ ∞
2 ∞ −5 0 ∞
∞ ∞ ∞ 6 0
pai =
null 1 1 null 1null null null 2 2null 3 null null null4 null 4 null null
null null null 5 null
![Page 36: Caminho M nimo entre Todos os Pares de V rticesprofessor.ufabc.edu.br/.../materiais/floydwarshall.pdfCaminho Mínimo entre Todos os Pares de Vértices Algoritmo de Floyd-Warshall:](https://reader033.vdocuments.pub/reader033/viewer/2022041901/5e60a9abfdcce26d8a264d9f/html5/thumbnails/36.jpg)
Caminho Mínimo entre Todos os Pares de Vértices
• Algoritmo de Floyd-Warshall:
3
45
1
23 4
-5-4
6
8
21
7
dist =
0 3 8 ∞ −4∞ 0 ∞ 1 7∞ 4 0 ∞ ∞
2 5 −5 0 −2∞ ∞ ∞ 6 0
pai =
null 1 1 null 1null null null 2 2null 3 null null null4 1 4 null 1
null null null 5 null
![Page 37: Caminho M nimo entre Todos os Pares de V rticesprofessor.ufabc.edu.br/.../materiais/floydwarshall.pdfCaminho Mínimo entre Todos os Pares de Vértices Algoritmo de Floyd-Warshall:](https://reader033.vdocuments.pub/reader033/viewer/2022041901/5e60a9abfdcce26d8a264d9f/html5/thumbnails/37.jpg)
Caminho Mínimo entre Todos os Pares de Vértices
• Algoritmo de Floyd-Warshall:
3
45
1
23 4
-5-4
6
8
21
7
dist =
0 3 8 4 −4∞ 0 ∞ 1 7∞ 4 0 5 112 5 −5 0 −2∞ ∞ ∞ 6 0
pai =
null 1 1 2 1null null null 2 2null 3 null 2 24 1 4 null 1
null null null 5 null
![Page 38: Caminho M nimo entre Todos os Pares de V rticesprofessor.ufabc.edu.br/.../materiais/floydwarshall.pdfCaminho Mínimo entre Todos os Pares de Vértices Algoritmo de Floyd-Warshall:](https://reader033.vdocuments.pub/reader033/viewer/2022041901/5e60a9abfdcce26d8a264d9f/html5/thumbnails/38.jpg)
Caminho Mínimo entre Todos os Pares de Vértices
• Algoritmo de Floyd-Warshall:
3
45
1
23 4
-5-4
6
8
21
7
dist =
0 3 8 4 −4∞ 0 ∞ 1 7∞ 4 0 5 112 −1 −5 0 −2∞ ∞ ∞ 6 0
pai =
null 1 1 2 1null null null 2 2null 3 null 2 24 3 4 null 1
null null null 5 null
![Page 39: Caminho M nimo entre Todos os Pares de V rticesprofessor.ufabc.edu.br/.../materiais/floydwarshall.pdfCaminho Mínimo entre Todos os Pares de Vértices Algoritmo de Floyd-Warshall:](https://reader033.vdocuments.pub/reader033/viewer/2022041901/5e60a9abfdcce26d8a264d9f/html5/thumbnails/39.jpg)
Caminho Mínimo entre Todos os Pares de Vértices
• Algoritmo de Floyd-Warshall:
3
45
1
23 4
-5-4
6
8
21
7
dist =
0 3 −1 4 −43 0 −4 1 −17 4 0 5 32 −1 −5 0 −28 ∞ 1 6 0
pai =
null 1 4 2 14 null 4 2 14 3 null 2 14 3 4 null 14 3 4 5 null
![Page 40: Caminho M nimo entre Todos os Pares de V rticesprofessor.ufabc.edu.br/.../materiais/floydwarshall.pdfCaminho Mínimo entre Todos os Pares de Vértices Algoritmo de Floyd-Warshall:](https://reader033.vdocuments.pub/reader033/viewer/2022041901/5e60a9abfdcce26d8a264d9f/html5/thumbnails/40.jpg)
Caminho Mínimo entre Todos os Pares de Vértices
• Algoritmo de Floyd-Warshall:
3
45
1
23 4
-5-4
6
8
21
7
dist =
0 1 −3 2 −43 0 −4 1 −17 4 0 5 32 −1 −5 0 −28 5 1 6 0
pai =
null 3 4 5 14 null 4 2 14 3 null 2 14 3 4 null 14 3 4 5 null
![Page 41: Caminho M nimo entre Todos os Pares de V rticesprofessor.ufabc.edu.br/.../materiais/floydwarshall.pdfCaminho Mínimo entre Todos os Pares de Vértices Algoritmo de Floyd-Warshall:](https://reader033.vdocuments.pub/reader033/viewer/2022041901/5e60a9abfdcce26d8a264d9f/html5/thumbnails/41.jpg)
Complexidade do Algoritmo de Floyd-Warshall
1 floyd-warshall(W):2 dist = W3 para k=1 a n faça4 para i=1 a n faça5 para j=1 a n faça6 dist[i,j]=min(d[i,j],d[i,k]+d[k,j])7 retorne dist;
![Page 42: Caminho M nimo entre Todos os Pares de V rticesprofessor.ufabc.edu.br/.../materiais/floydwarshall.pdfCaminho Mínimo entre Todos os Pares de Vértices Algoritmo de Floyd-Warshall:](https://reader033.vdocuments.pub/reader033/viewer/2022041901/5e60a9abfdcce26d8a264d9f/html5/thumbnails/42.jpg)
Complexidade do Algoritmo de Floyd-Warshall
1 floyd-warshall(W):2 dist = W3 para k=1 a n faça4 para i=1 a n faça5 para j=1 a n faça6 dist[i,j]=min(d[i,j],d[i,k]+d[k,j])7 retorne dist;
Complexidade:
![Page 43: Caminho M nimo entre Todos os Pares de V rticesprofessor.ufabc.edu.br/.../materiais/floydwarshall.pdfCaminho Mínimo entre Todos os Pares de Vértices Algoritmo de Floyd-Warshall:](https://reader033.vdocuments.pub/reader033/viewer/2022041901/5e60a9abfdcce26d8a264d9f/html5/thumbnails/43.jpg)
Complexidade do Algoritmo de Floyd-Warshall
1 floyd-warshall(W):2 dist = W3 para k=1 a n faça4 para i=1 a n faça5 para j=1 a n faça6 dist[i,j]=min(d[i,j],d[i,k]+d[k,j])7 retorne dist;
Complexidade:
• O(n3);
![Page 44: Caminho M nimo entre Todos os Pares de V rticesprofessor.ufabc.edu.br/.../materiais/floydwarshall.pdfCaminho Mínimo entre Todos os Pares de Vértices Algoritmo de Floyd-Warshall:](https://reader033.vdocuments.pub/reader033/viewer/2022041901/5e60a9abfdcce26d8a264d9f/html5/thumbnails/44.jpg)
Bibliografia Utilizada
CORMEN, T. H.; LEISERSON, C. E.; RIVEST, R. L. e STEIN, C.Introduction to Algorithms, 3a edição, MIT Press, 2009.