Você está na página 1de 59

1

Aula 5 Busca cega

Profa. Dra. Tatiane Nogueira Rios

MATA64
INTELIGNCIA ARTIFICIAL
SEM 2015.1

BUSCANDO POR SOLUES


Uma vez formulado o problema, precisamos
resolv-lo
Busca atravs de um espao de estados
rvore de busca

Profa. Dra. Tatiane Nogueira Rios

Raz: estado inicial


Expanso do estado atual
Gerao de novos estados
Objetivo: estado final

BUSCANDO POR SOLUES

Essncia da busca:
Escolha dos estados
Teste
Expanso da rvore de busca at encontrar a soluo
ou no existir nenhum estado a ser expandido
A escolha de qual estado expandir determinada pela
estratgia de busca

Profa. Dra. Tatiane Nogueira Rios

ESPAO DE ESTADOS X RVORE DE BUSCA

Espao de estados

Profa. Dra. Tatiane Nogueira Rios

Cada estado define uma situao possvel

rvore de busca

Nmero infinito de ns, dependendo do caminho


definido pela estratgia de busca escolhida

REPRESENTANDO UM N NA RVORE DE
BUSCA

N: Estrutura de dados com 5 componentes:

Profa. Dra. Tatiane Nogueira Rios

Estado: corresponde ao estado que o n representa


no espao de estados
N-pai: n da rvore de busca que gerou este n
Ao: o que foi aplicado ao n-pai para gerar este n
Custo do caminho: custo do caminho do n inicial ao
n atual, g(n)
Profundidade: quantidade de passos ao longo do
caminho a partir do n inicial

ESTRATGIAS DE BUSCA

Busca no informada ou Cega


no utiliza informaes sobre o problema para guiar a
busca
estratgia de busca exaustiva aplicada at uma
soluo ser encontrada (ou falhar)

Profa. Dra. Tatiane Nogueira Rios

Profundidade (Depth-first)
Largura (Breadth-first)

Profa. Dra. Tatiane Nogueira Rios

BUSCA EM PROFUNDIDADE

BUSCA EM PROFUNDIDADE
a

Profa. Dra. Tatiane Nogueira Rios

Inserir na frente, remover da frente: a

k
8

BUSCA EM PROFUNDIDADE
a

Profa. Dra. Tatiane Nogueira Rios

Inserir na frente, remover da frente: b, c

k
9

BUSCA EM PROFUNDIDADE
a

Inserir na frente, remover da frente: d, e, c

Profa. Dra. Tatiane Nogueira Rios

k
10

BUSCA EM PROFUNDIDADE
a

Inserir na frente, remover da frente: h, e, c

Profa. Dra. Tatiane Nogueira Rios

k
11

BUSCA EM PROFUNDIDADE
a

Inserir na frente, remover da frente: e, c

Profa. Dra. Tatiane Nogueira Rios

k
12

BUSCA EM PROFUNDIDADE
a

Inserir na frente, remover da frente: i, j, c

Profa. Dra. Tatiane Nogueira Rios

k
13

BUSCA EM PROFUNDIDADE
a

Inserir na frente, remover da frente: j, c

Profa. Dra. Tatiane Nogueira Rios

k
14

BUSCA EM PROFUNDIDADE
a

Inserir na frente, remover da frente: c

Profa. Dra. Tatiane Nogueira Rios

k
15

BUSCA EM PROFUNDIDADE
a

Inserir na frente, remover da frente: f, g

Profa. Dra. Tatiane Nogueira Rios

k
16

BUSCA EM PROFUNDIDADE
a

Inserir na frente, remover da frente: k, g

Profa. Dra. Tatiane Nogueira Rios

k
17

BUSCA EM PROFUNDIDADE
a

Inserir na frente, remover da frente: g

Profa. Dra. Tatiane Nogueira Rios

k
18

BUSCA EM PROFUNDIDADE
a

Profa. Dra. Tatiane Nogueira Rios

k
19

BUSCA EM PROFUNDIDADE

Algoritmo para busca em profundidade

Se F foi alcanado (o estado atual F) o Caminho uma


soluo
Se o estado atual tem um sucessor, e esse sucessor no faz
parte do caminho at agora (deteco de loops) insira no
caminho at agora e continue

Profa. Dra. Tatiane Nogueira Rios

Para encontrar uma soluo (Caminho da soluo) de


um estado inicial I para um estado final F (busca
forward) faa:

20

BUSCA EM PROFUNDIDADE

Profa. Dra. Tatiane Nogueira Rios

A busca em profundidade o recurso mais


simples em programao recursiva e, por isso,
Prolog quando executa metas explora alternativas
utilizando-a

21

BUSCA EM PROFUNDIDADE
Um problema com a busca em profundidade que
existem espaos de estado nos quais o algoritmo
se perde
Muitos espaos de estado so infinitos e, nesse
caso, o algoritmo de busca em profundidade pode
perder um n final, prosseguindo por um caminho
infinito no grafo

Profa. Dra. Tatiane Nogueira Rios

22

BUSCA EM PROFUNDIDADE
O algoritmo ento explora esta parte infinita do
espao, nunca chegando perto de um n final
Para n ns e a arestas, a complexidade de tempo
O(a+n)
Para no prosseguir por um caminho infinito no
grafo e perder uma eventual soluo, uma
proposta consiste em limitar a busca

Profa. Dra. Tatiane Nogueira Rios

23

BUSCA EM PROFUNDIDADE LIMITADA


(L=0)
a

Inserir na frente, remover da frente: a

Profa. Dra. Tatiane Nogueira Rios

k
24

BUSCA EM PROFUNDIDADE LIMITADA


(L=1)
a

Inserir na frente, remover da frente: a

Profa. Dra. Tatiane Nogueira Rios

k
25

BUSCA EM PROFUNDIDADE LIMITADA


(L=1)
a

Inserir na frente, remover da frente: b, c

Profa. Dra. Tatiane Nogueira Rios

k
26

BUSCA EM PROFUNDIDADE LIMITADA


(L=1)
a

Inserir na frente, remover da frente: c

Profa. Dra. Tatiane Nogueira Rios

k
27

BUSCA EM PROFUNDIDADE LIMITADA


(L=2)
a

Inserir na frente, remover da frente: a

Profa. Dra. Tatiane Nogueira Rios

k
28

BUSCA EM PROFUNDIDADE LIMITADA


(L=2)
a

Inserir na frente, remover da frente: b, c

Profa. Dra. Tatiane Nogueira Rios

k
29

BUSCA EM PROFUNDIDADE LIMITADA


(L=2)
a

Inserir na frente, remover da frente: d, e, c

Profa. Dra. Tatiane Nogueira Rios

k
30

BUSCA EM PROFUNDIDADE LIMITADA


(L=2)
a

Inserir na frente, remover da frente: e, c

Profa. Dra. Tatiane Nogueira Rios

k
31

BUSCA EM PROFUNDIDADE LIMITADA


(L=2)
a

Inserir na frente, remover da frente: c

Profa. Dra. Tatiane Nogueira Rios

k
32

BUSCA EM PROFUNDIDADE LIMITADA


(L=2)
a

Inserir na frente, remover da frente: f, g

Profa. Dra. Tatiane Nogueira Rios

k
33

BUSCA EM PROFUNDIDADE LIMITADA


(L=2)
a

Inserir na frente, remover da frente: g

Profa. Dra. Tatiane Nogueira Rios

k
34

BUSCA EM PROFUNDIDADE LIMITADA

Se o limite for muito pequeno (menor que qualquer


caminho at uma soluo) ento a busca falha
Se o limite for muito grande, a busca se torna muito
custosa

Profa. Dra. Tatiane Nogueira Rios

Um problema com a busca em profundidade


limitada que no se tem previamente um limite
razovel

35

BUSCA EM PROFUNDIDADE LIMITADA

variando o limite durante a execuo do


procedimento: comece com um limite de profundidade
pequeno e aumente gradualmente o limite at que
uma soluo seja encontrada

Esta tcnica denominada busca em


profundidade iterativa

Profa. Dra. Tatiane Nogueira Rios

Para resolver este problema, a busca em


profundidade limitada pode ser executada de
forma iterativa:

36

EXERCCIO 1

Profa. Dra. Tatiane Nogueira Rios

Considere School como o estado inicial e


Museum como o estado final buscado. Monte a
rvore de busca gerada pelo algoritmo de busca
em profundidade.

37

Profa. Dra. Tatiane Nogueira Rios

BUSCA EM LARGURA

38

BUSCA EM LARGURA
Em contraste com a busca em profundidade, a
busca em largura escolhe primeiro visitar aqueles
ns mais prximos do n inicial
O algoritmo no to simples, pois necessrio
manter um conjunto de ns candidatos
alternativos e no apenas um nico, como na
busca em profundidade

Profa. Dra. Tatiane Nogueira Rios

39

BUSCA EM LARGURA
O conjunto de ns candidatos todo o nvel
inferior da rvore de busca
Alm disso, s o conjunto insuficiente se o
caminho da soluo tambm for necessrio
Assim, ao invs de manter um conjunto de ns
candidatos, necessrio manter um conjunto de
caminhos candidatos

Profa. Dra. Tatiane Nogueira Rios

40

BUSCA EM LARGURA
a

Inserir no final, remover da frente: a

Profa. Dra. Tatiane Nogueira Rios

k
41

BUSCA EM LARGURA
a

Inserir no final, remover da frente: b, c

Profa. Dra. Tatiane Nogueira Rios

k
42

BUSCA EM LARGURA
a

Inserir no final, remover da frente: c, d, e

Profa. Dra. Tatiane Nogueira Rios

k
43

BUSCA EM LARGURA
a

Inserir no final, remover da frente: d, e, f, g

Profa. Dra. Tatiane Nogueira Rios

k
44

BUSCA EM LARGURA
a

Inserir no final, remover da frente: e, f, g, h

Profa. Dra. Tatiane Nogueira Rios

k
45

BUSCA EM LARGURA
a

Inserir no final, remover da frente: f, g, h, i, j

Profa. Dra. Tatiane Nogueira Rios

k
46

BUSCA EM LARGURA
a

Inserir no final, remover da frente: g, h, i, j, k

Profa. Dra. Tatiane Nogueira Rios

k
47

BUSCA EM LARGURA
a

Inserir no final, remover da frente: h, i, j, k

Profa. Dra. Tatiane Nogueira Rios

k
48

BUSCA EM LARGURA
a

Inserir no final, remover da frente: i, j, k

Profa. Dra. Tatiane Nogueira Rios

k
49

BUSCA EM LARGURA
a

Inserir no final, remover da frente: j, k

Profa. Dra. Tatiane Nogueira Rios

k
50

BUSCA EM LARGURA
a

Inserir no final, remover da frente: k

Profa. Dra. Tatiane Nogueira Rios

k
51

BUSCA EM LARGURA

Profa. Dra. Tatiane Nogueira Rios

k
j
i
h

g
f
e
d

c
b

52

BUSCA EM LARGURA
O conjunto de caminhos candidatos ser
representado como uma lista de caminhos e cada
caminho ser uma lista de ns na ordem reversa
A busca inicia com um conjunto de um nico
candidato:

[ [Incio] ]

Profa. Dra. Tatiane Nogueira Rios

53

BUSCA EM LARGURA

Algoritmo de busca em largura:

Se a cabea do primeiro caminho um n final:

ento este caminho uma soluo;

Caso contrrio:
Remova o primeiro caminho do conjunto de candidatos e
gere o conjunto de todas as extenses em um passo a partir
deste caminho,
Adicione este conjunto de extenses ao final do conjunto de
candidatos e
Execute busca em largura para atualizar este conjunto

Profa. Dra. Tatiane Nogueira Rios

54

EXERCCIO 2

Profa. Dra. Tatiane Nogueira Rios

Considere School como o estado inicial e


Museum como o estado final buscado. Monte a
rvore de busca gerada pelo algoritmo de busca
em largura.

55

COMPLEXIDADE DOS ALGORITMOS DE


BUSCA
b = nmero de caminhos alternativos/fator de
bifurcao/ramificao (branching factor)
d = profundidade da soluo
m = profundidade mxima da rvore de busca
l = limite de profundidade

Completa?
(encontra uma soluo
quando ela existe)
Sim (espaos finitos)
No (espaos infinitos)

Profundidade

O(bm)

O(bm)

No

Profundidade limitada

O(bl)

O(bl)

No

Sim se l d

Profundidade iterativa

O(bd)

O(bd)

Sim

Sim

Largura

O(bd)

O(bd)

Sim

Sim

Profa. Dra. Tatiane Nogueira Rios

Tempo Espao

tima?
(soluo mais
curta garantida)

56

MODELE UM PROBLEMA COMO UMA


RVORE DE BUSCA

Use aplicativos para facilitar o entendimento dos


algoritmos de busca
Profa. Dra. Tatiane Nogueira Rios

http://www.aispace.org/search/search.jnlp

57

TAREFA DA SEMANA
PROBLEMA DOS JARROS DE GUA

Profa. Dra. Tatiane Nogueira Rios

Existem dois jarros inicialmente vazios. Um possui


capacidade igual a 3 litros e o outro igual a 4 litros.
Ambos podem ser enchidos completamente utilizando uma
torneira e podem tambm ser esvaziados, despejando a
gua em um ralo.
Alm disso, a gua presente em um jarro pode ser passada
para o outro.
Os jarros no possuem marcaes e no permitido o uso
de qualquer instrumento de medida. Deseja-se colocar
exatamente dois litros de gua no jarro maior.
Pode-se representar as quantidades de gua presentes nos
dois jarros pelo par ordenado (x,y), em que x a
quantidade de gua no jarro menor e y a quantidade no
jarro maior.
O estado inicial (ambos vazios) o par (0,0) e o objetivo
encontrar um par do tipo (x,2), isto , dois litros no jarro
maior e qualquer quantidade no jarro menor.

58

TAREFA DA SEMANA
PROBLEMA DOS JARROS DE GUA (CONT.)

Solucione este problema utilizando os algoritmos


de busca em profundidade e em largura.
Profa. Dra. Tatiane Nogueira Rios

59