busca com informação e exploração “busca heurística” humberto césar brandão de oliveira...
TRANSCRIPT
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 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çã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 pela melhor escolha
Características da Busca Gulosa pela melhor escolha
Não é ótima (como dado no exemplo anterior);
É incompleta;
Porque incompleta?Exemplo: Origem: Neamt. Destino: Fagaras
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.
A*A*
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
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
Sibiu Arad
Fagaras Oradea R. Vilcea
Pitesti Sibiu
366
393
415
526
417
447
413
553
BRPM Arad
Sibiu Arad
Fagaras Oradea R. Vilcea
366
393
415
526
447
417
Sibiu Bucareste591
450
BRPM Arad
Sibiu Arad
Fagaras Oradea R. Vilcea
Pitesti Sibiu
366
393
450
526
417
447
417
553
Bucareste R. Vilcea418
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*) 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 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.
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.
Heurísticas de aprendizagem a partir da experiência
Utiliza-se aprendizado indutivo; São utilizadas técnicas como o
aprendizado por reforço para diagnosticar o valor de h(n).
Busca local Existem problemas, que o caminho
até a solução é irrelevante: N-rainhas; Caixeiro Viajante Roteamento de Veículos Timetabling
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 sistemáticos são inadequados.
A busca local não estima a distância do estado atual até o objetivo: Em alguns problemas não é trivial (ou impossível)
estimar esta distância.
Conceitos básicos
x
f(x)
Máximo global
Planície Máximo local
Máximo local (plano)
Subida na encosta“Hill Climbing” O algoritmo procura o pico, onde
nenhum vizinho tem valor mais alto.
Subida na encostaAlgoritmo básico
Função SubidaNaEncosta(problema) retorna um ótimo localEntrada: um problemaVariáveis: corrente : Nó
vizinho: Nócorrente = criarEstadoInicial(problema)Repita
vizinho = acharMelhorSucessor(corrente)se vizinho.funcaoObjetivo <= corrente.funcaoObjetivo entãoretornar corrente;fim secorrente = vizinho;
Fim repita
Variações 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: 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 encostaAnálise
O algoritmo é completo? SIM, uma vez que cada nó tratado pelo algoritmo é
sempre um estado completo (uma solução) O algoritmo é ótimo?
TALVEZ, quando iterações suficientes forem permitidas...
O sucesso deste método depende muito do formato da superfície do espaço de estados: Se há poucos máximos locais, o reinício aleatório
encontra uma boa solução rapidamente
Recozimento simulado
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? O algoritmo admite descidas desde
que estas não sejam ”bruscas demais” (decisão tomada em função do tempo)
Busca em feixe local 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 Muito parecido com a execução
paralela de uma busca local, mas o algoritmo oferece uma vantagem: 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: f(k0) = 25 -> N(k0) = S1, S2, S3 f(k1) = 49 -> N(k1) = S4, S5, S6, S7 f(k2) = 52 -> N(k2) = S8, S9 ________________________ f(S1) = 26; f(S2) = 23; f(S3) = 30; f(S4) = 49; f(S5) = 48; f(S6) = 53 ; f(S7) =
56; f(S8) = 50; f(S9) = 55;
Algoritmos Genéticos
Baseados na teoria da evolução das espécies de Darwin.
É uma variação da busca em feixe local.
Algoritmos GenéticosConceitos básicos População Inicial
Gerada Randomicamente – tamanho m.
Direcionada: 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éticosConceitos básicos
Seleção dos Pais: Inclui o passo de avaliação dos indivíduos:
Fitness (mensura o quanto cada indivíduo está adaptado ao ambiente).
Pode ter executada por diferentes técnicas: Roleta (probabilístico) Torneio entre indivíduos
Algoritmos GenéticosSeleção dos Pais: Adaptabilidade
Algoritmos GenéticosConceitos básicos Recombinação (cruzamento)
Merge entre dois ou mais indivíduos (n:1):r(i1, i2, ...) = ix
A maneira com que é feito depende da representação dos indivíduos:
Binária Inteira Ponto flutuante Objetos Compostos
Acrescenta indivíduos na população
RecombinaçãoExemplo:
+ =
Algoritmos GenéticosConceitos básicos Mutação
Ocorre na relação de 1:1 m(i1) = ix
A maneira com que é feito depende da representação dos indivíduos:
Binária Inteira Ponto flutuante Objetos Compostos
Não afeta no tamanho da população
MutaçãoExemplo:
Seleção dos sobreviventesExemplo
População S1 -> f(S1) = 10; S2 -> f(S2) = 12; S3 -> f(S3) = 11; NS1 -> f(NS1) =
13; NS1 -> f(NS2) = 9;
Nova população:S1 -> f(S1) = 12;S2 -> f(S2) = 13;S3 -> f(S3) = 10;
Algoritmos GenéticosResumo
Característica de sucesso para o algoritmo genético: Diferencial
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
Origem no século XVII (Newton e Leibniz).
Função sucessor gera infinitos novos estados
Busca local em espaço contínuo. Exemplo:
Problema: Objetivo: Construir 3 aeroportos no estado
de modo a minimizar a distância de todas as cidades ao aeroporto mais próximo.
Espaço de busca: R2
Encontrar os melhores(x1, y1)(x2, y2)(x3, y3) segundo o objetivo
Exemplo: Aeroportos 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ínuoExemplo bidimensional
x
f(x)
Como encontrar o máximo?f(x) = y;y’ = 0Igualando a tangente a 0, podemos obter TODOS os pontos de máximo e mínimo da função y=f(x).
Busca local em espaço contínuo – outra solução
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 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 Bebê
Pode tomar várias ações, conhece algumas conseqüências. Está em estado de exploração do mundo.
Busca on-line Visão do agente:
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 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 Voltando a busca local....
A busca local já é um agente de busca on-line, pois “enxerga” apenas o seu estado atual (não possui memória);
Aprendizado em busca on-line 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
Fatores aumentam a qualidade dos agentes de busca on-line: Conhecimento; Raciocínio;
Tais artefatos fazem o agente capaz de prever a função sucessora de cada estado.
Busca heurística
Dúvidas?