Tópicos em Sistemas
Inteligentes
PUCC
1
Agenda - Aula 04
• Buscas
•Largura
•Profundidade
•Mista
PUCC
2
Espaço de Busca
• Muitos problemas de interesse prático
possuem ESPAÇO de BUSCA tão grande
que não podem ser representados por um
grafo explícito.
• Elaborações nos procedimentos de busca
básicos vistos anteriormente, onde procurase representar todo o espaço de busca num
grafo, tornam-se necessários.
PUCC
3
Elaborações
• Três pontos básicos são importantes:
– necessitamos ser especialmente cuidadosos em
COMO formulamos esses problemas para a
busca
– devemos ter métodos para representar buscas em
grandes grafos de maneira IMPLÍCITA.
– Devemos utilizar métodos eficientes para a busca
nesses grafos enormes.
PUCC
4
Modelamento = Arte
• No problema do empilhamento de blocos não
é difícil conceber uma estrutura de dados
para representar os diferentes estados do
problema e as ações capazes de alterá-los.
• Em problemas REAIS, isso é difícil. Requer
uma profunda análise do problema
– Simetrias
– Ignorar detalhes irrelevantes
– Encontrar abstrações apropriadas
PUCC
5
Quebra-Cabeças
• Jogo de ordenar números. Vamos pensar no
de 8 números e um espaço em branco.
• Qual um forma interessante de representar
esse problema?
• Quantos movimentos são possíveis?
• Quantos estados existem?
PUCC
6
Representações
• A parte do grafo de Estado que é “encontrável”
a partir do estado inicial é representado
implicitamente por uma descrição do estado
inicial e pela descrição dos efeitos das ações
que podem ser tomadas em cada estado.
• É possível transformar, a princípio, uma
representação implícita de um grafo em uma
representação explícita.
PUCC
7
Representações
• Para isso, geramos todos os descendentes
do nó inicial (aplicando todos os operadores
nesse nó) depois aplicamos o mesmo tipo de
procedimento para cada um deles.
• Como fica o caso do quebra cabeças dos
números?
PUCC
8
Representações
• Mais formalmente, três componentes básicos
para a representação implícita:
– Uma descrição através da qual rotulamos o nó
inicial. Essa descrição é uma estrutura de dados
que modela o estado inicial do ambiente.
– Funções de transição de estado. Transforma a
descrição do estado atual na descrição do estado
resultante após a ação (OPERADORES)
– A definição de um objetivo
PUCC
9
Buscas
• Existem dois grandes grupos de busca:
– não temos nenhuma razão para preferir uma parte
do grafo de Estado em relação a outra para a
busca do objetivo (buscas sem informações)
– temos informações específicas que auxiliam a
busca (Heurísticas).
PUCC
10
Buscas sem Informações
• Essas buscas aplicam OPERADORES sem o
uso de qualquer conhecimento específico
especial do domínio do problema.
• Esse procedimento gera um grafo de Estado
explícito aplicando-se todos os operadores
possíveis ao nó inicial, depois aplicando
todos os OPERADORES possíveis a todos
os sucessores diretos e assim por diante.
PUCC
11
Função Sucessora
• Quando aplicada a um nó produz o conjunto
total dos nós que podem ser produzidos ao
se aplicar todos os operadores possíveis
aquele nó.
• Cada aplicação dessa função é denominada
Expansão de um nó.
PUCC
12
Busca em Largura
• Aplique a função sucessora ao nó inicial
• Repita o procedimento para cada nó
descendente.
• Propriedades
– quando o nó alvo é encontrado, encontra-se
também o caminho de comprimento mínimo até o
objetivo
– requer o armazenamento e a geração de uma
árvore cujo tamanho é exponencial de acordo
com o fator de ramificação da árvore.
PUCC
13
Busca em Profundidade
• Gera os sucessores de um nó um de cada
vez. Em cada nó existe uma decisão de que
operador deve ser aplicado primeiro, qual o
próximo e assim por diante.
• Uma indicação é deixada em cada nó para
indicar que operadores adicionais devem ser
aplicados ao nó quando retornamos a ele
caso seja necessário.
• Backtracking
• Limitador de Profundidade
PUCC
14
Busca em Profundidade
• A busca em profundidade nos abriga a salvar
apenas aquela parte da árvore que está
sendo explorada mais as indicações dos nós
que ainda não foram expandidos totalmente.
• Os requerimentos de memória são portanto
lineares com relação ao limitador de
profundidade.
• Quando encontra o alvo?
PUCC
15
Busca “Mista”
• A técnica chamada Aprofundamento Iterativo,
(Iterative Deepening) aproveita a linearidade
da memória requerida pela busca em
profundidade e garante que o nó alvo de
menor profundidade é encontrado (como na
busca em amplitude).
• Nessa técnica, buscas em profundidades
sucessivas são realizadas e, em cada uma, o
limitante de profundidade é incrementado de
1, até que o nó alvo seja encontrado.
PUCC
16
Aprofundamento Iterativo
PUCC
17
Aprofundamento Iterativo
• Calcule o número de nós expandidos para o
pior caso em uma busca em árvore com fator
de ramificação b e cujo nó alvo mais raso
está no nível d e é o último nó a ser gerado
nessa profundidade.
• Para surpresa, o número de nós expandidos
por esse método não é muito maior que o
número utilizado pela busca em amplitude.
• Qual é a diferença em relação à busca em
amplitude?
PUCC
18
Download

Slide sem título