IA Estrategias Busca Inf

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

description

Descricao de algumas modos de buscas em IA

Transcript of IA Estrategias Busca Inf

Page 1: IA Estrategias Busca Inf

Inteligência ArtificialInteligência Artificial

Estratégias de Busca Informada

Huei Diana Lee

Page 2: IA Estrategias Busca Inf

2

In which we see how informationabout the state space can

prevent algorithms from blunderingabout in the dark

Page 3: IA Estrategias Busca Inf

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

Page 4: IA Estrategias Busca Inf

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

Page 5: IA Estrategias Busca Inf

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

Page 6: IA Estrategias Busca Inf

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

Page 7: IA Estrategias Busca Inf

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

Page 8: IA Estrategias Busca Inf

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

Page 9: IA Estrategias Busca Inf

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

Page 10: IA Estrategias Busca Inf

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)

Page 11: IA Estrategias Busca Inf

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

Page 12: IA Estrategias Busca Inf

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)

Page 13: IA Estrategias Busca Inf

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

Page 14: IA Estrategias Busca Inf

Busca Gulosa...Busca Gulosa...

Page 15: IA Estrategias Busca Inf

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)

Page 16: IA Estrategias Busca Inf

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.

Page 17: IA Estrategias Busca Inf

17

Algoritmo A*Algoritmo A*

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

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

Page 18: IA Estrategias Busca Inf

18

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

Page 19: IA Estrategias Busca Inf

Usando A*Usando A*

Page 20: IA Estrategias Busca Inf

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)

Page 21: IA Estrategias Busca Inf

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.

Page 22: IA Estrategias Busca Inf

22

A* define ContornosA* define Contornos

. fator de expansão próximo de 1

Page 23: IA Estrategias Busca Inf

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

Page 24: IA Estrategias Busca Inf

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

Page 25: IA Estrategias Busca Inf

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

Page 26: IA Estrategias Busca Inf

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

Page 27: IA Estrategias Busca Inf

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

Page 28: IA Estrategias Busca Inf

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

Page 29: IA Estrategias Busca Inf

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

Page 30: IA Estrategias Busca Inf

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

Page 31: IA Estrategias Busca Inf

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

Page 32: IA Estrategias Busca Inf

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

Page 33: IA Estrategias Busca Inf

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

Page 34: IA Estrategias Busca Inf

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

Page 35: IA Estrategias Busca Inf

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

Page 36: IA Estrategias Busca Inf

36

BestBest--FirstFirst & A*& A*s

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

Page 37: IA Estrategias Busca Inf

37

BestBest--FirstFirst & A*& A*s

ea

b

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

f(b)=8

Page 38: IA Estrategias Busca Inf

38

BestBest--FirstFirst & A*& A*s

ea

b

c

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

f(b)=8

f(c)=10

Page 39: IA Estrategias Busca Inf

39

BestBest--FirstFirst & A*& A*s

ea

b

c

f

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

f(b)=8

f(c)=10

f(f)=11

Page 40: IA Estrategias Busca Inf

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

Page 41: IA Estrategias Busca Inf

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

Page 42: IA Estrategias Busca Inf

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

Page 43: IA Estrategias Busca Inf

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

Page 44: IA Estrategias Busca Inf

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

Page 45: IA Estrategias Busca Inf

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

Page 46: IA Estrategias Busca Inf

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

Page 47: IA Estrategias Busca Inf

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

Page 48: IA Estrategias Busca Inf

48

SM

A*

S

MA

* (( S

impl

ified

Sim

plifi

edM

emor

yM

emor

y --B

ound

edB

ound

edA

*)

A*)

Page 49: IA Estrategias Busca Inf

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

Page 50: IA Estrategias Busca Inf

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

Page 51: IA Estrategias Busca Inf

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

Page 52: IA Estrategias Busca Inf

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.

Page 53: IA Estrategias Busca Inf

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.

Page 54: IA Estrategias Busca Inf

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)

Page 55: IA Estrategias Busca Inf

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;

Page 56: IA Estrategias Busca Inf

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

Page 57: IA Estrategias Busca Inf

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

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

Page 58: IA Estrategias Busca Inf

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

Page 59: IA Estrategias Busca Inf

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)...

Page 60: IA Estrategias Busca Inf

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

Page 61: IA Estrategias Busca Inf

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

Page 62: IA Estrategias Busca Inf

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

Page 63: IA Estrategias Busca Inf

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