28
1 Um sistema distribuído para busca de caminhos em grafos dinâmicos Marcelo Luís Vinagreiro Orientador: Prof. Alfredo Goldman

1 Um sistema distribuído para busca de caminhos em grafos dinâmicos Marcelo Luís Vinagreiro Orientador: Prof. Alfredo Goldman

Embed Size (px)

Citation preview

Page 1: 1 Um sistema distribuído para busca de caminhos em grafos dinâmicos Marcelo Luís Vinagreiro Orientador: Prof. Alfredo Goldman

1

Um sistema distribuído para busca de caminhos em grafos dinâmicos

Marcelo Luís Vinagreiro

Orientador: Prof. Alfredo Goldman

Page 2: 1 Um sistema distribuído para busca de caminhos em grafos dinâmicos Marcelo Luís Vinagreiro Orientador: Prof. Alfredo Goldman

2

Descrição do Problema/Cenário de aplicação

Desenvolvimento de um modelo que permita a busca de caminhos em um grafo distribuído

Exemplos de aplicação:

• Sistema descentralizado para monitoramento do trânsito de uma dada cidade

• Busca de caminhos para unidades móveis

• Simulação de rede distribuída

Page 3: 1 Um sistema distribuído para busca de caminhos em grafos dinâmicos Marcelo Luís Vinagreiro Orientador: Prof. Alfredo Goldman

3

Algoritmos dinâmicos – Narváez et al.

• Considerações iniciais:

1. Algoritmo básico: permite transformar versões estáticas de algoritmos de busca em suas respectivas versões dinâmicas

2. Duas variações do algoritmo básico: First Incremental Method, Second Incremental Method.

Page 4: 1 Um sistema distribuído para busca de caminhos em grafos dinâmicos Marcelo Luís Vinagreiro Orientador: Prof. Alfredo Goldman

4

Arquitetura Proposta

Modelagem

EA EB

8

6

5

79 10

1314

1516

1817

19

11

12

2

3

1

4

• Bordas

• B(GA) = { 1, 2, 5, 6, 8, 10, 11, 12 }• B(GB) = {10, 11, 12, 13, 14, 16, 18, 20}• B(GA) B(GB) = { 10, 11, 12 }

Page 5: 1 Um sistema distribuído para busca de caminhos em grafos dinâmicos Marcelo Luís Vinagreiro Orientador: Prof. Alfredo Goldman

5

Modelagem – (cont.)

• Dois tipos de servidores:

• Estação-base (Base Server) (BSi)

• Servidor de Busca (Search Server) (SBi)

Seja:

NBS >= 1 : o número de BSs BS = { BSi | 1 i NEB } NSS >= 1 : o número de SSs SS = { SSi | 1 i NSB }

Onde: SS BS

Page 6: 1 Um sistema distribuído para busca de caminhos em grafos dinâmicos Marcelo Luís Vinagreiro Orientador: Prof. Alfredo Goldman

6

RootSet e RootWeightSet• RootSet(Gi) = RS(Gi) : um subconjunto de nós na borda de Gi

• RootWeightSet(RSi) : custo dos melhores caminhos entre todas combinações possíveis de pontos em RSi

Exemplo:

B2

B1

B3

I1

B4

1

8

2

5

0

8

RootSet(Gi): { B1, B2, B3, B4 }

BSi

Peers X->Y Y->XB1-B2 1 8B1-B3 0 -B1-B4 3 -B2-B4 2 -

RootWeightSet(Gi):

Page 7: 1 Um sistema distribuído para busca de caminhos em grafos dinâmicos Marcelo Luís Vinagreiro Orientador: Prof. Alfredo Goldman

7

Forward Tree de RSi – FT(RSi)

RS2

RS1

RS4X

RS5

8

2

0

8

RS3

10

2

RS23

RS1

RS3 RS4

RS5

KZ Z

2

28

32

0

Forward Tree (RS2)

Page 8: 1 Um sistema distribuído para busca de caminhos em grafos dinâmicos Marcelo Luís Vinagreiro Orientador: Prof. Alfredo Goldman

8

Model Tree – MT(Rx)

Page 9: 1 Um sistema distribuído para busca de caminhos em grafos dinâmicos Marcelo Luís Vinagreiro Orientador: Prof. Alfredo Goldman

9

Roteamento adaptativo através de árvores dinâmicasProcessamento em BSi

• BSi mantém subgrafo Gi;• Em intervalos regulares, BSi obtém/atualiza as

árvores FTstateId(RSk), para cada nó RSk, com dados de stateId;

• Com os dados de FT(RSk), BSi gera RootWeightSetstateId(Gi) e envia para o conjunto SS;

Processamento em SSk

• SSk recebe de EBt o conjunto RootWeightSetstateIdt, em

1 t NBS. Assim que SSk recebe todos conjuntos RootWeightSetstateId

t, SSk atualiza árvores MTstateId(t) • E envia msg Received_RwsetstateId, informando a Bt

com uma o recebimento de RootWeightSetstateIdt

Page 10: 1 Um sistema distribuído para busca de caminhos em grafos dinâmicos Marcelo Luís Vinagreiro Orientador: Prof. Alfredo Goldman

10

Busca de caminhosA. Seja uma requisição de caminho de X a Y enviada à

estação-base BSX. O processamento da busca de caminhos é feita em dois níveis:

• Intra-estação: busca no interior de BSX e/ou,

• Inter-estação: nesse caso BSX consulta algum servidor de busca SSj para incluir informações de outras estações na busca.

B. Dois tipos de requisições cliente:

• Busca global: caminho completo de X a Y

• Busca local: caminho de X a R tal que R está em RS(BSX).

Page 11: 1 Um sistema distribuído para busca de caminhos em grafos dinâmicos Marcelo Luís Vinagreiro Orientador: Prof. Alfredo Goldman

11

Procedimento de Busca

Formado por 4 procedimentos principais:

• PerformBSPathSearch: executado em BSx;

• PerformInterPath: executado em BSx;

• PerformSSPathSearch: executado em SSj

• PerformPathInForwardTrees: executado em BSy;

Page 12: 1 Um sistema distribuído para busca de caminhos em grafos dinâmicos Marcelo Luís Vinagreiro Orientador: Prof. Alfredo Goldman

12

Busca em BSi

Procedure PerformBSPathSearch(X,Y,req)

BSX calcula a árvore de caminhos TstateId(X);

if Y BSX then/* se há um caminho PXY com custo , retorna PXY

*/if um caminho PXY TstateId(X) | Weight(PXY)

then return PXY; else

Seja PINTRA := { PXY | Weight(PXY) é mínimo } PINTER = FindInterPath(X,Y,req, TstateId(X),stateId)

Seja PMIN o caminho de peso mínimo entre PINTER e PINTRA

return PMIN.else

return FindInterPath(X,Y,req, TstateId(X),stateId).

End Procedure

Page 13: 1 Um sistema distribuído para busca de caminhos em grafos dinâmicos Marcelo Luís Vinagreiro Orientador: Prof. Alfredo Goldman

13

Busca em BSi (cont.)

Procedure FindInterPath(X, Y, req, TstateId(X), stateId)

XToRSWeightSet :=

/* caminhos para as bordas */for each r RootSet(Gx) do if r TstateId(X) then

XToRSWeightSet := XToRSWeightSet {r, Weight(X,r)} else

XToRSWeightSet := XToRSWeightSet {r, }

/* escolhe SS e chama remotamente FindShortestPath */

Resp := RPC (SSj, FindSSPathSearch(X,Y, req, XToRSWeightSet,

stateId) )

Page 14: 1 Um sistema distribuído para busca de caminhos em grafos dinâmicos Marcelo Luís Vinagreiro Orientador: Prof. Alfredo Goldman

14

Busca em BSi (cont.)

if req = Global then /* Resp é um caminho: RSt -> N1 -> ... -> Y */

Seja Rt o nó inicial do caminho Resp; Rt RootSet(GX)

Seja P’t o caminho de X a Rt, em TstateId(X)/* retira-se o nó Rt do conjunto */ Seja Pt = P’t - Rt

return Pt Respelse

/* Resp = (Rt,C) retorna o nó Rt em RootSet(GX) que gera o caminho de X a Y com custo C */

Seja C o peso calculado por SBj para chegar em Y. E, Rt RootSet(GX) o nó que origina tal caminho. Seja Pt o caminho

de X a Rt TstateId(X)./* retorna Pt com peso C */return Pt

End Procedure

Page 15: 1 Um sistema distribuído para busca de caminhos em grafos dinâmicos Marcelo Luís Vinagreiro Orientador: Prof. Alfredo Goldman

15

Busca em SBj

Procedure FindSSPathSearch(X, Y, req, XToRSWeightSet, stateId)

RSWeightSetToY := RPC(BSY, FindPathInForwardTrees(Y,stateId))

P´ := DynamicSPT(X, Y, XToRSWeightSet, RSWeightSetToY, stateId)

if req = Local then

Seja Rk o nó em RootSet de BSX que está no caminho mínimo de X até Y e C o custo associado

return {Rk, C}

Page 16: 1 Um sistema distribuído para busca de caminhos em grafos dinâmicos Marcelo Luís Vinagreiro Orientador: Prof. Alfredo Goldman

16

Busca em SBj

elseSeja P= P1->P2->...->Py o caminho global,

montado buscando-se os caminhos intermediários (Pi) nas respectivas BSs envolvidas com o caminho P.

return P

End Procedure

Page 17: 1 Um sistema distribuído para busca de caminhos em grafos dinâmicos Marcelo Luís Vinagreiro Orientador: Prof. Alfredo Goldman

17

Busca em BSY

Procedure FindPathInForwardTrees(Y, stateId)

RSWeightSetToY :=

for each árvore FTstateId(Ri) doif Y FTstateId(Ri) then

RSWeightSetToY := RSWeightSetToY {Ri, Weight(Ri,Y)}

else RSWeightSetToY := RSWeightSetToY {Ri, }

return RSWeightSetToY

End Procedure

Page 18: 1 Um sistema distribuído para busca de caminhos em grafos dinâmicos Marcelo Luís Vinagreiro Orientador: Prof. Alfredo Goldman

18

Atualização do sistema

K K+1

EB1=EBc

EB2

EB3

Update_Rset(k+1)

(I)

(I)

(I)

Received_Rset(k+1)

Received_Rset(k+1)

Commit_Rset(k+1)

Commit_Rset(k+1)Update_Rset(k+1)

Page 19: 1 Um sistema distribuído para busca de caminhos em grafos dinâmicos Marcelo Luís Vinagreiro Orientador: Prof. Alfredo Goldman

19

Page 20: 1 Um sistema distribuído para busca de caminhos em grafos dinâmicos Marcelo Luís Vinagreiro Orientador: Prof. Alfredo Goldman

20

Base Server

Perform_Path_Search

Find_RsetToY_Values

Rqst_Sub_Path

Update_Rset

Update_Global_State

Commit_Rset

Update_Link_State

AçãoBaseServerRequestAgentFindRset2YAgent

RequestSubPathAgent

UpdateRsetAgent

UpdateTransactionAgent

CommitRsetAgent

UpdateDataLinkAgent

Agente

BSAgents

Page 21: 1 Um sistema distribuído para busca de caminhos em grafos dinâmicos Marcelo Luís Vinagreiro Orientador: Prof. Alfredo Goldman

21

SSAgents

Search Server

Find_Inter_Path

Update_RwsetCommit_Rset

Ação

PerformSSPathAgent

UpdateRwsetAgentCommitRsetAgent

Agente

Page 22: 1 Um sistema distribuído para busca de caminhos em grafos dinâmicos Marcelo Luís Vinagreiro Orientador: Prof. Alfredo Goldman

22

Influência do RootSet – Atualização

0

100000

200000

300000

400000

500000

25% 50% 75% 100%

RootSet

Atua

lizaç

ão S

S-E

(ms)

2

3

4

5

0

50000

100000

150000

200000

250000

300000

25% 50% 75% 100%

RootSet

Atua

lizaç

ão B

S-E

(ms)

2

3

4

5

0

50000

100000

150000

200000

250000

300000

25% 50% 75% 100%

RootSet

Atua

lizaç

ão B

S-D

(ms)

2

3

4

5

0

100000

200000

300000

400000

500000

25% 50% 75% 100%

RootSet

Atua

lizaç

ão S

S-D

(ms)

2

3

4

5

Page 23: 1 Um sistema distribuído para busca de caminhos em grafos dinâmicos Marcelo Luís Vinagreiro Orientador: Prof. Alfredo Goldman

23

0%

10%

20%

30%

40%

50%

2 3 4 5

Número de estações-base

Com

para

ção

BS-D

/ BS

-E

25%

50%

75%100%

0%

20%

40%

60%

80%

100%

2 3 4 5

Número de estações-base

Com

para

ção

SS-D

/SS-

E

25%

50%

75%

100%

Influência do RootSet – Atualização (cont)

Page 24: 1 Um sistema distribuído para busca de caminhos em grafos dinâmicos Marcelo Luís Vinagreiro Orientador: Prof. Alfredo Goldman

24

Influência do RootSet – Buscas

0

1000

2000

3000

4000

5000

0,25 0,50 0,75 1,00

RootSet

B. G

loba

l (m

s) 1

2

3

4

5

0

1000

2000

3000

4000

5000

0,25 0,50 0,75 1,00

RootSet

B. L

ocal

(ms)

1

2

3

4

5

0%

5%

10%

15%

20%

25%

1 2 3 4 5

Número de estações-base

Dife

renç

a Te

mpo

B. G

loba

l e

B.

Loca

l

25%

50%

75%

100%

Page 25: 1 Um sistema distribuído para busca de caminhos em grafos dinâmicos Marcelo Luís Vinagreiro Orientador: Prof. Alfredo Goldman

25

Arcos modificados

0

10000

20000

30000

40000

50000

60000

25% 50% 75% 100%

% arcos afetados

Atua

lizaç

ão B

S-E

(ms)

2

3

4

5

0

10000

20000

30000

40000

50000

60000

25% 50% 75% 100%

% arcos afetados

Atua

lizaç

ão B

S-D

(ms)

2

3

4

5

0

2000

4000

6000

8000

10000

25% 50% 75% 100%

% arcos afetados

Atua

lizaç

ão S

S-E

(ms)

2

3

4

5

0

2000

4000

6000

8000

10000

25% 50% 75% 100%

% arcos afetados

Atua

lizaç

ão S

S-D

(ms)

2

3

4

5

Page 26: 1 Um sistema distribuído para busca de caminhos em grafos dinâmicos Marcelo Luís Vinagreiro Orientador: Prof. Alfredo Goldman

26

Desempenho

0

2000

4000

6000

8000

10000

12000

14000

16000

2 3 4 5

Número de estações-base

Tem

po (m

s)

SS-E

SS-D

0

2000040000

60000

80000100000

120000

140000160000

180000

2 3 4 5

Número de estações-base

Tem

po (m

s)

BS-E

BS-D

0

500

1000

1500

2000

2500

1 2 3 4 5

Número de estações-base

Tem

po (m

s)

B. Local

B. Global

Page 27: 1 Um sistema distribuído para busca de caminhos em grafos dinâmicos Marcelo Luís Vinagreiro Orientador: Prof. Alfredo Goldman

27

Qualidade da Solução

0%

5%

10%

15%

20%

25%

30%

25% 50% 75%

RootSet

Erro

Méd

io 34

5

0%

5%

10%

15%

20%

25%

30%

3 4 5

Número de estações-base

Erro

Méd

io 25%50%

75%

Page 28: 1 Um sistema distribuído para busca de caminhos em grafos dinâmicos Marcelo Luís Vinagreiro Orientador: Prof. Alfredo Goldman

28

Conclusão

• RootSet é um parâmetro importante do modelo

• Partições devem minimizar o comprimento da borda

• Modelo apropriado para o uso de algoritmos de busca em grafos dinâmicos

• Políticas de interpolação podem ser consideradas, para melhorar a qualidade da solução