Busca sem Informação
Disciplina:
Inteligência Artificial
Prof. Frederico Brito Fernandes
unipe@fredbf.com
CONTEÚDO
(1) Definição
(2) Estudos de Caso
(3) Busca em Largura
(4) Busca por Custo Uniforme
(5) Busca em Profundidade
(6) Busca com Profundidade Limitada
(7) Busca com Profundidade Interativa
(8) Busca Bidirecional
(9) Comparação
(1) Busca sem Informação: definição
• Um problema de busca é:
– Aquele que é resolvido através da busca do melhor estado (ou
caminho) em todo o espaço de estados.
– Ex: chegar à Areia saindo de JP
• Discutiremos sobre algoritmos
de busca em árvore Ex: Busca
Mamanguape
50
FIM
Areia
60
40
50
CG
20
Guarabira
40
Esperança
JP
Baía da
Traição
em Largura
Mamanguape
CG
Guarabira
Guarabira
Areia
Esperança
50
90
JP
INÍCIO
120
Esperança
• Um problema de busca sem informação é:
– Aquele que não possui informação do melhor caminho para chegar na solução.
Ex: saindo de João Pessoa, não temos idéia de que direção está o objetivo (apesar
de CG estar a 120km, é a melhor direção)
Disciplina: Inteligência Artificial
Professor: Frederico Brito Fernandes
2/27
(1) Busca com Informação: definição
• Um problema de busca é:
– Aquele que é resolvido através da busca do melhor estado (ou
caminho) em todo o espaço de estados.
– Ex: chegar à Areia saindo de JP
Origem
Mamanguape
20
Baía da
Traição
50
FIM
Areia
60
40
50
Guarabira
40
Esperança
50
90
JP
CG
INÍCIO
120
Destino Dist. em Linha
Reta (km)
JP
Areia
134
BT
Areia
155
Mamanguape
Areia
130
Guarabira
Areia
89
Esperança
Areia
53
CG
Areia
35
Areia
Areia
0
• Um problema de busca com informação é:
– Aquele que possui informação do melhor caminho para chegar na solução. Ex: indo
pra CG, gasto 120km de percurso + distância em linha reta até Areia (35km) = 155km
Disciplina: Inteligência Artificial
Professor: Frederico Brito Fernandes
3/27
(1) Busca: critérios de análise
• Como determinar que um algoritmo é melhor do que outro?
– Ex: para esse exemplo, é melhor usar Busca em Largura ou em
Profundidade?
• Discutiremos sobre algoritmos
de busca em árvore Ex: Busca
Mamanguape
20
Baía da
Traição
JP
em Largura
50
FIM
Areia
60
40
50
Guarabira
40
Esperança
CG
50
Mamanguape
CG
Guarabira
Guarabira
Areia
Esperança
90
JP
INÍCIO
120
Esperança
Critérios de Análise
• O algoritmo Busca
em Largura...
Disciplina: Inteligência Artificial
a) É completo? (ele sempre acha a solução, se existir?)
b) É ótimo? (ele acha a melhor solução?)
c) Leva quanto tempo para achar a solução? (tempo)
d) Produz quantos nós? (memória)
Professor: Frederico Brito Fernandes
4/27
(1) Busca: critérios de análise
• Dado o algoritmo:
Geração da Árvore:
MissaoBregareia(){
cidade = JP
faça
cidadeAnterior = cidade
cidade=proximaCidade(menorDistância,naoVisitada)
cidade.visitada=true
se (cidade=jaVisitada ou cidade=FIM)
cidade=cidadeAnterior
enquanto (cidade  Areia)
}
JP
50
Mamanguape
20
Mamanguape
50
Guarabira
40
X
Esperança
50
CG
30
Areia
Mamanguape
20
Baía da
Traição
50
FIM
Areia
60
30
50
Guarabira
40
Esperança
CG
Disciplina: Inteligência Artificial
90
O algoritmo MissaoBregareia...
50
INÍCIO
JP
120
a) É completo? (ele acha a solução, se existir?)
b) É ótimo? (ele acha a melhor solução?)
c) Leva quanto tempo?
d) Produz quantos nós?
Professor: Frederico Brito Fernandes
5/27
(1) Busca: critérios de análise
•
Completude: A estratégia sempre encontra uma solução quando existe alguma?
•
Custo do tempo: Quanto tempo gasta para encontrar uma solução?
Normalmente medida em termos do número de nós gerados.
•
Custo de memória: Quanta memória é necessária para realizar a busca?
Normalmente medida pelo tamanho máximo que a lista de nós abertos assume
durante a busca.
•
Qualidade/otimalidade (optimality): A estratégia encontra a melhor solução
quando existem soluções diferentes?
• menor custo de caminho
•
As complexidades de tempo e espaço são medidas em termos de:
– b : fator de ramificação máximo da árvore de busca.
– d : profundidade do nó objetivo menos profundo.
– m : profundidade máxima de qualquer caminho no espaço de estados.
Disciplina: Inteligência Artificial
Professor: Frederico Brito Fernandes
6/27
(1) Busca sem Informação: algoritmos
• Terminologia:
– Borda: é a coleção de nós que foram gerados mas não expandidos
(nós abertos). Também conhecido como franja
– Nó Folha: qualquer elemento da borda (sem sucessores na árvore)
– Estratégia de Busca: função que seleciona o próximo nó a ser
expandido da borda
• Algoritmos de Busca Desinformada:
–
–
–
–
–
–
Busca em Largura (ou extensão)
Busca por Custo Uniforme
Busca em Profundidade
Busca em Profundidade Limitada
Busca em Profundidade Interativa
Busca Bidirecional
Disciplina: Inteligência Artificial
Professor: Frederico Brito Fernandes
7/27
(2) Estudo de Caso 1: Missão Bregareia
• Problema do menor caminho
– Objetivo:
• Ir pro Bregareia, saindo de João Pessoa
– Ações:
• Próxima cidade
– Usando Busca...
•
•
•
•
•
•
Mamanguape
Baía da
Traição
50
FIM
Areia
30
20
60
50
Guarabira
40
Esperança
CG
120
50
90
João INÍCIO
Pessoa
Em Largura
Por Custo Uniforme
Em Profundidade
Em Profundidade Limitada
Em Profundidade Interativa
Bidirecional
Disciplina: Inteligência Artificial
Professor: Frederico Brito Fernandes
8/27
(2) Estudo de Caso 2: problema dos sapos
• Problema dos sapos:
– Objetivo:
• Faça com que os machos fiquem na
direita e as fêmeas na esquerda
– Ações:
• Pular para frente, e duas pedras no
máximo
M1
M2
Disciplina: Inteligência Artificial
M3
– Usando Busca...
•
•
•
•
Em Largura
Por Custo Uniforme
Em Profundidade
Em Profundidade
Limitada
• Em Profundidade
Interativa
• Bidirecional
F3
Professor: Frederico Brito Fernandes
F2
F1
9/27
(2) Estudo de Caso 3: menor caminho
Início
objetivo
Disciplina: Inteligência Artificial
Professor: Frederico Brito Fernandes
10/27
(3) Busca em Largura
• Expande os nós mais rasos ainda não expandidos
• Todos os nós de profundidade d são expandidos antes dos nós
de profundidade d+1
• Borda organizada como uma fila (FIFO)
Disciplina: Inteligência Artificial
Professor: Frederico Brito Fernandes
11/27
(3) Busca em Largura
• Expande os nós mais rasos ainda não expandidos
• Todos os nós de profundidade d são expandidos antes dos nós
de profundidade d+1
• Borda organizada como uma fila (FIFO)
1
Disciplina: Inteligência Artificial
Professor: Frederico Brito Fernandes
12/27
(3) Busca em Largura
• Expande os nós mais rasos ainda não expandidos
• Todos os nós de profundidade d são expandidos antes dos nós
de profundidade d+1
• Borda organizada como uma fila (FIFO)
1
2
Disciplina: Inteligência Artificial
Professor: Frederico Brito Fernandes
13/27
(3) Busca em Largura
• Expande os nós mais rasos ainda não expandidos
• Todos os nós de profundidade d são expandidos antes dos nós
de profundidade d+1
• Borda organizada como uma fila (FIFO)
1
2
Disciplina: Inteligência Artificial
3
Professor: Frederico Brito Fernandes
14/27
(3) Busca em Largura
• Expande os nós mais rasos ainda não expandidos
• Todos os nós de profundidade d são expandidos antes dos nós
de profundidade d+1
• Borda organizada como uma fila (FIFO)
1
2
Disciplina: Inteligência Artificial
3
Professor: Frederico Brito Fernandes
4
15/27
(3) Busca em Largura
• Expande os nós mais rasos ainda não expandidos
• Todos os nós de profundidade d são expandidos antes dos nós
de profundidade d+1
• Borda organizada como uma fila (FIFO)
1
2
3
4
5
Disciplina: Inteligência Artificial
Professor: Frederico Brito Fernandes
16/27
(3) Busca em Largura
• Expande os nós mais rasos ainda não expandidos
• Todos os nós de profundidade d são expandidos antes dos nós
de profundidade d+1
• Borda organizada como uma fila (FIFO)
1
2
5
Disciplina: Inteligência Artificial
3
4
6
Professor: Frederico Brito Fernandes
17/27
(3) Busca em Largura
• Expande os nós mais rasos ainda não expandidos
• Todos os nós de profundidade d são expandidos antes dos nós
de profundidade d+1
• Borda organizada como uma fila (FIFO)
1
2
5
Disciplina: Inteligência Artificial
3
6
4
7
Professor: Frederico Brito Fernandes
18/27
(3) Busca em Largura: análise
•
•
•
•
•
Completude: Sim. Encontra o mais raso, se o fator de ramificação b é finito
Otimalidade: Sim, se o custo do caminho for uma função não decrescente da
profundidade do nó (ou seja, quando todos os caminhos tiverem o mesmo custo)
Custo de Tempo: 1 + b + b2 + b3 + ... + bd + (bd+1-b) = O(bd+1)
Custo de Memória: O(bd+1) – guarda todos os nós na memória
Grande quantidade de espaço e tempo exigida. Pode facilmente gerar 1MB de nós que
devem ser guardados.
1
b = número máximo de filhos
2
3
4
(ou fator de ramificação)
d = altura do nó ótimo
d
5
Disciplina: Inteligência Artificial
6
7
Professor: Frederico Brito Fernandes
19/27
(3) Busca em Largura: análise
• Para um fator de ramificação b=10, e supondo que 1000 nós podem ser
gerados por segundo, temos:
1+b1+b2+(b3-b) = 1+10+100+(1000-10) = 1101
•
–
–
–
–
–
–
–
profundidade
nós
tempo
memória
2
4
6
8
10
12
14
1100
111.100
107
109
1011
1013
1015
0,11 seg
11 seg
19 min
31 horas
129 dias
35 anos
3.523 anos
1 MB
106 MB
10 GB
1 TeraB
101 TeraB
10 PentaB
1 exaB
Cada nó
tem 1KB
• Requisitos de memória são problemas maiores do que o tempo de
execução
• Problemas de busca de complexidade exponencial não podem ser
resolvidos por métodos sem informação (exceto os menores)
Disciplina: Inteligência Artificial
Professor: Frederico Brito Fernandes
20/27
(4) Busca por Custo Uniforme
• Expande o nó de menor custo ainda não expandidos (pelo
custo do caminho – g(n))
• Encontra a solução mais barata porque os nós mais baratos
são expandidos primeiro
• Borda é organizada em ordem crescente pelo custo do
caminho de cada nó
S
1
S
5
A
B
15
10
5
G
5
C
Disciplina: Inteligência Artificial
Professor: Frederico Brito Fernandes
21/27
(4) Busca por Custo Uniforme
• Expande o nó de menor custo ainda não expandidos (pelo
custo do caminho – g(n))
• Encontra a solução mais barata porque os nós mais baratos
são expandidos primeiro
• Borda é organizada em ordem crescente pelo custo do
caminho de cada nó
S
1
S
5
A
B
15
1
10
5
G
A
5
B
15
C
5
C
Disciplina: Inteligência Artificial
Professor: Frederico Brito Fernandes
22/27
(4) Busca por Custo Uniforme
• Expande o nó de menor custo ainda não expandidos (pelo
custo do caminho – g(n))
• Encontra a solução mais barata porque os nós mais baratos
são expandidos primeiro
• Borda é organizada em ordem crescente pelo custo do
caminho de cada nó
S
1
S
5
A
B
15
10
5
5
C
Disciplina: Inteligência Artificial
1
G
A
5
B
15
C
11
G
Professor: Frederico Brito Fernandes
23/27
(4) Busca por Custo Uniforme
• Expande o nó de menor custo ainda não expandidos (pelo
custo do caminho – g(n))
• Encontra a solução mais barata porque os nós mais baratos
são expandidos primeiro
• Borda é organizada em ordem crescente pelo custo do
caminho de cada nó
S
1
S
5
A
B
15
10
5
5
C
Disciplina: Inteligência Artificial
1
G
A
5
B
11
G
Professor: Frederico Brito Fernandes
15
C
10
G
24/27
(4) Busca por Custo Uniforme
• Expande o nó de menor custo ainda não expandidos (pelo
custo do caminho – g(n))
• Encontra a solução mais barata porque os nós mais baratos
são expandidos primeiro
• Borda é organizada em ordem crescente pelo custo do
caminho de cada nó
S
1
S
5
A
B
15
10
5
5
C
Disciplina: Inteligência Artificial
1
G
A
5
B
11
G
Professor: Frederico Brito Fernandes
15
C
10
G
25/27
(4) Busca por Custo Uniforme
• Completude: Sim, se nenhum operador tiver custo negativo
• Custo Tempo: quantidade de nós com g <= custo da solução ótima
(pode ser muito maior que O(bd))
• Custo Memória: quantidade de nós com g <= custo da solução ótima
• Otimalidade: Sim.
• Espaço e tempo continuam sendo um problema
1
S
5
A
B
15
1
10
5
G
A
5
C
Disciplina: Inteligência Artificial
S
5
B
11
G
15
C
10
G
b = número máximo de filhos
(ou fator de ramificação)
g = custo do nó ótimo
Professor: Frederico Brito Fernandes
26/27
(5) Busca em profundidade
• Expande o nó mais profundo ainda não expandido
• Quando encontra um nó que não pode ser expandido, volta
para expandir os outros dos níveis mais rasos
• Borda organizada como uma pilha (LIFO)
Disciplina: Inteligência Artificial
Professor: Frederico Brito Fernandes
27/27
(5) Busca em profundidade
• Expande o nó mais profundo ainda não expandido
• Quando encontra um nó que não pode ser expandido, volta
para expandir os outros dos níveis mais rasos
• Borda organizada como uma pilha (LIFO)
1
Disciplina: Inteligência Artificial
Professor: Frederico Brito Fernandes
28/27
(5) Busca em profundidade
• Expande o nó mais profundo ainda não expandido
• Quando encontra um nó que não pode ser expandido, volta
para expandir os outros dos níveis mais rasos
• Borda organizada como uma pilha (LIFO)
1
2
Disciplina: Inteligência Artificial
Professor: Frederico Brito Fernandes
29/27
(5) Busca em profundidade
• Expande o nó mais profundo ainda não expandido
• Quando encontra um nó que não pode ser expandido, volta
para expandir os outros dos níveis mais rasos
• Borda organizada como uma pilha (LIFO)
1
2
3
Disciplina: Inteligência Artificial
Professor: Frederico Brito Fernandes
30/27
(5) Busca em profundidade
• Expande o nó mais profundo ainda não expandido
• Quando encontra um nó que não pode ser expandido, volta
para expandir os outros dos níveis mais rasos
• Borda organizada como uma pilha (LIFO)
1
2
3
4
Disciplina: Inteligência Artificial
Professor: Frederico Brito Fernandes
31/27
(5) Busca em profundidade
• Expande o nó mais profundo ainda não expandido
• Quando encontra um nó que não pode ser expandido, volta
para expandir os outros dos níveis mais rasos
• Borda organizada como uma pilha (LIFO)
1
2
3
4
Disciplina: Inteligência Artificial
5
Professor: Frederico Brito Fernandes
32/27
(5) Busca em profundidade
• Expande o nó mais profundo ainda não expandido
• Quando encontra um nó que não pode ser expandido, volta
para expandir os outros dos níveis mais rasos
• Borda organizada como uma pilha (LIFO)
1
2
3
4
Disciplina: Inteligência Artificial
6
5
Professor: Frederico Brito Fernandes
33/27
(5) Busca em profundidade
• Expande o nó mais profundo ainda não expandido
• Quando encontra um nó que não pode ser expandido, volta
para expandir os outros dos níveis mais rasos
• Borda organizada como uma pilha (LIFO)
1
2
3
4
Disciplina: Inteligência Artificial
5
6
7
Professor: Frederico Brito Fernandes
34/27
(5) Busca em profundidade
• Expande o nó mais profundo ainda não expandido
• Quando encontra um nó que não pode ser expandido, volta
para expandir os outros dos níveis mais rasos
• Borda organizada como uma pilha (LIFO)
1
2
3
4
Disciplina: Inteligência Artificial
5
6
7
8
Professor: Frederico Brito Fernandes
35/27
(5) Busca em profundidade
• Expande o nó mais profundo ainda não expandido
• Quando encontra um nó que não pode ser expandido, volta
para expandir os outros dos níveis mais rasos
• Borda organizada como uma pilha (LIFO)
1
2
3
4
Disciplina: Inteligência Artificial
5
9
6
7
8
Professor: Frederico Brito Fernandes
36/27
(5) Busca em profundidade
• Expande o nó mais profundo ainda não expandido
• Quando encontra um nó que não pode ser expandido, volta
para expandir os outros dos níveis mais rasos
• Borda organizada como uma pilha (LIFO)
1
2
3
4
Disciplina: Inteligência Artificial
5
9
6
7
10
8
Professor: Frederico Brito Fernandes
37/27
(5) Busca em profundidade
• Completude: Sim, somente se o
espaço de estados não tiver laços
• Custo Memória: Armazena
somente um caminho simples da
raiz até a folha.
1
2
– Para um fator de ramificação b e
uma profundidade máxima de m
armazena
bm nós (busca
em largura = bd)
• Custo Tempo: O(bm) no pior
caso -> examinar todos os ramos
– Terrível se m é muito maior que
d (m - profundidade máxima de
qq nó)
• Otimalidade: Não
• Necessita de um espaço de
busca finito e não cíclico
Disciplina: Inteligência Artificial
3
4
9
6
5
7
10
m
8
b = número máximo de filhos
(ou fator de ramificação)
m = altura máxima da árvore
Esteja certo de que entende que m  d
Professor: Frederico Brito Fernandes
38/27
(6) Busca com Profundidade Limitada
• Evita os problemas da busca em profundidade impondo um
corte na profundidade de caminho
• Problema => escolher a profundidade correta
• Completude: Sim. Se a solução existente estiver em uma
profundidade d<l, ela é encontrada
• Otimalidade: Não. A solução ótima pode estar em outra
subárvore
• Tempo: O(bl), onde l é o limite de profundidade
• Memória: O(bl)
• Alguns problemas sugerem um valor de l. (20 cidades => l
=19)
Disciplina: Inteligência Artificial
Professor: Frederico Brito Fernandes
39/27
(7) Busca com Profundidade Interativa
• Tenta todos os possíveis limites de profundidade,
começando pelo 0.
• Combina os benefícios da busca em largura e em
profundidade
• Ordem de expansão parecida com a busca em
largura
– Alguns nós podem ser expandidos múltiplas vezes
Disciplina: Inteligência Artificial
Professor: Frederico Brito Fernandes
40/27
(7) Busca com Profundidade Interativa
Disciplina: Inteligência Artificial
Professor: Frederico Brito Fernandes
41/27
(7) Busca com Profundidade Interativa
Disciplina: Inteligência Artificial
Professor: Frederico Brito Fernandes
42/27
(7) Busca com Profundidade Interativa
Disciplina: Inteligência Artificial
Professor: Frederico Brito Fernandes
43/27
(7) Busca com Profundidade Interativa
Disciplina: Inteligência Artificial
Professor: Frederico Brito Fernandes
44/27
(7) Busca com Profundidade Interativa
•
•
•
•
•
•
Completude: Sim
Otimalidade: Sim (se o custo do caminho for uma função não decrescente da
profundidade do nó,ou seja, quando todos os caminhos tiverem o mesmo custo)
Tempo: O(bd) – alguns nós podem ser gerados várias vezes. Mas isso acontecerá nos
níveis superiores que normalmente têm poucos nós
Memória: O(bd)
Preferida quando o espaço de busca é muito grande e a profundidade da solução não
é conhecida
Tempo comparação com a busca em largura com b=10 e d=5
– Prof. Interativa = 123.450 nós gerados
– Largura = 1.111.100 nós gerados
•
É o método de busca sem informação preferido quando existe um espaço de busca
grande e a profundidade da solução não é conhecida
b = número máximo de filhos
(ou fator de ramificação)
d = altura do nó ótimo
Disciplina: Inteligência Artificial
Professor: Frederico Brito Fernandes
45/27
(8) Busca Bidirecional
• Busca em duas direções:
– Para frente, a partir do nó
inicial, e
– Para trás, a partir do nó final
(objetivo)
• A busca pára quando os dois
processos geram o mesmo
nó
• Problema: verificar antes de
cada expansão se o nó não
pertence à borda da outra
busca
• É possível utilizar
estratégias diferentes em
cada direção da busca
Disciplina: Inteligência Artificial
Professor: Frederico Brito Fernandes
46/27
(8) Busca Bidirecional
• A comparação de cada nó antes da expansão pode
ser feita em tempo constante utilizando uma tabela
hash
• Completude: Sim
• Otimalidade: Sim
• Tempo: O(bd/2)
• Memória: O(bd/2)
• Para b=10 e d=6 temos 22.200 nós gerados, contra
os 11.111.100 da busca em largura
Disciplina: Inteligência Artificial
Professor: Frederico Brito Fernandes
47/27
(9) Comparação das Estratégias de Busca
Largura
Custo
Uniforme
Profundidade
Profundidade
limitada
Profundidade
Interativa
Bidirecional (se
aplicável)
Tempo
O(bd + 1)
O(bd + 1)
O(bm)
O(bl)
O(bd)
O(bd/2)
Espaço
>>bd
>>bd
O(bm)
O(bd)
O(bd/2)
Otima?
Sim3
Sim
Não
O(bl)
Não
sim3
Sim3,4
Completa?
sim1
sim1,2
Não
Sim
Sim1
Sim1,2
1 – completa se b é finito
2 – completa se o custo do passo é >= c, para c positivo
3 – ótima se o custo dos passos são todos idênticos
4 – se ambos os sentidos utilizam busca em largura
Disciplina: Inteligência Artificial
Professor: Frederico Brito Fernandes
48/27
Download

Aula 15 e 16 - BuscaSemInfo