Você está na página 1de 47

Busca Heurística e Local

Wladimir Araújo Tavares


Busca Heurística

„ A idéia é levar em conta o objetivo para decidir qual


caminho escolher.
„ Pode existir conhecimento extra que pode ser utilizado para
guiar o processo de busca
„ h(n) é uma estimativa do custo do caminho de um nó n até
um nó objetivo
„ h(n) deve ser simples de ser computada, de preferência ela
deve ser derivada das propriedades do próprio nó
„ h(n) é um subestimativa se não existe nenhum outro
caminho de n até o objetivo que seja menor do que h(n)
Exemplo de heurística

„ Se os nós são pontos em um plano e o custo é a


distância entre os pontos
‰ h(n) = distância em linha reta de n até o objetivo mais
próximo
Construindo funções heurísticas

„ Exemplo de heurísticas para o 8-puzzle


‰ h1(n) = número de quadrados em locais errados
‰ h2(n) = distância Manhattan total => número de espaços que deve
ser movido para chegar no local correto
‰ h1(s) = 7 (só o número 7 está no local correto)
‰ h2(s) = 2+3+3+2+4+2+0+2 = 18
„ Relaxar o problema pode ser uma boa forma de conseguir
uma heurística
Greedy Best First

„ A idéia é selecionar o caminho no qual o último


nó está mais perto do objetivo, de acordo com a
função heurística
„ Seleciona o caminho na fronteira com menor
valor de h(n)
„ Trata a fronteira como uma fila de prioridade
ordenada por h
Problema do caminho
Greedy Best-First
Greedy Best-First
Greedy Best-First
Resultados

„ O solução encontrada não é a solução ótima.


„ A Solução ótima passa por Rimnicu Vilcea e
Pitest e tem 32 km a menos.
Análise

„ Usa espaço exponencial no tamanho do


caminho (como a busca em largura)
„ Não garante encontrar a solução mesmo se ela
existir. Pode ficar em um laço
„ Quando ela encontra a solução, não pode
garantir que é a melhor solução (caminho mais
curto)
Exemplo de ciclo
Propriedades
„ Completa Não, pode ser completa com
verificação de estados repetidos e espaços de
busca finito.
„ Tempo O(bm) exponencial no tamanho do
caminho, pode reduzir drasticamente com uma
boa heurística.
„ Espaço O(bm) mantém todos os nós
armazenados na memória como a busca em
largura.
„ Ótima Não
A*

„ Usa tanto o custo do caminho (g(n)) quanto o valor da


heurística (h(n))
‰ g(n) – custo do caminho do nó inicial até o nó n

‰ h(n) – valor da heurística do nó n até um nó objetivo

‰ f(n) = g(n) + h(n). Estima o custo total do caminho


do nó inicial até o nó objetivo passando por n.
Busca A*

„ Combina:
‰ busca pelo menor custo primeiro (baseada em g(n))

‰ busca pelo melhor primeiro (baseada em h(n))

„ A fronteira é organizada como uma fila de prioridade


ordenada por f(n)
„ Sempre seleciona o nó da fronteira com menor custo
estimado da distância entre o nó inicial e o nó objetivo
passando por aquele nó
Busca pelo caminho mínimo

„ Problema:
‰ Ir de Arad até Bucharest.

„ Função heurística:
‰ Distância em linha reta entre a cidade n e
Bucharest.
„ Satisfaz a condição de admissibilidade, pois não existe
distância menor entre dois pontos do que uma reta.
„ É uma boa heurística, pois induz o algoritmo a atingir o
objetivo mais rapidamente
Busca A*
Busca A*
Busca A*
Busca A*
Busca A*
Resultado

„ Encontrou o caminho mínimo entre Arad e


Bucharest.
„ Uma “boa” heurística foi utilizada.
Admissibilidade de A*

„ Se existe uma solução, A* sempre encontra


a solução ótima se:
‰ O fator de ramificação for finito
‰ O custo do caminho nunca decresce (os arcos
não possuem custos negativos)
‰ h(n) nunca superestima o custo do caminho,ou
seja, h(n) <= o custo real do caminho (heurística
admissível)
Propriedades

„ Completa sim, a menos que haja infinitos nós


com f <= f(G)
„ Tempo O(bm) exponencial no tamanho do
caminho
„ Espaço O(bm) mantém todos os nós na memória.
„ Pode ser melhorado com algumas
modificações utilizando técnicas de limite de
memória como busca iterativa entre outras.
Heurísticas admissíveis
„ Uma heurística é consistente se para cada nó n, para cada
sucessor n' de n gerado por uma ação a temos,
‰ h(n) ≤ c(n,a,n') + h(n') desigualdade triangular

em que: c(n,a,n') é o custo associado ao caminho de n a n‘ através


de a
„ Se h é consistente, então temos
‰ f(n') = g(n') + h(n')

‰ = g(n) + c(n,a,n') + h(n')

‰ ≥ g(n) + h(n)

‰ ≥ f(n)

„ Logo, o valor de f(n) nunca decresce ao longo de um caminho


„ Nota: toda a heurística consistente é admissível
Consistência

Exemplo de heurísticas para o 8-puzzle


h1(n) = número de quadrados em locais errados
h2(n) = distância Manhattan total => número de espaços que
deve ser movido para chegar no local correto
h1(s) = 7 (só o número 7 está no local correto)
h2(s) = 2+3+3+2+4+2+0+2 = 18
h1 e h2 são consistentes?
Qualidade de uma busca

„ Fator efetivo de Ramificação b*:


„ Se o número total de nós gerados pelo A* para um
determinado problema é N, e se a profundidade da
solução é d. Então b* é o fator que uma árvore de
profundidade d precisaria ter para conter N + 1 nós,
ou seja,

„ Uma boa heurística deve apresentar b* o mais


próximo possível de 1
Comparação entre h1 e h2
Dominância

„ Para qualquer nodo n, h2(n) ≥ h1(n)


‰ É dito que h2 domina h1
‰ Logo, h2 expande menos nodos que h1
‰ A princípio, todos os nodos com f(n) < C* serão
expandidos
„ É vantajoso escolher heurísticas com
valores grandes, desde que elas não
ultrapassem o custo real e o tempo para
computá-las não seja muito grande
Criando heurísticas

„ Heurísticas admissíveis podem ser obtidas a


partir de soluções ótimas de versões
relaxadas do problema
„ Problema relaxado é um problema com

menos restrições que o original


„ É importante que a solução do problema

relaxado seja simples de se obter


Criando Heurísticas

„ 8-Puzzle original
‰ Pode-se mover uma peça de A para B se A é
adjacente a B e B está vazio
„ 8-Puzzle relaxado
‰ Uma peça pode ser movida de A para B caso A
seja adjacente a B (h2)
‰ Uma peça pode ser movida de A para B caso B
esteja vazia (Heurística de Gaschnig)
‰ Uma peça pode ser movida de A para B (h1)
Criando Heurística

„ Como fazer se não for difícil de determinar


qual é a melhor heurística?
„ h(n) = max{h1, h2 ,..., hm }
‰ h(n) é admissível se todas as outras forem
‰ h(n) domina todas as outras
‰ Nesse caso, a melhor heurística é utilizada em
cada situação específica
Algoritmos de Melhoria Iterativa

„ Em muitos problemas de otimização, a trajetória é


irrelevante para a solução do problema; o próprio
estado-objetivo é a solução.
„ Espaço de Estados = conjunto de configurações
completas
‰ Ache a configuração ótima (PCV)
‰ Ache uma configuração que satisfaz algumas restrições (8-
rainhas)
„ Em tais casos, é melhor usar um algoritmo de
melhoria iterativa ;mantém-se um estado atual e
tenta melhora-ló
„ PCV – Ache a menor excursão que visita cada somente
uma vez

„ Ponha n rainhas em um tabuleiro n x n, de maneira que


não tenha nenhuma duas rainhas na mesma linha,
coluna e diagonal.
Hill-Climbing

„ É como escalar o Everest como névoa espessa


e amnésia.

„ Pode ficar presos em máximos locais.


Simulated Annealing

„ Ideia: escapar ao mínimos locais permitindo que


se façam movimentos “maus”, mas vai
gradualmente decrementando a sua frequência.
‰ Em vez de escolher o melhor sucessor,
escolhe um sucessor aleatoriamente que
tipicamente é “aceite” se melhorar a situação.
„ Consegue-se provar que se temperatura T
diminuir suficientemente devagar (em função do
schedule), entãoa procura simulated annealing
vai encontrar um máximo global com
probabilidade próxima do 1
Simulated Anneling

„ Metáfora: imaginar a tarefa de pôr uma bola


de pingpong no buraco mais profundo de
uma superfície cheia de buracos
‰ Uma solução é deixara bola ir parar a um mínimo
local e depois abanar a superfície de modo a tirá-
la do mínimo local
„ Simulated annealing começa por “abanar”
muito no início e depois vai abanando cada
vez menos
Simulated Annealing
Algoritmo Genético

„ População Inicial: Começa com k estados


gerados aleatoriamente
„ O estado sucessor é gerado através da
combinação de dois estados (pais)
‰ Produz a próxima geração de estados por
seleção,cruzamento e mutação
‰ Função fitness: atribui valores mais altos aos
melhores estados
Algoritmo Genéticos
Algoritmos Genéticos
Cruzamento (Cross-over) e Mutação
Algorimos Genéticos

„ Vários parâmetros devem ser determinados:


‰ K : tamanho da população inicial
‰ Taxa de mutação
‰ Números de gerações que devem ser geradas
„ Determinar a maneira da fazer o cross-over