OntologiesReasoningComponentsAgentsSimulations
Busca HeurísticaBusca Heurística
Jacques RobinHumberto César Brandão de Oliveira
RoteiroRoteiro
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çãoBusca 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 escolhaBusca 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ção h(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: Busca gulosa pela melhor escolha: exemploexemplo
Busca gulosa pela melhor escolha: Busca gulosa pela melhor escolha: exemploexemplo
Busca gulosa pela melhor escolha: Busca gulosa pela melhor escolha: exemploexemplo
Busca gulosa pela melhor escolha: Busca gulosa pela melhor escolha: exemploexemplo
Busca gulosa pela melhor escolha: Busca gulosa pela melhor escolha: característicascaracterí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*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
A*: exemploA*: exemplo
Distância em linha reta para Bucharest:
75 + 374374449449
140 + 253253
393393118 + 329329447447
220
239 239 + 178178
417417
220 + 193193
413413
366
317 317 + 9898
415415
336 + 160160496496
455
418
A*: característicasA*: 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*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 Busca Recursiva pela Melhor Escolha (BRM)(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
BRM: exemploBRM: exemplo
Arad
Sibiu Timisoara
Fagaras Oradea R. Vilcea
Pitesti Sibiu
366
393
415
526
417
447
413
553
447
415
Arad
Sibiu Timisoara
Fagaras Oradea R. Vilcea
366
393
415
526
447
Sibiu Bucareste
591
450
BRM: exemploBRM: exemplo
413417
447
417
BRM: exemploBRM: exemplo
Arad
Sibiu Timisoara
Fagaras Oradea R. Vilcea
Pitesti Sibiu
366
393
415450
526
417
447
413417
553
Bucareste R. Vilcea418
607
447
447
447
BRM: característicasBRM: 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*)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ísticaProjeto 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
Projeto de função heurística: Projeto de função heurística: retirar restriçõesretirar restrições
Restrições:1. Rótulo se move apenas em local
horizontalmente ou verticalmente adjacente
2. 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ísticaProjeto 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 localBusca 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)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: exemploBusca 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á melhor
vizinho Passos “laterais” Limite de 100 passos laterais
consecutivos permite atingirtaxa de 94%
O que fazer quando há muitosvizinhos igualmente melhor Seleção aleatória
Melhoras da busca em encostaMelhoras 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)