Você está na página 1de 27

Bacharel em

Sistemas de Informação

Inteligência
Artificial

Prof.: Flávio F. Lima, Dr.


2010/2 Dr. Flávio Ferreira Lima
Inteligência Artificial
1 Email: flima@facnet.com.br

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

Encontro IV Flávio Ferreira Lima


Inteligência Artificial 2010/2
2 Email: flima@facnet.com.br

1
BUSCA EM ESPAÇO DE ESTADOS

Busca Cega ou Sem Informação

Algoritmos que não recebem nenhuma informação sobre o problema


além de sua formulação
formulação.. Apenas distingue estado objetivo de estado
não--objetivo (blind search)
não search)..
 Estratégias para determinar a ordem de expansão dos nós:
1. Busca em largura
2. Busca de custo uniforme
3. Busca em profundidade
4. Busca com aprofundamento iterativo
 Direção da expansão:
1. Do estado inicial para um estado final
2. De um estado final para o estado inicial
3. Busca bi-
bi-direcional

2010/2 Flávio Ferreira Lima


Inteligência Artificial
3 Email: flima@facnet.com.br

BUSCA EM ESPAÇO DE ESTADOS


Medida de Desempenho na Busca :

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

2010/2 Flávio Ferreira Lima


Inteligência Artificial
4 Email: flima@facnet.com.br

2
BUSCA EM ESPAÇO DE ESTADOS

Análise de Algoritmo de Busca :

 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

2010/2 Flávio Ferreira Lima


Inteligência Artificial
5 Email: flima@facnet.com.br

APLICAÇÕES
Passeio na Romênia:

2010/2 Flávio Ferreira Lima


Inteligência Artificial
6 Email: flima@facnet.com.br

3
APLICAÇÕES

 Ida para Bucharest:


Bucharest
o Estados: cada possível cidade do mapa
o estado inicial: Arad
o teste de término: estar em Bucarest
o Operadores: dirigir de uma cidade para outra
Operadores
o custo do caminho: número de cidades visitadas, distância percorrida, tempo de
viagem, grau de divertimento, etc

2010/2 Flávio Ferreira Lima


Inteligência Artificial
7 Email: flima@facnet.com.br

APLICAÇÕES

Quebra – Cabeça - 8:

 Estados?
 Operadores?
 Estado Final := estado fornecido.
 Custo do caminho?

2010/2 Flávio Ferreira Lima


Inteligência Artificial
8 Email: flima@facnet.com.br

4
APLICAÇÕES

Quebra – Cabeça - 8:

 Estados: posições inteiras dos quadrados (ignorar posições intermediárias).

 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:

 Jogo das 8 Rainhas


– Dispor 8 rainhas no tabuleiro de forma que
não possam se “atacar”
• não pode haver mais de uma rainha em
uma mesma linha, coluna ou diagonal
– Somente o custo da busca conta
• não existe custo de caminho

 Existem diferentes estados e operadores


possíveis
– essa escolha pode ter conseqüências boas  Estados?
ou nefastas na complexidade da busca ou  Operadores?
no tamanho do espaço de estados
 Estado Final := estado fornecido.
 Custo do caminho?

2010/2 Flávio Ferreira Lima


Inteligência Artificial
10 Email: flima@facnet.com.br

5
APLICAÇÕES

8 Rainhas:

 Estados: qualquer arranjo de 0 a 8 rainhas no tabuleiro.

 Operadores: adicionar uma rainha a qualquer quadrado.


 Estado Final := 8 rainhas no tabuleiro, sem ataque.
 Custo do caminho: zero (apenas o estado final é
interessante).
2010/2 Flávio Ferreira Lima
Inteligência Artificial
11 Email: flima@facnet.com.br

APLICAÇÕES

Vida real: Layout de um VLSI

 Dado um diagrama esquemático contendo componentes (chips, resistores, capacitores, etc) e


interconexões (fios), encontrar uma maneira ótima para colocar os componentes numa placa
impressa, sob restrição que apenas um pequeno número de camadas estão disponíveis e fios não
podem cruzar numa mesma camada.

2010/2 Flávio Ferreira Lima


Inteligência Artificial
12 Email: flima@facnet.com.br

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?

2010/2 Flávio Ferreira Lima


Inteligência Artificial
13 Email: flima@facnet.com.br

INTRODUÇÃO

O Problema da Entrega de Mercadorias:

 Este poderia ser um problema a ser resolvido através de Teoria de


Grafos.

 As ruas correspondem arestas (a direção das arestas correspondem


ao caminho da rua), e as interseções serão os vértices.

 Cada vértice e cada aresta (segmento de rua) pode ser associado


com o respectivo tempo de percurso e o problema está em se
determinar o melhor caminho que teremos para a entrega de comida.

2010/2 Flávio Ferreira Lima


Inteligência Artificial
14 Email: flima@facnet.com.br

7
BUSCA EM ESPAÇO DE ESTADOS

 Vamos representar um espaço de estados pela relações


 s(X,Y) que é verdadeira se há um movimento permitido no espaço de estados do
nó X para o nó Y; neste caso, Y é um sucessor de X.
 final(X) que é verdadeira se X é um estado final.

 Se houver custos envolvidos, um terceiro argumento será adicionado, o custo


do movimento
 s(X,Y, Custo).

 A relação s pode ser representada explicitamente no programa por um


conjunto de fatos.

 Entretanto, para espaços de estado complexos a relação s é usualmente


definida implicitamente através de regras que permitam calcular o sucessor de
um dado nó.

2010/2 Flávio Ferreira Lima


Inteligência Artificial
15 Email: flima@facnet.com.br

Busca em Largura
ou Extensão

2010/2 Flávio Ferreira Lima


Inteligência Artificial
16 Email: flima@facnet.com.br

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.

• Ordem de ramificação dos


nós:
1. Nó raiz 2 3 4
2. Todos os nós de profundidade 1
3. Todos os nós de profundidade 2,
etc…
5 6 7 8 9

2010/2 Flávio Ferreira Lima


Inteligência Artificial
17 Email: flima@facnet.com.br

ESTRATÉGIA DE BUSCA SEM INFORMAÇÃO

Busca em Largura:

• Exemplo:

2010/2 Flávio Ferreira Lima


Inteligência Artificial
18 Email: flima@facnet.com.br

9
ESTRATÉGIA DE BUSCA SEM INFORMAÇÃO

Busca em Largura:

• Exemplo:

2010/2 Flávio Ferreira Lima


Inteligência Artificial
19 Email: flima@facnet.com.br

ESTRATÉGIA DE BUSCA SEM INFORMAÇÃO

Busca em Largura:

• Exemplo:

2010/2 Flávio Ferreira Lima


Inteligência Artificial
20 Email: flima@facnet.com.br

10
ESTRATÉGIA DE BUSCA SEM INFORMAÇÃO

Busca em Largura:

• Exemplo:

2010/2 Flávio Ferreira Lima


Inteligência Artificial
21 Email: flima@facnet.com.br

ESTRATÉGIA DE BUSCA SEM INFORMAÇÃO

Busca em Largura:

• Exemplo:

2010/2 Flávio Ferreira Lima


Inteligência Artificial
22 Email: flima@facnet.com.br

11
ESTRATÉGIA DE BUSCA SEM INFORMAÇÃO

Busca em Largura:

• Exemplo:

2010/2 Flávio Ferreira Lima


Inteligência Artificial
23 Email: flima@facnet.com.br

ESTRATÉGIA DE BUSCA SEM INFORMAÇÃO

Busca em Largura:

• Exemplo:

2010/2 Flávio Ferreira Lima


Inteligência Artificial
24 Email: flima@facnet.com.br

12
ESTRATÉGIA DE BUSCA SEM INFORMAÇÃO

Busca em Largura:

• Exemplo:

2010/2 Flávio Ferreira Lima


Inteligência Artificial
25 Email: flima@facnet.com.br

ESTRATÉGIA DE BUSCA SEM INFORMAÇÃO

Busca em Largura:

• Exemplo:

2010/2 Flávio Ferreira Lima


Inteligência Artificial
26 Email: flima@facnet.com.br

13
ESTRATÉGIA DE BUSCA SEM INFORMAÇÃO

Busca em Largura:

• Exemplo:

2010/2 Flávio Ferreira Lima


Inteligência Artificial
27 Email: flima@facnet.com.br

ESTRATÉGIA DE BUSCA SEM INFORMAÇÃO

Busca em Largura:

• Exemplo:

2010/2 Flávio Ferreira Lima


Inteligência Artificial
28 Email: flima@facnet.com.br

14
ESTRATÉGIA DE BUSCA SEM INFORMAÇÃO

Busca em Largura:
• Exemplo:

2010/2 Flávio Ferreira Lima


Inteligência Artificial
29 Email: flima@facnet.com.br

ESTRATÉGIA DE BUSCA SEM INFORMAÇÃO

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.

 A busca inicia com um conjunto de um único candidato:


 [ [Início] ]

 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

 Remova o primeiro caminho do conjunto de candidatos e gere o conjunto de todas as


extensões em um passo a partir deste caminho; adicione este conjunto de extensões ao
final do conjunto de candidatos e execute busca em largura para atualizar este conjunto

2010/2 Flávio Ferreira Lima


Inteligência Artificial
30 Email: flima@facnet.com.br

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

 Remova o primeiro candidato [b,a] do conjunto de candidatos e


gere extensões deste caminho.
 [ [d,b,a], [e,b,a] ]
 Adicione as extensões ao final do conjunto de candidatos.
 [ [c,a], [d,b,a], [e,b,a] ]
 Remova [c,a] e adicione as extensões ao final.
 [ [d,b,a], [e,b,a], [f,c,a], [g,c,a] ]
 Estendendo [d,b,a].
 [ [e,b,a], [f,c,a], [g,c,a], [h,d,b,a] ]
 Estendendo [e,b,a].
 A busca encontra [f,c,a] que contém um nó final,
 [ [f,c,a], [g,c,a], [h,d,b,a], [i,e,b,a], [j,e,b,a] ]
portanto o caminho é retornado como uma solução
solução..

2010/2 Flávio Ferreira Lima


Inteligência Artificial
31 Email: flima@facnet.com.br

ESTRATÉGIA DE BUSCA SEM INFORMAÇÃO

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.

2010/2 Flávio Ferreira Lima


Inteligência Artificial
32 Email: flima@facnet.com.br

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

2010/2 Flávio Ferreira Lima


Inteligência Artificial
33 Email: flima@facnet.com.br

ESTRATÉGIA DE BUSCA SEM INFORMAÇÃO

Exemplo: Encontrar um caminho entre uma origem (nó inicial, S) e um destino


(nó meta, G).

2010/2 Flávio Ferreira Lima


Inteligência Artificial
34 Email: flima@facnet.com.br

17
ESTRATÉGIA DE BUSCA SEM INFORMAÇÃO
Continuação do exemplo:

2010/2 Flávio Ferreira Lima


Inteligência Artificial
35 Email: flima@facnet.com.br

ESTRATÉGIA DE BUSCA SEM INFORMAÇÃO


Continuação do exemplo:

2010/2 Flávio Ferreira Lima


Inteligência Artificial
36 Email: flima@facnet.com.br

18
ESTRATÉGIA DE BUSCA SEM INFORMAÇÃO

Busca em Largura:

• OBSERVAÇÕES:

1 É Ótima?

 Sempre encontra a solução mais “rasa”.


 Nem sempre é a solução de menor custo de caminho, caso os
operadores tenham valores diferentes.

Exemplo: ir para uma cidade D passando por B e C pode ser mais


perto do que passando só por E.

2 É Ótima se o custo de caminho cresce com a profundidade do nó.

 O que ocorre quando todos os operadores têm o mesmo custo

(=1).

2010/2 Flávio Ferreira Lima


Inteligência Artificial
37 Email: flima@facnet.com.br

Busca de Custo
Uniforme

2010/2 Flávio Ferreira Lima


Inteligência Artificial
38 Email: flima@facnet.com.br

19
ESTRATÉGIA DE BUSCA SEM INFORMAÇÃO

Busca de custo uniforme:


• Definição: • Algoritmo:
A estratégia de busca uniforme é função Busca
Busca--de
de--Custo
Custo--Uniforme (problema)
basicamente a mesma coisa da busca em retorna uma solução ou falha
extensão. Mas ao invés de pegar o primeiro Busca--Genérica (problema, Insere
Busca Insere--Ordem
Ordem--Crescente
Crescente)
nó expandido que está na lista aguardando
processamento, o nó que possui o menor
custo (g(N)) será escolhido para ser • Ordem de ramificação dos nós:
expandido. Se certas condições sempre
forem cumpridas, garante-se que a primeira  Estende a busca em largura:
solução encontrada será a mais barata. Uma
condição é a seguinte: o custo do caminho - expande o nó da fronteira com menor custo de
nunca deve ir diminuindo conforme caminho até o momento
avançamos por ele, em outras palavras, é
importante que:
- cada operador pode ter um custo associado
diferente, medido pela função g(n) que dá o custo
g(Sucessor) >= g(N) do caminho da origem ao nó n.
em todos os nós N, g(N) é o custo conhecido
de ir-se da raiz até o nódulo N.  Na busca em largura: g(n) = profundidade (n)

2010/2 Flávio Ferreira Lima


Inteligência Artificial
39 Email: flima@facnet.com.br

ESTRATÉGIA DE BUSCA SEM INFORMAÇÃO

Busca de custo uniforme:

• 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

2010/2 Flávio Ferreira Lima


Inteligência Artificial
40 Email: flima@facnet.com.br

20
ESTRATÉGIA DE BUSCA SEM INFORMAÇÃO

Busca de custo uniforme:


• Passo a Passo: Exemplo anterior

 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!

2010/2 Flávio Ferreira Lima


Inteligência Artificial
41 Email: flima@facnet.com.br

ESTRATÉGIA DE BUSCA SEM INFORMAÇÃO

Busca de custo uniforme:


• Análise:

 Esta estratégia é completa


 É ótima se
 g (sucessor(n))  g (n)
- custo de caminho no mesmo caminho não decresce
- i.e., não tem operadores com custo negativo
 caso contrário, teríamos que expandir todo o espaço de estados em busca da melhor
solução.
- Ex. Seria necessário expandir também o nó C do exemplo, pois o próximo
operador poderia ter custo associado = -13, por exemplo, gerando um caminho
mais barato do que através de B
 Custo de tempo e de memória
 teoricamente, igual ao da Busca em Largura

2010/2 Flávio Ferreira Lima


Inteligência Artificial
42 Email: flima@facnet.com.br

21
Busca em
Profundidade

2010/2 Flávio Ferreira Lima


Inteligência Artificial
43 Email: flima@facnet.com.br

ESTRATÉGIA DE BUSCA SEM INFORMAÇÃO

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

2010/2 Flávio Ferreira Lima


Inteligência Artificial
44 Email: flima@facnet.com.br

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

ESTRATÉGIA DE BUSCA SEM INFORMAÇÃO

Exemplo: Encontrar um caminho entre uma origem (nó inicial, S) e um destino


(nó meta, G).

2010/2 Flávio Ferreira Lima


Inteligência Artificial
46 Email: flima@facnet.com.br

23
ESTRATÉGIA DE BUSCA SEM INFORMAÇÃO
Continuação do exemplo:

2010/2 Flávio Ferreira Lima


Inteligência Artificial
47 Email: flima@facnet.com.br

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

Busca com Aprofundamento Iterativo :

 Evita o problema de caminhos muito longos ou infinitos impondo um limite


máximo (l) de profundidade para os caminhos gerados.
 l ≥ d, onde l é o limite de profundidade e d é a profundidade da primeira solução
do problema
 Esta estratégia tenta limites com valores crescentes, partindo de zero, até
encontrar a primeira solução
 fixa profundidade = i, executa busca
 se não chegou a um objetivo, recomeça busca com profundidade = i + n (n
qualquer)
 piora o tempo de busca, porém melhora o custo de memória!
 Igual à Busca em Largura para i=1 e n=1

2010/2 Flávio Ferreira Lima


Inteligência Artificial
49 Email: flima@facnet.com.br

BUSCA EM ESPAÇO DE ESTADOS

Busca com Aprofundamento Iterativo :

 Combina as vantagens de busca em largura com busca em profundidade.


 É ótima e completa
 com n = 1 e operadores com custos iguais
 Custo de memória:
 necessita armazenar apenas b*d nós para um espaço de estados com fator de
expansão b e limite de profundidade d
 Custo de tempo:
 O(bd)
 Bons resultados quando o espaço de estados é grande e de profundidade
desconhecida.

2010/2 Flávio Ferreira Lima


Inteligência Artificial
50 Email: flima@facnet.com.br

25
Busca
Bidirecional

2010/2 Flávio Ferreira Lima


Inteligência Artificial
51 Email: flima@facnet.com.br

BUSCA EM ESPAÇO DE ESTADOS

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

2010/2 Flávio Ferreira Lima


Inteligência Artificial
52 Email: flima@facnet.com.br

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.

2010/2 Flávio Ferreira Lima


Inteligência Artificial
53 Email: flima@facnet.com.br

Obrigado !!!

2010/2 Flávio Ferreira Lima


Inteligência Artificial
54 Email: flima@facnet.com.br

27

Você também pode gostar