Buscar

Busca3-heuristica

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 34 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 34 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 34 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

1
Busca Heurística (Informada)
Flávia Barros & Ricardo Prudêncio
2
 Estratégias de Busca Exaustiva (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
mesmo a Busca de custo uniforme…
pois só dispõe do custo de caminho do nó inicial ao nó atual (função g) para decidir qual o próximo nó da fronteira a ser expandido
essa medida nem sempre conduz a busca na direção do objetivo
Como encontrar um barco perdido?
não podemos procurar no oceano inteiro...
observamos a rota prevista, as correntes marítimas, o vento, etc...
3
Estratégias Busca Heurística (Informada)
Utilizam conhecimento específico do problema na escolha do próximo nó a ser expandido
barco perdido
correntes marítimas, vento, última posição registrada, etc...
Aplicam de uma função de avaliação a cada nó na fronteira do espaço de estados
essa função estima o custo de caminho do nó atual até o objetivo mais próximo utilizando uma função heurística
Função heurística
estima o custo do caminho mais barato do estado atual até o estado final mais próximo.
4
Busca Heurística
 Classes de algoritmos para busca heurística:
1. Busca pela melhor escolha (Best-First search)
2. Busca com limite de memória
3. Busca com melhora iterativa
5
Busca pela Melhor Escolha
Best-First Search
Busca pela Melhor Escolha - BME 
Busca genérica onde o nó de menor custo “aparente” na fronteira do espaço de estados é expandido primeiro
Função-Insere 
insere novos nós na fronteira ordenados com base em uma Função-Avaliação
Que está baseada em uma função heurística
por isso dizemos que é custo aparente...
6
Busca pela Melhor Escolha
 Algoritmo geral
Função-Insere 
insere novos nós na fronteira ordenados com base na Função-Avaliação
	 
função Busca-Melhor-Escolha (problema, Função-Avaliação) 
		 retorna uma solução ou falha
 Busca-Genérica (problema, Função-Insere)
7
Busca pela Melhor Escolha
BME: duas abordagens básicas:
1. Busca Gulosa (Greedy search) 
2. Algoritmo A*
8
BME: Busca Gulosa
Nessa estratégia, a função de avaliação apenas “olha para frente”
Tenta expandir o nó mais próximo do nó objetivo com base na estimativa feita por uma função heurística h
Função de avaliação f = função heurística h
Função heurística - h (n)
estima o custo do caminho mais barato do estado atual n até o estado final - nó objetivo - mais próximo
não considera o custo de caminho da raiz até o nó atual (g(n)).
	
9
Funções Heurísticas
Funções heurísticas são específicas para cada problema
 Exemplos: 
Encontrar a rota mais curta entre duas cidades 
h(n) = distância direta entre o nó atual n e o objetivo
Jogo dos 8 números
h(n) = quantidade de números fora da sua posição final na configuração do objetivo
10
Funções Heurísticas
Como escolher uma boa função heurística?
ela deve ser admissível
i.e., nunca superestimar o custo real da solução
Distância direta (hdd) é admissível porque o caminho mais curto entre dois pontos é sempre uma linha reta
 Veremos mais sobre isso na próxima aula
Busca Gulosa
Exemplo: encontrar a rota mais barata de Canudos a Petrolândia 
Vamos usar a heurística da distância direta para ordenar a Fronteira
Nós que ainda serão expandidos pelo algoritmo 
hdd(n) = distância direta entre o nó n e o nó objetivo
hdd(Can-Petr) ~ 140 Km 
Valor estimado por mim 
Existem 2 caminhos a considerar:
Canudos, Jeremoabo, P. Afonso, Petrolândia
Canudos, Belém do S. Francisco, Petrolândia
11
12
Exemplo: encontrar a rota mais barata de Canudos a Petrolândia 
 hdd(n) = distância direta entre o nó n e o nó objetivo
hdd ~140Km 
13
Exemplo: Rota 1 entre Canudos a Petrolândia 
 hdd(Jer-Petr) ~ 120 Km
hdd ~120Km 
14
Exemplo: Rota 2 entre Canudos a Petrolândia 
hdd(BSF-Petr) ~ 120 Km
hdd ~100Km 
Exemplo: viajar de Canudos a Petrolândia
Árvore de busca para Busca Gulosa
Canudos
Estado inicial =>
Canudos
Belém S.F.	 Jeremoabo
Canudos
 BSF 	Jeremoabo
	
h = 100Km 
h = 120Km 
F1 = {BSF (100Km); Jere(120Km)}
F2 = {Petrol (0Km); Jere(120Km)}
Petrolândia	
h = 0Km 
h = 120Km 
F3 = {Petrol (0Km); Jere(120Km)}
Fronteira - F0 = {Canudos (140Km)}
16
Busca Gulosa
Não é ótima
escolhe o caminho que é mais econômico à primeira vista
Belém do S. Francisco, Petrolândia = 334 Km
porém, existe um caminho mais curto de Canudos a Petrolândia
Jeremoabo, P. Afonso, Petrolândia = 232 Km
A solução via Belém do S. Francisco foi escolhida por este algoritmo porque
hdd(BSF-Petr) ~100 Km 
hdd(Jer-Petr) ~120 Km 
17
Busca Gulosa
Não é completa
pode entrar em looping se o algoritmo não detectar a expansão de estados repetidos
pode tentar desenvolver um caminho infinito
Busca Gulosa: outro exemplo
Viajar de Arad a Bucharest (Romênia)
450 km
Busca Gulosa: Árvore de busca
Semelhante à busca em profundidade 
450 km
20
Busca Gulosa
Semelhante à busca em profundidade com backtracking
Custo computacional - tempo e memória: O(bd)
Ainda assim, tem custo de busca mínimo!
não expande muitos nós fora do caminho da solução
Porém não é ótima nem completa
semelhante à busca em profundidade, como dito acima.
21
Busca pela Melhor Escolha
Relembrando...
BME 
O nó de menor custo “aparente” na fronteira do espaço de estados é expandido primeiro
Função-Insere 
insere novos nós na fronteira ordenados com base na Função-Avaliação
Duas abordagens básicas:
1. Busca Gulosa (Greedy search) 
2. Algoritmo A*
22
BME: Algoritmo A*
A* expande o nó de menor valor de f na Fronteira do espaço de estados
Tenta minimizar o custo total da solução combinando:
Busca Gulosa (h)
econômica, porém não é completa nem ótima
Busca de Custo Uniforme (g)
ineficiente, porém completa e ótima
f - Função de avaliação do A*:
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
23
Algoritmo A*
Se h é admissível, então f (n) é admissível também
f nunca irá superestimar o custo real da melhor solução através de n
pois g guarda o valor exato do caminho já percorrido.
Com A*, a rota escolhida entre Canudos e Petrolândia é de fato a mais curta (via Jeremoabo), uma vez que:	
f (n) = g (n) + h (n)
f (BSF) = 175 +100 = 275 Km
Total real = 334 Km
f (Jer) = 92,4 +120 = 212,4 Km
Total real = 232 KM
 
Algoritmo A*: outro exemplo
Viajar de Arad a Bucharest
B. Gulosa
A*
Se fosse pela Busca Gulosa...
450 km
Usando A*
Bucharest
f=
418 km
27
Algoritmo A*: 
Análise do comportamento
A estratégia é completa e ótima
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) 
b = fator de expansão
d = profundidade da solução
28
Algoritmo A*
 Análise do comportamento
A estratégia apresenta eficiência ótima
nenhum outro algoritmo ótimo garante expandir menos nós 
A* só expande nós com f(n) ≤ C*, onde C* é o custo do caminho ótimo
Para se garantir otimalidade do A*, o valor de f em um caminho particular deve ser não decrescente!!!
f (sucessor(n)) ≥ f(n) 
i.e., o custo de cada nó gerado no mesmo caminho nunca é menor do que o custo de seus antecessores
29
Algoritmo A*
 Análise do comportamento
f = g + h deve ser não decrescente
g é não decrescente (para operadores não negativos)
custo real do caminho já percorrido 
h deve ser não-crescente (consistente, monotônica)
h (n) ≥ h (sucessor(n))
i.e., quanto mais próximo do nó final, menor o valor de h 
isso vale para a maioria das funções heurísticas
Quando h não é consistente, para se garantir otimalidade do A*, temos:
quando f(n+1) < f (n) 
usa-se f(n+1) = max ( f(n), g(n+1) + h(n+1) )
A* define Contornos
f(n) ≤ C* 
 fator de expansão
 próximo de 1
31
Busca com Limite de Memória 
Memory Bounded Search
IDA* (Iterative Deepening A*)
igual ao aprofundamento iterativo,porém seu limite é dado pela função de avaliação (f) , e não pela profundidade (d).
necessita de menos memória do que A*
SMA* (Simplified Memory-Bounded A*) 
O número de nós guardados em memória é fixado previamente
32
IDA* - Iterative Deepening A*
33
SMA* - Simplified Memory-Bounded A* 
34
Próxima aula
Inventando funções heurísticas
Algoritmos de Melhorias Iterativas
Otimização!

Outros materiais