33
Teoria dos Grafos Valeriano A. de Oliveira Socorro Rangel Silvio A. de Araujo Departamento de Matemática Aplicada [email protected], [email protected], [email protected] Caminho mínimo - Algoritmo de Dijskstra Preparado a partir do texto: Rangel, Socorro. Teoria do Grafos, Notas de aula, IBILCE, Unesp, 2002-2013.

Teoria dos Grafos - ibilce.unesp.br · Introduçao Caminho Mínimo em Grafos Teoria dos Grafos (Antunes Rangel&Araujo) – 3 Considere a rede: s t a b d c 9 15 4 2 2 3 35 16 6 5 7

  • Upload
    lydung

  • View
    233

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Teoria dos Grafos - ibilce.unesp.br · Introduçao Caminho Mínimo em Grafos Teoria dos Grafos (Antunes Rangel&Araujo) – 3 Considere a rede: s t a b d c 9 15 4 2 2 3 35 16 6 5 7

Teoria dos Grafos

Valeriano A. de OliveiraSocorro Rangel

Silvio A. de AraujoDepartamento de Matemática Aplicada

[email protected], [email protected], [email protected]

Caminho mínimo - Algoritmo deDijskstra

Preparado a partir do texto:Rangel, Socorro. Teoria do Grafos, Notas de aula, IBILCE, Unesp, 2002-2013.

Page 2: Teoria dos Grafos - ibilce.unesp.br · Introduçao Caminho Mínimo em Grafos Teoria dos Grafos (Antunes Rangel&Araujo) – 3 Considere a rede: s t a b d c 9 15 4 2 2 3 35 16 6 5 7

Caminho Mínimo em Grafos

Caminho Mínimo em Grafos

Page 3: Teoria dos Grafos - ibilce.unesp.br · Introduçao Caminho Mínimo em Grafos Teoria dos Grafos (Antunes Rangel&Araujo) – 3 Considere a rede: s t a b d c 9 15 4 2 2 3 35 16 6 5 7

IntroduçaoCaminho Mínimo em Grafos

Teoria dos Grafos (Antunes Rangel&Araujo) – 3

Considere a rede:

s t

a b

cd

9

15

4

2

2

3

35

16

6

5

7

21

Page 4: Teoria dos Grafos - ibilce.unesp.br · Introduçao Caminho Mínimo em Grafos Teoria dos Grafos (Antunes Rangel&Araujo) – 3 Considere a rede: s t a b d c 9 15 4 2 2 3 35 16 6 5 7

Caminho Mínimo em Grafos

Teoria dos Grafos (Antunes Rangel&Araujo) – 4

Dado dois vértices nesta rede, queremos determinar o menor caminho entre eles.

Uma primeira questão é como representar os valores associados às arestas nestegrafo. Isto pode ser feito através da matriz de pesos.

Seja D um digrafo simples cujas arestas possuem “pesos” associados, digamos, acada aresta (vi, vj) está associado um número real wij ≥ 0 (que pode representarcomprimento, distância, valor, etc).

Vamos definir wii = 0 para todo i e wij = ∞ quando não existe uma aresta entre osvértices vi e vj .

Assim a matriz de pesos é uma matriz n× n definida como W = [wij ], onde n é onúmero de vértices.

Page 5: Teoria dos Grafos - ibilce.unesp.br · Introduçao Caminho Mínimo em Grafos Teoria dos Grafos (Antunes Rangel&Araujo) – 3 Considere a rede: s t a b d c 9 15 4 2 2 3 35 16 6 5 7

ExemploCaminho Mínimo em Grafos

Teoria dos Grafos (Antunes Rangel&Araujo) – 5

Construir a matriz de pesos para a rede abaixo:

s t

a b

cd

9

15

4

2

2

3

35

16

6

5

7

21

Page 6: Teoria dos Grafos - ibilce.unesp.br · Introduçao Caminho Mínimo em Grafos Teoria dos Grafos (Antunes Rangel&Araujo) – 3 Considere a rede: s t a b d c 9 15 4 2 2 3 35 16 6 5 7

Caminho Mínimo em Grafos

Teoria dos Grafos (Antunes Rangel&Araujo) – 6

Observação 1. Em geral

■ wij 6= wji e

■ wij + wjk pode ser menor ou igual a wik.

Por exemplo, na rede anterior,

wsd + wda = 9 + 4 ≤ 15 = wsa.

Page 7: Teoria dos Grafos - ibilce.unesp.br · Introduçao Caminho Mínimo em Grafos Teoria dos Grafos (Antunes Rangel&Araujo) – 3 Considere a rede: s t a b d c 9 15 4 2 2 3 35 16 6 5 7

Caminho Mínimo em Grafos

Teoria dos Grafos (Antunes Rangel&Araujo) – 6

Observação 2. Em geral

■ wij 6= wji e

■ wij + wjk pode ser menor ou igual a wik.

Por exemplo, na rede anterior,

wsd + wda = 9 + 4 ≤ 15 = wsa.

• O algoritmo que nós vamos ver foi proposto por Dijkstra em 1959 e é um dos maiseficientes até hoje. Vamos supor então que queremos encontrar o caminho mínimoentre s e t na rede acima.

Page 8: Teoria dos Grafos - ibilce.unesp.br · Introduçao Caminho Mínimo em Grafos Teoria dos Grafos (Antunes Rangel&Araujo) – 3 Considere a rede: s t a b d c 9 15 4 2 2 3 35 16 6 5 7

Idéia do Algoritmo:Caminho Mínimo em Grafos

Teoria dos Grafos (Antunes Rangel&Araujo) – 7

■ Rotular os vértices do digrafo.

■ A partir do vértice inicial s, proceder em direção ao vértice final t (seguindo as arestasorientadas) rotulando os vértices com as suas distâncias ao vértice s, medida atéaquele momento.

■ A cada estágio do algoritmo teremos vértices que possuem rótulos temporários eoutros rótulos permanentes.

■ O rótulo de um vértice vj é feito permanente quando este rótulo representa a menordistância de s até vj .

■ Começamos associando rótulo permanente igual a zero para o vértice s, e um rótulotemporário igual a ∞ para os outros n− 1 vértices do grafo.

■ A cada iteração, um novo vértice recebe um rótulo permanente de acordo com asseguintes regras:

Page 9: Teoria dos Grafos - ibilce.unesp.br · Introduçao Caminho Mínimo em Grafos Teoria dos Grafos (Antunes Rangel&Araujo) – 3 Considere a rede: s t a b d c 9 15 4 2 2 3 35 16 6 5 7

Caminho Mínimo em Grafos

Teoria dos Grafos (Antunes Rangel&Araujo) – 8

1. Cada vértice vj com um rótulo temporário, recebe um novo rótulo temporário dadopor:

min{rótulo de vj , (rótulo de vi) + wij}

onde vi é o vértice que recebeu rótulo permanente na iteração anterior e wij é o valorda aresta entre o vértice vi e o vértice vj .

2. Encontre o menor valor entre os rótulos temporários.

Este será o rótulo permanente do respectivo vértice.

Em caso de empate selecione qualquer um dos candidatos e atribua rótulopermanente ao escolhido.

� Repetir 1 e 2 até que o vértice destino, t, receba um rótulo permanente.

Page 10: Teoria dos Grafos - ibilce.unesp.br · Introduçao Caminho Mínimo em Grafos Teoria dos Grafos (Antunes Rangel&Araujo) – 3 Considere a rede: s t a b d c 9 15 4 2 2 3 35 16 6 5 7

ExemploCaminho Mínimo em Grafos

Teoria dos Grafos (Antunes Rangel&Araujo) – 9

Vamos aplicar a ideia acima à rede abaixo:

s t

a b

cd

9

15

4

2

2

3

35

16

6

5

7

21

Page 11: Teoria dos Grafos - ibilce.unesp.br · Introduçao Caminho Mínimo em Grafos Teoria dos Grafos (Antunes Rangel&Araujo) – 3 Considere a rede: s t a b d c 9 15 4 2 2 3 35 16 6 5 7

Aplicação do algoritmo:Caminho Mínimo em Grafos

Teoria dos Grafos (Antunes Rangel&Araujo) – 10

Inicializaçao: rot(s) = 0 é permanente, rot(a) = rot(b) = rot(c) = rot(d) = rot(t) = ∞são temporários

it = 1

Regra 1 – Novo rótulo

Novo rot(a) = min{∞, 0 + wsa} = min{∞, 15} = 15

Novo rot(b) = min{∞, 0 + wsb} = min{∞,∞} = ∞

Novo rot(c) = min{∞, 0 + wsc} = min{∞,∞} = ∞

Novo rot(d) = min{∞, 0 + wsd} = min{∞, 9} = 9

Novo rot(t) = min{∞, 0 + wst} = min{∞,∞} = ∞

Regra 2 – Rótulo permanente: min{15,∞,∞, 9,∞} = 9 ⇒ rot(d) torna-sepermanente

Page 12: Teoria dos Grafos - ibilce.unesp.br · Introduçao Caminho Mínimo em Grafos Teoria dos Grafos (Antunes Rangel&Araujo) – 3 Considere a rede: s t a b d c 9 15 4 2 2 3 35 16 6 5 7

Aplicação do algoritmo cont.1:Caminho Mínimo em Grafos

Teoria dos Grafos (Antunes Rangel&Araujo) – 11

it = 2

Regra 1 – Novo rótulo

Novo rot(a) = min{15, 9 + wda} = min{15, 9 + 4} = 13

Novo rot(b) = min{∞, 9 + wdb} = min{∞,∞} = ∞

Novo rot(c) = min{∞, 9 + wdc} = min{∞, 9 + 2} = 11

Novo rot(t) = min{∞, 9 + wdt} = min{∞,∞} = ∞

Regra 2 – Rótulo permanente

min{13,∞, 11,∞} = 11 ⇒ rot(c) torna-se permanente

Page 13: Teoria dos Grafos - ibilce.unesp.br · Introduçao Caminho Mínimo em Grafos Teoria dos Grafos (Antunes Rangel&Araujo) – 3 Considere a rede: s t a b d c 9 15 4 2 2 3 35 16 6 5 7

Aplicação do algoritmo cont.1:Caminho Mínimo em Grafos

Teoria dos Grafos (Antunes Rangel&Araujo) – 11

it = 2

Regra 1 – Novo rótulo

Novo rot(a) = min{15, 9 + wda} = min{15, 9 + 4} = 13

Novo rot(b) = min{∞, 9 + wdb} = min{∞,∞} = ∞

Novo rot(c) = min{∞, 9 + wdc} = min{∞, 9 + 2} = 11

Novo rot(t) = min{∞, 9 + wdt} = min{∞,∞} = ∞

Regra 2 – Rótulo permanente

min{13,∞, 11,∞} = 11 ⇒ rot(c) torna-se permanente

Page 14: Teoria dos Grafos - ibilce.unesp.br · Introduçao Caminho Mínimo em Grafos Teoria dos Grafos (Antunes Rangel&Araujo) – 3 Considere a rede: s t a b d c 9 15 4 2 2 3 35 16 6 5 7

Aplicação do algoritmo cont.2:Caminho Mínimo em Grafos

Teoria dos Grafos (Antunes Rangel&Araujo) – 12

it = 3

Regra 1 – Novo rótulo

Novo rot(a) = min{13, 11 + wca} = min{13, 11 +∞} = 13

Novo rot(b) = min{∞, 11 + wcb} = min{∞, 11 +∞} = ∞

Novo rot(t) = min{∞, 11 + wct} = min{∞, 11 + 7} = 18

Regra 2 – Rótulo permanente

min{13,∞, 18} = 13 ⇒ rot(a) torna-se permanente

Page 15: Teoria dos Grafos - ibilce.unesp.br · Introduçao Caminho Mínimo em Grafos Teoria dos Grafos (Antunes Rangel&Araujo) – 3 Considere a rede: s t a b d c 9 15 4 2 2 3 35 16 6 5 7

Aplicação do algoritmo cont.3:Caminho Mínimo em Grafos

Teoria dos Grafos (Antunes Rangel&Araujo) – 13

it = 4

Regra 1 – Novo rótulo

Novo rot(b) = min{∞, 13 + wab} = min{∞, 13 + 35} = 48

Novo rot(t) = min{18, 13 + wat} = min{18, 13 +∞} = 18

Regra 2 – Rótulo permanente

min{48, 18} = 18 ⇒ rot(t) torna-se permanente

Fim

Podemos parar pois o vértice destino, t, recebeu rótulo permanente. Assim ocomprimento do menor caminho entre s e t é igual a 18. Como recuperar o caminho?

A partir do vértice destino t, verificamos o vértice com rótulo permanente usado naobtenção do rótulo de t. No nosso exemplo, o vértice c. Repetimos o processo apartir de c até alcançar o vértice inicial s. Assim temos t, c, d, s. O caminho é obtidoinvertendo a ordem obtida: s, d, c, t.

Page 16: Teoria dos Grafos - ibilce.unesp.br · Introduçao Caminho Mínimo em Grafos Teoria dos Grafos (Antunes Rangel&Araujo) – 3 Considere a rede: s t a b d c 9 15 4 2 2 3 35 16 6 5 7

ImplementaçãoCaminho Mínimo em Grafos

Teoria dos Grafos (Antunes Rangel&Araujo) – 14

Em uma possível implementação deste algoritmo vamos precisar armazenar as seguintesinformações:

■ Indicação se um vértice vk possui rótulo permanente ou temporário.

■ Guardar a menor distância entre o vértice inicial s e o vértice vk.

■ Guardar o vértice com rótulo permanente que deu origem a um novo rótulo(importante para recuperar o caminho).

Assim vamos podemos definir a seguinte estrutura de dados:

1. Entrada de Dados: Matriz de pesos W (O(n2)).

2. A dificuldade é distinguir, a cada iteração, os vértices com rótulos permanentes e osvértices com rótulo temporário.

Utilizamos um vetor lógico (ou binário) n-dimensional:

final(v) =

{

True se o rótulo do vértice v é permanente,False se o rótulo do vértice v é temporário.

Page 17: Teoria dos Grafos - ibilce.unesp.br · Introduçao Caminho Mínimo em Grafos Teoria dos Grafos (Antunes Rangel&Araujo) – 3 Considere a rede: s t a b d c 9 15 4 2 2 3 35 16 6 5 7

Caminho Mínimo em Grafos

Teoria dos Grafos (Antunes Rangel&Araujo) – 15

3. Precisamos também de um vetor n-dimensional para guardar as distânciasacumuladas do vértice inicial s ao vértice vk. Vamos chamar este vetor de dist.

4. Como recuperar o caminho? Sabemos que a menor distância será dada pordist(t). Mas qual é este caminho?

Cada vez que o rótulo de um vértice é modificado precisamos saber a partir deque vértice foi calculado o novo rótulo. Mantendo um vetor n-dimensional predtal que:

• pred(v) indica o vértice com rótulo permanente que deu origem ao rótulodo vétice v,

• e se v for o vértice inicial, então pred(s) = −1;

temos que o menor caminho é dado por:

s, pred(pred(· · · )), . . . , pred(pred(t)), pred(t), t.

Page 18: Teoria dos Grafos - ibilce.unesp.br · Introduçao Caminho Mínimo em Grafos Teoria dos Grafos (Antunes Rangel&Araujo) – 3 Considere a rede: s t a b d c 9 15 4 2 2 3 35 16 6 5 7

Caminho Mínimo em Grafos

Teoria dos Grafos (Antunes Rangel&Araujo) – 16

Considere um digrafo D(V,A), com n vértices e sua matriz de pesos W = [wij ],n× n.

Queremos encontrar o menor caminho entre o vértice s e o vértice t no digrafo D.

Defina os vetores:

■ final(i) – indica se o vértice vi recebeu rótulo permanente (potencial) ou não;

■ dist(i) – indica a distância acumulada do vértice inicial s até o vértice vi;

■ pred(i) – indica o vértice com rótulo permanente que deu origem ao rótulo dovétice vi.

Page 19: Teoria dos Grafos - ibilce.unesp.br · Introduçao Caminho Mínimo em Grafos Teoria dos Grafos (Antunes Rangel&Araujo) – 3 Considere a rede: s t a b d c 9 15 4 2 2 3 35 16 6 5 7

Algoritmo de DijkstraCaminho Mínimo em Grafos

Teoria dos Grafos (Antunes Rangel&Araujo) – 17

Inicialização

para todo v ∈ V faça

início

dist(v) = ∞

final(v) = falso

pred(v) = −1

fim

dist(s) = 0

final(s) = verdadeiro

recente = s

Page 20: Teoria dos Grafos - ibilce.unesp.br · Introduçao Caminho Mínimo em Grafos Teoria dos Grafos (Antunes Rangel&Araujo) – 3 Considere a rede: s t a b d c 9 15 4 2 2 3 35 16 6 5 7

Algoritmo de Dijkstra cont.Caminho Mínimo em Grafos

Teoria dos Grafos (Antunes Rangel&Araujo) – 18

Iteração Principal

enquanto final(t) = falso faça

início

para todo vértice vj tal que exista a aresta (recente, vj) e tal que final(j) = falso faça

início (atualização dos rótulos)

rotulo = dist(recente) + wrecente,j

(o rótulo de vj é modificado se houver um caminho menor de s a vj através dovértice recente)

se rotulo < dist(j) então

início

dist(j) = rotulo

pred(j) = recente

fim

fim(encontre o vértice com menor rótulo temporário)

Seja y o vértice com menor rótulo temporário, tal que dist(y) 6= ∞

início (o rótulo do vértice y se torna permanente)

final(y) = verdadeiro

recente = y

fim

fim

Page 21: Teoria dos Grafos - ibilce.unesp.br · Introduçao Caminho Mínimo em Grafos Teoria dos Grafos (Antunes Rangel&Araujo) – 3 Considere a rede: s t a b d c 9 15 4 2 2 3 35 16 6 5 7

ExemploCaminho Mínimo em Grafos

Teoria dos Grafos (Antunes Rangel&Araujo) – 19

Rastrear o algoritmo de Dijkstra usando o digrafo com vértices s, a, b, c, d, t cujamatriz de pesos associada é:

W =

0 7 4 9 7 ∞7 0 1 ∞ ∞ 64 1 0 3 ∞ ∞9 ∞ 3 0 1 37 ∞ ∞ 1 0 5∞ 6 ∞ 3 5 0

.

Page 22: Teoria dos Grafos - ibilce.unesp.br · Introduçao Caminho Mínimo em Grafos Teoria dos Grafos (Antunes Rangel&Araujo) – 3 Considere a rede: s t a b d c 9 15 4 2 2 3 35 16 6 5 7

Exemplo cont.Caminho Mínimo em Grafos

Teoria dos Grafos (Antunes Rangel&Araujo) – 20

Inicialização

dist = [∞ ∞ ∞ ∞ ∞ ∞]

final = [falso falso falso falso falso falso]

pred = [−1 − 1 − 1 − 1 − 1 − 1]

dist(s) = 0

final(s) = verdadeiro

recente = s

it = 1

Vértices v tais que existe a aresta (recente, v) e tais que final(v) = falso:a, b, c, d

Page 23: Teoria dos Grafos - ibilce.unesp.br · Introduçao Caminho Mínimo em Grafos Teoria dos Grafos (Antunes Rangel&Araujo) – 3 Considere a rede: s t a b d c 9 15 4 2 2 3 35 16 6 5 7

Exemplo cont.Caminho Mínimo em Grafos

Teoria dos Grafos (Antunes Rangel&Araujo) – 21

v = a: rotulo = dist(recente) + wrecente,a = 0 + 7 < ∞ = dist(a)

dist(a) = 7

pred(a) = s

v = b: rotulo = dist(recente) + wrecente,b = 0 + 4 < ∞ = dist(b)

dist(b) = 4

pred(b) = s

v = c: rotulo = dist(recente) + wrecente,c = 0 + 9 < ∞ = dist(c)

dist(c) = 9

pred(c) = s

v = d: rotulo = dist(recente) + wrecente,d = 0 + 7 < ∞ = dist(d)

dist(d) = 7

pred(d) = s

Page 24: Teoria dos Grafos - ibilce.unesp.br · Introduçao Caminho Mínimo em Grafos Teoria dos Grafos (Antunes Rangel&Araujo) – 3 Considere a rede: s t a b d c 9 15 4 2 2 3 35 16 6 5 7

Exemplo cont.Caminho Mínimo em Grafos

Teoria dos Grafos (Antunes Rangel&Araujo) – 22

Vértice y com menor rótulo temporário, tal que dist(y) 6= ∞: b

final(b) = verdadeiro

recente = b

Page 25: Teoria dos Grafos - ibilce.unesp.br · Introduçao Caminho Mínimo em Grafos Teoria dos Grafos (Antunes Rangel&Araujo) – 3 Considere a rede: s t a b d c 9 15 4 2 2 3 35 16 6 5 7

Exemplo cont.Caminho Mínimo em Grafos

Teoria dos Grafos (Antunes Rangel&Araujo) – 22

Vértice y com menor rótulo temporário, tal que dist(y) 6= ∞: b

final(b) = verdadeiro

recente = b

it = 2

Vértices v tais que existe a aresta (recente, v) e tais que final(v) = falso: a, c

v = a: rotulo = dist(recente) + wrecente,a = 4 + 1 < 7 = dist(a)

dist(a) = 5

pred(a) = b

v = c: rotulo = dist(recente) + wrecente,c = 4 + 3 < 9 = dist(c)

dist(c) = 7

pred(b) = b

Page 26: Teoria dos Grafos - ibilce.unesp.br · Introduçao Caminho Mínimo em Grafos Teoria dos Grafos (Antunes Rangel&Araujo) – 3 Considere a rede: s t a b d c 9 15 4 2 2 3 35 16 6 5 7

Exemplo cont.Caminho Mínimo em Grafos

Teoria dos Grafos (Antunes Rangel&Araujo) – 23

Vértice y com menor rótulo temporário, tal que dist(y) 6= ∞: a

final(a) = verdadeiro

recente = a

Page 27: Teoria dos Grafos - ibilce.unesp.br · Introduçao Caminho Mínimo em Grafos Teoria dos Grafos (Antunes Rangel&Araujo) – 3 Considere a rede: s t a b d c 9 15 4 2 2 3 35 16 6 5 7

Exemplo cont.Caminho Mínimo em Grafos

Teoria dos Grafos (Antunes Rangel&Araujo) – 23

Vértice y com menor rótulo temporário, tal que dist(y) 6= ∞: a

final(a) = verdadeiro

recente = a

it = 3

Vértices v tais que existe a aresta (recente, v) e tais que final(v) = falso: t

v = t: rotulo = dist(recente) + wrecente,t = 5 + 6 < ∞ = dist(t)

dist(t) = 11

pred(t) = a

Vértice y com menor rótulo temporário, tal que dist(y) 6= ∞: c ou d

final(c) = verdadeiro

recente = c

Page 28: Teoria dos Grafos - ibilce.unesp.br · Introduçao Caminho Mínimo em Grafos Teoria dos Grafos (Antunes Rangel&Araujo) – 3 Considere a rede: s t a b d c 9 15 4 2 2 3 35 16 6 5 7

Exemplo cont.Caminho Mínimo em Grafos

Teoria dos Grafos (Antunes Rangel&Araujo) – 24

it = 4

Vértices v tais que existe a aresta (recente, v) e tais que final(v) = falso: d, t

v = d: rotulo = dist(recente) + wrecente,d = 7 + 1 ≮ 7 = dist(d)

v = t: rotulo = dist(recente) + wrecente,t = 7 + 3 < 11 = dist(t)

dist(t) = 10

pred(t) = c

Vértice y com menor rótulo temporário, tal que dist(y) 6= ∞: d

final(d) = verdadeiro

recente = d

Page 29: Teoria dos Grafos - ibilce.unesp.br · Introduçao Caminho Mínimo em Grafos Teoria dos Grafos (Antunes Rangel&Araujo) – 3 Considere a rede: s t a b d c 9 15 4 2 2 3 35 16 6 5 7

Exemplo cont.Caminho Mínimo em Grafos

Teoria dos Grafos (Antunes Rangel&Araujo) – 25

it = 5

Vértices v tais que existe a aresta (recente, v) e tais que final(v) = falso: t

v = t: rotulo = dist(recente) + wrecente,d = 7 + 5 ≮ 7 = dist(d)

Vértice y com menor rótulo temporário, tal que dist(y) 6= ∞: t

final(t) = verdadeiro

recente = t

Como final(t) = verdadeiro, pare

Page 30: Teoria dos Grafos - ibilce.unesp.br · Introduçao Caminho Mínimo em Grafos Teoria dos Grafos (Antunes Rangel&Araujo) – 3 Considere a rede: s t a b d c 9 15 4 2 2 3 35 16 6 5 7

Exemplo comt.Caminho Mínimo em Grafos

Teoria dos Grafos (Antunes Rangel&Araujo) – 26

Qual é o valor do menor caminho?

dist(t) = 10

Qual é este caminho?

t, pred(t)

t, c, pred(c)

t, c, b, pred(b)

t, c, b, s, pred(s)

t, c, b, s,−1

O menor caminho é {s, b, c, t}

Page 31: Teoria dos Grafos - ibilce.unesp.br · Introduçao Caminho Mínimo em Grafos Teoria dos Grafos (Antunes Rangel&Araujo) – 3 Considere a rede: s t a b d c 9 15 4 2 2 3 35 16 6 5 7

Exemplo cont.Caminho Mínimo em Grafos

Teoria dos Grafos (Antunes Rangel&Araujo) – 27

E se quisermos o menor caminho entre s e c? Podemos aproveitar os cálculosanteriores.

Como c possui rótulo permanente, temos que:

dist(c) = 7

E o caminho é:

c, pred(c)

c, b, pred(b)

c, b, s

O menor caminho é então: {s, b, c}.

Page 32: Teoria dos Grafos - ibilce.unesp.br · Introduçao Caminho Mínimo em Grafos Teoria dos Grafos (Antunes Rangel&Araujo) – 3 Considere a rede: s t a b d c 9 15 4 2 2 3 35 16 6 5 7

ObservaçõesCaminho Mínimo em Grafos

Teoria dos Grafos (Antunes Rangel&Araujo) – 28

1. A complexidade em termos de tempo computacional do algoritmo acima é dadapor:

O laço principal deste algoritmo, no pior caso, é executado n− 1 vezes. Istoacontece quando o vértice final, t, é o último a receber um rótulo permanente.Para cada execução deste laço, precisamos examinar uma linha da matriz depesos, e atualizar os vetores dist e pred, ou seja um tempo proporcional a n.Assim o tempo total é da ordem 2n(n− 1). A complexidade é O(n2).

Observe que independe do número de arestas no grafo.

2. É possível, usando o algoritmo de Dijkstra encontrar o menor caminho entre ovértice s e todos os outros vértices do grafo. O que deve ser modificado?

Page 33: Teoria dos Grafos - ibilce.unesp.br · Introduçao Caminho Mínimo em Grafos Teoria dos Grafos (Antunes Rangel&Araujo) – 3 Considere a rede: s t a b d c 9 15 4 2 2 3 35 16 6 5 7

ObservaçõesCaminho Mínimo em Grafos

Teoria dos Grafos (Antunes Rangel&Araujo) – 29

1. Outros Algoritmos para problemas de Caminho Mínimo em grafos podem serencontrados por exemplo em: [Goldbarg, M. e E. Goldbarg, Grafos:conceitos,algoritmos e aplicações, Elsevier, 2012].

2. O algoritmo de Dijskstra funciona apenas se wij ≥ 0 para todos i, j. Verifiqueeste fato aplicando o algoritmo à seguinte rede para encontrar o menorcaminho entre v1 e v3:

v1

v2 v3

15