• Nenhum resultado encontrado

5.3 Algoritmos Baseados no Princ pio de Optimalidade

5.3.1 Algoritmo MS

Como referimos podem ser desenvolvidos algoritmos baseados no Princ pio de Op-timalidade para o problema dos K Trajectos Mais Curtos. Neste paragrafo iremos descrever as varias vers~oes de um algoritmo para a resoluc~ao deste problema e que se baseia no princ pio anteriormente enunciado.

A primeira vers~ao deste algoritmo deve-se a Martins, 14], vers~ao esta que tem sido sujeita a sucessivos melhoramentos, 15]. A vers~ao mais recente deve-se a Mar-tins e Santos, 17], e e conhecida por algoritmo MS.

A ideia principal deste algoritmo consiste no apagamento de trajectos de uma rede, e na determinac~ao de novos trajectos apos cada remoc~ao.

Seja p1 o trajecto mais curto de s para t em (NA), trajecto este que pode ser determinado por um qualquer dos algoritmos anteriormente indicados para este problema.

Uma vez determinado p1, pretendemos em seguida determinar p2, o segundo trajecto mais curto na mesma rede. Este problema pode ser reduzido ao anterior se a rede inicial for transformada numa outra, onde e poss vel determinar todos os trajectos de (NA), excepto p1. Bastaria ent~ao recorrer novamente ao mesmo algoritmo e calcular o trajecto mais curto na rede transformada, dado que, se n~ao e poss vel denir o trajecto p1, ent~ao o trajecto mais curto nessa rede correspondera ao segundo mais curto em (NA).

A quest~ao que se coloca em seguida e a de saber transformar uma dada rede, por forma a obter uma outra, excluindo apenas um dado trajecto ou seja, para k 2f1:::Kg, dados uma rede (NkAk) e um trajecto pk em (NkAk), como obter outra rede (Nk+1Ak+1), onde podemos determinar todos os trajectos de (NkAk), excepto pk. Admitindo que e poss vel transformar (NkAk) em (Nk+1Ak+1), \apa-gando" um dado trajecto pk de (NkAk), resulta o algoritmo para enumerar os K trajectos mais curtos, descrito no algoritmo 5.6. Uma vez conhecido o procedimento que permite apagarpk de (NkAk), para k2f1:::K;1g, sera descrito o mesmo algoritmo de forma mais pormenorizada.

Por forma a permitir a repetic~ao, quer do no inicial,s, quer do terminal,t, num trajecto, a rede dada (NA) pode ser acrescentada, como foi referido anteriormente, com os nos, S eT, e com os arcos (Ss) e (tT), ambos de custo nulo. Os trajectos

5.3 Algoritmos Baseados no Princpio de Optimalidade 59

Algoritmo 5.6:

Algoritmo de Martins

(N1A1) ;(NA)

p1 ; trajecto mais curto desparat em (N1A1)

Para(todo ok 2f2:::Kg) Fazer

(NkAk) ;transformada de (Nk;1Ak;1) de onde e apagadopk;1

pk ;trajecto mais curto de sparatem (NkAk)

FimPara

passam a ser determinados de S para T. E de notar que qualquer trajecto tem pelo menos tr^es arcos.

A m de facilitar a descric~ao deste algoritmo, admitimos que a rede (NA) foi acrescentada, assumindo pois que qualquer trajecto e denido de s para t e e constitu do por, pelo menos, tr^es arcos.

Pretendemos pois transformar (NA) numa outra rede (N 0A

0), onde e poss vel realizar todos os trajectos desparatque se denem em (NA), excepto um trajecto dado, p.

Consideremos ent~ao

p=hv1a1v2a2:::v`p;1a`p;1v`p i onde `p 3, um trajecto de s para t em (NA).

O conjunto dos nosN

0 sera constitu do pelo conjunto dos nos da rede original, ao qual s~ao acrescentadas \copias" dos nos do trajecto pque n~ao o inicial e o terminal, por forma a obter alternativa aos subtrajectos de p, que e poss vel denir de s para vi, para i2f1:::`pg.

Como veremos, o conjunto A

0 e constitu do n~ao so por elementos de A, mas tambem por alguns novos arcos que ligam nos da rede original as \copias" dos nos de p e por arcos que ligam as \copias" entre si.

E de notar que um trajecto q0 de (N 0A

0) pode conter nos e arcos que n~ao pertencam a (NA) no entanto, estes nos e arcos constituem uma copia de nos e arcos de (NA). Diremos nesse caso que q0 =q, onde q e o trajecto de (NA) que resulta de q0 substituindo os nos e arcos de (N

0A

0) n~ao existentes em (NA) pelos respectivos nos e arcos desta ultima rede. E neste sentido que armamos que os trajectos de s para t em (N

0A

0) s~ao os trajectos de s para t em (NA). Diremos neste caso que q0 e o

trajecto alternativo

ou

alternativa

de q.

Seja p0 o trajecto de s para t que e alternativa do trajecto p a ser removido de (NA). Se constru ssemos (N

0A

60 5 ENUMERAC~AO DOS K TRAJECTOS MAIS CURTOS

continuaria a ser poss vel determinar aquele trajecto na nova rede. Para que isto n~ao aconteca devem ser retirados da rede o primeiro arco de p0 e o ultimo dep, ou o ultimo arco de p0 e o primeiro dep. No que se segue, a rede transformada, (N

0A 0) e a que resulta da considerac~ao do primeiro caso.

Lembremos que, dado um no i de uma rede, F(i) designa o conjunto dos arcos da rede que terminam emi. Denotemos ainda porF

0(i) o conjunto analogo, na rede (N

0A 0).

Assim, dada a rede (NA) e o trajecto p = hv1:::v`p

i, de (NA), a rede transformada, (N 0A 0), e denida por: 1. N 0 =N fv0 2:::v0 `p ;1g 2. A 0 = (A;f(v`p ;1t)g)F 0(v0 2):::F 0(v0 `p;1)f(v0 `p;1t)g, onde: (a) F 0(v0 2) =f(uv0 2) : (uv2)2F(v2);f(sv2)gg (b) F 0(v0 i) = f(uv0 i) : (uvi) 2F(vi);f(vi;1vi)ggf(v0 i;1v0 i)g, para todo o 2< i < `p.

Resta-nos identicar o custo a associar a cada um dos arcos da nova rede. Pretendemos que cada no acrescentado constitua uma \copia" do no corres-pondente na rede inicial, por forma a que todos os trajectos, com excepc~ao de p, se continuem a poder denir na rede transformada, em condic~oes id^enticas. Conclu mos pois que os trajectos alternativos na nova rede dever~ao ter custo igual aos seus correspondentes na rede original. Para tal os arcos da rede original mant^em o seu custo e os custos dos novos arcos dependem dos custos dos arcos iniciais que lhes deram origem. Teremos ent~ao:

 ci0j0 =cij, para (i0j0)2A

0, quaisquer que sejam i0j0 2N

0 ;N

 cij0 =cij , para (ij0)2A

0, quaisquer que sejami2N e j0 2N

0 ;N

 ci0j =cij , para (i0j)2A

0, quaisquer que sejamj 2N ei0 2N

0 ;N.

Mostramos, no teorema 5.6, que os trajectos diferentes depque se podem realizar em (NA), se podem realizar tambem em (N

0A

0), e vice-versa.

Teorema 5.6

Seja p=hv1:::v`p

ium trajecto de s parat numa dada rede (NA) e seja (N

0A

0) a rede obtida de (NA) tal que: 1. N

0 =N fv0

2:::v0

`p ;1g

5.3 Algoritmos Baseados no Princpio de Optimalidade 61 2. A 0 = (A;f(v`p ;1t)g)F 0(v0 2):::F 0(v0 `p ;1)f(v0 `p ;1t)g, onde: (a) F 0(v0 2) =f(uv0 2) : (uv2)2F(v2);f(sv2)gg (b) F 0(v0 i) = f(uv0 i) : (uvi) 2 F(vi);f(vi;1vi)ggf(v0 i;1v0 i)g, para todo o 2< i < `p. Designando por P

0 o conjunto dos trajectos de s para t na rede (N 0A

0), ent~ao

P ;fpg=P 0.

Demonstra c~ao:

Sejap=hv1:::v`p

i, comv1 =sev`p =t, um qualquer trajecto de s para t numa rede (NA).

Comecemos por demonstrar que P ;fpg P 0. Sejaq =hn1:::n`q

i um trajecto deP ;fpg.

Uma vez queq6=p, existe pelo menos um valorj, tal que 1< j < `p e 1< j < `q, para o qual vj 6=nj.

Pela construc~ao de (N 0A

0), todos os arcos da rede inicial, com a excepc~ao de (v`p

;1t), continuam a ser arcos da nova rede. Assim, se q n~ao contiver aquele arco e imediato que q e um trajecto emP

0 de s para t em (N 0A

0), ou seja, pertencente a P

0.

Suponhamos, sem perda de generalidade, que aquele e o ultimo arco deq, o que e poss vel dado que, acrescentando um super-no terminal a rede, existe um unico arco que termina em T. Ent~ao n`q

;1 =v`p;1.

Seja j o menor inteiro tal que n`q;j 6= v`p;j. Como q e p s~ao diferentes mas o seu ultimo arco e o mesmo, ent~ao 2 j minf`q`pg;2. Assim, podemos denir o trajecto subq(sn`q

;j) na rede (N 0A

0), mas, no entanto, n~ao podemos denir subq(n`q;j+1t) = subp(v`p;j+1t), uma vez que o seu ultimo arco n~ao pertence a nova rede. No entanto, pela forma como foi obtida (N

0A 0), quer o no n0 `q ;j+1 =v0 `p ;j+1 quer o arco (n`q ;jn0

`q;j+1) pertencem a nova rede. Assim, o trajecto subq(n`q ;jt) e substitu do por hn`q ;jn0 `q ;j+1n0 `q ;j+2:::n0 `q ;1ti=hv`p ;jv0 `p ;j+1v0 `p ;j+2:::v0 `p ;1ti pelo que o trajecto de s para t em (N

0A 0), q0 = subq(sn`q;j)hn`q ;jn0 `q ;j+1:::n0 `q ;1ti e escolhido como alternativo de q e podemos dizer queq 2P

0. Demonstremos agora que P

0 P ;fpg. Sejaq0 =hn1:::n`q 0 i um trajecto de P 0. Mostremos que q0 6

= p, comecando por supor o contrario, isto e, supondo que q0 =p.

62 5 ENUMERAC~AO DOS K TRAJECTOS MAIS CURTOS

Ora (n`q 0

;1t) 6= (v`p

;1t) uma vez que (v`p

;1t) n~ao e um arco da nova rede ent~ao n`q

0;1 teria de ser uma alternativa para v`p

;1, isto e, n`q 0

;1 = v0

`p;1. Como os arcos (vi;1v0

i), para 2< i < `p, tambem n~ao pertencem a nova rede, para q0 ser igual a p, os nos n2:::n`q

0

;1 teriam de ser alternativas av2:::v`p;1. Mas ent~ao, como (sv0

2) n~ao pertence a nova rede, conclu mos que q0 n~ao e alternativa a p, isto e, q0

6

=p, como pretend amos. Uma vez demonstrado que q0

6

=p, mostremos agora que q0

2 P, o que signica que q0

2P ;fpg.

Para isso, atendendo a construc~ao de (N 0A

0), basta substituir os arcos do tipo (v0

i;1v0

i) por (vi;1vi), para 2< i < `p, o arco (v0

`p

;1t) por (v`p

;1t), e nalmente, os arcos do tipo (uv0

i) por (uvi), para (uv0

i) 2 F(vi) e 2 < i < `p, cando assim conclu da a demonstrac~ao.

Como consequ^encia do teorema 5.6 podemos obter o corolario 5.6.1, apresentado em seguida.

Corolario 5.6.1

Trajectos alternativos em (NA) e em (N 0A

0) t^em custos iguais.

Demonstra c~ao:

Seja q0 um trajecto alternativo, em (N 0A

0), ao trajecto q, em (NA). Basta observar, pelo teorema 5.6, que q e q0 utilizam os mesmos arcos ou arcos alternativos. Pela forma como est~ao denidos os custos dos arcos da nova rede estes t^em o mesmo custo que os correspondentes na rede original, pelo que ca demonstrado que c(q) =c(q0), como pretend amos.

Por forma a ilustrar a construc~ao desta nova rede, (N 0A

0), voltemos a considerar a rede da gura 5. Apos terem sido acrescentados os super-nos inicial e terminal obtemos a rede da gura 8, onde o trajecto mais curto e p=p1 =hS1235Ti.

Consideremos que a rede inicial e a rede aumentada, que iremos denotar por (NA). A rede representada na gura 22 e (N

0A

0), obtida como foi descrito ante-riormente a partir de (NA) e dep.

E de notar que na nova rede (N 0A

0), n~ao e poss vel denir o trajecto mais curto em (NA), quer utilizando os nos de (NA), quer utilizando tambem as \copias" daqueles nos que foram acrescentadas, uma vez que n~ao existem os arcos (S10) e (5T).

Apesar disso, e poss vel denir qualquer outro trajecto de S para T, tendo em conta que cada no i0 e uma \copia" de i. Por exemplo, ao trajectohS135Tiem (NA) corresponde o trajectohS13050Tiem (N

0A

0). Este ultimo e o mais curto na nova rede e tem custo 4, exactamente o mesmo que a sua alternativa em (NA). Assim, e como referimos anteriormente,p2 =hS135Tie o segundo trajecto mais curto de S para T na rede original.

5.3 Algoritmos Baseados no Princpio de Optimalidade 63 . . . . . .. . . .. . . . . . . . . .. . ............. . .. ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . S . . . . . . . .. . . .. .. ... . .. .............. ... . .. .. .. . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 . . . . . . . . . . . . . . . .. ... . ..... .... . ..... ... .. ... . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10 . . . .. . . . .. . . . . . . .. ... . ............. ... . .. . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2 . . . . . . . . .. . . . . ... . . . ..... ...... . ..... .. ... .. . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20 . . . .. . . . . . . .. . . . .. ... . ............. ... . .. . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 . . . .. . . . .. . . . . ... . .. ...... . ... ...... . .. .. . .. . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .30 . . . . . . . . . . . .. . .. .. .... ........... ..... . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4 . . . . . .. . . .. . . . . . .. . .. . ............. . .. ... . . .. .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5 . . . . . . . . . . . . .. ... . . . ...... .... ...... ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .50 . . . . . . . . . . . . . .. ... . .. .............. ... ... .. .. . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . T . ............................................................................................................... . . . . . . . . . . . . . . . . . . . . . . 0 .... ... .... ... . ... . ... ... . ... . ... ... .... . ... . .. .... . .. .... ... . ... . ... ... . ... . .. .... ... .... ... . ... .... ... . ... . .. .... . ... . .. ..... . . . . . . . . . . . . . . . . . . . . . . . . . . 0 .. ... .... ... . ... . .. .... . ... . .. .... . . . . ... ... . ... . .. . ... . ... . .. .... ... .... .... ... . ... .... ... . ... . ... . .. . ... . .. .... ... .... .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 . ............................................................................................................... . . . . . . . . . . . . . . . . . . . . . . 1 ... . . .. .. . . . . . . . . . .. ... . . .. . . . . . . ... . . .. .. . . . . . . . . . .. .. . . . .. . . . . . . .. ... .. . . . . . . . . . . . .. .. . .. .. . . . . .. ... .. .. . . . . . . ... . . .. . .. . . . . . . . . .. ... .. .. . . . . ... . . .. .. . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 .. .... . .. .... .... ... . ... ... . ... . .. . . .. ... .... .... ... .... ... . ... . .. .... . ... . .. .... .... . .. .... .... ... . ... ... . ... . .. .... . ... . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . .0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . .0 ... . .. .... .... . .. .... ... . ... .... ... . ... ... . . .. . .. .... ... .... .... ... . ... . .. . ... . .. .... .... ... .... .... ... .... .... ... . ... . .. . ..... . . . . . . . . . . . . . . . . . . . . . . . . . . 8 . . .. .... .... . . . . ... .... ... . ... ... . ... . .. .... .... . .. .... ... . ... ... . ... . .. .... . . .. . .. .... ... . ... .... ... . ... . ... ... . ... . ... . .. ... . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 ................................................................................................................ . . . . . . . . . . . . . . . . . . . . . . 3 ............................................................................................................... . . . . . . . . . . . . . . . . . . . . . . . 3 . . .. .... .... . .. .... ... . ... . .. . ... . ... . .. . ... .... . .. .... .... . .. .... ... . ... ... . ... . ... . .. .... . .. .... ... . ... ... . ... . ... . .. .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 . . . . .. . . . . . . . . . . . . . . .. . . . . . . . . . . . ... . . . .. . . . . .. . . . . .. . . .. . . . . .. . . . . .. . . . . . . . . . . . ... .. . . . . . ... . . . .. . . . . .. . . . . .. . . .. . . . . .. . . . . .. . . . . .. . . . . . . . . .. . ... . . . . . . . ... . . . .. . . . . .. . . .. .. . . .. . . . . .. . . . . .. . . . . . . . . .. . ... . . . ... . . . .. . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 . .. . .. . . . . .. . . . . . . .. . . . . .. ... .. . . . . .. . . . . . . .. . . . . . . . .. .. . . . . .. . . . . . . . . . .. . . . . .. .. . . . . .. . . . . . . ... . . . . . . .. .. . . . . .. . . . . . . . . . .. . . . . .. . . . . .. .. . . . . . . . .. .. . . . . .. . . . . .. ... . . . . . . .. .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0

Figura 22

No algoritmo de Martins, que aqui descrevemos, e constru da uma sequ^encia de redes, f(N1A1),...,(NKAK)g, tal que (N1A1)=(NA) e, para todo o k  2, (NkAk) = (N

0

k;1A 0

k;1). No teorema 5.7 e demonstrado que o trajecto mais curto em (NkAk) e o kesimo trajecto mais curto em (NA), para k 1.

Teorema 5.7

O trajecto mais curto de s para t em (NkAk) e o kesimo mais curto de s para t em (NA), para 1 k K.

Demonstra c~ao:

Por denic~ao, (N1A1) = (NA), logop1 e o trajecto mais curto naquela rede.

Suponhamos que sendo p? o trajecto mais curto em (NkAk), p? e o kesimo mais curto em (NA), isto e, p? =pk.

Ora, pela construc~ao destas redes, (Nk+1Ak+1) = (N 0

kA 0

k). Como vimos no teorema 5.6, os trajectos de (Nk+1Ak+1) coincidem com os trajectos de (NkAk), excluindo pk, que n~ao se pode denir em (NkAk).

Designemos por p? o trajecto mais curto em (Nk+1Ak+1). Ent~ao p? e tal que c(p?) c(p), para todo opdenido em (Nk+1Ak+1) ou seja, para todo opdenido em (NkAk), excepto pk. Como pk e o mais curto em (NkAk), teremos ainda que c(pk) c(p?). Nesse caso, p? e o segundo trajecto mais curto em (NkAk). Por hipotese de induc~ao, pk e okesimo trajecto mais curto, portantop? =pk+1, isto e, p?

e o (k+ 1)esimo trajecto mais curto de s para t em (NA).

E de notar, mais uma vez, que a representac~ao dos nos alternativos, v0, ao n vel da implementac~ao computacional deste algoritmo e realizada com base numa func~ao h :X!N, onde X IN, que indica, para cada v0

2 X o respectivo no correspon-dente na rede original. Neste caso X representa os varios conjuntos de nos,Nk, que v~ao sendo constru dos.

Como foi referido, esta vers~ao do algoritmo foi sucessivamente melhorada sendo a ultima vers~ao conhecida por algoritmo MS. Estes melhoramentos visam

essen-64 5 ENUMERAC~AO DOS K TRAJECTOS MAIS CURTOS

cialmente tentar reduzir a quantidade de informac~ao a armazenar, o que se traduz tambem num aumento de eci^encia no que respeita ao tempo de execuc~ao.

O primeiro melhoramento introduzido permite a reduc~ao do numero de alterna-tivas de nos que e necessario criar, em cada transformac~ao de uma rede.

Como se pode observar na gura 22, o no 10 n~ao pertence a nenhum trajecto de S para T, dado que n~ao existe em (N2A2) = (N

0A

0) nenhum trajecto de S para 10, pelo que aquele no nunca sera utilizado. O mesmo acontece com o no 20, alternativa de 2 em (N2A2). Assim, a rede transformada, (N

0A

0), obtida a partir de um dado trajecto pde s parat numa rede (NA) pode conter apenas copias dos nos de pque se seguem ao primeiro no ao qual chega mais do que um arco. Como e demonstrado no lema 5.14 este e o primeiro no de ppara o qual existe mais do que um trajecto a partir de s em (NA), o que implica que para os nos de p anteriores a este e suciente manter o subtrajecto de p com in cio em s na rede original, n~ao sendo necessario criar as suas alternativas. Neste lema e demonstrado ainda que este resultado e valido apenas para o primeiro no, ou seja, que n~ao e poss vel evitar copias de nos seguintes ao primeiro ao qual chega mais do que um arco.

Lema 5.14

Seja p = hv1:::v`p

i um trajecto de s para t numa rede (NA) e vi, com 1< i `p, o primeiro no de p ao qual chega mais do que um arco. Ent~ao:

1. O no vi e o primeiro no de p para o qual existe mais do que um trajecto com incio em s.

2. Para os nos que se seguem avi emp existe mais do que um trajecto com incio em s.

Demonstra c~ao:

1. Comecemos por mostrar que se a um no depchega mais do que um arco, ent~ao existe mais do que um trajecto de s para esse no. Para isso consideremos um no vi, com 1 < i `p do trajecto p, tal que (jvi) 6= (vi;1vi) e um arco de (NA). Por hipotese,Psj 6= , logo existe um trajecto q, em (NA) de s para j, e qhjvii e um trajecto de s para vi. Como (jvi) 6= (vi;1vi), o trajecto denido e distinto de subp(svi), ou seja, existe mais do que um trajecto de s para vi.

Consideremos agora que vi e o primeiro no de p naquelas condic~oes, e que vj, com 1 < j < i, e outro no de p anterior a vi ao qual chega um so arco. Suponhamos que existe um trajecto q, de s para vj em (NA), diferente de subp(svj). Designemos por x o no de subp(svj) e de q mais distante de vj,

5.3 Algoritmos Baseados no Princpio de Optimalidade 65

tal que subq(xvj) = subp(xvj) e anterior a vj. Comoq6= subp(svj),xe um no seguinte a s. Ent~ao subp(sx) e subq(sx) s~ao dois trajectos distintos de s para x e existe mais do que um arco terminando em x, pelo que vi n~ao seria o primeiro nestas condic~oes.

2. Sendo vi o primeiro no de p ao qual chega mais do que um arco, como foi demonstrado em 1, existem trajectos q1:::qk de s para vi, com k > 1. Seja vj um no de p que se segue a vi. Ent~ao subp(vivj) e um trajecto de vi para vj e, consequentemente, q1subp(vivj):::qksubp(vivj) s~aok trajectos de s para vj, ou seja, existem varios trajectos de s para vj.

De acordo com este lema, ao construir a rede (N2A2) apresentada na gura 22 podemos desprezar, isto e, n~ao copiar, os nos 10 e 20, uma vez que 3 e o primeiro no de p1 no qual termina mais do que um arco.

Seja p0

k o caminho mais curto em (NkAk), correspondente ao kesimo trajecto mais curto em (N1A1). De acordo com este lema, basta acrescentar a (Nk+1Ak+1) os nos de p0

k a partir do primeiro ao qual chega mais do que um arco. Este primeiro no tera um papel semelhante ao do primeiro no copiado antes do melhoramento do algoritmo. Assim, designando este no por vi, de modo a quep0

k n~ao se possa realizar em (Nk+1Ak+1), emv0

i devem terminar os arcos que terminavam emvi, a excepc~ao daquele utilizado em p0

k.

Segundo o algoritmo original de Martins, apos a obtenc~ao da rede transformada e utilizado um algoritmo para determinar o caminho mais curto nesta rede. Aplicando este racioc nio a rede (N2A2) da gura 22 obtemos, um rotulo consistindo num par (sisi), associado a cada no i, que apresentamos na tabela 2.

i2N2 S 1 2 3 4 5 T 30 50

( sisi) (0,{) (0,S) (0,1) (0,2) (0,3) (3,3) (4,50) (1,1) (4,30)

Tabela 2

E de notar que os rotulos dos nos da rede original, a excepc~ao do rotulo de T, n~ao foram alterados. Assim, os novos nos podem ser rotulados correctamente aquando da sua criac~ao, analisando os arcos que terminam em cada um eles. Deste modo, cada novo no j e rotulado com o custo

66 5 ENUMERAC~AO DOS K TRAJECTOS MAIS CURTOS

ondeR(j) e o conjunto dos nos da nova rede em que se iniciam arcos que terminam em j. E ainda de notar que, uma vez que o no terminal t n~ao e copiado, o rotulo deste no tem de ser alterado. Cada rotulo determinado corresponde ao custo de cada trajecto pk obtido. Como foi referido, e como e demonstrado em seguida, os rotulos assim calculados s~ao os correctos.

Lema 5.15

Seja f(N1A1),...,(NKAK)g a sequ^encia de redes que se obtem com o algoritmo de Martins, e seja p0

k o caminho mais curto de s para t em (NkAk), correspondente a pk. Com este algoritmo, os nos que se acrescentam a (NkAk), para k2f2:::Kg, cam rotulados denitivamente.

Demonstra c~ao:

Para k = 1 os rotulos dos nos de (N1A1) s~ao obtidos atraves da determinac~ao da arvore dos trajectos mais curtos com raiz em s, pelo que s~ao denitivos.

Consideremos agora que os rotulos de (NkAk) s~ao denitivos e tentemos mostrar que os rotulos de (Nk+1Ak+1) tambem o ser~ao.

Seja p0

k = hv1:::v`0i o caminho mais curto de s para t em (NkAk) e seja vi, com 1 < i `0, o primeiro no de p0

k ao qual chega mais do que um arco isto e, v0

i e o primeiro no a ser acrescentado na construc~ao de (Nk+1Ak+1). Conforme o racioc nio indicado, sv0 i = minfsu+cuv0 i :u2R(v0 i)g ondeR(v0

i) e o conjunto dos nos de (Nk+1Ak+1) em que se iniciam arcos terminando emv0

i. Pela forma como (Nk+1Ak+1) e constru da, os nos deR(v0

i) pertencem todos a (NkAk). Assim, por hipotese, os nos a partir dos quaisv0

i pode ser rotulado, t^em rotulos denitivos portanto o rotulo de v0

i tambem o e. Suponhamos agora que v0

j, com j > i, tem rotulo denitivo e mostremos que ent~ao v0

j+1 tambem e rotulado correctamente. Todos arcos da nova rede terminando emv0

j+1t^em in cio em nos da rede (NkAk) rotulados correctamente, ou ent~ao no no v0

j, que por hipotese tem tambem rotulo denitivo, o que conclui a demonstrac~ao.

Resumindo, com base neste melhoramento e constru da a rede (Nk+1Ak+1) e em vez de se calcular o trajecto mais curto em (Nk+1Ak+1), s~ao mantidos os rotulos dos nos originais, enquanto que os novos nos (incluindo o terminal) v~ao sendo rotulados a medida que s~ao criados, isto e, a medida que s~ao acrescentados a rede.

Consideremos o trajecto p0

k =hv1:::v`0

i, e seja vi, com 1< i < `0, o primeiro no de p0

k ao qual chega mais do que um arco. Alem dos melhoramentos referidos, e ainda poss vel que n~ao seja necessario duplicar alguns nos de p0

5.3 Algoritmos Baseados no Princpio de Optimalidade 67

De facto, suponhamos que um dado no de p0

k tem no alternativo ent~ao, como foi demonstrado no lema 5.15, o rotulo desse no de p0

k e denitivo pelo que n~ao sera alterado. Uma alternativa desse no seria uma copia exacta, isto e, com o mesmo rotulo, donde podemos concluir que e desnecessaria.

Voltando a rede exemplo, de acordo com os melhoramentos descritos ate ao momento, e uma vez que p1 = hS1235Ti, a rede (N2A2) da gura 22 n~ao deveria conter os nos 10 e 20 uma vez que existe um unico trajecto de S para aqueles nos. Na gura 23 e representada a rede (N2A2) obtida, associando a cada no i o respectivo rotulo, (sisi). . . . . .. . . . . . . .. ... . .. ...... . ... ...... ... . .. .. . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . S (0;) . . . . . . .. . . .. .. . .. ... ...... .... . ..... ... . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1(0S) . . . . . . . . .. .. . . . . . .. . .... . ....... . .... ... . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2(01) . . . . . . . . .. .. . . . .. ... ...... .... ...... . .. ... . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3(02) . . . . . . . . . . . . . ... . .. . ... .......... .... ... . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .30 (11) . . . . . . . . .. .. . . . .. .... .............. .... ... . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4(03) . . . . .. . . .. . . .. ... . .. ...... . ... ...... . . . ... .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5(33) . . . . .. . . . . . . . . .. ... . ... .......... . ... . .. . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .50 (430) . . . . . . .. . . .. .. . .. ... . ..... .... . ..... ... . .. . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . T (450) .............................................................................................................. . . . . . . . . . . . . . . . . . . . . . . . . 0 . .... .... ... .... . ... ... . ... . ... ... . ... . .. .... ... .... .... ... . ... ... . ... . .. .... . .. .... .... ... . ... ... . ... . ... . .. .... . ... . .. .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 . ............................................................................................................. . . . . . . . . . . . . . . . . . . . . . . . . 1 . . . . . ... . . .. ... .. .. . . . . .. ... .. .. . . . . . . . . . . . .. .. . . . . . . . . . ... . . .. .. . . . . . . . . . . . .. . . . .. . . . . . . .. ... .. .. . . . . . . ... .. .. . .. .. . . . . . . .. ... .. .. . . . . ... . . .. .. . . . . . . . . . . . ... . . .. .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 . ... . ... . ... ... . . .. . .. .... .... . .. .... ... . ... . .. . ... . .. .... .... ... .... ... . ... ... . ... . ... . .. .... . ... . .. .... .... ... ... . ... . ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .0 . .... . .. . ... . ... . .. . ... . ... . .. .... ... .... .... ... . ... ... . ... . .. .... . . . .... .... ... . ... ... . ... . .. .... .... . .. .... .... ... .... .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 .. .... .... . .. .... ... . ... ... . ... . ... . .. .... . .. .... ... . ... ... . ... . ... . .. .... . .. .... .... ... .... .... ... . ... . ... ... . ... . .. .... ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 .............................................................................................................. . . . . . . . . . . . . . . . . . . . . . . . . 3 ............................................................................................................. . . . . . . . . . . . . . . . . . . . . . . . . . 3 .. . . .. .... . .. ... . ... .... ... . ... . ... ... . ... . ... . .. .... . .. .... ... . ... . ... ... . ... . .. .... . .. .... ... . ... .... ... . ... . .. .... . ... . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 . . . . . . . . . . . . . .. . ... . .. ... . .. . . . . .. . . . . .. . . . . . . . . .. . . . . .. . . . . .. . . . . . . . . .. . .. . .. . ... . .. .. . . .. . . . . .. . . . . .. . . .. . . . . .. . . . . .. . . . . . . . ... . . . . .. . .. . . . . .. . . .. . . . . .. . . . . .. . . .. . . . . .. . . . . .. . . . . .. . . . . . . . . .. . .. . . . . .. . . .. .. . . .. . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 . .. .. . . . . .. . . . . .. . .. . . . . . . .. . . . . .. .. . . . . ... . . .. . . . . .. . . . . .. .. . . . . . . . .. .. . . . . .. . . . . .. .. . . . . ... .. .. . . . . .. . . . . .. .. . .. . . . . .. .. . . . . .. . . . . . . ... .. . . . . .. . . . . .. . . . . . . ... .. . . . . . . .. . . . . ... . . . . . . . . . . . . . . . . . . . . . . . . . . . 0

Figura 23

Como podemos observar, p0

2 = hS13050Ti e o caminho mais curto naquela rede. Procedendo de modo analogo e constru da a rede (N3A3), cando determi-nado o trajectop0

3 =hS1234500Ti. Como o no 3 tem alternativa, isto e, o no 30

pertence a (N3A3), ent~ao uma nova copia de 3 teria exactamente as mesmas car-acter sticas que 30 pelo que e desnecessaria. A rede (N3A3), obtida com este novo melhoramento, e apresentada na gura 24. E ainda de notar que na rede original (NA), existem apenas dois trajectos de S para 3. O mais curto de entre eles e o representado pelo rotulo do no 3 em (N3A3) e o segundo e o representado pelo rotulo de 30. Deste modo n~ao e necessario voltar a copiar aquele no.

Assim, se um dos nos iniciais dep0

ktiver alternativa o seu rotulo n~ao sera alterado, pelo que basta duplicar os nos de p0

k seguintes ou coincidentes com o primeiro que ainda n~ao tem alternativa. Podemos concluir pois que n~ao e necessario copiar os primeiros nos de p0

k nestas condic~oes, reduzindo assim o tamanho da rede constru da e, na pratica, aumentando a rapidez do algoritmo, como foi referido.

Lema 5.16

Sejap0

k =hv1:::v`0

io caminho mais curto em(NkAk), qualquer que seja k 2 f2:::Kg. Se o no vi de p0

k, com 1 < i < `0, tem alternativa, ent~ao o mesmo acontece com o no que o precede, vi;1.

Demonstra c~ao:

Seja vi um no de p0

68 5 ENUMERAC~AO DOS K TRAJECTOS MAIS CURTOS . . . . . . . . . . . . . ... . .. .... . ......... .... . .. . .. . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . S (0;) . . .. . . . . . . . .. ... ... .... .......... .... ... . .. . ... . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1(0S) . . . . .. . . . .. .. . . . .. ..... . ......... . .... . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2(01) . . . . .. . . . .. . . . .. ... . ... . ......... . ... ... ... . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3(02) . . . . . . . . . .. .. . . . .. ... . ............. . .. . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .30 (11) . . . . .. . . . . . . . . .. .... .... ........ .... .... .. .. . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4(03) . . . . . . .. . . . . . . . . . .. .... . ......... . ... . .. ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5(33) . . . . . . . . . . . . . . . ... . .. . ............. . .. ... . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .50 (430) . . . . . . .. . . .. .. . .. .... . ..... . . ...... . ... . .. . . . . .. . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .500 (54) . . . . . . . . . . . . . ... . .. .... .......... .... ... . .. . ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . T (5500) . .......................................................................................................... . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 ... . .. .... . ... . .. .... ... . ... .... ... . ... ... . ... . .. .... ... .... .... ... . ... . .. . ... . .. .... .... ... .... .... ... .... .... ... . ... . .. . ..... . . . . . . . . . . . . . . . . . . . . . . . . . . 0 ........................................................................................................... . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 .. . . . . . . .. . .. .. . . . .. . . . . . . .. .. . .. .. . . . . . . ... .. .. . . . . . . ... . . .. ... .. .. . . . . .. ... .. .. . . . . . . . . . . . .. .. . .. . . . . . . .. .. . .. .. . . . .. . . . . . . .. . . . .. . . . . . . .. ... .. .. . . . . . . ... .. .. . .. .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 ... . ... . ... ... . ... . .. .... .... . .. .... ... .... . .. . ... . ... . .. . ... . .. .... ... . ... ... . ... . ... . .. .... . ... . .. .... . . . .... .... .... ... ..... . . . . . . . . . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . .0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . .0 .... ... . ... . .. .... . ... . .. .... .... . .. .... .... ... .... ... . ... . .. .... . ... . .. .... ... .... ... . ... . .. .... . ... . .. .... ... .... .... ... . ... . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 . .. .... . ... . .. .... . . . . ... ... . ... . .. . ... . ... . .. .... ... .... ... . ... . ... ... . ... . ... . .. . . .. . ... . .. .... ... .... .... ... . ... ... . ... . ... . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 . . . . . . . . . . . . . . . . . . . .. . . . . .. . . .. . .. . . .. . . .. . . . . .. . . .. . .. . .. . . . . . .. . . .. . . .. . . . . .. . .. . . .. . . . . . . . . .. . . .. . .. . . . . . . . . .. . . .. . ... . .. . . . . . . . . .. . . . . . ... .. . . . . . .. . . .. . . . . .. . . .. . .. . . .. . . . . . . . . .. . ... . .. . . . . .. . . .. . . .. . ... . .. . . . . .. . . . . . . . . . ... . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 ........................................................................................................... . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 ................................................................................................................. . . . . . . . . . . . . . . . . . . . . . 3 ... . .. .... .... .... . .. .... .... ... .... ... . ... . ... ... . ... . .. .... ... .... ... . ... . ... ... . ... . .. .... ... .... .... ... . ... .... ... . ... . ... . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 . .. . . .. .. . . .. . . . . .. . . .. .. . . .. . . . . .. . . . . .. . . .. . . . . .. . ... . . . .. . . . . . . . . .. . . . . .. . . . . .. . . .. . . . . .. . . . . .. . . .. .. . . .. . .. . . . . ... . . . . . . . .. . . . . .. . . . . .. . . .. .. . . .. . . . . .. . . . . .. . . .. . .. . .. . .. . . . . .. . . . . . . . . .. . . . . .. . . . . .. . . .. .. . . .. . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 . . . . . . . . .. . . .. . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . .. . . . . . . . . . . . . . . .. . . . . . . . .. . . . . . . . . . . . . . . .. . . .. . . . . . . . . .. . . . . .. . . . .. . . . . . . . . . . . . .. . . . . . . . . . . . . . . .. . . . . . . . .. . . . . . . . . . . . . . . .. . . . . . . . . .. . . .. . . . . . . . . . . . . . . . . . . . .. . . .. . . . . . . . . . . . . . . .. . . . . . . . . . . . . .. . . . .. . . . . .. . . . . . . . . .. . . .. . . . . . . . . . . . . . . .. . . . . . . . .. . . . . . . . . . . . . . . .. . . . . . . . . .. . . .. . . . .. . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . .. . . . .. . . . . . . . .. . . . .. . . . . . . . .. . . . . . . . . . . . . . . . . . . .. . . . . . . . .. . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . . . .. . . . . . . . .. . . . . . . . . .. . . .. . . . .. . . .. . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . .. . . .. . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . .. . . .. . . . .. . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . .. . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0

Figura 24

algum caminho mais curto. Como o rotulo de vi e denitivo, ent~ao ele e obtido a partir do mesmo no. Em p0

k, o no vi foi rotulado a partir de vi;1 e ent~ao este no tambem pertenceu a um caminho mais curto, o que signica, como pretend amos, que tem alternativa.

De acordo com as alterac~oes realizadas, o algoritmo resultante, da autoria de Azevedo, Madeira, Martins e Pires, 2], pode ser descrito como se mostra no al-goritmo 5.7. E de notar que, para cada trajecto pk, a rotulac~ao do primeiro no a ser analisado deve ser realizada de modo semelhante a rotulac~ao do no seguinte ao inicial de pk, no algoritmo original. Assim, designando aquele no por vkj, o arco (vkj;1vkj) n~ao deve dar origem a nenhum outro arco na nova rede. Os restantes nos devem ser rotulados como originalmente.

Com base no teorema 5.6 e na forma como e realizada a construc~ao da rede (NkAk), parak 1, no procedimento 5.7.1 e apresentado CriarAlternativa(vi), um procedimento para a criac~ao de uma copia do no vi, possivelmente a ser utilizado no algoritmo 5.7.

Observando as guras que representam as redes obtidas seguindo o algoritmo 5.7, e comparando estas redes com a original, podemos notar que a ultima destas e ainda constitu da por um numero de nos e de arcos muito maior do que a original. Podemos vericar ainda que, para cada copia efectuada de um dado no, vai diminuindo o