• Nenhum resultado encontrado

5.2 Algoritmos com Suporte na Construc~ao da Arvore dos Trajectos

5.2.4 Algoritmo de Eppstein

Neste paragrafo iremos descrever um algoritmo para a enumerac~ao dos K trajectos mais curtos de s para t em (NA), que foi recentemente proposto por Eppstein, 9]. Este algoritmo, tal como os apresentados anteriormente nesta subsecc~ao, e baseado na construc~ao da arvore dos trajectos entre s e t ou apenas de parte dela. A forma como e realizada esta construc~ao apresenta algumas semelhancas com a generalizac~ao do algoritmo de Yen, descrita no paragrafo anterior.

A ideia base deste algoritmo continua pois a ser a determinac~ao de sucessivos trajectos de s para t, a partir de outros previamente determinados.

E utilizado um conjunto, que designamos por P, constitu do pelos candidatos a kesimo trajecto mais curto, comk 2f1:::Kg.

Inicialmente e determinado o trajecto mais curto de s para t e P = fp1g. De um modo generico, no kesimo passo do algoritmo, para k 2 f1:::Kg, e retirado o trajecto com menor custo emP, trajecto esse que e pk, o kesimo trajecto mais curto de s para t. Consideraremos no que se segue que pk e da forma

pk=hv1kak1v2k:::ak`k ;1vk`k

i:

A partir de pk s~ao determinados outros trajectos, que se desviam de pk num certo no, trajectos esses que passam a ser elementos deP, uma vez que s~ao candidatos a resimo trajecto mais curto, para algumr > k.

Este procedimento e analogo ao utilizado na generalizac~ao do algoritmo de Yen. A diferenca entre estes dois algoritmos reside no facto de em cada um deles serem calculados diferentes trajectos a partir de cadapk, como descreveremos em seguida. Como referimos, o primeiro trajecto determinado e p1. Este trajecto passa a ser elemento de P, de onde e retirado no primeiro passo do algoritmo, uma vez que e o seu unico elemento nesse momento.

Comecemos ent~ao por considerar o trajecto mais curto,p1. A partir dep1 vamos calcular novos trajectos, entre os quais devera estar p2, que coincide com p1 ate um dos seus nos.

Seja v1i um dos nos de p1, tal que 1 i `1 ;1. Podemos determinar varios novos trajectos de s para t que coincidam com p1 desde s ate v1i, e que se separam dele nesse mesmo no, sendo todos eles diferentes de p1. Para isso basta calcular trajectos de v1i para t, efectuando ent~ao a sua concatenac~ao com sub1(sv1i). De

5.2 Algoritmos com Suporte na Construc~ao da Arvore dos Trajectos 45

modo a n~ao obter novamente p1, os trajectos calculados de v1i para t n~ao devem coincidir com sub1(v1it).

Uma vez que pretendemos encontrar os trajectos com menor custo poss vel, de-vemos procurar trajectos entre os nos v1i e t com o menor custo, a excepc~ao de sub1(v1it). Os trajectos que se separam de sub1(v1it) no nov1i s~ao ent~ao da forma p = hv1iji qj, onde (v1ij) e um arco de (NA) e qj e um trajecto de j para t. Se j 6= v1i+1, isto e, se (v1ij) 6 a1i, ent~ao p n~ao coincide com sub1(v1it), como pretend amos. Podemos ent~ao procurar trajectos da forma p = hv1iji qj, com (v1ij)2 A;f(v1iv1i+1)g, qj 2Pjt e com o menor custo. Para isso iremos escolher os trajectos tais que qj tem o menor custo poss vel. Como n~ao e imposta nenhuma restric~ao a este ultimo trajecto, qj pode ser escolhido simplesmente como sendo o trajecto mais curto de j parat em (NA), ou seja, utilizando a notac~ao introduzida no paragrafo anterior, qj =Tt(j).

Lembremos que dado um no i 2 N, D(i) denota o conjunto dos nos da rede (NA) nos quais termina um arco com in cio no no i.

Resumindo, cada nov1ide p1, com 1< i < `1, da origem aos trajectos em (NA) da forma

sub1(sv1i)hv1ijiTt(j)

para todo o no j do conjunto D(v1i);fv1i+1g. Para o caso particular de i = 1 obtemos, de modo analogo, os trajectos da forma hsjiTt(j), comj 2D(s);fv12g. E de notar que na generalizac~ao do algoritmo de Yen procuravamos apenas, para cada no v1i, o trajecto da forma indicada com menor custo.

O modo como e tratado o trajecto pk, com 1 < k K, e analogo ao utilizado para k = 1 e sera descrito em seguida.

De um modo geral iremos determinar varios trajectos a partir de cada trajecto kesimo mais curto, pk, com 1< k K.

Como k > 1, pk foi obtido a partir de um certo trajecto pr, com 1 r < k. Ent~ao pk coincide com pr desde s ate um no que e o seu no desvio, vrk, ou seja, subk(svkk) = subr(svrk).

Devemos em seguida determinar trajectos que se desviem de pk em algum dos seus nos. No entanto, quandopkfoi calculado, ou seja, quandopr, que o originou, foi analisado, foram determinados os trajectos que se desviavam de pr, em alguns dos seus nos anteriores a vkk. Ao analisarpk, para que n~ao sejam calculados novamente alguns trajectos, basta determinar apenas aqueles que se separem de pk na parte n~ao comum com pr, ou seja, em nos seguintes ao seu no de desvio, vkk, isto e, em cada vki, com k < i < `k.5

46 5 ENUMERAC~AO DOS K TRAJECTOS MAIS CURTOS

Como anteriormente, para cada um desses nos vki s~ao determinados os trajectos da forma

subk(svki)hvkijiqj

onde j e um no qualquer da rede tal que j 2 D(vki);fvki+1g. Mais uma vez, de modo a determinar os trajectos com o menor custo poss vel escolhemos trajectos qj

tais que qj =Tt(j).

E de notar que, como foi descrito, o primeiro no a analisar a partir de p1 deve ser o inicial,s, e a partir depk, parak > 1, deve ser vkk+1. Assim, por conveni^encia, neste algoritmo iremos considerar que a ordem do no desvio do trajectop1 e 1 = 0. Fica assim conclu da a descric~ao sumaria do racioc nio seguido no algoritmo de Eppstein.

Para alem do que foi referido, e com o intuito de simplicar a implementac~ao computacional do algoritmo, Eppstein utiliza ainda uma mudanca de variavel, que sera descrita no que se segue.

Tal como no algoritmo de Yen generalizado, no in cio deste algoritmo e determi-nada a arvore dos trajectos mais curtos de todos os nos da rede parat. Esta arvore e mantida durante a resoluc~ao do problema, o que permite conhecer de imediato os trajectos Tt(j), de j para t, com j 2N ;ftg, necessarios. Alem disso, a arvore Tt

e necessaria para a realizac~ao da mudanca de variavel.

Sejam iej dois nos de (NA) e (ij) um arco da mesma rede. Denotemos, mais uma vez, por ti o custo do trajecto mais curto de i para t na rede (NA), isto e, ti=c(Tt(i)).

Associemos a cada arco (ij) da rede o valor $cij =tj;ti+cij que designaremos por

custo reduzido

de (ij).

Por analogia com a noc~ao de custo de um trajecto podemos considerar a de custo reduzido de um trajecto, denido por $c(p) =P

pc$ij.

Como referimos anteriormente, a gura 16 representa gracamente a arvore dos trajectos mais curtos de todos os nos paratna rede que e representada na gura 13. Esta arvore e utilizada para calcular os custos reduzidos de cada arco. Para exem-plicar a noc~ao de custo reduzido que foi apresentada, a gura 20 mostra a rede da gura 13, onde o custo usual de cada arco foi substitu do pelo respectivo custo reduzido.

Como podemos vericar pela observac~ao daquelas guras, o custo reduzido de qualquer arco da rede e n~ao negativo. Se o arco em quest~ao pertencer a arvore Tt

podemos ainda observar que o respectivo custo reduzido e nulo. Esta propriedade e valida em qualquer rede, sendo demonstrada em seguida.

dep k.

5.2 Algoritmos com Suporte na Construc~ao da Arvore dos Trajectos 47 . . . . . . . . . ... .. ... . ..... .. ...... . .. ... . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 . . . . . . . .. . . . . .... .... . ..... ..... ... . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2 . . .. . . . .. . .. . . ... ...... .. ...... . .. ... .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 . . .. . . . . . . .. . . .... ............ .... .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4 . . . . . . . . . . . .. .... .... . ..... ..... . .. .. . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5 . . . . .. . . . . . . . . . .. ...... . . . ..... ... . .. . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6 . . . . .. . . .. . . . . . ... . ........... . ... . . . . ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7 . .. ... . .. .. .... .. ... . ... . . . ... . . . .. ... . .. ... . .. ... . .. ... . .. ... . .. ... . . . ... . .. ... ... . . .... .. . .. . . . . .. ... . .. ... . .. ...... . . . . . . . . . . . . . . . . . . . . . . . . . 3 . .................................................................................................. . . . . . . . . . . . . . . . . . . . . 3 . .. ... . . . ... . . . .. ... . .. ... . .. ... . .. ... . .. ... . .. ... . .. ... . .. ... . .. .. .... .. ... ... . .. . . . ... ... . .. . . . . .. ... . .. ... . .. ..... . . . . . . . . . . . . . . . . . . . . . . . . . . 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . .0 . .. ... . ... . .. . . .. . .. .... .... ... . ... ... . .. .... ... . .. . ... . ... . .. .... ... .... ... . ... . .. ... .... ... . ... . .. .... . .. .... ... . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 ................................................................................................... . . . . . . . . . . . . . . . . . . . . 0 . .. ... . ... . .. . . .. . .. ... . ... . .. . . .. . .. .... ... . ... . .. . ... . .. ... . ... . .. . ... . .. .... ... . ... .... ... . .. .... ... ... . ... . ... . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 ............................................................................................. . . . . . . . . . . . . . . . . . . . . . . . . . . 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .... . .... .... . ....... .... . .. 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . .. . . . . . . . . . . . . . . . . . 0

Figura 20

Lema 5.7

Seja ti a dist^ancia do trajecto mais curto de i para t numa dada rede (NA) e seja $cij = tj ;ti+cij. Ent~ao $cij  0, qualquer que seja (ij) 2 A, e $

cij = 0, qualquer que seja (ij) arco da arvore dos trajectos mais curtos de todos os nos para t, em (NA).

Demonstra c~ao:

Sejapi =hijiTt(j) um trajecto de i para t em (NA). Uma vez queTt(i) e o trajecto de menor custo emPit,c(Tt(i)) c(pi). Por outro lado c(Tt(i)) =ti e c(pi) =cij+tj, logo c(pi);c(Tt(i))0, ou seja, $cij 0.

Suponhamos agora que (ij) pertence a arvore dos trajectos mais curtos com raiz em t. Ent~ao pi coincide com Tt(i), tendo-se c(pi) = c(Tt(i)), pelo que $cij = 0, como pretend amos mostrar.

O rec proco deste lema nem sempre e valido. De facto, como podemos vericar nas guras 16 e 20, podem existir arcos que n~ao pertencam a arvore Tt, embora os seus custos reduzidos sejam nulos. Este e o caso, por exemplo, do arco (35).

O custo reduzido $cij, de um arco (ij), representa o custo acrescentado ao custo do trajecto mais curto deiparat,Tt(i), quando pretendemos seguirpi =hijiTt(j), ou seja, quando nos desviamos de Tt(i) apenas no arco (ij).

Consideremos por exemplo p1 = h1476i, o trajecto mais curto de 1 para 6, na rede da gura 20. O trajecto p =h136i, onde T6(3) = h36i e o trajecto com menor custo de 3 para 6, e embora tenha in cio em 1 e termine em 6, e diferente de p1. Ent~ao, pelo que foi enunciado, o custo dep e dado por c(p) = $c13+c(p1) = 4. Este resultado e demonstrado, no lema 5.8.

Lema 5.8

Seja (ij) um arco de (NA), e sejam pi = hijiTt(j) e Tt(i) dois trajectos de i para t naquela rede. Ent~ao c(pi) = $cij+c(Tt(i)).

Demonstra c~ao:

Sob as hipoteses enunciadas podemos concluir que

c(pi);c(Tt(i)) = cij+c(Tt(j));c(Tt(i)) =cij+tj;ti

e, ent~ao, pela denic~ao de custo reduzido, c(pi);c(Tt(i)) = $cij, como pretend amos demonstrar.

48 5 ENUMERAC~AO DOS K TRAJECTOS MAIS CURTOS

Como e demonstrado no lema 5.9, conhecendo o custo do trajecto mais curto de s parat, em (NA), e o custo reduzido de um trajecto qualquer,p, e poss vel saber tambem o respectivo custo, c(p).

Lema 5.9

Seja p um trajecto de s para t, e seja p1 o trajecto mais curto, tambem entre s e t, na rede (NA). Ent~ao c(p) =c(p1) + $c(p).

Demonstra c~ao:

Sejam p = hv1a1v2:::a`p;1v`p

i e p1 dois trajectos de P, sendop1 o de menor custo naquele conjunto. Por denic~ao de custo de um trajecto, c(p) = P

pcij logo, por denic~ao de custo reduzido, $cij = tj ;ti+cij, podemos deduzir sucessivamente: c(p) =P pcij =P p(ti;tj+ $cij) =P pc$ij+P p(ti;tj) = $c(p) + (tv1 ;tv2 +tv2 ;tv3 ++tv` p ;1 ;tv` p) = $c(p) +tv1 ;tv`p = $c(p) +ts;tt:

Comott= 0, ent~ao c(p) = $c(p)+ts = $c(p)+c(p1), como pretend amos mostrar. O lema 5.10, onde e demonstrado que e indiferente enumerar trajectos utilizando o seu custo ou o seu custo reduzido, e consequ^encia imediata do lema 5.9.

Lema 5.10

Sejam p e q trajectos de s parat em (NA) ent~ao c(p) c(q) se e so se $c(p) $c(q).

Demonstra c~ao:

Pelo lema 5.9,

$

c(p) =c(p);c(p1) e

$

c(q) = c(q);c(p1)

onde p1 e o trajecto mais curto de s para t em (NA), sendo ent~ao imediato que c(p) c(q) se e so se $c(p) $c(q), como pretend amos.

A utilizac~ao dos custos reduzidos dos arcos em substituic~ao dos seus custos usuais permitira simplicar a forma de guardar os trajectos calculados. Assim, no in cio do algoritmo e determinada a arvore dos trajectos mais curtos de todos os nos parate, de acordo com a arvore constru da, o custo de cada arco da rede e substitu do pelo respectivo custo reduzido. Em seguida e utilizado o racioc nio apresentado, segundo

5.2 Algoritmos com Suporte na Construc~ao da Arvore dos Trajectos 49

o qual cada trajecto pk da origem, a partir do no vki de pk, com k < i < `k, a trajectos da forma

subk(svki)hvkijiTt(j)

para todo o j 2 D(vki);fvki+1g. Estes trajectos, obtidos a partir de pk, t^em custo n~ao inferior ao custo de pk, como e demonstrado no lema 5.11.

Lema 5.11

Para k 2 f1:::Kg, seja pk um dos trajectos de s para t retirados de P durante a execuc~ao do algoritmo de Eppstein, e sejam t1:::tr os trajectos determinados pelo mesmo algoritmo a partir de pk. Ent~ao, para todo o 1 i r, c(pk) c(ti).

Demonstra c~ao:

Para k = 1, p1 e o trajecto mais curto de s para t em (NA), pelo que pertence a arvore Tt. Ent~ao, pelo lema 5.7, todos os arcos de p1 t^em custo reduzido nulo, pelo que $c(p1) = 0.

Os trajectos calculados a partir dep1 separam-se deste num no xe s~ao da forma tx = sub1(sx)hxjiTt(j):

O trajecto Tt(j) pertence tambem a Tt, tendo portanto custo reduzido nulo. Assim, tx contem quando muito um arco que n~ao esta naquela arvore, o arco (xj) com custo reduzido $cxj  0 logo $c(p1) $c(tx) e consequentemente, pelo lema 5.10, c(p1) c(tx).

Para k > 1, para cada no x que se segue ao no desvio de pk, s~ao calculados trajectos da forma

tx = subk(sx)hxjiTt(j):

Como anteriormente, Tt(j) e um trajecto da arvoreTt. Ent~ao os arcos de pkque n~ao pertencem a esta arvore s~ao tambem arcos detx. Alem disso (xj), que n~ao esta em pk, pode pertencer ou n~ao aTt, logo

$

c(tx) = $c(pk) + $cxj + $c(Tt(j)) = $c(pk) + $cxj:

Como $cxj  0, ent~ao $c(pk) c$(tx), e portanto, c(pk) c(tx), novamente pelo lema 5.10, como pretend amos concluir.

De acordo com o racioc nio descrito, cada trajectop, obtido a partir depk, pode ser identicado porpk, pelo no desvio e/ou pelo arco em quepse separa depk. Ent~ao, para conhecer o custo desse trajectop, e considerando quep= subk(si)hijiTt(j), devemos calcular

50 5 ENUMERAC~AO DOS K TRAJECTOS MAIS CURTOS

Isto obrigaria a conhecer o custo de subk(si), para varios nos i de pk. Se o custo de cada arco cij fosse substitu do pelo respectivo custo reduzido, $cij, ent~ao o custo de p obter-se-ia facilmente a partir de

c(p) =c(p1) + $c(p) =ts+ $c(p):

Como p tem, quando muito, mais um arco n~ao pertencente a Tt relativamente aos arcos depk, e uma vez que $c(p) indica o acrescimo do custo do trajecto ao optar por utilizar os arcos acrescentados na obtenc~ao de p, $c(p) = $c(pk) + $cij, logo

c(p) =ts+ $c(pk) + $cij:

Utilizando a mudanca de variavel indicada basta ent~ao conhecer o custo reduzido de cada arco da rede e o custo de cada um dos trajectos pk.

Deste modo, no in cio deste algoritmo e determinada a arvore Tt e, de acordo com a arvore constru da, s~ao alterados os custos dos arcos de (NA), passando cada um a ter o valor do respectivo custo reduzido. Como foi referido, isto permite simplicar a identicac~ao de cada trajecto determinado.

O algoritmo de Eppstein utilizando a mudanca de variavel indicada e descrito no algoritmo 5.4.

Teorema 5.4

Sejamp1:::pK os trajectos de sparat na rede (NA) enumerados pelo algoritmo de Eppstein ent~ao c(p1) c(p2)  c(pK).

Demonstra c~ao:

Seja k = 1 dado que p1 e o trajecto mais curto em P, ent~ao c(p1) c(p) e valido para todo o trajecto p de s para t em (NA), e portanto c(p1) c(p2).

Demonstremos agora que c(pk) c(pk+1).

Admitamos que no passo k do algoritmo pk+1 2 P ent~ao, como o trajecto escolhido foi pk, verica-se que c(pk) c(pk+1).

Se no passo k do algoritmo pk+1 62P, pk+1 foi determinado a partir de pk logo, pelo lema 5.11, c(pk) c(pk+1), como pretend amos.

Para ilustrar o funcionamento do algoritmo de Eppstein vamos simular apenas tr^es dos seus passos, quando e aplicado a determinac~ao dos K = 3 trajectos mais curtos de s= 1 para t= 6 na rede da gura 13.

O algoritmo inicia-se com a determinac~ao da arvore dos trajectos mais curtos de todos os nos para t, representada anteriormente na gura 16.

Uma vez determinada esta arvore, inicia-se o calculo dos trajectos mais curtos de 1 para 6. O primeiro trajecto calculado e p1 = h1476i, donde resulta P =fp1g.

5.2 Algoritmos com Suporte na Construc~ao da Arvore dos Trajectos 51

Algoritmo 5.4:

Algoritmo de Eppstein

Tt ;arvore dos trajectos mais curtos de todos os nos para tem (NA)

Para(todo o (ij)2A) Fazercij ; tj; ti+cij

p ;Tt(s)

P ;fpg

k ;1

Enquanto(k K) e (P 6=) Fazer

pk ;trajecto de P tal que c(pk)c(p), qualquer que sejap2P

P ;P ;fpkg

Se (k = 1)Ent~aok ;0

Sen~aok ;ordem do no desvio depk

FimSe

Para(todo o i2fk+ 1:::`k;1g) Fazer Para(todo o j2D(vki);fvki+1g) Fazer

qki ;hvkiji Tt(j) pki ;subk(svki) qki P ;P fpkig FimPara FimPara k ;k+ 1 FimEnquanto

No primeiro passo deste algoritmo, p1 e retirado do conjunto P e a partir dele s~ao calculados alguns trajectos. A arvore da gura 21 representa os trajectos calculados de 1 para 6 em (NA), no nal do primeiro passo deste algoritmo.

Ao ser executado o segundo passo, e determinado o trajecto p2 = h146i. No entanto, como n~ao e poss vel obter trajectos a partir de p2, a arvore constru da permanece inalterada. Assim, a arvore obtida apos a a conclus~ao do terceiro passo coincide com a obtida apos a a conclus~ao do terceiro passo utilizando a generalizac~ao do algoritmo de Yen, representada anteriormente na gura 18.

Terminamos aqui esta simulac~ao que poderia continuar durante o numero de passos pretendido, de acordo com o algoritmo 5.4.

O pior dos casos para a execuc~ao do algoritmo de Eppstein ocorre, como para o algoritmo GY, para uma rede do tipo da gura 19, em que todo o trajecto mais curto passa por todos os nos da rede e onde, alem disso existe um arco de retorno, com custo nulo.

52 5 ENUMERAC~AO DOS K TRAJECTOS MAIS CURTOS . . . . . . . . . . . . .. ... . ............. . .. ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 0 . . . . . . . . .. . . . . . ... . ........... . .. ... . . .. . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2 . . . . . . . . . . . . ... . .. ............ ... . .. .. . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 . . . . . . . . .. .. . .. ... . ........... . .. ... . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. ... . .. . . . . . . ... ........... 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . 3 . ... .... .... .... . .... .... . ... . ... . ... ..... . ... .... .... . ... . .... .... . ... . ... ..... . .. ..... .... .... . .... ... . .... . ... . ... .... ..... . .. . .... .... . ... . .... .... . ... . ... .... .... ..... ... . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 . . . . . .. . . .. .. . . .... .......... .... ... . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. .... . ......... .... . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6 4 . .. . . . .. .. .. . .. .. . . . .. .. . . . .. .. . . . .. . . . .. .. .. . . . .. . . . .. .. . . . .. .. . . . .. .. . . . .. .. . . . .. . . . .. .. .. . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . ... . . .. .... .......... .... ... . . .. . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . .. . . . . . .. . . .. .. .. . ... .......... .... ... .. .. . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7 1 ... . . ... . . . . . . . . . . . ... . . . . ... . . . . ... . . ... . . . . . . ... . . ... . . . . ... . . . . ... . . . . ... . . . . ... . . ... . . . . . . ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . .. .... . ....... .... . . . . . . . .. . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6 4 . . . ... . . . . . . . . . .. ... . . . . . . . . . .. ... . . ... . . . . . . . . . . . ... . . . . . . . . . .. ... . . . . . . . . . ... . . . . ... . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . .. ... . .. ......... . ... . .. .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1 p 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . .

Figura 21

todos os trajectos de spara tque se desviem nesse no. Ora, existemm;n arcos da rede que n~ao pertencem apk isto e, dado um trajectopk s~ao calculadosm;nnovos trajectos. Assim, podemos armar que, no pior dos casos, o algoritmo de Eppstein tem uma complexidade de O(K(m;n)).