Busca com Informao e Explorao Busca heurstica Humberto
Busca com Informação e Exploração “Busca heurística” Humberto César Brandão de Oliveira hcbo@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 n n Como encontrar um barco perdido? n não podemos procurar no oceano inteiro. . . Informações relevantes: n Velocidade do vento; n Direção do vento; n. . .
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 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
Características da Busca Gulosa pela melhor escolha n n Não é ótima (como dado no exemplo anterior); É incompleta;
Porque incompleta? Exemplo: Origem: Neamt. Destino: Fagaras
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* Distância em linha reta para Bucharest: 449 75 + 374 239 + 178 140 + 253 220 417 118 + 329 447 393 220 + 193 413 317 418 366 415 455 496 336 + 160 317 + 98
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 n A atividade constante de paginação causa degradação do desempenho do sistema. É 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.
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.
Heurísticas de aprendizagem a partir da experiência n n Utiliza-se aprendizado indutivo; São utilizadas técnicas como o aprendizado por reforço para diagnosticar o valor de h(n).
Busca local n Existem problemas, que o caminho até a solução é irrelevante: n N-rainhas; Caixeiro Viajante Roteamento de Veículos n Timetabling n n
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 sistemáticos são inadequados. A busca local não estima a distância do estado atual até o objetivo: n Em alguns problemas não é trivial (ou impossível) estimar esta distância.
Conceitos básicos Máximo global f(x) Planície Máximo local (plano) x
Subida na encosta “Hill Climbing” n O algoritmo procura o pico, onde nenhum vizinho tem valor mais alto.
Subida na encosta Algoritmo básico Função Subida. Na. Encosta(problema) retorna um ótimo local Entrada: um problema Variáveis: corrente : Nó vizinho: Nó corrente = criar. 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
Variações 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: Reinicia a subida várias vezes, até encontra um valor satisfatório. Muito utilizado em redes neurais (técnica para melhor adaptar os pesos sinápticos do backpropagation).
Subida na encosta Análise n n n O algoritmo é completo? n SIM, uma vez que cada nó tratado pelo algoritmo é sempre um estado completo (uma solução) O algoritmo é ótimo? n TALVEZ, quando iterações suficientes forem permitidas. . . O sucesso deste método depende muito do formato da superfície do espaço de estados: n Se há poucos máximos locais, o reinício aleatório encontra uma boa solução rapidamente
Recozimento simulado n n Meta heurística baseada no resfriamento de metais. Adaptação da Subida na encosta Pode adotar um estado que oferece perda (encosta abaixo). Capaz de fugir de ótimos locais.
Quando descer a encosta? n O algoritmo admite descidas desde que estas não sejam ”bruscas demais” (decisão tomada em função do tempo)
Busca em feixe local n n n Passo 0: Começa com k estados gerados aleatoriamente. Passo 1: Os sucessores dos k estados são calculados. Passo 2: Caso algum estado seja o objetivo, o algoritmo pára. Passo 3: São selecionados os melhores k sucessores de todos os estados para o próximo passo. Passo 4: Volta ao passo 1.
Busca em feixe local n Muito parecido com a execução paralela de uma busca local, mas o algoritmo oferece uma vantagem: n Ele concentra a busca onde são oferecidas as melhores soluções (onde ele supõe que pode encontrar os melhores valores para o problema).
Exemplo: n n n n f(k 0) = 25 -> N(k 0) = S 1, S 2, S 3 f(k 1) = 49 -> N(k 1) = S 4, S 5, S 6, S 7 f(k 2) = 52 -> N(k 2) = S 8, S 9 ____________ f(S 1) = 26; f(S 2) = 23; f(S 3) = 30; f(S 4) = 49; f(S 5) = 48; f(S 6) = 53 ; f(S 7) = 56; f(S 8) = 50; f(S 9) = 55;
Algoritmos Genéticos n n Baseados na teoria da evolução das espécies de Darwin. É uma variação da busca em feixe local.
Algoritmos Genéticos Conceitos básicos n População Inicial n Gerada Randomicamente – tamanho m. n Direcionada: n n Em alguns problemas, encontrar um indivíduo válido é uma problema de otimização, portanto necessitam de heurísticas para gera-lo. Exemplos: Problema de Roteamento de Veículos com Janela de Tempo, Timetabling (horários escolares).
Algoritmos Genéticos Conceitos básicos n Seleção dos Pais: n Inclui o passo de avaliação dos indivíduos: n Fitness (mensura o quanto cada indivíduo está adaptado ao ambiente). n Pode ter executada por diferentes técnicas: n n Roleta (probabilístico) Torneio entre indivíduos
Algoritmos Genéticos Seleção dos Pais: Adaptabilidade
Algoritmos Genéticos Conceitos básicos n Recombinação (cruzamento) n n Merge entre dois ou mais indivíduos (n: 1): r(i 1, i 2, . . . ) = ix A maneira com que é feito depende da representação dos indivíduos: n n n Binária Inteira Ponto flutuante Objetos Compostos Acrescenta indivíduos na população
Recombinação Exemplo: + =
Algoritmos Genéticos Conceitos básicos n Mutação n Ocorre na relação de 1: 1 n n A maneira com que é feito depende da representação dos indivíduos: n n n m(i 1) = ix Binária Inteira Ponto flutuante Objetos Compostos Não afeta no tamanho da população
Mutação Exemplo:
Seleção dos sobreviventes Exemplo n n n População S 1 -> f(S 1) = 10; S 2 -> f(S 2) = 12; S 3 -> f(S 3) = 11; NS 1 -> f(NS 1) = 13; NS 1 -> f(NS 2) = 9; Nova população: S 1 -> f(S 1) = 12; S 2 -> f(S 2) = 13; S 3 -> f(S 3) = 10;
Algoritmos Genéticos Resumo
Característica de sucesso para o algoritmo genético: Diferencial n A recombinação eleva a qualidade da busca, pois oferece uma maior diversidade para a população de indivíduos.
Busca local em espaço contínuo n Origem no século XVII (Newton e Leibniz). n Função sucessor gera infinitos novos estados
Busca local em espaço contínuo. Exemplo: Problema: n Objetivo: Construir 3 aeroportos no estado de modo a minimizar a distância de todas as cidades ao aeroporto mais próximo. n Espaço de busca: R 2 Encontrar os melhores (x 1, y 1)(x 2, y 2)(x 3, y 3) segundo o objetivo n
Exemplo: Aeroportos n n Para solucionar o problema, é utilizado o gradiente da função, onde é fornecido a direção e a magnitude da inclinação mais íngreme do problema. Solução corrente = solução corrente + alfa * gradiente, onde alfa é uma constante suficientemente pequena, para obter precisão no resultado.
Busca local em espaço contínuo Exemplo bidimensional Como encontrar o máximo? f(x) = y; f(x) y’ = 0 Igualando a tangente a 0, podemos obter TODOS os pontos de máximo e mínimo da função y=f(x). x
Busca local em espaço contínuo – outra solução n Em problemas de espaços de busca contínuos podemos tornar o ambiente discreto e aplicar algoritmos como a subida na encosta, recozimento simulado ou algoritmos genéticos, para fugir de ótimos locais.
Busca on-line n n n Algoritmos de busca on-line não podem calcular a vizinhança de um estado. Eles só conhecem um estado quando estão nele. São baseados em ações. Primeiro executa uma ação, depois observa o ambiente.
Analogia – Busca on-line n Bebê n Pode tomar várias ações, conhece algumas conseqüências. Está em estado de exploração do mundo.
Busca on-line n Visão do agente: n n Ações(n): Retorna todas as ações que o agente pode tomar a partir do estado n; custo(n, a, n’): apenas pode ser utilizado quando o agente já tomou a ação a no estado n anteriormente;
Busca on-line n n Em uma busca off-line, o sistema para retroceder apenas retira elementos da fila ou desempilha nós para explorar outras ramificações da busca; Na busca on-line, o agente necessita retroceder fisicamente até o estado desejado.
Busca on-line n Voltando a busca local. . n A busca local já é um agente de busca online, pois “enxerga” apenas o seu estado atual (não possui memória);
Aprendizado em busca on-line n n O agente pode armazenar um mapa do ambiente (como no mundo de Wumpus); O aprendizado deve considerar se o mundo é determinístico ou não;
Potencial de agentes de busca on-line n Fatores aumentam a qualidade dos agentes de busca on-line: n n n Conhecimento; Raciocínio; Tais artefatos fazem o agente capaz de prever a função sucessora de cada estado.
Busca heurística Dúvidas?
- Slides: 62