Buscar

iia-Procura cega-PeB


Prévia do material em texto

Inteligência Artificial Universidade da Madeira
1
Inteligência Artificial
Procura Cega
Agenda
PARTE 1
Resolução de Problemas
Representação de Problemas / Modelação
Agente Solucionador de Problemas
PARTE 2
Procura em Espaço de Estados:
Geração e Teste
Implementação
Modelos de Procura Cega
Em Largura Primeiro (Breath - First)
Custo Uniforme (Uniform - Cost)
Em Profundidade Primeiro (Depth–First)
Profundidade Limitada (Depth – Limited)
Aprofundamento Progressivo (Progressive Depth)
Bidireccional
Inteligência Artificial Universidade da Madeira
2
Resolução de Problemas
Veremos como um agente inteligente pode 
resolver problemas considerando as diferentes 
sequências de acções que pode realizar.
Quando um agente exibe este comportamento, 
orientado a atingir metas particulares diz-se 
que é um Agente solucionador de problemas.
Resolução de Problemas
Este tipo de agente deve ter:
Uma Representação adequada do seu entorno.
Deve conhecer as Acções que pode efectuar.
Deve poder Raciocinar sobre o efeito das suas 
acções no ambiente.
O raciocínio neste caso fica reduzido a escolha das 
acções e ao seu efeito sobre o ambiente.
Inteligência Artificial Universidade da Madeira
3
O Problema da Representação
Num sentido geral, concerne à relação existente 
entre as distintas formas de formular um 
problema e a eficiência para achar uma solução 
ao mesmo.
Embora um problema possa ser expressado de 
diversas formas, nem sempre é possível 
estabelecer uma equivalência formal entre elas. 
O Problema da Representação
A representação de um problema tem uma 
grande influência no esforço que é requerido 
para resolve-lo. 
Um problema raramente resolve-se nos 
mesmos termos em que foi expressado ao 
início.
Normalmente utilizam-se um conjunto de 
convenções para representar a informação. Isto 
chama-se modelar.
Inteligência Artificial Universidade da Madeira
4
O Problema da Representação
Quando representamos um problema 
estamos a criar um modelo do mesmo.
Mas, o que é um modelo?
O Problema da Representação
Um modelo consiste na interpretação de um 
dado domínio do problema segundo uma 
determinada estrutura de conceitos.
Um esquema é a especificação de um modelo 
usando uma determinada linguagem, a qual 
pode ser formal ou informal.
Um modelo é uma representação em pequena 
escala, numa perspectiva particular, de um 
problema.
Inteligência Artificial Universidade da Madeira
5
Os modelos ...
Ajudam a visualizar um problema, quer seja a 
sua situação no passado, presente ou no futuro;
Permitem especificar a estrutura ou o 
comportamento de um problema;
Permitem controlar e guiar o processo de 
resolução de um problema.
Abstracção
Abstracção: s. f., acção de abstrair; 
separação mental de uma das partes de 
um todo;
Abstracto: adj., que designa uma 
qualidade separada do objecto a que 
pertence;
Inteligência Artificial Universidade da Madeira
6
Um bom exemplo de 
modelação …
Quando o primeiro mapa do Underground de Londres foi 
publicado em 1908, seguia fielmente a geografia das 
linhas: todas as curvas e voltas das trilhas e a distância 
relativa entre as estações foram fielmente respeitadas.
Entretanto o propósito do mapa era mostrar aos 
passageiros a ordem das estações em cada linha, e as 
conexões entre linhas. A fidelidade do mapa dificultava 
obter essa informação.
d
e 
1
9
0
8
Inteligência Artificial Universidade da Madeira
7
Mapa de 1933
Em 1933, o mapa foi substituído por uma 
representação bem mais abstracta, que 
mostrava somente a conectividade entre 
as estações.
Foram abstraídos
Detalhes da superfície
Distância entre as estações
Orientação das linhas
M
a
p
a
d
e 
1
9
3
3
Inteligência Artificial Universidade da Madeira
8
Mapa de 1933
O Diagrama deu ás pessoas um bom modelo 
conceptual; isto é, como podemos ver o sistema do 
Underground de Londres. É uma especificação que 
permite as pessoas entenderem uma implementação 
complexa.
Além disso, embora sofreu mudanças e é revisto 
desde 1931, basicamente continua a ser o mesmo 
diagrama proposto pelo engenheiro desenhador Harry
Beck.
O êxito do diagrama é por causa de:
Uma apropriada escolha da abstracção
Uma elegante apresentação.
M
a
p
a
A
c
t
u
a
l
Inteligência Artificial Universidade da Madeira
9
M
a
p
a
A
c
t
u
a
l
M
a
p
a
A
c
t
u
a
l
Inteligência Artificial Universidade da Madeira
10
Características de uma boa 
Representação
Clareza: Deve ser evidente a relação entre o 
modelo e o problema real.
Exactidão: O modelo deve ser fiel á realidade 
nos aspectos relevantes para a resolução do 
problema.
Completude: O modelo deve representar todos 
os aspectos relevantes para a resolução do 
problema.
Características de uma boa 
Representação
Eficiência: A representação deve poder ser 
utilizada em forma eficiente.
Conciso: As características irrelevantes devem 
ser omitidas e os detalhes suprimidos.
Utilidade: É importante avaliar se o modelo 
sugere um bom método para resolver o 
problema.
Inteligência Artificial Universidade da Madeira
11
Hipótese de Representação de 
Conhecimento (Brian Smith (1982))
Um sistema inteligente utiliza estruturas 
que:
Podem ser interpretadas como proposições 
que representam o conhecimento do sistema
Determinam o comportamento do sistema
Resolução de Problemas (Acções)
O agente deve escolher uma sequência de 
acções que conduzam-lhe a atingir uma meta 
desejada.
A determinação de escolher entre várias metas 
possíveis normalmente inclui a ideia de custo.
O processo de seleccionar a sequência de 
acções denomina-se Procura.
Inteligência Artificial Universidade da Madeira
12
O agente reactivo
Escolhe suas acções com base apenas nas percepções actuais
Não tem estado interno 
Portanto, não pode pensar no futuro
Não sabe “para onde vai”.
O Agente solucionador de problemas
Procura uma sequência de acções que leve a estados desejáveis 
(objectivos).
Agente solucionador de problemas 
4 5 8
1 6
7 32
1 2 3
4 6
7 8
5
?
Resolução de Problemas: definições
Um problema em IA é definido em termos de...
1) um espaço de estados possíveis, incluindo:
um estado inicial
um (ou mais) estado final = objectivo
Exemplo 1: dirigir do Funchal ao Porto Moniz
espaço de estados: todas as cidades da Ilha
Exemplo 2: jogo de 8-números 
início: fim:
2) um conjunto de acções (ou operadores) que permitem passar de um 
estado a outro
Ex1.: dirigir de uma cidade a outra
Ex2.: mover uma peça do jogo de 8-números 
4 5 8
1 6
7 32
1 2 3
5 6
7 8
4
Inteligência Artificial Universidade da Madeira
13
Resolução de Problemas: definições
Definição do objectivo:
Propriedade abstracta 
Ex.: condição de xeque-mate no Xadrez
Conjunto de estados finais do mundo
Ex.: estar no Porto Moniz
Solução:
Caminho (sequência de acções ou operadores) que leva do 
estado inicial a um estado final (objectivo).
Espaço de Estados:
Conjunto de todos os estados alcançáveis a partir do estado 
inicial por qualquer sequência de acções.
Solucionando o problema: 
Representação, Procura e Execução
Representação do problema e do objectivo:
Quais são os estados e as acções a considerar?
Qual é (e como representar) o objectivo?
Procura (solução do problema):
Processo que gera/analisa sequências de acções para atingir um 
objectivo.
Solução = caminho entre estado inicial e estado final.
Custo do caminho = qualidade da solução.
Execução:
Executar a solução completa encontrada, (procura cega, procura 
informada, estratégias com adversários).
ou
Intercalar execução com procura (planeamento).
Inteligência Artificial Universidade da Madeira
14
Regras de Produção
Representam conhecimento com pares de condição acção
Se a condição (ou premissa ou antecedente) ocorre 
Então a acção (resultado, conclusão ou consequente) deverá
ocorrer. 
Se o agente percebe luz do freio do carro da frente acesa, então deve travar 
o carro (regra de acção).
Se o veículo tem 4 rodas e tem um motor então o veículo é um automóvel 
(novo conhecimento).
São chamadas de regras de produção porque, quandoutilizadas 
com raciocínio progressivo, produzem novos factos a partir dos 
factos e regras da BC. 
Esses novos factos passam a fazer parte da BC.
Exemplo: Problema das Jarras
Temos duas jarras vazias com capacidade 
de 4 e 3 litros cada uma. Como podemos 
obter exactamente 2 litros na primeira 
jarra? As jarras podem ser enchidas, 
esvaziadas ou pode-se passar o 
conteúdo de uma jarra para a outra.
Inteligência Artificial Universidade da Madeira
15
Exemplo: Problema das Jarras
O estado inicial é [0,0] 
A condição de solução é [2,Z], já que não 
importa o conteúdo da segunda jarra.
Exemplo: Problema das Jarras
As regras de produção são:
R1. Encher jarra 1: [X,Y] [4,Y]
R2. Encher jarra 2: [X,Y] [X,3]
R3. Esvaziar jarra 1: [X,Y] [0,Y]
R4. Esvaziar jarra 2: [X,Y] [X,0]
R5. Passar o conteúdo de 1 a 2 até encher 2
[X,Y] / X+Y>=3 [W,3] / W = X+Y-3
R6. Passar todo o conteúdo de 1 a 2
[X,Y] / X+Y<=3 [0,X+Y]
R7. Passar o conteúdo de 2 a 1 até encher 1
[X,Y] / X+Y>=4 [4,Z] / Z = X+Y-4
R8. Passar todo o conteúdo de 2 a 1
[X,Y] / X+Y<=4 [X+Y,0]
Inteligência Artificial Universidade da Madeira
16
Exemplo: Problema das Jarras
R3. Esvaziar jarra 1: [X,Y] [0,Y]
Podemos colocar a pré condição X>0 para evitar de usar a 
regra desnecessariamente.
R3. Esvaziar jarra 1: [X,Y] / X > 0 [0,Y]
Exercício:
Achar a solução do Problema das jarras nos 
próximos 10 minutos.
Sistemas de Produção
São sistemas baseados em regras de produção.
Consistem em 3 módulos principais:
A Base de Regras (BR): permanente
Regras de produção. 
A Memória de Trabalho: temporária
Base de factos derivados durante a “vida” do agente.
Percepções do agente e factos gerados a partir da BR 
pelo mecanismo de inferência.
O Mecanismo (máquina) de Inferência 
Determina o método de raciocínio utilizado 
(progressivo ou regressivo).
Utiliza estratégias de procura com compromisso 
(unificação).
Resolve conflitos e executa acções.
Inteligência Artificial Universidade da Madeira
17
Arquitectura dos Sistemas de 
Produção
Conhecimento Permanente
• factos
• regras de produção
Meta-conhecimento
• estratégias para resolução de 
conflito
Base de Regras
Conhecimento volátil
• descrição da instância do 
problema actual
• hipóteses actuais
• objectivos actuais
• resultados intermediários 
Conjunto de conflito
conjunto de possíveis 
regras a serem disparadas
Memória de Trabalho
Mecanismo 
de 
Inferência
Vantagens e Limitações dos 
Sistemas de Produção
Vantagens
As regras são de fácil compreensão.
Inferência e explicações são facilmente derivadas.
Manutenção é relativamente simples, devido a modularidade.
São mais eficientes que os sistemas de programação em lógica, 
embora menos expressivos.
Desvantagens
Conhecimento complexo requer muitas (milhares de) regras.
Esse excesso de regras cria problemas para utilização e 
manutenção do sistema.
Não são robustos (tratamento de incerteza).
Não aprendem.
Inteligência Artificial Universidade da Madeira
18
Exemplos de formulação de 
problema
Jogo de 8 números:
estados = cada possível configuração do tabuleiro.
estado inicial = qualquer um dos estados possíveis.
Objectivo = ordenado, com branco na posição [3,3].
custo do caminho = número de passos da solução.
Exercício: 
Pensar as regras de produção (5 minutos).
Importância da Formulação
Solução 1: 
R1. mover 1 para cima
R2. mover 1 para a direita
etc., 32 regras
Solução 2 (o que se move é o espaço vazio)
R1. mover vazio para cima
R2. mover vazio para a direita
etc., somente 4 regras
Inteligência Artificial Universidade da Madeira
19
Árvore de procura para o “jogo dos 8 números”
4 5 8
1 6
7 32
5 8
4 1 6
7 32
4 5 8
7 1 6
32
4 5 8
6
7 32
1
up down
right
1 2 3
4 6
7 8
5
down right
Importância da formulação
Jogo das 8 Rainhas
dispor 8 rainhas no tabuleiro de forma que não se possam 
“atacar”.
Não pode haver mais de uma rainha em uma mesma linha, coluna 
ou diagonal.
Existem diferentes estados e operadores possíveis.
Essa escolha pode ter consequências boas ou nefastas 
na complexidade da procura ou no tamanho do espaço de 
estados.
Inteligência Artificial Universidade da Madeira
20
Formulações para 8 Rainhas
Formulação A
estados: qualquer disposição com n (n £ 8) rainhas.
operadores: adicionar uma rainha a qualquer quadrado.
64^8 possibilidades: vai até o fim para testar se dá certo.
Formulação B
estados: disposição com n (n £ 8) rainhas sem ataque 
mútuo (teste gradual).
operadores: adicionar uma rainha na coluna vazia mais à
esquerda em que não possa ser atacada.
melhor (2057 possibilidades), mas pode não haver acção 
possível.
Formulação C
estados: disposição com 8 rainhas, uma em cada coluna.
operadores: mover uma rainha atacada para outra casa 
na mesma coluna.
Medida de Desempenho na 
Procura
Desempenho de um algoritmo de procura:
1. O algoritmo encontrou alguma solução?
2. É uma boa solução?
custo de caminho (qualidade da solução).
3. É uma solução computacionalmente barata?
custo da procura (tempo e memória).
Custo total
custo do caminho + custo de procura
Espaço de estados grande:
compromisso (conflito) entre a melhor solução e a 
solução mais barata.
Inteligência Artificial Universidade da Madeira
21
Custo diferente => Solução 
diferente
Função de custo de caminho
(1) número de cidades visitadas,
(2) distância entre as cidades,
(3) tempo de viagem, etc.
Solução mais barata:
(1) Funchal, (via Paul da Serra), Porto Moniz
(2) Funchal, São Vicente, Porto Moniz 
(3) Funchal, São Vicente (viaduto), Porto Moniz 
Problemas clássicos
Torre de Hanoi
Missionários e Canibais
Jarro d’água
Jogo dos 8 números
Mundo dos blocos 
Caixeiro viajante
Labirinto
Lobo, ovelha e verdura
Travessia da ponte
...
Inteligência Artificial Universidade da Madeira
22
Problemas clássicos
Xadrez
Bridge
Gamão
Go
Mancala
Damas
...
SEND
+ MORE
-------
MONEY
Aplicações: Problemas Reais
Cálculo de rotas
rotas em redes de computadores.
sistemas de planeamento de viagens.
planeamento de rotas de aviões.
Caixeiro viajante.
Alocação (Scheduling)
Salas de aula.
Máquinas industriais (job shop).
Inteligência Artificial Universidade da Madeira
23
Aplicações: Problemas Reais
Navegação de robots:
generalização do problema da navegação.
Os robots movem-se em espaços contínuos, com um 
conjunto (infinito) de possíveis acções e estados
controlar os movimentos do robot no chão, dos seus 
braços e pernas requer espaço multi-dimensional.
Montagem de objectos complexos por robots:
ordenar a montagem das diversas partes do objecto
etc... 
FIM PARTE 1
Inteligência Artificial Universidade da Madeira
24
Agenda
PARTE 1
Resolução de Problemas
Representação de Problemas / Modelação
Agente Solucionador de Problemas
PARTE 2
Procura em Espaço de Estados:
Geração e Teste
Implementação
Modelos de Procura Cega
Em Largura Primeiro (Breath - First)
Custo Uniforme (Uniform - Cost)
Em Profundidade Primeiro (Depth–First)
Profundidade Limitada (Depth – Limited)
Aprofundamento Progressivo (Progressive Depth)
Bidireccional
Procura em Espaço de Estados
Uma vez que o problema é bem formulado... o 
estado final deve ser “procurado”.
Em outras palavras, deve-se usar um método de 
procura para saber a ordem correcta de 
aplicação dos operadores que levará do estado 
inicial ao final.
Uma vez a procura terminada com sucesso, é
só executar a solução (= conjunto ordenado de 
operadores a aplicar).
Inteligência Artificial Universidade da Madeira
25
Procura em Espaço de Estados:
Geração e Teste
Fronteira do espaço de estados
nós (estados) a serem expandidos no momento.
Algoritmo:
Obs.: o algoritmo começa com a fronteira contendo o estado 
inicial do problema. 
1. Seleccionar o primeiro nó (estado) da fronteira do espaço de estados;
- se a fronteira está vazia, o algoritmo termina com falha.
2. Testar se o nó é um estado final (solução):
- se “sim, então retornar nó - a procura termina com sucesso.
3. Gerar um novo conjunto de estados pela aplicação dos operadores 
ao estado seleccionado;
4. Inserir os nós geradosna fronteira, de acordo com a estratégia de 
procura usada, e voltar para o passo (1).
Procura em Espaço de Estados: 
Implementação
Espaços de Estados
podem ser representados como uma árvore onde os estados 
são nós e as operações são arcos.
Os nós da árvore podem guardar mais informação do 
que apenas o estado:
→ são uma estrutura de dados com 5 componentes:
1. o estado correspondente
2. o seu nó pai
3. o operador aplicado para gerar o nó (a partir do pai)
4. a profundidade do nó
5. o custo do nó (desde a raiz)
Inteligência Artificial Universidade da Madeira
26
Procura em Espaço de Estados: 
implementação
Algoritmo:
Função-Insere: controla a ordem de inserção de nós na 
fronteira do espaço de estados.
função Procura-Genérica (problema, Função-Insere) 
retorna uma solução ou falha
fronteira ← Faz-Fila (Faz-Nó (Estado-Inicial [problema] ) )
loop do
se fronteira está vazia então retorna falha
nó ← Remove-Primeiro (fronteira)
se Teste-Término [problema] aplicado a Estado [nó] tiver 
sucesso
então retorna nó
fronteira ← Função-Insere (fronteira, Operadores [problema])
Métodos de Procura
Procura exaustiva - cega
Não sabe qual o melhor nó da fronteira a ser expandido = menor custo de 
caminho desse nó até um nó final (objectivo).
Estratégias de Procura (ordem de expansão dos nós):
Direcção de Procura:
Do estado inicial para o objectivo
Do objectivo para o estado inicial
Procura Bidireccional
Procura heurística – informada
Estima qual o melhor nó da fronteira a ser expandido com base em funções 
heurísticas => conhecimento.
Estratégia de procura: (melhor escolha baseada na função heurística).
Direcção de Procura: idem à procura cega.
Inteligência Artificial Universidade da Madeira
27
Critérios de Avaliação das 
Estratégias de Procura
Completude:
A estratégia encontra sempre uma solução?
Custo do tempo:
Quanto tempo gasta para encontrar uma solução?
Custo de memória:
Quanta memória é necessária para realizar a 
procura?
Optimização/qualidade (optimality):
A estratégia encontra a melhor solução quando 
existem diferentes soluções?
Procura Cega
Em Largura Primeiro (Breath - First)
Custo Uniforme (Uniform - Cost)
Em Profundidade Primeiro (Depth–First)
Profundidade Limitada (Depth – Limited)
Aprofundamento Progressivo (Progressive 
Depth)
Bidireccional
Inteligência Artificial Universidade da Madeira
28
Procura Cega
Notação
b = factor de ramificação; 
d = profundidade da solução; 
m = profundidade máxima da árvore de 
procura; 
l = limite de profundidade.
Procura em Largura(1)
Procura em largura: o nó de menor profundidade, mais á
esquerda é escolhido para gerar sucessores.
O nó raiz é expandido primeiro
todos os nós gerados são explorados;
todos os sucessores dos antecessores são explorados;
e assim sucessivamente.
“Os nós de profundidade d são explorados antes dos 
nós de profundidade d+1”
function BREADTH-FIRST-SEARCH (problem) return 
solution
return GENERAL-SEARCH(problem, ENQUEUE-AT-
END)
Inteligência Artificial Universidade da Madeira
29
Procura em Largura(2)
Se existe solução será encontrada.
A solução encontrada primeiro será a de 
menor profundidade.
Completa e óptima.
Factor de ramificação (b)
deve-se considerar tempo e memória;
solução com profundidade d.
1 + b2+ b3+ ... + bd
Procura em Largura(3)
Inteligência Artificial Universidade da Madeira
30
Procura em Largura(4)
Procura em Largura(5)
Inteligência Artificial Universidade da Madeira
31
Procura em Largura(6)
Procura em Largura(7)
Inteligência Artificial Universidade da Madeira
32
Procura em Largura(8)
Algoritmo Procura em Largura 
Primeiro
Função ProcuraLarguraPrimeiro (problema, insere_fila): solução ou 
falha
1. i_nós faz_fila(estado_inicial(problema))
2. repete
2.1 se vazia_fila (i_nós) então
2.1.1 devolve falha
fim_de_se
2.2 nó retira_fila (i_nós)
2.3 se teste_objectivo(nó) então
2.3.1 devolve nó senão
2.3.2 insere_fila
(i_nós,espansão(nó,operadores(problema)))
fim_de_se
fim_de_repete
fim_de_função
Inteligência Artificial Universidade da Madeira
33
Procura Cega
Em Largura Primeiro (Breath - First)
Custo Uniforme (Uniform - Cost)
Em Profundidade Primeiro (Depth–First)
Profundidade Limitada (Depth – Limited)
Aprofundamento Progressivo (Progressive
Depth)
Bidireccional
Custo Uniforme(1)
A estratégia de procura uniforme é uma 
pequena modificação da estratégia de procura 
em largura. 
Na procura em largura, primeiro expande-se 
o nó raiz, depois todos os nós gerados por esse, 
e assim sucessivamente até que se chegue ao 
estado meta, ou seja, todos os nós que estão 
numa profundidade d da árvore serão 
expandidos e visitados antes que os nós que 
estão numa profundidade d+1. 
Inteligência Artificial Universidade da Madeira
34
Custo Uniforme(2)
A estratégia de procura uniforme é basicamente a mesma 
coisa. 
Invés de começar no primeiro nó expandido, que está na lista 
aguardando processamento, o nó que possui o menor custo (g(N)) 
será escolhido para ser expandido. 
Se certas condições forem cumpridas, garante-se que a 
primeira solução encontrada será a mais barata. 
Uma das condições é a seguinte: 
o custo do caminho nunca deve ir diminuindo conforme avançamos, 
noutras palavras, é importante que: 
g (Sucessor)>= g (N) 
em todos os nós N, g (N) é o custo conhecido de ir da raiz até o 
nódulo N.
Custo Uniforme(3)
Abaixo apresentamos o pseudo código do mesmo. 
Algoritmo Procura – Uniforme
1. Definir um conjunto L de nós iniciais
2. Ordenar L em ordem crescente de custo
3. Se L é vazio
Então a Procura não foi bem sucedida
Senão seja n o primeiro nó de L;
4. Se n é um nó objectivo
Então
Retornar caminho do nó inicial até N;
Parar
Senão 
Remover n de L;
Adicionar em L todos os nós filhos de n, rotulando cada nó com o seu caminho 
até o nó inicial;
Ordenar L em ordem crescente de custo;
Voltar ao passo 3.
Inteligência Artificial Universidade da Madeira
35
Custo Uniforme(4)
Análise da Complexidade
O custo de espaço e tempo, referente a estratégia de procura uniforme, pode 
ser visualizado no quadro abaixo:
11,111
terabytes
3500 anos101414
111 terabytes35 anos101212
1 terabyte128 dias101010
11 gigabytes31 horas1088
111
megabytes
18 minutos1066
1 megabytes11 segundos11,1114
11 kilobytes0.1 segundos1112
100 bytes1 milisegundo10
MemóriaTempoNósProfundidade
Quadro 1: Tempo, memória e nós gerados para se chegar ao estado meta
Custo Uniforme(5)
Resumo
Princípio: expandir sempre o nó da fronteira com menor 
custo (dado pela função g (n)).
Este método é equivalente à procura em largura primeiro 
quando g (n) = profundidade (n).
Características:
É completo
É óptimo
function UNIFORM-COST-SEARCH (problem) returns solution
return GENERAL-SEARCH (problem, COST-FN,ENQUEUE-AT-END)
Inteligência Artificial Universidade da Madeira
36
Custo Uniforme(6)
Algoritmo Procura Custo Uniforme
Função ProcuraCustoUniforme (problema, insere_ordem_fila): solução ou falha
1. i_nós faz_fila(estado_inicial(problema))
2. repete
2.1 se vazia_fila (i_nós) então
2.1.1 devolve falha
fim_de_se
2.2 nó retira_fila (i_nós)
2.3 se teste_objectivo(nó) então
2.3.1 devolve nó senão
2.3.2 insere_ordem_fila (i_nós,espansão(nó,operadores(problema)))
fim_de_se
fim_de_repete
fim_de_função
Inteligência Artificial Universidade da Madeira
37
Procura Cega
Em Largura Primeiro (Breath - First)
Custo Uniforme (Uniform - Cost)
Em Profundidade Primeiro (Depth–First)
Profundidade Limitada (Depth – Limited)
Aprofundamento Progressivo (Progressive
Depth)
Bidireccional
Profundidade Primeiro(1)
Ordem de expansão dos nós:
sempre expande o nó no nível mais profundo da árvore:
1. nó raiz
2. primeiro nó de profundidade 1
3. primeiro nó de profundidade 2, etc.
Quando um nó final não é solução, o algoritmo volta para 
expandir os nós que ainda estão na fronteira do espaço de 
estados.
Algoritmo:
função Procura-em-Profundidade (problema) 
retorna uma solução ou falha
Busca-Genérica (problema, Insere-no-Começo)
Inteligência Artificial Universidadeda Madeira
38
Profundidade Primeiro(2)
• O nó de maior profundidade mais a esquerda é
escolhido para gerar sucessores.
• Quando é expandido um nó de maior profundidade, a 
procura chega a um nó sem sucessor, logo o algoritmo 
expande o próximo nó com menor profundidade.
Profundidade Primeiro(2)
Inteligência Artificial Universidade da Madeira
39
Profundidade Primeiro(3)
Profundidade Primeiro(4)
Inteligência Artificial Universidade da Madeira
40
Profundidade Primeiro(5)
Profundidade Primeiro(6)
Inteligência Artificial Universidade da Madeira
41
Profundidade Primeiro(7)
Profundidade Primeiro(8)
Inteligência Artificial Universidade da Madeira
42
Profundidade Primeiro(9)
Profundidade Primeiro(10)
Inteligência Artificial Universidade da Madeira
43
Profundidade Primeiro(11)
Esta estratégia não é completa nem é óptima.
Custo de memória:
mantém na memória o caminho que está sendo expandido no 
momento, e os nós irmãos dos nós no caminho (para possibilitar o 
backtracking)
⇒ necessita armazenar apenas b.m nós para um espaço de 
estados com factor de expansão b e profundidade m, onde m
pode ser maior que d (profundidade da 1a. solução).
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 procura em largura.
Esta estratégia deve ser evitada quando as árvores geradas 
são muito profundas ou geram caminhos infinitos.
Vantagem:
• Requer pouca memória
- O nó objectivo pode vir a ser encontrado sem 
examinar a árvore por completo.
Desvantagem:
• É importante que cada sequência possível possa 
terminar.
- Se não o algoritmo “desce” indefinidamente.
Profundidade Primeiro(12)
Inteligência Artificial Universidade da Madeira
44
Algoritmo Procura em 
Profundidade Primeiro
Função ProcuraProfundidadePrimeiro (problema, insere_pilha): solução ou 
falha
1. i_nós faz_pilha(estado_inicial(problema))
2. repete
2.1 se vazia_pilha (i_nós) então
2.1.1 devolve falha
fim_de_se
2.2 nó retira_pilha (i_nós)
2.3 se teste_objectivo(nó) então
2.3.1 devolve nó senão
2.3.2 insere_pilha (i_nós,espansão(nó,operadores(problema)))
fim_de_se
fim_de_repete
fim_de_função
Procura Cega
Em Largura Primeiro (Breath - First)
Custo Uniforme (Uniform - Cost)
Em Profundidade Primeiro (Depth–First)
Profundidade Limitada (Depth – Limited)
Aprofundamento Progressivo (Progressive
Depth)
Bidireccional
Inteligência Artificial Universidade da Madeira
45
• Acabamos de ver que um dos grandes problemas da 
Procura em Profundidade Primeiro prende-se com a 
incapacidade desta lidar com caminhos infinitos.
• O algoritmo de Procura em Profundidade Limitada
procura evitar este problema fixando o nível máximo de 
procura.
Profundidade Limitada (1)
Profundidade Limitada (2)
• Neste processo de procura gera-se um sucessor do nó em 
cada passo.
Por exemplo, no primeiro passo gera-se o sucessor do nó
inicial.
• Assim decidimos que cada vez que temos um nó
sucessor, aplicamos a este um operador, de modo a obter 
um novo sucessor, e assim sucessivamente.
Inteligência Artificial Universidade da Madeira
46
• Em cada nó temos que deixar uma marca, que indica que 
os operadores adicionais podem utilizar e especificar a 
ordem em que devem ser aplicados.
• Uma vez alcançada a profundidade limite, a procura pára o 
processo de sucessores. 
- Este limite permite-nos desprezar as partes do grafo, 
em que se supõe que não encontramos um nó objectivo, 
o suficientemente perto do nó inicial.
Profundidade Limitada (3)
Algoritmo Procura em 
Profundidade Limitada
Função ProcuraProfundidadeLimitada (problema, insere_pilha,nivel_máx): 
solução ou falha
1. i_nós faz_pilha(estado_inicial(problema))
2. repete
2.1 se vazia_pilha (i_nós) então
2.1.1 devolve falha
fim_de_se
2.2 nó retira_pilha (i_nós)
2.3 se teste_objectivo(nó) então
2.3.1 devolve nó senão
2.3.2 insere_pilha (i_nós,espansão(nó,operadores_Nmx(problema)))
fim_de_se
fim_de_repete
fim_de_função
Inteligência Artificial Universidade da Madeira
47
Procura Cega
Em Largura Primeiro (Breath - First)
Custo Uniforme (Uniform - Cost)
Em Profundidade Primeiro (Depth–First)
Profundidade Limitada (Depth – Limited)
Aprofundamento Progressivo (Progressive
Depth)
Bidireccional
• Como já vimos, se não conhecermos o valor limite 
máximo, estaremos condenados a uma estratégia de 
procura em profundidade primeiro e temos que lidar com 
o problema dos caminhos infinitos.
• A resposta a este problema passa pela alteração do 
principio da procura limitada fazendo variar esse limite 
entre zero e infinito.
Aprofundamento Progressivo (1)
Inteligência Artificial Universidade da Madeira
48
Aprofundamento Progressivo (2)
• Assim, o algoritmo consiste na chamada repetida do 
algoritmo de procura limitada para valores crescentes do 
limite máximo.
• Este algoritmo combina aspectos positivos da procura 
em largura e da procura em profundidade.
• Assim o problema dos caminhos infinitos desaparece.
Aprofundamento Progressivo (3)
Inteligência Artificial Universidade da Madeira
49
Aprofundamento Progressivo (4)
Aprofundamento Progressivo (5)
Inteligência Artificial Universidade da Madeira
50
Aprofundamento Progressivo (6)
• O algoritmo de procura por aprofundamento 
progressivo é uma excelente opção para problemas em 
que somos obrigados a recorrer a um método cego.
• O espaço de procura é grande, mas não sabemos qual é
o nível máximo em que pode estar uma solução.
Aprofundamento Progressivo (7)
Inteligência Artificial Universidade da Madeira
51
Algoritmo Procura em 
Aprofundamento Progressivo
Função ProcuraAprofundamentoProgressivo (problema, insere_pilha): 
solução ou falha
1. para nivél 0 até infinito faz
1.1 se procura ProcuraProfundidadeLimitada (problema, 
insere_pilha,nivél) então
1.1.1 devolve solução
fim_de_se
fim_de_para
fim_de_função
Procura Cega
Em Largura Primeiro (Breath - First)
Custo Uniforme (Uniform - Cost)
Em Profundidade Primeiro (Depth–First)
Profundidade Limitada (Depth – Limited)
Aprofundamento Progressivo (Progressive
Depth)
Bidireccional
Inteligência Artificial Universidade da Madeira
52
Busca Bidirecional (1)
Busca em duas direcções:
para frente, a partir do nó inicial, e 
para trás, a partir do nó final (objectivo).
A procura pára quando os dois processos geram um 
mesmo estado intermediário. 
É possível utilizar estratégias diferentes em cada 
direcção da procura.
Busca Bidirecional (2)
Custo de tempo:
Se o factor 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)
Procura para trás gera antecessores do nó final
se os operadores são reversíveis:
conjunto de antecessores do nó = conjunto de sucessores do nó
porém, esses operadores podem gerar árvores infinitas!
caso contrário, a geração de antecessores fica muito difícil
descrição desse conjunto é uma propriedade abstracta
Ex.: como determinar exatamente todos os estados que 
precedem um estado de xeque-mate?
Problemas também quando existem muitos estados finais 
(objectivos) no problema.
Inteligência Artificial Universidade da Madeira
53
Comparação das Diversas 
Estratégias de Busca
b = factor de ramificação; d = profundidade da solução; 
m = profundidade máxima da árvore de procura; l = limite de profundidade. 
Critério Largura Custo 
Uniforme
Profun-
didade 
Aprofun-
damento 
Iterativo 
Tempo bd bd bm bd 
Espaço bd bd bm bd 
Otima? Sim Sim* Não Sim 
Completa? Sim Sim Não Sim 
 
 
Conclusão
Os Algoritmos de procura bidireccional são de 
especial interesse, porque têm o potencial para 
procurar pequenos espaços e reduzem 
significativamente o tempo de funcionamento por 
implementação paralela. Enquanto o último é
geralmente verdade, o primeiro pode ser falso quando 
existem múltiplos caminhos de solução comparáveis. 
Aplicado de forma incorrecta o método de procura 
bidireccional, pode originar os piores casos de procura, 
transformando-se em casos de procura 
unidireccionais onde os espaçosde procura são 
distantes entre si. 
Inteligência Artificial Universidade da Madeira
54
Fontes Consultadas
Russel, Norvig, Artificial Intelligence: A Modern
Approach, Cap. 3.
Costa, Simões, Inteligência Artificial. 
Fundamentos e Aplicações. Cap 3.2.
Kvitca, Adolfo Resolución de problemas con 
inteligencia artificial. Editorial Kapeluz.
Acetatos Prof. Guillermo Simari. Universidad
Nacional del Sur, Argentina
Acetatos Alunos IIA semestre 2005/2006
Acetatos Prof. Geber Ramalho. CIN. 
Universidade Federal de Pernambuco, Brasil.
Leituras
LIVROS
Russel, Norvig, Artificial Intelligence: A 
Modern Approach, Cap. 3.
Costa, Simões, Inteligência Artificial. 
Fundamentos e Aplicações. Cap 3.2.
Inteligência Artificial Universidade da Madeira
55
FIM

Continue navegando