270 likes | 539 Views
Busca Heurística. Jacques Robin Humberto César Brandão de Oliveira. Roteiro. Definição Algoritmos de busca heurística global Busca gulosa A* RBFS SMA* Projeto de funções heurísticas Algoritmos de busca heurística local Subida em encosta Recozimento simulado Busca focada local
E N D
Busca Heurística Jacques Robin Humberto César Brandão de Oliveira
Roteiro • Definição • Algoritmos de busca heurística global • Busca gulosa • A* • RBFS • SMA* • Projeto de funções heurísticas • Algoritmos de busca heurística local • Subida em encosta • Recozimento simulado • Busca focada local • Algoritmos genéticos • Busca local em espaço contínuo • Agente de busca on-line e ambientes desconhecidos
Busca cega: motivação e definição • Motivação: busca cega exponencial na profundidade da solução ou do espaço de estados • Definição: • Busca não exaustiva do espaço de estados, utilizando atalhos para sua exploração que descartam sub-espaços sem explorá-los • Muitas vezes sem garantia de encontrar sempre a melhor solução ou até uma solução em todas as instâncias do problema
Busca gulosa pela melhor escolha • Estratégia: • Expandir primeiro nó que parece mais próximo do objetivo de menor custo • Distância do nó a expandir para esse objetivo estimado através de uma função heurística h(n) • Avalia nós através da funçãoh(n) • h(n) depende do problema • Exemplo: • Objetivo: Encontrar um bom caminho de Arad à Bucareste. • h(n) = distância em linha reta do nó n até o objetivo (Bucareste)
Busca gulosa pela melhor escolha: características • Explora árvore de busca em profundidade primeira • Sofre dos mesmos problemas da busca cega em profundidade • Completa? Não. • ex, ao buscar melhor caminho Iasi Bucharest, entra em loop Iasi Neamt, Neamt Iasi • pode se perder um tempão em caminhos que são impasses • Ótima? Não • ex, não encontra melhor caminho Arad Sibiu Riminicu Pitesti Bucharest • Pior caso tempo e espaço: O(bm) • Porque?
A* • Sempre expande no minimizando f(n) = g(n) + h(n), onde • g(n) custo real da origem até n, utilizada na busca cega de custo uniforme • f(n) heurística estimando custo de n até o objetivo, utilizada na busca heurística gulosa pela melhor escolha • Ex: • g(n) distância na pista da origem até n • f(n) distância em linha reta de n até o objetivo
Distância em linha reta para Bucharest: 75 + 374 239 239 + 178 220 140 + 253 118 + 329 220 + 193 317 317 + 98 418 366 455 336 + 160 A*: exemplo 449 417 393 447 413 415 496
A*: características • Explora árvore de busca em largura primeira • Vantagens e limitações semelhante a busca cega de custo uniforme • Custo uniforme procede desenhando contornos crescentes circulares • A* procede desenhando contornos crescentes elípticos • Melhor h(n), mais alongados os contornos • h(n) perfeita, elipse contém apenas o melhor caminho • Completa? Sim, para heurísticas h(n) admissíveis • i.e., que sempre sub-estima o custo real n, h(n) c(n) • ex, distância em linha reta distância na pista • Ótima? Sim, para heurísticas h(n) admissíveis • Garantido mais eficiente do que qualquer outro algoritmo completo e ótimo usando a mesma heurística • Pior caso tempo e espaço: O(bd) • Porque?
Extensões de A* • Objetivo: limitar números de nos guardados na memória • A* guarda todos os nós expandidos durante toda a busca • Torna uso inviável para problema de tamanho reais • IDA*: • A cada iteração i, busca A* com expansão limitada a nós com f(n) li • Vantagens e limitações semelhantes as de busca em aprofundamento iterativo • Busca recursiva pela melhor escolha • MA* • SMA*
Busca Recursiva pela Melhor Escolha (BRM) • Expande a árvore de busca em profundidade primeira • Desempata nós de profundidade p minimizando fp(n) de A* • Guarda no nó expandido n lembrete de fp(n’), aonde n’ é o no com o segundo menor custo estimado em uma profundidade p’ p • Quando todos os nós da fronteira tem custo estimado f(n’): • retrocesso até a profundidade p e expande n’ • atualiza fp(n) com fp+k(n’’), aonde n’’ é o descendente de n expandido na ida com menor custo estimado
447 415 BRM: exemplo Arad 366 Timisoara Sibiu 393 447 Fagaras Oradea R. Vilcea 413 415 526 Pitesti Sibiu 417 553
417 BRM: exemplo Arad 366 447 Timisoara Sibiu 393 447 Fagaras Oradea R. Vilcea 413417 415 526 Sibiu Bucareste 591 450
BRM: exemplo Arad 366 447 Timisoara Sibiu 393 447 447 Fagaras Oradea R. Vilcea 413417 415450 526 447 Pitesti Sibiu 417 553 Bucareste R. Vilcea 418 607
BRM: características • Completo e ótimo: se heurística h é admissível • Espaço: O(bd) no pior caso • Não aproveita de toda a memória disponível • Tempo: difícil de se estimar
SMA* (Simple limited Memory A*) • Enquanto tem memória disponível segue A* • Quando a memória acaba: • Ele retira nó n folha que maximiza f(n) • Como BRMP, propaga lembrete de f(n) para os pai de n • Completo se profundidade do nó objetivo menor que limite de memória • Ótimo se profundidade da solução ótima menor que limite de memória
Projeto de função heurística • Propriedades desejáveis: • Admissibilidade • Alta precisão (qualidade da estimativa da distância entre nó corrente e nó objetivo) • Medida de precisão: • Fator de ramificação efetivo b* 1definido por: • N + 1 = 1 + b* + (b*)2 + ... + (b*)d onde, • N = numero de nós gerado por A* na árvore de busca • d = profundidade do objetivo na árvore de busca • b – 1 boa medida de precisão • Estratégias genéricas de projeto de heurística: • Custo real de um problema menos restrito (relaxed) do que o tratado • Custo real de um sub-problema do problema tratado
Restrições: Rótulo se move apenas em local horizontalmente ou verticalmente adjacente Rótulo se move apenas em local livre Problema menos restrito 1: Retirar as restrições 1 e 2 h1: Número de rótulos fora do objetivo Problema menos restrito 2: Retirar apenas restição 2 h2: Somas das distâncias de Manhattan entre cada rótulo e seu objetivo h1 domina h2 hd(n) = max{h1(n), .., hk(n)} sempre domina h1(n), .., hk(n) Projeto de função heurística: retirar restrições
Projeto de função heurística • Sub-problemas: • Mover rótulo {1-4} • Mover rótulo {5-8} • Resolver variedades de problemas pequenos de antemão • Contar número de passos totais para resolvê-los • Dividir problema grande em sub-problemas pequenos • Estimar custo do cada nó pelo numero de passos dos sub-problemas • Funciona apenas para problemas no qual cada passo envolve apenas um subproblema
Busca heurística local • Aplica-se apenas para problemas pelos quais só importa o nó solução, não importa o caminho desde a raiz até esse nó. • ex: • Distribuição espacial de equipamentos (8 rainhas, VLSI, plano de usina) • Roteamento (veículos, pacotes de redes, etc.) • Escalonamento de tarefas • Requer formulação de estado completo • Geralmente bem mas eficiente do que busca global • Permite otimização (i.e., encontrar nó de menor custo)
Busca em encosta (hill-climbing) • Sempre expandir nó vizinho que maximiza função de objetivo (gulosa) • Vantagens: • Guarda apenas um nó em memória • Funciona sem modificação com conhecimento parcial e online • Limitações: • Incompleto e não ótimo • Eficiência depende da topologia do espaço de estados
Busca em encosta: exemplo • Estado inicial: colocação aleatória de umarainha por coluna • Operador: mudar um rainha de posição • h = número de pares de rainha que se atacam • Taxa de sucesso em encontrar solução ótima: 14% • O que fazer quando não há melhorvizinho • Passos “laterais” • Limite de 100 passos lateraisconsecutivos permite atingirtaxa de 94% • O que fazer quando há muitosvizinhos igualmente melhor • Seleção aleatória
Melhoras da busca em encosta • Busca em encosta repetitiva a partir de pontos iniciais aleatórios • Recozimento simulado • Alternar passos de gradiente crescentes (hill-climbing) com passos aleatórios de gradiente descente • Taxa de passos aleatórios diminuem com o tempo • Outro parâmetro importante em buscas locais: • Amplitude dos passos • Pode também diminuir com o tempo • Busca em feixe local (local beam search) • Fronteira de k estados (no lugar de apenas um) • A cada passo, seleciona k estados sucessores de f mais alto • Busca em feixe local estocástica: • A cada passo, seleciona k estados semi-aleatoriamente com probabilidade de ser escolhido crescente com f • Forma de busca genética com partenogenesa (reprodução asexuada)