Inteligência Artificial Aula 3 Métodos de Busca para Resolução de Problemas Busca Informada Heurísticas Busca Gulosa Busca A* Busca Local Prática #2 Prof. Ricardo M. Marcacini ricardo.marcacini@ufms.br Curso: Bacharelado em Sistemas de Informação 1º Semestre / 2015 http://moodle.lives.net.br/
Busca com Informação Busca não Informada é ineficiente quando o espaço de busca é grande Ineficiência tempo e memória Dificuldade para maioria dos problemas reais Buscam a solução por meio de força bruta Como melhorar a busca? IA-03 2
Busca com Informação Busca não Informada é ineficiente quando o espaço de busca é grande Ineficiência tempo e memória Dificuldade para maioria dos problemas reais Buscam a solução por meio de força bruta Como melhorar a busca? Adicionando uma informação do domínio Heurísticas para guiar o processo de busca Elimina estados não promissores durante a busca IA-03 3
Busca Informada: Heurísticas Heurística é uma função h(n) que indica o melhor caminho para a solução h(n) é o custo estimado do caminho do estado n até o estado final Importante: h(estado_final) = 0 IA-03 4
Busca Informada: Heurísticas Heurística é uma função h(n) que indica o melhor caminho para a solução h(n) é o custo estimado do caminho do estado n até o estado final Importante: h(estado_final) = 0 Indica qual o próximo estado (nó) a ser escolhido durante a busca IA-03 5
Busca Informada: Heurísticas Heurística é uma função h(n) que indica o melhor caminho para a solução h(n) é o custo estimado do caminho do estado n até o estado final Importante: h(estado_final) = 0 Indica qual o próximo estado (nó) a ser escolhido durante a busca Exemplos de heurísticas Quebra-cabeça-8 Caminho mais curto entre duas cidades IA-03 6
Busca Informada: Heurística Como escolher uma heurística? 1) Devemos entender o problema! 2) h(n) deve ser admissível Nunca superestimar o custo real da solução (h*) h(n) h* IA-03 7
Busca Gulosa Similar à Busca em Profundidade Expandir apenas o estado mais promissor Função heurística h(n) Os outros estados são ignorados IA-03 8
Busca Gulosa Similar à Busca em Profundidade Expandir apenas o estado mais promissor Função heurística h(n) Os outros estados são ignorados Exemplo: melhor rota entre duas cidades Quais os estados do problema? Melhor rota Menor distância Qual seria uma boa heurística? IA-03 9
Busca Gulosa: Exemplo: Viagem para Romênia Estado Inicial: Arad Estado Final: Bucharest Heurística: Linha reta entre um estado e o Estado Final IA-03 10
Busca Gulosa: Exemplo: Viagem para Romênia IA-03 11
Busca Gulosa: Exemplo: Viagem para Romênia IA-03 12
Busca Gulosa: Exemplo: Viagem para Romênia IA-03 13
Busca Gulosa: Exemplo: Viagem para Romênia IA-03 14
Busca Gulosa: Exemplo: Viagem para Romênia IA-03 15
Busca Gulosa: Exemplo: Viagem para Romênia Encontrou a mehor solução (caminho mais curto)? IA-03 16
Busca Gulosa: Exemplo: Viagem para Romênia Encontrou a mehor solução (caminho mais curto)? - Minimiza o custo computacional - Não há garantias que a solução seja ótima! IA-03 17
Algoritmo A* Baseado na Busca em Largura Usando heurística! A função que vai guiar a busca é tal que f(n) = g(n) + h(n) g(n): custo real para chegar ao estado atual h(n): custo estimado para chegar ao estado final Se f(n) é admissível... Garantia de encontrar a solução ótima! IA-03 18
Algoritmo A*: Exemplo: Viagem para Romênia Estado Inicial: Arad Estado Final: Bucharest h(n): Linha reta entre um estado e o Estado Final g(n): Custo do caminho atual f(n) = g(n) + h(n) IA-03 19
Algoritmo A*: Exemplo: Viagem para Romênia IA-03 20
Algoritmo A*: Exemplo: Viagem para Romênia IA-03 21
Algoritmo A*: Exemplo: Viagem para Romênia IA-03 22
Algoritmo A*: Exemplo: Viagem para Romênia IA-03 23
Algoritmo A*: Exemplo: Viagem para Romênia IA-03 24
Algoritmo A*: Exemplo: Viagem para Romênia IA-03 25
Algoritmo A*: Exemplo: Viagem para Romênia IA-03 26
Algoritmo A*: Exemplo: Viagem para Romênia Sempre encontra a melhor solução (heurística admissível) - Menor número de nós expandidos - Caminho de menor custo IA-03 27
Análise dos Algoritmos de Busca Complexidade de Tempo IA-03 28
Análise dos Algoritmos de Busca Complexidade de Tempo Número de estados (nós) expandidos Complexidade de Espaço IA-03 29
Análise dos Algoritmos de Busca Complexidade de Tempo Número de estados (nós) expandidos Complexidade de Espaço Número máximo estados (nós) na memória Completo (Sim ou Não) IA-03 30
Análise dos Algoritmos de Busca Complexidade de Tempo Número de estados (nós) expandidos Complexidade de Espaço Número máximo estados (nós) na memória Completo (Sim ou Não) Se existe alguma solução, o algoritmo encontra? Admissível (Sim ou Não) IA-03 31
Análise dos Algoritmos de Busca Complexidade de Tempo Número de estados (nós) expandidos Complexidade de Espaço Número máximo estados (nós) na memória Completo (Sim ou Não) Se existe alguma solução, o algoritmo encontra? Admissível (Sim ou Não) Se existe uma solução ótima, o algoritmo encontra? IA-03 32
Análise dos Algoritmos de Busca Busca em Profundidade Busca em Profundidade Limitada Busca em Largura Busca Gulosa Complexidade de Tempo Complexidade de Espaço Admissível Completa Busca com A* b: fator de ramificiação da árvore de busca d: profundidade da solução na árvore de busca h: profudidade máxima da árvore de busca L: limite da profundidade (para busca em profundidade limitada) IA-03 33
Análise dos Algoritmos de Busca Busca em Profundidade Busca em Profundidade Limitada Busca em Largura Complexidade de Tempo Complexidade de Espaço Admissível Completa O(b h ) O(bh) Não* Sim (espaços finitos) Não (espaços infinitos) O(b L ) O(bL) Não Sim se L d O(b d ) O(b d ) Sim Sim Busca Gulosa O(bd) O(bd) Não Busca com A* Exponencial (boa heurística diminui o tempo) O(bd) Sim (depende da heurística) Não (loop, espaços infinitos) Sim b: fator de ramificiação da árvore de busca d: profundidade da solução na árvore de busca h: profudidade máxima da árvore de busca L: limite da profundidade (para busca em profundidade limitada) IA-03 34
Busca Local Algoritmos de busca estudados até agora... Exploram o espaço de busca de maneira sistemática Guardam o caminho da solução Estado inicial até Estado final Importante para problemas que sabemos a solução, mas não conhecemos o caminho Como montar um cubo-mágico? IA-03 35
Busca Local Algoritmos de busca estudados até agora... Exploram o espaço de busca de maneira sistemática Guardam o caminho da solução Estado inicial até Estado final Importante para problemas que sabemos a solução, mas não conhecemos o caminho Como montar um cubo-mágico? E quando o caminho não interessa? IA-03 36
Busca Local Algoritmos de busca estudados até agora... Exploram o espaço de busca de maneira sistemática Guardam o caminho da solução Estado inicial até Estado final Importante para problemas que sabemos a solução, mas não conhecemos o caminho Como montar um cubo-mágico? E quando o caminho não interessa? O que importa é a configuração final Circutos integrados, escalonamento de jornadas de trabalho, otimização de funções em geral... IA-03 37
Busca Local: Hill-Climbing Algoritmo Hill-Climbing 1. Escolha um estado inicial do espaço de busca 2. Considere todos os vizinhos (estados sucessores) 3. Mova para o vizinho (estado) com maior qualidade 4. Repetir 2 e 3 até que todos os vizinhos tenham menos qualidade que o estado atual IA-03 38
Busca Local: Hill-Climbing IA-03 39
Busca Local: Hill-Climbing IA-03 40
Busca Local: Hill-Climbing Se atingir um máximo local, a busca termina mesmo que a solução não é satisfatória IA-03 41
Busca Local: Hill-Climbing Platôs (regiões planas) faz com que a busca seja uma caminhada aleatória IA-03 42
Busca Local: Hill-Climbing Análise do Hill-Climbing Complexidade de Tempo IA-03 43
Busca Local: Hill-Climbing Análise do Hill-Climbing Complexidade de Tempo Número de estados visitados até convergir Depende do problema Máximo número de iterações (parâmetro) Complexidade de Espaço IA-03 44
Busca Local: Hill-Climbing Análise do Hill-Climbing Complexidade de Tempo Número de estados visitados até convergir Depende do problema Máximo número de iterações (parâmetro) Complexidade de Espaço O(1) Armazena somente o estado atual Completo: IA-03 45
Busca Local: Hill-Climbing Análise do Hill-Climbing Complexidade de Tempo Número de estados visitados até convergir Depende do problema Máximo número de iterações (parâmetro) Complexidade de Espaço O(1) Armazena somente o estado atual Completo: Sim (cada estado é uma solução) Admissível: IA-03 46
Busca Local: Hill-Climbing Análise do Hill-Climbing Complexidade de Tempo Número de estados visitados até convergir Depende do problema Máximo número de iterações (parâmetro) Complexidade de Espaço O(1) Armazena somente o estado atual Completo: Sim (cada estado é uma solução) Admissível: Não (depende da inicialização) IA-03 47
Prática #2 Implementação do Hill-Climbing Resolução do Problema da Mochila Mochila com capacidade máxima de 23 kg. Temos 5 possíveis objetos para carregar Objetivo: quais objetos carregar na mochila? Perguntas Como representar o problema (estados)? Dado um estado, como encontrar os estados vizinhos? IA-03 48
Prática #2 Implementação do Hill-Climbing Resolução do Problema da Mochila Mochila com capacidade máxima de 23 kg. Temos 5 possíveis objetos para carregar Objetivo: quais objetos carregar na mochila? Exercício (alunos) Melhorar a função que define os próximos vizinhos (estados sucessores) IA-03 49
Bibliografia: Algoritmos de Busca Bibliografia Básica RUSSEL, S.; NORVIG, P. Artificial Intelligence: A Modern Approach. Prentice Hall, 2010. Part II Problem Solving IA-03 50