MATA64
INTELIGNCIA ARTIFICIAL
SEM 2015.1 Aula 5 Busca cega
Pro
fa. D
ra. T
atia
ne N
ogu
eira
Rio
s
1
BUSCANDO POR SOLUES
Uma vez formulado o problema, precisamos
resolv-lo
Busca atravs de um espao de estados
rvore de busca
Raz: estado inicial
Expanso do estado atual
Gerao de novos estados
Objetivo: estado final
2
Pro
fa. D
ra. T
atia
ne N
ogu
eira
Rio
s
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
3
Pro
fa. D
ra. T
atia
ne N
ogu
eira
Rio
s
ESPAO DE ESTADOS X RVORE DE BUSCA
Espao de estados
Cada estado define uma situao possvel
rvore de busca
Nmero infinito de ns, dependendo do caminho
definido pela estratgia de busca escolhida
4
Pro
fa. D
ra. T
atia
ne N
ogu
eira
Rio
s
REPRESENTANDO UM N NA RVORE DE
BUSCA
N: Estrutura de dados com 5 componentes:
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
5
Pro
fa. D
ra. T
atia
ne N
ogu
eira
Rio
s
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)
Profundidade (Depth-first)
Largura (Breadth-first)
6
Pro
fa. D
ra. T
atia
ne N
ogu
eira
Rio
s
BUSCA EM PROFUNDIDADE 7
Pro
fa. D
ra. T
atia
ne N
ogu
eira
Rio
s
BUSCA EM PROFUNDIDADE
8
Pro
fa. D
ra. T
atia
ne N
ogu
eira
Rio
s
d f e
a
b c
g
h i j k
Inserir na frente, remover da frente: a
BUSCA EM PROFUNDIDADE
9
Pro
fa. D
ra. T
atia
ne N
ogu
eira
Rio
s
d f e
a
b c
g
h i j k
Inserir na frente, remover da frente: b, c
BUSCA EM PROFUNDIDADE
10
Pro
fa. D
ra. T
atia
ne N
ogu
eira
Rio
s
d f e
a
b c
g
h i j k
Inserir na frente, remover da frente: d, e, c
BUSCA EM PROFUNDIDADE
11
Pro
fa. D
ra. T
atia
ne N
ogu
eira
Rio
s
d f e
a
b c
g
h i j k
Inserir na frente, remover da frente: h, e, c
BUSCA EM PROFUNDIDADE
12
Pro
fa. D
ra. T
atia
ne N
ogu
eira
Rio
s
d f e
a
b c
g
h i j k
Inserir na frente, remover da frente: e, c
BUSCA EM PROFUNDIDADE
13
Pro
fa. D
ra. T
atia
ne N
ogu
eira
Rio
s
d f e
a
b c
g
h i j k
Inserir na frente, remover da frente: i, j, c
BUSCA EM PROFUNDIDADE
14
Pro
fa. D
ra. T
atia
ne N
ogu
eira
Rio
s
d f e
a
b c
g
h i j k
Inserir na frente, remover da frente: j, c
BUSCA EM PROFUNDIDADE
15
Pro
fa. D
ra. T
atia
ne N
ogu
eira
Rio
s
d f e
a
b c
g
h i j k
Inserir na frente, remover da frente: c
BUSCA EM PROFUNDIDADE
16
Pro
fa. D
ra. T
atia
ne N
ogu
eira
Rio
s
d f e
a
b c
g
h i j k
Inserir na frente, remover da frente: f, g
BUSCA EM PROFUNDIDADE
17
Pro
fa. D
ra. T
atia
ne N
ogu
eira
Rio
s
d f e
a
b c
g
h i j k
Inserir na frente, remover da frente: k, g
BUSCA EM PROFUNDIDADE
18
Pro
fa. D
ra. T
atia
ne N
ogu
eira
Rio
s
d f e
a
b c
g
h i j k
Inserir na frente, remover da frente: g
BUSCA EM PROFUNDIDADE
19
Pro
fa. D
ra. T
atia
ne N
ogu
eira
Rio
s
d f e
a
b c
g
h i j k
BUSCA EM PROFUNDIDADE
Algoritmo para busca em profundidade
Para encontrar uma soluo (Caminho da soluo) de
um estado inicial I para um estado final F (busca
forward) faa:
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
20
Pro
fa. D
ra. T
atia
ne N
ogu
eira
Rio
s
BUSCA EM PROFUNDIDADE
A busca em profundidade o recurso mais
simples em programao recursiva e, por isso,
Prolog quando executa metas explora alternativas
utilizando-a
21
Pro
fa. D
ra. T
atia
ne N
ogu
eira
Rio
s
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
22
Pro
fa. D
ra. T
atia
ne N
ogu
eira
Rio
s
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
23
Pro
fa. D
ra. T
atia
ne N
ogu
eira
Rio
s
BUSCA EM PROFUNDIDADE LIMITADA
(L=0)
24
Pro
fa. D
ra. T
atia
ne N
ogu
eira
Rio
s
d f e
a
b c
g
h i j k
Inserir na frente, remover da frente: a
BUSCA EM PROFUNDIDADE LIMITADA
(L=1)
25
Pro
fa. D
ra. T
atia
ne N
ogu
eira
Rio
s
d f e
a
b c
g
h i j k
Inserir na frente, remover da frente: a
BUSCA EM PROFUNDIDADE LIMITADA
(L=1)
26
Pro
fa. D
ra. T
atia
ne N
ogu
eira
Rio
s
d f e
a
b c
g
h i j k
Inserir na frente, remover da frente: b, c
BUSCA EM PROFUNDIDADE LIMITADA
(L=1)
27
Pro
fa. D
ra. T
atia
ne N
ogu
eira
Rio
s
d f e
a
b c
g
h i j k
Inserir na frente, remover da frente: c
BUSCA EM PROFUNDIDADE LIMITADA
(L=2)
28
Pro
fa. D
ra. T
atia
ne N
ogu
eira
Rio
s
d f e
a
b c
g
h i j k
Inserir na frente, remover da frente: a
BUSCA EM PROFUNDIDADE LIMITADA
(L=2)
29
Pro
fa. D
ra. T
atia
ne N
ogu
eira
Rio
s
d f e
a
b c
g
h i j k
Inserir na frente, remover da frente: b, c
BUSCA EM PROFUNDIDADE LIMITADA
(L=2)
30
Pro
fa. D
ra. T
atia
ne N
ogu
eira
Rio
s
d f e
a
b c
g
h i j k
Inserir na frente, remover da frente: d, e, c
BUSCA EM PROFUNDIDADE LIMITADA
(L=2)
31
Pro
fa. D
ra. T
atia
ne N
ogu
eira
Rio
s
d f e
a
b c
g
h i j k
Inserir na frente, remover da frente: e, c
BUSCA EM PROFUNDIDADE LIMITADA
(L=2)
32
Pro
fa. D
ra. T
atia
ne N
ogu
eira
Rio
s
d f e
a
b c
g
h i j k
Inserir na frente, remover da frente: c
BUSCA EM PROFUNDIDADE LIMITADA
(L=2)
33
Pro
fa. D
ra. T
atia
ne N
ogu
eira
Rio
s
d f e
a
b c
g
h i j k
Inserir na frente, remover da frente: f, g
BUSCA EM PROFUNDIDADE LIMITADA
(L=2)
34
Pro
fa. D
ra. T
atia
ne N
ogu
eira
Rio
s
d f e
a
b c
g
h i j k
Inserir na frente, remover da frente: g
BUSCA EM PROFUNDIDADE LIMITADA
Um problema com a busca em profundidade
limitada que no se tem previamente um limite
razovel
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
35
Pro
fa. D
ra. T
atia
ne N
ogu
eira
Rio
s
BUSCA EM PROFUNDIDADE LIMITADA
Para resolver este problema, a busca em
profundidade limitada pode ser executada de
forma iterativa:
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
36
Pro
fa. D
ra. T
atia
ne N
ogu
eira
Rio
s
EXERCCIO 1
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
Pro
fa. D
ra. T
atia
ne N
ogu
eira
Rio
s
BUSCA EM LARGURA 38
Pro
fa. D
ra. T
atia
ne N
ogu
eira
Rio
s
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
39
Pro
fa. D
ra. T
atia
ne N
ogu
eira
Rio
s
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
40
Pro
fa. D
ra. T
atia
ne N
ogu
eira
Rio
s
BUSCA EM LARGURA
41
Pro
fa. D
ra. T
atia
ne N
ogu
eira
Rio
s
d f e
a
b c
g
h i j k
Inserir no final, remover da frente: a
BUSCA EM LARGURA
42
Pro
fa. D
ra. T
atia
ne N
ogu
eira
Rio
s
d f e
a
b c
g
h i j k
Inserir no final, remover da frente: b, c
BUSCA EM LARGURA
43
Pro
fa. D
ra. T
atia
ne N
ogu
eira
Rio
s
d f e
a
b c
g
h i j k
Inserir no final, remover da frente: c, d, e
BUSCA EM LARGURA
44
Pro
fa. D
ra. T
atia
ne N
ogu
eira
Rio
s
d f e
a
b c
g
h i j k
Inserir no final, remover da frente: d, e, f, g
BUSCA EM LARGURA
45
Pro
fa. D
ra. T
atia
ne N
ogu
eira
Rio
s
d f e
a
b c
g
h i j k
Inserir no final, remover da frente: e, f, g, h
BUSCA EM LARGURA
46
Pro
fa. D
ra. T
atia
ne N
ogu
eira
Rio
s
d f e
a
b c
g
h i j k
Inserir no final, remover da frente: f, g, h, i, j
BUSCA EM LARGURA
47
Pro
fa. D
ra. T
atia
ne N
ogu
eira
Rio
s
d f e
a
b c
g
h i j k
Inserir no final, remover da frente: g, h, i, j, k
BUSCA EM LARGURA
48
Pro
fa. D
ra. T
atia
ne N
ogu
eira
Rio
s
d f e
a
b c
g
h i j k
Inserir no final, remover da frente: h, i, j, k
BUSCA EM LARGURA
49
Pro
fa. D
ra. T
atia
ne N
ogu
eira
Rio
s
d f e
a
b c
g
h i j k
Inserir no final, remover da frente: i, j, k
BUSCA EM LARGURA
50
Pro
fa. D
ra. T
atia
ne N
ogu
eira
Rio
s
d f e
a
b c
g
h i j k
Inserir no final, remover da frente: j, k
BUSCA EM LARGURA
51
Pro
fa. D
ra. T
atia
ne N
ogu
eira
Rio
s
d f e
a
b c
g
h i j k
Inserir no final, remover da frente: k
BUSCA EM LARGURA
52
Pro
fa. D
ra. T
atia
ne N
ogu
eira
Rio
s
d f e
a
b c
g
h i j k
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] ]
53
Pro
fa. D
ra. T
atia
ne N
ogu
eira
Rio
s
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
54
Pro
fa. D
ra. T
atia
ne N
ogu
eira
Rio
s
EXERCCIO 2
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
Pro
fa. D
ra. T
atia
ne N
ogu
eira
Rio
s
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
56
Pro
fa. D
ra. T
atia
ne N
ogu
eira
Rio
s
Tempo Espao
tima?
(soluo mais
curta garantida)
Completa?
(encontra uma soluo
quando ela existe)
Profundidade O(bm) O(bm) No Sim (espaos finitos)
No (espaos infinitos)
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
MODELE UM PROBLEMA COMO UMA
RVORE DE BUSCA
Use aplicativos para facilitar o entendimento dos
algoritmos de busca
http://www.aispace.org/search/search.jnlp
57
Pro
fa. D
ra. T
atia
ne N
ogu
eira
Rio
s
http://www.aispace.org/search/search.jnlp
TAREFA DA SEMANA PROBLEMA DOS JARROS DE GUA
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
Pro
fa. D
ra. T
atia
ne N
ogu
eira
Rio
s
TAREFA DA SEMANA PROBLEMA DOS JARROS DE GUA (CONT.)
Solucione este problema utilizando os algoritmos
de busca em profundidade e em largura.
59
Pro
fa. D
ra. T
atia
ne N
ogu
eira
Rio
s