Cap. 4 Busca com Informações e Exploração do livro de Russel e Norvig
Busca Heurística(Best-First Search) Largura, profundidade e aprof. iterativo: desinformadas sobre proximidade da solução Heurística: similar a largura, mas escolhe nó mais promissor como próximo a expandir uso de inform. específicas do problema Função de avaliação: f(n) analisa nó n e estima melhor nó. Expande-se sempre nó com menor valor p/ função Termina quando atinge-se objetivo Busca Gulosa Ex.: No ex. da Romênia: f dado pela dist. linear Problema: olhar apenas futuro pode levar a não se considerar caminhos anteriores Semelhante a busca em em prof.: procura caminho único O(b m ), onde m é maior prof., não é ótima e é incompleta C/ boa fç. heurística pode reduzir complexidade
Ex. da Romênia c/ Dist. em linha Reta
Algoritmo A* Equilibrar função f. f(n)=g(n)+h(n). g(n): estimativa do menor custo do início até n h(n): estimativa do menor custo de n até um objetivo Ex. da Romênia g(n): distância percorrida h(n): dist. linear até objetivo Busca com custo uniforme é equivalente a A*, onde h(n)=0. O que fazer para a busca heurística fornecer soluções ótimas?
Admissibilidade de A* Busca Heurística ótima se: h(n) nunca superestima o custo para solução Prova: Assuma C* como custo ótimo Assuma nó não-ótimo na fronteira G 2 : h(g 2 )=0 porque é objetivo f(g 2 )=g(g 2 )+h(g 2 )=G(G 2 )>C* Considere nó n em OPEN com no caminho ótimo para solução: f(n)=g(n)+h(n) C* logo f(n) f(g 2 ) e n seria selecionado antes de G 2. Solução ótima garantida para busca em árvore (sem descartar repetição), mas busca em grafo pode descartar solução ótima Duas soluções p/ usar busca em grafo Descartar caminho mais dispendioso e atualizar ponteiros e custos Garantir que caminho ótimo aparece primeiro
Consistência (Monotonicidade) A função h obedece à condição de consistência se, para qq. pares de nós n i e n j, em que n j é sucessor de n i com ação a: h(n i ) - h(n j ) c(a, n i, n j ) Desigualdade triang.: distância reta tem que ser a menor Deriva-se daí que h(n j ) h(n i ) - c(a,n i, n j ) somando g(n j ) em ambos os lados tem-se: h(n j )+g(n j ) h(n i ) +g(n j ) - c(a, n i, n j ) como g(n j )= g(n i ) + c(a, n i, n j ) h(n j )+g(n j ) h(n i )+g(n i ), logo f(n j ) f(n i ): função de custo nunca decresce
Processamento de A* Com consistência da função h, custo nunca decresce e A* escolhe sempre o nó de menor custo em OPEN. Sabe-se então que no momento da expansão de nó escolhido n: não há possibilidade de chegar a n por caminho mais barato através de outro nó em OPEN caminho já achado é então o ótimo Contornos no espaço de estados vão sendo desenhados (como curvas de nível) no espaço de estados, na medida em que busca avança A* é eficiente e gera solução ótima, MAS necessita de memória para guardar nós do espaço de contorno (em geral exponencial ao comprim. da solução) Alternativas Desistir da sol. ótima: sacrificar admissibilidade Usar algoritmos que introduzem custo no tempo de execução, mas usam menos memória.
Busca Heurística Limitada pela Memória Aprofundamento Iterativo A* Como aprof. iterativo normal Limite de corte: menor custo de f (g+h) p/ nó que excedeu lim. em iteração anterior Acha ótimo e economiza memória Muitas expansões repetidas do mesmo nó. Ex. todos os nós com valor de f diferente 1 iteração por nó. Busca Recursiva pelo Melhor (BRPM) Similar à busca recurs. em prof., mas escolhe mais promissor Guarda para comparação o custo alternativo mais barato Se todos os filhos de um nó excederam o alternativo, expansão é desfeita e resultado do filho com menor custo vai para o custo estimado f do nó Nó pode vir a ser expandido novamente Gera sol. ótima se heurística é admissível Memória: O(bd) Tempo: depende da fç. heurística e da altern. de caminhos LMA* e LMSA*(simplific.): A* limitado pela memória Como A*, mas se lota memória, descarta pior nó folha, mas anota custo no pai. Nó descartado só é regerado se não houver caminhos melhores
BRPM (Exemplo)
BRPM (Exemplo) II
Eficiência de Funções Heurísticas Ex. do quebra-cabeça de 8 peças h 1 : número de peças em posições erradas h 2 : distância de quadras urbanas (Manhatan) Dominância Se h 2 (n) h 1 (n) para todo n (com ambas admissíveis) h 2 domina h 1 e é melhor para a busca, pois gera menos nós Valores típicos p/ quebra-cabeça C/ d=14: Aprof. iterativo: mais de 3 milhões de nós A*(h 1 ): 539 nós A*(h 2 ):113 nós C/ d=24: Aprof. iterativo: mais de 54 bilhões de nós A*(h 1 ): 39.135 nós A*(h 2 ):1641 nós Todos os nós com f(n)<c* são expandidos, alguns c/ f(n)=c* e nenhum c/ f(n)>c*. Como f(n)=h(n)+g(n) e g(n) não depende da heurística, todo nó expandido com h2 é expandido com h1 Cálculo da função heurística tem que ser simples
Criação de Heurísticas Admissíveis Relaxamento do problema Heurística dada p/ custo ótimo de prob. relaxado. Exs. no quebracabeça: Peças podem ir diretamente de uma posição p/ outra (h 1 ) Peças podem se superpor (h 2 ) Quando não há heurística claramente melhor, ela pode ser dada pelo max das heurísticas p/ cada nó Solução de subproblemas tb. geram heurísticas admissíveis. Ex. no quebra-cabeça: colocar 4 apenas peças específicas no lugar Bancos de dados de padrões: Custos pré-computados de subproblemas. Combinação de mais de uma (usando máximo): ganho de eficiência Bancos de dados de padrões disjuntos: subproblemas separados e heurística dada pela soma ainda mais eficiente Aprendizado tb. é possível, usando p/ ex. redes neurais
Busca Local Casos em que caminho não importa, apenas estado ótimo (ou quase). Ex. N rainhas, escalonamento, circuitos integrados,... Manter apenas estado corrente e tentar melhorá-lo Subida de Encosta: Escalar o Everest com nevoeiro e amnésia Busca gulosa local Ir sempre p/ melhor sucessor Parar qdo. não houver sucesor melhor que corrente
Exemplo das Rainhas Busca Local II Mover uma rainha p/ reduzir o número de conflitos Probl. c/ subida de encosta: máx. locais e platôs Reinício aleatório melhora chance de achar máximo global
Têmpera Simulada Busca Local III Idéia: escapar de máxima local, permitindo alguns movimentos ruins Decrescer gradualmente o núm. de mov. ruins (baixa de temperatura) Busca em feixe local Mantidos k estados em memória Inicialmente aleatórios Cada estado gera todos os sucessores São mantidos apenas os k melhores e repete-se processo Algoritmos Genéticos Como busca em feixe, mas novos estados dependem do casamento de estados. Idéia evolucionista: manutenção de padrões promissores em parte do estado
Busca On-line Alternância entre computação e ação Agente conhece apenas: estado em que está ações possíveis se está ou não no objetivo custo de ações (mas não tem certeza do estado que atinge) Agente deseja atingir objetivo minimizando custo Razão competitiva: diferença p/ solução ótima às vezes é infinita: becos sem saída Explorável com segurança: sempre podendo fazer retrocesso Agente de busca on-line em profundidade Armazena tabela de estados atingidos c/ ações Experimenta ações não exploradas Qdo. experimenta todas as altern. sem resultado, volta p/ predecessor (tem que saber voltar) Mantém lista de predecessores Pode explorar grande parte do espaço: aprof. iterativo melhora situação
Busca Local On-line Agente ATRA*: aprendizado em tempo real. Conhece fç. heurística. Subida de encosta já é on-line: usa apenas um estado paralisa em máximos locais, s/ possib. de reinício aleatório alternativa: percursos aleatórios muito lenta Subida de encosta c/ memória vai sempre p/ melhor vizinho (se não está no objetivo) guarda melhor estimativa atual p/ cada estado já visitado: atualiza valor somando custo de atingir vizinho à estimativa do vizinho Otimismo em relação a nós não explorados leva à exploração de novos caminhos Completo em espaço de estados finito