ia un01 busca_qualquer_caminho
TRANSCRIPT
Luís Fabrício W. Góes
Busca por Qualquer Caminho
Sumário Busca
Conceito Características Representação do Problema Classes de Busca
Busca por Qualquer Caminho Sem Informação
Busca em Profundidade Busca em Amplitude
Com Informação Busca do Melhor Primeiro Exemplo
Busca Conceito
Dado um problema representado por alguma linguagem lógica, um grafo, objetos ou outra forma de representação, um algoritmo de busca procura uma solução sob a forma de uma seqüência de ações.
Função: permitir a exploração de alternativas Ex: menor caminho entre duas cidades, sequencia de jogadas
em um jogo etc.
Características Problemas são geralmente representados por grafos ou árvores. Existem 4 classes diferenciadas por duas dimensões:
Qualquer Caminho x Caminho Ótimo Com Informação (Busca Heurística) x Sem Informação
Problema Estados (Todos os aspectos relevantes do
problema)Roteadores (na Internet)Cidades (em um mapa rodoviário)Variáveis (linguagem lógica)
Ações (Operações)Trafegar pacotesDirigir de uma cidade para outraAtribuir valores verdade aos predicados de
acordo com as regras
Problema Teste de Objetivo (Condição de Sucesso)
Todos os pacotes chegaram?Chegou na cidade destino?Chegamos a alguma conclusão? (alguma coisa
satisfaz as regras?)
Custo de CaminhoLargura de bandaQuilômetrosAtribuições as variáveis (número de estados)
Representação do Problema Árvore
O primeiro nodo é chamado raiz A é o pai de B, C e D I é o filho de C Cada nodo tem apenas um pai, mas pode ter vários filhos G é descendente de A A é ancestral de M
Representação do Problema
Grafo Não Direcionado
Grafo Direcionado
Classes de Busca Sem Informação x Qualquer Caminho: procura por toda a árvore até
encontrar uma primeira solução (caminho)
Sem Informação x Caminho Ótimo: encontra o caminho mais curto usando o tamanho do caminho
Com Informação x Qualquer Caminho: utiliza medida heurística para saber o grau de sucesso de um estado (ex: distância do destino)
Com Informação x Caminho Ótimo: encontra o caminho mais curto usando o tamanho do caminho e uma heurística
Jogo do PACMAN O solitário PAC precisa escapar dos maldosos
fantasmas em um labirinto Como dar inteligência aos fantasmas? Como alcançar o PAC mais rapidamente?
Algoritmo de Busca Simples (para uma solução qualquer)
Seja Q uma lista de caminhos (A B S, D B S etc.)Seja S o nodo origemSeja Caminho (N) um caminho até o nodo NSeja V uma lista de nodos visitados
Passos1 – Iniciar Q com o Caminho (S). Inserir o nodo S em V2 – Se Q está vazia, então falhar. Senão pegar algum Caminho(N) de Q3 – Se Caminho (N) leva ao objetivo, Retornar Caminho (N)4 – Senão remover Caminho(N) de Q5 – Pegar os filhos do primeiro nodo de N não contidos em V6 – Adicionar os caminhos para os seus filhos em Q Adicionar os seus filhos em V7 – Voltar ao passo 2
Busca em Profundidade Mudança no Algoritmo de Busca Simples (S para G)
Passo 2: Senão pegar o primeiro Caminho(N) de Q Passo 6: Adicionar os caminhos p/ os seus filhos na frente de Q
Execução do Algoritmo
Mudança no Algoritmo de Busca Simples Passo 2: Senão pegar o primeiro Caminho(N) de Q Passo 6: Adicionar os caminhos p/ os seus filhos atrás (no
final) de Q
Execução do Algoritmo
Busca em Amplitude
Busca em Profundidade X Busca em Amplitude Problemas da Busca em Profundidade:
Busca sem informação Não encontra uma solução ótima Demora para encontrar uma solução se o caminho para ela está mais
perto da raiz (origem) Solução: Busca em profundidade limitada ou iterativa em profundidade
Problemas da Busca em Amplitude: Busca sem informação Não encontra uma solução ótima Requer muita memória (todos os nodos dos níveis pesquisados
precisam estar na memória) Demora para encontrar uma solução se o caminho para ela é profundo
Definição de Heurísticas Uma heurística é uma dica para que o algoritmo
de busca chegue mais rapidamente a uma solução
Exemplo de heurísticas Distância Euclidiana (linha reta) Distância de Manhattan (número de quarteirões) Número de Peças no lugar correto (no quebra cabeça
de 8 peças)
Mudança no Algoritmo de Busca Simples Passo 2: Senão pegar o melhor Caminho(N) de Q (valores
heurísticos que indicam quanto está perto da solução) Passo 6: Adicionar os caminhos p/ os seus filhos em qualquer
lugar de Q
Execução do Algoritmo
Busca do Melhor Primeiro
ValoresHeurísticos
(Distância de Manhattan)
H(A) = 5 H(C) = 2
H(B) = 6 H(D) = 5
H(S) = 7 H(G) = 0
Busca do Melhor Primeiro Características
Busca com informação Não encontra uma solução ótima Utiliza valores heurísticos. Ex: menor distância entre
dois pontos (espaço euclidiano) etc. Valores heurísticos errados podem levar a soluções
mais demoradas
Exemplo Quebra Cabeça de 8 Peças
Estados: posição de cada peça em um dos quadrados Ações: deslocamento do espaço vazio para Direita, Esquerda,
Acima ou Abaixo Teste Objetivo: verifica se as peças estão dispostas como mostrado
na figura abaixo Custo de Caminho: número de passos ou movimentações do
espaço
Referências Russel, S. & Norvig, P., “Inteligência
Artificial”, Elsevier, 2ª edição, 2004.
Luger, G. F., “Inteligência Artificial”, Bookman, 4ª edição, 2004.