SlideShare ist ein Scribd-Unternehmen logo
1 von 46
UNIVERSIDADE ESTADUAL DO MARANHÃO - UEMA
CENTRO DE CIÊNCIAS TECNOLÓGICA- CCT
PROGRAMA DE PÓS-GRADUAÇÃO
MESTRADO EM ENGENHARIA DA COMPUTAÇÃO E
SISTEMAS
DISCIPLINA: PROJETO DE ALGORITMO
Grafos: algoritmo de busca do menor caminho
entre os pontos turísticos de São Luís – Ma, usando
Dijkstra
Francisco Adelton Alves Ribeiro
João Batista Paiva Junior
José Wilker Luz
Lidinalva Almada Coutinho
Prof. Josenildo Silva
ROTEIRO
 INTRODUÇÃO
 GRAFOS
 ANDROID
 GOOGLE MAPS
 IMPLEMENTAÇÃO E COMPLEXIDADE
 CONSIDERAÇÕES FINAIS
INTRODUÇÃO
• Das inúmeras utilizações dos grafos como: análise
de circuitos, análise e planejamento de projetos,
genética, linguística, ciências sociais, robótica entre
outras, uma delas é a otimização de percursos.
• Por meio da conjugação do uso de grafo e do
Algoritmo de Dijkstra é possível calcular o caminho
mais curto para realizar determinado percurso.
INTRODUÇÃO
 Um dos algoritmos mais utilizados para resolver o
problema do Caminho Mínimo é o algoritmo de
Dijkstra. Este algoritmo garante a obtenção do
caminho ótimo entre um nó de referência do grafo
e os demais.
 Nas últimas décadas, a revolução das
comunicações tem provocado uma explosão na
comunicação sem fio.
INTRODUÇÃO
 Em especial smartphones, dispositivos e-reader e
tablets.
 Com ênfase no Sistema Operacional Android, que
vem impulsionando a inovação na tecnologia móvel.
 Os aplicativos Android são desenvolvidos com Java.
 O Java é usado para desenvolver aplicativos
empresariais de larga escala.
INTRODUÇÃO
Além de permitir desenvolver aplicativos utilizando
grafos que são executados em uma variedade de
dispositivos, sem nenhum código específico para a
plataforma.
PROBLEMA
Como conseguir o menor caminho entre os principais
pontos turísticos de São Luís-Ma, utililizando o
algoritmo Dijkstra.
INTRODUÇÃO
OBJETIVOS
• integrar técnicas computacionais de
programação, tendo como base o algoritmo de
Dijsktra para a solução de problemas, usando
cálculo para o custo mínimo com informações
obtidas através do uso do API do Google Maps,
o qual facilita a busca de pontos turísticos
importantes na cidade de São Luís-MA.
• descrever o funcionamento do referido
algoritmo, permitindo a sua implementação a
nível informático;
INTRODUÇÃO
• apresentar detalhes de sua implementação de
grafos, detalhando as estruturas de dados
utilizadas e a API (métodos de criar, adicionar
vértices, arestas, percorrer etc.);
• fazer uma análise teórica sobre correção e a
complexidade do algoritmo utilizado para
resolver o problema proposto;
INTRODUÇÃO
• fazer previsões teóricas sobre limite de tamanho de problema
resolvível e quantidade de tempo necessário;
• realizar experimentos para verificar se a performance das
operações implementadas estão de acordo com análise
teórica;
• utilizar conjuntos de dados grandes o suficiente para
demonstrar que sua análise teoria esta correta.
• Nesse trabalho, propõe-se uma metodologia para determinar
o caminho de menor custo entre dois pontos em uma dada
região.
INTRODUÇÃO
• Para alcance dos objetivos propostos neste
artigo, é necessário uma sistematização das
informações relevantes para a construção do
aplicativo para dispositivos móveis que garanta
boa interatividade durante todo processo de
interação.
• busca-se desenvolver uma ferramenta
computacional que garanta aos usuários de
dispositivos móveis utilizarem a plataforma
Android para determinar o caminho de menor
custo entre os principais pontos turísticos da
cidade de São Luís-Ma.
INTRODUÇÃO
O artigo está estruturado da seguinte forma:
• Grafos, especificando o uso do algoritmo Dijkstra;
• Android, objetivando uma fundamentação para o uso
de ambientes de dispositivos móveis;
• O Google Maps no contexto tecnológico, contribuindo
para o desenvolvimento do aplicativo, possibilitando
o uso mais interativo no desenvolvimento de
habilidades que serão úteis para uma prática
eficiente e eficaz.
INTRODUÇÃO
• Metodologia utilizada, incluindo a implementação
do algoritmo Dijkstra e a sua complexibilidade; e,
• Considerações finais.
• Espera-se que as ideias e concepções
apresentadas neste trabalho tragam valiosas
contribuições no contexto da sociedade atual.
GRAFOS
• Origem de teoria dos Grafos: Originou-se
de jogos e recreações matemática, atribui-
se a sua criação a Leonhard Euler, ao
resolver o problema das pontes de
Königsberg em 1736.
GRAFOS
• Mas foram os problemas acerca de formulas
estruturais de compostos químicos, que A.
Cayley resolveu na segunda metade do século
XIX, que a começaram a desenvolver
(FEOFILOFF, 2005, p.8).
CIDADE DE KÖNIGSBERG
Figura retirada de Patricia Jaques
GRAFOS
• Conceito: Conjunto de elementos (nós ou
vértices) que se relacionam de alguma maneira
através de arcos ou arestas, tais relações podem
possuir valor ou não.
O ALGORITMO DE DIJKSTRA
• O Algoritmo de Dijkstra foi desenvolvido
em 1959 por Edsger Wybe Dijkstra, de
onde vem a origem do nome. Este
algoritmo se aplica em grafos simples para
determinar o caminho mínimo entre dois
vértices.
O ALGORITMO DE DIJKSTRA
• Ele é desenvolvido em uma árvore de
caminhos mínimos. Quando o grafo não
for simples, então procura-se transformá-
lo em um grafo simples eliminando seus
laços e eventuais arestas múltiplas
deixando apenas a com o peso menor.
COMPLEXIDADE
• A complexidade do Algoritmo de Dijkstra é
O(n²), onde n é a quantidade de vértices
do grafo.
FUNCIONAMENTO DO ALGORITMO DE
DIJKSTRA, UTILIZANDO PONTOS
TURÍSTICOS DE SÃO LUÍS-MA
Fonte: https://maps.google.com.br/maps?hl=pt-BR&tab=wl
FUNCIONAMENTO DO ALGORITMO DE
DIJKSTRA
Fonte: https://maps.google.com.br/maps?hl=pt-BR&tab=wl modificado pelos autores
8,6km
29,5km
15km
23,4km
21,3km
28km
17km
26,7km
FUNCIONAMENTO DO ALGORITMO DE
DIJKSTRA
Fonte: https://maps.google.com.br/maps?hl=pt-BR&tab=wl modificado pelos autores
8,6km
29,5km
15km
23,4km
21,3km
28km
17km
26,7km
FUNCIONAMENTO DO ALGORITMO DE
DIJKSTRA
Fonte: https://maps.google.com.br/maps?hl=pt-BR&tab=wl modificado pelos autores
8,6km
29,5km
15km
23,4km
21,3km
28km
17km
26,7km
ANDROID
• É um sistema operacional baseado no núcleo
Linux para dispositivos móveis.
• Foi desenvolvido pela Android, adquirida pelo
Google em julho de 2005. Em novembro de
2007, foi formada a Open Handset Alliance –
um consórcio compost inicialmente de 34
empresas e agora contando com 81
(www.openhandsetalliance.com/oha_member
s.html.
VISÃO GERAL DO ANDROID
A primeira geração de telefones Android foi
lançada em outubro de 2008. De acordo
com a Gartner, as vendas de telefones
baseados em Android nos Estados Unidos
aumentaram 707% no primeiro trimestre de
2010, em relação ao ano anterior.
VISÃO GERAL DO ANDROID
Em março de 2011, um estudo da Nielsen
mostrou que o Android tinha 37% da fatia
de mercado de smartphones nos Estados
Unidos, comparados com 27% do iPhone da
Apple e 22% do Blackberry.
CÓDIGO-FONTE ABERTO
• Uma vantagem de desenvolver aplicativos
Android é a franqueza (ou grau de
abertura) da plataforma. O sistema
operacional é de código-fonte aberto e
gratuito. Isso permite ver o código-fonte
do Android e como seus recursos são
implementados.
JAVA
• Os aplicativos Android são desenvolvidos com
Java – a linguagem de programação mais usada
do mundo. Essa linguagem foi uma escolha
lógica para a plataforma Android, porque é
poderosa, gratuita e de código-fonte aberto.
• Permite desenvolver aplicativos que são
executados em uma variedade de dispositivos,
sem nenhum código específico para a
plataforma.
ANDROID E SUAS VERSÕES
• Primeira versão do Android foi a 1.6;
• Em janeiro de 2010, o Google lançou o Android
2.1;
• Maio de 2010, chega o Android 2.2;
• Android 2.3 chega para os smartphones em
dezembro de 2010;
• Para os tablets, o Android 3.0 chega em janeiro
de 2011, que é a versão mais recente do
sistema dedicado aos smartphones.
GOOGLE MAPS
• É um sistema para visualização de mapas na
Web, com o diferencial de ser rápido e
interativo. A localização dos pontos nos mapas é
feita a partir de sua latitude e longitude e esta
informação é administrada pelo próprio usuário.
DIFERENCIAL DO GOOGLE MAPS
• Existe uma API (Application Programmming
Interface) para JavaScript, que possibilita a sua
utilização e integração, gratuitamente, com
qualquer página Web.
• Interatividade é um outro diferencial que o
Google Maps oferece.
REQUISITOS DE SISTEMA PARA
SOFTWARE E HARDWARE
• Para desenvolver aplicativos Android, precisa-
se de um sistema Windows®, Linux ou Mac
OS X.
• Aplicativos usados para o desenvolvimento:
– JDK (Java Development Kit), versão 5 ou 6;
– Eclipse 3.6.2 (Helios) IDE for Java Developers;
– SDK ( Software Development Kit) do Android,
versão 4.1.2;
– ADT (Android Development Tools) Plugin for
Eclipse.
INSTALANDO A(S) PLATAFORMA(S)
ANDROID
• Na IDE Eclipse - Selecione Window > Android SDK
and AVD Manager para exibir a janela Android
SDK and AVD Manager (Fig. 1).
INSTALANDO A(S) PLATAFORMA(S)
ANDROID
Selecione Available Packages . A coluna esquerda da
janela mostra Android Repository e Third party Add-
ons como opções. Expanda o nó Android Repository
para ver a lista de ferramentas e plataformas Android
disponíveis. Vamos usar os itens do Android
Repository marcados na Figura 2.
INSTALANDO A(S) PLATAFORMA(S)
ANDROID
• Selecionando pacotes do Android Repository
para instalar;
• Selecionando pacotes do Third party Add-ons
para instalação;
INSTALANDO A(S) PLATAFORMA(S)
ANDROID
Clique no botão Install Selected para exibir a janela
Choose Packages to Install (Fig. 4). Clique no botão
de opção Accept All e, em seguida, clique no botão
Install . A janela Installing Archives (Fig. 5) vai
aparecer para mostrar o status do processo de
instalação.
INSTALANDO A(S) PLATAFORMA(S)
ANDROID
• Quando o processo de instalação terminar, você
pode ver os itens instalados clicando em
Installed Packages na coluna esquerda da
janela Android SDK and AVD Manager . É preciso
fechar e reabrir o Eclipse.
USO NO EMULADOR DO ANDROID
• O emulador do Android , incluído no SDK do
Android, permite executar aplicativos Android em
um ambiente simulado em seu computador, em vez
do dispositivo Android real. Antes de executar um
aplicativo no emulador, você precisa criar um AVD
(Android Virtual Device ou Dispositivo Android
Virtual) , que define as características do
dispositivo no qual se deseja fazer o teste,
incluindo o tamanho da tela em pixels, a densidade
de pixels, o tamanho físico da tela, o tamanho do
cartão SD para armazenamento de dados e muito
mais.
USO NO EMULADOR DO ANDROID
• No Eclipse -
Selecione Window >
Android SDK and AVD
Manager para exibir
a janela Android SDK
and AVD Manager
(Fig. 1). Por padrão,
Virtual Devices é
selecionado na
coluna esquerda da
janela.
TELAS APP TURISMO SÃO LUÍS - MA
COMPLEXIDADE
• A complexidade do algoritmo de Dijkstra
implementando a fila como uma lista não ordenada
é O(n²), onde n é o número de vértices do grafo de
entrada.
• Esta variação é geralmente referenciada como
“implementação ingênua"(naive implementation).
• Talvez a primeira e mais significativa contribuição
para reduzir a complexidade da implementação
ingênua tenha sido feita por Donald Johnson que
introduziu a estrutura de dados denominada heap k-
ário.
COMPLEXIDADE
• Esta variação melhora o comportamento
assintótico do algoritmo de Dijkstra para grafos
esparsos. Implementando-se este algoritmo com
um heap binário (k = 2), sua complexidade é
melhorada de O(n2) para O((m + n) log n),
onde m denota o número de arestas.
• O App Turismo implementa uma algortimo
Dijkstra usando pilhas e possui uma
complexidade O((m+n) log n).
TEMPO DE EXECUÇÃO
- Os testes do app foram realizados em um tablet
PC, com as seguintes características:
- CPU BoxChip 1.5GHz
- Mémoria RAM: 512 MB DDRII
- Memória interna: 8GB(flash)
- Sistema Operacional: Android 4.0
TEMPO DE EXECUÇÃO
0
0.01
0.02
0.03
0.04
0.05
0.06
0.07
0.08
0.09
0.1
0 5 10 15 20 25 30 35
Tempo
Repetições
Tempo Menor Caminho Dijkstra
Series1
CONSIDERAÇÕES FINAIS
• Através do estudo de grafos, percebe-se que
encontrar caminhos mínimos torna-se uma
tarefa passível de diferentes abordagens.
• O algoritmo de Dijkstra, principal foco deste
trabalho, e sem dúvida o mais aplicado em
problemas de caminhos mínimos do mundo real.
•
REFERÊNCIAS
CORMEN, Thomas H. et al., Algoritmos: teoria e prática : Elsevier. Rio de Janeiro 2012;
DUARTE, Alexandre. Algoritmos Avançados. Disponível em: www.slideshare.net/alexandrend/grafos-
parte-1-introduo. Acesso em: 23 de dez de 2012;
FEOFILOFF, Paulo. Algoritmos para Grafos em C via Sedgewick. Disponível em:
http://www.ime.usp.br/~pf/algoritmos_para_grafos/ Acesso em: 22 de dez 2012;
LAFORE, ROBERT. Estruturas de Dados & Algoritmos em Java. editora ciência moderna, 2004.
NEVES, Patrícia Takaki. Variações do algoritmo de Dijkstra-Campinas, [S.P.:s.n.], 2007;
NONATO, Luis G. Algoritmo de Dijkstra. Disponível em: http://www.lcad.icmc.usp.br. Acessado em:
23 de dez de 2012;
Teoria dos Grafos. Disponível em: erinaldosn.files.wordpress.com/2011/02/aula-1-conceitos.pdf. Acesso
em: 23 de dez de 2012;
ZIVIANI, Nivio. Projeto de algoritmos: com implementação em Pascal e C. 3. ed. rev. e ampl.
Cegage Learning, São Paulo 2011.

Weitere ähnliche Inhalte

Ähnlich wie Algoritmo Dijkstra para rotas turísticas em São Luís

Aula01 - introdução, Activity
Aula01 - introdução,  ActivityAula01 - introdução,  Activity
Aula01 - introdução, ActivityArthur Emanuel
 
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEISLIVRO PROPRIETÁRIO - PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEISOs Fantasmas !
 
Android-Juliana-slides.ppt
Android-Juliana-slides.pptAndroid-Juliana-slides.ppt
Android-Juliana-slides.pptMarcelo Silva
 
Guião de vídeo análise espacial francisco javier cervigon ruckauer
Guião de vídeo análise espacial francisco javier cervigon ruckauerGuião de vídeo análise espacial francisco javier cervigon ruckauer
Guião de vídeo análise espacial francisco javier cervigon ruckauerFrancisco Javier Cervigon Ruckauer
 
Minicurso de Desenvolvimento Android - Iguatu - CE
Minicurso de Desenvolvimento Android - Iguatu - CEMinicurso de Desenvolvimento Android - Iguatu - CE
Minicurso de Desenvolvimento Android - Iguatu - CERonildo Oliveira
 
Computação Gráfica - Introdução ao OpenGL
Computação Gráfica - Introdução ao OpenGLComputação Gráfica - Introdução ao OpenGL
Computação Gráfica - Introdução ao OpenGLTony Alexander Hild
 
Ambiente de Simulação Gráfica 3D para Ensino da Arquitetura de Processadores
Ambiente de Simulação Gráfica 3D para Ensino da Arquitetura de ProcessadoresAmbiente de Simulação Gráfica 3D para Ensino da Arquitetura de Processadores
Ambiente de Simulação Gráfica 3D para Ensino da Arquitetura de ProcessadoresEduardo de Lucena Falcão
 
Apresentacao TCC - TCC - Desenvolvimento aplicativo para o ROS (Robotic Opera...
Apresentacao TCC - TCC - Desenvolvimento aplicativo para o ROS (Robotic Opera...Apresentacao TCC - TCC - Desenvolvimento aplicativo para o ROS (Robotic Opera...
Apresentacao TCC - TCC - Desenvolvimento aplicativo para o ROS (Robotic Opera...Caio Teixeira de Farias
 
PROCC UFS.br :: Apresentação Disciplina PGPS - Planejamento e Gerencia de Pro...
PROCC UFS.br :: Apresentação Disciplina PGPS - Planejamento e Gerencia de Pro...PROCC UFS.br :: Apresentação Disciplina PGPS - Planejamento e Gerencia de Pro...
PROCC UFS.br :: Apresentação Disciplina PGPS - Planejamento e Gerencia de Pro...Rogerio P C do Nascimento
 
Apresentação de Dissertação Mestrado em Ciências da Computação
Apresentação de Dissertação Mestrado em Ciências da ComputaçãoApresentação de Dissertação Mestrado em Ciências da Computação
Apresentação de Dissertação Mestrado em Ciências da ComputaçãoJuan José Rodriguez MsC.
 
Simulador Eletromagnético em um Ambiente de Grades Computacionais
Simulador Eletromagnético em um Ambiente de Grades ComputacionaisSimulador Eletromagnético em um Ambiente de Grades Computacionais
Simulador Eletromagnético em um Ambiente de Grades ComputacionaisIgor José F. Freitas
 
Tcc final - fsa2006
Tcc   final - fsa2006Tcc   final - fsa2006
Tcc final - fsa2006edson_mcz
 

Ähnlich wie Algoritmo Dijkstra para rotas turísticas em São Luís (20)

Android - Conceito e Arquitetura
Android - Conceito e ArquiteturaAndroid - Conceito e Arquitetura
Android - Conceito e Arquitetura
 
Aula01 - introdução, Activity
Aula01 - introdução,  ActivityAula01 - introdução,  Activity
Aula01 - introdução, Activity
 
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEISLIVRO PROPRIETÁRIO - PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
 
Android-Juliana-slides.ppt
Android-Juliana-slides.pptAndroid-Juliana-slides.ppt
Android-Juliana-slides.ppt
 
Globus Toolkit
Globus ToolkitGlobus Toolkit
Globus Toolkit
 
Android
AndroidAndroid
Android
 
Amostra algoritmos funcionais-1
Amostra algoritmos funcionais-1Amostra algoritmos funcionais-1
Amostra algoritmos funcionais-1
 
Amostra algoritmos funcionais-1
Amostra algoritmos funcionais-1Amostra algoritmos funcionais-1
Amostra algoritmos funcionais-1
 
Guião de vídeo análise espacial francisco javier cervigon ruckauer
Guião de vídeo análise espacial francisco javier cervigon ruckauerGuião de vídeo análise espacial francisco javier cervigon ruckauer
Guião de vídeo análise espacial francisco javier cervigon ruckauer
 
Minicurso de Desenvolvimento Android - Iguatu - CE
Minicurso de Desenvolvimento Android - Iguatu - CEMinicurso de Desenvolvimento Android - Iguatu - CE
Minicurso de Desenvolvimento Android - Iguatu - CE
 
Computação Gráfica - Introdução ao OpenGL
Computação Gráfica - Introdução ao OpenGLComputação Gráfica - Introdução ao OpenGL
Computação Gráfica - Introdução ao OpenGL
 
Ambiente de Simulação Gráfica 3D para Ensino da Arquitetura de Processadores
Ambiente de Simulação Gráfica 3D para Ensino da Arquitetura de ProcessadoresAmbiente de Simulação Gráfica 3D para Ensino da Arquitetura de Processadores
Ambiente de Simulação Gráfica 3D para Ensino da Arquitetura de Processadores
 
Revista Programar 01
Revista Programar 01Revista Programar 01
Revista Programar 01
 
Apresentacao TCC - TCC - Desenvolvimento aplicativo para o ROS (Robotic Opera...
Apresentacao TCC - TCC - Desenvolvimento aplicativo para o ROS (Robotic Opera...Apresentacao TCC - TCC - Desenvolvimento aplicativo para o ROS (Robotic Opera...
Apresentacao TCC - TCC - Desenvolvimento aplicativo para o ROS (Robotic Opera...
 
PROCC UFS.br :: Apresentação Disciplina PGPS - Planejamento e Gerencia de Pro...
PROCC UFS.br :: Apresentação Disciplina PGPS - Planejamento e Gerencia de Pro...PROCC UFS.br :: Apresentação Disciplina PGPS - Planejamento e Gerencia de Pro...
PROCC UFS.br :: Apresentação Disciplina PGPS - Planejamento e Gerencia de Pro...
 
Apresentação de Dissertação Mestrado em Ciências da Computação
Apresentação de Dissertação Mestrado em Ciências da ComputaçãoApresentação de Dissertação Mestrado em Ciências da Computação
Apresentação de Dissertação Mestrado em Ciências da Computação
 
Simulador Eletromagnético em um Ambiente de Grades Computacionais
Simulador Eletromagnético em um Ambiente de Grades ComputacionaisSimulador Eletromagnético em um Ambiente de Grades Computacionais
Simulador Eletromagnético em um Ambiente de Grades Computacionais
 
C poli c definitivo
C poli c definitivoC poli c definitivo
C poli c definitivo
 
Tcc final - fsa2006
Tcc   final - fsa2006Tcc   final - fsa2006
Tcc final - fsa2006
 
Credes e CEsg
Credes e CEsgCredes e CEsg
Credes e CEsg
 

Kürzlich hochgeladen

HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024Sandra Pratas
 
Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Centro Jacques Delors
 
Simulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdfSimulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdfEditoraEnovus
 
William J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfWilliam J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfAdrianaCunha84
 
A Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesA Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesMary Alvarenga
 
ALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolaresALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolaresLilianPiola
 
ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024Jeanoliveira597523
 
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)Mary Alvarenga
 
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOLEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOColégio Santa Teresinha
 
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxSlides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxLuizHenriquedeAlmeid6
 
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptxQUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptxIsabellaGomes58
 
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASBCRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASBAline Santana
 
A experiência amorosa e a reflexão sobre o Amor.pptx
A experiência amorosa e a reflexão sobre o Amor.pptxA experiência amorosa e a reflexão sobre o Amor.pptx
A experiência amorosa e a reflexão sobre o Amor.pptxfabiolalopesmartins1
 
Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.keislayyovera123
 
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdfBRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdfHenrique Pontes
 
O Universo Cuckold - Compartilhando a Esposas Com Amigo.pdf
O Universo Cuckold - Compartilhando a Esposas Com Amigo.pdfO Universo Cuckold - Compartilhando a Esposas Com Amigo.pdf
O Universo Cuckold - Compartilhando a Esposas Com Amigo.pdfPastor Robson Colaço
 
Regência Nominal e Verbal português .pdf
Regência Nominal e Verbal português .pdfRegência Nominal e Verbal português .pdf
Regência Nominal e Verbal português .pdfmirandadudu08
 
Habilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasHabilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasCassio Meira Jr.
 
Aula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologia
Aula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologiaAula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologia
Aula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologiaaulasgege
 

Kürzlich hochgeladen (20)

HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
 
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA -
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA      -XI OLIMPÍADAS DA LÍNGUA PORTUGUESA      -
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA -
 
Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029
 
Simulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdfSimulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdf
 
William J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfWilliam J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdf
 
A Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesA Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das Mães
 
ALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolaresALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolares
 
ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024
 
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
 
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOLEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
 
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxSlides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
 
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptxQUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
 
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASBCRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
 
A experiência amorosa e a reflexão sobre o Amor.pptx
A experiência amorosa e a reflexão sobre o Amor.pptxA experiência amorosa e a reflexão sobre o Amor.pptx
A experiência amorosa e a reflexão sobre o Amor.pptx
 
Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.
 
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdfBRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
 
O Universo Cuckold - Compartilhando a Esposas Com Amigo.pdf
O Universo Cuckold - Compartilhando a Esposas Com Amigo.pdfO Universo Cuckold - Compartilhando a Esposas Com Amigo.pdf
O Universo Cuckold - Compartilhando a Esposas Com Amigo.pdf
 
Regência Nominal e Verbal português .pdf
Regência Nominal e Verbal português .pdfRegência Nominal e Verbal português .pdf
Regência Nominal e Verbal português .pdf
 
Habilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasHabilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e Específicas
 
Aula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologia
Aula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologiaAula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologia
Aula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologia
 

Algoritmo Dijkstra para rotas turísticas em São Luís

  • 1. UNIVERSIDADE ESTADUAL DO MARANHÃO - UEMA CENTRO DE CIÊNCIAS TECNOLÓGICA- CCT PROGRAMA DE PÓS-GRADUAÇÃO MESTRADO EM ENGENHARIA DA COMPUTAÇÃO E SISTEMAS DISCIPLINA: PROJETO DE ALGORITMO Grafos: algoritmo de busca do menor caminho entre os pontos turísticos de São Luís – Ma, usando Dijkstra Francisco Adelton Alves Ribeiro João Batista Paiva Junior José Wilker Luz Lidinalva Almada Coutinho Prof. Josenildo Silva
  • 2. ROTEIRO  INTRODUÇÃO  GRAFOS  ANDROID  GOOGLE MAPS  IMPLEMENTAÇÃO E COMPLEXIDADE  CONSIDERAÇÕES FINAIS
  • 3. INTRODUÇÃO • Das inúmeras utilizações dos grafos como: análise de circuitos, análise e planejamento de projetos, genética, linguística, ciências sociais, robótica entre outras, uma delas é a otimização de percursos. • Por meio da conjugação do uso de grafo e do Algoritmo de Dijkstra é possível calcular o caminho mais curto para realizar determinado percurso.
  • 4. INTRODUÇÃO  Um dos algoritmos mais utilizados para resolver o problema do Caminho Mínimo é o algoritmo de Dijkstra. Este algoritmo garante a obtenção do caminho ótimo entre um nó de referência do grafo e os demais.  Nas últimas décadas, a revolução das comunicações tem provocado uma explosão na comunicação sem fio.
  • 5. INTRODUÇÃO  Em especial smartphones, dispositivos e-reader e tablets.  Com ênfase no Sistema Operacional Android, que vem impulsionando a inovação na tecnologia móvel.  Os aplicativos Android são desenvolvidos com Java.  O Java é usado para desenvolver aplicativos empresariais de larga escala.
  • 6. INTRODUÇÃO Além de permitir desenvolver aplicativos utilizando grafos que são executados em uma variedade de dispositivos, sem nenhum código específico para a plataforma. PROBLEMA Como conseguir o menor caminho entre os principais pontos turísticos de São Luís-Ma, utililizando o algoritmo Dijkstra.
  • 7. INTRODUÇÃO OBJETIVOS • integrar técnicas computacionais de programação, tendo como base o algoritmo de Dijsktra para a solução de problemas, usando cálculo para o custo mínimo com informações obtidas através do uso do API do Google Maps, o qual facilita a busca de pontos turísticos importantes na cidade de São Luís-MA. • descrever o funcionamento do referido algoritmo, permitindo a sua implementação a nível informático;
  • 8. INTRODUÇÃO • apresentar detalhes de sua implementação de grafos, detalhando as estruturas de dados utilizadas e a API (métodos de criar, adicionar vértices, arestas, percorrer etc.); • fazer uma análise teórica sobre correção e a complexidade do algoritmo utilizado para resolver o problema proposto;
  • 9. INTRODUÇÃO • fazer previsões teóricas sobre limite de tamanho de problema resolvível e quantidade de tempo necessário; • realizar experimentos para verificar se a performance das operações implementadas estão de acordo com análise teórica; • utilizar conjuntos de dados grandes o suficiente para demonstrar que sua análise teoria esta correta. • Nesse trabalho, propõe-se uma metodologia para determinar o caminho de menor custo entre dois pontos em uma dada região.
  • 10. INTRODUÇÃO • Para alcance dos objetivos propostos neste artigo, é necessário uma sistematização das informações relevantes para a construção do aplicativo para dispositivos móveis que garanta boa interatividade durante todo processo de interação. • busca-se desenvolver uma ferramenta computacional que garanta aos usuários de dispositivos móveis utilizarem a plataforma Android para determinar o caminho de menor custo entre os principais pontos turísticos da cidade de São Luís-Ma.
  • 11. INTRODUÇÃO O artigo está estruturado da seguinte forma: • Grafos, especificando o uso do algoritmo Dijkstra; • Android, objetivando uma fundamentação para o uso de ambientes de dispositivos móveis; • O Google Maps no contexto tecnológico, contribuindo para o desenvolvimento do aplicativo, possibilitando o uso mais interativo no desenvolvimento de habilidades que serão úteis para uma prática eficiente e eficaz.
  • 12. INTRODUÇÃO • Metodologia utilizada, incluindo a implementação do algoritmo Dijkstra e a sua complexibilidade; e, • Considerações finais. • Espera-se que as ideias e concepções apresentadas neste trabalho tragam valiosas contribuições no contexto da sociedade atual.
  • 13. GRAFOS • Origem de teoria dos Grafos: Originou-se de jogos e recreações matemática, atribui- se a sua criação a Leonhard Euler, ao resolver o problema das pontes de Königsberg em 1736.
  • 14. GRAFOS • Mas foram os problemas acerca de formulas estruturais de compostos químicos, que A. Cayley resolveu na segunda metade do século XIX, que a começaram a desenvolver (FEOFILOFF, 2005, p.8).
  • 15. CIDADE DE KÖNIGSBERG Figura retirada de Patricia Jaques
  • 16. GRAFOS • Conceito: Conjunto de elementos (nós ou vértices) que se relacionam de alguma maneira através de arcos ou arestas, tais relações podem possuir valor ou não.
  • 17. O ALGORITMO DE DIJKSTRA • O Algoritmo de Dijkstra foi desenvolvido em 1959 por Edsger Wybe Dijkstra, de onde vem a origem do nome. Este algoritmo se aplica em grafos simples para determinar o caminho mínimo entre dois vértices.
  • 18. O ALGORITMO DE DIJKSTRA • Ele é desenvolvido em uma árvore de caminhos mínimos. Quando o grafo não for simples, então procura-se transformá- lo em um grafo simples eliminando seus laços e eventuais arestas múltiplas deixando apenas a com o peso menor.
  • 19. COMPLEXIDADE • A complexidade do Algoritmo de Dijkstra é O(n²), onde n é a quantidade de vértices do grafo.
  • 20. FUNCIONAMENTO DO ALGORITMO DE DIJKSTRA, UTILIZANDO PONTOS TURÍSTICOS DE SÃO LUÍS-MA Fonte: https://maps.google.com.br/maps?hl=pt-BR&tab=wl
  • 21. FUNCIONAMENTO DO ALGORITMO DE DIJKSTRA Fonte: https://maps.google.com.br/maps?hl=pt-BR&tab=wl modificado pelos autores 8,6km 29,5km 15km 23,4km 21,3km 28km 17km 26,7km
  • 22. FUNCIONAMENTO DO ALGORITMO DE DIJKSTRA Fonte: https://maps.google.com.br/maps?hl=pt-BR&tab=wl modificado pelos autores 8,6km 29,5km 15km 23,4km 21,3km 28km 17km 26,7km
  • 23. FUNCIONAMENTO DO ALGORITMO DE DIJKSTRA Fonte: https://maps.google.com.br/maps?hl=pt-BR&tab=wl modificado pelos autores 8,6km 29,5km 15km 23,4km 21,3km 28km 17km 26,7km
  • 24. ANDROID • É um sistema operacional baseado no núcleo Linux para dispositivos móveis. • Foi desenvolvido pela Android, adquirida pelo Google em julho de 2005. Em novembro de 2007, foi formada a Open Handset Alliance – um consórcio compost inicialmente de 34 empresas e agora contando com 81 (www.openhandsetalliance.com/oha_member s.html.
  • 25. VISÃO GERAL DO ANDROID A primeira geração de telefones Android foi lançada em outubro de 2008. De acordo com a Gartner, as vendas de telefones baseados em Android nos Estados Unidos aumentaram 707% no primeiro trimestre de 2010, em relação ao ano anterior.
  • 26. VISÃO GERAL DO ANDROID Em março de 2011, um estudo da Nielsen mostrou que o Android tinha 37% da fatia de mercado de smartphones nos Estados Unidos, comparados com 27% do iPhone da Apple e 22% do Blackberry.
  • 27. CÓDIGO-FONTE ABERTO • Uma vantagem de desenvolver aplicativos Android é a franqueza (ou grau de abertura) da plataforma. O sistema operacional é de código-fonte aberto e gratuito. Isso permite ver o código-fonte do Android e como seus recursos são implementados.
  • 28. JAVA • Os aplicativos Android são desenvolvidos com Java – a linguagem de programação mais usada do mundo. Essa linguagem foi uma escolha lógica para a plataforma Android, porque é poderosa, gratuita e de código-fonte aberto. • Permite desenvolver aplicativos que são executados em uma variedade de dispositivos, sem nenhum código específico para a plataforma.
  • 29. ANDROID E SUAS VERSÕES • Primeira versão do Android foi a 1.6; • Em janeiro de 2010, o Google lançou o Android 2.1; • Maio de 2010, chega o Android 2.2; • Android 2.3 chega para os smartphones em dezembro de 2010; • Para os tablets, o Android 3.0 chega em janeiro de 2011, que é a versão mais recente do sistema dedicado aos smartphones.
  • 30. GOOGLE MAPS • É um sistema para visualização de mapas na Web, com o diferencial de ser rápido e interativo. A localização dos pontos nos mapas é feita a partir de sua latitude e longitude e esta informação é administrada pelo próprio usuário.
  • 31. DIFERENCIAL DO GOOGLE MAPS • Existe uma API (Application Programmming Interface) para JavaScript, que possibilita a sua utilização e integração, gratuitamente, com qualquer página Web. • Interatividade é um outro diferencial que o Google Maps oferece.
  • 32. REQUISITOS DE SISTEMA PARA SOFTWARE E HARDWARE • Para desenvolver aplicativos Android, precisa- se de um sistema Windows®, Linux ou Mac OS X. • Aplicativos usados para o desenvolvimento: – JDK (Java Development Kit), versão 5 ou 6; – Eclipse 3.6.2 (Helios) IDE for Java Developers; – SDK ( Software Development Kit) do Android, versão 4.1.2; – ADT (Android Development Tools) Plugin for Eclipse.
  • 33. INSTALANDO A(S) PLATAFORMA(S) ANDROID • Na IDE Eclipse - Selecione Window > Android SDK and AVD Manager para exibir a janela Android SDK and AVD Manager (Fig. 1).
  • 34. INSTALANDO A(S) PLATAFORMA(S) ANDROID Selecione Available Packages . A coluna esquerda da janela mostra Android Repository e Third party Add- ons como opções. Expanda o nó Android Repository para ver a lista de ferramentas e plataformas Android disponíveis. Vamos usar os itens do Android Repository marcados na Figura 2.
  • 35. INSTALANDO A(S) PLATAFORMA(S) ANDROID • Selecionando pacotes do Android Repository para instalar; • Selecionando pacotes do Third party Add-ons para instalação;
  • 36. INSTALANDO A(S) PLATAFORMA(S) ANDROID Clique no botão Install Selected para exibir a janela Choose Packages to Install (Fig. 4). Clique no botão de opção Accept All e, em seguida, clique no botão Install . A janela Installing Archives (Fig. 5) vai aparecer para mostrar o status do processo de instalação.
  • 37. INSTALANDO A(S) PLATAFORMA(S) ANDROID • Quando o processo de instalação terminar, você pode ver os itens instalados clicando em Installed Packages na coluna esquerda da janela Android SDK and AVD Manager . É preciso fechar e reabrir o Eclipse.
  • 38. USO NO EMULADOR DO ANDROID • O emulador do Android , incluído no SDK do Android, permite executar aplicativos Android em um ambiente simulado em seu computador, em vez do dispositivo Android real. Antes de executar um aplicativo no emulador, você precisa criar um AVD (Android Virtual Device ou Dispositivo Android Virtual) , que define as características do dispositivo no qual se deseja fazer o teste, incluindo o tamanho da tela em pixels, a densidade de pixels, o tamanho físico da tela, o tamanho do cartão SD para armazenamento de dados e muito mais.
  • 39. USO NO EMULADOR DO ANDROID • No Eclipse - Selecione Window > Android SDK and AVD Manager para exibir a janela Android SDK and AVD Manager (Fig. 1). Por padrão, Virtual Devices é selecionado na coluna esquerda da janela.
  • 40. TELAS APP TURISMO SÃO LUÍS - MA
  • 41. COMPLEXIDADE • A complexidade do algoritmo de Dijkstra implementando a fila como uma lista não ordenada é O(n²), onde n é o número de vértices do grafo de entrada. • Esta variação é geralmente referenciada como “implementação ingênua"(naive implementation). • Talvez a primeira e mais significativa contribuição para reduzir a complexidade da implementação ingênua tenha sido feita por Donald Johnson que introduziu a estrutura de dados denominada heap k- ário.
  • 42. COMPLEXIDADE • Esta variação melhora o comportamento assintótico do algoritmo de Dijkstra para grafos esparsos. Implementando-se este algoritmo com um heap binário (k = 2), sua complexidade é melhorada de O(n2) para O((m + n) log n), onde m denota o número de arestas. • O App Turismo implementa uma algortimo Dijkstra usando pilhas e possui uma complexidade O((m+n) log n).
  • 43. TEMPO DE EXECUÇÃO - Os testes do app foram realizados em um tablet PC, com as seguintes características: - CPU BoxChip 1.5GHz - Mémoria RAM: 512 MB DDRII - Memória interna: 8GB(flash) - Sistema Operacional: Android 4.0
  • 44. TEMPO DE EXECUÇÃO 0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1 0 5 10 15 20 25 30 35 Tempo Repetições Tempo Menor Caminho Dijkstra Series1
  • 45. CONSIDERAÇÕES FINAIS • Através do estudo de grafos, percebe-se que encontrar caminhos mínimos torna-se uma tarefa passível de diferentes abordagens. • O algoritmo de Dijkstra, principal foco deste trabalho, e sem dúvida o mais aplicado em problemas de caminhos mínimos do mundo real. •
  • 46. REFERÊNCIAS CORMEN, Thomas H. et al., Algoritmos: teoria e prática : Elsevier. Rio de Janeiro 2012; DUARTE, Alexandre. Algoritmos Avançados. Disponível em: www.slideshare.net/alexandrend/grafos- parte-1-introduo. Acesso em: 23 de dez de 2012; FEOFILOFF, Paulo. Algoritmos para Grafos em C via Sedgewick. Disponível em: http://www.ime.usp.br/~pf/algoritmos_para_grafos/ Acesso em: 22 de dez 2012; LAFORE, ROBERT. Estruturas de Dados & Algoritmos em Java. editora ciência moderna, 2004. NEVES, Patrícia Takaki. Variações do algoritmo de Dijkstra-Campinas, [S.P.:s.n.], 2007; NONATO, Luis G. Algoritmo de Dijkstra. Disponível em: http://www.lcad.icmc.usp.br. Acessado em: 23 de dez de 2012; Teoria dos Grafos. Disponível em: erinaldosn.files.wordpress.com/2011/02/aula-1-conceitos.pdf. Acesso em: 23 de dez de 2012; ZIVIANI, Nivio. Projeto de algoritmos: com implementação em Pascal e C. 3. ed. rev. e ampl. Cegage Learning, São Paulo 2011.