Você está na página 1de 10

UNIVERSIDADE DO SAGRADO CORAO

JOS RAFAEL SANSALONE ZEMINIAN PAULO ROBERTO GIFFALI

Sistema para busca do melhor Caminho

BAURU 2010
Sumrio

1.Introduo........................................................................................................................6 Objetivos.........................................................................................................................6 Objetivo Geral.................................................................................................................6 Algoritmo de busca A-Estrela (A*).....................................................................................7 Funcionamento Algoritmo...............................................................................................7 Metodologia......................................................................................................................10 Consideraes parciais....................................................................................................12 Trabalhos futuros..........................................................................................................12 Referncias......................................................................................................................13

1. Introduo
A Teoria dos Grafos um ramo da matemtica que estuda as relaes entre os objetos de um determinado conjunto. Grafo uma estrutura G(V,A) onde V um conjunto no vazio de objetos denominados vrtices e A um conjunto de pares no ordenados de V, chamado arestas. Dependendo da aplicao, arestas podem ou no ter direo, pode ser permitido ou no arestas ligarem um vrtice a ele prprio e vrtices e/ou arestas podem ter um peso (numrico) associado. Se as arestas tm uma direo associada (indicada por uma seta na representao grfica) temos um grafo direcionado, grafo orientado ou dgrafo. Um grafo com um nico vrtice e sem arestas conhecido como o grafo trivial ou "o ponto". Estruturas que podem ser representadas por grafos esto em toda parte e muitos problemas de interesse prtico podem ser formulados como questes 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 usurio em uma determinada regio do estado de So Paulo.

Algoritmo de busca A-Estrela (A*)


Dos diversos algoritmos de busca disponveis, o A-star (A*) o mais utilizado na busca pelo melhor caminho em um grafo. O A* um algoritmo que utiliza uma funo heurstica que determina a qualidade de cada um dos estados possveis (nodos), atravs 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 funo heurstica possui o seguinte formato: f(n)= g(n) +h(n) Onde: f(n): valor da funo associado a um nodo Q; g(n): funo que calcula o custo da rota do nodo de origem at Q; h(n): funo que prev o custo da rota de Q at a soluo. O desempenho do A* depende da funo heurstica selecionada. Uma funo heurstica 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 funo heurstica deve ser admissvel, 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 funo heurstica admissvel, se o problema tiver uma soluo, esta vai ser encontrada, e a soluo encontrada ser sempre a de menor custo.

Funcionamento Algoritmo
O algoritmo A-Star um algoritmo do tipo gera-e-testa, isto , ele gera uma possvel situao e testa se ela a soluo. Se for, retorna-a com sucesso, caso contrrio, gera outra at encontrar a soluo ou no ter mais possveis situaes, quando ento retorna fracasso. At aqui, ele parece idntico ao clssico tentativa-e-erro usando fora bruta, onde todas as possibilidades so obrigatoriamente testadas a fim de poder selecionar a melhor. O que difere ambos os algoritmos est na forma como o A-Star seleciona o

prximo n a ser aberto (no caso, a prxima situao a ser testada), que lhe garante encontrar em primeiro lugar a melhor soluo, podendo ento interromper a busca. Para conseguir isso, o algoritmo A-Star trabalha com a ideia de busca melhorprimeiro e, para determinar qual dever ser o possvel prximo melhor passo para efetuar todo o seu percurso, ele baseia-se na distncia percorrida at encontrar o tal n mais a menor distncia possvel para encontrar o n-destino, obtida por meio de uma funo heurstica. O que garante o sucesso do algoritmo A-Star justamente essa anlise no somente da qualidade do n para chegar no destino, obtida por uma funo heurstica h , mas tambm da qualidade do caminho percorrido at chegar quele n a partir da origem, conhecida aqui como funo g. Denominando a soma de ambas de f = g + h, teremos ento que o algoritmo de A-Star funciona da seguinte forma: Inicialmente temos somente o n origem em uma lista de ns abertos. Calculamos valores para g (igual a 0), h (distncia heurstica 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 contrrio, 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 soluo, retorne a soluo (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 contrrio, 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 prximo. Caso contrrio, faa aquele n que representa o sucessor apontar para o melhor_no e atualize seu g para o valor calculado no item anterior;

Se sucessor no estava em abertos, precisamos ainda verificar se o mesmo no j est em fechados. Se ele estiver, significa que no somente j criamos esse n, como tambm j criamos os seus vizinhos/sucessores, em outras palavras, precisamos ajustar no somente ele, mas tambm os que esto aps 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, no necessrio atualizar, pois o anterior j era um melhor caminho. Caso contrrio, 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 ns sucessores dele, dos ns sucessores de seus sucessores e assim por diante, de forma recursiva; Se o n sucessor analisado at ento no est nem em abertos nem em fechados, coloque-o em abertos e acrescente-o lista de sucessores de melhor_no. Aps fazer isso para todos os possveis ns sucessores de melhor_no, coloque melhor_no na lista de fechados e retorne ao segundo passo/item.

10

Metodologia
A partir do mapa do estado de So Paulo, ser extrada uma determinada regio para efetuar o calculo do melhor caminho entre uma cidade pr-definida aleatriamente e uma segunda cidade escolhida pelo usurio. Cada cidade ser um vrtice do grafo e as arestas sero as ligaes entre a cidade escolhida e as cidades vizinhas que iro representar as distncias entre elas.

11

Para tal, necessrio que se tenha uma funo heurstica que seria uma estimativa de distncia em linha reta entre a cidade pr-determinada e a cidade escolhida.

12

Consideraes parciais
Esperamos atravs do projeto a ser realizado proporcionar ao deficiente fsico motor melhoras significativas nas rotinas e funes desempenhadas durante o seu diaa-dia, permitindo assim que se tenha maior segurana, mobilidade e comodidade dentro de sua prpria residncia, que em muitas vezes no se encontra adaptada s necessidades desse morador.

Trabalhos futuros
Podemos, aps a finalizao do projeto em questo, realizar diversas melhorias no projeto como, por exemplo: Modificar o circuito lgico para que seja possvel receber dados e no apenas emitir, permitindo ao dispositivo controlado retornar uma informao de um possvel erro ocorrido, por exemplo; Alterar a interface de conexo paralela do computador com os circuitos responsveis pelo controle dos dispositivos eletrnicos para conexes USB ou ainda sem fio; Criar formulrios, no aplicativo do dispositivo mvel, para cadastros das descries e outras informaes dos dispositivos controlados permitindo assim maior flexibilidade ao usurio, bem como inserir uma imagem da planta da residncia com os respectivos dispositivos controlados, melhorando a interatividade com o sistema.

13

Referncias
ABNT. (2004). Acessibilidade a edificaes, mobilirio, espaos e equipamentos urbanos. Rio de Janeiro, RJ, Brasil. CARVALHO, L. R. (2001). Ergonomia e o trabalho do portador de necessidade motora. Florianpolis, SC. GLASS, G. (2000). Applying Web services to applications. KREGER, H. Web Services Conceptual Architecture. IBM Software Group. LOURENO, A. C., CRUZ, E. C., FERREIRA, S. R., & JNIOR, S. C. (2007). Circuitos Digitais (2 ed.). So Paulo: Editora rica Ltda. NOVO, E. M. (1992). Sensoriamento Remoto (2 ed.). So Paulo: EDGARD BLUSHER LTDA. SANTOS, L. K. (2004). Diretrizes de arquitetura e design para adaptao da habitao de interesse social ao cadeirante. Curitiba, PR. TCNICAS, A. B. (n.d.). Acessibilidade de pessoas portadoras de deficincias a edificaes. 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 Services Architecture: http://www.w3.org/TR/ws-arch/

Você também pode gostar