Apresentacao-Algoritmo de Dijkstra

15
Algoritmo de Dijkstra Prof . Clodonil H. Trigo

description

Apresentação sobre algoritmo de Dijkstra

Transcript of Apresentacao-Algoritmo de Dijkstra

  • Algoritmo de Dijkstra Prof . Clodonil H. Trigo

  • O que o Algoritmo de Dijkstra?Trata-se de um algoritmo que procura a menor distncia entre um dado vrtice at cada um dos outros vrtices de um grafo conexo;

    Exemplo: Dado um grafo G=(A,V), onde:V={0,1,2,3,...,n} onde n=n de vrtices ou vrtice mximoDijkstra(0)={ d(0,1), d(0,2), d(0,3), ... , d(0,n) }Dijkstra(3)={ d(3,0), d(3,1), d(3,2), ... , d(3,n) }

    No garante a exatido da soluo caso haja a presena de arcos com valores negativos.(porqu?)

    Sempre encontrar a menor distncia;

  • HistricoEdsger Wybe Dijkstra nasceu em 1930, em Rotterdam, Holanda. Seu pai era farmacutico e a me matemtica. Graduou-se em Fsica Terica e Matemtica pela Universidade de Leyden e obteve seu diploma de Ph.D. em Cincia da Computao na Universidade de Amsterdam. Trabalhou como programador de computadores de 1952 a 1962 no Mathematisch Centrum em Amsterdam. Faleceu em sua casa no dia 6 de agosto de 2002 deixando esposa e trs filhos[DIJ].

    1956 - shortest-path algorithm

  • O AlgoritmoPasso1Acumular o vrtice origem;Passo2Considerando cada um dos vrtices existentes na rvore, calcule a distncia total para seus respectivos vrtices adjacentes. Selecione o vrtices com o menor valor de distncia total e acumule-o (cada vrtice acumulado ter sua distncia atualizada considerando-se as distncias anteriores acumuladas).Passo3Repita o segundo passo at que todos os ns estejam acumulados. Ao final, os ns acumulados esto em ordem de custo, a partir da origem dada.

  • Visualizao do AlgoritmoGrafo GMatriz de Adjacncias

    0-s

    1-u

    2-x

    3-v

    4-y

    0-s

    (

    10

    5

    (

    (

    1-u

    (

    (

    2

    1

    (

    2-x

    (

    3

    (

    9

    2

    3-v

    (

    (

    (

    (

    4

    4-y

    7

    (

    (

    6

    (

  • Visualizao do AlgoritmoInicializaoBusca de adjacentes

    0-s

    1-u

    2-x

    3-v

    4-y

    0-s

    (

    10

    5

    (

    (

    1-u

    (

    (

    2

    1

    (

    2-x

    (

    3

    (

    9

    2

    3-v

    (

    (

    (

    (

    4

    4-y

    7

    (

    (

    6

    (

  • Visualizao do AlgoritmoEncontrar o menor caminho.Exemplo: s at y S
  • ImplementaoPara a representao dos Grafos G=(V,A) so necessrios dois conjuntos:vrtices e arestas;

    Estes dois conjuntos poder ser representados por dois tipos de estrutura:Matriz de adjacncia (Esttica);Lista de adjacncia (Dinmica);

  • Matriz de Adjacncias Ponderada

    0-s

    1-u

    2-x

    3-v

    4-y

    0-s

    (

    10

    5

    (

    (

    1-u

    (

    (

    2

    1

    (

    2-x

    (

    3

    (

    9

    2

    3-v

    (

    (

    (

    (

    4

    4-y

    7

    (

    (

    6

    (

  • Lista de Adjacncias

  • Pseudo-CdigoDijkstra (G, origem, destino) para u 1 at n faa dist[u] dist[origem] 0Cria-FilaADJ (1..n)enquanto Fila-no-Vazia() faa u Sai-Mnimo-da-Fila () para cada v em Adj[u] faa se dist[u]+f(uv) < dist[v] ento dist[v] dist[u]+f(uv) ento Reorganiza-Fila ()devolva dist[1..n]O(n)O(n)Pior caso: O (n2)

  • UtilizaoSistemas Geo (logstica);Algoritmo de Roteamento (Roteador de Rede);etc...

  • Bibliografia[RUD] Estudo e Implementao de Algoritmos de Roteamento sobre Grafos em um Sistema de Informaes Geogrficas RUDINI MENEZES UFLA Universidade Federal de Lavras DCC http://www.dcc.ufla.br/infocomp/artigos/v3.1/art12.pdf Acesso em 19 de junho de 2006. [DIJ] Dijkstra Apresenta manuscritos de E. W. Dijkstra, que foi um grande nome da computao moderna. Disponvel em: http://www.cs.utexas.edu/users/EWD/Acesso em 19 de junho de 2006. [ALD] Algoritmo de Dijkstra. http://lcad.icmc.usp.br/~nonato/ED/Dijkstra/node84.htmlAcesso em 19 de junho de 2006

  • Bibliografia[Morais] Estrutura de Dados e Algoritmos: Uma abordagem didtica. So Paulo 2001 Ed. Berkeley.