850 likes | 1.05k Views
Busca com Informação e Exploração “Busca heurística”. Eduardo Araujo Oliveira eao@cin.ufpe.br Patricia Endo pte@cin.ufpe.br. Busca heurística - Escopo. Definição Estratégias de busca com Informação Funções heurísticas Algoritmos de busca local e problemas de otimização
E N D
Busca com Informação e Exploração“Busca heurística” Eduardo Araujo Oliveira eao@cin.ufpe.br Patricia Endo pte@cin.ufpe.br
Busca heurística - Escopo • Definição • Estratégias de busca com Informação • Funções heurísticas • Algoritmos de busca local e problemas de otimização • Busca local em espaço contínuo • Agente de busca on-line e ambientes desconhecidos
Problema da busca cega • Se a combinação de caminhos até o objetivo for exponencial a busca cega dificilmente encontrará a resposta do problema em um tempo polinomial.
Instância • Como encontrar um barco perdido? • Não podemos procurar no oceano inteiro... • Informações relevantes: • Velocidade do vento; • Direção do vento; • ...
Definição • Como na busca cega, utiliza a definição do problema para efetuar a busca. • Utiliza conhecimento específico do problema (informações) • Não procura a melhor solução do problema, procura uma boa solução, ou simplesmente alguma solução.
Busca gulosa pela melhor escolha • Estratégia: tenta expandir o nó supostamente mais próximo a origem (heurística), através de uma estimativa; • 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)
Características da Busca Gulosa pela melhor escolha • Não é ótima; • É incompleta, pois pode entrar em loops infinitos;
Busca A* • Avalia a combinação de duas funções: • f(n) = g(n) + h(n); onde: • g(n) é o custo real da origem até o nó n; • h(n) é a distância em linha reta do objetivo até o nó n.
A*: Características • Desde que h(n) não superestime o custo para alcançar o objetivo, A* é ótima. • Completa. • A* expande o nó de menor valor de f na fronteira do espaço de estados. • Olha o futuro sem esquecer do passado, armazenando todos os caminhos anteriores.
Comportamento • Custo de tempo: • exponencial com o comprimento da solução, porém boas funções heurísticas diminuem significativamente esse custo • Custo memória: O(bd) • guarda todos os nós expandidos na memória • para possibilitar o backtracking • Eficiência ótima • só expande nós com f(n) f*, onde f* é o custo do caminho ótimo
A* de aprofundamento iterativo (AIA*) • Igual ao aprofundamento iterativo, sua principal diferença é que seu limite é dado pela função de avaliação (f) (contornos), e não pela profundidade (d).
Busca heurística com limite de memória • BRPM – Busca recursiva pelo melhor • Semelhante a busca recursiva em profundidade; • Diferença: Não desce indefinidamente. Ela controla a recursão pelo valor de f. Se existir algum nó em um dos ancestrais que ofereça melhor estimativa que o nó atual, a recursão retrocede e a busca continua no caminho alternativo.
BRPM Arad 366 Arad Sibiu 393 447 Fagaras Oradea R. Vilcea 413 415 526 Pitesti Sibiu 417 553
BRPM Arad 366 Arad Sibiu 393 447 Fagaras Oradea R. Vilcea 417 415 526 Sibiu Bucareste 591 450
BRPM Arad 366 Arad Sibiu 393 447 Fagaras Oradea R. Vilcea 417 450 526 Pitesti Sibiu 417 553 Bucareste R. Vilcea 418 607
A* Limitado pela memória simplificado (LMSA*) • Utiliza toda a memória disponível; • Quando a memória está cheia, ele elimina o pior nó folha (maior custo de f) para continuar a busca.
A* Limitado pela memória simplificado (LMSA*) • É completo, se a profundidade do nó objetivo mais raso for menor que o tamanho da memória. • É ótimo se qualquer solução ótima for alcançável.
Funções heurísticas • O desempenho da busca está totalmente relacionado a qualidade da função heurística utilizada. • Como medir a qualidade de uma função heurística?
Exatidão heurística • Uma maneira de caracterizar a exatidão heurística é através do fator de ramificação efetiva (b*). • Considere N o número de nós gerados para alcançar o objetivo, e d a profundidade da solução. Então: • N = 1 + b* + (b*)2 + ... + (b*)d • Uma boa função heurística terá b* bem próximo de 1.
Exemplo • h1 = o número de blocos em posições erradas • H2 = a soma das distâncias de suas posições objetivo Estado inicial Estado objetivo
Funções heurísticas • Se o custo real para alcançar n é 150. • h1(n) = 56; //heurística 1 • h2(n) = 140; //heurística 2 • h2(n) >= h1(n); • Dizemos que h2 domina h1. Isso pode ser traduzido na forma: A heurística 2 é melhor que a heurística 1, pois terá um menor fator de ramificação. Desde que h1 e h2 não superestimem o custo real.
Funções heurísticas • Como escolher uma boa função heurística h? • h depende de cada problema particular. • h deve ser admissível • não superestimar o custo real da solução • Existem estratégias genéricas para definir h: • Relaxar restrições do problema; • Resolver subproblemas de maneira exata.
Exemplo de problema relaxado • Um bloco pode se mover do quadrado A para o quadrado B se A é horizontal ou verticalmente adjacente a B e B é vazio. • Um bloco pode se mover do quadrado A para o quadrado B, se A é adjacente a B • Um bloco pode se mover do quadrado A para B, se B está vazio • Um bloco pode se mover do quadrado A para o quadrado B
Exemplo de subproblema Estado objetivo Estado inicial
Busca com Informação e Exploração“Busca heurística” Busca LOCAL
Busca local • Existem problemas, que o caminho até a solução é irrelevante: • N-rainhas; • Caixeiro Viajante • Preocupação apenas com o estado corrente e estados vizinhos.
Vantagens de algoritmos de busca local • Utilizam pouquíssima memória (geralmente constante); • Freqüentemente encontram boa soluções em espaços de busca infinitos (contínuos) – para os quais, os algoritmos globais são inadequados. • As heurísticas da busca local não estimam a distância do estado atual até o objetivo: • Vantajoso para problemas nos quais não é trivial estimar esta distância.
Os algoritmos de busca local • Estado Corrente; • Problemas de Otimização;
Topologia de Espaço de Estados Máximo global Função objetivo Planície Máximo local Máximo local (plano) Espaço de estados
Subida da encostaAlgoritmo básico Função Subida-de-Encosta(problema) retorna um estado Entrada: problema, um problema Variáveis locais: corrente : Nó vizinho: Nó corrente = criar-NO(EstadoInicial[problema]) Repita vizinho = acharMelhorSucessor(corrente) se vizinho.funcaoObjetivo <= corrente.funcaoObjetivo então retornar corrente; fim se corrente = vizinho; Fim repita
Subida da encosta“Hill Climbing” • O algoritmo procura o pico, onde nenhum vizinho tem valor mais alto. “Subindo o everest na neblina com amnésia” PASSO
Subida da Encosta Exemplo Porco Espinho ou Ourico
Exemplo: 8-Rainhas • 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
Subida da encosta“Hill Climbing” • Move na direção do incremento da função, terminando quando acha um pico • Guloso: steepest ascent • Problemas • Máximos Locais; • Máximo local plano; • Planícies.
Variantes da Subida na encosta • Subida de encosta estocástica: gera vários sucessores (vizinhança – N(S)), e escolhe ao acaso, um que ofereça melhora na função objetivo. • Subida de encosta pela primeira escolha: O primeiro sucessor de N(S) gerado que oferece melhora, passa a ser o novo estado corrente. É muito utilizada quando cada estado possui milhares de sucessores. • Subida de encosta com reinício aleatório: “se não tiver sucesso na primeira vez, continue tentando”. Gera estados iniciais ao acaso, parando ao encontrar um objetivo.
Subida na encostaAnálise • O algoritmo é completo? • SIM, para problemas de otimizacao (onde cada NO tratado e’ um estado completo, uma solucao) • NÃO, para problemas onde os NOS não são estados completos • E.g. jogo dos 8-numeros • O algoritmo é ótimo? • TALVEZ, quando iterações suficientes forem permitidas... • NÃO, para problemas onde os NOS não são estados completos
Simulated Annealing • Simula o processo de arrefecimento dos materiais – Arrefecimentos lentos conduzem a produtos mais puros, sem imperfeições • Normalmente é interpretado como o algoritmo de busca local com os melhores resultados
Simulated Annealing • Adaptação da Subida na encosta • Pode adotar um estado que oferece perda (encosta abaixo). • Capaz de fugir de máximos locais.