63
Inteligência Artificial Inteligência Artificial Estratégias de Busca Informada Huei Diana Lee

Inteligência Artificial Estratégias de Busca Informadadainf.ct.utfpr.edu.br/~fabro/IA_I/busca/IA_Estrategias_Busca_Inf.pdf · encontrado pela busca) mas seu custo serve como uma

Embed Size (px)

Citation preview

Inteligência ArtificialInteligência Artificial

Estratégias de Busca Informada

Huei Diana Lee

2

In which we see how informationabout the state space can

prevent algorithms from blunderingabout in the dark

3

Busca InformadaBusca InformadaBusca 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:são capazes de calcular apenas o custo de caminho do nó atual ao nó inicial (função g), para decidir qual o próximo nó da fronteira a ser expandido;essa medida não necessariamente conduz a busca na direção do objetivo.

Como encontrar um barco perdido?não podemos procurar no oceano inteiro...

4

Busca Heurísticautiliza conhecimento específico do problema na escolha do próximo nó a ser expandidofunção de avaliação estima o custo do caminho do nó atual até o objetivo (conhecida como heurística), ie, essa estimativa indica o quanto o nó é promissor com relação a atingir a meta estabelecida

5

Funções HeurísticasFunções HeurísticasFunção heurística 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 próximo

Funções heurísticas são específicas para cada problema

rota mais barata de Corumbá a Campo Grandehdd(n) = distância direta entre n e o nó final

6

Funções HeurísticasFunções Heurísticas

Como escolher uma boa função heurística?ela deve ser admissível (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

7

Funções HeurísticasFunções HeurísticasFunção heurística (h)

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

Exemplo: encontrar a rota mais curta entre duas cidadeshdd(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çãoex. distância direta (hdd) é admissível porque o caminho mais curto entre dois pontos é sempre uma linha reta

8

Busca genérica onde o nó de menor custo “aparente” na fronteira do espaço de estados é expandido primeiroA idéia básica é prosseguir com a busca sempre a partir do nó mais promissorDuas abordagens básicas:1. Busca Gulosa (Greedy search) 2. Algoritmo A* e suas variantes

Estratégia Estratégia BestBest--FirstFirst

9

Algoritmo:FunçãoFunção--InsereInsere - ordena nós com base na

FunçãoFunção--AvaliaçãoAvaliação

função BuscaBusca--MelhorMelhor--EscolhaEscolha(problema,FunçãoFunção--AvaliaçãoAvaliação)

retorna uma soluçãoBuscaBusca--GenéricaGenérica (problema, FunçãoFunção--InsereInsere)

Estratégia Estratégia BestBest--FirstFirst

10

Estratégia Estratégia BestBest--FirstFirstA função f(n) será construída como: f(n) = g(n) + h(n)

g(n) é uma estimativa do custo do caminho ótimo de s até nh(n) é uma estimativa do custo do caminho ótimo de n até t

s

n

t

g(n)

h(n)

11

Estratégia Estratégia BestBest--FirstFirstQuando um nó n é encontrado pelo processo de busca temos a seguinte situação

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 não é necessariamente um caminho ótimo de saté n (pode existir um caminho melhor de s até n ainda não encontrado pela busca) mas seu custo serve como uma estimativa g(n) do custo mínimo de s até n

O outro termo, h(n) é mais problemático pois o “mundo” entre n e t não foi ainda explorado

Portanto, h(n) é tipicamente uma heurística, baseada no conhecimento geral do algoritmo sobre o problema em questãoComo h depende do domínio do problema, não há um método universal para construir h

12

Busca Gulosa (Busca Gulosa (GreedyGreedy SearchSearch))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

Tenta minimizar o custo estimado para se atingir o objetivo

Algoritmo:

função BuscaBusca--GulosaGulosa (problema) retorna uma solução ou falha

BuscaBusca--MelhorMelhor--EscolhaEscolha (problema, h)

Busca Gulosa: ExemploBusca Gulosa: ExemploIr deIr de AradArad aa BucharestBucharest

Busca Gulosa...Busca Gulosa...

15

Busca GulosaBusca GulosaCusto de busca mínimo!

No exemplo, não expande nós fora do caminho Porém não é ótima:

No exemplo escolhe o caminho que é mais econômico à primeira vista, via Fagarasporém, existe um caminho mais curto via RimnicuVilcea

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

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

16

Algoritmo A*Algoritmo A*É ainda a técnica de busca mais usada Tenta minimizar o custo total da solução combinando:

Busca Gulosa: econômica, porém não é completa nem ótimaBusca de Custo Uniforme (Djikstra): ineficiente, porém completa e ótima

Função de avaliação:f (n) = g (n) + h (n)g (n) = distância de n ao nó inicialh (n) = distância estimada de n ao nó finalA* expande o nó de menor valor de f na fronteira do espaço de estados.

17

Algoritmo A*Algoritmo A*

Algoritmo:função BuscaBusca--A*A* (problema)

retorna uma solução ou falhaBuscaBusca--MelhorMelhor--EscolhaEscolha (problema, g+h)

18

Algoritmo A* : exemploAlgoritmo A* : exemploIr deIr de AradArad a a BucharestBucharest

Usando A*Usando A*

20

Propriedades do Algoritmo A*Propriedades do Algoritmo A*Se h é admissível, f(n) nunca irá superestimar o custo real da melhor solução através de nA função f(n) sempre cresce analisando os caminhos de cima para baixoPara provar a otimalidade do algoritmo é necessário 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 também por n (seu pai)

21

MonotonicidadeMonotonicidade

Uma heurística é monotônica se e somente se ela obedece a Desigualdade Triangular;Desigualdade Triangular: dois lados de um triângulo não podem somar menos que o terceiro lado.Pearl, J. (1984) Heuristics: Intelligent Search Strategies for Computer Problem Solving. Addison-Wesley, Reading, Massachusetts.

22

A* define ContornosA* define Contornos

. fator de expansão próximo de 1

23

Algoritmo A* : Algoritmo A* : análise do comportamentoaná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

Custo memória: O (bd)guarda todos os nós expandidos na memória

para possibilitar o backtracking

24

Algoritmo A* : Algoritmo A* : análise do comportamentoanálise do comportamento

Eficiência ótimasó expande nós com f(n) ≤ f*, onde f* é o custo do caminho ótimo

f é não decrescentenenhum outro algoritmo ótimo garante expandir menos nós

25

BestBest--FirstFirst & A*& A*

se

a

bc

d

f

g

2

2

2

2

3

3 2

2

5

7

5

444

32

t

Distância entre duas cidades através de um

caminho (rodovia)

Distância entre a cidade em questão e a cidade destino (t) em

linha reta

26

BestBest--FirstFirst & A*& A*Dado um mapa, o objetivo é encontrar o caminho mais curto entre a cidade inicial s e a cidade destino tPara estimar o custo do caminho restante da cidade X até a cidade t utilizaremos a distância em linha reta denotada por dist(X,t)f(X) = g(X) + h(X) =

= g(X) + dist(X,t)

se

a

bc

d

f

g

2

2

2

2

3

3 2

2

5

7

5

444

32

t

27

BestBest--FirstFirst & A*& A*Neste exemplo, podemos imaginar a busca best-firstconsistindo em dois processos, cada um explorando um dos caminhos alternativosProcesso 1 explora o caminho via aProcesso 2 explora o caminho via e

se

a

bc

d

f

g

2

2

2

2

3

3 2

2

5

7

5

444

32

t

28

BestBest--FirstFirst & A*& A*f(a)=g(a)+dist(a,t)=2+5=7f(e)=g(e)+dist(e,t)=2+7=9Como 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

se

a

bc

d

f

g

2

2

2

2

3

3 2

2

5

7

5

444

32

t

f(e)=9

f(a)=7

29

BestBest--FirstFirst & A*& A*f(a)=g(a)+dist(a,t)=2+5=7f(e)=g(e)+dist(e,t)=2+7=9Como 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 esperaf(b)=g(b)+dist(b,t)=4+4=8

se

a

bc

d

f

g

2

2

2

2

3

3 2

2

5

7

5

444

32

t

f(e)=9

f(a)=7

f(b)=8

30

BestBest--FirstFirst & A*& A*f(a)=g(a)+dist(a,t)=2+5=7f(e)=g(e)+dist(e,t)=2+7=9Como 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 esperaf(b)=g(b)+dist(b,t)=4+4=8f(c)=g(c)+dist(c,t)=6+4=10Como f(e)<f(c) agora o processo 2 prossegue para a cidade f

se

a

bc

d

f

g

2

2

2

2

3

3 2

2

5

7

5

444

32

t

f(c)=10

f(e)=9

f(a)=7

f(b)=8

31

BestBest--FirstFirst & A*& A*f(f)=g(f)+dist(f,t)=7+4=11Como f(f)>f(c) agora o processo 2 espera e o processo 1 prossegue

se

a

bc

d

f

g

2

2

2

2

3

3 2

2

5

7

5

444

32

t

f(c)=10

f(f)=11

f(e)=9

f(a)=7

f(b)=8

32

BestBest--FirstFirst & A*& A*f(f)=g(f)+dist(f,t)=7+4=11Como f(f)>f(c) agora o processo 2 espera e o processo 1 prosseguef(d)=g(d)+dist(d,t)=9+3=12Como f(d)>f(f) o processo 2 reinicia

se

a

bc

d

f

g

2

2

2

2

3

3 2

2

5

7

5

444

32

t

f(c)=10

f(f)=11

f(d)=12

f(e)=9

f(a)=7

f(b)=8

33

BestBest--FirstFirst & A*& A*f(f)=g(f)+dist(f,t)=7+4=11Como f(f)>f(c) agora o processo 2 espera e o processo 1 prosseguef(d)=g(d)+dist(d,t)=9+3=12Como f(d)>f(f) o processo 2 reinicia chegando até o destino tf(g)=g(g)+dist(g,t)=9+2=11

se

a

bc

d

f

g

2

2

2

2

3

3 2

2

5

7

5

444

32

t

f(c)=10

f(f)=11

f(d)=12f(g)=11

f(e)=9

f(a)=7

f(b)=8

34

BestBest--FirstFirst & A*& A*f(f)=g(f)+dist(f,t)=7+4=11Como f(f)>f(c) agora o processo 2 espera e o processo 1 prosseguef(d)=g(d)+dist(d,t)=9+3=12Como f(d)>f(f) o processo 2 reinicia chegando até o destino tf(g)=g(g)+dist(g,t)=9+2=11f(t)=g(t)+dist(t,t)=11+0=11

se

a

bc

d

f

g

2

2

2

2

3

3 2

2

5

7

5

444

32

t

f(c)=10

f(f)=11

f(d)=12f(g)=11

f(e)=9

f(a)=7

f(b)=8

f(t)=11

35

BestBest--FirstFirst & A*& A*

A busca, começando pelo nó inicial continua gerando novos nós sucessores, sempre expandindo na direção mais promissora de acordo com os valores-fDurante 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 solução seja encontrada

36

BestBest--FirstFirst & A*& A*s

ea f(e)=9f(a)=7

37

BestBest--FirstFirst & A*& A*s

ea

b

f(e)=9f(a)=7

f(b)=8

38

BestBest--FirstFirst & A*& A*s

ea

b

c

f(e)=9f(a)=7

f(b)=8

f(c)=10

39

BestBest--FirstFirst & A*& A*s

ea

b

c

f

f(e)=9f(a)=7

f(b)=8

f(c)=10

f(f)=11

40

BestBest--FirstFirst & A*& A*s

ea

b

c

d

f

f(e)=9f(a)=7

f(b)=8

f(c)=10

f(f)=11

f(d)=12

41

BestBest--FirstFirst & A*& A*s

ea

b

c

d

f

g

f(e)=9f(a)=7

f(b)=8

f(c)=10

f(f)=11

f(d)=12

f(g)=11

42

BestBest--FirstFirst & A*& A*s

ea

b

c

d

f

g

t

f(e)=9f(a)=7

f(b)=8

f(c)=10

f(f)=11

f(d)=12

f(g)=11

f(t)=11

43

Busca com Limite de Memória Busca com Limite de Memória MemoryMemory BoundedBounded SearchSearch

IDA* (Iterative Deepening A*)extensão do aprofundamento iterativo, porém seu limite é dado pela função de avaliação (f) (contornos), e não pela profundidade (d).necessita de menos memória do que A* mas continua ótima

SMA* (Simplified Memory-Bounded A*) Similar ao A*O número de nós guardados em memória é fixado previamente

conforme vai avançando, descarta os piores nós (embora guarde informações a respeito deles) e atualiza os melhores valores dos caminhos

É completa e ótima se a memória alocada for suficiente

44

IDA*IDA*

IDA* é similar à busca em profundidade iterativa

Na busca em profundidade iterativa as buscas em profundidade são realizadas em limites crescentes de profundidade; em cada iteração a busca em profundidade é limitada pelo limite de profundidade atualEm IDA* as buscas em profundidade são limitadas pelo limite atual representando valores-f dos nós

45

IDA*IDA*procedure ida(Inicio,Solucao)

Limite ← f(Inicio)repeatIniciando no nó Início, realize busca emprofundidade sujeita à condição que um nó N éexpandido apenas se f(N) <= Limiteif busca em profundidade encontrou nó final then

indique ’Solução encontrada’else

Calcule NovoLimite como o mínimo valor-f dos nósalcançados ao ultrapassar Limite, ou seja, NovoLimite ← min{f(N): N gerado pela busca e f(N) > Limite}

endifLimite ← NovoLimite

until Solução encontrada

46

IDA*IDA*s

ea

b

c

d

f

g

t

f(e)=9f(a)=7

f(b)=8

f(c)=10

f(f)=11

f(d)=12

f(g)=11

f(t)=11

f(s)=6

47

IDA*IDA*s

ea

b

c

d

f

g

t

f(e)=9f(a)=7

f(b)=8

f(c)=10

f(f)=11

f(d)=12

f(g)=11

f(t)=11

48

SM

A*

S

MA

* (( S

impl

ified

Sim

plifi

edM

emor

yM

emor

y --B

ound

edB

ound

edA

*)

A*)

49

Inventando Funções HeurísticasInventando Funções HeurísticasComo escolher uma boa função heurística h?h depende de cada problema particular.h deve ser admissível

não superestimar o custo real da solução Existem estratégias genéricas para definir h:1) Relaxar restrições do problema;2) Usar informação estatística;3) Identificar os atributos mais relevantes do

problema

50

Problema Relaxado:versão simplificada do problema original, onde os operadores são menos restritivos

Exemplo: jogo dos 8 números: operador original: um número pode mover-se de A para B se A é adjacente a B e B está vaziobusca exaustiva ≈ 320 estados possíveis

Fator de ramificação ≈ 3 e d ≈ 20 passos

Operadores relaxados:1. um número pode mover-se de A para B (h1)2. um número pode mover-se de A para B se A é adjacente a B (h2)

4 5 81 6

7 32

(1) Relaxando o problema(1) Relaxando o problema

51

Heurísticas possíveish1 = no. de elementos fora do lugar (h1=7)h2 = soma das distâncias de cada número à posição 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|

Heurísticas para jogo 8 númerosHeurísticas para jogo 8 números

52

(2) Usando informação estatística(2) Usando informação estatística

Funções heurísticas podem ser “melhoradas” com informação estatística:

executar a busca com um conjunto de treinamento (e.g., 100 configurações diferentes do jogo), e computar os resultados.se, em 90% dos casos, quando h (n) = 14, a distância real da solução é 18,então, quando o algoritmo encontrar 14 para o resultado da função, vai substituir esse valor por 18.

53

(2) Usando informação estatística(2) Usando informação estatística

Informação estatística expande menos nós, porém elimina admissibilidade:

em 10% dos casos do problema acima, a função de avaliação poderá superestimar o custo da solução, não sendo de grande auxílio para o algoritmo encontrar a solução mais barata.

54

(3) Usando Atributos/características(3) Usando Atributos/características

Características do problema podem ser usadas para mensurar o quão se está próximo da soluçãoex. xadrez

número de peças de cada ladosomatório dos pesos das peças de cada lado (Peão-1, ..., Rainha-9) número de peças sob ataque

Quando não se conhece a importância das características, pode-se aprendê-las (w1f1+w2f2+...+wnfn)

55

Qualidade da função heurísticaQualidade da função heurística

Qualidade da função heurística: medida através do fator de expansão efetivo (b*).

b* é o fator de expansão de uma árvore uniforme com N nós e nível de profundidaded

N = 1 + b* + (b*)2 + ... + (b*)d , onde N = total de nós expandidos para uma instância de

problemad = profundidade da solução;

56

Qualidade da função heurísticaQualidade da função heurística

Mede-se empiricamente a qualidade de h a partir do conjunto de valores experimentais de N e d.

uma boa função heurística terá o b* muito próximo de 1.

Se o custo de execução da função heurística for maior do que expandir nós, então ela não deve ser usada.

uma boa função heurística deve ser eficiente

Experimento com 100 problemasExperimento com 100 problemas88--númerosnúmeros

Uma boa função heurística terá o b* muito próximo de 1.

58

Escolhendo Funções HeurísticasEscolhendo Funções HeurísticasÉ sempre melhor usar uma função heurística com valores mais altos, contanto que ela seja admissível.

ex. h2 melhor que h1hi domina hk ⇒ hi(n) ≥ hk(n) ∀n no espaço de estados

h2 domina h1 no exemplo anteriorCaso existam muitas funções heurísticas para o mesmo problema, e nenhuma delas domine as outras, usa-se uma heurística composta:

h (n) = max (h1 (n), h2 (n),…,hm(n))Assim definida, h é admissível e domina cada função hi individualmente

59

Heurística... por toda IAHeurística... por toda IAA noção de heurística sempre foi além da busca e de uma formalização via função de um estado Heurística

escolha, prioridade, estratégia na busca de uma solução razoável onde não há solução ótima ou recurso para determiná-laNo dia a dia: heurística 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 viés de generalização (aprendizagem)...

60

Qual seria uma boa heurística Qual seria uma boa heurística para o jogo da velha?para o jogo da velha?

X

0

61

Exercício!Exercício!

s

ba c

d e f

h i

gj k

12

7 8 8

6 4 7

4 5

2 0 1

4 21

1 2 1

3 1

12

2

62

s

ba c

d e f

h i

gj k

Busca em Profundidade (com backtracking)

Ordem de visita:s a d

a eas bs c f h j

h g

63

ReferênciasReferências

Material Didático Prof. Marcílio Souto –UFRN, 2005Material Didático Prof. José Augusto Baranauskas – USP Ribeirão Preto, 2005Material Didático Prof. Huei Diana Lee –Unioeste, 2002Russel, S. e Norvig, P. Artificial Intelligence: A modern approach, Prentice Hall, 1995Referências indicadas no curso