k-menores caminhos
Upcoming SlideShare
Loading in...5
×
 

k-menores caminhos

on

  • 96 views

Algoritmos para geracao de caminhos minimos

Algoritmos para geracao de caminhos minimos

Statistics

Views

Total Views
96
Views on SlideShare
96
Embed Views
0

Actions

Likes
0
Downloads
1
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

k-menores caminhos k-menores caminhos Presentation Transcript

  • 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
  • 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
  • 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.
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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.
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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)
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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)
  • 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))
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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 a ζ=1 1.0 1.0 1.0 c d ζ=3 =3 1.0 1.0 c =3 e ζ=4 e
  • 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
  • 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
  • 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 , 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
  • 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.
  • 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.