Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Defesa de dissertação de mestrado...
Motivação

k -menores caminhos

Árvore dos prefixos

Sumário

1

Motivação

2

k -menores caminhos

3

Partições

4

Y EN

...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Conclusões

Problema

Provisionam...
Motivação

k -menores caminhos

Árvore dos prefixos

Problema

Processo de provisionamento
Requisitos do cliente
Quantidade...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Problema

Processo de provisionam...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Definição

Problema k -menores caminhos

Problema...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Definição

Exemplo
d

c

e

f

g
s...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Definição

Exemplo
d

c

e

f

g
s...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Definição

Exemplo
d

c

e

f

g
s...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Definição

Exemplo
d

c

e

f

g
s...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Definição

Exemplo
d

c

e

f

g
s...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Definição

Exemplo
d

c

e

f

g
s...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Definição

Exemplo
d

c

e

f

g
s...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Soluções

Algoritmo existente na empresa
Busca e...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Soluções

Algoritmo existente na empresa
Busca e...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Soluções

Algoritmo existente na empresa
Busca e...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Soluções

Algoritmo existente na empresa
Busca e...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Conclusões

Soluções

Algoritmo e...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Conclusões

Soluções

Algoritmo e...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Soluções

Primeiro algoritmo implementado
Busca ...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Soluções

Primeiro algoritmo implementado
Busca ...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Soluções

Primeiro algoritmo implementado
Busca ...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Conclusões

Soluções

Primeiro al...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Conclusões

Soluções

Primeiro al...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Soluções

Método genérico

Método G ENÉRICO (V ,...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Soluções

P

P1

Q

P2

P3

P4

P...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Soluções

P

Q

P2
P3

P5
P4

P1
...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Soluções

P

P3

P4

Q

P5
P1

Pk...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Soluções

P

Q

P1
P2
Pk +1

...
...
Motivação

k -menores caminhos

Árvore dos prefixos

Exemplo de construção

d
c

j

e
f
g

s
b
a

h
i

l

t

Partições

Y E...
Motivação

k -menores caminhos

Árvore dos prefixos

Exemplo de construção

d
c

j

e
f
g

s
b
a

h
i

l

t

Partições

Y E...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

Exemplo de construção

d
c

j

e
f
g

s
b
a

s
a
l

i...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

Exemplo de construção

d
c

j

e
f
g

s
b
a

s
a
l

i...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Exemplo de construção

d

j

e

a...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Exemplo de construção

d

j

e

a...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Exemplo de construção

d

j

e

a...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Exemplo de construção

d

j

e

a...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Conclusões

Exemplo de construção...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Conclusões

Exemplo de construção...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Conclusões

Exemplo de construção...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Conclusões

Exemplo de construção...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Conclusões

Exemplo de construção...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Conclusões

Exemplo de construção...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Questões

k é, potencialmente, ex...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Conclusões

Questões

k é, potenc...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Conclusões

Questões

k é, potenc...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Descrição
Q: coleção de caminhos
...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Π contém todos os caminhos de s a t
Π

P1

P2

P3

P4

P5

...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

Q ← P1 = s, a, i, t
Π
πs

πa

πi

KIM

Implementação
...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Q ← s, a, i, t ∪ s, b, f , l, t
Π
πs

πi

πa

πb...
Motivação

k -menores caminhos

Árvore dos prefixos

Exemplo

d
c

j

e
f
g

s
b
a

h
i

l

t

Partições

Y EN

KIM

Implem...
Motivação

k -menores caminhos

Árvore dos prefixos

Exemplo

d
c

j

e
f
g

s
b
a

h
i

l

t

Partições

Y EN

KIM

Implem...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

Exemplo

d
c

s

j

e

a

f

i
g
s

t
t1

b
a

l

h
i...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Exemplo

d
c

g

a

b

f

s

...
l

h
i

i

c
.....
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Exemplo

d
c

s

j

e

a

f

i
g
s

t

h
t1 ...
...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

Exemplo

d
c

s

j

e

a

f

i
g
s

t
t1

b
a

l

h
i...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Exemplo

d
c

s

j

e

a

b

f
i
g

s

t

l
t1

...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Exemplo

d
c

s

j

e

a
i
g

s
a

l

f

t

h
i
...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Conclusões

Exemplo

d
c

s

j

e...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Exemplo

d
c

s

j

e

a

b

f
i
...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Exemplo

d
c

s

j

e

a

b

f
i
...
Motivação

k -menores caminhos

Árvore dos prefixos

Exemplo

d
c

j

e
f
g

s
b
a

h
i

l

t

Partições

Y EN

KIM

Implem...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Método de Yen

Método Y EN -G ENÉ...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Método de Yen

ATUALIZE -G ENÉRIC...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Conclusões

Método de Yen

Exempl...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Conclusões

Método de Yen

Exempl...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Conclusões

Método de Yen

Exempl...
Motivação

k -menores caminhos

Árvore dos prefixos

Método de Yen

Exemplo

d
c

j

e
f
g

s
b
a

h
i

l

t

Partições

Y ...
Motivação

k -menores caminhos

Árvore dos prefixos

Método de Yen

Exemplo

d
c

j

e
f
g

s
b
a

h
i

l

t

Partições

Y ...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

Método de Yen

Exemplo

d
c

s

j

e

a

f

i
g
s

t
...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Método de Yen

Exemplo

d
c

g

a

b

f

s

...
...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Método de Yen

Exemplo

d

s

j

e

b

f
g

s

l...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Método de Yen

Exemplo

d
c

s

j

e

a

f

i
g
...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Método de Yen

Exemplo

d
c

s

j

e

a

b

f
i
...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Método de Yen

Exemplo

d
c

s

j

e

a
b

g
s

...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Conclusões

Método de Yen

Exempl...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Método de Yen

Exemplo

d
c

s

j...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Método de Yen

Exemplo

d
c

s

j...
Motivação

k -menores caminhos

Árvore dos prefixos

Método de Yen

Exemplo

d
c

j

e
f
g

s
b
a

h
i

l

t

Partições

Y ...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Método de Y EN

Método de Y EN

A...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Conclusões

Método de Y EN

ATUAL...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Método de Y EN

Exemplo

s
d

f (...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Conclusões

Método de Y EN

Exemp...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Algoritmo de Katoh, Ibaraki e Mine

Específico para grafos s...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Algoritmo de Katoh, Ibaraki e Min...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Conclusões

Algoritmo de Katoh, I...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Conclusões

Algoritmo de Katoh, I...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Conclusões

Algoritmo de Katoh, I...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Conclusões

Algoritmo de Katoh, I...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Conclusões

Algoritmo de Katoh, I...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Exemplo árvore dos menores caminhos

c
10

a

1

10

b

1

...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Conclusões

Exemplo árvore dos me...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Conclusões

Exemplo árvore dos me...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Problema do desvio de custo mínim...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Problema do desvio de custo mínimo

Exemplo

s

...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Problema do desvio de custo mínimo

Exemplo

s

...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Problema do desvio de custo mínimo

Exemplo

s

...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Problema do desvio de custo mínimo

Exemplo

s

...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Problema do desvio de custo mínimo

Exemplo

s

...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Problema do desvio de custo mínim...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Conclusões

Problema do desvio de...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Conclusões

Problema do desvio de...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Conclusões

Problema do desvio de...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Conclusões

Problema do desvio de...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Conclusões

Problema do desvio de...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Conclusões

Problema do desvio de...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Conclusões

Problema do desvio de...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Conclusões

Problema do desvio de...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Conclusões

Problema do desvio de...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Problema do desvio de custo mínim...
Motivação

k -menores caminhos

Árvore dos prefixos

Implementação

Implementação

Codificação em Java

Partições

Y EN

KIM...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

Implementação

Implementação

Codificação em Java
Bibl...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Conclusões

Implementação

Implem...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Conclusões

Implementação

Implem...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

Experimentos

Variáveis
n: número de vértices
m: núme...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Experimentos

Variáveis
n: número...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Experimentos

Variáveis
n: número...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

Experimentos

Tempo em função do número de caminhos

...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Conclusões

Experimentos

Tempo e...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Experimentos

Tempo em função do ...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Conclusões

Experimentos

Tempo e...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Conclusões

Experimentos

Tempo e...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Conclusões

Experimentos

Tempo e...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

Experimentos

Principais rotinas

Rotinas
Problema do...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Conclusões

Experimentos

Fatia d...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Experimentos

Fatia de tempo util...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Experimentos

Fatia de tempo util...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Experimentos

Fatia de tempo util...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Conclusões

Experimentos

Fatia d...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Conclusões

Experimentos

Fatia d...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Conclusões

Experimentos

Fatia d...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

Conclusões

No algoritmo KIM a ro...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Trabalhos futuros

Representar caminhos usando T...
Motivação

k -menores caminhos

Árvore dos prefixos

Partições

Y EN

KIM

Implementação

FIM

"Não basta ensinar ao homem ...
Apêndice

8

Apêndice
KIM
Árvore dos prefixos
Apêndice
KIM

Custo zero nas arestas
a

1.0

b

d

0.0

1.0

1.0

c

1.0

e
Apêndice
KIM

Custo zero nas arestas
a

1.0

b

d

0.0

1.0

1.0

1.0

c

a

=1

ζ=2

b

b ζ=2
0.0

d
e

1.0

=2

0.0

=4
...
Apêndice
KIM

Custo zero nas arestas
a

1.0

b

d

0.0

1.0

e

1.0

1.0

c

a

=1

ζ=2

b

b ζ=2
0.0

d
e

1.0

=2

0.0

...
Apêndice
KIM

Pa
Na figura temos os caminhos Pj e Pk , 1 <= j < k onde Pj é pai
de Pk e que compartilham o prefixo s, . . . ...
Apêndice
KIM

Pa
Esquema dos caminhos na partição Pa .
s

u

a

b

tj
tk
Apêndice
KIM

Pb

s

u
b
tk

tj
Apêndice
KIM

Pb

s

u
v
il

b
ik

ij
Apêndice
KIM

Pb

s

u
b
tk
v
tl

tj
Apêndice
KIM

Pc

s

...

u

tk

tj
Apêndice
KIM

Pc

s

...
tl

v

u

tk

tj
Apêndice
KIM

Pc
s

v
tl
...

u

tk

tj
Apêndice
Árvore dos prefixos

Definição
Q, (N, E), f , V (Q), A(Q)

Q: uma coleção de caminhos
Caminhos
s, a, i, t
s, b, f ,...
Apêndice
Árvore dos prefixos

Definição
Q, (N, E), f , V (Q), A(Q)

(N, E): uma arborescência
a

e

b

c

Grafo acíclico (N,...
Apêndice
Árvore dos prefixos

Definição
Q, (N, E), f , V (Q), A(Q)

f : uma função rótulo
Associa nós e arestas do grafo aos...
Próximos SlideShares
Carregando em…5
×

k-menores caminhos

308 visualizações

Publicada em

Algoritmos para geracao de caminhos minimos

Publicada em: Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
308
No SlideShare
0
A partir de incorporações
0
Número de incorporações
20
Ações
Compartilhamentos
0
Downloads
5
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

k-menores caminhos

  1. 1. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Defesa de dissertação de mestrado k -menores caminhos Fábio Pisaruk Instituto de Matemática e Estatística Universidade de São Paulo 16 de Julho de 2009 Conclusões
  2. 2. Motivação k -menores caminhos Árvore dos prefixos Sumário 1 Motivação 2 k -menores caminhos 3 Partições 4 Y EN 5 KIM 6 Implementação 7 Conclusões Partições Y EN KIM Implementação Conclusões
  3. 3. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Conclusões Problema Provisionamento de sinais Serviço de interligação de sinais. Permite que sinais do ponto a sejam enviados ao ponto b. Figura: Destacamos um possível caminho interligando a e b.
  4. 4. Motivação k -menores caminhos Árvore dos prefixos Problema Processo de provisionamento Requisitos do cliente Quantidade de sinais. Tipos de sinais. Origem e destino. Qualidade de serviço. Partições Y EN KIM Implementação Conclusões
  5. 5. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Problema Processo de provisionamento Considerações Custo é função do número de equipamentos usados. Número de caminhos depende da quantidade de sinais. Critério de desempate é a distância total. Conclusões
  6. 6. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Definição Problema k -menores caminhos Problema k -MC(V , A, c, s, t, k ): Dados: Grafo: (V , A) Função custo: c Vértices: s e t Inteiro positivo: k Encontrar os k-menores caminhos de s a t. Implementação Conclusões
  7. 7. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Definição Exemplo d c e f g s b a h i j Caminhos l t Conclusões
  8. 8. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Definição Exemplo d c e f g s b a h i j Caminhos s, a, i, t l t Conclusões
  9. 9. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Definição Exemplo d c e f g s b a h i j l t Caminhos s, a, i, t s, b, f , l, t Conclusões
  10. 10. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Definição Exemplo d c e f g s b a h i j l t Caminhos s, a, i, t s, b, f , l, t s, b, g, l, t Conclusões
  11. 11. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Definição Exemplo d c e f g s b a h i j l t Caminhos s, a, i, t s, b, f , l, t s, b, g, l, t s, b, h, l, t Conclusões
  12. 12. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Definição Exemplo d c e f g s b a h i j l t Caminhos s, a, i, t s, b, f , l, t s, b, g, l, t s, b, h, l, t s, b, h, i, t Conclusões
  13. 13. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Definição Exemplo d c e f g s b a h i j l t Caminhos s, a, i, t s, b, f , l, t s, b, g, l, t s, b, h, l, t s, b, h, i, t s, a, i, h, l, t Conclusões
  14. 14. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Soluções Algoritmo existente na empresa Busca exaustiva b a c d e Implementação Conclusões
  15. 15. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Soluções Algoritmo existente na empresa Busca exaustiva b a c d a, b a, c a, d e Implementação Conclusões
  16. 16. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Soluções Algoritmo existente na empresa Busca exaustiva b a c d a, b a, c a, d a, b, c a, b, e a, c, b a, c, e a, c, d a, d, c a, d, e e Implementação Conclusões
  17. 17. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Soluções Algoritmo existente na empresa Busca exaustiva b a c e d a, b a, c a, d a, b, c a, b, e a, c, b a, c, e a, c, d a, d, c a, d, e a, b, c, e a, b, c, d a, c, b, e a, c, d, e a, d, c, e a, d, c, b Implementação Conclusões
  18. 18. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Conclusões Soluções Algoritmo existente na empresa Busca exaustiva b a c e d a, b a, c a, d a, b, c a, b, e a, c, b a, c, e a, c, d a, d, c a, d, e a, b, c, e a, b, c, d a, c, b, e a, c, d, e a, d, c, e a, d, c, b a, b, c, d, e a, d, c, b, e
  19. 19. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Conclusões Soluções Algoritmo existente na empresa Busca exaustiva Consumo elevado de memória. b a c e d a, b a, c a, d a, b, c a, b, e a, c, b a, c, e a, c, d a, d, c a, d, e a, b, c, e a, b, c, d a, c, b, e a, c, d, e a, d, c, e a, d, c, b a, b, c, d, e a, d, c, b, e
  20. 20. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Soluções Primeiro algoritmo implementado Busca em profundidade iterativa b a c d nível 1 e Implementação Conclusões
  21. 21. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Soluções Primeiro algoritmo implementado Busca em profundidade iterativa b a c d nível 1 nível 2 a, b, e a, c, e a, d, e e Implementação Conclusões
  22. 22. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Soluções Primeiro algoritmo implementado Busca em profundidade iterativa b a e c d nível 1 nível 2 a, b, e a, c, e a, d, e nível 3 a, b, c, e a, c, b, e a, c, d, e a, d, c, e Implementação Conclusões
  23. 23. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Conclusões Soluções Primeiro algoritmo implementado Busca em profundidade iterativa b a e c d nível 1 nível 2 a, b, e a, c, e a, d, e nível 3 a, b, c, e a, c, b, e a, c, d, e a, d, c, e nível 4 a, b, c, d, e a, d, c, b, e
  24. 24. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Conclusões Soluções Primeiro algoritmo implementado Busca em profundidade iterativa b a c e d nível 1 nível 2 a, b, e a, c, e a, d, e nível 3 nível 4 a, b, c, e a, b, c, d, e a, c, b, e a, d, c, b, e a, c, d, e a, d, c, e Menor consumo de memória e maior consumo de processador.
  25. 25. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Soluções Método genérico Método G ENÉRICO (V , A, c, s, t, k ) 0 P ← conjunto dos caminhos de s a t 1 para i = 1, . . . , k faça 2 Pi ← caminho de custo mínimo em P 3 P ← P − Pi 4 devolva P1 , . . . , Pk Implementação Conclusões
  26. 26. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Soluções P P1 Q P2 P3 P4 P5 Pk Pk +1 ... Conclusões
  27. 27. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Soluções P Q P2 P3 P5 P4 P1 ... Pk Pk +1 Conclusões
  28. 28. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Soluções P P3 P4 Q P5 P1 Pk Pk +1 ... P2 Conclusões
  29. 29. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Soluções P Q P1 P2 Pk +1 ... P4 P3 Pk P5 ... Conclusões
  30. 30. Motivação k -menores caminhos Árvore dos prefixos Exemplo de construção d c j e f g s b a h i l t Partições Y EN KIM Implementação Conclusões
  31. 31. Motivação k -menores caminhos Árvore dos prefixos Exemplo de construção d c j e f g s b a h i l t Partições Y EN KIM Implementação Conclusões
  32. 32. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN Exemplo de construção d c j e f g s b a s a l i t t1 h i KIM Implementação Conclusões
  33. 33. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN Exemplo de construção d c j e f g s b a s a l i t t1 h i KIM Implementação Conclusões
  34. 34. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Exemplo de construção d j e a c b f g s l i t f l b a s t1 h i t2 Conclusões
  35. 35. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Exemplo de construção d j e a c b f g s l i t f l b a s t1 h i t2 Conclusões
  36. 36. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Exemplo de construção d j e a c b f g s f l i t l b a s g l t1 h i t2 t3 Conclusões
  37. 37. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Exemplo de construção d j e a c b f g s f l i t l b a s g l t1 h i t2 t3 Conclusões
  38. 38. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Conclusões Exemplo de construção d j e a c b f g s f l t g h l i l b a s l t1 h i t2 t3 t4
  39. 39. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Conclusões Exemplo de construção d j e a c b f g s f l t g h l i l b a s l t1 h i t2 t3 t4
  40. 40. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Conclusões Exemplo de construção d j e a c b f g s f l i t h g l l b a s i l t1 h i t2 t3 t4 t5
  41. 41. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Conclusões Exemplo de construção d j e a c b f g s f l i t h g l l b a s i l t1 h i t2 t3 t4 t5
  42. 42. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Conclusões Exemplo de construção d j e a c b f g s f l i t t1 l i l l h i h g l h b a s t2 t6 t3 t4 t5
  43. 43. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Conclusões Exemplo de construção d j e a c b f g s f l i t t1 l i l l h i h g l h b a s t2 t6 t3 t4 t5
  44. 44. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Questões k é, potencialmente, exponencial no número de vértices Conclusões
  45. 45. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Conclusões Questões k é, potencialmente, exponencial no número de vértices um grafo completo com 15 vértices possui 16.926.797.485 de caminhos entre dois vértices fixados
  46. 46. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Conclusões Questões k é, potencialmente, exponencial no número de vértices um grafo completo com 15 vértices possui 16.926.797.485 de caminhos entre dois vértices fixados particionar os caminhos utilizando a árvore dos prefixos
  47. 47. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Descrição Q: coleção de caminhos (N, E, f ): árvore dos prefixos de Q Para cada nó u da árvore temos uma partição πu Π = {πu , u ∈ (N, E, f )} Partição πu caminhos com ponta inicial na raiz compartilham o prefixo f (Ru ) não possuem arcos em Au Conclusões
  48. 48. Motivação k -menores caminhos Árvore dos prefixos Partições Π contém todos os caminhos de s a t Π P1 P2 P3 P4 P5 Pk Pk +1 ... Y EN KIM Implementação Conclusões
  49. 49. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN Q ← P1 = s, a, i, t Π πs πa πi KIM Implementação Conclusões
  50. 50. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Q ← s, a, i, t ∪ s, b, f , l, t Π πs πi πa πb πl Implementação Conclusões
  51. 51. Motivação k -menores caminhos Árvore dos prefixos Exemplo d c j e f g s b a h i l t Partições Y EN KIM Implementação Conclusões
  52. 52. Motivação k -menores caminhos Árvore dos prefixos Exemplo d c j e f g s b a h i l t Partições Y EN KIM Implementação Conclusões
  53. 53. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN Exemplo d c s j e a f i g s t t1 b a l h i KIM Implementação Conclusões
  54. 54. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Exemplo d c g a b f s ... l h i i c ... t t b a s j e t1 t Implementação Conclusões
  55. 55. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Exemplo d c s j e a f i g s t h t1 ... b a l h t i Implementação Conclusões
  56. 56. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN Exemplo d c s j e a f i g s t t1 b a l h i KIM Implementação Conclusões
  57. 57. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Exemplo d c s j e a b f i g s t l t1 b a l f h i t2 Implementação Conclusões
  58. 58. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Exemplo d c s j e a i g s a l f t h i ... l t t1 b c b f t2 Implementação Conclusões
  59. 59. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Conclusões Exemplo d c s j e a b c f d i g s t ... ... t t l h ... ... t t t1 b a l g f h i t2
  60. 60. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Exemplo d c s j e a b f i g s t e t1 b a l f ... ... t2 h t i g l t Conclusões
  61. 61. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Exemplo d c s j e a b f i g s t l t1 b a l f h g j h ... ... ... t t t2 i t Conclusões
  62. 62. Motivação k -menores caminhos Árvore dos prefixos Exemplo d c j e f g s b a h i l t Partições Y EN KIM Implementação Conclusões
  63. 63. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Método de Yen Método Y EN -G ENÉRICO Método Y EN -G ENÉRICO (V , A, c, s, t, k ) 0 Π ← {conjunto dos caminhos de s a t} 1 Q←∅ 2 para i = 1, . . . , k faça 3 L ← {Pπ : Pπ é caminho mínimo na parte π de Π} 4 Pi ← caminho de custo mínimo em L 5 Q ← Q ∪ {Pi } 6 Π ← ATUALIZE -G ENÉRICO (V , A, s, t, Q) 7 devolva P1 , . . . , Pk Conclusões
  64. 64. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Método de Yen ATUALIZE -G ENÉRICO Algoritmo ATUALIZE -G ENÉRICO (V , A, s, t, Q) 0 Π←∅ 1 (N, E, f ) ← árvore dos prefixos de Q 2 para cada u ∈ N que não é uma folha faça 3 P ← Pst − Q πu ← {caminhos em P com prefixo f (Ru ) e que não possuem arcos em Au } 4 5 Π ← Π ∪ {πu } devolva Π Conclusões
  65. 65. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Conclusões Método de Yen Exemplo s f (Ru ) = s, b d j e a f (u)=b c f g s Au l i t g f b a l h l t1 i t2 t3
  66. 66. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Conclusões Método de Yen Exemplo s f (Ru ) = s, b d j e a f (u)=b c f g s πu l i t g f c d h b a l h ... l ... ... t t t t1 i t2 t3
  67. 67. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Conclusões Método de Yen Exemplo s f (Ru ) = s, b d j e a f (u)=b c f g s πu l i t g f c d h b a l h ... l ... t t l t1 i t2 t3 t
  68. 68. Motivação k -menores caminhos Árvore dos prefixos Método de Yen Exemplo d c j e f g s b a h i l t Partições Y EN KIM Implementação Conclusões
  69. 69. Motivação k -menores caminhos Árvore dos prefixos Método de Yen Exemplo d c j e f g s b a h i l t Partições Y EN KIM Implementação Conclusões
  70. 70. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN Método de Yen Exemplo d c s j e a f i g s t t1 b a l h i KIM Implementação Conclusões
  71. 71. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Método de Yen Exemplo d c g a b f s ... l h i i c ... t t b a s j e t1 t Implementação Conclusões
  72. 72. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Método de Yen Exemplo d s j e b f g s l t a f c i t1 h i ... l b a c t t Implementação Conclusões
  73. 73. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Método de Yen Exemplo d c s j e a f i g s t h t1 b a l l h t i Implementação Conclusões
  74. 74. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Método de Yen Exemplo d c s j e a b f i g s t l t1 b a l f h i t2 Implementação Conclusões
  75. 75. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Método de Yen Exemplo d c s j e a b g s t f t1 b a l b l i c f f h l t2 t i Implementação Conclusões
  76. 76. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Conclusões Método de Yen Exemplo d c s j e a b c f g s t ... l ... t t g l h ... t1 b a l f d i h i t2 t t
  77. 77. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Método de Yen Exemplo d c s j e a b f i g s t e t1 b a l f ... l t2 h t i g l t Conclusões
  78. 78. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Método de Yen Exemplo d c s j e a b f i g s t l t1 b a l f h g j h ... i ... t2 i t t t Conclusões
  79. 79. Motivação k -menores caminhos Árvore dos prefixos Método de Yen Exemplo d c j e f g s b a h i l t Partições Y EN KIM Implementação Conclusões
  80. 80. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Método de Y EN Método de Y EN Algoritmo Y EN (V , A, c, s, t, k ) 1 P1 ← um caminho de custo mínimo de s a t 2 (N, E, f ) ← árvore dos prefixos de P1 3 para i = 2, . . . , k faça 4 Pi ← caminho de custo mínimo em L 5 (N, E, f , L) ← ATUALIZE -Y EN (V , A, c, s, t, Pi , N, E, f , L) 6 devolva P1 , . . . , Pk Conclusões
  81. 81. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Conclusões Método de Y EN ATUALIZE -Y EN Algoritmo ATUALIZE -Y EN (V , A, c, s, t, P, N , E , f , L ) 0 L ← L − {P} 1 RP ← maior caminho em (N , E ) com ponta inicial na raiz tal que QP := f (RP ) é prefixo de P 2 (N, E, f ) ← Á RVORE - DOS -P REFIXOS(N , E , f , P) 3 Seja f ( u0 , . . . , uk , . . . , uq ) = P e RP = u0 , . . . , uk . 4 para cada u ∈ {uk , . . . , uq−1 } faça 5 Pu ← st-caminho de custo mínimo com prefixo f (Ru ) e que não possui arcos em Au 6 L ← L ∪ {Pu } 7 devolva (N, E, f , L)
  82. 82. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Método de Y EN Exemplo s d f (Ru ) = s, b j e a c f (u)=b f Au g s l t i b a h g f l l t1 i t2 t3 Conclusões
  83. 83. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Conclusões Método de Y EN Exemplo s d j e a c f g s l f t i b a b h l h g l l t1 i t2 t3 t4
  84. 84. Motivação k -menores caminhos Árvore dos prefixos Partições Algoritmo de Katoh, Ibaraki e Mine Específico para grafos simétricos Y EN KIM Implementação Conclusões
  85. 85. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Algoritmo de Katoh, Ibaraki e Mine Específico para grafos simétricos Método eficiente para o problema do desvio mínimo Conclusões
  86. 86. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Conclusões Algoritmo de Katoh, Ibaraki e Mine Específico para grafos simétricos Método eficiente para o problema do desvio mínimo Diminuição do número de caminhos candidatos gerados a cada iteração
  87. 87. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Conclusões Algoritmo de Katoh, Ibaraki e Mine Específico para grafos simétricos Método eficiente para o problema do desvio mínimo Diminuição do número de caminhos candidatos gerados a cada iteração Baseado no método de Yen
  88. 88. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Conclusões Algoritmo de Katoh, Ibaraki e Mine Específico para grafos simétricos Método eficiente para o problema do desvio mínimo Diminuição do número de caminhos candidatos gerados a cada iteração Baseado no método de Yen Partições definidas apenas para nós com mais de um filho
  89. 89. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Conclusões Algoritmo de Katoh, Ibaraki e Mine Específico para grafos simétricos Método eficiente para o problema do desvio mínimo Diminuição do número de caminhos candidatos gerados a cada iteração Baseado no método de Yen Partições definidas apenas para nós com mais de um filho Depende rotina para o problema CM: T (n, m)
  90. 90. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Conclusões Algoritmo de Katoh, Ibaraki e Mine Específico para grafos simétricos Método eficiente para o problema do desvio mínimo Diminuição do número de caminhos candidatos gerados a cada iteração Baseado no método de Yen Partições definidas apenas para nós com mais de um filho Depende rotina para o problema CM: T (n, m) Melhor desempenho assintótico: Θ(kT (n, m))
  91. 91. Motivação k -menores caminhos Árvore dos prefixos Partições Exemplo árvore dos menores caminhos c 10 a 1 10 b 1 d 1 1 1 f 1 e Y EN KIM Implementação Conclusões
  92. 92. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Conclusões Exemplo árvore dos menores caminhos a 1 b 1 c d 1 10 a 1 10 b 1 d 1 1 1 f 1 1 e e f 1 c
  93. 93. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Conclusões Exemplo árvore dos menores caminhos a 1 b 1 c d f 1 10 a 1 10 b 1 d 1 1 e 1 e c a c 1 1 1 f 1 b f 1 1 1 d 1 e
  94. 94. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Problema do desvio de custo mínimo Definição Problema do desvio de custo mínimo (V , A, c, s, t): Dados: Grafo simétrico com custo: (V , A, c) Vértices: s e t P = s = a1 , . . . , an = t um caminho de custo mínimo de s a t Encontrar um caminho de custo mínimo, diferente de P, entre s e t. Conclusões
  95. 95. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Problema do desvio de custo mínimo Exemplo s t Implementação Conclusões
  96. 96. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Problema do desvio de custo mínimo Exemplo s t δ u ... t Implementação Conclusões
  97. 97. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Problema do desvio de custo mínimo Exemplo s t δ u arco δu ∈ Ts arco δu ∈ Ts / ... t Implementação Conclusões
  98. 98. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Problema do desvio de custo mínimo Exemplo s t δ u arco δu ∈ Ts s −→ u −→ t Ts arco δu ∈ Ts / Tt ... t Implementação Conclusões
  99. 99. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Problema do desvio de custo mínimo Exemplo s t δ u arco δu ∈ Ts s −→ u −→ t Ts Tt arco δu ∈ Ts / s −→ u → v −→ t Ts ∈A Tt ... t Implementação Conclusões
  100. 100. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Problema do desvio de custo mínimo Tipos de caminhos Um novo caminho de custo mínimo construído através de u ∈ V é de um dos dois tipos definidos a seguir: tipo I : s −→ u −→ t. Ts Tt tipo II : s −→ u → v −→ t. Ts ∈A Tt Ts uma árvore de menores caminhos com raiz em s Tt uma árvore de menores caminhos com raiz em t Pr = t = an , . . . , a1 = s P ∈ Ts e Pr ∈ Tt Conclusões
  101. 101. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Conclusões Problema do desvio de custo mínimo Desvio de custo mínimo s c 10 s 1 10 b 1 b 1 d 1 1 1 1 t d 1 c t s c 1 b Tipo I Tipo II f 1 1 f 1 f 1 1 1 d 1 t
  102. 102. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Conclusões Problema do desvio de custo mínimo Desvio de custo mínimo s c 10 s 1 10 b 1 b 1 d 1 1 1 1 t d 1 c t s c 1 b Tipo I Tipo II f 1 1 f 1 f 1 1 1 d s, b, f , d, t 1 t
  103. 103. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Conclusões Problema do desvio de custo mínimo Desvio de custo mínimo s c 1 10 s 1 10 b 1 b d 1 1 t 1 1 d 1 1 f 1 f 1 c t s c 1 Tipo I s, b, f , d, t Tipo II b f 1 1 1 s, c, d, t d 1 t
  104. 104. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Conclusões Problema do desvio de custo mínimo Desvio de custo mínimo s c 10 s 1 10 b 1 b 1 d 1 1 1 1 t d 1 1 c t s c 1 b s, b, f , d, t f 1 f Tipo I 1 Tipo II 1 d s, c, d, t s, b, c, d, t f 1 1 1 t
  105. 105. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Conclusões Problema do desvio de custo mínimo Rotulações e ζ P = a, b, d, e Rotulação Rotulação ζ (a) = 1 Se u ∈ P então (u) = (ψ(u)) + 1 Se u ∈ P então (u) = (ψ(u)) / ζ(e) = |P| Se u ∈ P então ζ(u) = ζ(ψ(u)) − 1 Se u ∈ P então ζ(u) = ζ(ψ(u)) / a =1 1 a c 3 2 b b f 3 2 d 3 d 3 4 e f 2 c 3 e ζ=4
  106. 106. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Conclusões Problema do desvio de custo mínimo Desvio de custo mínimo com rotulações s =1 1 c b 2 1 10 s 1 10 b 1 d 1 1 1 f 1 1 d 3 t 1 f 2 1 c 3 t 1 s 4 c 3 1 2 b Tipo I f 3 1 1 1 d 3 Tipo II 1 t ζ=4
  107. 107. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Conclusões Problema do desvio de custo mínimo Desvio de custo mínimo com rotulações s =1 1 c b 2 10 s 1 10 b 1 1 d 1 1 t d 3 1 1 1 f 1 f 2 1 c 3 t 1 s 4 c 3 1 2 Tipo I Tipo II b f 3 1 1 1 d 3 s, b, f , d, t 1 t ζ=4
  108. 108. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Conclusões Problema do desvio de custo mínimo Desvio de custo mínimo com rotulações s =1 1 c b 2 10 s 1 10 b 1 1 d 1 1 t d 3 1 1 1 f 2 1 c 3 t 1 s 1 4 f c 3 1 2 Tipo I s, b, f , d, t Tipo II b f 3 1 1 1 d 3 s, c, d, t 1 t ζ=4
  109. 109. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Conclusões Problema do desvio de custo mínimo Desvio de custo mínimo com rotulações s =1 1 c b 2 1 10 s 1 10 b 1 d 1 1 1 1 d 3 t 1 f 2 1 c 3 t 1 s 4 1 f c 3 1 2 b Tipo I s, b, f , d, t 1 d 3 Tipo II s, b, c, d, t f 3 1 1 1 t ζ=4
  110. 110. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Problema do desvio de custo mínimo Disposição esquemática das partições Pc Pb s P1 P2 Pa t Conclusões
  111. 111. Motivação k -menores caminhos Árvore dos prefixos Implementação Implementação Codificação em Java Partições Y EN KIM Implementação Conclusões
  112. 112. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN Implementação Implementação Codificação em Java Biblioteca open source JUNG: 1.7 e 2.0 KIM Implementação Conclusões
  113. 113. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Conclusões Implementação Implementação Codificação em Java Biblioteca open source JUNG: 1.7 e 2.0 Diversos algoritmos já implementados, incluindo o Dijkstra
  114. 114. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Conclusões Implementação Implementação Codificação em Java Biblioteca open source JUNG: 1.7 e 2.0 Diversos algoritmos já implementados, incluindo o Dijkstra Visualização de grafos
  115. 115. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN Experimentos Variáveis n: número de vértices m: número de arestas d: densidade=m/ n 2 k : quantidade de menores caminhos KIM Implementação Conclusões
  116. 116. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Experimentos Variáveis n: número de vértices m: número de arestas d: densidade=m/ n 2 k : quantidade de menores caminhos Metodologia Grafos simétricos conexos com custos positivos 5 pontas iniciais e finais Um grafo por densidade Conclusões
  117. 117. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Experimentos Variáveis n: número de vértices m: número de arestas d: densidade=m/ n 2 k : quantidade de menores caminhos Metodologia Grafos simétricos conexos com custos positivos 5 pontas iniciais e finais Um grafo por densidade Consumo de tempo KIM: Θ(kT (n, m)) = Θ(km log n) usando-se D IJKSTRA KIM: Θ(km log n) = Θ(kdn2 log n) Conclusões
  118. 118. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN Experimentos Tempo em função do número de caminhos Consumo de tempo KIM: Θ(kT (n, m)) KIM Implementação Conclusões
  119. 119. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Conclusões Experimentos Tempo em função do número de caminhos Tempo de execução em função do número de caminhos. n=900 7000 6000 densidade 0.1 0.5 1.0 Tempo(s) 5000 4000 3000 2000 1000 0 100 200 300 400 500 600 700 800 Quantidade de caminhos gerados(k) 900 1000
  120. 120. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Experimentos Tempo em função do número de vértices Consumo de tempo KIM usando D IJKSTRA "min-heap": Θ(kdn2 log n) Conclusões
  121. 121. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Conclusões Experimentos Tempo em função do número de vértices Tempo em função do número de vértices. Densidade 0.1 700 600 Tempo(s) 500 400 300 número de caminhos(k) k=100 k=200 k=300 k=400 k=500 k=600 k=700 k=800 k=900 k=1000 200 100 0 100 200 300 400 500 600 700 800 900
  122. 122. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Conclusões Experimentos Tempo em função do número de vértices Tempo em função do número de vértices. Densidade 0.5 3000 2500 Tempo(s) 2000 1500 número de caminhos(k) k=100 k=200 k=300 k=400 k=500 k=600 k=700 k=800 k=900 k=1000 1000 500 0 100 200 300 400 500 600 700 800 900
  123. 123. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Conclusões Experimentos Tempo em função do número de vértices Tempo em função do número de vértices. Densidade 1.0 7000 6000 Tempo(s) 5000 4000 3000 número de caminhos(k) k=100 k=200 k=300 k=400 k=500 k=600 k=700 k=800 k=900 k=1000 2000 1000 0 100 200 300 400 500 600 700 800 900
  124. 124. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN Experimentos Principais rotinas Rotinas Problema do desvio mínimo, rotina SEP Problema CM, algoritmo Dijkstra Consumo de tempo SEP: Θ(m + n) D IJKSTRA com "min-heap": Θ(m log n) KIM Implementação Conclusões
  125. 125. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Conclusões Experimentos Fatia de tempo utilizada pelas principais rotinas. Proporção de tempo utilizada pelas duas principais subrotinas para cada densidade. n=900 0.994 0.992 0.99 Proporção 0.988 0.986 0.984 número de caminhos k=100 k=200 k=300 k=400 k=500 k=600 k=700 k=800 k=900 k=1000 0.982 0.98 0.978 0.1 0.2 0.3 0.4 0.5 0.6 Densidade 0.7 0.8 0.9 1
  126. 126. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Experimentos Fatia de tempo utilizada pelas execuções do Dijkstra. Proporção de tempo utilizada pelas execuções do algoritmo Dijkstra. Densidade=0.1 0.9 0.85 0.8 0.75 Proporção 0.7 0.65 0.6 0.55 número de caminhos k=100 k=200 k=300 k=400 k=500 k=600 k=700 k=800 k=900 k=1000 0.5 0.45 0.4 0.35 100 200 300 400 500 600 Número de vértices 700 800 900 Conclusões
  127. 127. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Experimentos Fatia de tempo utilizada pelas execuções do Dijkstra. Proporção de tempo utilizada pelas execuções do algoritmo Dijkstra. Densidade=0.5 0.9 0.85 0.8 Proporção 0.75 0.7 0.65 número de caminhos k=100 k=200 k=300 k=400 k=500 k=600 k=700 k=800 k=900 k=1000 0.6 0.55 0.5 100 200 300 400 500 600 Número de vértices 700 800 900 Conclusões
  128. 128. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Experimentos Fatia de tempo utilizada pelas execuções do Dijkstra. Proporção de tempo utilizada pelas execuções do algoritmo Dijkstra. Densidade=1.0 0.9 0.85 Proporção 0.8 0.75 0.7 número de caminhos k=100 k=200 k=300 k=400 k=500 k=600 k=700 k=800 k=900 k=1000 0.65 0.6 0.55 100 200 300 400 500 600 Número de vértices 700 800 900 Conclusões
  129. 129. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Conclusões Experimentos Fatia de tempo utilizada pelas execuções do algoritmo de desvio mínimo. Proporção de tempo utilizada pelas execuções da rotina SEP. Densidade=0.1 0.35 número de caminhos k=100 k=200 k=300 k=400 k=500 k=600 k=700 k=800 k=900 k=1000 0.3 Proporção 0.25 0.2 0.15 0.1 100 200 300 400 500 600 Número de vértices 700 800 900
  130. 130. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Conclusões Experimentos Fatia de tempo utilizada pelas execuções do algoritmo de desvio mínimo. Proporção de tempo utilizada pelas execuções da rotina SEP. Densidade=0.5 0.35 número de caminhos k=100 k=200 k=300 k=400 k=500 k=600 k=700 k=800 k=900 k=1000 0.3 Proporção 0.25 0.2 0.15 0.1 100 200 300 400 500 600 Número de vértices 700 800 900
  131. 131. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Conclusões Experimentos Fatia de tempo utilizada pelas execuções do algoritmo de desvio mínimo. Proporção de tempo utilizada pelas execuções da rotina SEP. Densidade=1.0 0.3 número de caminhos k=100 k=200 k=300 k=400 k=500 k=600 k=700 k=800 k=900 k=1000 0.28 0.26 0.24 Proporção 0.22 0.2 0.18 0.16 0.14 0.12 0.1 100 200 300 400 500 600 Número de vértices 700 800 900
  132. 132. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação Conclusões No algoritmo KIM a rotina para o problema CM consome a maior fatia do tempo de execução do algoritmo. Conclusões
  133. 133. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Trabalhos futuros Representar caminhos usando TRIE Analisar idéia de reconstrução de árvores Implementar algoritmo de Hershberger Implementação Conclusões
  134. 134. Motivação k -menores caminhos Árvore dos prefixos Partições Y EN KIM Implementação FIM "Não basta ensinar ao homem uma especialidade, porque se tornará assim uma máquina utilizável e não uma personalidade. É necessário que adquira um sentimento, senso prático daquilo que vale a pena ser empreendido, daquilo que é belo, do que é moralmente correto." Albert Einstein Conclusões
  135. 135. Apêndice 8 Apêndice KIM Árvore dos prefixos
  136. 136. Apêndice KIM Custo zero nas arestas a 1.0 b d 0.0 1.0 1.0 c 1.0 e
  137. 137. Apêndice KIM Custo zero nas arestas a 1.0 b d 0.0 1.0 1.0 1.0 c a =1 ζ=2 b b ζ=2 0.0 d e 1.0 =2 0.0 =4 a ζ=1 1.0 1.0 1.0 c d ζ=3 =3 1.0 1.0 c =3 e ζ=4 e
  138. 138. Apêndice KIM Custo zero nas arestas a 1.0 b d 0.0 1.0 e 1.0 1.0 c a =1 ζ=2 b b ζ=2 0.0 d e 1.0 =2 0.0 =4 a ζ=1 1.0 1.0 1.0 c d ζ=3 =3 1.0 1.0 c Problema =3 e ζ=4 (c) > ζ(c) Não consegue gerar o caminho a, b, c, d, e
  139. 139. Apêndice KIM Pa Na figura temos os caminhos Pj e Pk , 1 <= j < k onde Pj é pai de Pk e que compartilham o prefixo s, . . . , u diferenciando-se a partir de u. s u a b tj tk
  140. 140. Apêndice KIM Pa Esquema dos caminhos na partição Pa . s u a b tj tk
  141. 141. Apêndice KIM Pb s u b tk tj
  142. 142. Apêndice KIM Pb s u v il b ik ij
  143. 143. Apêndice KIM Pb s u b tk v tl tj
  144. 144. Apêndice KIM Pc s ... u tk tj
  145. 145. Apêndice KIM Pc s ... tl v u tk tj
  146. 146. Apêndice KIM Pc s v tl ... u tk tj
  147. 147. Apêndice Árvore dos prefixos Definição Q, (N, E), f , V (Q), A(Q) Q: uma coleção de caminhos Caminhos s, a, i, t s, b, f , l, t s, b, g, l, t s, b, h, l, t s, b, h, i, t s, a, i, h, l, t V (Q): conjunto de vértices A(Q): conjunto de arcos
  148. 148. Apêndice Árvore dos prefixos Definição Q, (N, E), f , V (Q), A(Q) (N, E): uma arborescência a e b c Grafo acíclico (N, E) |N| = |E| + 1 raiz Todo vértice, exceto a raiz, é ponta final de exatamente um arco.
  149. 149. Apêndice Árvore dos prefixos Definição Q, (N, E), f , V (Q), A(Q) f : uma função rótulo Associa nós e arestas do grafo aos nós e arestas da árvore de prefixos. Se R = u0 , e1 , u1 , . . . , et , ut for um caminho em (N, E), então f (R) := f (u0 ), f (e1 ), f (u1 ), . . . , f (et ), f (ut ) será uma seqüência de vértices e arcos dos caminhos em Q.

×