relator: danilo m lage contestador: joão eduardo maeda 2ª reunião do grupo de estudos
Post on 22-Apr-2015
110 Views
Preview:
TRANSCRIPT
Relator: Danilo M LageContestador: João Eduardo
Maeda
2ª Reunião do Grupo de Estudos
Edsger Wybe Dijkstra
11 Maio 1930 6 Agosto 2002Roterdã, Holanda Nuenen, Holanda• Cientista da Computação• Contribuições:
– Algoritmos– Linguagem de Programação
• ALGOL 60
– Sistema Operacional • THE
– Processamento Distribuído
Algoritmo de Dijkstra
• Resolução do caminho de menor comprimento• Descrição dos Problemas:
– 1º Problema:• Construir a árvore de menor comprimento total entre todos
os nós de um grafo.
– 2º Problema:• Encontrar o caminho de menor comprimento total entre dois
determinados nós de um grafo.
Resolução1º Problema
• Considere 5 conjuntos:– 3 conjuntos de Ramos:
I Ramos em ordem de visitação
II Ramos em potencial de pertencerem ao I
III Ramos ainda não visitados ou rejeitados
– 2 conjuntos de Nós:A Conjunto de Nós em ordem de visitação
B Conjunto de Nós ainda não visitados
Resolução1º Problema
• Assertiva de Entrada:– Um nó arbitrário pertencente ao grafo– Movê-lo de B para A– Adiciona seus ramos de conexão a II
• 1º Passo:– Mover o ramo de menor distância de II para I– Adicionar a A o nó conectado a esse ramo– Vá para 2º passo
• 2º Passo:– Considerando os ramos conectados ao nó recém adicionado a A que
liguem a nós pertencentes a B:• Se o ramo em consideração for maior do que seus correspondentes,
adicione-o a III (descarte-o)• Caso contrário, adicione-o a II
– Repita o passo 1 se B e II não sejam vazios.• Resultado:
– O conjunto I possui a árvore requerida
Exemplo1º Problema
1
62 3
2
a b
d c
e
• Assertiva de Entrada:– Um nó arbitrário pertencente ao grafo– Movê-lo de B para A– Adiciona seus ramos de conexão a II
A
B a b c d e
a0
b1
d2
e3
c4
II
I
III ac6
dc4
de5
cb7
ce5
cd6
ab ad be bc
ab1
ac6
ad2
bc4
be3
• 1º Passo:– Mover o ramo de menor distância de II
para I– Adicionar a A o nó conectado a esse
ramo
• 2º Passo:– Adicionar os ramos a II– Repita 1º Passo se B e II não vazios
a
1
3
2
b
d
e
c
Resolução2º Problema
• Considere 6 conjuntos:– 3 conjuntos de Ramos:
I Ramos em ordem de visitação
II Ramos em potencial de pertencerem ao I
III Ramos ainda não visitados ou rejeitados
– 3 conjuntos de Nós:A Nós em ordem de visitação
B Nós anteriores aos pertencentes a A
C Nós ainda não visitados
Resolução2º Problema
• Assertiva de Entrada:– Dois nós arbitrários pertencentes ao grafo– Mover o nó de partida de C para A
• 1º Passo:– Investigar todos os ramos em III que partam do nó adicionado em A– Caso o nó de destino não pertença a B, mover o ramo de menor
distância conectando ambos nós para II e o nó de destino para B– Caso o nó de destino pertença a B e seja de menor distância que seu
correspondente em II, substituí-lo– Caso a distância do ramo seja maior que seu correspondente, rejeitá-lo
• 2º Passo:– Para cada nó em B, investigar seu peso em relação ao nó de partida– Mover o nó com menor distância de B para A– Mover o ramo correspondente a esse nó de II para I– Repetir o passo 1 até que o nó de chegada esteja contido em A
• Resultado:– O caminho é encontrado seguindo os nós do conjunto A
Exemplo2º Problema
1
62 3
2
a b
d c
e
A
C a b c d e
a b e
II
I
III ab1
ac6
ad2
bc3
be2
ab be
ab1
be2
a
1
3
2
b
e
B b1
e3
• Partir de “a” para “e”
Artigo Base
• Linguagem matemática, porém, mais próxima da computacional
• Resolução de um gargalo computacional do algoritmo de Dijkstra
• Utilização de árvore de Fibonacci
• Ampla aplicabilidade desse método
Artigo BaseAlgoritmo Original
– Mesmo algoritmo já apresentado– Possui um gargalo!!!Legenda:
V = conjunto de todos os nós do grafoS = conjunto dos nós visitadosn = número de nóss = nó de partidav = nó vizinhoui = nó da iteração il(.) = peso de um nó (distância acumulada)
Artigo BaseAlgoritmo Proposto
Legenda:l(.) = lista ordenada de pesos dos nóshighi
v = posição do maior peso da listalowi = posição do menor peso da lista
Artigo BaseMelhoria da Implementação
Legenda:T = nº associado ao custo computacional para as adições e comparações;Dmax = maior nº de ramos incidentes em um nó;n = nº total de nós;m = nº total de ramos.
Artigo BaseResultados
Experimento 1:
- Nós ligados- 1 Ramo aleatório por nó: i+ji ji rand [2,3...30]- Dmax = 4
Experimento 2:
- Nós ligados- 2 Ramos aleatórios por nó: i+ji1+ji2 ji1 rand [2,3...30] ji2 rand [2,3...20]- Dmax = 6
PERGUNTAS???
Exemplo
4
4
44
4
5
5
6
5
3
33
3
33
3
2
2 2
3
4
5
4
3
6
5
3
3
45
3
4
55
1
6
A ciência não estuda ferramentas, mas o que fazemos e o que descobrimos com elas.
E. W. Dijkstra
top related