Busca com Informao e Explorao Busca heurstica Eduardo
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 n n n 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 n 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 n n n 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 n n 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ção h(n) n h(n) depende do problema
Exemplo n n Objetivo: Encontrar um bom caminho de Arad à Bucareste. h(n) = distância em linha reta do nó n até o objetivo (Bucareste)
Busca pela melhor escolha
Busca pela melhor escolha
Busca pela melhor escolha
Busca pela melhor escolha
Busca pela melhor escolha
Características da Busca Gulosa pela melhor escolha n n Não é ótima; É incompleta, pois pode entrar em loops infinitos;
Busca A* n n 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 n n n 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. l Olha o futuro sem esquecer do passado, armazenando todos os caminhos anteriores.
A*
A*
A*
A*
Comportamento n Custo de tempo: n n exponencial com o comprimento da solução, porém boas funções heurísticas diminuem significativamente esse custo Custo memória: O(bd) n guarda todos os nós expandidos na memória n n para possibilitar o backtracking Eficiência ótima n só expande nós com f(n) f*, onde f* é o custo do caminho ótimo
A* de aprofundamento iterativo (AIA*) n 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 n BRPM – Busca recursiva pelo melhor n n 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 Sibiu Fagaras 415 Oradea 366 Arad 393 R. Vilcea 526 Pitesti 447 413 Sibiu 417 553
BRPM Arad Sibiu Fagaras Oradea 415 Sibiu 591 Bucareste 450 Arad 393 R. Vilcea 526 366 447 417
BRPM Arad Sibiu Fagaras Oradea 450 366 Arad 393 R. Vilcea 526 447 417 Pitesti Sibiu 417 Bucareste 418 553 R. Vilcea 607
A* Limitado pela memória simplificado (LMSA*) n n 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*) n n É 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 n n 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 n n 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 7 2 5 8 4 6 3 1 Estado inicial n n h 1 = o número de blocos em posições erradas H 2 = a soma das distâncias de suas posições objetivo 1 2 3 4 5 6 7 8 Estado objetivo
Funções heurísticas n n n Se o custo real para alcançar n é 150. h 1(n) = 56; //heurística 1 h 2(n) = 140; //heurística 2 h 2(n) >= h 1(n); Dizemos que h 2 domina h 1. 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 h 1 e h 2 não superestimem o custo real.
Funções heurísticas n n n Como escolher uma boa função heurística h? h depende de cada problema particular. h deve ser admissível n n não superestimar o custo real da solução Existem estratégias genéricas para definir h: n Relaxar restrições do problema; n Resolver subproblemas de maneira exata.
Exemplo de problema relaxado n Um bloco pode se mover do quadrado A para o quadrado B se A é horizontal ou verticalmente adjacente a B e B é vazio. n n n 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 * 2 * * 3 4 1 2 * 3 4 * 1 * * * Estado inicial Estado objetivo
Busca com Informação e Exploração “Busca heurística” Busca LOCAL
Busca local n Existem problemas, que o caminho até a solução é irrelevante: n n N-rainhas; Caixeiro Viajante n Preocupação apenas com o estado corrente e estados vizinhos.
Vantagens de algoritmos de busca local n n n 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: n Vantajoso para problemas nos quais não é trivial estimar esta distância.
Os algoritmos de busca local n Estado Corrente; n Problemas de Otimização;
Topologia de Espaço de Estados Máximo global Função objetivo Planície Máximo local (plano) Espaço de estados
Subida da encosta Algoritmo 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(Estado. Inicial[problema]) Repita vizinho = achar. Melhor. Sucessor(corrente) se vizinho. funcao. Objetivo <= corrente. funcao. Objetivo então retornar corrente; fim se corrente = vizinho; Fim repita
Diagrama de Atividades
Subida da encosta “Hill Climbing” n 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: N-Rainhas
Exemplo: 8 -Rainhas n n n Estado inicial: colocação aleatória de uma rainha 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 n Passos “laterais” n Limite de 100 passos laterais consecutivos permite atingir taxa de 94% O que fazer quando há muitos vizinhos igualmente melhor n Seleção aleatória
Subida da encosta “Hill Climbing” n n n Move na direção do incremento da função, terminando quando acha um pico �� Guloso: steepest ascent �� Problemas n n n �� Máximos Locais; �� Máximo local plano; �� Planícies.
Variantes da Subida na encosta n n n 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 encosta Análise n O algoritmo é completo? n n n 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 n E. g. jogo dos 8 -numeros O algoritmo é ótimo? n n TALVEZ, quando iterações suficientes forem permitidas. . . NÃO, para problemas onde os NOS não são estados completos
Simulated Annealing n Simula o processo de arrefecimento dos materiais – Arrefecimentos lentos conduzem a produtos mais puros, sem imperfeições n Normalmente é interpretado como o algoritmo de busca local com os melhores resultados
Simulated Annealing n n n Adaptação da Subida na encosta Pode adotar um estado que oferece perda (encosta abaixo). Capaz de fugir de máximos locais.
Simulated Annealing É necessário definir: – Uma função objetivo/custo – Qual o espaço de soluções S – Uma vizinhança sobre o espaço de soluções N(s 0) – Função de redução de temperatura – Uma temperatura inicial T 0
Temperatura no SA n n A temperatura, T 0 inicialmente selecionada deve ser elevada Durante o processo de procura da solução, a temperatura vai decrescendo com base numa função de redução de temperatura O processo de pesquisa da solução repete-se até que a temperatura seja tão pequena que mais nenhum movimento seja aceito e o sólido esteja no seu estado fundamental
Algoritmo funcao RECOZIMENTO-SIMULADO(problema, escalonamento) retorna SOLUCAO entradas: problema, um problema escalonamento, um mapeamento de tempo para “temperatura” variaveis locais: corrente, um NO proximo, um NO T, uma “temperatura” que controla a prob. de passos descendentes corrente = CRIAR-NO (Estado-Inicial[problema]) para t =1 ate infinito faca T = escalonamento[t] se T = 0 entao retornar corrente proximo = um sucessor de corrente selecionado ao acaso ∆E = VALOR[proximo] – VALOR[corrente] se ∆E > 0 entao corrente = proximo senao corrente = proximo somente com probabilidade e ^ ∆E/T
Diagrama de Atividades
Aceitação n Como a temperatura diminui com o decorrer das iterações, a probabilidade de aceitação também diminui, o que faz com que não sejam aceitos movimentos descendentes na função objetivo
Criterios de Parada n n O número máximo de iterações admitidas na resolução do problema A temperatura, quando esta tomar valores tão pequenos que não permitam mais nenhuma alteração na solução
Exemplo da Mochila n n Objetivo do problema – Maximizar o benefício face a capacidade de peso admitido pela mochila Dados do problema: – Capacidade máxima da mochila: b=23
Inicializacao n Inicialização: n n n n Selecionar uma solução s 0 qualquer: s 0= (0 1 0) com valor f(s 0)=6 Selecionar uma temperatura inicial T>0: T 0 = 31 Selecionar uma função de redução de temperatura (escalonamento) Tk=αTk-1 com 0 ≤ α ≤ 1 (Função Geométrica) Nesta aplicação foi considerado o valor de α =0, 8 Selecionar o número máximo de iterações admitida: n Nmax=3
Exemplo da Mochila Selecionar um vizinho de s 0 qualquer: • s=(1 1 0) ∑ j=1 ate 5, Wj Sj = 4+5+9=18 < 23 f(s)=2+2+4=8 ∆E = f(s)-f(s 0)=8 -6=2>0 ( Aceita-se a solução gerada s) T 1=α*T 0=0, 8*31=24, 8 • Contador =contador+1=0+1=1 – A nova solução admitida é: • s 0= (1 1 0) com f(s 0)=8
Exemplo da Mochila – Passo 2 Selecionar um vizinho de s 0 qualquer: • s=(1 1 0) ∑ j=1 ate 5, Wj Sj = 4+5+7+9 = 25 >23 (Não pertence à região admissível) • s=(1 0 0 1 0) ∑ j=1 ate 5, Wj Sj = 4+9= 13<23 f(s)=2+4=6 ∆E = f(s)-f(s 0)=6 -8=-2<0 (∆E < 0, calcula-se valor aleatório x U[0, 1]) » x=0, 43 » exp- (∆E/T 1)=exp-(2/24, 8)=0, 923 » Como x<exp-(δ/T 1) então não se rejeita s • contador = contador +1=1+1=2 • T 2=α*T 1=0, 8*24, 8=19, 84
Exemplo da Mochila – Passo 3 s=(1 0 0 1 1) ∑ j=1 ate 5, Wj Sj = 4+9+6= 19<23 f(s)=2+4+4=10 ∆E = f(s)-f(s 0)=10 -6=4>0 (Aceita-se a solução gerada s) contador=contador+1=2+1=3 e Nmax=3 logo verifica-se um dos critérios de paragem Solução final considerada: s 0=(1 0 0 1 1) com f(s 0)=10
Conclusao do Exemplo do SA • O decréscimo permitido no valor da função objetivo levou a uma solução melhor; • Verificou-se um decréscimo lento na temperatura; • Se nas restrições iniciais o número de iterações fosse muito elevado, o processo da busca da solução iria ser feito até que o valor da temperatura fosse muito perto de zero de forma a não serem permitidas mais mudanças.
Exemplo da Mochila no Subida na Encosta n Calculo do menor peso na mochila: n n n n Estado inicial = 0 1 0 F = soma dos beneficios entre cada NO, na ordem escolhida Operadores = permutar dois NOS quaisquer do caminho Restricao = somente caminhos conectados sao estados validos Estado final = NO onde valor de F e’ minimo E 1 = { 0 1 0 } F(01010) = 6 E 2 = { 1 1 0 } F(11010) = 8!
Vantagens X Desvantagens 1. Permite encontrar soluções próximas da ótima, com um esforço computacional baixo 2. Método de busca local fácil de adaptar 3. Permite a degradação temporária da função objetivo 4. Converge para a solução ótima 1. É necessário um conhecimento profundo do problema para ajustar os parâmetros convenientemente 2. Os parâmetros mais adequados para uma dada aplicação só podem ser estabelecidos por experimentação 3. Tanto a temperatura inicial como a forma de arrefecimento influenciam os resultados finais 4. Não é possível saber se a melhor solução encontrada é o ótimo global
Busca on-line n Diferença entre agente off-line e on-line n n Off-line: calcula uma solução completa antes de entrar no mundo real e depois executam a solução sem recorrer as suas percepções On-line: opera pela intercalação de computação e ação. Executa uma ação, observa o ambiente e calcula a próxima ação
Busca on-line n Problema de exploração n n O agente no estado de ignorância usa suas ações como experimentos para determinar o que fazer em seguida. Exemplos: n n Um robô colocado num novo edifício e tem que explorá-lo para elaborar um mapa que possa ser usado com a finalidade de ir de A para B. A descoberta gradual de um bebê de como o mundo funciona
Agentes de busca on-line n Visão do agente n n n Ações (s): retorna todas as ações permitidas do estado s Testa-objetivo (s) Custo (s, a, s´)
Agentes de busca on-line n n n O agente não tem acesso prévio ao estado sucessor s´, nem ao valor do custo de s para s´ Memoriza e atualiza o espaço de estados Só pode expandir um nó que ele ocupa fisicamente
Exemplo n Problema de labirinto simples n n Espaço de estados desconhecidos Inicia em S e tem que alcançar G
Busca on-line em profundidade n n Off-line: A medida que os nós são expandidos, eles são retirados da borda e a busca retorna para o nó seguinte mais raso que ainda tem sucessores inexplorados. On-line: O agente tem que regressar fisicamente.
Busca on-line em profundidade n n Armazena um mapa das relações entre ações e estados. Resultado [a, s] O agente mantém uma tabela, para cada estado, que lista os estados predecessores que o agente ainda não regressou. Se o agente esgotar todos os estados que ele pode regressar, a busca estará completa.
Hill-climbing n n n Pelo fato de manter apenas um estado corrente na memória, já é um algoritmo de busca on-line. Fica paralisada (máximos locais) Reinícios aleatórios não podem ser usados, pois o agente não tem como se transportar para um novo estado.
Hill-climbing n n n Alternativa: Percurso aleatório para explorar ambiente Desde que o espaço seja finito, encontra um objetivo ou completa a exploração Porém, o processo pode ser muito lento
ATRA* n n n Aprendizado em Tempo Real A* Adição de memória em vez de aleatoriedade Armazena a melhor estimativa atual H(s) O agente vai para o nó vizinho mais promissor e atualiza o nó anterior: H(s) = C(s, a, s’) + H(s’)
ATRA*
ATRA*
ATRA*
ATRA*
ATRA*
UML n Heuristic Search Class Diagram
goal = true implies full = true Problem Pb. Graph State initial: Boolean goal: Boolean Method. Node expanded: Boole an * Node. Soluti on Solutio n action: string cost: real * * Path. Soluti on Pb. Arc * suc Pb. Node Path Partial State Problem * * all suc from partial state to partial state except suc to goal state * * suc Method. Arc * Optimal. Path. Soluti on Optimal. Node. Solut ion Optimal. Soluti on * * Method. Gra ph Method search(pb: Problem): Solution gensuc(n: Node): Node[*] get. Fringe(g: Method. Graph): N ode[*] Path. Solution. last(). Pb. Node. State. goal = true One. Shot. Method Iterative. Method. Exhaustive. Method. Heuristic. Method DFS BFS Iterative. Deepening Full State Problem Local. Method Global. Method
Busca heurística Dúvidas?
- Slides: 83