MAC425/5739 Inteligência Artificial 3. Busca informada Denis Deratani Mauá (largamente baseado no material de aula dos Profs. Edileri de Lima e Leliane de Barros)
MÉTODOS DE BUSCA Busca cega ou sistemática: Usa apenas conhecimento da especificação do problema e procura encontrar uma solução Busca em profundidade: subótima, usa pouca memória, ignora custos Busca em largura: ótima, usa muita memória, pode ser alterada para considerar custos Busca de aprofundamento iterativo: combina busca em largura e busca em profundidade; garante otimalidade com menor uso de memória Busca informada: Explorar conhecimento extra sobre o domínio para guiar busca em direção à regiões de menor custo Busca local: Operam em um único estado e movem-se para a vizinhança deste estado (quando custo é associado apenas a estados, não a ações)
PROBLEMA Conjuntos de estados S e de ações A Função de ações aplicáveis num estado A(s) Modelo de transição T(s,a) Função de custo g(n) Teste de estado meta M(s)
BUSCA CEGA VERSUS BUSCA INFORMADA Busca cega baseia-se em informações corretas sobre o passado g(n) a g(a) f(a) Não busca advinhar o futuro Busca informada usa uma função heurística f(n) para tentar prever o futuro (qual caminho é melhor) b g(b) f(b) c g(c) f(c)
FUNÇÃO HEURÍSTICA Estima o custo de um caminho que passe por n Requer conhecimento adicional sobre o domínio do de cada problema Propriedades: h(n) 0, h(meta)=0 Exemplo: Encontrar o trajeto mais rápido entre duas posições: h(n) = distância em linha reta direta entre posição correspondente a nó n e posição meta
FUNÇÃO HEURÍSTICA Estado atual Estado meta
FUNÇÃO HEURÍSTICA Estado atual Estado meta quantidade de peças fora do lugar 7
BUSCA INFORMADA Busca de melhor escolha (Best-First Search) A* (A estrela)
BUSCA DE MELHOR ESCOLHA Estratégia: Expanda nó com menor custo estimado futuro h(n) Similar a busca de custo uniforme, entretanto utiliza-se uma função heurística para decidir qual o nó deve ser expandido
BUSCA DE CUSTO UNIFORME Estratégia: Expanda nó com menor custo acumulado g(n) Questões? Pode ser considerada um tipo de busca de melhor escolha? Pode ser considerada busca informada (heurística)?
BUSCA DE MELHOR ESCOLHA 366 Arad 253 Sibiu Timissoara Zerind 329 374 Arad Fagaras Oradea Rimnicu Vilcea 366 Sibiu 176 Bucharest 263 0 380 193 Função Heurística (h): Distancia em linha reta Arad 366 Mehadia 241 Bucharest 0 Neamt 234 Craiova 160 Oradea 380 Drobeta 242 Pitesti 100 Eforie 161 Rimnicu Vilcea 193 Fagaras 176 Sibiu 253 Giurgiu 77 Timisoara 329 Iasi 226 Vaslui 199 Lugoj 244 Zerind 374 Hirsova 151 Urziceni 80
BUSCA DE MELHOR ESCOLHA 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 Rimnicu Vilcea Não é completa: Pode entrar em loop se não detectar a expansão de estados repetidos Pode tentar desenvolver um caminho infinito
BUSCA DE MELHOR ESCOLHA Ir de Iasi a Fagaras
BUSCA A* Estratégia: Expanda o nó com menor f(n) = g(n) + h(n) ainda não explorado g(n) = custo do caminho do nó inicial até o nó n h(n) = valor da heurística do nó n até um nó meta (estimativa do custo ótimo a partir de n) É a técnica de busca mais utilizada
BUSCA A* 0+366=366 Arad 140+253=393 Sibiu Timissoara Zerind 118+329=447 75+374=449 Arad Fagaras Oradea Rimnicu Vilcea 280+366=646 239+176=415 Sibiu Bucharest Craiova Pitesti Sibiu Bucharest 291+380=671 338+253=591 450+0=450 366+160=526 Craiova 317+100=417 220+193=413 300+253=553 Rimnicu Vilcea 418+0=418 455+160=615 414+193=607 Arad 366 Mehadia 241 Bucharest 0 Neamt 234 Craiova 160 Oradea 380 Drobeta 242 Pitesti 100 Eforie 161 Rimnicu Vilcea 193 Fagaras 176 Sibiu 253 Giurgiu 77 Timisoara 329 Iasi 226 Vaslui 199 Lugoj 244 Zerind 374 Hirsova 151 Urziceni 80
BUSCA A* Estratégia completa e ótima Tempo: Exponencial com o comprimento da solução, porém boas funções heurísticas diminuem significativamente esse custo Espaço: 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
DEFININDO HEURÍSTICAS 2 Outra Heurística?
DEFININDO HEURÍSTICAS 2 Número de movimentos necessários para colocar cada peça no seu lugar 10
DEFININDO HEURÍSTICAS 2 10 2 9
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 heurística é melhor?
BIBLIOGRAFIA Russell, S. and Norvig, P. Inteligência Artificial, 3a Edição, Ed. Campus/Elsevier, 2010. Capítulo 4. Notas de aula da Profa. Leliane N. de Barros (IME-USP) Notas de aula do Prof. Edirlei Soares de Lima (PUC-RIO)