44
Caminho Mínimo entre Todos os Pares de Vértices Letícia Rodrigues Bueno UFABC

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:

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

Bibliografia Utilizada

CORMEN, T. H.; LEISERSON, C. E.; RIVEST, R. L. e STEIN, C.Introduction to Algorithms, 3a edição, MIT Press, 2009.