Você está na página 1de 22

1

Buscando Soluções

Busca Heurística
2
Busca Heurística ou Informada

 Estratégias de Busca Cega


• encontram soluções para problemas pela geração sistemática
de novos estados, que são comparados ao objetivo;
• são ineficientes na maioria dos casos:
– são capazes de calcular apenas o custo de caminho do nó actual
ao nó inicial (função g), para decidir qual o próximo nó a ser
expandido.
– essa medida não necessariamente conduz a busca na direção ao
objectivo.

• Como encontrar um barco perdido?


– não podemos procurar no oceano inteiro...
3
Busca Heurística
 Estratégias de Busca Heurística
• utilizam conhecimento específico do problema na escolha do
próximo nó a ser expandido
• barco perdido
– correntes marítimas, vento, etc...

 Aplica de uma função de avaliação a cada nó do espaço de


estados
• essa função estima o custo de caminho do nó atual até ao
objectivo mais próximo utilizando uma função heurística

 Heurística
• do grego heuriskein, encontrar, descobrir
• introduzida em AI por George Polya em 1957 (livro How to Solve It)
• é conhecimento e, por isso, marcou quebra da AI com a pesquisa
operacional
4
Funções Heurísticas

 Função heurística (h)


• estima o custo do caminho mais barato do estado actual até ao
estado final mais próximo.
• são específicas para cada problema

 Exemplo:
• encontrar a rota mais curta entre duas cidades
• hdd(n) = distância direta entre o nó n e o nó final.

 Como escolher uma boa função heurística?


• ela deve ser admissível, i.e., nunca superestimar o custo real da
solução
• ex. distância direta (hdd) é admissível porque o caminho mais
curto entre dois pontos é sempre uma linha reta
Busca pela Melhor Escolha (BME) 5

Best-First Search(BFS)
 Busca genérica onde o nó de menor custo “aparente” na
fronteira do espaço de estados é expandido primeiro
 Duas abordagens básicas:
1. Busca Gulosa (Greedy search)
2. Algoritmo A* e suas variantes

 Algoritmo:
Função-Insere - ordena nós com base na Função-Avaliação
função Busca-Melhor-Escolha (problema,Função-Avaliação)
retorna uma solução
Busca-Genérica (problema, Função-Insere)
6
Busca Gulosa

 Semelhante à busca em profundidade com backtracking


 Tenta expandir o nó mais próximo do nó final com base na
estimativa feita pela função heurística h

 Algoritmo:
função Busca-Gulosa (problema)
retorna uma solução ou falha
Busca-Melhor-Escolha (problema, h)
Exemplo: Ir de Arad a Bucharest

Início

objectivo
Busca Gulosa...
Busca Gulosa...
Busca Gulosa...
Busca Gulosa...

178
Busca Gulosa...

O solução encontrada não é a solução óptima.


A Solução óptima passa por Rimnicu Vilcea e Pitest e tem 32 km a menos.
13
Busca Gulosa
 Custo de busca mínimo!
• No exemplo, não expande nós fora do caminho

 Porém não é óptima:


• No exemplo escolhe o caminho que é mais económico à
primeira vista, via Fagaras
• porém, existe um caminho mais curto via Rimnicu Vilcea

 Não é completa:
• pode entrar em loop se não detectar a expansão de estados
repetidos
• pode tentar desenvolver um caminho infinito

 Custo de tempo e memória: O(bd)


14
Algoritmo A*
 Busca gulosa
• minimiza o custo estimado de n até o objectivo => h(n)
• Não é completa nem óptima

 Busca por custo uniforme (Djikstra)


• minimiza o custo do caminho da raiz até n => g(n)
• É completa e óptima

 Idéia de A*: combinar as duas estratégias


• Evitar expandir caminhos que já são caros
• Função de Avaliação f(n) = g(n) + h(n)
– f(n) = custo estimado total da solução de custo mais
baixo passando por n
15
Algoritmo A*

 É ainda a técnica de busca mais usada

 Tenta minimizar o custo total da solução combinando:

 Função de avaliação:
• f (n) = g (n) + h (n)
• g (n) = distância de n ao nó inicial
• h (n) = distância estimada de n ao nó final
• A* expande o nó de menor valor de f na fronteira do espaço de
estados.
16
Algoritmo A*

 Se h é admissível, f (n) nunca irá superestimar o custo


real da melhor solução através de n.

 Algoritmo:
função Busca-A* (problema)
retorna uma solução ou falha
Busca-Melhor-Escolha (problema, g+h)
17
Algoritmo A* : exemplo
Ir de Arad a Bucharest

Início

objectivo
Usando A*
19
Algoritmo A* : análise do comportamento
 A estratégia é completa e óptima
 Custo de tempo:
• exponencial com o comprimento da solução, porém boas funções
heurísticas diminuem significativamente esse custo
– o fator de expansão fica próximo de 1

 Custo memória: O (bd)


• guarda todos os nós expandidos na memória
– para possibilitar o backtracking

 Eficiência óptima
• só expande nós com f(n)  f*, onde f* é o custo do caminho óptimo
– f é não decrescente
• nenhum outro algoritmo óptimo garante expandir menos nós
20
A* define Contornos

. fator de expansão
próximo de 1
Inteligencia Artificial

Uma certa cidade é composta por 100 casais.


Toda gente nesta pequena cidade vive segundo a seguinte regra:
Se algum marido trair a sua esposa, o marido é executado assim que sua mulher
descobre. Todas as mulheres na cidade apenas podem fazer fofocas sobre os maridos de
outras mulheres. Nenhuma mulher jamais pode dizer à outra mulher se o marido desta
estiver a trair. Desta forma, cada mulher na cidade sabe sobre todos os maridos que
traem na cidade, exceto o dela própria. Supõe-se também que, o marido permanece em
silêncio sobre sua infidelidade. Um dia, o Governador/administrador da cidade anuncia
à toda a cidade que há pelo menos 1 marido traidor na cidade.

Analise e diz o que você acha que acontece?

CC-FCUAN - 2011 Dr. Vicente


Inteligencia Artificial

Imagine 5 casas de 5 diferentes cores. Em cada casa mora uma pessoa de uma nacionalidade diferente, sendo que
esses 5 proprietários bebem diferentes bebidas, fumam diferentes tipos de cigarro e têm um certo animal de
estimação. Observa-se que nenhum deles têm o mesmo animal, nem fumam o mesmo cigarro e nem bebem a
mesma bebida. Sabe-se que:

O inglês vive na casa vermelha.


O sueco tem cachorros como animais de estimação.
O dinamarquês bebe chá.
A casa verde fica à esquerda da casa branca.
O dono da casa verde bebe café.
A pessoa que fuma Pall Mall cria pássaros.
O dono da casa amarela fuma Dunhill.
O homem que vive na casa do centro bebe leite.
O norueguês vive na primeira casa.
O homem que fuma Blends vive ao lado do que tem gatos.
O homem que cria cavalos vive ao lado do que fuma Dunhill.
O homem que fuma Bluemaster bebe cerveja.
O alemão fuma Prince.
O norueguês vive ao lado da casa azul.
O homem que fuma Blend é vizinho do que bebe água.

A questão é: qem tem o peixe?

CC-FCUAN - 2011 Dr. Vicente

Você também pode gostar