Você está na página 1de 55

Inteligência Artificial Universidade da Madeira

Inteligência Artificial

Procura Cega

Agenda

z PARTE 1
z Resoluç
Resolução de Problemas
z Representaç
Representação de Problemas / Modelaç
Modelação
z Agente Solucionador de Problemas
z PARTE 2
z Procura em Espaç
Espaço de Estados:
z Geraç
Geração e Teste
z Implementaç
Implementação
z Modelos de Procura Cega
z Em Largura Primeiro (Breath - First)
z Custo Uniforme (Uniform - Cost)
z Em Profundidade Primeiro (Depth–
(Depth–First)
z Profundidade Limitada (Depth
(Depth – Limited)
Limited)
z Aprofundamento Progressivo (Progressive
(Progressive Depth)
Depth)
z Bidireccional

1
Inteligência Artificial Universidade da Madeira

Resolução de Problemas
z Veremos como um agente inteligente pode
resolver problemas considerando as diferentes
sequências de acções que pode realizar.

z Quando um agente exibe este comportamento,


orientado a atingir metas particulares diz-se
que é um Agente solucionador de problemas.

Resolução de Problemas
z Este tipo de agente deve ter:

z Uma Representaç
Representação adequada do seu entorno.
z Deve conhecer as Acç
Acções que pode efectuar.
z Deve poder Raciocinar sobre o efeito das suas
acç
acções no ambiente.
z O raciocí
raciocínio neste caso fica reduzido a escolha das
acç
acções e ao seu efeito sobre o ambiente.

2
Inteligência Artificial Universidade da Madeira

O Problema da Representação
z 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.
z 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
z A representação de um problema tem uma
grande influência no esforço que é requerido
para resolve-lo.
z Um problema raramente resolve-se nos
mesmos termos em que foi expressado ao
início.
z Normalmente utilizam-se um conjunto de
convenções para representar a informação. Isto
chama-se modelar.

3
Inteligência Artificial Universidade da Madeira

O Problema da Representação
z Quando representamos um problema
estamos a criar um modelo do mesmo.

Mas, o que é um modelo?

O Problema da Representação
z Um modelo consiste na interpretação de um
dado domínio do problema segundo uma
determinada estrutura de conceitos.
z Um esquema é a especificação de um modelo
usando uma determinada linguagem, a qual
pode ser formal ou informal.
z Um modelo é uma representação em pequena
escala, numa perspectiva particular, de um
problema.

4
Inteligência Artificial Universidade da Madeira

Os modelos ...
z Ajudam a visualizar um problema, quer seja a
sua situação no passado, presente ou no futuro;
z Permitem especificar a estrutura ou o
comportamento de um problema;
z Permitem controlar e guiar o processo de
resolução de um problema.

Abstracção
z Abstracção: s. f., acção de abstrair;
separação mental de uma das partes de
um todo;

z Abstracto: adj., que designa uma


qualidade separada do objecto a que
pertence;

5
Inteligência Artificial Universidade da Madeira

Um bom exemplo de
modelação …
z 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ç
estações foram fielmente respeitadas.

z Entretanto o propó
propósito do mapa era mostrar aos
passageiros a ordem das estaç
estações em cada linha, e as
conexões entre linhas. A fidelidade do mapa dificultava
obter essa informaç
informação.

d
e

1
9
0
8

6
Inteligência Artificial Universidade da Madeira

Mapa de 1933
z Em 1933, o mapa foi substituído por uma
representação bem mais abstracta, que
mostrava somente a conectividade entre
as estações.
z Foram abstraídos
z Detalhes da superfície
z Distância entre as estações
z Orientação das linhas

M
a
p
a

d
e

1
9
3
3

7
Inteligência Artificial Universidade da Madeira

Mapa de 1933
z O Diagrama deu ás pessoas um bom modelo
conceptual; isto é, como podemos ver o sistema do
Underground de Londres. É uma especificaç
especificação que
permite as pessoas entenderem uma implementaç
implementação
complexa.
z Alé
Além disso, embora sofreu mudanç
mudanças e é revisto
desde 1931, basicamente continua a ser o mesmo
diagrama proposto pelo engenheiro desenhador Harry
Beck.
Beck.
z O êxito do diagrama é por causa de:
z Uma apropriada escolha da abstracç
abstracção
z Uma elegante apresentaç
apresentação.

M
a
p
a

A
c
t
u
a
l

8
Inteligência Artificial Universidade da Madeira

M
a
p
a

A
c
t
u
a
l

M
a
p
a

A
c
t
u
a
l

9
Inteligência Artificial Universidade da Madeira

Características de uma boa


Representação

z Clareza: Deve ser evidente a relação entre o


modelo e o problema real.
z Exactidão: O modelo deve ser fiel á realidade
nos aspectos relevantes para a resolução do
problema.
z Completude: O modelo deve representar todos
os aspectos relevantes para a resolução do
problema.

Características de uma boa


Representação

z Eficiência: A representação deve poder ser


utilizada em forma eficiente.
z Conciso: As características irrelevantes devem
ser omitidas e os detalhes suprimidos.
z Utilidade: É importante avaliar se o modelo
sugere um bom método para resolver o
problema.

10
Inteligência Artificial Universidade da Madeira

Hipótese de Representação de
Conhecimento (Brian Smith (1982))

Um sistema inteligente utiliza estruturas


que:

z Podem ser interpretadas como proposições


que representam o conhecimento do sistema

z Determinam o comportamento do sistema

Resolução de Problemas (Acções)

z O agente deve escolher uma sequência de


acções que conduzam-lhe a atingir uma meta
desejada.
z A determinação de escolher entre várias metas
possíveis normalmente inclui a ideia de custo.
z O processo de seleccionar a sequência de
acções denomina-se Procura.

11
Inteligência Artificial Universidade da Madeira

Agente solucionador de problemas


z O agente reactivo
z Escolhe suas acç
acções com base apenas nas percepç
percepções actuais
z Não tem estado interno
z Portanto, não pode pensar no futuro
z Não sabe “para onde vai”
vai”.

4 5 8
1 6
? 1 2
4 5
3
6
7 2 3 7 8

z O Agente solucionador de problemas


z Procura uma sequência de acç
acções que leve a estados desejá
desejáveis
(objectivos).

Resolução de Problemas: definições


Um problema em IA é definido em termos de...
espaço de estados possí
1) um espaç possíveis, incluindo:
z um estado inicial
z um (ou mais) estado final = objectivo
z Exemplo 1: dirigir do Funchal ao Porto Moniz
z espaç
espaço de estados: todas as cidades da Ilha
z Exemplo 2: jogo de 8-
8-números
z iní
início: fim:
4 5 8 1 2 3
1 6 4 5 6
7 2 3 7 8
2) um conjunto de acç
acções (ou operadores)
operadores) que permitem passar de um
estado a outro
z Ex1.: dirigir de uma cidade a outra
z Ex2.: mover uma peç
peça do jogo de 8-
8-números

12
Inteligência Artificial Universidade da Madeira

Resolução de Problemas: definições

z Definiç
Definição do objectivo:
z Propriedade abstracta
z Ex.: condiç
condição de xeque-
xeque-mate no Xadrez
z Conjunto de estados finais do mundo
z Ex.: estar no Porto Moniz
z Soluç
Solução:
z Caminho (sequência de acçacções ou operadores)
operadores) que leva do
estado inicial a um estado final (objectivo).
z Espaç
Espaço de Estados:
z Conjunto de todos os estados alcançá
alcançáveis
veis a partir do estado
inicial por qualquer sequência de acç
acções.

Solucionando o problema:
Representação, Procura e Execução
z Representaç
Representação do problema e do objectivo:
z Quais são os estados e as acç
acções a considerar?
z Qual é (e como representar) o objectivo?
objectivo?

z Procura (soluç
(solução do problema):
z Processo que gera/analisa sequências de acç
acções para atingir um
objectivo.
z Soluç
Solução = caminho entre estado inicial e estado final.
z Custo do caminho = qualidade da soluç
solução.

z Execuç
Execução:
ão:
z Executar a soluç
solução completa encontrada, (procura cega, procura
informada, estraté
estratégias com adversá
adversários).
ou
z Intercalar execuç
execução com procura (planeamento).

13
Inteligência Artificial Universidade da Madeira

Regras de Produção

z condição Æ acç
Representam conhecimento com pares de condiç acção
z Se a condiç
condição (ou premissa ou antecedente) ocorre
z Então a acç
acção (resultado, conclusão ou consequente) deverá
deverá
ocorrer.
z Se o agente percebe luz do freio do carro da frente acesa, então deve travar
o carro (regra de acç
acção).
z Se o veí
veículo tem 4 rodas e tem um motor então o veíveículo é um automó
automóvel
(novo conhecimento).
z São chamadas de regras de produç
produção porque, quando utilizadas
com raciocí
raciocínio progressivo, produzem novos factos a partir dos
factos e regras da BC.
z Esses novos factos passam a fazer parte da BC.

Exemplo: Problema das Jarras

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

14
Inteligência Artificial Universidade da Madeira

Exemplo: Problema das Jarras

z O estado inicial é [0,0]

z 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ç
produção são:

R1. Encher jarra 1: [X,Y] Æ [4,Y]


R1.
R2. Encher jarra 2: [X,Y] Æ [X,3]
R2.
R3. Esvaziar jarra 1: [X,Y] Æ [0,Y]
R3.
R4. Esvaziar jarra 2: [X,Y] Æ [X,0]
R4.
R5.
R5. Passar o conteú
conteúdo de 1 a 2 até
até encher 2
[X,Y] / X+Y>=3 Æ [W,3] / W = X+Y-
X+Y-3
R6.
R6. Passar todo o conteú
conteúdo de 1 a 2
[X,Y] / X+Y<=3 Æ [0,X+Y]
R7.
R7. Passar o conteú
conteúdo de 2 a 1 até
até encher 1
[X,Y] / X+Y>=4 Æ [4,Z] / Z = X+Y-
X+Y-4
R8.
R8. Passar todo o conteú
conteúdo de 2 a 1
[X,Y] / X+Y<=4 Æ [X+Y,0]

15
Inteligência Artificial Universidade da Madeira

Exemplo: Problema das Jarras


R3. Esvaziar jarra 1: [X,Y] Æ [0,Y]
R3.
Podemos colocar a prépré condiç
condição X>0 para evitar de usar a
regra desnecessariamente.

R3. Esvaziar jarra 1: [X,Y] / X > 0 Æ [0,Y]


R3.

z Exercício:
z Achar a solução do Problema das jarras nos
próximos 10 minutos.

Sistemas de Produção
z São sistemas baseados em regras de produção.
z Consistem em 3 módulos principais:
z A Base de Regras (BR): permanente
z Regras de produç
produção.
z A Memó
Memória de Trabalho: temporá
temporária
z Basede factos derivados durante a “vida”
vida” do agente.
z Percepç
Percepções do agente e factos gerados a partir da BR
pelo mecanismo de inferência.
z O Mecanismo (má
(máquina) de Inferência
z Determina o mé método de raciocí
raciocínio utilizado
(progressivo ou regressivo).
z Utiliza estraté
estratégias de procura com compromisso
(unificaç
(unificação).
z Resolve conflitos e executa acç
acções.

16
Inteligência Artificial Universidade da Madeira

Arquitectura dos Sistemas de


Produção
Base de Regras Memória de Trabalho
Conhecimento Permanente Conhecimento volátil
• factos • descrição da instância do
• regras de produção problema actual
Mecanismo • hipóteses actuais
de • objectivos actuais
• resultados intermediários
Meta-conhecimento Inferência
• estratégias para resolução de
conflito Conjunto de conflito
conjunto de possíveis
regras a serem disparadas

Vantagens e Limitações dos


Sistemas de Produção
z Vantagens
z As regras são de fáfácil compreensão.
z Inferência e explicaç
explicações são facilmente derivadas.
z Manutenç
Manutenção é relativamente simples, devido a modularidade.
z São mais eficientes que os sistemas de programaç
programação em ló lógica,
embora menos expressivos.
z Desvantagens
z Conhecimento complexo requer muitas (milhares de) regras.
z Esse excesso de regras cria problemas para utilizaç
utilização e
manutenç
manutenção do sistema.
z Não são robustos (tratamento de incerteza).
z Não aprendem.

17
Inteligência Artificial Universidade da Madeira

Exemplos de formulação de
problema
z Jogo de 8 nú
números:

z estados = cada possí


possível configuraç
configuração do tabuleiro.
z estado inicial = qualquer um dos estados possí
possíveis.
z Objectivo = ordenado, com branco na posiç
posição [3,3].
z custo do caminho = núnúmero de passos da soluç
solução.

z Exercí
Exercício:
Pensar as regras de produç
produção (5 minutos).

Importância da Formulação
z Solução 1:
z R1. mover 1 para cima
z R2. mover 1 para a direita
z etc., 32 regras
z Solução 2 (o que se move é o espaço vazio)
z R1. mover vazio para cima
z R2. mover vazio para a direita
z etc., somente 4 regras

18
Inteligência Artificial Universidade da Madeira

Árvore de procura para o “jogo dos 8 números”

4 5 8
1 6
up
7 2 3
down
right

5 8 4 5 8 4 5 8
4 1 6 1 6 7 1 6
7 2 3 7 2 3 2 3
down right

1 2 3
4 5 6
7 8

Importância da formulação
z Jogo das 8 Rainhas
z dispor 8 rainhas no tabuleiro de forma que não se possam
“atacar”
atacar”.
z Não pode haver mais de uma rainha em uma mesma linha, coluna
ou diagonal.

z Existem diferentes estados e operadores possí


possíveis.
z Essa escolha pode ter consequências boas ou nefastas
na complexidade da procura ou no tamanho do espaç
espaço de
estados.

19
Inteligência Artificial Universidade da Madeira

Formulações para 8 Rainhas


z Formulaç
Formulação A
z estados: qualquer disposiç
disposição com n (n £ 8) rainhas.
z operadores: adicionar uma rainha a qualquer quadrado.
z 64^8 possibilidades: vai até
até o fim para testar se dá
dá certo.
z Formulaç
Formulação B
z estados: disposiç
disposição com n (n £ 8) rainhas sem ataque
mútuo (teste gradual).
z operadores: adicionar uma rainha na coluna vazia mais à
esquerda em que não possa ser atacada.
z melhor (2057 possibilidades), mas pode não haver acç
acção
possí
possível.
z Formulaç
Formulação C
z estados: disposiç
disposição com 8 rainhas, uma em cada coluna.
z operadores: mover uma rainha atacada para outra casa
na mesma coluna.

Medida de Desempenho na
Procura
z Desempenho de um algoritmo de procura:
z 1. O algoritmo encontrou alguma soluç
solução?
z 2. É uma boa soluç
solução?
z custo de caminho (qualidade da soluç
solução).
z 3. É uma soluç
solução computacionalmente barata?
z custo da procura (tempo e memó
memória).

z Custo total
z custo do caminho + custo de procura
z Espaço de estados grande:
z compromisso (conflito) entre a melhor soluç
solução e a
soluç
solução mais barata.

20
Inteligência Artificial Universidade da Madeira

Custo diferente => Solução


diferente
z Função de custo de caminho
z (1) nú
número de cidades visitadas,
z (2) distância entre as cidades,
z (3) tempo de viagem, etc.

z Solução mais barata:


z (1) Funchal, (via Paul da Serra), Porto Moniz
z (2) Funchal, São Vicente, Porto Moniz
z (3) Funchal, São Vicente (viaduto), Porto Moniz

z Problemas clá
clássicos
z Torre de Hanoi
z Missioná
Missionários e Canibais
z Jarro d’á
d’água
gua
z Jogo dos 8 nú
números
z Mundo dos blocos
z Caixeiro viajante
z Labirinto
z Lobo, ovelha e verdura
z Travessia da ponte
z ...

21
Inteligência Artificial Universidade da Madeira

z Problemas clá
clássicos
z Xadrez
z Bridge
z Gamão
z Go
SEND
SEND
z Mancala ++ MORE
MORE
z Damas -------
-------
MONEY
MONEY
z ...

Aplicações: Problemas Reais


z Cálculo de rotas
z rotas em redes de computadores.
z sistemas de planeamento de viagens.
z planeamento de rotas de aviões.
z Caixeiro viajante.

z Alocação (Scheduling)
z Salas de aula.
z Máquinas industriais (job shop).

22
Inteligência Artificial Universidade da Madeira

Aplicações: Problemas Reais


z Navegação de robots:
z generalizaç
generalização do problema da navegaç
navegação.
z Os robots movem-
movem-se em espaç
espaços contí
contínuos, com um
conjunto (infinito) de possí
possíveis acç
acções e estados
z controlar os movimentos do robot no chão, dos seus
braç
braç os e pernas requer espaç
espaço multi-
multi-dimensional.
dimensional.

z Montagem de objectos complexos por robots:


z ordenar a montagem das diversas partes do objecto

z etc...

FIM PARTE 1

23
Inteligência Artificial Universidade da Madeira

Agenda

z PARTE 1
z Resoluç
Resolução de Problemas
z Representaç
Representação de Problemas / Modelaç
Modelação
z Agente Solucionador de Problemas
z PARTE 2
z Procura em Espaç
Espaço de Estados:
z Geraç
Geração e Teste
z Implementaç
Implementação
z Modelos de Procura Cega
z Em Largura Primeiro (Breath
(Breath - First)
First)
z Custo Uniforme (Uniform
(Uniform - Cost)
Cost)
z Em Profundidade Primeiro (Depth
(Depth––First)
First)
z Profundidade Limitada (Depth
(Depth – Limited)
Limited)
z Aprofundamento Progressivo (Progressive
(Progressive Depth)
Depth)
z Bidireccional

Procura em Espaço de Estados


z Uma vez que o problema é bem formulado... o
estado final deve ser “procurado”.
z 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.
z Uma vez a procura terminada com sucesso, é
só executar a solução (= conjunto ordenado de
operadores a aplicar).

24
Inteligência Artificial Universidade da Madeira

Procura em Espaço de Estados:


Geração e Teste
z Fronteira do espaç
espaço de estados
z nós (estados) a serem expandidos no momento.
z Algoritmo:
Algoritmo:
Obs.: o algoritmo começ
começa com a fronteira contendo o estado
inicial do problema.
1. Seleccionar o primeiro nó
nó (estado) da fronteira do espaç
espaço de estados;
- se a fronteira está falha.
está vazia, o algoritmo termina com falha.
2. Testar se o nó
nó é um estado final (soluç
(solução):
- se “sim, então retornar nó sucesso.
nó - a procura termina com sucesso.
3. Gerar um novo conjunto de estados pela aplicaç
aplicação dos operadores
ao estado seleccionado;
4. Inserir os nó
nós gerados na fronteira,
fronteira, de acordo com a estraté
estratégia de
procura usada, e voltar para o passo (1).

Procura em Espaço de Estados:


Implementação
z Espaç
Espaços de Estados
z podem ser representados como uma árvore onde os estados
são nó
nós e as operaç
operações são arcos.

z Os nó
nós da árvore podem guardar mais informaç
informação do
que apenas o estado:
→ são uma estrutura de dados com 5 componentes:
1. o estado correspondente
2. o seu nó
nó pai
3. o operador aplicado para gerar o nó
nó (a partir do pai)
4. a profundidade do nó

5. o custo do nó
nó (desde a raiz)

25
Inteligência Artificial Universidade da Madeira

Procura em Espaço de Estados:


implementação
Algoritmo:
Algoritmo:
Funç
Função-
ão-Insere:
Insere: controla a ordem de inserç
inserção de nó
nós na
fronteira do espaç
espaço de estados.

funç
função Procura-
Procura-Gené
Genérica (problema,
problema, Funç
Função-
ão-Insere)
Insere)
retorna uma soluç
solução ou falha
fronteira ← Faz-
Faz-Fila (Faz-
(Faz-Nó (Estado-
(Estado-Inicial [problema
[problema]] ) )
loop do
se fronteira está
está vazia então retorna falha
nó ← Remove-
Remove-Primeiro (fronteira
(fronteira))
se Teste-
Teste-Término [problema
[problema]] aplicado a Estado [n [nó] tiver
sucesso
então retorna nó
fronteira ← Funç
Função- (fronteira,, Operadores [proble
ão-Insere (fronteira [problema])
ma])

Métodos de Procura
z Procura exaustiva - cega
z Não sabe qual o melhor nó da fronteira a ser expandido = menor custo de
caminho desse nó
nó até
até um nó final (objectivo).
(objectivo).
z Estraté
Estratégias de Procura (ordem de expansão dos nó
nós):

z Direcç
Direcção de Procura:
z Do estado inicial para o objectivo
z Do objectivo para o estado inicial
z Procura Bidireccional

z Procura heurí
heurística – informada

z Estima qual o melhor nó nó da fronteira a ser expandido com base em funç


funções
heurí
heurísticas => conhecimento.
z Estraté
Estratégia de procura: (melhor escolha baseada na funç
função heurí
heurística).
z Direcç
Direcção de Procura: idem à procura cega.

26
Inteligência Artificial Universidade da Madeira

Critérios de Avaliação das


Estratégias de Procura
z Completude:
z A estraté
estratégia encontra sempre uma soluç
solução?
z Custo do tempo:
z Quanto tempo gasta para encontrar uma soluç
solução?
z Custo de memória:
z Quanta memó
memória é necessá
necessária para realizar a
procura?
z Optimização/qualidade (optimality):
z A estraté
estratégia encontra a melhor soluç
solução quando
existem diferentes soluç
soluç ões?

Procura Cega
z Em Largura Primeiro (Breath - First)
z Custo Uniforme (Uniform - Cost)
z Em Profundidade Primeiro (Depth–First)
z Profundidade Limitada (Depth – Limited)
z Aprofundamento Progressivo (Progressive
Depth)
z Bidireccional

27
Inteligência Artificial Universidade da Madeira

Procura Cega
Notação
z b = factor de ramificação;
z d = profundidade da solução;
m = profundidade máxima da árvore de
procura;
z l = limite de profundidade.

Procura em Largura(1)
z Procura em largura:
largura: o nó
nó de menor profundidade, mais á
esquerda é escolhido para gerar sucessores.
z O nó
nó raiz é expandido primeiro
z todos os nó
nós gerados são explorados;
z todos os sucessores dos antecessores são explorados;
z e assim sucessivamente.
z “Os nó
nós de profundidade d são explorados antes dos
nós de profundidade d+1”
d+1”

z function BREADTH-
BREADTH-FIRST-
FIRST-SEARCH (problem) return
solution
z return GENERAL-
GENERAL-SEARCH(problem, ENQUEUE-
ENQUEUE-AT- AT-
END)

28
Inteligência Artificial Universidade da Madeira

Procura em Largura(2)
z Se existe solução será encontrada.
z A solução encontrada primeiro será a de
menor profundidade.
z Completa e óptima.
z Factor de ramificação (b)
z deve-se considerar tempo e memória;
z solução com profundidade d.
z1 + b2+ b3+ ... + bd

Procura em Largura(3)

29
Inteligência Artificial Universidade da Madeira

Procura em Largura(4)

Procura em Largura(5)

30
Inteligência Artificial Universidade da Madeira

Procura em Largura(6)

Procura em Largura(7)

31
Inteligência Artificial Universidade da Madeira

Procura em Largura(8)

Algoritmo Procura em Largura


Primeiro
Funç
Função ProcuraLarguraPrimeiro (problema, insere_fila):
insere_fila): soluç
solução ou
falha
i_nós  faz_fila(estado_inicial(problema))
1. i_nó faz_fila(estado_inicial(problema))
2. repete
2.1 se vazia_fila (i_nó
i_nós) então
2.1.1 devolve falha
fim_de_se
nó  retira_fila (i_nó
2.2 nó i_nós)
2.3 se teste_objectivo(nó
teste_objectivo(nó) então
2.3.1 devolve nónó senão
2.3.2 insere_fila
(i_nó
i_nós,espansão(nó
s,espansão(nó,operadores(problema)))
,operadores(problema)))
fim_de_se
fim_de_repete
fim_de_funç
fim_de_função

32
Inteligência Artificial Universidade da Madeira

Procura Cega
z Em Largura Primeiro (Breath - First)
z Custo Uniforme (Uniform - Cost)
z Em Profundidade Primeiro (Depth–First)
z Profundidade Limitada (Depth – Limited)
z Aprofundamento Progressivo (Progressive
Depth)
z 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.

33
Inteligência Artificial Universidade da Madeira

Custo Uniforme(2)
A estraté
estratégia de procura uniforme é basicamente a mesma
coisa.
z Invé
Invés de começ
começar no primeiro nó nó expandido, que está
está na lista
aguardando processamento, o nó nó que possui o menor custo (g(N
(g(N))
))
será
será escolhido para ser expandido.

Se certas condiç
condições forem cumpridas, garante-
garante-se que a
primeira soluç
solução encontrada será
será a mais barata.
Uma das condiç
condições é a seguinte:
z o custo do caminho nunca deve ir diminuindo conforme avanç
avançamos,
noutras palavras, é importante que:

g (Sucessor
(Sucessor)>=
)>= g (N
(N)
em todos os nó
nós N, g (N) é o custo conhecido de ir da raiz até
até o
nódulo N.

Custo Uniforme(3)
Abaixo apresentamos o pseudo có
código do mesmo.

Algoritmo Procura – Uniforme

1. Definir um conjunto L de nó
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ó
nó de L;
4. Se n é um nónó objectivo
Então
Retornar caminho do nó
nó inicial até
até N;
Parar
Senão
Remover n de L;
Adicionar em L todos os nó
nós filhos de n, rotulando cada nó
nó com o seu caminho
até
até o nó
nó inicial;
Ordenar L em ordem crescente de custo;
Voltar ao passo 3.

34
Inteligência Artificial Universidade da Madeira

Custo Uniforme(4)
Aná
Análise da Complexidade
O custo de espaç
espaço e tempo, referente a estraté
estratégia de procura uniforme, pode
ser visualizado no quadro abaixo:

Profundidade Nó s Tempo Memó


Memória

0 1 1 milisegundo 100 bytes

2 111 0.1 segundos 11 kilobytes

4 11,111 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 11,111


terabytes

Quadro 1: Tempo, memória e nós gerados para se chegar ao estado meta

Custo Uniforme(5)
Resumo
z Princí
Princípio:
pio: expandir sempre o nónó da fronteira com menor
custo (dado pela funç
função g (n)).
z Este mé
método é equivalente à procura em largura primeiro
quando g (n) = profundidade (n
(n).
z Caracterí
Características:
sticas:
z É completo
z É óptimo
z function UNIFORM-
UNIFORM-COST-
COST-SEARCH (problem) returns solution
return GENERAL-
GENERAL-SEARCH (problem, COST-
COST-FN,ENQUEUE-
FN,ENQUEUE-AT- AT-END)

35
Inteligência Artificial Universidade da Madeira

Custo Uniforme(6)

Algoritmo Procura Custo Uniforme


z Funç
Função ProcuraCustoUniforme (problema, insere_ordem_fila):
insere_ordem_fila): soluç
solução ou falha
i_nós  faz_fila(estado_inicial(problema))
1. i_nó faz_fila(estado_inicial(problema))
2. repete
2.1 se vazia_fila (i_nó
i_nós) então
2.1.1 devolve falha
fim_de_se
nó  retira_fila (i_nó
2.2 nó i_nós)
2.3 se teste_objectivo(nó
teste_objectivo(nó) então
2.3.1 devolve nónó senão
i_nós,espansão(nó
2.3.2 insere_ordem_fila (i_nó s,espansão(nó,operadores(problema)))
,operadores(problema)))
fim_de_se
fim_de_repete
fim_de_funç
fim_de_função

36
Inteligência Artificial Universidade da Madeira

Procura Cega
z Em Largura Primeiro (Breath - First)
z Custo Uniforme (Uniform - Cost)
z Em Profundidade Primeiro (Depth–First)
z Profundidade Limitada (Depth – Limited)
z Aprofundamento Progressivo (Progressive
Depth)
z Bidireccional

Profundidade Primeiro(1)
z Ordem de expansão dos nó
nós:
z sempre expande o nó
nó no nível mais profundo da árvore:
1. nó
nó raiz
2. primeiro nó
nó de profundidade 1
3. primeiro nó
nó de profundidade 2, etc.
z Quando um nónó final não é soluç
solução, o algoritmo volta para
expandir os nó
nós que ainda estão na fronteira do espaç
espaço de
estados.
z Algoritmo:
funç
função Procura-
Procura-em-
em-Profundidade (problema)
problema)
retorna uma soluç
solução ou falha
Busca-
Busca-Gené
Genérica (problema,
problema, Insere-
Insere-no-
no-Começ
Começo)

37
Inteligência Artificial Universidade da Madeira

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)

38
Inteligência Artificial Universidade da Madeira

Profundidade Primeiro(3)

Profundidade Primeiro(4)

39
Inteligência Artificial Universidade da Madeira

Profundidade Primeiro(5)

Profundidade Primeiro(6)

40
Inteligência Artificial Universidade da Madeira

Profundidade Primeiro(7)

Profundidade Primeiro(8)

41
Inteligência Artificial Universidade da Madeira

Profundidade Primeiro(9)

Profundidade Primeiro(10)

42
Inteligência Artificial Universidade da Madeira

Profundidade Primeiro(11)
z Esta estraté
estratégia não é completa nem é óptima.
ptima.
z Custo de memó
memória:
z manté
mantém na memó
memória o caminho que está
está sendo expandido no
momento, e os nó
nós irmãos dos nó
nós no caminho (para possibilitar o
backtracking)
backtracking)
⇒ necessita armazenar apenas b.m nós para um espaç
espaço de
estados com factor de expansão b e profundidade m, onde m
pode ser maior que d (profundidade da 1a. soluç
solução).
z Custo de tempo:
z O (b m), no pior caso.
z Para problemas com vávárias soluç
soluções, esta estraté
estratégia pode ser
bem mais rá
rápida do que procura em largura.
z Esta estraté
estratégia deve ser evitada quando as árvores geradas
são muito profundas ou geram caminhos infinitos.
infinitos.

Profundidade Primeiro(12)
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.

43
Inteligência Artificial Universidade da Madeira

Algoritmo Procura em
Profundidade Primeiro
z Funç
Função ProcuraProfundidadePrimeiro (problema, insere_pilha):
insere_pilha): soluç
solução ou
falha
i_nós  faz_pilha(estado_inicial(problema))
1. i_nó faz_pilha(estado_inicial(problema))
2. repete
2.1 se vazia_pilha (i_nó
i_nós) então
2.1.1 devolve falha
fim_de_se
nó  retira_pilha (i_nó
2.2 nó i_nós)
2.3 se teste_objectivo(nó
teste_objectivo(nó) então
2.3.1 devolve nó
nó senão
2.3.2 insere_pilha (i_nó
i_nós,espansão(nó
s,espansão(nó,operadores(problema)))
,operadores(problema)))
fim_de_se
fim_de_repete
fim_de_funç
fim_de_função

Procura Cega
z Em Largura Primeiro (Breath - First)
z Custo Uniforme (Uniform - Cost)
z Em Profundidade Primeiro (Depth–First)
z Profundidade Limitada (Depth – Limited)
z Aprofundamento Progressivo (Progressive
Depth)
z Bidireccional

44
Inteligência Artificial Universidade da Madeira

Profundidade Limitada (1)

• 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 (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.

45
Inteligência Artificial Universidade da Madeira

Profundidade Limitada (3)


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

Algoritmo Procura em
Profundidade Limitada
z Funç
Função ProcuraProfundidadeLimitada (problema, insere_pilha,nivel_má
insere_pilha,nivel_máx):
soluç
solução ou falha
i_nós  faz_pilha(estado_inicial(problema))
1. i_nó faz_pilha(estado_inicial(problema))
2. repete
2.1 se vazia_pilha (i_nó
i_nós) então
2.1.1 devolve falha
fim_de_se
nó  retira_pilha (i_nó
2.2 nó i_nós)
2.3 se teste_objectivo(nó
teste_objectivo(nó) então
2.3.1 devolve nó
nó senão
2.3.2 insere_pilha (i_nó
i_nós,espansão(nó
s,espansão(nó,operadores_Nmx(problema)))
,operadores_Nmx(problema)))
fim_de_se
fim_de_repete
fim_de_funç
fim_de_função

46
Inteligência Artificial Universidade da Madeira

Procura Cega
z Em Largura Primeiro (Breath - First)
z Custo Uniforme (Uniform - Cost)
z Em Profundidade Primeiro (Depth–First)
z Profundidade Limitada (Depth – Limited)
z Aprofundamento Progressivo (Progressive
Depth)
z Bidireccional

Aprofundamento Progressivo (1)

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

47
Inteligência Artificial Universidade da Madeira

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)

48
Inteligência Artificial Universidade da Madeira

Aprofundamento Progressivo (4)

Aprofundamento Progressivo (5)

49
Inteligência Artificial Universidade da Madeira

Aprofundamento Progressivo (6)

Aprofundamento Progressivo (7)


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

50
Inteligência Artificial Universidade da Madeira

Algoritmo Procura em
Aprofundamento Progressivo
z Funç
Função ProcuraAprofundamentoProgressivo (problema, insere_pilha):
insere_pilha):
soluç
solução ou falha
nivél  0 até
1. para nivé até infinito faz
1.1 se procura ProcuraProfundidadeLimitada (problema,
insere_pilha,nivé
insere_pilha,nivél) então
1.1.1 devolve soluç
solução
fim_de_se
fim_de_para
fim_de_funç
fim_de_função

Procura Cega
z Em Largura Primeiro (Breath - First)
z Custo Uniforme (Uniform - Cost)
z Em Profundidade Primeiro (Depth–First)
z Profundidade Limitada (Depth – Limited)
z Aprofundamento Progressivo (Progressive
Depth)
z Bidireccional

51
Inteligência Artificial Universidade da Madeira

Busca Bidirecional (1)


z Busca em duas direcç
direcções:
z para frente, a partir do nó
nó inicial, e
z para trá
trás, a partir do nó
nó final (objectivo).
z A procura pápára quando os dois processos geram um
mesmo estado intermediá
intermediário.
z É possí
possível utilizar estraté
estratégias diferentes em cada
direcç
direcção da procura.

Busca Bidirecional (2)


z Custo de tempo:
z Se o factor de expansão b nas duas direç
direções, e a
nó gerado é d: O(2bd/2) = O (b
profundidade do último nó (bd/2)
z Custo de memó
memória: O (b(bd/2)
z Procura para trá
trás gera antecessores do nó
nó final
z se os operadores são reversí
reversíveis:
veis:
z conjunto de antecessores do nó
nó = conjunto de sucessores do nó

z poré
porém, esses operadores podem gerar árvores infinitas!
infinitas!
z caso contrá
contrário,
rio, a geraç
geração de antecessores fica muito difí
difícil
z descriç
descrição desse conjunto é uma propriedade abstracta
z Ex.: como determinar exatamente todos os estados que
precedem um estado de xeque-
xeque-mate?
z Problemas també
também quando existem muitos estados finais
(objectivos) no problema.

52
Inteligência Artificial Universidade da Madeira

Comparação das Diversas


Estratégias de Busca
Critério Largura Custo Profun- Aprofun-
Uniforme didade 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

b = factor de ramificação; d = profundidade da solução;


m = profundidade máxima da árvore de procura; l = limite de profundidade.

Conclusão
z Os Algoritmos de procura bidireccional são de
especial interesse, porque têm o potencial para
procurar pequenos espaç
espaços e reduzem
significativamente o tempo de funcionamento por
implementaç
implementação paralela. Enquanto o último é
geralmente verdade, o primeiro pode ser falso quando
existem múmúltiplos caminhos de soluç
solução compará
comparáveis.
z Aplicado de forma incorrecta o mé método de procura
bidireccional,
bidireccional, pode originar os piores casos de procura,
transformando-
transformando-se em casos de procura
unidireccionais onde os espaçespa ç os de procura são
distantes entre si.

53
Inteligência Artificial Universidade da Madeira

Fontes Consultadas
z Russel, Norvig, Artificial Intelligence: A Modern
Approach, Cap. 3.
z Costa, Simões, Inteligência Artificial.
Fundamentos e Aplicações. Cap 3.2.
z Kvitca, Adolfo Resolución de problemas con
inteligencia artificial. Editorial Kapeluz.
z Acetatos Prof. Guillermo Simari. Universidad
Nacional del Sur, Argentina
z Acetatos Alunos IIA semestre 2005/2006
z Acetatos Prof. Geber Ramalho. CIN.
Universidade Federal de Pernambuco, Brasil.

Leituras
LIVROS
z Russel, Norvig, Artificial Intelligence: A
Modern Approach, Cap. 3.
z Costa, Simões, Inteligência Artificial.
Fundamentos e Aplicações. Cap 3.2.

54
Inteligência Artificial Universidade da Madeira

FIM

55