You are on page 1of 37

Redes e Busca Bsica

Marco H. terra

Introduo Inteligncia Artificial

Introduo
n

Este captulo trata de como achar caminhos atravs de redes para resolver problemas de busca. Nestes problemas busca-se solues numa estrutura de rede semntica. A busca um mecanismo genrico usado para resoluo de problemas na falta de um mtodo mais direto. Neste captulo sero discutidas as seguintes estratgias:
u Mtodos

de busca cega: busca sistemtica sem orientao da melhor maneira de realiz-la. de busca heuristicamente informados: busca sistemtica onde as opes a serem exploradas so ordenadas, investigando-se inicialmente caminhos mais promissores.

u Mtodos

n Exemplo:

Deseja-se achar o caminho da cidade S para a cidade G usando o mapa abaixo. Para encontrar um caminho entre as cidades deve se levar em conta: O custo de computao para encontrar a resposta; O custo de viagem para cruzar o caminho escolhido.

n Este

tipo de problema pode ser representado empregandose rvore de busca. se resolver o problema especifica-se os caminhos que resultam em loops e arranja-se todas as possveis solues a partir do n inicial numa rvore de busca. rvore de busca uma representao em rvore semntica na qual:
= =

n Para

n Uma

Os ns denotam caminhos; Ramos conectam caminhos para caminhos de um passo de extenso; Tem escritores que conectam um caminho a uma descrio de caminho;

Tem leitores que produzem uma descrio de caminho.

n Exemplo

de uma rvore de busca feita a partir de uma rede como na Figura 1.


= =

Cada n denota um caminho; Cada n filho denota uma extenso de um passo no caminho; Uma rede se transforma numa rvore considerando-se todos os caminhos que no resultem em loops.

Terminologia de rvores de Busca


Um n filho denota um caminho de um passo de extenso a partir de seu n pai; Tem as mesmas definies que rvore semntica de n raiz, ns folhas, ancestral e descendente; N com fator de ramificao b: n com b filhos; rvore cujo fator de ramificao b: todos os ns nofolhas possuem b filhos; Caminho parcial aquele que no atinge o n meta. Quando este alcanado tem-se o caminho total.

Mtodos de Busca Cega


n Busca

em Profundidade (Depth-first search);

Parte-se do princpio que todos os caminhos tm importncias idnticas. Escolhe-se um dos filhos de qualquer n considerado e passa-se a trabalhar a partir deste ponto. Abandona-se temporariamente outras alternativas no mesmo nvel. Segue-se neste processo at atingir um n folha. No mesmo nvel procura-se da esquerda para direita. Quando se atinge um n folha que no um n meta retorna-se at o nvel hierrquico com ns filhos ainda no explorados e reinicia-se o processo. Exemplo:

Escolhe-se o filho mais esquerda (A) a partir do n raiz (S);

Repete-se a operao anterior chegando-se ao n folha (C); Retorna-se ao ancestral que ainda tenha ns filhos no explorados (B) e repete-se o processo; Para-se o processo ao achar um n folha = n meta (G). se conduzir uma Busca em Profundidade:

n Para

Forme uma fila de um elemento consistindo de um caminho de comprimento nulo contendo apenas o n raiz; At o 1o caminho na fila terminar em um n meta ou at a fila estar vazia:

Remova o primeiro caminho da rede; crie caminhos novos estendendo o primeiro caminho a todos os vizinhos do n terminal;

Rejeite todos os caminhos novos com LOOPS;

Adicione novos caminhos, se existirem, na frente da fila; Anuncie sucesso ou fracasso.

Mtodos de Busca Cega


n Busca

em Amplitude (Breath-first search);

Este tipo de busca cega investiga todos os possveis caminhos de um dado comprimento antes de se mover ao longo de qualquer caminho especfico. Em outras palavras, considera-se todas as opes em um mesmo nvel hierrquico antes de mudar de nvel. O mtodo encerra a busca quando o primeiro n meta for encontrado no nvel hierrquico mais superior. Neste mtodo, tambm se segue a conveno de se caminhar da esquerda para a direita. Exemplo (Figura 4): a movimentao para os nveis hierrquicos mais baixos acontecem nvel a nvel, at que se atinja o objetivo.

n Para

se conduzir uma Busca em Amplitude:

Forme uma fila de um elemento consistindo de um caminho de comprimento nulo contendo apenas o n raiz; At o 1o caminho na fila terminar em um n meta ou at a fila estar vazia:

Remova o primeiro caminho da fila; crie novos caminhos estendendo o primeiro caminho a todos os vizinhos do n terminal; Rejeite todos os caminhos com LOOPS; Adicione novos caminhos, se existirem, no final da fila;

Anuncie sucesso ou fracasso, se a meta for atingida ou no, respectivamente.

Busca em Amplitude

Escolha da Estratgia de Busca Adequada


n Busca

em Profundidade :

Adequada: Se existir segurana que todos os caminhos possveis se encerram ou chegam ao objetivo aps um nmero razovel de passos. Inadequada: Se existir caminhos longos ou infinitamente longos.
n Busca

em Amplitude :

Adequada: Se existir segurana que o fator de ramificao pequeno. Inadequada: Se o fator de ramificao for alto ou infinito.

n Vantagens

da busca em Profundidade:

Requer menos memria uma vez que apenas os ns do caminho presente precisam ser armazenados; Pode encontrar a soluo sem precisar examinar grande parte do espao de busca, especialmente quando existem muitas solues aceitveis.
n Vantagens

da busca em Amplitude:

No explora um beco sem sada, no correndo o risco de seguir um caminho sem soluo por um longo perodo; Encontra sempre uma soluo, se ela existir. A soluo encontrada a que exige menor nmero de passos dentre todas as possveis solues.

n Exemplo

- Problema do Caixeiro Viajante: um vendedor tem uma lista de cidades que precisa visitar uma nica vez. H estradas diretas entre cada par de cidades da lista. Encontre a rota que o vendedor dever seguir para que a viagem seja a menor possvel, e que comece e termine em uma mesma cidade, que poder ser qualquer uma da lista. Soluo: Uma estrutura de controle simples, sistemtica, que cause movimento tal que explore todas as possibilidades possveis. Ela s adequada para um pequeno nmero de cidades. Para N cidades existe (N-1)! possveis caminhos. Se N=11 => tem-se 3.628.800 possveis caminhos.

Busca No-Determinstica (Nondeterministic search)


n Serve

para pesquisa em ramos centrais em estgios mais iniciais da busca. Neste tipo de busca se expande um n aberto escolhido aleatoriamente (expandir um n significa determinar seus filhos). algoritmo idntico aos dois anteriormente mostrados exceto pela instruo de adio de novos caminhos, que se transforma em: Adicione os novos caminhos em lugares aleatrios na lista.

n Este

Mtodos Heuristicamente Informados (Heuristically Informed Methods)


n Mtodo

Subida de Encosta (Hill-Climbing)

Este mtodo idntico ao mtodo de busca em profundidade, exceto no detalhe de ordenamento das escolhas do caminho de busca. Neste mtodo se considera alguma medida heurstica da distncia ao objetivo. As menores distncias guiam a busca.
n Exemplo:

Seja o problema de determinao da rota de uma cidade a outra. So conhecidas as distncias em linha reta (Figura 5) de todas as cidades consideradas at a cidade objetivo (G). Soluo: O mtodo sempre opta pelo n, dentre os ns de um mesmo nvel hierrquico, que tiver menor distncia em linha reta para o n meta:

E se o caminho escolhido no chegar em G ? Este mtodo pode tambm ser entendido como uma variao do mtodo gerar-e-testar, onde uma funo heurstica avalia a proximidade do estado presente em relao ao estado objetivo. Esta distncia guia a escolha do caminho a ser seguido no espao de busca.

n Procedimento

do mtodo Subida de Encosta: Para conduzir uma busca de Subida de Encosta:

Forme uma lista de um nico elemento que consiste do caminho de comprimento zero contendo apenas o n raiz; At o primeiro caminho na fila terminar no n meta ou a lista estar vazia:

Remova o primeiro caminho da lista; crie novos caminhos estendendo o primeiro caminho a todos os vizinhos do n terminal; Rejeite todos os caminhos com LOOPS; Ordene os caminhos, se eles existirem, levando em conta as distncias estimadas entre seus ns terminais e a meta; Adicione novos caminhos, se existirem, no comeo da lista; Se a meta alcanada anuncie sucesso, se no for atingida anuncie fracasso.

n Este

mtodo conveniente quando se tem uma boa funo heurstica para avaliar estados e nenhum outro conhecimento til est disponvel. Pessoa em cidade desconhecida, sem mapa, desejando-se chegar ao centro da cidade. Soluo: Procura-se os prdios mais altos. Funo Heurstica: Distncia entre a posio corrente e a posio dos prdios altos. Os estados desejveis so aqueles nos quais a distncia minimizada.

n Exemplo:

Limitaes:
n Este

mtodo encontra limitaes em situaes como as comentadas a seguir:

O problema das encostas pequenas (foothill problem): Existncia de picos secundrios no caminho. Estes pontos so mximos locais, e no globais, que impossibilitam a evoluo do problema.

O problema das plancies (the plateau problem): Existncia de reas planas separando os picos. Em casos extremos os picos parecem pilastras num campo de futebol. A operao local de escolha no funciona.

O problema da cuminheira (ridge problem): Um mapa de contorno mostra que qualquer passo padro leva a uma piora de estado, mesmo no havendo mximo local ou global.

n Nestes

casos pode se retornar a ns anteriores e tentar outros caminhos. Contudo, s vezes, inmeros caminhos levam aos mesmos problemas. se checar um mximo local pode-se empregar busca no-determinstica a partir daquele ponto. usar Subida de Encosta pela Trilha mais ngrime (steepest-ascent hill climbing).

n Para

n Pode-se

Busca em Feixe (beam search)


n Esta

busca avana nvel a nvel como na busca em amplitude. Contudo, quando muda de nvel o mtodo s considera os w melhores ns em cada nvel para prosseguir na busca. de busca em Feixe. Nela a investigao ocorre nvel a nvel, mas apenas para os w=2 melhores caminhos.

n Exemplo

Busca em Feixe

Busca em Feixe

Busca pela Melhor Escolha (best-first search)


n Esta

estratgia combina as vantagens das buscas em profundidade e em amplitude. Neste mtodo, o movimento se d a partir do melhor n aberto, no interessando se o n est na rvore parcialmente desenvolvida. busca pela melhor escolha emprega uma funo heurstica apropriada para cada um dos ns gerados. N, Valor da funo heurstica associada ao n.

nA

n Exemplo:

Passo 1: existe um s n; Passo 2: faz-se busca orientada em amplitude; Passo 3 em diante: considera-se o n com menor valor da funo heurstica.

n Este

mtodo muito semelhante busca pela Subida da Encosta. Note porm, que na subida de encosta os movimentos rejeitados num nvel no voltam a ser considerados posteriormente.

n Resumo

de Adequao de Alternativas de Busca.

Busca em Profundidade adequada quando caminhos parciais improdutivos no so nunca muito longos; Busca em Amplitude conveniente quando o fator de ramificao no muito alto; Busca No-Determinstica interessante quando no se sabe qual das anteriores a melhor; Busca Heurstica boa se existe uma medida natural entre cada n e o n meta; Busca por Subida de Encosta deve ser usada se a medida acima existe e um bom caminho provvel estar entre os caminhos parciais que aparentam ser bons em cada ponto de escolha;

n Resumo

de Adequao de Alternativas de Busca (cont.)

Busca em Feixe til quando a distncia acima existe e um bom caminho provvel estar entre os caminhos parciais que parecem bons em todos os nveis, nos ns considerados; Busca pela Melhor Escolha propcia quando existe a funo acima e um bom caminho parcial pode parecer uma opo ruim antes de caminhos mais promissores serem descartados. Busca em Amplitude Busca No Subida de Determinstica Encosta Busca em Feixe

Busca em Profundidade

Melhor Escolha

Procedimentos cegos

Procedimentos heursticos

Pesquisa tima

n Procedimento

de pesquisa limite e caminho (branch-and-

bound): Forme uma lista de um nico elemento que consiste do caminho de comprimento zero contendo apenas o n raiz; At o primeiro caminho na fila terminar no n meta ou a lista estar vazia:

Remova o primeiro caminho da lista; crie novos caminhos estendendo o primeiro caminho a todos os vizinhos do n terminal; Rejeite todos os caminhos com LOOPS; Adicione os novos caminhos restantes, se houver, lista; Agrupe a lista inteira pelo tamanho do caminho colocando os caminhos com menor custo frente; Se a meta alcanada anuncie sucesso, se no for atingida anuncie fracasso.

n Procedimento

de pesquisa limite e caminho (branch-andbound) com uma estimativa do limite inferior: Forme uma lista de um nico elemento que consiste do caminho de comprimento zero contendo apenas o n raiz; At o primeiro caminho na fila terminar no n meta ou a lista estar vazia:

Remova o primeiro caminho da lista; crie novos caminhos estendendo o primeiro caminho a todos os vizinhos do n terminal; Rejeite todos os caminhos com LOOPS; Adicione os novos caminhos restantes, se houver, lista; Agrupe a lista inteira pela soma do tamanho do caminho e uma estimativa do limite inferior do custo restante, com os caminhos de menor custo frente; Se a meta alcanada anuncie sucesso, se no for atingida anuncie fracasso.

nO

princpio da programao dinmica:

nO

melhor caminho atravs de um caminho especfico entre dois lugares o melhor caminho para o objetivo do lugar de onde se inicia, seguido pelo melhor caminho de onde se est para o objetivo. No existe necessidade de se inspecionar outros caminhos estando em um lugar intermedirio entre o incio e o objetivo.

n Procedimento

de pesquisa limite e caminho (branch-andbound) com programao dinmica:


Forme uma lista de um nico elemento que consiste do caminho de comprimento zero contendo apenas o n raiz; At o primeiro caminho na fila terminar no n meta ou a lista estar vazia:

Remova o primeiro caminho da lista; crie novos caminhos estendendo o primeiro caminho a todos os vizinhos do n terminal; Rejeite todos os caminhos com LOOPS; Adicione os novos caminhos restantes, se houver, lista;

Se dois ou mais caminhos alcanam um n comum, delete todos os caminhos que no alcancem o n comum com o custo mnimo; Agrupe a lista inteira pelo tamanho do caminho com os caminhos de menor custo frente; Se a meta alcanada anuncie sucesso, se no for atingida anuncie fracasso.

Pesquisa A*
Sub-estimativa e programao dinmica para melhorar a pesquisa limite e caminho ... - Se dois ou mais caminhos alcanam um n comum, delete todos os caminhos que no alcancem o n comum com o custo mnimo; - Agrupe a lista toda pela soma do tamanho do caminho e uma estimativa do limite inferior do custo restante, com os caminhos de custo mnimo frente; ...

You might also like