1. Introduo Algoritmos de busca so uma das mais poderosas abordagens para a resoluo de problemas em Inteligncia Artificial. Trata-se de mecanismos de resoluo de problemas universais que sistematicamente exploram alternativas e encontram uma sequncia para a soluo do problema proposto. Encontrada a sequncia, h de se considerar se se trata de uma soluo eficiente ou no. Outra questo relevante refere-se aos recursos necessrios soluo, ou seja, tempo e memria necessrios para chegar-se ao resultado. Antes de formular um problema e utilizar mtodos de busca para solucion-lo importante formular o objetivo a ser alcanado. Os objetivos auxiliam a organizar o comportamento do programa atravs da limitao dos objetivos que se pretende alcanar. Dessa forma, a formulao do objetivo o primeiro passo na resoluo de problemas. Um objetivo um conjunto de estados do mundo exatamente os estados em que o objetivo satisfeito. Aes podem ser vistas como aquelas que causam transies entre estados do mundo. Ao formular o problema deve-se definir o objetivo, ou seja, definindo o estado final que satisfaz o agente; detalhar seu estado inicial; a funo que leva aos prximos estados; o teste de objetivo, que determina se o estado final foi alcanado; e o custo. Essa formulao define o espao de estados possveis, atravs do estado inicial juntamente com todos os estados alcanveis atravs da funo, formando um grafo com ns representando cada estado, e arcos entre ns representando aes. Mas esta formulao deve ser bem feita, pois o espao de estados definido a partir da formulao impacta na eficincia de busca da soluo.
Logo um problema pode ser definido formalmente pelos seguinntes componentes: Um espao de estados possveis, incluindo: o um estado inicial, que descreve a situao inicial do problema; o um (ou mais) estado final (objetivo); Uma descrio das aes (ou operadores) so aquelas que esto disponveis para sua execuo e/ou que permitem passar de um estado a outro. Teste de objetivo que determina se o estado o estado objetivo. Custo de caminho que atribui um custo numrico a cada caminho que reflita sua prpria medida de desempenho.
O problema de busca pode ser representado graficamente atravs de uma rvore de busca. Uma rvore de busca definida como um conjunto de ns, geralmente representados na forma de diagramas. A rvore deve possuir um n inicial (onde a busca inicia-se) e um n objetivo (onde a busca termina) que so, frequentemente, conectados por ns intermedirios. O objetivo da busca encontrar um caminho que ligue o n inicial ao n final. Como entrada tem- se a descrio do n inicial, do objetivo e de um procedimento que conduza os ns aos seus sucessores. Como sada, uma sequncia de ns que comeam no n inicial e terminam no n objetivo.
2. Busca Cega A busca de uma soluo feita atravs da procura de um caminho no espao de estados que leva do estado inicial para o estado final. Na busca cega ou exaustiva, realizada uma pesquisa sistemtica do espao de estados, porm no utilizam nenhum conhecimento para guiar a busca. Os principais mtodos de busca cega so: Busca em Largura, Busca em Profundidade, Busca em Profundidade Limitada e Busca de Aprofundamento Iterativo. A ao de percorrer o espao de estados feita de acordo com uma estratgia de controle que seleciona um estado e um operador que ser aplicado ao estado para gerar os estados subsequentes. A aplicao dos operadores nos estados iniciais e intermedirios feita at que se chegue a um estado objetivo. Este processo, medida que vai sendo executado, vai gerando a rvore de busca. Quando se encontra o estado final o processo interrompido com sucesso. Dependendo do problema, a soluo pode ser o prprio estado final ou o caminho entre o estado inicial e o estado final.
3. Medidas de Desempenho na Busca Um dos obstculos mais difceis de superar quando so aplicadas tcnicas de Inteligncia Artificial aos problemas do mundo real a magnitude e complexidade da maioria das situaes. Nos primeiros anos da pesquisa em Inteligncia Artificial, desenvolver bons mtodos de busca era o principal objetivo. Os pesquisadores acreditam que a busca a base da resoluo de problemas, que um ingrediente crucial da inteligncia. O desempenho de um algoritmo de busca depende de alguns fatores: Completeza: A estratgia sempre encontra uma soluo quando existe alguma; Otimizao: A estratgia sempre encontra a melhor soluo quando existem diferentes solues; Complexidade de tempo: Quanto tempo gasta para encontrar uma soluo; Complexidade de espao: Quanta memria necessria para realizar a busca.
4. Estratgia dos Mtodos de Busca Cega As estratgias dos mtodos de busca apenas geram sucessores e verificam se o estado objetivo foi atingido. As estratgias de busca sem informao se distinguem pela ordem em que os ns so expandidos. H vrias estratgias de busca, so elas as mais conhecidas:
1. Busca em extenso ou em nvel Todos os ns de um nvel de profundidade da rvore so examinados e expandidos antes dos ns do nvel seguinte. Esta busca est associada estrutura de dados de uma fila do tipo first-in-first-out (FIFO), em que o primeiro elemento a entrar na fila o primeiro a sair dela, garantindo que os ns de profundidade mais baixa (mais prximo da raiz) sejam examinados primeiro e todos os sucessores recm-gerados sejam colocados no final da fila. Os ns examinados devero ser armazenados em outro vetor na memria, pois pode ser necessrio consulta-los para conhecer o caminho da raiz ao estado-objetivo. Logo, todos os ns da rvore devero ser armazenados em memria. A soluo tima no necessariamente o n objetivo mais raso. A busca em extenso ser tima se a relao do custo de caminho for decrescente em relao profundidade do n, ou se, por exemplo, todas as aes possuir o mesmo custo. Sendo assim, a busca inicia pelo n raiz e verifica se o estado-objetivo, se no for ela expande os ns da raiz, armazena na fila e verifica se cada um deles e assim sucessivamente conforme a imagem abaixo.
Figura 1 - Busca em extenso
2. Busca de custo uniforme Expande o n em ordem crescente de custo, ou seja, os ns de menor custo so expandidos primeiro, logo, se na rvore todos os passos tiverem o mesmo custo esta estratgia ser idntica a busca em extenso. Nesta estratgia no importa o nmero de passos que o caminho tem, mas o seu custo total. Por isso, a busca de custo uniforme pode explorar rvores enormes com passos de baixo custo, mas sem utilidade, antes de explorar rvores curtas de passos grandes, porm objetivos. O algoritmo para busca de custo uniforme bem semelhante busca em extenso, modificando apenas a ordem dos ns na fila, no caso, os ns so ordenados em ordem crescente de custo, conforme linha de destacada no algoritmo abaixo.
3. Busca em profundidade Sempre expande o n mais profundo na rvore de busca. A busca feita at que um n no tenha mais resultado para a funo sucessor, ou seja, at que o n no tenha mais sucessores, ento, a busca retorna ao n mais raso que no est totalmente explorado. Para implementar esta estratgia pode utilizar a estrutura de dados de Fila do tipo last-in-first-out (LIFO), nela o ltimo item a entrar a primeiro a sair. Geralmente, esta busca implementada com funes recursivas. Este tipo de funo faz referncia a ela prpria em seu cdigo. Em cada n a funo chamada, se o retorno for nulo a busca retorna a um n mais raso. Uma grande caracterstica desta estratgia a necessidade de pouca memria, pois ela s armazena um nico caminho, da raiz at um n de folha, juntamente com os ns ainda no expandidos, medida que forem totalmente expandidos podem ser removidos da memria. A desvantagem desta busca que ela pode escolher um caminho longo ou infinito, quando a soluo estaria em um caminho que levaria a meta bem mais prxima da raiz. Se a busca explorar uma subrvore infinita que no tem a soluo, a busca nunca termina, logo, nunca chegar ao estado objetivo se estiver numa sub rvore de outra extremidade, por esta questo esta estratgia no completa.
Figura 2 - Busca em profundidade
4. Busca em profundidade limitada Esta estratgia semelhante busca em profundidade, porm para resolver o problema da profundidade ilimitada estabelece-se um limite L, resolvendo assim o problema de caminhos infinitos, mas pode causar incompleteza do problema. A pesquisa admite que os ns de profundidade L no possuem sucessores. De toda forma, um mtodo eficaz se conhecemos um bom limite antes de resolvermos o problema.
5. Busca de aprofundamento iterativo em profundidade A busca por aprofundamento iterativo uma estratgia geral, usada com frequncia em combinao com a busca em profundidade, que encontra o melhor limite de profundidade. Ela faz isso aumentando gradualmente o limite primeiro 0, depois 1, depois 2, e assim por diante at encontrar o objetivo. Esta estratgia tima e completa, apresentando bons resultados quando o espao de estados grande e a profundidade desconhecida.
6. Busca bidirecional Nesta estratgia duas buscas so executadas simultaneamente, uma partindo do estado inicial e outra partindo do estado objetivo. O ponto de parada quando as duas buscas se encontram, este ponto chamado de estado intermedirio. A cada interao, os papis de estado inicial e objetivo se invertem, at que seja encontrado um caminho ligando os dois estados inicialmente fornecidos. Umas das dificuldades desta pesquisa que o estado objetivo deve ser conhecido para iniciar a busca, bem como os predecessores do n precisam ser computveis, no caso da busca inversa (realizada a partir do objetivo).