You are on page 1of 74

Caminhos M nimos Com Uma Fonte

1 / 74

Caminhos M nimos Com Uma Fonte


Eduardo Camponogara
Departamento de Automa c ao e Sistemas Universidade Federal de Santa Catarina

DAS-9003: Introdu c ao a Algoritmos

Caminhos M nimos Com Uma Fonte Sum ario

2 / 74

Introdu c ao Algoritmo Bellman-Ford Algoritmo de Dijkstra Grafos Ac clicos

Caminhos M nimos Com Uma Fonte Introdu c ao

3 / 74

Sum ario

Introdu c ao Algoritmo Bellman-Ford Algoritmo de Dijkstra Grafos Ac clicos

Caminhos M nimos Com Uma Fonte Introdu c ao

4 / 74

Introdu c ao

Cen ario

Um motorista deseja encontrar o caminho mais curto da cidade de Florian opolis/SC a Marilha/SP. Dado um mapa das rodovias brasileiras, no qual pares de cidades adjacentes s ao marcados, como podemos determinar a rota mais curta?

Caminhos M nimos Com Uma Fonte Introdu c ao

5 / 74

Introdu c ao
Cen ario

Um motorista deseja encontrar o caminho mais curto da cidade de Florian opolis/SC a Marilha/SP. Dado um mapa das rodovias brasileiras, no qual pares de cidades adjacentes s ao marcados, como podemos determinar a rota mais curta?

Uma possibilidade consiste em enumerarmos todos os poss veis caminhos de Florian opolis a Marilha. Adicionar as dist ancias em cada rota. Selecionar a rota mais curta.

Caminhos M nimos Com Uma Fonte Introdu c ao

6 / 74

Introdu c ao

Quest ao
O m etodo e satisfat orio?

Caminhos M nimos Com Uma Fonte Introdu c ao

7 / 74

Introdu c ao
Desenvolvimentos

Veremos como resolver problemas deste tipo de forma ecaz. Em problemas de caminhos m nimos, nos e dado um grafo direcionado G = (V , E ) cujas arestas t em pesos. Os pesos s ao induzidos por uma fun c ao w : E R. O peso de um caminho p = (v0 , v1 , . . . , vk ) e a soma dos pesos das arestas:
k 1

w (p ) =
i =0

w (vi , vi +1 )

Caminhos M nimos Com Uma Fonte Introdu c ao

8 / 74

Introdu c ao

Deni c ao
Denimos o peso (comprimento) do caminho de menor peso (mais curto) de um v ertice u para v como: (u , v ) = min{w (p ) : p e caminho de u + se n ao existir caminho v}

Caminhos M nimos Com Uma Fonte Introdu c ao

9 / 74

Introdu c ao

No exemplo do problema Florian opolis-Marilha, podemos modelar o mapa como um grafo:


os v ertices representam as cidades as arestas representam as rodovias, estradas, etc. os pesos das arestas representam as dist ancias entre duas cidades

Caminhos M nimos Com Uma Fonte Introdu c ao

10 / 74

Introdu c ao

Variantes
nimos com um destino 1. Caminhos m

Encontre o caminho mais curto para um v ertice t a partir de cada v ertice u V . Encontre o caminho mais curto de u para v Encontre o caminho m nimo entre cada par u , v V

2. Caminho m nimo entre um par de v ertices

3. Todos os caminhos m nimos

Caminhos M nimos Com Uma Fonte Introdu c ao Pesos negativos

11 / 74

Pesos negativos

Em algumas inst ancias do problema de caminhos m nimos com fonte u nica, podem existir arestas com pesos negativos. Se o grafo G = (V , E ) n ao tiver ciclo com peso negativo alcan c avel a partir da fonte s , ent ao (s , v ) permanece bem denido para todo v V , mesmo se o grafo contiver algum ciclo negativo.

Caminhos M nimos Com Uma Fonte Introdu c ao Pesos negativos

12 / 74

Pesos negativos

10 1 4 1 1 2 1 3

Caminhos M nimos Com Uma Fonte Introdu c ao Pesos negativos

13 / 74

Pesos negativos

Alguns algoritmos, como o algoritmo de Dijkstra, assumem que todos os pesos s ao n ao-negativos. Algoritmos como Bellman-Ford e Floyd-Warshall, entretanto, podem operar com arestas de peso negativo, desde que n ao existam ciclos de peso negativo. Tipicamente, estes algoritmos detectam a presen ca de ciclo negativo.

Caminhos M nimos Com Uma Fonte Introdu c ao Representa c ao

14 / 74

Representa c ao

Estamos interessados n ao apenas na dist ancia do caminho mais curto, mas tamb em no caminho em si. A representa c ao do caminho mais curto e similar ` aquela usada na busca em largura (breadth-rst search) Dado um grafo G = (V , E ), mantemos para cada v ertice v V o seu predecessor [v ] que e outro v ertice ou nil. Os algoritmos de caminhos m nimos denem os atributos de maneira que a cadeia de predecessores originada em v , de tr as pra frente, nos d a o caminho mais curto de s para v .

Caminhos M nimos Com Uma Fonte Introdu c ao Representa c ao

15 / 74

Representa c ao

O grafo predecessor G = (V , E ) induzido por , ap os o t ermino do algoritmo, produz a arvore de caminhos m nimos. G e denido como segue: V = {v V : [v ] = nil } {s } E = {( [v ], v ) : v V {s }}

Caminhos M nimos Com Uma Fonte Introdu c ao Relaxa c oes

16 / 74

Relaxa c oes

Algoritmos de caminhos m nimos usam a t ecnica de relaxa c ao, que decresce um limite superior (upper bound) para a dist ancia m nima para cada v ertice. At e que o limite superior se torne a pr opria dist ancia: 1 (u ) 2 (u ) ... k (u ) = (s , u )

Os algoritmos tamb em exploram a propriedade de que o caminho mais curto entre dois v ertices tamb em e formado de caminhos mais curtos.

Caminhos M nimos Com Uma Fonte Introdu c ao Relaxa c oes

17 / 74

Relaxa c oes

Lema

Dado um grafo direcionado com peso nas arestas, G = (V , E ), e a fun c ao peso nas arestas w : E R. Seja p = (v1 , v2 , . . . , vk ) um caminho mais curto de v1 para vk em G . Para quaisquer 1 i < j k , seja pij = (vi , vi +1 , . . . , vj ) o subcaminho de p de vi para vj . Ent ao, pij e um caminho m nimo de vi para vj .

Caminhos M nimos Com Uma Fonte Introdu c ao Relaxa c oes

18 / 74

Relaxa c oes

Lema

Seja dado um grafo direcionado com peso nas arestas, G = (V , E ), e a fun c ao peso nas arestas w : E R. Seja s um v ertice correspondente ` a fonte. Ent ao, para toda aresta (u , v ) E , (s , v ) (s , u ) + w (u , v )

Caminhos M nimos Com Uma Fonte Introdu c ao Relaxa c oes

19 / 74

Relaxa c oes

V arios algoritmos s ao baseados na t ecnica de relaxa c ao. Para cada v ertice v V , mantemos um atributo d [v ], que e um limite superior (upper bound) no comprimento do caminho mais curto de s para v : d [v ] (s , v )

d [v ] e uma estimativa para (s , v )

Caminhos M nimos Com Uma Fonte Introdu c ao Relaxa c oes

20 / 74

Relaxa c oes

Initialize-Single-Source(G , s ) 1) for each v V [G ] 2) do d [v ] 3) [v ] nil 4) d [s ] = 0 Ap os a inicializa c ao, [v ] = nil para todo v V , d [s ] = 0, d [v ] = para todo v V {s }.

Caminhos M nimos Com Uma Fonte Introdu c ao Relaxa c oes

21 / 74

Relaxa c oes

Relax(u , v ) 1) if d [v ] > d [u ] + w (u , v ) 2) then d [v ] d [u ] + w (u , v ) 3) [v ] u

O prop osito de relaxar uma aresta (u , v ) consiste de testar se podemos melhorar a estimativa do caminho mais curto para v encontrado at e ent ao, por meio do caminho at e u.

Caminhos M nimos Com Uma Fonte Introdu c ao Relaxa c oes

22 / 74

Relaxa c oes

u 2 5

v 9 Relax(u , v ) 5

u 2

v 6 Relax(u , v )

Caminhos M nimos Com Uma Fonte Introdu c ao Propriedades

23 / 74

Propriedades

A corretude de algoritmos de caminhos m nimos e baseada em propriedades de caminhos m nimos e das relaxa c oes.

Caminhos M nimos Com Uma Fonte Introdu c ao Propriedades

24 / 74

Desigualdade triangular

Lema
Para cada aresta (u , v ) E , temos (s , v ) (s , u ) + w (u , v )

Caminhos M nimos Com Uma Fonte Introdu c ao Propriedades

25 / 74

Limite superior

Lema
Sempre temos d [v ] (s , v ) para todo v ertice v V , e uma vez que d [v ] = (s , v ), a estimativa d [v ] n ao muda.

Caminhos M nimos Com Uma Fonte Introdu c ao Propriedades

26 / 74

Inexist encia de caminho

Lema
Se n ao existe caminho de s para v , ent ao sempre temos d [v ] = (s , v ) = +

Caminhos M nimos Com Uma Fonte Introdu c ao Propriedades

27 / 74

Converg encia

Lema

Se s uv e um caminho em G para certos v ertices u, v V , e se d [u ] = (s , u ) em qualquer momento antes de relaxarmos a aresta (u , v ), ent ao ap os a relaxa c ao da aresta (u , v ) temos d [v ] = (s , v ) da pra frente.

Caminhos M nimos Com Uma Fonte Introdu c ao Propriedades

28 / 74

Propriedade de relaxa c ao de caminho


Lema

Seja p = (v0 , v1 , . . . , vk ) um caminho mais curto de s = v0 para vk e as arestas de p s ao relaxadas na ordem (v0 , v1 ), (v1 , v2 ), . . . , (vk 1 , vk ). Ent ao d [ vk ] = ( s , v k )

Esta propriedade e garantida independentemente de quaisquer passos de relaxa c ao ocorridos, at e mesmo se eles s ao intermedi arios aos passos de relaxa c ao das arestas em p .

Caminhos M nimos Com Uma Fonte Introdu c ao Propriedades

29 / 74

Subgrafo predecessor

Lema
Uma vez que d [v ] = (s , v ) para todo v V , o grafo predecessor G e uma arvore de caminhos m nimos com raiz em s .

Caminhos M nimos Com Uma Fonte Algoritmo Bellman-Ford

30 / 74

Sum ario

Introdu c ao Algoritmo Bellman-Ford Algoritmo de Dijkstra Grafos Ac clicos

Caminhos M nimos Com Uma Fonte Algoritmo Bellman-Ford

31 / 74

Algoritmo Bellman-Ford

O algoritmo de Bellman-Ford resolve o problema de caminhos m nimos com uma fonte no caso geral, onde as arestas podem possuir peso negativo. O algoritmo retorna um valor Booleano indicando se foi ou n ao encontrado um ciclo de comprimento negativo alcan c avel a partir de s . Se n ao h a ciclo negativo alcan c avel a partir de s , o algoritmo produz a arvore de caminhos m nimos com raiz em s e os seus respectivos comprimentos (pesos).

Caminhos M nimos Com Uma Fonte Algoritmo Bellman-Ford

32 / 74

Algoritmo Bellman-Ford

Bellman-Ford(G , w , s ) 1) Initialize-Single-Source(G , s ) 2) for i 1 to |V [G ]| 1 3) do for each (u , v ) E [G ] 4) do Relax(u , v ) 5) for each (u , v ) E [G ] 6) do if d [v ] > d [u ] + w (u , v ) 7) then return FALSE 8) return TRUE

Caminhos M nimos Com Uma Fonte Algoritmo Bellman-Ford

33 / 74

Grafo
t 6 s 2 8 5 x 2 4 3 7

7 z y 9

Caminhos M nimos Com Uma Fonte Algoritmo Bellman-Ford

34 / 74

Bellman-Ford: inicializa c ao
t 6 s 0 7 2 5 2 8 4 3 7 x

y 9

Caminhos M nimos Com Uma Fonte Algoritmo Bellman-Ford

35 / 74

Bellman-Ford: itera c ao 1
t 6 s 0 7 2 6 5 2 8 4 3 7 x

7 y 9

Caminhos M nimos Com Uma Fonte Algoritmo Bellman-Ford

36 / 74

Bellman-Ford: itera c ao 2
t 6 s 0 7 2 6 5 2 8 4 4 3 7 x

7 y 9

Caminhos M nimos Com Uma Fonte Algoritmo Bellman-Ford

37 / 74

Bellman-Ford: itera c ao 3
t 6 s 0 7 2 2 5 2 8 4 4 3 7 x

7 y 9

Caminhos M nimos Com Uma Fonte Algoritmo Bellman-Ford

38 / 74

Bellman-Ford: itera c ao 4
t 6 s 0 7 2 2 5 2 8 4 4 3 7 x

7 y 9

2 z

Caminhos M nimos Com Uma Fonte Algoritmo Bellman-Ford

39 / 74

Tempo de execu c ao do algoritmo Bellman-Ford


Fezendo |V | = n e |E | = m, podemos vericar que:

Passo 1: O (n) Passo 2: (n) Passo 3-4: (1) Logo, o la co 2-4 leva (nm) La co 5-7 leva O (m) Portanto, Bellman-Ford executa em tempo (nm). Para um grafo denso, m = (n2 ), o tempo de execu c ao do algoritmo e (n3 ).

Conclus oes:

Caminhos M nimos Com Uma Fonte Algoritmo Bellman-Ford

40 / 74

Bellman-Ford: corretude
Lema

Seja G = (V , E ) um grafo direcionado com peso nas arestas Seja s V a fonte Seja w : E R a fun c ao peso Assuma que G n ao cont em ciclos de peso negativo alcan c aveis a partir de s Ent ao, ap os |V | 1 passos do la co 2-4 do algoritmo Bellman-Ford, teremos d [v ] = (s , v ) para todo v ertice v alcan c avel a partir de s .

Caminhos M nimos Com Uma Fonte Algoritmo Bellman-Ford

41 / 74

Bellman-Ford: corretude
Corol ario

Seja G = (V , E ) um grafo direcionado com peso nas arestas Seja s V a fonte Seja w : E R a fun c ao peso Assuma que G n ao cont em ciclos de peso negativo alcan c aveis a partir de s Ent ao, ent ao para cada v V , existe um caminho de s para v se e somente se Bellman-Ford termina com d [v ] < quando ele e aplicado sobre G .

Caminhos M nimos Com Uma Fonte Algoritmo Bellman-Ford

42 / 74

Bellman-Ford: corretude
Teorema

Suponha que o algoritmo de Bellman-Ford executa sobre um grafo direcionado, G = (V , E ), com fun c ao peso das arestas w : E R e tendo s como fonte. Se G n ao cont em ciclos negativos, alcan c aveis a partir de s , ent ao:

o algoritmo retorna TRUE; d [v ] = (s , v ) para todo v V ; e o subgrafo predecessor G e uma arvore de caminhos m nimos com raiz em s .

Se G cont em um ciclo negativo (alcan c avel a partir de s ), ent ao o algoritmo retorna FALSE.

Caminhos M nimos Com Uma Fonte Algoritmo de Dijkstra

43 / 74

Sum ario

Introdu c ao Algoritmo Bellman-Ford Algoritmo de Dijkstra Grafos Ac clicos

Caminhos M nimos Com Uma Fonte Algoritmo de Dijkstra

44 / 74

Algoritmo de Dijkstra
Princ pios

O algoritmo de Dijkstra resolve o problema de caminhos m nimos com uma fonte em um grafo direcionado G = (V , E ), cujas arestas apresentam pesos n ao-negativos. O algoritmo mant em um conjunto S de v ertices para os quais a dist ancia do caminho mais curto a partir de s j a foi computada. Ou seja, para todo v S , temos d [v ] = (s , v ). O algoritmo iterativamente seleciona um v ertice u V S que possua a menor estimativa de dist ancia, d [u ] = min{d [v ] : v V S }, e insere u em S . Ao mesmo tempo que relaxa as arestas que emanam de u .

Caminhos M nimos Com Uma Fonte Algoritmo de Dijkstra

45 / 74

Algoritmo de Dijkstra
S v1 V S u1 u2 u3 v3 u4

v2

Caminhos M nimos Com Uma Fonte Algoritmo de Dijkstra

46 / 74

Algoritmo de Dijkstra

Dijkstra(G , w , s ) 1) Initialize-Single-Source(G , s ) 2) S 3) Q = V [G ] 4) while Q = 5) do u Extract min(Q ) 6) S S {u } 7) for each (u , v ) Adj [u ] 8) do Relax(u , v , w )

Caminhos M nimos Com Uma Fonte Algoritmo de Dijkstra

47 / 74

Algoritmo de Dijkstra

Uma vez que o algoritmo de Dijkstra sempre escolhe o v ertice de V S mais pr oximo do conjunto S , dizemos que o algoritmo faz uso de uma t ecnica gulosa. Algoritmos gulosos tipicamente produzem solu c oes sub otimas. No caso do problema de caminhos m nimos com uma fonte, o algoritmo guloso obt em a solu c ao otima. A chave para mostrar que o algoritmo produz uma solu c ao otima e o fato que quando u e inserido em S , d [u ] = (s , u ).

Caminhos M nimos Com Uma Fonte Algoritmo de Dijkstra

48 / 74

Corretude do algoritmo de Dijkstra


acements S [u ] p1 s p 2 x y p 3 V S u

Caminhos M nimos Com Uma Fonte Algoritmo de Dijkstra

49 / 74

Corretude do algoritmo de Dijkstra

Teorema

Se executarmos o algoritmo de Dijkstra em um grafo direcionado G = (V , E ), onde w : E R+ , Ent ao, quando o algoritmo termina, d [v ] = (s , v ) para todo v V.

Caminhos M nimos Com Uma Fonte Algoritmo de Dijkstra

50 / 74

Corretude do algoritmo de Dijkstra


Demonstra c ao

Vamos mostrar que para cada u V , temos d [u ] = (s , u ) no momento em que u e inserido em S , e esta igualdade permanece. Com o prop osito de contradi c ao, suponha que u e o primeiro v ertice tal que d [u ] = (s , u ). Seja p = (p1 , [u ], u ) o caminho produzido pelo algoritmo. Seja p = ( p2 , x , y , p 3 ) um caminho mais curto de s at e u. y e o primeiro v ertice em p que n ao pertence a S . Temos que w ( p ) < w (p ).

Caminhos M nimos Com Uma Fonte Algoritmo de Dijkstra

51 / 74

Corretude do algoritmo de Dijkstra

Demonstra c ao

Sabemos que d [x ] = (s , x ). Caso contr ario, u n ao seria o primeiro v ertice com dist ancia incorreta. Uma vez que y pertence a um caminho mais curto, temos que d [y ] = (s , y ) no momento em que x foi inserido em s .

A aresta (x , y ) foi relaxada no momento em que x foi inserido em S , fazendo com que d [y ] se tornasse (s , y ).

Caminhos M nimos Com Uma Fonte Algoritmo de Dijkstra

52 / 74

Corretude do algoritmo de Dijkstra


Demonstra c ao

Contudo, temos que: (s , u ) < d [u ] (s , y ) + w ( p3 ) < d [ u ] d [y ] + w ( p3 ) < d [u ] [pois (s , y ) = d [y ]] d [y ] < d [u ] w ( p3 ) d [y ] < d [u ] [pois w ( p3 ) 0]

Mas isto e uma contradi c ao. O algoritmo teria escolhido y como o pr oximo v ertice a ser inserido em S , n ao teria escolhido u .

Caminhos M nimos Com Uma Fonte Algoritmo de Dijkstra

53 / 74

An alise do algoritmo de Dijkstra

Vetor como la de prioridades

Neste caso, extract-min leva tempo O (n) e h a n opera c oes extract-min, com n = |V | e m = |E |. Uma vez que cada aresta e examinada no m aximo uma vez, a opera c ao relax e executada no m aximo uma vez, levando tempo O (1). Podemos concluir que o algoritmo leva tempo O (n2 + m) = O (n2 ).

Caminhos M nimos Com Uma Fonte Algoritmo de Dijkstra

54 / 74

An alise do algoritmo de Dijkstra


Heap bin ario como la de prioridades

Quando o grafo e esparso, entretanto, e mais pr atico utilizarmos uma la de prioridades implementada com heap bin ario. Neste caso, extract-min leva tempo O (lgn) e h a n opera c oes extract-min, com n = |V | e m = |E |. Cada aresta (u , v ) e examinada uma vez, for cando uma opera c ao relax(u,v,w) que custa no m aximo O (lgn), quando a dist ancia d [v ] for reduzida. Portanto o algoritmo executa em tempo O (nlgn + mlgn) = O (mlgn) assumindo que m n.

Caminhos M nimos Com Uma Fonte Algoritmo de Dijkstra

55 / 74

An alise do algoritmo de Dijkstra


Heap Fibonacci como la de prioridades

Neste caso, extract-min leva tempo O (lgn) e h a n opera c oes extract-min, com n = |V | e m = |E |. Cada aresta (u , v ) e examinada uma vez, for cando uma opera c ao relax(u,v,w) que custa no m aximo O (1) (tempo amortizado), quando a dist ancia d [v ] for reduzida. Portanto o algoritmo executa em tempo amortizado O (nlgn + m). Quando o grafo e denso, temos m = n2 e o algoritmo executa 2 em tempo O (n ). Quando o grafo e esparso, temos O (nlgn) j a que m = (n).

Caminhos M nimos Com Uma Fonte Algoritmo de Dijkstra

56 / 74

Dijkstra: grafo
u 1 v

10 s 2 3 9 4 7 5 x 2 y 6

Caminhos M nimos Com Uma Fonte Algoritmo de Dijkstra

57 / 74

Dijkstra: itera c ao 1
u 10 s 0 2 3 9 4 7 5 x 2 y 6 1 v

Caminhos M nimos Com Uma Fonte Algoritmo de Dijkstra

58 / 74

Dijkstra: itera c ao 2
u 10 10 s 0 2 3 9 4 7 5 5 x 2 y 6 1 v

Caminhos M nimos Com Uma Fonte Algoritmo de Dijkstra

59 / 74

Dijkstra: itera c ao 3
u 8 10 s 0 2 3 9 4 7 5 5 x 2 7 y 6 1 v 14

Caminhos M nimos Com Uma Fonte Algoritmo de Dijkstra

60 / 74

Dijkstra: itera c ao 4
u 8 10 s 0 2 3 9 4 7 5 5 x 2 7 y 6 1 v 13

Caminhos M nimos Com Uma Fonte Algoritmo de Dijkstra

61 / 74

Dijkstra: itera c ao 5
u 8 10 s 0 2 3 9 4 7 5 5 x 2 7 y 6 1 v 9

Caminhos M nimos Com Uma Fonte Algoritmo de Dijkstra

62 / 74

Dijkstra: itera c ao 6
u 8 10 s 0 2 3 9 4 7 5 5 x 2 7 y 6 1 v 9

Caminhos M nimos Com Uma Fonte Grafos Ac clicos

63 / 74

Sum ario

Introdu c ao Algoritmo Bellman-Ford Algoritmo de Dijkstra Grafos Ac clicos

Caminhos M nimos Com Uma Fonte Grafos Ac clicos

64 / 74

Grafos Ac clicos

Relaxando as arestas segundo a ordem topol ogica de um grafo direcionado ac clico G = (V , E ), leva ao c omputo da arvore de caminhos m nimos em tempo (|V | + |E |). Caminhos m nimos s ao sempre denidos em grafos ac clicos, pois mesmo na presen ca de arestas com pesos negativos, n ao existe ciclo de comprimento negativo.

Caminhos M nimos Com Uma Fonte Grafos Ac clicos

65 / 74

Algoritmo

Dag-Shortest-Paths(G , w , s ) 1) topologically sort the vertices of G 2) Initialize-Single-Source(G , s ) 3) for each u taken in topologically sorted order 4) do for each vertex v Adj [u ] 5) do Relax(u , v , w )

Caminhos M nimos Com Uma Fonte Grafos Ac clicos

66 / 74

Tempo de Execu c ao

Ordena c ao topol ogica pode ser realizada em tempo (|V | + |E |) utilizando o algoritmo de busca em profundidade. Cada v ertice e examinado exatamente uma vez, quando sua lista de adjac encia e examinada e a opera c ao Relax e executada. Logo, o la co 3-5 executa em tempo (|V | + |E |). O tempo total de execu c ao e, portanto, (|V | + |E |).

Caminhos M nimos Com Uma Fonte Grafos Ac clicos

67 / 74

Exemplo

6 r s t 2 u 7 v 1

1 x 2

Caminhos M nimos Com Uma Fonte Grafos Ac clicos

68 / 74

V ertice r

6 r s t 2 u 7 v 1

1 x 2

Caminhos M nimos Com Uma Fonte Grafos Ac clicos

69 / 74

V ertice s

6 r s t 2 2 7 u 6 4 3 1 v

1 x 2

Caminhos M nimos Com Uma Fonte Grafos Ac clicos

70 / 74

V ertice t

6 r s t 2 2 7 u 6 4 3 1 v 6 2

1 x 2 4

Caminhos M nimos Com Uma Fonte Grafos Ac clicos

71 / 74

V ertice u

6 r s t 2 2 7 u 6 4 3 1 v 5 2

1 x 2 4

Caminhos M nimos Com Uma Fonte Grafos Ac clicos

72 / 74

V ertice v

6 r s t 2 2 7 u 6 4 3 1 v 5 2

1 x 2 3

Caminhos M nimos Com Uma Fonte Grafos Ac clicos

73 / 74

V ertice x

6 r s t 2 2 7 u 6 4 3 1 v 5 2

1 x 2 3

Caminhos M nimos Com Uma Fonte Grafos Ac clicos

74 / 74

Conclus oes

Fim! Obrigado pela presen ca

You might also like