Post on 05-Jul-2015
5/6/2018 Grafos: Sistema para busca do melhor Caminho - slidepdf.com
http://slidepdf.com/reader/full/grafos-sistema-para-busca-do-melhor-caminho 1/10
UNIVERSIDADE DO SAGRADO CORAÇÃO
JOSÉ RAFAEL SANSALONE ZEMINIAN
PAULO ROBERTO GIFFALI
Sistema para busca do melhor Caminho
BAURU2010
Sumário
5/6/2018 Grafos: Sistema para busca do melhor Caminho - slidepdf.com
http://slidepdf.com/reader/full/grafos-sistema-para-busca-do-melhor-caminho 2/10
1.Introdução ........................................................................................................................6
Objetivos ......................................................................................................................... 6
Objetivo Geral................................................................................................................. 6
Algoritmo de busca A-Estrela (A*) ..................................................................................... 7
Funcionamento Algoritmo ...............................................................................................7
Metodologia ...................................................................................................................... 10
Considerações parciais .................................................................................................... 12
Trabalhos futuros ..........................................................................................................12
Referências ...................................................................................................................... 13
5/6/2018 Grafos: Sistema para busca do melhor Caminho - slidepdf.com
http://slidepdf.com/reader/full/grafos-sistema-para-busca-do-melhor-caminho 3/10
6
1. Introdução
A Teoria dos Grafos é um ramo da matemática que estuda as relações entre
os objetos de um determinado conjunto.
Grafo é uma estrutura G(V,A) onde V é um conjunto não vazio de objetos
denominados vértices e A é um conjunto de pares não ordenados de V, chamado
arestas. Dependendo da aplicação, arestas podem ou não ter direção, pode ser
permitido ou não arestas ligarem um vértice a ele próprio e vértices e/ou arestas podem
ter um peso (numérico) associado. Se as arestas têm uma direção associada (indicada
por uma seta na representação gráfica) temos um grafo direcionado, grafo orientado ou
dígrafo. Um grafo com um único vértice e sem arestas é conhecido como o grafo trivialou "o ponto".
Estruturas que podem ser representadas por grafos estão em toda parte e
muitos problemas de interesse prático podem ser formulados como questões sobre
certos grafos
Objetivos
Objetivo Geral
• O projeto tem como objetivo mostrar o melhor caminho entre uma cidade pré
determinada e uma cidade escolhida pelo usuário em uma determinada região
do estado de São Paulo.
5/6/2018 Grafos: Sistema para busca do melhor Caminho - slidepdf.com
http://slidepdf.com/reader/full/grafos-sistema-para-busca-do-melhor-caminho 4/10
7
Algoritmo de busca A-Estrela (A*)Dos diversos algoritmos de busca disponíveis, o A-star (A*) é o mais utilizado
na busca pelo melhor caminho em um grafo. O A* é um algoritmo que utiliza umafunção heurística que determina a qualidade de cada um dos estados possíveis
(nodos), através de uma estimativa do custo da melhor rota até o destino, passando
pelo nodo atual. O custo determina a qualidade de um nodo, sendo que quanto menor o
custo, melhor a sua qualidade. A função heurística possui o seguinte formato:
f(n)= g(n) +h(n)
Onde:
f(n): valor da função associado a um nodo Q;
g(n): função que calcula o custo da rota do nodo de origem até Q;
h(n): função que prevê o custo da rota de Q até a solução.
O desempenho do A* depende da função heurística selecionada. Uma função
heurística ruim pode reduzir drasticamente a velocidade do algoritmo, ou fazer com que
este produza rotas incorretas. Para que o A* calcule sempre as melhores rotas, a
função heurística deve ser admissível, ou seja, deve fazer estimativas menores do que
o custo real do caminho.
O A*, pelo seu funcionamento, é considerado um algoritmo completo e ótimo,ou seja, dada uma função heurística admissível, se o problema tiver uma solução, esta
vai ser encontrada, e a solução encontrada será sempre a de menor custo.
Funcionamento Algoritmo
O algoritmo A-Star é um algoritmo do tipo “gera-e-testa”, isto é, ele gera uma
possível situação e testa se ela é a solução. Se for, retorna-a com sucesso, caso
contrário, gera outra até encontrar a solução ou não ter mais possíveis situações,
quando então retorna fracasso.
Até aqui, ele parece idêntico ao clássico “tentativa-e-erro” usando força bruta,
onde todas as possibilidades são obrigatoriamente testadas a fim de poder selecionar a
melhor. O que difere ambos os algoritmos está na forma como o A-Star seleciona o
5/6/2018 Grafos: Sistema para busca do melhor Caminho - slidepdf.com
http://slidepdf.com/reader/full/grafos-sistema-para-busca-do-melhor-caminho 5/10
8
próximo nó a ser aberto (no caso, a próxima situação a ser testada), que lhe garante
encontrar em primeiro lugar a melhor solução, podendo então interromper a busca.
Para conseguir isso, o algoritmo A-Star trabalha com a ideia de “busca melhor-
primeiro” e, para determinar qual deverá ser o possível próximo melhor passo para
efetuar todo o seu percurso, ele baseia-se na distância percorrida até encontrar o tal nó
mais a menor distância possível para encontrar o nó-destino, obtida por meio de uma
função heurística.
O que garante o sucesso do algoritmo A-Star é justamente essa análise não
somente da qualidade do nó para chegar no destino, obtida por uma função heurística h
, mas também da qualidade do caminho percorrido até chegar àquele nó a partir daorigem, conhecida aqui como função g. Denominando a soma de ambas de f = g + h,
teremos então que o algoritmo de A-Star funciona da seguinte forma:
Inicialmente temos somente o nó origem em uma lista de nós abertos.
Calculamos valores para g (igual a 0), h (distância heurística até o nó destino) e f (igual
a h). Fechados é inicialmente uma lista vazia;
Verifique se abertos está vazia, se sim, retorne erro e encerre o algoritmo. Caso
contrário, seleciona-se o nó em abertos com o menor valor de f, remove-o e chama-o
de melhor_no. Se este for igual ao nó destino, ou seja, se for solução, retorne a solução
(que pode ser somente este nó ou todo o percurso, o que nos obriga a ter um ponteiro
para cada “nó-pai” a fim de recuperar qual foi o percurso até chegar a ele) com sucesso
e encerra o algoritmo. Caso contrário, precisamos verificar cada sucessor de melhor_no
a fim de procurar o caminho. Inicialmente, calcule o g(sucessor) como sendo
g(melhor_no) + custo para ir de melhor_no a sucessor;
Verifique se sucessor já está em abertos, pois se estiver, precisamos verificar
qual o caminho com melhor g, se o antigo ou o novo. Se o antigo caminho (aquele que
usava o mesmo sucesso anteriormente) for o melhor (com o g menor), simplesmente
ignore este sucessor e vá para o próximo. Caso contrário, faça aquele nó que
representa o sucessor apontar para o melhor_no e atualize seu g para o valor calculado
no item anterior;
5/6/2018 Grafos: Sistema para busca do melhor Caminho - slidepdf.com
http://slidepdf.com/reader/full/grafos-sistema-para-busca-do-melhor-caminho 6/10
9
Se sucessor não estava em abertos, precisamos ainda verificar se o mesmo
não já está em fechados. Se ele estiver, significa que não somente já criamos esse nó,
como também já criamos os seus vizinhos/sucessores, em outras palavras, precisamos
ajustar não somente ele, mas também os que estão após ele em seu percurso. Para tal,verifique se o antigo nó (aquele que você encontrou em fechados) possui menor g que
o atual sucessor. Se sim, não é necessário atualizar, pois o anterior já era um melhor
caminho. Caso contrário, comece atualizando o g daquele nó e fazendo ele apontar
para melhor_no. Depois disso, recursivamente, atualize o valor de g e f em cada um
dos nós sucessores dele, dos nós sucessores de seus sucessores e assim por diante,
de forma recursiva;
Se o nó sucessor analisado até então não está nem em abertos nem em
fechados, coloque-o em abertos e acrescente-o à lista de sucessores de melhor_no.
Após fazer isso para todos os possíveis nós sucessores de melhor_no, coloque
melhor_no na lista de fechados e retorne ao segundo passo/item.
5/6/2018 Grafos: Sistema para busca do melhor Caminho - slidepdf.com
http://slidepdf.com/reader/full/grafos-sistema-para-busca-do-melhor-caminho 7/10
10
MetodologiaA partir do mapa do estado de São Paulo, será extraída uma determinada
região para efetuar o calculo do melhor caminho entre uma cidade pré-definidaaleatóriamente e uma segunda cidade escolhida pelo usuário. Cada cidade será um
vértice do grafo e as arestas serão as ligações entre a cidade escolhida e as cidades
vizinhas que irão representar as distâncias entre elas.
5/6/2018 Grafos: Sistema para busca do melhor Caminho - slidepdf.com
http://slidepdf.com/reader/full/grafos-sistema-para-busca-do-melhor-caminho 8/10
11
Para tal, é necessário que se tenha uma função heurística que seria uma
estimativa de distância em linha reta entre a cidade pré-determinada e a cidade
escolhida.
5/6/2018 Grafos: Sistema para busca do melhor Caminho - slidepdf.com
http://slidepdf.com/reader/full/grafos-sistema-para-busca-do-melhor-caminho 9/10
12
Considerações parciaisEsperamos através do projeto a ser realizado proporcionar ao deficiente físico
motor melhoras significativas nas rotinas e funções desempenhadas durante o seu dia-a-dia, permitindo assim que se tenha maior segurança, mobilidade e comodidade
dentro de sua própria residência, que em muitas vezes não se encontra adaptada às
necessidades desse morador.
Trabalhos futuros
Podemos, após a finalização do projeto em questão, realizar diversas melhoriasno projeto como, por exemplo:
• Modificar o circuito lógico para que seja possível receber dados e nãoapenas emitir, permitindo ao dispositivo controlado retornar umainformação de um possível erro ocorrido, por exemplo;
• Alterar a interface de conexão paralela do computador com os circuitosresponsáveis pelo controle dos dispositivos eletrônicos para conexõesUSB ou ainda sem fio;
• Criar formulários, no aplicativo do dispositivo móvel, para cadastros dasdescrições e outras informações dos dispositivos controlados permitindo
assim maior flexibilidade ao usuário, bem como inserir uma imagem daplanta da residência com os respectivos dispositivos controlados,melhorando a interatividade com o sistema.
5/6/2018 Grafos: Sistema para busca do melhor Caminho - slidepdf.com
http://slidepdf.com/reader/full/grafos-sistema-para-busca-do-melhor-caminho 10/10
13
Referências
ABNT. (2004). Acessibilidade a edificações, mobiliário, espaços e equipamentos
urbanos. Rio de Janeiro, RJ, Brasil.CARVALHO, L. R. (2001). Ergonomia e o trabalho do portador de necessidade motora.Florianópolis, SC.
GLASS, G. (2000). Applying Web services to applications.
KREGER, H. Web Services Conceptual Architecture. IBM Software Group.
LOURENÇO, A. C., CRUZ, E. C., FERREIRA, S. R., & JÚNIOR, S. C. (2007). CircuitosDigitais (2 ed.). São Paulo: Editora Érica Ltda.
NOVO, E. M. (1992). Sensoriamento Remoto (2 ed.). São Paulo: EDGARD BLUSHERLTDA.
SANTOS, L. K. (2004). Diretrizes de arquitetura e design para adaptação da habitaçãode interesse social ao cadeirante. Curitiba, PR.
TÉCNICAS, A. B. (n.d.). Acessibilidade de pessoas portadoras de deficiências aedificações. Rio de Janeiro.
[SUN01] Developer Resources for Java Technology. (n.d.). Acesso em 03 29, 2010,
from http://java.sun.com[WEB01] WEB Services Architecture. (2004). Acesso em 03 2010, from WEB ServicesArchitecture: http://www.w3.org/TR/ws-arch/