Upgrade to Pro — share decks privately, control downloads, hide ads and more …

slides-gccAirlines.pdf

 slides-gccAirlines.pdf

Guilmour Rossi

July 11, 2016
Tweet

More Decks by Guilmour Rossi

Other Decks in Programming

Transcript

  1. gccAirlines Um projeto de Estrutura de Dados escrito em C

    que usa o algoritmo de Dijkstra para gerar melhores rotas de vôo e mostrá­las com frontend Web. Guilmour H. D. Rossi [email protected] Estrutura de Dados I
  2. gccAirlines Objetivo Dados os aeroportos de uma cidade de origem

    e uma de destino, encontrar a rota de voo mais curta entre eles. 2
  3. Grafos Relações entre os objetos de um determinado conjunto Vértices

    (nós) e arestas. No caso de aeroportos teríamos um grafo dirigido podenrado. 3
  4. Dijkstra Listas e matriz de adjacências Figura xx: Um grafo

    direcionado pode ser representado por uma lista de adjacência ou por uma matrix de adjacência. (CORMEN, 2012) ( Daig­sstra ) Visualizar algoritmo. 4
  5. Dados do airports.dat 2 5 4 5 , " A

    f o n s o P e n a " , " C u r i t i b a " , " B r a z i l " , " C W B " , " S B C T " , ­ 2 5 . 5 2 8 4 7 5 , ­ 4 9 . 1 7 5 7 7 5 , 2 9 8 8 , ­ 3 , " S " , " A m e r i c a / S a o _ P a u l o " " ­ I D d o A e r o p o r t o ­ N o m e ­ C i d a d e ­ P a í s ­ I A T A / F A A ­ I C A O ­ L a t i t u d e ­ L o n g i t u d e ­ A l t i t u d e ­ T i m e z o n e ­ D S T ­ T z d a t a b a s e t i m e z o n e 6
  6. Dados do routes.dat A A , 2 4 , C

    W B , 2 5 4 5 , P O A , 2 5 9 9 , , 0 , 7 6 3 ­ C o m p a n h i a A é r e a ­ I D d a C o m p a n h i a A é r e a ­ A e r o p o r t o d e O r i g e m ­ I D d o A e r o p o r t o d e O r i g e m ­ A e r o p o r t o D e s t i n o ­ I D d o A e r o p o r t o D e s t i n o ­ C o d e s h a r e ­ P a r a d a s ­ E q u i p m e n t 8
  7. Fórmula de Haversine Peso para o caminho de Dijkstra. hav

    = hav(ϕ − ϕ ) + cos(ϕ ) cos(ϕ )hav(λ − λ ) onde hav(θ) = sin = onde d é a distância entre os pontos, r é o raio da Terra, e θ , θ , λ e λ são latitude e longitude de origem e destino, respectivamente. ( r d ) 2 1 1 2 2 1 2( 2 θ ) 2 1 − cos(θ) 1 2 1 2 9
  8. Funcionamento básico Cria Lista de Adjancencia Tabela de Dijkstra int

    vertice bool conhecido int custo int caminho routes.dat airports.dat dataCrawler runDijkstra ID de Origem ID de Destino readRoutesData doHaversine latitude logitude printDijkstra inserePilha printPilha publishPage geo Info 10