Professional Documents
Culture Documents
In which we see how information about the state space can prevent algorithms from blundering about in the dark
Busca Informada
Busca exaustiva (cega)
encontram solues para problemas pela gerao sistemtica de novos estados, que so comparados ao objetivo; so ineficientes na maioria dos casos:
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.
Busca Heurstica
utiliza conhecimento especfico do problema na escolha do prximo n a ser expandido funo de avaliao estima o custo do caminho do n atual at o objetivo (conhecida como heurstica), ie, essa estimativa indica o quanto o n promissor com relao a atingir a meta estabelecida
Funes Heursticas
Funo heurstica h
nome vem do grego heuriskein arquimedes (heureka) introduzida em IA por George Polya em 1957 (livro How to Solve It) estima o custo do menor caminho do estado atual at o estado final mais prximo
Funes Heursticas
Como escolher uma boa funo heurstica?
ela deve ser admissvel (nunca superestimar o custo real da soluo) distncia direta (hdd) admissvel porque o caminho mais curto entre dois pontos sempre uma linha reta
Funes Heursticas
Funo heurstica (h)
estima o custo do caminho mais barato do estado atual at o estado final mais prximo. so especficas para cada problema
Exemplo:
encontrar a rota mais curta entre duas cidades hdd(n) = distncia direta entre o n n e o n final.
Estratgia Best-First
Busca genrica onde o n de menor custo aparente na fronteira do espao de estados expandido primeiro A idia bsica prosseguir com a busca sempre a partir do n mais promissor Duas abordagens bsicas:
1. Busca Gulosa (Greedy search) 2. Algoritmo A* e suas variantes
Estratgia Best-First
Algoritmo:
Funo-Insere - ordena ns com base na Funo-Avaliao
Estratgia Best-First
A funo f(n) ser construda como: f(n) = g(n) + h(n)
g(n) uma estimativa do custo do caminho timo de s at n h(n) uma estimativa do custo do caminho timo de n at t
s g(n) n h(n) t
10
Estratgia Best-First
Quando um n n encontrado pelo processo de busca temos a seguinte situao
Um caminho de s at n j foi encontrado e seu custo pode ser calculado como a soma dos custos dos arcos no caminho
Este caminho no necessariamente um caminho timo de s at n (pode existir um caminho melhor de s at n ainda no encontrado pela busca) mas seu custo serve como uma estimativa g(n) do custo mnimo de s at n
O outro termo, h(n) mais problemtico pois o mundo entre n e t no foi ainda explorado
Portanto, h(n) tipicamente uma heurstica, baseada no conhecimento geral do algoritmo sobre o problema em questo Como h depende do domnio do problema, no h um mtodo universal para construir h
11
Busca Gulosa...
Busca Gulosa
Custo de busca mnimo!
No exemplo, no expande ns fora do caminho
Porm no tima:
No exemplo escolhe o caminho que mais econmico primeira vista, via Fagaras porm, existe um caminho mais curto via Rimnicu Vilcea
No completa:
pode entrar em loop se no detectar a expanso de estados repetidos pode tentar desenvolver um caminho infinito
Algoritmo A*
ainda a tcnica de busca mais usada Tenta minimizar o custo total da soluo combinando:
Busca Gulosa: econmica, porm no completa nem tima Busca de Custo Uniforme (Djikstra): ineficiente, porm completa e tima
Funo de avaliao:
f (n) = g (n) + h (n) g (n) = distncia de n ao n inicial h (n) = distncia estimada de n ao n final A* expande o n de menor valor de f na fronteira do espao de estados.
16
Algoritmo A*
Algoritmo: funo Busca-A* (problema) retorna uma soluo ou falha
Busca-Melhor-Escolha (problema, g+h)
17
Algoritmo A* : exemplo
Ir de Arad a Bucharest
18
Usando A*
Propriedades do Algoritmo A*
Se h admissvel, f(n) nunca ir superestimar o custo real da melhor soluo atravs de n A funo f(n) sempre cresce analisando os caminhos de cima para baixo Para provar a otimalidade do algoritmo necessrio que a monotonicidade seja garantida
nunca deve ocorrer que f(n) < f(n), onde n o pai de n para evitar pode se utilizar
f(n) = max ( f(n), g(n) + h(n) ) (pathmax equation)
uma vez que todo caminho que passa por n passa tambm por n (seu pai)
20
Monotonicidade
Uma heurstica monotnica se e somente se ela obedece a Desigualdade Triangular; Desigualdade Triangular: dois lados de um tringulo no podem somar menos que o terceiro lado. Pearl, J. (1984) Heuristics: Intelligent Search Strategies for Computer Problem Solving. Addison-Wesley, Reading, Massachusetts.
21
A* define Contornos
23
24
Best-First & A*
2
s
Distncia entre duas cidades atravs de um caminho (rodovia) 2 5 5
a
2 2
f
2
d
3
g
2
t
25
Best-First & A*
Dado um mapa, o objetivo encontrar o caminho mais curto entre a cidade inicial s e a cidade destino t Para estimar o custo do caminho restante da cidade X at a cidade t utilizaremos a distncia em linha reta denotada por dist(X,t) f(X) = g(X) + h(X) = = g(X) + dist(X,t)
2
s
2 5 5
a
2 2
4 3 3
f
2
d
3
g
2
t
26
Best-First & A*
Neste exemplo, podemos imaginar a busca best-first consistindo em dois processos, cada um explorando um dos caminhos alternativos Processo 1 explora o caminho via a Processo 2 explora o caminho via e
3 2
s
2 5 5
a
2 2
4 3
f
2
d
3
g
2
t
27
Best-First & A*
f(a)=g(a)+dist(a,t)=2+5=7 f(e)=g(e)+dist(e,t)=2+7=9 Como o valor-f de a menor do que de e, o processo 1 (busca via a) permanece ativo enquanto o processo 2 (busca via e) fica em estado de espera
3 2
f(e)=9
s
2 5 5
f(a)=7 2
4 3
f
2
d
3
g
2
t
28
Best-First & A*
f(a)=g(a)+dist(a,t)=2+5=7 f(e)=g(e)+dist(e,t)=2+7=9 Como o valor-f de a menor do que de e, o processo 1 (busca via a) permanece ativo enquanto o processo 2 (busca via e) fica em estado de espera f(b)=g(b)+dist(b,t)=4+4=8
2
f(e)=9
s
2 5 5
f(a)=7 2
4 3 3
b
f(b)=8
f
2
d
3
g
2
t
29
Best-First & A*
f(a)=g(a)+dist(a,t)=2+5=7 f(e)=g(e)+dist(e,t)=2+7=9 Como o valor-f de a menor do que de e, o processo 1 (busca via a) permanece ativo enquanto o processo 2 (busca via e) fica em estado de espera f(b)=g(b)+dist(b,t)=4+4=8 f(c)=g(c)+dist(c,t)=6+4=10 Como f(e)<f(c) agora o processo 2 prossegue para a cidade f
2
f(e)=9
s
2 5 5
f(a)=7 2
4 f(c)=10 3 3
b
f(b)=8
f
2
d
3
g
2
t
30
Best-First & A*
f(f)=g(f)+dist(f,t)=7+4=11 Como f(f)>f(c) agora o processo 2 espera e o processo 1 prossegue
2
f(e)=9
s
2 5 5
f(a)=7 2 f(f)=11
4 f(c)=10 3 3
b
f(b)=8
f
2
d
3
g
2
t
31
Best-First & A*
f(f)=g(f)+dist(f,t)=7+4=11 Como f(f)>f(c) agora o processo 2 espera e o processo 1 prossegue f(d)=g(d)+dist(d,t)=9+3=12 Como f(d)>f(f) o processo 2 reinicia
2
f(e)=9
s
2 5 5
f(a)=7 2 f(f)=11
4 f(c)=10 3 3
b
f(b)=8
f
2
d
3 f(d)=12
g
2
t
32
Best-First & A*
f(f)=g(f)+dist(f,t)=7+4=11 Como f(f)>f(c) agora o processo 2 espera e o processo 1 prossegue f(d)=g(d)+dist(d,t)=9+3=12 Como f(d)>f(f) o processo 2 reinicia chegando at o destino t f(g)=g(g)+dist(g,t)=9+2=11
3 2
f(e)=9
s
2 5 5
f(a)=7 2 f(f)=11
4 f(c)=10 3
b
f(b)=8
f
2
d
3 f(d)=12
g
2 f(g)=11
t
33
Best-First & A*
f(f)=g(f)+dist(f,t)=7+4=11 Como f(f)>f(c) agora o processo 2 espera e o processo 1 prossegue f(d)=g(d)+dist(d,t)=9+3=12 Como f(d)>f(f) o processo 2 reinicia chegando at o destino t f(g)=g(g)+dist(g,t)=9+2=11 f(t)=g(t)+dist(t,t)=11+0=11
2
f(e)=9
s
2 5 5
f(a)=7 2 f(f)=11
4 f(c)=10 3 3
b
f(b)=8
f
2
d
3 f(d)=12
g
2 f(g)=11
f(t)=11
34
Best-First & A*
A busca, comeando pelo n inicial continua gerando novos ns sucessores, sempre expandindo na direo mais promissora de acordo com os valores-f Durante este processo, uma rvore de busca gerada tendo como raiz o n inicial e o algoritmo best-first continua expandindo a rvore de busca at que uma soluo seja encontrada
35
Best-First & A*
s
f(a)=7
f(e)=9
36
Best-First & A*
s
f(a)=7
f(e)=9
f(b)=8
37
Best-First & A*
s
f(a)=7
f(e)=9
f(b)=8
f(c)=10
38
Best-First & A*
s
f(a)=7
f(e)=9
f(b)=8
f(f)=11
f(c)=10
39
Best-First & A*
s
f(a)=7
f(e)=9
f(b)=8
f(f)=11
f(c)=10
f(d)=12
d
40
Best-First & A*
s
f(a)=7
f(e)=9
f(b)=8
f(f)=11
f(c)=10
f(g)=11
f(d)=12
d
41
Best-First & A*
s
f(a)=7
f(e)=9
f(b)=8
f(f)=11
f(c)=10
f(g)=11
f(d)=12
f(t)=11
42
43
IDA*
IDA* similar busca em profundidade iterativa
Na busca em profundidade iterativa as buscas em profundidade so realizadas em limites crescentes de profundidade; em cada iterao a busca em profundidade limitada pelo limite de profundidade atual Em IDA* as buscas em profundidade so limitadas pelo limite atual representando valores-f dos ns
44
IDA*
procedure ida(Inicio,Solucao) Limite f(Inicio) repeat Iniciando no n Incio, realize busca em profundidade sujeita condio que um n N expandido apenas se f(N) <= Limite if busca em profundidade encontrou n final then indique Soluo encontrada else Calcule NovoLimite como o mnimo valor-f dos ns alcanados ao ultrapassar Limite, ou seja, NovoLimite min{f(N): N gerado pela busca e f(N) > Limite} endif Limite NovoLimite until Soluo encontrada
45
IDA*
s
f(s)=6
f(a)=7
f(e)=9
f(b)=8
f(f)=11
f(c)=10
f(g)=11
f(d)=12
f(t)=11
46
IDA*
s
f(a)=7
f(e)=9
f(b)=8
f(f)=11
f(c)=10
f(g)=11
f(d)=12
f(t)=11
47
Bounded A*)
48
49
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)
50
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|
51
53
Se o custo de execuo da funo heurstica for maior do que expandir ns, ento ela no deve ser usada.
uma boa funo heurstica deve ser eficiente
56
Caso existam muitas funes heursticas para o mesmo problema, e nenhuma delas domine as outras, usa-se uma heurstica composta:
h (n) = max (h1 (n), h2 (n),,hm(n)) Assim definida, h admissvel e domina cada funo hi individualmente
58
60
Exerccio!
12 4 7
s
8 1
2 8
a
1 6 2 4
b
7 3 4
c
1
1 5
h
1 2 0 2 2
i
1
k
61
Ordem de visita: s a d a e a s b s c f h j h g
Referncias
Material Didtico Prof. Marclio Souto UFRN, 2005 Material Didtico Prof. Jos Augusto Baranauskas USP Ribeiro Preto, 2005 Material Didtico Prof. Huei Diana Lee Unioeste, 2002 Russel, S. e Norvig, P. Artificial Intelligence: A modern approach, Prentice Hall, 1995 Referncias indicadas no curso
63