Buscar

Busca de caminho mínimo na computação

Prévia do material em texto

Busca de caminho mínimo na computação
Diego Caiena Rodrigues, Luiz Felipe C. Carvalho, Gabriel Carvalho Pinto,
Rodrigo F. P. Oliveira, Rômulo G. S. Sá, Wagner S. de Oliveira Jr
Instituto Ciberespacial – Universidade Federal Rural da Amazônia (UFRA)
{rodrigoacademy2018,romulo.gabss,caienawork,lfcunha.ti,gabrielcarvalhopi
nto123}@gmail.com
Abstract. This article aims to present the main uses of shortest path search
algorithms in the field of computing, which are Network Quality Services and
Vehicle Traffic Routing. Through the presentation of graph theory, the shortest
path problem and its algorithms.
Resumo. Este artigo tem como objetivo apresentar as principais utilizações
dos algoritmos de busca em caminhos mínimos na área da computação, que
são Serviços de Qualidade de Redes e Roteamento de Tráfego de Veículos.
Através da apresentação da teoria de grafos, do problema de caminho mínimo
e dos seus algoritmos.
1. Introdução
Assim como o, prático e pertinente, questionamento que busca saber o menor tempo
entre uma cidade e outra, ou então sobre o menor caminho até determinado destino,
estamos falando do Problema de Caminho Mínimo, um dos, devido a sua natureza
genérica, problemas mais estudados em meio a academia nas mais diversas áreas, desde
de Engenharia de transportes à Inteligência Artificial, sendo principalmente um assunto
contido na Teoria de Grafos.
A busca de caminho mínimo mesmo sendo popular em muitas das problemáticas
que podem ser representadas em grafos ou rede, são poucos os algoritmos mais
conhecidos, como: Algoritmo de Dijkstra e o de Bellman-Ford. Dentre todas as áreas
nas quais o Problema de Caminho Mínimo pode ser empregado como parte de
aplicações computacionais, conforme as literaturas pesquisadas, quais algoritmos de
busca de caminho mínimo são mais usados e em que áreas da computação são mais
comumente aplicadas é o que abordaremos no presente trabalho.
2. Embasamento Teórico
2.1. Grafos
Surgida a partir dos estudos de Euler, Kirchhoff e Cayley, a teoria dos grafos possui
aplicação em diversas ciências, principalmente as exatas, podendo ir desde a matemática
até as ciências sociais. O primeiro e mais famoso problema desenvolvido é o das pontes
de Königsberg - que consiste em determinar as possibilidades de transitar por toda a
cidade, tendo o ponto inicial e o final como o mesmo lugar, passando apenas uma vez
por todas as pontes.
De acordo com Prestes (2020) em seu livro introdução à teoria dos grafos:
“um grafo é uma estrutura discreta formada por um conjunto não vazio de vértices V e
um conjunto de arestas A ⊆ P(V ), onde P(V ) = {{x, y} : x, y∈ V } é o conjunto de
todos os pares não ordenados não necessariamente distintos gerados a partir de V [...]”,
ou seja um grafo é uma estrutura na qual seus conjuntos de vértices e arestas não são
vazios. Estas estruturas ainda podem ser classificadas como simples ou multigrafo.
2.2. Caminho mínimo
Como dito anteriormente, a teoria dos grafos pode ser aplicada em diversas áreas do
estudo, isso deve-se, principalmente, a mesma servir como modelo para
resolução/análise de alguns problemas como o escalonamento de processos;
reconhecimento de padrões; roteamento e dentre outras razões que levam a outros
estudos como o de caminho mínimo.
De acordo com Feofiloff (2020): “Um caminho C num grafo é mínimo se não
existe outro caminho que tenha a mesma origem e o mesmo término que C, mas
comprimento menor que o de C.” O foco principal desse conceito é o de encontrar um
caminho que gaste o menor quantitativo de recursos possíveis, indo de um ponto a outro
em um grafo múltiplo, tornando-o, assim, em um grafo simples. Dentro do estudo de
P.C.M., existem diversos métodos de resolução, dentre eles, os principais são os de
Dijkstra e Bellman-Ford.
Ambos os algoritmos tem como principal função identificar o menor caminho
entre os vértices de um determinado conjunto de arestas, sendo estes vértices contendo
valores - ponto principal onde ocorre a grande diferença entre ambos, dado que o de
Bellman-Ford atua em grafos com valores do conjunto de inteiros e o de Dijkstra atua
exclusivamente com valores naturais.
2.3. Algoritmo de Dijkstra
O algoritmo de Dijkstra tem o objetivo de alcançar o menor caminho ou o que possua o
menor custo em unidades de medidas entre todos os vértices de um grafo ponderado. O
processo de visita dos pontos ocorre inicialmente através do vértice de origem até o
mais aproximado e logo em seguida para o mais próximo assim sucessivamente até que
se tenha percorrido todos os pontos do grafo. Segundo Negri (2017) é um dos mais
eficientes quando se trata de solucionar problemas de caminhos curtos, podendo ser
aplicado somente em arestas com os valores dos seus pesos pertencentes ao conjunto
dos números naturais. As aplicações desse algoritmo são amplas podendo ser utilizadas
na construção de redes telefônicas, elétricas, rodoviárias entre outros tipos, além do
roteamento para sistemas de informação de tráfego e na montagem de circuitos
eletrônicos.
2.4. Bellman-Ford
O algoritmo de Bellman-Ford, similar ao que ocorre com Dijkstra, busca o caminho
mais curto de uma única fonte em um grafo ponderado. Bellman-Ford é usado
principalmente para grafos que possuem arestas com peso negativo. O algoritmo tem o
nome de seus criadores: Richard Bellman e Lester Ford Jr, além disso possui as
características de ser mais lento em comparação ao algoritmo de Dijkstra, mas por outro
lado é mais simples de se compreender.
https://www.ime.usp.br/~pf/algoritmos_para_grafos/aulas/paths-and-cycles.html#path
https://www.ime.usp.br/~pf/algoritmos_para_grafos/aulas/graphs.html#digraph
https://www.ime.usp.br/~pf/algoritmos_para_grafos/aulas/paths-and-cycles.html#origin-and-terminus
https://www.ime.usp.br/~pf/algoritmos_para_grafos/aulas/paths-and-cycles.html#origin-and-terminus
3. Revisão de Literatura
3.1. QoS - Qualidade de serviço em redes de computadores
Qualidade de Serviço ou QoS é o efeito coletivo do desempenho de um serviço, o qual
determina o grau de satisfação de um usuário quanto ao que está sendo oferecido
Carlos Alberto Kamienski (2000). O problema que se pretende abordar nesse assunto
utilizando o conceito de caminhos mínimos está relacionado ao roteamento em redes, ou
seja determinar uma rota que usa os recursos de rede de forma eficiente e satisfaz,
simultaneamente, requisitos como a qualidade de conexão ao encontrar o menor
caminho possível a ser percorrido pelos dados de ponta a ponta na rede.
Figura 1.1: Ilustração de uma rede de computadores. Cada segmento
colorido das cores preto e vermelho representaria a aresta de um grafo e
no fim delas há uma estação ou aparelho que representaria o vértice.
3.2. Roteamento de tráfego de veículos
Convenientemente o uso de veículos particulares são a melhor opção na hora de se
deslocar entre dois locais distantes, principalmente quando se pretende economizar
tempo. A criação de aplicações que visam informar ao motorista as condições em que o
tráfego se encontra até o destino desejado, possuem em sua base a implementação
robusta de algoritmos que tendem a informar o menor caminho para se percorrer até o
destino desejado. Um grande exemplo desses sistemas é o Waze, aplicativo “mobile”
que possui navegação por GPS e com recursos que são atualizados em tempo real pelos
próprios usuários.
Figura 1.1: Imagem retirada do aplicativo Waze que demonstra a
navegação por GPS e com seus indicadores de estados sendo
atualizados em tempo real.
4. Metodologia
A pesquisa realizada possui natureza exploratória, acerca do tema de Busca de Caminho
Mínimo, com o objetivo de saber quais os algoritmos, para a presente teoria, são mais
aplicados na computação, por meio da revisão de artigos que corroborem para o
esclarecimento do tema.
Dada a pesquisa, teve como meio de busca para obtenção de artigos o Google
Acadêmico, devido a facilidade proveniente de seu motor de busca e como critério
semântico “Aplicação caminho mínimo”, tendo em vista o aprimoramento da busca não
optando por uma sentençacom coesão entre as palavra e, sim, por usar as palavras como
tags de pesquisa.
5. Considerações finais
A busca pela solução com maior eficiência e que disponibilizará ao serviço e/ou
aplicações computacionais a melhor performance, nos quesitos de resposta e entrega de
resultados processados, usando algoritmos de caminho mínimo, garantirá que as
decisões a serem tomadas automaticamente pelos sistemas e/ou o suporte para o apoio
de tomadas de decisão serão de maior clareza bem como acompanhados de uma maior
confiabilidade no que diz respeito às circunstâncias de aplicação das tecnologias.
Através do avanço dos anos e o aumento da aplicabilidade dos algoritmos de
caminho mínimo desenvolvidos, tendo como alguns de seus principais o algoritmo de
Dijkstra e o algoritmo de Bellman-Ford uma série de áreas como os serviços de redes de
computadores e variantes, serviços de transporte de pessoas e/ou cargas juntamente com
outros, foram beneficiados com os avanços que tais algoritmos proporcionam a
processos na área da computação.
Referências
Prestes, E. (2020) “Matrizes de Adjacência e de Incidência”, In: Introdução à Teoria
dos
Grafos, pages 11-13,
http://www.inf.ufrgs.br/~prestes/Courses/Graph%20Theory/Livro/LivroGrafos.pdf,
July.
Feofiloff, P. (2020) “Caminhos de comprimento mínimo”,
https://www.ime.usp.br/~pf/algoritmos_para_grafos/aulas/shortestpaths.html, July.
“Algoritmo de Bellman-Ford” (2019). In: WIKIPÉDIA, a enciclopédia livre,
https://pt.wikipedia.org/w/index.php?title=Algoritmo_de_Bellman-Ford&oldid=555
62162, July.
Negri, M. A. S. (2017) “Caminhos em um grafo e o algoritmo de Dijkstra”,
https://repositorio.ufsc.br/xmlui/handle/123456789/183409, July.
Uchoa, J. S. (2012) “Caminhos mínimos com recursos limitados”,
https://www.teses.usp.br/teses/disponiveis/45/45134/tde-14012013-165742/publico/
dissertacao_joeluchoa_6659698.pdf#page=45&zoom=100,76,409, July
Kamienski, C.A. & Sadok, D. (2020) “Qualidade de Serviço na Internet”,
In: 19ª JAI (Jornada de Atualização em Informática),
https://www.cin.ufpe.br/~cak/publications/jai2000.pdf July.
http://www.inf.ufrgs.br/~prestes/Courses/Graph%20Theory/Livro/LivroGrafos.pdf
https://www.ime.usp.br/~pf/algoritmos_para_grafos/aulas/shortestpaths.html
https://pt.wikipedia.org/w/index.php?title=Algoritmo_de_Bellman-Ford&oldid=55562162
https://pt.wikipedia.org/w/index.php?title=Algoritmo_de_Bellman-Ford&oldid=55562162
https://repositorio.ufsc.br/xmlui/handle/123456789/183409
https://www.teses.usp.br/teses/disponiveis/45/45134/tde-14012013-165742/publico/dissertacao_joeluchoa_6659698.pdf#page=45&zoom=100,76,409
https://www.teses.usp.br/teses/disponiveis/45/45134/tde-14012013-165742/publico/dissertacao_joeluchoa_6659698.pdf#page=45&zoom=100,76,409
https://www.cin.ufpe.br/~cak/publications/jai2000.pdf

Continue navegando