Inteligência Artificial - IA Resolução de problemas por meio de busca 1 Inteligência Artificial - IA Agente reativo - definido por ação–reação Agente de resolução de problemas (ou baseado em objetivos) encontra sequencias de ações que leva ao estado desejável. O que é um problema de IA? Formulação de objetivo – baseado na situação atual e na medida de desempenho do agente, buscar a resolução do problema. Formulação de problema – é o processo de decidir que ações e estados devem ser considerados, dado um objetivo. 2 Inteligência Artificial - IA Definição do objetivo: – propriedade abstrata ● ex.: No jogo de 8 números o objetivo é organizar o tabuleiro de números – conjunto de estados finais do mundo ● ex.: No caso de uma viagem o objetivo é chegar ao destino Solução: – caminho (sequência de ações ou operadores) que leva do estado inicial a um estado final (objetivo). Espaço de Estados: – conjunto de todos os estados alcançáveis a partir do estado inicial por qualquer sequência de ações. 3 Inteligência Artificial - IA Formulação do problema e do objetivo: – quais são os estados e as ações a considerar? – qual é (e como representar) o objetivo? Busca (solução do problema): – processo que gera/analisa sequências de ações para alcançar um objetivo – solução = caminho entre estado inicial e estado final. – custo do caminho = qualidade da solução Execução: – executar a solução completa encontrada, ou – intercalar execução com busca: planejamento 4 Inteligência Artificial - IA Agentes solucionadores de problema função Agente-Resolução-Problema-Simples(percepção) retorna uma ação entradas: percepção, uma percepção variáveis estáticas: seq, uma sequencia de ações, inicialmente vazia, estado, alguma descrição do estado atual, objetivo, um objetivo, inicialmente nulo, problema, uma formulação de problema estado ATUALIZA-ESTADO(estado, percepção) se seq está vazia então faça objetivo FORMULAR-OBJETIVO(estado) problema FORMULAR-PROBLEMA (estado, objetivo) seq BUSCA(problema) ação PRIMEIRO (seq) seq RESTO (seq) retorna ação 5 Inteligência Artificial - IA Um problema em IA pode ser definido por quatro componentes: Estado inicial – posição em que o agente começa Espaço de ações – um conjunto de descrição das ações possíveis que estão disponíveis para o agente. A passagem de um estado para outro é dado pela função sucessor. O espaço de estados pode ser interpretado como um grafo em que os nós são estados e os arcos são ações. Teste de objetivo: determina se um dado estado gerado é o estado objetivo; Função custo: atribui um valor numérico para cada caminho. Custo do passo: é o custo de adotar a ação para ir do estado x ao estado y, denotado por c(x,a,y) 6 Inteligência Artificial - IA Um problema em IA é definido em termos de... Espaço de estados Conjunto de ações Um espaço de estados possíveis, incluindo: - um estado inicial; - um (ou mais) estado final = objetivo Um conjunto de ações (ou operações) que permitem passar de um estado a outro. Exemplo: a) dirigir de Barra para Goiânia - Espaço de estados: todas as cidades da região Exemplo: a) Dirigir de uma cidade a outra b) Jogo de 8-números -Espaço de estados: mudanças peças b) Mover uma peça do jogo 7 Inteligência Artificial - IA Formulação do problema: jogo de 8 números – – – – – Estados = cada possível configuração do tabuleiro (9 quadrados, 8 peças e um espaço vazio) estado inicial = qualquer um dos estados possíveis Função sucessor = gera os estados válidos resultante das ações (o espaço vazio desloca para: cima, baixo, direita, esquerda) teste de objetivo = quadrado ordenado com vazio na posição [1,1] custo do caminho = número de passos para a solução 8 Inteligência Artificial - IA Espaço de estados para Jogo de 8 números cima 4 5 8 1 6 7 2 3 direita 5 8 4 1 6 7 2 3 baixo baixo 4 5 8 7 1 6 2 3 direita Observe que nas condições do jogo podemos afirmar que: o ambiente é completamente observável, determinístico, episódico, discreto, estático e de um único agente. objetivo 1 2 4 5 7 8 3 6 9 Inteligência Artificial - IA Formulação do problema: viagem de Barra a Goiânia – – – – – estados = cada possível cidade do mapa estado inicial = Barra do Garças teste de término = estar em Goiânia operadores = dirigir de uma cidade para outra custo do caminho = número de cidades visitadas, distância percorrida, tempo de viagem, custo combustível, prazer, etc. 10 Inteligência Artificial - IA Para se resolver um problema é necessário fazer uma busca em todo o espaço de estados. A técnica a ser utilizada é a árvore de busca – gerada pelo estado inicial e pela função sucessor, que juntas definem o espaço de estados 11 Inteligência Artificial - IA Problemas de busca em árvore A essência da busca em árvore é seguir uma opção e deixar as outras reservadas para depois, no caso da primeira escolha não levar a uma solução. É possivel escolher qualquer das opções da expansão ou então voltar e escolher outro caminho. O processo é continuar testando a opção e expandindo até ser encontrada uma solução ou não existirem mais estados para serem expandidos. A escolha de qual estado expandir é determinada pela estratégia de busca. 12 Inteligência Artificial - IA Descrição informal do algoritmo geral de busca em árvore. Algoritmo: O algoritmo começa com a lista contendo o estado inicial do problema. 1. Selecionar o primeiro nó (estado) da lista do espaço de estados; - se a lista está vazia, o algoritmo termina com falha. 2. Testar se o nó é um estado final (solução): - se “sim”, então retornar nó - a busca termina com sucesso. 3. Gerar um novo conjunto de estados pela aplicação dos operadores ao estado selecionado; 4. Inserir os nós gerados na lista, de acordo com a estratégia de busca usada, e voltar para o passo (1). 13 Inteligência Artificial - IA Árvore de busca parcial para localização de rota 14 Inteligência Artificial - IA Descrição informal do Algoritmo Busca em Árvore Função BUSCA-EM-ARVORE (problema, estratégia) retorna uma solução ou falha Inicializar a árvore de busca usando o estado inicial de problema Repita se não existir nenhum candidato para expansão então retornar falha Escolher um nó folha para expansão de acordo com estratégia se o nó contem um estado objetivo então retornar a solução correspondente senão expandir o nó e adicionar os nós resultantes à árvore de busca 15 Inteligência Artificial - IA Medida de desempenho do algoritmo Completude: – O algoritmo oferece a garantia de encontra uma solução quando ela existir? Complexidade de tempo*: – quanto tempo o algoritmo gasta para encontrar uma solução? Complexidade de espaço*: – quanta memória é necessária para realizar a busca? Otimização/qualidade: – a estratégia encontra a melhor solução (tem o menor custo de caminho entre as soluções)? * Devem ser consideradas mediante a dificuldade do problema 16 Inteligência Artificial - IA Estratégias de busca Busca sem informação (cega) Tipo de busca exaustiva – não tem nenhuma informação adicional sobre os estados, só definição do problema. Apenas gera sucessores e distingue o estado objetivo do estado não objetivo. a. b. c. d. e. Busca em extensão Busca de custo uniforme Busca em profundidade Busca em profundiade limitada Busca de aprofundamento iterativo Busca com informação (heurística) Tipo de busca que estima qual o melhor caminho a ser expandido usando funções heurísticas => conhecimento 17 Inteligência Artificial - IA Referências Rich, Elaine; Knight, Kevin, Artificial Intelligence, Second Edition, McGraw. Hill, 1993. Russel, S.; Norvig, P. Artificial Intelligence: A Modern Approach, 2ª ed., Elsevier, Ed. Campus, 2004. 18