124
1 Al go rit mos de Di jk stra e Bell man - Ford Prof. Celso A. W. Santos J702 :: Teoria de Grafos [email protected] 24/04/2020

Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos [email protected]

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

1

Algoritmos de Dijkstra eBellman-Ford

Prof. Celso A. W. Santos

J702 :: Teoria de Grafos

[email protected]

24/04/2020

Page 2: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

2

Mais avisos...

� Avaliações serão realizadas por listas de exercícios, disponibilizadasem meu site todas as sextas-feiras.

. Prazo de entrega: até a quinta-feira da semana seguinte, às 23h59m

. Submissão deve ser feita em formato PDF

. Enviar com assunto no e-mail:[J702 - Lista X] Matrícula XXXXXXX ← tudo maiúsculo!

Exemplo: [J702 - Lista 3] Matrícula D648H12

. Sim... eu vou zerar estudos submetidos fora do padrão :)

� Todas as listas deverão ser entregues presencialmente ao retorno dasatividades!

Se você não tem impressora...

� As notas das Listas 2 e 3 estarão disponíveis no site na sexta-feiraque vem, dia 01/05.

Page 3: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

2

Mais avisos...

� Avaliações serão realizadas por listas de exercícios, disponibilizadasem meu site todas as sextas-feiras.

. Prazo de entrega: até a quinta-feira da semana seguinte, às 23h59m

. Submissão deve ser feita em formato PDF

. Enviar com assunto no e-mail:[J702 - Lista X] Matrícula XXXXXXX ← tudo maiúsculo!

Exemplo: [J702 - Lista 3] Matrícula D648H12

. Sim... eu vou zerar estudos submetidos fora do padrão :)

� Todas as listas deverão ser entregues presencialmente ao retorno dasatividades!

Se você não tem impressora...

� As notas das Listas 2 e 3 estarão disponíveis no site na sexta-feiraque vem, dia 01/05.

Page 4: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

2

Mais avisos...

� Avaliações serão realizadas por listas de exercícios, disponibilizadasem meu site todas as sextas-feiras.

. Prazo de entrega: até a quinta-feira da semana seguinte, às 23h59m

. Submissão deve ser feita em formato PDF

. Enviar com assunto no e-mail:[J702 - Lista X] Matrícula XXXXXXX ← tudo maiúsculo!

Exemplo: [J702 - Lista 3] Matrícula D648H12

. Sim... eu vou zerar estudos submetidos fora do padrão :)

� Todas as listas deverão ser entregues presencialmente ao retorno dasatividades!

Se você não tem impressora...

� As notas das Listas 2 e 3 estarão disponíveis no site na sexta-feiraque vem, dia 01/05.

Page 5: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

2

Mais avisos...

� Avaliações serão realizadas por listas de exercícios, disponibilizadasem meu site todas as sextas-feiras.

. Prazo de entrega: até a quinta-feira da semana seguinte, às 23h59m

. Submissão deve ser feita em formato PDF

. Enviar com assunto no e-mail:[J702 - Lista X] Matrícula XXXXXXX ← tudo maiúsculo!

Exemplo: [J702 - Lista 3] Matrícula D648H12

. Sim... eu vou zerar estudos submetidos fora do padrão :)

� Todas as listas deverão ser entregues presencialmente ao retorno dasatividades!

Se você não tem impressora...

� As notas das Listas 2 e 3 estarão disponíveis no site na sexta-feiraque vem, dia 01/05.

Page 6: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

2

Mais avisos...

� Avaliações serão realizadas por listas de exercícios, disponibilizadasem meu site todas as sextas-feiras.

. Prazo de entrega: até a quinta-feira da semana seguinte, às 23h59m

. Submissão deve ser feita em formato PDF

. Enviar com assunto no e-mail:[J702 - Lista X] Matrícula XXXXXXX ← tudo maiúsculo!

Exemplo: [J702 - Lista 3] Matrícula D648H12

. Sim... eu vou zerar estudos submetidos fora do padrão :)

� Todas as listas deverão ser entregues presencialmente ao retorno dasatividades!

Se você não tem impressora...

� As notas das Listas 2 e 3 estarão disponíveis no site na sexta-feiraque vem, dia 01/05.

Page 7: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

2

Mais avisos...

� Avaliações serão realizadas por listas de exercícios, disponibilizadasem meu site todas as sextas-feiras.

. Prazo de entrega: até a quinta-feira da semana seguinte, às 23h59m

. Submissão deve ser feita em formato PDF

. Enviar com assunto no e-mail:[J702 - Lista X] Matrícula XXXXXXX ← tudo maiúsculo!

Exemplo: [J702 - Lista 3] Matrícula D648H12

. Sim... eu vou zerar estudos submetidos fora do padrão :)

� Todas as listas deverão ser entregues presencialmente ao retorno dasatividades!

Se você não tem impressora...

� As notas das Listas 2 e 3 estarão disponíveis no site na sexta-feiraque vem, dia 01/05.

Page 8: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

2

Mais avisos...

� Avaliações serão realizadas por listas de exercícios, disponibilizadasem meu site todas as sextas-feiras.

. Prazo de entrega: até a quinta-feira da semana seguinte, às 23h59m

. Submissão deve ser feita em formato PDF

. Enviar com assunto no e-mail:[J702 - Lista X] Matrícula XXXXXXX ← tudo maiúsculo!

Exemplo: [J702 - Lista 3] Matrícula D648H12

. Sim... eu vou zerar estudos submetidos fora do padrão :)

� Todas as listas deverão ser entregues presencialmente ao retorno dasatividades!

Se você não tem impressora...

� As notas das Listas 2 e 3 estarão disponíveis no site na sexta-feiraque vem, dia 01/05.

Page 9: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

3

Na aula passada...

Page 10: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

4

Grafos ponderados

Definição. Um grafo ponderado é uma tripla G = (V,U,w) tal que V éum conjunto de vértices, E é um conjunto de arestas, e w : E → R éuma função peso que atribui um valor real a cada aresta do grafo.

s

b

c

d

e

f

g

t

4

3

2 3

5 5

6

1

5

23

7

4

Page 11: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

5

Caminho Mínimo

Caminho MínimoEntrada: Um grafo ponderado G = (V,U,w), um vértice fonte s ∈ V eum vértice destino t ∈ V .Pergunta: Qual é o menor caminho entre s e t? E qual é o seu custo?

s

b

c

d

e

f

g

t

4

3

2 3

5 5

6

1

5

23

7

4

Page 12: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

5

Caminho Mínimo

Caminho MínimoEntrada: Um grafo ponderado G = (V,U,w), um vértice fonte s ∈ V eum vértice destino t ∈ V .Pergunta: Qual é o menor caminho entre s e t? E qual é o seu custo?

s

b

c

d

e

f

g

t

4

3

23

5 5

6

1

5

23

7

4

Page 13: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

5

Caminho Mínimo

Caminho MínimoEntrada: Um grafo ponderado G = (V,U,w), um vértice fonte s ∈ V eum vértice destino t ∈ V .Pergunta: Qual é o menor caminho entre s e t? E qual é o seu custo?

s

b

c

d

e

f

g

t

4

3

23

5 5

6

1

5

23

7

4

COMO ENCONTRAR O MENOR CAMINHO?

Page 14: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

6

Algoritmos

Algoritmos para resolver Caminho Mínimo

� Algoritmo de Dijkstra. Single-source. Dados vértices s, t ∈ V , encontra o menor caminho entre s e t.. Tem um problema!

� Algoritmo de Bellman-Ford. Single-source. “Resolve” o problema!

� Algoritmo de Floyd-Warshall. All-pairs. Mais rápido que executar Single-source para todos os vértices

Page 15: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

6

Algoritmos

Algoritmos para resolver Caminho Mínimo

� Algoritmo de Dijkstra. Single-source. Dados vértices s, t ∈ V , encontra o menor caminho entre s e t.. Tem um problema!

� Algoritmo de Bellman-Ford. Single-source. “Resolve” o problema!

� Algoritmo de Floyd-Warshall. All-pairs. Mais rápido que executar Single-source para todos os vértices

Page 16: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

6

Algoritmos

Algoritmos para resolver Caminho Mínimo

� Algoritmo de Dijkstra. Single-source. Dados vértices s, t ∈ V , encontra o menor caminho entre s e t.. Tem um problema!

� Algoritmo de Bellman-Ford. Single-source. “Resolve” o problema!

� Algoritmo de Floyd-Warshall. All-pairs. Mais rápido que executar Single-source para todos os vértices

Page 17: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

6

Algoritmos

Algoritmos para resolver Caminho Mínimo

� Algoritmo de Dijkstra. Single-source. Dados vértices s, t ∈ V , encontra o menor caminho entre s e t.. Tem um problema!

� Algoritmo de Bellman-Ford. Single-source. “Resolve” o problema!

� Algoritmo de Floyd-Warshall. All-pairs. Mais rápido que executar Single-source para todos os vértices

Page 18: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

6

Algoritmos

Algoritmos para resolver Caminho Mínimo

� Algoritmo de Dijkstra. Single-source. Dados vértices s, t ∈ V , encontra o menor caminho entre s e t.. Tem um problema!

� Algoritmo de Bellman-Ford. Single-source. “Resolve” o problema!

� Algoritmo de Floyd-Warshall. All-pairs. Mais rápido que executar Single-source para todos os vértices

Page 19: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

6

Algoritmos

Algoritmos para resolver Caminho Mínimo

� Algoritmo de Dijkstra. Single-source. Dados vértices s, t ∈ V , encontra o menor caminho entre s e t.. Tem um problema!

� Algoritmo de Bellman-Ford. Single-source. “Resolve” o problema!

� Algoritmo de Floyd-Warshall. All-pairs. Mais rápido que executar Single-source para todos os vértices

Page 20: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

6

Algoritmos

Algoritmos para resolver Caminho Mínimo

� Algoritmo de Dijkstra. Single-source. Dados vértices s, t ∈ V , encontra o menor caminho entre s e t.. Tem um problema!

� Algoritmo de Bellman-Ford. Single-source. “Resolve” o problema!

� Algoritmo de Floyd-Warshall. All-pairs. Mais rápido que executar Single-source para todos os vértices

Page 21: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

6

Algoritmos

Algoritmos para resolver Caminho Mínimo

� Algoritmo de Dijkstra. Single-source. Dados vértices s, t ∈ V , encontra o menor caminho entre s e t.. Tem um problema!

� Algoritmo de Bellman-Ford. Single-source. “Resolve” o problema!

� Algoritmo de Floyd-Warshall. All-pairs. Mais rápido que executar Single-source para todos os vértices

Page 22: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

6

Algoritmos

Algoritmos para resolver Caminho Mínimo

� Algoritmo de Dijkstra. Single-source. Dados vértices s, t ∈ V , encontra o menor caminho entre s e t.. Tem um problema!

� Algoritmo de Bellman-Ford. Single-source. “Resolve” o problema!

� Algoritmo de Floyd-Warshall. All-pairs. Mais rápido que executar Single-source para todos os vértices

Page 23: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

6

Algoritmos

Algoritmos para resolver Caminho Mínimo

� Algoritmo de Dijkstra. Single-source. Dados vértices s, t ∈ V , encontra o menor caminho entre s e t.. Tem um problema!

� Algoritmo de Bellman-Ford. Single-source. “Resolve” o problema!

� Algoritmo de Floyd-Warshall. All-pairs. Mais rápido que executar Single-source para todos os vértices

Page 24: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

6

Algoritmos

Algoritmos para resolver Caminho Mínimo

� Algoritmo de Dijkstra. Single-source. Dados vértices s, t ∈ V , encontra o menor caminho entre s e t.. Tem um problema!

� Algoritmo de Bellman-Ford. Single-source. “Resolve” o problema!

� Algoritmo de Floyd-Warshall. All-pairs. Mais rápido que executar Single-source para todos os vértices

Page 25: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

7

Algoritmo de Dijkstra

Page 26: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

8

Algoritmo de Dijkstra

Inicializa-Single-Source(G, s):

para todo vértice v ∈ V :d[v] =∞;π[v] =⊥;

d[s] = 0;

Relaxa(u, v, w):se d[v] > d[u] + w(u, v):

d[v] = d[u] + w(u, v);π[v] = u;

Dijkstra(G, s):Inicializa-Single-Source(G, s)S = ∅;Q = V ;enquanto Q 6= ∅ faça:

u = Extrai-Min(Q);S = S ∪ {u};p/ todo vértice v ∈ N(u) faça:

Relaxa(u, v, w);

Page 27: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

8

Algoritmo de Dijkstra

Inicializa-Single-Source(G, s):

para todo vértice v ∈ V :d[v] =∞;π[v] =⊥;

d[s] = 0;

Relaxa(u, v, w):se d[v] > d[u] + w(u, v):

d[v] = d[u] + w(u, v);π[v] = u;

Dijkstra(G, s):Inicializa-Single-Source(G, s)S = ∅;Q = V ;enquanto Q 6= ∅ faça:

u = Extrai-Min(Q);S = S ∪ {u};p/ todo vértice v ∈ N(u) faça:

Relaxa(u, v, w);

Page 28: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

8

Algoritmo de Dijkstra

Inicializa-Single-Source(G, s):

para todo vértice v ∈ V :d[v] =∞;π[v] =⊥;

d[s] = 0;

Relaxa(u, v, w):se d[v] > d[u] + w(u, v):

d[v] = d[u] + w(u, v);π[v] = u;

Dijkstra(G, s):Inicializa-Single-Source(G, s)S = ∅;Q = V ;enquanto Q 6= ∅ faça:

u = Extrai-Min(Q);S = S ∪ {u};p/ todo vértice v ∈ N(u) faça:

Relaxa(u, v, w);

Page 29: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

9

Exemplo de Execução :: Algoritmo de Dijkstra

d

s b c d e f g t

π

s b c d e f g t

s

b

c

d

e

f

g

t

4

3

2 3

5 5

6

1

5

23

7

4

Page 30: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

9

Exemplo de Execução :: Algoritmo de Dijkstra

d 0

s

∞b

c

∞d

e

f

g

∞t

π ⊥

s

b

c

d

e

f

g

t

s

b

c

d

e

f

g

t

4

3

2 3

5 5

6

1

5

23

7

4

Page 31: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

9

Exemplo de Execução :: Algoritmo de Dijkstra

d 0

s

∞b

c

∞d

e

f

g

∞t

π ⊥

s

b

c

d

e

f

g

t

s

b

c

d

e

f

g

t

4

3

2 3

5 5

6

1

5

23

7

4

Page 32: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

9

Exemplo de Execução :: Algoritmo de Dijkstra

d 0

s

4

b

c

∞d

e

f

g

∞t

π ⊥

s

s

b

c

d

e

f

g

t

s

b

c

d

e

f

g

t

4

3

2 3

5 5

6

1

5

23

7

4

Page 33: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

9

Exemplo de Execução :: Algoritmo de Dijkstra

d 0

s

4

b

3

c

∞d

e

f

g

∞t

π ⊥

s

s

b

s

c

d

e

f

g

t

s

b

c

d

e

f

g

t

4

3

2 3

5 5

6

1

5

23

7

4

Page 34: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

9

Exemplo de Execução :: Algoritmo de Dijkstra

d 0

s

4

b

3

c

∞d

e

f

g

∞t

π ⊥

s

s

b

s

c

d

e

f

g

t

s

b

c

d

e

f

g

t

4

3

2 3

5 5

6

1

5

23

7

4

Page 35: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

9

Exemplo de Execução :: Algoritmo de Dijkstra

d 0

s

4

b

3

c

∞d

e

f

g

∞t

π ⊥

s

s

b

s

c

d

e

f

g

t

s

b

c

d

e

f

g

t

4

3

2 3

5 5

6

1

5

23

7

4

Page 36: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

9

Exemplo de Execução :: Algoritmo de Dijkstra

d 0

s

4

b

3

c

6

d

e

f

g

∞t

π ⊥

s

s

b

s

c

c

d

e

f

g

t

s

b

c

d

e

f

g

t

4

3

2 3

5 5

6

1

5

23

7

4

Page 37: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

9

Exemplo de Execução :: Algoritmo de Dijkstra

d 0

s

4

b

3

c

6

d

9

e

f

g

∞t

π ⊥

s

s

b

s

c

c

d

c

e

f

g

t

s

b

c

d

e

f

g

t

4

3

2 3

5 5

6

1

5

23

7

4

Page 38: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

9

Exemplo de Execução :: Algoritmo de Dijkstra

d 0

s

4

b

3

c

6

d

9

e

f

g

∞t

π ⊥

s

s

b

s

c

c

d

c

e

f

g

t

s

b

c

d

e

f

g

t

4

3

2 3

5 5

6

1

5

23

7

4

Page 39: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

9

Exemplo de Execução :: Algoritmo de Dijkstra

d 0

s

4

b

3

c

6

d

9

e

f

g

∞t

π ⊥

s

s

b

s

c

c

d

c

e

f

g

t

s

b

c

d

e

f

g

t

4

3

2 3

5 5

6

1

5

23

7

4

Page 40: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

9

Exemplo de Execução :: Algoritmo de Dijkstra

d 0

s

4

b

3

c

6

d

9

e

f

g

∞t

π ⊥

s

s

b

s

c

c

d

c

e

f

g

t

s

b

c

d

e

f

g

t

4

3

2 3

5 5

6

1

5

23

7

4

Page 41: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

9

Exemplo de Execução :: Algoritmo de Dijkstra

d 0

s

4

b

3

c

6

d

9

e

f

g

∞t

π ⊥

s

s

b

s

c

c

d

c

e

f

g

t

s

b

c

d

e

f

g

t

4

3

2 3

5 5

6

1

5

23

7

4

Page 42: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

9

Exemplo de Execução :: Algoritmo de Dijkstra

d 0

s

4

b

3

c

6

d

7

e

f

g

∞t

π ⊥

s

s

b

s

c

c

d

d

e

f

g

t

s

b

c

d

e

f

g

t

4

3

2 3

5 5

6

1

5

23

7

4

Page 43: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

9

Exemplo de Execução :: Algoritmo de Dijkstra

d 0

s

4

b

3

c

6

d

7

e

11

f

g

∞t

π ⊥

s

s

b

s

c

c

d

d

e

d

f

g

t

s

b

c

d

e

f

g

t

4

3

2 3

5 5

6

1

5

23

7

4

Page 44: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

9

Exemplo de Execução :: Algoritmo de Dijkstra

d 0

s

4

b

3

c

6

d

7

e

11

f

9

g

∞t

π ⊥

s

s

b

s

c

c

d

d

e

d

f

d

g

t

s

b

c

d

e

f

g

t

4

3

2 3

5 5

6

1

5

23

7

4

Page 45: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

9

Exemplo de Execução :: Algoritmo de Dijkstra

d 0

s

4

b

3

c

6

d

7

e

11

f

9

g

∞t

π ⊥

s

s

b

s

c

c

d

d

e

d

f

d

g

t

s

b

c

d

e

f

g

t

4

3

2 3

5 5

6

1

5

23

7

4

Page 46: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

9

Exemplo de Execução :: Algoritmo de Dijkstra

d 0

s

4

b

3

c

6

d

7

e

11

f

9

g

∞t

π ⊥

s

s

b

s

c

c

d

d

e

d

f

d

g

t

s

b

c

d

e

f

g

t

4

3

2 3

5 5

6

1

5

23

7

4

Page 47: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

9

Exemplo de Execução :: Algoritmo de Dijkstra

d 0

s

4

b

3

c

6

d

7

e

11

f

9

g

∞t

π ⊥

s

s

b

s

c

c

d

d

e

d

f

d

g

t

s

b

c

d

e

f

g

t

4

3

2 3

5 5

6

1

5

23

7

4

Page 48: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

9

Exemplo de Execução :: Algoritmo de Dijkstra

d 0

s

4

b

3

c

6

d

7

e

11

f

9

g

∞t

π ⊥

s

s

b

s

c

c

d

d

e

d

f

d

g

t

s

b

c

d

e

f

g

t

4

3

2 3

5 5

6

1

5

23

7

4

Page 49: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

9

Exemplo de Execução :: Algoritmo de Dijkstra

d 0

s

4

b

3

c

6

d

7

e

11

f

9

g

13

t

π ⊥

s

s

b

s

c

c

d

d

e

d

f

d

g

g

t

s

b

c

d

e

f

g

t

4

3

2 3

5 5

6

1

5

23

7

4

Page 50: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

9

Exemplo de Execução :: Algoritmo de Dijkstra

d 0

s

4

b

3

c

6

d

7

e

11

f

9

g

13

t

π ⊥

s

s

b

s

c

c

d

d

e

d

f

d

g

g

t

s

b

c

d

e

f

g

t

4

3

2 3

5 5

6

1

5

23

7

4

Page 51: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

9

Exemplo de Execução :: Algoritmo de Dijkstra

d 0

s

4

b

3

c

6

d

7

e

11

f

9

g

13

t

π ⊥

s

s

b

s

c

c

d

d

e

d

f

d

g

g

t

s

b

c

d

e

f

g

t

4

3

2 3

5 5

6

1

5

23

7

4

Page 52: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

9

Exemplo de Execução :: Algoritmo de Dijkstra

d 0

s

4

b

3

c

6

d

7

e

11

f

9

g

13

t

π ⊥

s

s

b

s

c

c

d

d

e

d

f

d

g

g

t

s

b

c

d

e

f

g

t

4

3

2 3

5 5

6

1

5

23

7

4

Page 53: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

9

Exemplo de Execução :: Algoritmo de Dijkstra

d 0

s

4

b

3

c

6

d

7

e

11

f

9

g

13

t

π ⊥

s

s

b

s

c

c

d

d

e

d

f

d

g

g

t

s

b

c

d

e

f

g

t

4

3

2 3

5 5

6

1

5

23

7

4

Page 54: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

9

Exemplo de Execução :: Algoritmo de Dijkstra

d 0

s

4

b

3

c

6

d

7

e

11

f

9

g

13

t

π ⊥

s

s

b

s

c

c

d

d

e

d

f

d

g

g

t

s

b

c

d

e

f

g

t

4

3

2 3

5 5

6

1

5

23

7

4

Page 55: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

9

Exemplo de Execução :: Algoritmo de Dijkstra

d 0

s

4

b

3

c

6

d

7

e

11

f

9

g

13

t

π ⊥

s

s

b

s

c

c

d

d

e

d

f

d

g

g

t

s

b

c

d

e

f

g

t

4

3

2 3

5 5

6

1

5

23

7

4

COMO ENCONTRAR O MENOR CAMINHO?

Page 56: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

9

Exemplo de Execução :: Algoritmo de Dijkstra

d 0

s

4

b

3

c

6

d

7

e

11

f

9

g

13

t

π ⊥

s

s

b

s

c

c

d

d

e

d

f

d

g

g

t

s

b

c

d

e

f

g

t

4

3

2 3

5 5

6

1

5

23

7

4

Page 57: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

9

Exemplo de Execução :: Algoritmo de Dijkstra

d 0

s

4

b

3

c

6

d

7

e

11

f

9

g

13

t

π ⊥

s

s

b

s

c

c

d

d

e

d

f

d

g

g

t

s

b

c

d

e

f

g

t

4

3

2 3

5 5

6

1

5

23

7

4

Page 58: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

9

Exemplo de Execução :: Algoritmo de Dijkstra

d 0

s

4

b

3

c

6

d

7

e

11

f

9

g

13

t

π ⊥

s

s

b

s

c

c

d

d

e

d

f

d

g

g

t

s

b

c

d

e

f

g

t

4

3

2 3

5 5

6

1

5

23

7

4

Page 59: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

9

Exemplo de Execução :: Algoritmo de Dijkstra

d 0

s

4

b

3

c

6

d

7

e

11

f

9

g

13

t

π ⊥

s

s

b

s

c

c

d

d

e

d

f

d

g

g

t

s

b

c

d

e

f

g

t

4

3

23

5 5

6

1

5

23

7

4

Page 60: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

9

Exemplo de Execução :: Algoritmo de Dijkstra

d 0

s

4

b

3

c

6

d

7

e

11

f

9

g

13

t

π ⊥

s

s

b

s

c

c

d

d

e

d

f

d

g

g

t

s

b

c

d

e

f

g

t

4

3

23

5 5

6

1

5

23

7

4

Page 61: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

9

Exemplo de Execução :: Algoritmo de Dijkstra

d 0

s

4

b

3

c

6

d

7

e

11

f

9

g

13

t

π ⊥

s

s

b

s

c

c

d

d

e

d

f

d

g

g

t

s

b

c

d

e

f

g

t

4

3

23

5 5

6

1

5

23

7

4

E QUAL É O SEU CUSTO?

Page 62: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

9

Exemplo de Execução :: Algoritmo de Dijkstra

d 0

s

4

b

3

c

6

d

7

e

11

f

9

g

13

t

π ⊥

s

s

b

s

c

c

d

d

e

d

f

d

g

g

t

s

b

c

d

e

f

g

t

4

3

23

5 5

6

1

5

23

7

4

Page 63: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

10

Encontrando a Resposta

Devolve-Menor-Caminho(G, s):Dijkstra(G, s);imprime “Custo: ” + d[t];imprime “Caminho: t ← ”v = π[t];enquanto v 6= ⊥ faça:

imprime: “v ←”;v = π[v];

Page 64: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

11

O problema do Dijkstra: Ciclos Negativos

� O algoritmo de Dijkstra funciona mesmo quando existem pesosnegativos nas arestas.

s

b

c

d

e

f

g

t

4

3

2 3

5 5

6

1

5

23

7

4

� ... mas quebra quando existem ciclos negativos!

Page 65: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

11

O problema do Dijkstra: Ciclos Negativos

� O algoritmo de Dijkstra funciona mesmo quando existem pesosnegativos nas arestas.

s

b

c

d

e

f

g

t

-4

3

2 -3

5 5

6

1

5

-23

7

4

� ... mas quebra quando existem ciclos negativos!

Page 66: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

11

O problema do Dijkstra: Ciclos Negativos

� O algoritmo de Dijkstra funciona mesmo quando existem pesosnegativos nas arestas.

s

b

c

d

e

f

g

t

-4

3

2 -3

5 5

6

1

5

-23

7

4

� ... mas quebra quando existem ciclos negativos!

Page 67: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

11

O problema do Dijkstra: Ciclos Negativos

� O algoritmo de Dijkstra funciona mesmo quando existem pesosnegativos nas arestas.

s

b

c

d

e

f

g

t

-9

3

2 -3

5 5

6

1

5

-23

7

4

� ... mas quebra quando existem ciclos negativos!

Page 68: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

11

O problema do Dijkstra: Ciclos Negativos

� O algoritmo de Dijkstra funciona mesmo quando existem pesosnegativos nas arestas.

s

b

c

d

e

f

g

t

-9

3

2 -3

5 5

6

1

5

-23

-7

4

� ... mas quebra quando existem ciclos negativos!

Page 69: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

12

O Algoritmo de Bellman-Ford

Page 70: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

13

Algoritmo de Bellman-Ford

Bellman-Ford(G, s):Inicializa-Single-Source(G, s);de i = 1 até n− 1 faça:

para toda aresta uv ∈ E faça:Relaxa(u, v, w);

para toda aresta uv ∈ E faça:se d[v] > d[u] + w(u, v) então:

devolve Falsedevolve True

Page 71: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

14

Exemplo de Execução :: Algoritmo de Bellman-Ford

d

s b c d e

π

s b c d e

s

b

c

d

e

4

3

-2 3

5

6

-1

Page 72: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

14

Exemplo de Execução :: Algoritmo de Bellman-Ford

d 0

s

∞b

c

∞d

e

π ⊥

s

b

c

d

e

s

b

c

d

e

4

3

-2 3

5

6

-1

Page 73: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

14

Exemplo de Execução :: Algoritmo de Bellman-Ford

d 0

s

∞b

c

∞d

e

π ⊥

s

b

c

d

e

Ordem das Arestas:1a : de2a : bd3a : sc4a : bc5a : sb6a : cd7a : ce

s

b

c

d

e

4

3

-2 3

5

6

-1

Page 74: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

14

Exemplo de Execução :: Algoritmo de Bellman-Ford

d 0

s

∞b

c

∞d

e

π ⊥

s

b

c

d

e

Ordem das Arestas:1a : de2a : bd3a : sc4a : bc5a : sb6a : cd7a : ce

s

b

c

d

e

4

3

-2 3

5

6

-1

Page 75: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

14

Exemplo de Execução :: Algoritmo de Bellman-Ford

d 0

s

∞b

c

∞d

e

π ⊥

s

b

c

d

e

Ordem das Arestas:1a : de2a : bd3a : sc4a : bc5a : sb6a : cd7a : ce

s

b

c

d

e

4

3

-2 3

5

6

-1

Page 76: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

14

Exemplo de Execução :: Algoritmo de Bellman-Ford

d 0

s

∞b

c

∞d

e

π ⊥

s

b

c

d

e

Ordem das Arestas:1a : de2a : bd3a : sc4a : bc5a : sb6a : cd7a : ce

s

b

c

d

e

4

3

-2 3

5

6

-1

Page 77: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

14

Exemplo de Execução :: Algoritmo de Bellman-Ford

d 0

s

∞b

3

c

∞d

e

π ⊥

s

b

s

c

d

e

Ordem das Arestas:1a : de2a : bd3a : sc4a : bc5a : sb6a : cd7a : ce

s

b

c

d

e

4

3

-2 3

5

6

-1

Page 78: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

14

Exemplo de Execução :: Algoritmo de Bellman-Ford

d 0

s

∞b

3

c

∞d

e

π ⊥

s

b

s

c

d

e

Ordem das Arestas:1a : de2a : bd3a : sc4a : bc5a : sb6a : cd7a : ce

s

b

c

d

e

4

3

-2 3

5

6

-1

Page 79: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

14

Exemplo de Execução :: Algoritmo de Bellman-Ford

d 0

s

∞b

3

c

∞d

e

π ⊥

s

b

s

c

d

e

Ordem das Arestas:1a : de2a : bd3a : sc4a : bc5a : sb6a : cd7a : ce

s

b

c

d

e

4

3

-2 3

5

6

-1

Page 80: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

14

Exemplo de Execução :: Algoritmo de Bellman-Ford

d 0

s

4

b

3

c

∞d

e

π ⊥

s

s

b

s

c

d

e

Ordem das Arestas:1a : de2a : bd3a : sc4a : bc5a : sb6a : cd7a : ce

s

b

c

d

e

4

3

-2 3

5

6

-1

Page 81: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

14

Exemplo de Execução :: Algoritmo de Bellman-Ford

d 0

s

4

b

3

c

∞d

e

π ⊥

s

s

b

s

c

d

e

Ordem das Arestas:1a : de2a : bd3a : sc4a : bc5a : sb6a : cd7a : ce

s

b

c

d

e

4

3

-2 3

5

6

-1

Page 82: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

14

Exemplo de Execução :: Algoritmo de Bellman-Ford

d 0

s

4

b

3

c

6

d

e

π ⊥

s

s

b

s

c

c

d

e

Ordem das Arestas:1a : de2a : bd3a : sc4a : bc5a : sb6a : cd7a : ce

s

b

c

d

e

4

3

-2 3

5

6

-1

Page 83: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

14

Exemplo de Execução :: Algoritmo de Bellman-Ford

d 0

s

4

b

3

c

6

d

e

π ⊥

s

s

b

s

c

c

d

e

Ordem das Arestas:1a : de2a : bd3a : sc4a : bc5a : sb6a : cd7a : ce

s

b

c

d

e

4

3

-2 3

5

6

-1

Page 84: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

14

Exemplo de Execução :: Algoritmo de Bellman-Ford

d 0

s

4

b

3

c

6

d

9

e

π ⊥

s

s

b

s

c

c

d

c

e

Ordem das Arestas:1a : de2a : bd3a : sc4a : bc5a : sb6a : cd7a : ce

s

b

c

d

e

4

3

-2 3

5

6

-1

Page 85: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

14

Exemplo de Execução :: Algoritmo de Bellman-Ford

d 0

s

4

b

3

c

6

d

9

e

π ⊥

s

s

b

s

c

c

d

c

e

Ordem das Arestas:1a : de2a : bd3a : sc4a : bc5a : sb6a : cd7a : ce

s

b

c

d

e

4

3

-2 3

5

6

-1

ACABOU O ALGORITMO?

Page 86: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

14

Exemplo de Execução :: Algoritmo de Bellman-Ford

d 0

s

4

b

3

c

6

d

9

e

π ⊥

s

s

b

s

c

c

d

c

e

Ordem das Arestas:1a : de2a : bd3a : sc4a : bc5a : sb6a : cd7a : ce

s

b

c

d

e

4

3

-2 3

5

6

-1

Page 87: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

14

Exemplo de Execução :: Algoritmo de Bellman-Ford

d 0

s

4

b

3

c

6

d

5

e

π ⊥

s

s

b

s

c

c

d

d

e

Ordem das Arestas:1a : de2a : bd3a : sc4a : bc5a : sb6a : cd7a : ce

s

b

c

d

e

4

3

-2 3

5

6

-1

Page 88: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

14

Exemplo de Execução :: Algoritmo de Bellman-Ford

d 0

s

4

b

3

c

6

d

5

e

π ⊥

s

s

b

s

c

c

d

d

e

Ordem das Arestas:1a : de2a : bd3a : sc4a : bc5a : sb6a : cd7a : ce

s

b

c

d

e

4

3

-2 3

5

6

-1

Page 89: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

14

Exemplo de Execução :: Algoritmo de Bellman-Ford

d 0

s

4

b

3

c

6

d

5

e

π ⊥

s

s

b

s

c

c

d

d

e

Ordem das Arestas:1a : de2a : bd3a : sc4a : bc5a : sb6a : cd7a : ce

s

b

c

d

e

4

3

-2 3

5

6

-1

Page 90: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

14

Exemplo de Execução :: Algoritmo de Bellman-Ford

d 0

s

4

b

3

c

6

d

5

e

π ⊥

s

s

b

s

c

c

d

d

e

Ordem das Arestas:1a : de2a : bd3a : sc4a : bc5a : sb6a : cd7a : ce

s

b

c

d

e

4

3

-2 3

5

6

-1

Page 91: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

14

Exemplo de Execução :: Algoritmo de Bellman-Ford

d 0

s

4

b

2

c

6

d

5

e

π ⊥

s

s

b

b

c

c

d

d

e

Ordem das Arestas:1a : de2a : bd3a : sc4a : bc5a : sb6a : cd7a : ce

s

b

c

d

e

4

3

-2 3

5

6

-1

Page 92: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

14

Exemplo de Execução :: Algoritmo de Bellman-Ford

d 0

s

4

b

2

c

6

d

5

e

π ⊥

s

s

b

b

c

c

d

d

e

Ordem das Arestas:1a : de2a : bd3a : sc4a : bc5a : sb6a : cd7a : ce

s

b

c

d

e

4

3

-2 3

5

6

-1

Page 93: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

14

Exemplo de Execução :: Algoritmo de Bellman-Ford

d 0

s

4

b

2

c

6

d

5

e

π ⊥

s

s

b

b

c

c

d

d

e

Ordem das Arestas:1a : de2a : bd3a : sc4a : bc5a : sb6a : cd7a : ce

s

b

c

d

e

4

3

-2 3

5

6

-1

Page 94: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

14

Exemplo de Execução :: Algoritmo de Bellman-Ford

d 0

s

4

b

2

c

5

d

5

e

π ⊥

s

s

b

b

c

c

d

d

e

Ordem das Arestas:1a : de2a : bd3a : sc4a : bc5a : sb6a : cd7a : ce

s

b

c

d

e

4

3

-2 3

5

6

-1

Page 95: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

14

Exemplo de Execução :: Algoritmo de Bellman-Ford

d 0

s

4

b

2

c

5

d

5

e

π ⊥

s

s

b

b

c

c

d

d

e

Ordem das Arestas:1a : de2a : bd3a : sc4a : bc5a : sb6a : cd7a : ce

s

b

c

d

e

4

3

-2 3

5

6

-1

Page 96: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

14

Exemplo de Execução :: Algoritmo de Bellman-Ford

d 0

s

4

b

2

c

5

d

5

e

π ⊥

s

s

b

b

c

c

d

d

e

Ordem das Arestas:1a : de2a : bd3a : sc4a : bc5a : sb6a : cd7a : ce

s

b

c

d

e

4

3

-2 3

5

6

-1

ACABOU O ALGORITMO?

Page 97: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

14

Exemplo de Execução :: Algoritmo de Bellman-Ford

d 0

s

4

b

2

c

5

d

5

e

π ⊥

s

s

b

b

c

c

d

d

e

Ordem das Arestas:1a : de2a : bd3a : sc4a : bc5a : sb6a : cd7a : ce

s

b

c

d

e

4

3

-2 3

5

6

-1

Page 98: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

14

Exemplo de Execução :: Algoritmo de Bellman-Ford

d 0

s

4

b

2

c

5

d

5

e

π ⊥

s

s

b

b

c

c

d

d

e

Ordem das Arestas:1a : de2a : bd3a : sc4a : bc5a : sb6a : cd7a : ce

s

b

c

d

e

4

3

-2 3

5

6

-1

Page 99: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

14

Exemplo de Execução :: Algoritmo de Bellman-Ford

d 0

s

4

b

2

c

5

d

5

e

π ⊥

s

s

b

b

c

c

d

d

e

Ordem das Arestas:1a : de2a : bd3a : sc4a : bc5a : sb6a : cd7a : ce

s

b

c

d

e

4

3

-2 3

5

6

-1

ACABOU O ALGORITMO?

Page 100: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

14

Exemplo de Execução :: Algoritmo de Bellman-Ford

d 0

s

4

b

2

c

5

d

5

e

π ⊥

s

s

b

b

c

c

d

d

e

Ordem das Arestas:1a : de2a : bd3a : sc4a : bc5a : sb6a : cd7a : ce

s

b

c

d

e

4

3

-2 3

5

6

-1

ACABOU O ALGORITMO?

Page 101: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

15

Exemplo de Execução (Ruim) :: Algoritmo de Bellman-Ford

d 0

a

∞b

c

π ⊥

a

b

c

Ordem das Arestas:1a : bc2a : ca3a : ab

a

b

c

4

3

-8

Page 102: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

15

Exemplo de Execução (Ruim) :: Algoritmo de Bellman-Ford

d 0

a

4

b

c

π ⊥

a

s

b

c

Ordem das Arestas:1a : bc2a : ca3a : ab

a

b

c

4

3

-8

Page 103: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

15

Exemplo de Execução (Ruim) :: Algoritmo de Bellman-Ford

d −1

a

4

b

−4

c

π c

a

s

b

b

c

Ordem das Arestas:1a : bc2a : ca3a : ab

a

b

c

4

3

-8

Page 104: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

15

Exemplo de Execução (Ruim) :: Algoritmo de Bellman-Ford

d −1

a

4

b

−4

c

π c

a

s

b

b

c

Ordem das Arestas:1a : bc2a : ca3a : ab

a

b

c

4

3

-8

ACABOU O ALGORITMO?

Page 105: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

15

Exemplo de Execução (Ruim) :: Algoritmo de Bellman-Ford

d −1

a

4

b

−4

c

π c

a

s

b

b

c

Ordem das Arestas:1a : bc2a : ca3a : ab

a

b

c

4

3

-8

Page 106: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

15

Exemplo de Execução (Ruim) :: Algoritmo de Bellman-Ford

d −1

a

4

b

−4

c

π c

a

s

b

b

c

Ordem das Arestas:1a : bc2a : ca3a : ab

a

b

c

4

3

-8

Page 107: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

15

Exemplo de Execução (Ruim) :: Algoritmo de Bellman-Ford

d −1

a

4

b

−4

c

π c

a

s

b

b

c

Ordem das Arestas:1a : bc2a : ca3a : ab

a

b

c

4

3

-8

Page 108: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

15

Exemplo de Execução (Ruim) :: Algoritmo de Bellman-Ford

d −1

a

4

b

−4

c

π c

a

s

b

b

c

Ordem das Arestas:1a : bc2a : ca3a : ab

a

b

c

4

3

-8

Page 109: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

15

Exemplo de Execução (Ruim) :: Algoritmo de Bellman-Ford

d −1

a

4

b

−4

c

π c

a

s

b

b

c

Ordem das Arestas:1a : bc2a : ca3a : ab

a

b

c

4

3

-8

d[b] > d[a] + w(a, b)!

Page 110: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

15

Exemplo de Execução (Ruim) :: Algoritmo de Bellman-Ford

d −1

a

4

b

−4

c

π c

a

s

b

b

c

Ordem das Arestas:1a : bc2a : ca3a : ab

a

b

c

4

3

-8

Algoritmo devolve False!!

Page 111: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

16

Comparando os Algoritmos

Algoritmos para resolver Caminho Mínimo

� Algoritmo de Dijkstra. Single-source. Complexidade: O(n log n + m)

� Algoritmo de Bellman-Ford. Single-source. Complexidade: O(nm)

� Algoritmo de Floyd-Warshall. All-pairs. Complexidade: O(n3)

Page 112: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

16

Comparando os Algoritmos

Algoritmos para resolver Caminho Mínimo

� Algoritmo de Dijkstra. Single-source. Complexidade: O(n log n + m)

� Algoritmo de Bellman-Ford. Single-source. Complexidade: O(nm)

� Algoritmo de Floyd-Warshall. All-pairs. Complexidade: O(n3)

Page 113: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

16

Comparando os Algoritmos

Algoritmos para resolver Caminho Mínimo

� Algoritmo de Dijkstra. Single-source. Complexidade: O(n log n + m)

� Algoritmo de Bellman-Ford. Single-source. Complexidade: O(nm)

� Algoritmo de Floyd-Warshall. All-pairs. Complexidade: O(n3)

Page 114: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

16

Comparando os Algoritmos

Algoritmos para resolver Caminho Mínimo

� Algoritmo de Dijkstra. Single-source. Complexidade: O(n log n + m)

� Algoritmo de Bellman-Ford. Single-source. Complexidade: O(nm)

� Algoritmo de Floyd-Warshall. All-pairs. Complexidade: O(n3)

Page 115: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

16

Comparando os Algoritmos

Algoritmos para resolver Caminho Mínimo

� Algoritmo de Dijkstra. Single-source. Complexidade: O(n log n + m)

� Algoritmo de Bellman-Ford. Single-source. Complexidade: O(nm)

� Algoritmo de Floyd-Warshall. All-pairs. Complexidade: O(n3)

Page 116: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

16

Comparando os Algoritmos

Algoritmos para resolver Caminho Mínimo

� Algoritmo de Dijkstra. Single-source. Complexidade: O(n log n + m)

� Algoritmo de Bellman-Ford. Single-source. Complexidade: O(nm)

� Algoritmo de Floyd-Warshall. All-pairs. Complexidade: O(n3)

Page 117: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

16

Comparando os Algoritmos

Algoritmos para resolver Caminho Mínimo

� Algoritmo de Dijkstra. Single-source. Complexidade: O(n log n + m)

� Algoritmo de Bellman-Ford. Single-source. Complexidade: O(nm)

� Algoritmo de Floyd-Warshall. All-pairs. Complexidade: O(n3)

Page 118: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

16

Comparando os Algoritmos

Algoritmos para resolver Caminho Mínimo

� Algoritmo de Dijkstra. Single-source. Complexidade: O(n log n + m)

� Algoritmo de Bellman-Ford. Single-source. Complexidade: O(nm)

� Algoritmo de Floyd-Warshall. All-pairs. Complexidade: O(n3)

Page 119: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

16

Comparando os Algoritmos

Algoritmos para resolver Caminho Mínimo

� Algoritmo de Dijkstra. Single-source. Complexidade: O(n log n + m)

� Algoritmo de Bellman-Ford. Single-source. Complexidade: O(nm)

� Algoritmo de Floyd-Warshall. All-pairs. Complexidade: O(n3)

Page 120: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

16

Comparando os Algoritmos

Algoritmos para resolver Caminho Mínimo

� Algoritmo de Dijkstra. Single-source. Complexidade: O(n log n + m)

� Algoritmo de Bellman-Ford. Single-source. Complexidade: O(nm)

� Algoritmo de Floyd-Warshall. All-pairs. Complexidade: O(n3)

Page 121: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

17

Dúvidas?

Page 122: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

18

Aula que vem...

Page 123: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

19

Árvore Geradora Mínima

v1

v2

v3

v4 v5

v6

v7v8

30

18

25

23

15

28

17

33

2122

3227

31 35

19

Árvore Geradora MínimaEntrada: Um grafo ponderado G = (V,U,w).Pergunta: Qual é a árvore T ⊆ G de custo mínimo que gera G?

Page 124: Algoritmos de Dijkstra e Bellman-Fordbf.pdf · 2020. 4. 27. · 1 Algoritmos de Dijkstra e Bellman-Ford Prof. CelsoA.W.Santos J702 :: Teoria de Grafos celso.santos@docente.unip.br

19

Árvore Geradora Mínima

v1

v2

v3

v4 v5

v6

v7v8

30

18

25

23

15

28

17

33

2122

3227

31 35

19

Árvore Geradora MínimaEntrada: Um grafo ponderado G = (V,U,w).Pergunta: Qual é a árvore T ⊆ G de custo mínimo que gera G?