Você está na página 1de 5

1

Busca Heurstica ou Informada


Estratgias de Busca Cega
encontram solues para problemas pela gerao sistemtica de novos estados, que so comparados ao objetivo; so ineficientes na maioria dos casos:

RESOLUO DE PROBLEMAS (BUSCA HEURSTICA)


Prof. Marcilio Carlos Pereira de Souto UFRN Adaptado por Profa. Patricia Jaques - Unisinos

Como encontrar um barco perdido?

so capazes de calcular apenas o custo de caminho do n atual ao n inicial (funo g), para decidir qual o prximo n da fronteira a ser expandido. essa medida no necessariamente conduz a busca na direo do objetivo. no podemos procurar no oceano inteiro...

Busca Heurstica
Estratgias de Busca Heurstica
utilizam conhecimento especfico do problema na escolha do prximo n a ser expandido barco perdido
correntes martimas, vento, etc...

Funes Heursticas
Funo heurstica (h) Exemplo:
estima o custo do caminho mais barato do estado atual at o estado final mais prximo. so especficas para cada problema encontrar a rota mais curta entre duas cidades hdd(n) = distncia direta entre o n n e o n final. ela deve ser admissvel, i.e., nunca superestimar o custo real da soluo ex. distncia direta (hdd) admissvel porque o caminho mais curto entre dois pontos sempre uma linha reta

Aplica uma funo de avaliao a cada n na fronteira do espao de estados Heurstica


essa funo estima o custo de caminho do n atual at o objetivo mais prximo utilizando uma funo heurstica do grego heuriskein, encontrar, descobrir introduzida em IA por George Polya em 1957 (livro How to Solve It) conhecimento e, por isso, marcou quebra da IA com a pesquisa operacional

Como escolher uma boa funo heurstica?

Busca pela Melhor Escolha (BME) Best-First Search


Busca genrica onde o n de menor custo aparente na fronteira do espao de estados expandido primeiro Duas abordagens bsicas:
1. Busca Gulosa (Greedy search) 2. Algoritmo A* e suas variantes

Busca Gulosa
Tenta expandir o n mais prximo do n final com base na estimativa feita pela funo heurstica h f(s) = h(s)
Exemplo: Problema de rotas da Romnia, a funo heurstica seria a menor distncia em linha reta entre 2 cidades

Greedy Local Search: Example

Greedy Local Search: Example

Greedy Local Search: Example

Greedy Local Search: Example

11

Busca Gulosa
Custo de busca mnimo! Porm no tima: No completa:
No exemplo, no expande ns fora do caminho No exemplo escolhe o caminho que mais econmico primeira vista, via Fagaras porm, existe um caminho mais curto via Rimnicu Vilcea pode entrar em loop se no detectar a expanso de estados repetidos pode tentar desenvolver um caminho infinito

12

Algoritmo A*
ainda a tcnica de busca mais usada Funo de avaliao:
f (n) = g (n) + h (n) g (n) = distncia real de n ao n inicial h (n) = distncia estimada de n ao n final
distncia em linha reta

Custo de tempo e memria: O(bd) para pior caso

Idia: Evitar expandir caminhos que j esto muito caros, mas tambm considerar os que tm menor expectativa de custo.

A* expande o n de menor valor de f na fronteira do espao de estados.

13

Algoritmo A*
function A*(Estado inicial): Nodo PriorityQueue(f) fronteira {fila ordenada por f} fronteira.add (new Nodo(inicial)) while not fronteira.isEmpty() do Nodo n fronteira.remove() if n.getEstado().Meta() then return n end if fronteira.add(n.sucessores()) end while return null

Exemplo A*
h(s): straight-line distance to Bucharest:

449 75 + 374

239 220 118 + 329 447 393 413 317 418 366 455 496 336 + 160 415 140 + 253 417

239 + 178

220 + 193 317 + 98

Algoritmo A* : anlise do comportamento


15

A estratgia completa e tima Custo de tempo:

16

Inventando Funes Heursticas


Como escolher uma boa funo heurstica h? h depende de cada problema particular. h deve ser admissvel Existem estratgias genricas para definir h:
no superestimar o custo real da soluo 1) Relaxar restries do problema; 2) Usar informao estatstica; 3) Identificar os atributos mais relevantes do problema

se heurstica for admissvel, ou seja, nunca superestime custo exponencial com o comprimento da soluo, porm boas funes heursticas diminuem significativamente esse custo guarda todos os ns expandidos na memria
para possibilitar o backtracking f no decrescente

Custo memria: O (bd) Eficincia tima

s expande ns com f(n) f*, onde f* o custo do caminho timo nenhum outro algoritmo timo garante expandir menos ns

17

(1) Relaxando o problema


Problema Relaxado: Exemplo: jogo dos 8 nmeros:
verso simplificada do problema original, onde os operadores so menos restritivos operador original: um nmero pode mover-se de A para B se A adjacente a B e B est vazio 4 5 8 busca exaustiva 320 estados possveis 1 6
Fator de ramificao 3 e d 20 passos 7 2 3

18

Heursticas para jogo 8 nmeros


Heursticas possveis
h1 = no. de elementos fora do lugar (h1=7) h2 = soma das distncias de cada nmero posio final (h2=2+3+3+2+4+2+0+2=18)

Manhattan Distance d de dois pontos (x,y) e (u,v), d = |x-u| + |y-v|

Operadores relaxados:

1. um nmero pode mover-se de A para B (h1) 2. um nmero pode mover-se de A para B se A adjacente a B (h2)

Você também pode gostar