Grafos: Sistema para busca do melhor Caminho

10
UNIVERSIDADE DO SAGRADO CORAÇÃO JOSÉ RAFAEL SANSALONE ZEMINIAN PAULO ROBERTO GIFFALI Sistema para busca do melhor Caminho BAURU 2010 Sumário

Transcript of Grafos: Sistema para busca do melhor Caminho

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/