Professional Documents
Culture Documents
Marco H. terra
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;
n Exemplo
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.
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:
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;
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
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;
Busca em Amplitude
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.
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
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
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
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 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
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
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
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
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
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
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; ...