ia un01 busca_qualquer_caminho

18
Luís Fabrício W. Góes Busca por Qualquer Caminho

Upload: leonardo-freitas

Post on 25-Jul-2015

780 views

Category:

Business


0 download

TRANSCRIPT

Page 1: Ia un01 busca_qualquer_caminho

Luís Fabrício W. Góes

Busca por Qualquer Caminho

Page 2: Ia un01 busca_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

Page 3: Ia un01 busca_qualquer_caminho

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

Page 4: Ia un01 busca_qualquer_caminho

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

Page 5: Ia un01 busca_qualquer_caminho

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)

Page 6: Ia un01 busca_qualquer_caminho

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

Page 7: Ia un01 busca_qualquer_caminho

Representação do Problema

Grafo Não Direcionado

Grafo Direcionado

Page 8: Ia un01 busca_qualquer_caminho

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

Page 9: Ia un01 busca_qualquer_caminho

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?

Page 10: Ia un01 busca_qualquer_caminho

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

Page 11: Ia un01 busca_qualquer_caminho

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

Page 12: Ia un01 busca_qualquer_caminho

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

Page 13: Ia un01 busca_qualquer_caminho

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

Page 14: Ia un01 busca_qualquer_caminho

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)

Page 15: Ia un01 busca_qualquer_caminho

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

Page 16: Ia un01 busca_qualquer_caminho

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

Page 17: Ia un01 busca_qualquer_caminho

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

Page 18: Ia un01 busca_qualquer_caminho

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.