Escolar Documentos
Profissional Documentos
Cultura Documentos
Sistemas de Informação
Inteligência
Artificial
Resolução de Problemas
por Meio de Busca
Busca Cega
Sumário
Breadth-first (primeiro em largura).
Breadth-
Uniform
Uniform--cost (custo uniforme).
Depth
Depth--first (primeiro em profundidade).
Depth
Depth--limited (limitado em profundidade).
Iterative deepening (aprofundando iterativamente).
1
BUSCA EM ESPAÇO DE ESTADOS
Completeza:
Completeza sempre encontra uma solução se esta existir.
Qualidade/Otimização
Qualidade/Otimização: encontra melhor solução quando existem
soluções diferentes; menor custo de caminho.
Complexidade de tempo:
tempo tempo gasto para encontrar uma solução.
Complexidade de espaço:
espaço memória necessária para encontrar uma
solução.
2
BUSCA EM ESPAÇO DE ESTADOS
Fator de ramificação:
ramificação b (número máximo de sucessores de qualquer nó,
ou seja, número máximo de galhos da árvore de busca);
Profundidade do nó objetivo menos profundo:
profundo d
o tempo
tempo: medido em termos do número de nós gerados durante a
busca
o espaço
espaço: número máximo de nós armazenados.
d
b
G
APLICAÇÕES
Passeio na Romênia:
3
APLICAÇÕES
APLICAÇÕES
Quebra – Cabeça - 8:
Estados?
Operadores?
Estado Final := estado fornecido.
Custo do caminho?
4
APLICAÇÕES
Quebra – Cabeça - 8:
Operadores: mover se branco à esquerda, direita, em cima, em baixo (ignorar ação de desalojar,
etc).
Estado Final := estado fornecido.
Custo do caminho: 1 por movimento.
2010/2 Flávio Ferreira Lima
Inteligência Artificial
9 Email: flima@facnet.com.br
APLICAÇÕES
8 Rainhas:
5
APLICAÇÕES
8 Rainhas:
APLICAÇÕES
6
INTRODUÇÃO
O Garfo
Como resolver o problema de um restaurante que abastece uma cidade e necessita encontrar um menor percurso para
realizar sua entregas à domicílio?
INTRODUÇÃO
7
BUSCA EM ESPAÇO DE ESTADOS
Busca em Largura
ou Extensão
8
ESTRATÉGIA DE BUSCA SEM INFORMAÇÃO
Busca em Largura:
• Algoritmo:
• Definição: função Busca
Busca--em
em--Largura (problema)
A busca em largura ou extensão consiste em retorna uma solução ou falha
avaliar primeiro todos os nós de um Busca--Genérica (problema, Insere
Busca Insere--no
no--Fim
Fim)
determinado nível, antes de prosseguir para a
avaliação dos nós do próximo nível.
Busca em Largura:
• Exemplo:
9
ESTRATÉGIA DE BUSCA SEM INFORMAÇÃO
Busca em Largura:
• Exemplo:
Busca em Largura:
• Exemplo:
10
ESTRATÉGIA DE BUSCA SEM INFORMAÇÃO
Busca em Largura:
• Exemplo:
Busca em Largura:
• Exemplo:
11
ESTRATÉGIA DE BUSCA SEM INFORMAÇÃO
Busca em Largura:
• Exemplo:
Busca em Largura:
• Exemplo:
12
ESTRATÉGIA DE BUSCA SEM INFORMAÇÃO
Busca em Largura:
• Exemplo:
Busca em Largura:
• Exemplo:
13
ESTRATÉGIA DE BUSCA SEM INFORMAÇÃO
Busca em Largura:
• Exemplo:
Busca em Largura:
• Exemplo:
14
ESTRATÉGIA DE BUSCA SEM INFORMAÇÃO
Busca em Largura:
• Exemplo:
Busca em Largura:
breadthFirst(Caminhos,Solução) é verdadeiro se algum caminho a partir do conjunto de
candidatos Caminhos pode ser estendido para um nó final; Solução é o caminho
estendido.
O conjunto de caminhos candidatos será representado como uma lista de caminhos e
cada caminho será uma lista de nós na ordem reversa.
O algoritmo é o seguinte
seguinte:
Se a cabeça do primeiro caminho é um nó final então este caminho é uma solução; caso
contrário
15
ESTRATÉGIA DE BUSCA SEM INFORMAÇÃO
Busca em Largura:
Comece com o conjunto de candidatos inicial.
[ [a] ]
Gere extensões de [a] (note que estão em ordem reversa):
[ [b,a], [c,a] ]
Busca em Largura:
Def. Fator de ramificação da árvore de busca:
busca
número de nós gerados a partir de cada nó (b)
Custo de tempo:
tempo
se o fator de ramificação do problema = b, e a primeira
solução para o problema está no nível d,
então o número máximo de nós gerados até se encontrar a
solução = b + b2 + b3+ … + bd +(bd+1 - b)=O(bd+1)
custo exponencial = O (bd).
Custo de memória:
memória
problema mais crucial: a fronteira do espaço de estados deve
permanecer na memória
logo, busca em largura só dá bons resultados quando a
profundidade da árvore de busca é pequena.
16
ESTRATÉGIA DE BUSCA SEM INFORMAÇÃO
Busca em Largura:
Esta estratégia só dá bons resultados quando a profundidade da árvore
de busca é pequena..
Exemplo:
fator de expansão b = 10
1.000 nós gerados por segundo
cada nó ocupa 100 bytes
Profundidade Nós Tempo Memória
0 1 1 milissegundo 100 bytes
2 111 0.1 segundo 11 quilobytes
4 11111 11 segundos 1 megabytes
6 106 18 minutos 111 megabytes
8 108 31 horas 11 gigabytes
10 1010 128 dias 1 terabyte
12 1012 35 anos 111 terabytes
14 1014 3500 anos 11111 terabytes
17
ESTRATÉGIA DE BUSCA SEM INFORMAÇÃO
Continuação do exemplo:
18
ESTRATÉGIA DE BUSCA SEM INFORMAÇÃO
Busca em Largura:
• OBSERVAÇÕES:
1 É Ótima?
(=1).
Busca de Custo
Uniforme
19
ESTRATÉGIA DE BUSCA SEM INFORMAÇÃO
• Exemplo: Cidades S
A 0 S
1 10
A B C
B 1 5 15
5 5 G S
S
15 5 S
A B C
5 15
C
A B C
11
15
11 10
20
ESTRATÉGIA DE BUSCA SEM INFORMAÇÃO
F = {S}
- testa se S é o estado objetivo, expande-o e guarda seus filhos A, B e C
ordenadamente na fronteira
F = {A, B, C}
- testa A, expande-o e guarda seu filho GA ordenadamente
obs.: o algoritmo de geração e teste guarda na fronteira todos os nós gerados,
testando se um nó é o objetivo apenas quando ele é retirado da lista!
F= {B, GA, C}
- testa B, expande-o e guarda seu filho GB ordenadamente
F= {GB, GA, C}
- testa GB e para!
21
Busca em
Profundidade
Busca em profundidade:
• Definição: • Algoritmo:
A busca em profundidade consiste em avaliar função Busca
Busca--em
em--Profundidade (problema)
primeiro um dos nós e, se este não for
retorna uma solução ou falha
solução, avaliar um de seus filhos, repetindo
este passo até chegar a um nó que não possui Busca--Genérica (problema, Insere
Busca Insere--no
no--Começo
Começo)
filho ou cujos filhos já foram todos avaliados,
sendo então obrigado a voltar para o nó pai.
1
• Ordem de ramificação dos
nós:
Com a busca em profundidade, primeiro avaliamos o
nó 1. Se este não é o nó solução, avaliamos os nós 2.
2 3 4
Se este não for, avaliamos o nó 5. Se este não for,
como não há nenhum filho a analisar neste nó,
voltamos para o 2 e optamos por avaliar o nó 6,
procedendo desta forma até encontrar uma solução. 5 6 7 9
8
22
ESTRATÉGIA DE BUSCA SEM INFORMAÇÃO
Busca em profundidade:
• OBSERVAÇÕES:
1 Esta estratégia não é completa nem é ótima
Esta estratégia deve ser evitada quando as árvores geradas são muito profundas ou
geram caminhos infinitos.
2 Custo de memória
Necessita armazenar apenas b*m nós para um espaço de estados com fator de
ramificação b e profundidade m, onde m pode ser maior que d (profundidade da 1a.
solução).
3 Custo de tempo
O(b*m), no pior caso.
Para problemas com várias soluções, esta estratégia pode ser bem mais rápida do que
busca em largura.
2010/2 Flávio Ferreira Lima
Inteligência Artificial
45 Email: flima@facnet.com.br
23
ESTRATÉGIA DE BUSCA SEM INFORMAÇÃO
Continuação do exemplo:
Busca com
Aprofundamento
Iterativo
2010/2 Flávio Ferreira Lima
Inteligência Artificial
48 Email: flima@facnet.com.br
24
BUSCA EM ESPAÇO DE ESTADOS
25
Busca
Bidirecional
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 um mesmo estado
intermediário.
É possível utilizar estratégias diferentes em cada direção da busca.
Inicio Meta
26
BUSCA EM ESPAÇO DE ESTADOS
Busca Bidirecional :
Custo de tempo:
Se fator de expansão b nas duas direções, e a profundidade do último nó gerado é d: O(2bd/2)
= O(bd/2)
Custo de memória: O(bd/2)
Busca para trás gera predecessores do nó final
se os operadores são reversíveis:
conjunto de predecessores do nó = conjunto de sucessores do nó
porém, esses operadores podem gerar árvores infinitas!
caso contrário, a geração de predecessores fica muito difícil
descrição desse conjunto é uma propriedade abstrata
e.g., como determinar exatamente todos os estados que precedem um estado de xeque-
mate?
problemas também quando existem muitos estados finais (objetivos) no problema.
Obrigado !!!
27