Busca com Informação e
Exploração
“Busca heurística”
Humberto César Brandão de Oliveira
[email protected]
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*
Distância em linha
reta para Bucharest:
449
75 + 374
239
239 + 178
140 + 253
220
417
118 + 329
447
393
220 + 193
413
317
418
366
415
455
496
336 + 160
317 + 98
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
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*)


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
Máximo global
f(x)
Planície
Máximo local
Máximo local (plano)
x
Subida na encosta
“Hill Climbing”

O algoritmo procura o pico, onde nenhum
vizinho tem valor mais alto.
Subida na encosta
Algoritmo básico
Função SubidaNaEncosta(problema) retorna um ótimo local
Entrada: um problema
Variáveis:
corrente : Nó
vizinho: Nó
corrente = criarEstadoInicial(problema)
Repita
vizinho = acharMelhorSucessor(corrente)
se vizinho.funcaoObjetivo <= corrente.funcaoObjetivo então
retornar corrente;
fim se
corrente = 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 encosta
Aná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éticos
Conceitos 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éticos
Conceitos 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éticos
Seleção dos Pais: Adaptabilidade
Algoritmos Genéticos
Conceitos 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ção
Exemplo:
+
=
Algoritmos Genéticos
Conceitos básicos

Mutação

Ocorre na relação de 1:1


A maneira com que é feito depende da
representação dos indivíduos:





m(i1) = ix
Binária
Inteira
Ponto flutuante
Objetos Compostos
Não afeta no tamanho da população
Mutação
Exemplo:
Seleção dos sobreviventes
Exemplo






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éticos
Resumo
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í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

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 online, 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?
Download

Busca heurística