You are on page 1of 63

Inteligncia Artificial Estratgias de Busca Informada

Huei Diana Lee

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.

Como encontrar um barco perdido?


no podemos procurar no oceano inteiro...
3

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 so especficas para cada problema


rota mais barata de Corumb a Campo Grande hdd(n) = distncia direta entre n e o n final
5

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.

Como escolher uma boa funo heurstica?


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
7

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

funo Busca-Melhor-Escolha (problema,Funo-Avaliao) Avaliao retorna uma soluo


Busca-Genrica (problema, Funo-Insere) Insere

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 (Greedy Search)


Semelhante busca em profundidade com backtracking Tenta expandir o n mais prximo do n final com base na estimativa feita pela funo heurstica h Tenta minimizar o custo estimado para se atingir o objetivo Algoritmo: funo Busca-Gulosa (problema) retorna uma soluo ou falha
Busca-Melhor-Escolha (problema, h)
12

Busca Gulosa: Exemplo


Ir de Arad a Bucharest

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

Custo de tempo e memria: O(bd)


15

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

. fator de expanso prximo de 1


22

Algoritmo A* : anlise do comportamento


A estratgia completa e tima Custo de tempo:
exponencial com o comprimento da soluo, porm boas funes heursticas diminuem significativamente esse custo

Custo memria: O (bd)


guarda todos os ns expandidos na memria
para possibilitar o backtracking

23

Algoritmo A* : anlise do comportamento


Eficincia tima
s expande ns com f(n) f*, onde f* o custo do caminho timo
f no decrescente

nenhum outro algoritmo timo garante expandir menos ns

24

Best-First & A*
2

s
Distncia entre duas cidades atravs de um caminho (rodovia) 2 5 5

a
2 2

4 Distncia entre a cidade em questo e a cidade destino (t) em linha reta 3 3

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

Busca com Limite de Memria Memory Bounded Search


IDA* (Iterative Deepening A*)
extenso do aprofundamento iterativo, porm seu limite dado pela funo de avaliao (f) (contornos), e no pela profundidade (d). necessita de menos memria do que A* mas continua tima

SMA* (Simplified Memory-Bounded A*)


Similar ao A* O nmero de ns guardados em memria fixado previamente
conforme vai avanando, descarta os piores ns (embora guarde informaes a respeito deles) e atualiza os melhores valores dos caminhos

completa e tima se a memria alocada for suficiente

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

SMA* (Simplified Memory-

Bounded A*)

48

Inventando Funes Heursticas


Como escolher uma boa funo heurstica h? h depende de cada problema particular. h deve ser admissvel
no superestimar o custo real da soluo

Existem estratgias genricas para definir h:


1) Relaxar restries do problema; 2) Usar informao estatstica; 3) Identificar os atributos mais relevantes do problema

49

(1) Relaxando o problema


Problema Relaxado:
verso simplificada do problema original, onde os operadores so menos restritivos

Exemplo: jogo dos 8 nmeros:


operador original: um nmero pode mover-se de A para B se A adjacente a B e B est vazio 4 5 8 20 estados possveis busca exaustiva 3
Fator de ramificao 3 e d 20 passos 1 6 7 2 3

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 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|
51

(2) Usando informao estatstica


Funes heursticas podem ser melhoradas com informao estatstica:
executar a busca com um conjunto de treinamento (e.g., 100 configuraes diferentes do jogo), e computar os resultados. se, em 90% dos casos, quando h (n) = 14, a distncia real da soluo 18, ento, quando o algoritmo encontrar 14 para o resultado da funo, vai substituir esse valor por 18.
52

(2) Usando informao estatstica


Informao estatstica expande menos ns, porm elimina admissibilidade:
em 10% dos casos do problema acima, a funo de avaliao poder superestimar o custo da soluo, no sendo de grande auxlio para o algoritmo encontrar a soluo mais barata.

53

(3) Usando Atributos/caractersticas


Caractersticas do problema podem ser usadas para mensurar o quo se est prximo da soluo ex. xadrez
nmero de peas de cada lado somatrio dos pesos das peas de cada lado (Peo-1, ..., Rainha-9) nmero de peas sob ataque

Quando no se conhece a importncia das caractersticas, pode-se aprend-las (w1f1+w2f2+...+wnfn)


54

Qualidade da funo heurstica


Qualidade da funo heurstica: medida atravs do fator de expanso efetivo (b*).
b* o fator de expanso de uma rvore uniforme com N ns e nvel de profundidade d
N = 1 + b* + (b*)2 + ... + (b*)d , onde
N = total de ns expandidos para uma instncia de problema d = profundidade da soluo;
55

Qualidade da funo heurstica


Mede-se empiricamente a qualidade de h a partir do conjunto de valores experimentais de N e d.
uma boa funo heurstica ter o b* muito prximo de 1.

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

Experimento com 100 problemas 8-nmeros

Uma boa funo heurstica ter o b* muito prximo de 1.

Escolhendo Funes Heursticas


sempre melhor usar uma funo heurstica com valores mais altos, contanto que ela seja admissvel.
ex. h2 melhor que h1

hi domina hk hi(n) hk(n) n no espao de estados


h2 domina h1 no exemplo anterior

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

Heurstica... por toda IA


A noo de heurstica sempre foi alm da busca e de uma formalizao via funo de um estado Heurstica
escolha, prioridade, estratgia na busca de uma soluo razovel onde no h soluo tima ou recurso para determin-la No dia a dia: heurstica para dirigir, namorar, estudar,...

Em IA: em todas as reas como conhecimento de controle


ex. escolha de regras a serem disparadas (SBC) ex. escolha de vis de generalizao (aprendizagem) ...
59

Qual seria uma boa heurstica para o jogo da velha?


X

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

Busca em Profundidade (com backtracking) s a d e h j g b c f i k


62

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

You might also like