350 likes | 540 Views
INF 1771 – Inteligência Artificial. Aula 04 – Busca Heurística. Edirlei Soares de Lima <elima@inf.puc-rio.br>. Métodos de Busca. Busca Cega ou Exaustiva: Não sabe qual o melhor nó da fronteira a ser expandido. Apenas distingue o estado objetivo dos não objetivos. Busca Heurística:
E N D
INF 1771 – Inteligência Artificial Aula 04 – Busca Heurística Edirlei Soares de Lima <elima@inf.puc-rio.br>
Métodos de Busca • Busca Cega ou Exaustiva: • Não sabe qual o melhor nó da fronteira a ser expandido. Apenas distingue o estado objetivo dos não objetivos. • Busca Heurística: • Estima qual o melhor nó da fronteira a ser expandido com base em funções heurísticas. • Busca Local: • Operam em um único estado e movem-se para a vizinhança deste estado.
Busca Heurística • Algoritmos de Busca Heurística: • Busca Gulosa • A* • A busca heurística leva em conta o objetivo para decidir qual caminho escolher. • Conhecimento extra sobre o problema é utilizado para guiar o processo de busca.
Busca Heurística • Como encontrar um barco perdido? • Busca Cega -> Procura no oceano inteiro. • Busca Heurística -> Procura utilizando informações relativas ao problema. • Exemplo: correntes marítimas, vento, etc.
Busca Heurística • Função Heurística (h) • Estima o custo do caminho mais barato do estado atual até o estado final mais próximo. • São específicas para cada problema. • Exemplo: • Encontrar a rota mais curta entre duas cidades: • h(n) = distância em linha reta direta entre o nó n e o nó final.
Função Heurística Estado Atual Estado Objetivo
Busca Heurística • Algoritmos de Busca Heurística: • Busca Gulosa • A*
Busca Gulosa • Estratégia: • Expande os nós que se encontram mais próximos do objetivo (uma linha reta conectando os dois pontos no caso de distancias), desta maneira é provável que a busca encontre uma solução rapidamente. • A implementação do algoritmo se assemelha ao utilizado na busca cega, entretanto utiliza-se uma função heurística para decidir qual o nó deve ser expandido.
Busca Gulosa Arad 366 Sibiu Timissoara Zerind 374 253 329 Arad Fagaras Oradea Rimnicu Vilcea 380 193 366 176 Sibiu Bucharest 0 263 Função Heurística (h): Distancia em linha reta
Busca Gulosa • Custo de busca mínimo: • No exemplo, não expande nós fora do caminho. • Não é ótima: • No exemplo, escolhe o caminho que é mais econômico à primeira vista, via Fagaras. • Porém, existe um caminho mais curto via RimnicuVilcea. • Não é completa: • Pode entrar em loop se não detectar a expansão de estados repetidos. • Pode tentar desenvolver um caminho infinito.
Busca Gulosa • Ir de Iasi para Fagaras?
Busca A* • Estratégia: • Combina o custo do caminho g(n) com o valor da heurística h(n) • g(n) = custo do caminho do nó inicial até o nó n • h(n) = valor da heurística do nó n até um nó objetivo (distancia em linha reta no caso de distancias espaciais) • f(n) = g(n) + h(n) • É a técnica de busca mais utilizada.
Busca A* Arad 0+366=366 Sibiu Timissoara Zerind 75+374=449 118+329=447 140+253=393 Arad Fagaras Oradea Rimnicu Vilcea 239+176=415 220+193=413 280+366=646 291+380=671 Sibiu Bucharest Craiova Pitesti Sibiu 317+100=417 338+253=591 450+0=450 366+160=526 300+253=553 Bucharest Craiova Rimnicu Vilcea 414+193=607 418+0=418 455+160=615
Busca A* • A estratégia é completa e ótima. • Custo de tempo: • Exponencial com o comprimento da solução, porém boas funções heurísticas diminuem significativamente esse custo. • Custo memória: • Guarda todos os nós expandidos na memória. • Nenhum outro algoritmo ótimo garante expandir menos nós.
Definindo Heurísticas • Cada problema exige uma função heurística diferente. • Não se deve superestimar o custo real da solução. • Como escolher uma boa função heurística para o jogo 8-Puzzle?
Definindo Heurísticas Estado Atual Estado Objetivo A quantidade de peças for a do lugar 7
Definindo Heurísticas 2 Outra Heurística?
Definindo Heurísticas Número de movimentos necessários para colocar cada peça no seu lugar 2 10
Definindo Heurísticas 10 2 9 2
Definindo Heurísticas • Como escolher uma boa função heurística para o jogo 8-Puzzle? • h¹ = número de elementos fora do lugar. • h² = soma das distâncias de cada número à sua posição final (movimentação horizontal e vertical). • Qual das heurísticas é melhor?
Exemplo - A* • Qual é o espaço de estados? • Quais são as ações possíveis? • Qual será o custo das ações?
Exemplo - A* • Heurística do A*: f(n) = g(n) + h(n) • g(n) = custo do caminho • h(n) = função heurística • Qual seria a função heurística h(n) mais adequada para este problema? • A distancia em linha reta é uma opção.
Exemplo - A* • Como calcular a heurística h(n)? • Distancia de Manhattan
Exemplo - A* • O próximo passo é gerar a árvore de busca e expandir os nós que tiverem o menor valor resultante da função heurística f(n). • f(n) = g(n) + h(n)
Exemplo - A* [1,1] [2,1] [1,2] • [1,2] = f(n) = ?? + ?? • [2,1] = f(n) = ?? + ??
Exemplo - A* [1,1] [2,1] [1,2] [1,1] [2,2] [1,1] = f(n) = ?? + ?? [2,2] = f(n) = ?? + ??
Exercícios • (1) Qual seria uma boa heurística para o jogo da velha?
Exercícios • (2) Supondo que é necessário utilizar um algoritmo de busca para resolver um problema no qual são necessárias respostas instantâneas. Mas, mesmo utilizando o A* com uma boa função heurística, o tempo gasto com o processo de busca ainda está muito grande. O que pode ser feito para otimizar esse processo? • Caminhos pré-calculados. • Custos pré-calculados.
CaminhosPré-Calculados • Tabela pré-calculada com os melhores caminhos. • Armazena-se somente o próximo nó que deve ser seguindo do nó atual ao nó destino.
CustosPré-Calculados • Saber qual o melhor caminho entre dois nós somente é útil quando se sabe onde se deseja ir. • Uma tabela pré-calculada com os custos de locomoção entre quaisquer dois nós também é uma informação muito util.
Leitura Complementar • Russell, S. andNorvig, P. Artificial Intelligence: a Modern Approach, 3nd Edition, Prentice-Hall, 2009. • Capítulo 4: InformedSearchandExploration