Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

gccAirlines Objetivo Dados os aeroportos de uma cidade de origem e uma de destino, encontrar a rota de voo mais curta entre eles. 2

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

OpenFlights Databases (Aeroportos) 5

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

OpenFlights Databases (Rotas) 7

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

Front End Acesse: http://52.67.132.58:8787/ 11

Slide 12

Slide 12 text

Notas Aviões para o tema das transparências: Designed by Freepik 12