390 likes | 510 Views
Inteligência Artificial. Nadilma C. V. N. Pereira Aula 4 – Resolvendo Problemas. Agente solucionador de problemas (guiado por objetivo). O agente reativo Escolhe suas ações com base apenas nas percepções atuais Não tem estado interno Não pode pensar no futuro, não sabe “aonde vai”
E N D
Inteligência Artificial Nadilma C. V. N. Pereira Aula 4 – Resolvendo Problemas
Agente solucionador de problemas (guiado por objetivo) • O agente reativo • Escolhe suas ações com base apenas nas percepções atuais • Não tem estado interno • Não pode pensar no futuro, não sabe “aonde vai” • O agente solucionador de problemas • Busca uma sequência que leve a estados DESEJÁVEIS (objetivos)
Agentes solucionadores de problemas • O que é um problema em I.A.? • Como formulá-lo? • Como buscar a solução do problema? • Busca cega • Busca Heurística • Quais são os tipos de problemas? • Quais são as aplicações?
Solução de problemas: definições • Um problema em IA é definido em termos de... • Um espaço de estados possíveis, incluindo: • Um estado inicial • Um (ou mais) estado final = objetivo • Exemplo: dirigir de Recife a Cajazeiras • Espaço de estados: todas as cidades da região • Um conjunto de ações (ou operadores) que permitem passar de um estado a outro
Solução de problemas: definições • Definição do objetivo • Conjunto de estados finais do mundo • Ex. estar em Cajazeiras • Solução • Caminho (sequência de ações ou operadores) que leva do estado inicial a um estado final (0bjetivo). • Espaço de Estados • Conjunto de todos os estados alcançáveis a partir do estado inicial por qualquer sequência de ações.
Solucionando o problema: formulação, busca e execução • 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 a solução com busca: planejamento
Exemplo de formulação de problemas • Ida para Cajazeiras • Estados = cada possível cidade do mapa • Estado inicial = Jeremoabo • Teste de término = estar em Cajazeiras • Operadores = dirigir de uma cidade para outra • Custo do caminho = número de cidades visitadas, distância percorrida, tempo de viagem, grau de divertimento, etc.
Medida de Desempenho na busca • Desempenho de um algoritmo de busca: • O algoritmo encontrou alguma solução? • É uma boa solução? • Custo de caminho (qualidade da solução) • É uma solução computacionalmente barata? • Custo da busca (tempo e memória) • Custo total: • Custo do caminho + custo da busca • Espaço de estados grande • Compromisso (conflito) entre a melhor solução e a solução mais barata
Custo diferente => Solução diferente • Função de custo de caminho • Número de cidades visitadas • Distância entre as cidades • Tempo de viagem, etc. • Solução mais barata: • Canudos, Belém do S. Francisco, Salgueiro, .... • Canudos, Belém do S. Francisco, Cabrobó, .... • Canudos, Juazeiro, Petrolina, Cabrobó. Salgueiro, ....
Tipos de problema • Existem 4 tipos • Problemas de estado único (o mais tratado por busca) • Problemas de múltiplos estados • Problemas contingenciais • Problemas exploratórios Tudo depende do conhecimento do agente!!!!
Tipo 1: Problemas de estado único • Conhecimento do agente • Sabe em que estado está (mundo totalmente acessível) • Sabe o efeito de cada uma de suas ações • Sabe onde está depois de uma sequência qualquer de ações • Cada ação leva um único estado
Tipo 2: Problemas de múltiplos estados • Conhecimento do agente • Não sabe seu estado inicial (percepção deficiente), mas sabe o efeito de suas ações, OU • Não sabe o efeito das ações (execução deficiente), mas sabe seu estado inicial • Lei de Murphy: faz o que tem que tem que fazer e ao mesmo tempo realiza a tarefa contrária • O agente deve raciocinar sobre os conjuntos de estados aos quais ele pode chegar pelas ações. • Nestes casos, sempre existe uma sequência de ações que leva a um estado final. • Técnica a aplicar: Busca
Tipo 3: Problema de contingências • Conhecimento do agente: • O agente não enxerga o ambiente inteiro OU • O agente não sabe precisar o efeito das ações • Não há sequência prévia de ações que garanta a solução do problema • O agente precisa intercarlar busca e execução • Técnica a aplicar: Planejamento • O agente constrói uma árvore de ações, onde cada ramo lida com uma possível contingência.
Tipo 4: Problemas exploratórios • Conhecimento agente: • O agente não conhece seus possíveis estados E • O agente não sabe o efeito de suas ações • O agente deve explorar seu ambiente, descobrindo gradualmente o resultado de suas ações e os estados existentes. • Se o agente “sobreviver”, terá aprendido um mapa do ambiente, que poderá ser reutilizado em problemas subsequentes. • Técnica a aplicar: Aprendizagem.
Aplicações: Problemas Reais • Cálculo de rotas • Rotas em redes de computadores • Sistemas de planejamento de viagens • Planejamento de rotas de aviões • Caixeiro viajante
Busca em espaço de estados • Uma vez o problema bem formulado... O estado final deve ser “buscado” • Em outras palavras, deve-se usar um método de busca para saber a ordem correta de aplicação dos operadores que levará do estado inicial ao final • Uma vez a busca terminada com sucesso, é só executar a solução (=conjunto ordenado de operadores a aplicar)
Busca em espaço de estados: Geração e Teste • Fronteira do espaço de estados • Nós (estados) a serem expandidos no momento • Algoritmo • Obs: o algoritmo começa com a fronteira contendo o estado inicial do problema
Problema do caixeiro viajante • É um problema clássico de otimização combinatória; • Suponha que um caixeiro tenha de visitar n cidades diferentes, iniciando e encerrando sua viagem na primeira cidade. A ordem de visita às cidades não importa e cada uma delas pode ir diretamente a qualquer outra. Resumindo, o problema do caixeiro viajante consiste em descobrir a rota que torna mínima a viagem total.
Hill Climbing (Subida na Montanha) • É um método de busca (local) que utiliza um procedimento de melhora iterativa (iterative improvement). • A estratégia é aplicada a um único ponto x (solução candidata) no espaço de busca
Interpretação da Terminologia do Sistema Físico para o Domínio Computacional
Simulated Annealing • Arrefecimento simulado ou simulated annealing é uma meta-heurística para otimização que consiste numa técnica de busca local probabilística, e se fundamenta numa analogia com a termodinâmica. • É análogo ao processo térmico devido a duas etapas utilizada na metalúrgica no processo de annealing: • A temperatura é aumentada a fim de fundir o sólido • Resfriamento realizado lentamente e o material se solidifica. Nesta fase, os átomos organizam-se numa estrutura uniforme com energia mínima, provocando que os átomos ganhem energia para se movimentarem livremente e arrefecer (tornar frio) de forma controlada.
Simulated Annealing A grande sacada nisso é que esse processo dar uma melhor hipótese de que o material se organize numa configuração com menor energia interna, para ter, como resultado prático, uma redução dos defeitos do material.
Simulated Annealing • Substitui uma solução atual por uma solução próxima (no espaço de soluções) através de: • De forma análoga, o algoritmo de arrefecimento simulado substitui a solução atual por uma solução próxima, escolhida de acordo com uma função objetivo e com uma variável T (dita Temperatura, por analogia).Quanto maior for T, maior a componente aleatória que será incluída na próxima solução escolhida. • À medida que o algoritmo progride, o valor de T é decrementado, começando o algoritmo a converter para uma solução ótima, necessariamente local. • Uma das principais vantagens deste algoritmo é permitir testar soluções mais distantes da solução atual e dar mais independência do ponto inicial da pesquisa.
Simulated Annealing O parâmetro T (temperatura) é reduzidoapós algumas iterações (arrefecimento). Figura 1 Ilustração de mínimos locais e mínimo global
Simulated Annealing • Procedimento: • Busca a partir de uma solução inicial qualquer • O procedimento principal é um loop que gera UM ÚNICO vizinho s’ da solução s • A Cada s’é testado a variação do ∆ do valor da função objetivo, ∆ = f (s’) – f (s) • ∆ < 0 Redução de energia • ∆ = 0 Caso de estabilidade • ∆ ≥ 0 Aumento do estado de energia
Simulated Annealing • T assume valor elevado inicialmente (T0) • Quando o sistema atinge o equilíbrio térmico em uma dada temperatura, ela é diminuída • Tn ← α * Tn -1, sendo 0 < α < 1 • Com esse procedimento inicial há uma chance maior de se escapar de mínimos locais
Simulated Annealing • Quando a temperatura chega a um valor próximo de zero (mínimo local) • Quando o sistema encontra-se nesta situação evidencia o encontro de um mínimo local
Simulated Annealing Identificadores utilizados: S0 → Configuração Inicial (Entrada); Si → Configuração da Iteração i; S → Configuração Final; T0 → Temperatura Inicial; Ti → Temperatura na Iteração i; M → Número máximo de iterações (Entrada); P → Número máximo de Perturbações por iteração (Entrada); L → Número máximo de sucessos por iteração (Entrada); α → Factor de redução da temperatura (Entrada); f(Si) → Valor da função objetivo correspondente á configuração Si; nSucesso → Contador de sucesso em uma iteração; i e j → Variáveis de controle de Loops.
Simulated Annealing Funções utilizadas: Pertuba(S) → Função que realiza uma perturbação na Solução S; Randomiza() → Função que gera um número aleatório no intervalo [0,1]; TempInicial() → Função que calcula a temperatura inicial;
Simulated Annealing Pseudo-Código Simulated Annealing Inicio/* Entradas do Algoritmo */ Ler (S0, M, P, L, α) /* Inicialização das variáveis */ S = S0 T0 = TempInicial() T = T0 j = 1 /*Loop principal – Verifica se foram atendidas as condições de termino do algoritmo*/Repita i = 1 nSucesso = 0/*Loop Interno – Realização de perturbação em uma iteração*/ Repita Si = Pertuba(S) ∆Fi = f(Si) – f(S)/*Teste de aceitação de uma nova solução*/ Se (∆fi ≤ 0) ou (exp(-∆fi/T) > Randomiza()) então S= Si nSucesso = nSucesso + 1 Fim-se i = i + 1 Até (nSucesso ≥ L) ou (i > P)/*Atualização da Temperatura*/ T = α.T/*Atualização do Contador de iterações*/ j = j + 1Até (nSucesso = 0) ou (j > M)/*Saída do Algoritmo*/Imprima(S)
Simulated Annealing • Para usar SA é necessário definir: • O problema • O mecanismo da geração de uma nova vizinhança • Função Objetivo • Forma de resfriamento da temperatura • Critério de Parada