Inteligência Artificial

Slides:



Advertisements
Apresentações semelhantes
Algoritmos de Caminho Mínimo em Grafos
Advertisements

AULA 02 PROGRAMAÇÃO LINEAR INTEIRA
Programação em Java Prof. Maurício Braga
Deadlocks Professora: Lúcia Drummond. Deadlocks Recursos: hardware ou informação Preemptivo Não preemptivo Uso do Recurso: 1. Pedido (Request ou Open)
Inteligência Artificial
Inteligência Artificial
Celso C. Ribeiro Caroline T. Rocha
Busca com Informação Busca com informação Busca Gulosa Busca A*
Pesquisa em profundidade
Busca em Profundidade Para encontrar um caminho de solução Sol, de um dado nó para algum nó objetivo Se N é um nó objetivo, então Sol=[N] Se há um nó N1.
Inteligência Artificial
I Iterated Local Search Helena R. Lorenço, Olivier Martinz
Meta - heurísticas Prof. Aurora
GRASP Greedy Randomized Adaptative Search Procedure
Busca informada (heurística) Parte 2
Agentes Resolvedores de problemas II. SI Tipos de Busca Desinformada Busca em Largura (ou extensão) Busca por Custo Uniforme Busca em Profundidade.
Estruturas de repetição
1 Inventando Funções Heurísticas Como escolher uma boa função heurística h? h depende de cada problema particular. h deve ser admissível não superestimar.
Árvores.
Busca Online Alexandra Barros Geber Ramalho. Busca Offine x Busca Online Busca Offline (ou planejamento clássico) –Computa a solução (do estado inicial.
Busca Heurística - Informada
Busca Cega (Exaustiva)
Inventando Funções Heurísticas
Introdução à Lógica de Programação (cont.)
Busca com informação e exploração
SIMULAÇÃO EM COMPUTADOR: O PENSAMENTO COMO PROCESSAMENTO DE INFORMÇÕES
Inteligência Artificial
Listas Encadeadas.
INF 1771 – Inteligência Artificial
Busca Competitiva - MiniMax Jogo-da-Velha
INF 1771 – Inteligência Artificial
Listas e algoritmos (em Scratch)
Buscas em Grafos Prof. André Renato 1º Semestre/2012
Lógica do Sequenciamento das Operações
Meta - heurísticas Prof. Aurora
T ÓPICOS DE I.A. Métodos de Busca Busca em Espaços de Estado Prof. Mário Dantas.
José Roberto Blaschek Gerência do Escopo José Roberto Blaschek.
Grafos Árvores Geradoras.
1 Introdução aos Agentes Inteligentes Flávia Barros.
Otimização por Colônia de Formigas (ACO)
AntNet Algoritmos de formigas aplicados a encaminhamento de pacotes em redes Pedro Neves nº
Arquitetura de computadores
Busca com informação e exploração
Introdução e Busca Cega
Introdução aos Agentes Inteligentes Busca Cega (Exaustiva)
Introdução aos Agentes Inteligentes Busca Heurística (Informada)
Introdução aos Agentes Inteligentes Algoritmos de Melhorias Iterativas (Otimização) Flávia Barros.
Sistemas Especialistas
Algoritmos de Busca Local
Tópicos Avançados em Inteligência Artificial
1 A COMPUTAÇÃO MODERNA Valdemar W. Setzer Depto. de Ciência da Computação da USP
Técnicas de Busca Heurística Problemas da IA complexos demais para serem solucionados por técnicas diretas: criam-se técnicas de busca aprorpiados; chamados.
Tópicos em Sistemas Inteligentes
Fontes de Erros Aula 1 Introdução; Erros em processos numéricos;
Busca Combinatorial e Métodos de Heurística
Inteligência Artificial
Resolução de Problemas de Busca
Busca com Informação e Exploração “Busca heurística”
Inventando Funções Heurísticas
Busca Competitiva Disciplina: Inteligência Artificial
Resolução de Problemas Sistemas de Produção Prof. Cláudio M. N. A. Pereira.
Busca em Espaço de Estados Parte2 Algoritmos de Busca Cega
Busca em Espaço de Estados
Principais Tópicos Introdução Métodos de busca Busca cega
Ao final desta aula, a gente deve...
1 Sistemas Inteligentes Algoritmos de Melhorias Iterativas (Otimização) Flávia Barros.
Sistemas Inteligentes Algoritmos de Melhorias Iterativas (Otimização)
Sistemas Inteligentes Busca Cega (Exaustiva)
Busca Heurística Prof. Valmir Macário Filho. 2 Busca com informação e exploração Capítulo 4 – Russell & Norvig Seção 4.1 Estratégias de Busca Exaustiva.
Questionário (Básico) Autor: Skyup Informática. Atividade - Questionário O módulo permite criar uma série de questões, que deverão ser respondida pelos.
Transcrição da apresentação:

Inteligência Artificial Aula 3

Subida de Encosta Variação do procedimento gerar-e-testar; muito utilizado quando há disponibilidade de uma boa função heurística para avaliar estados e nenhum outro conhecimento útil está disponível; Subida de encosta simples: 1.avalie o estado inicial, se ele for um estado- meta, retorne-o e encerre-o, caso contrário continue com o estado-inicial como o estado corrente; 2.repita a operação (loop) até que uma solução seja encontrada ou até não haver nenhum operador a ser aplicado ao estado corrente:

b) avalie o novo estado: a) escolha um operador que ainda não tenha sido aplicado ao estado corrente e aplique-o para produzir um novo estado; b) avalie o novo estado: se for um estado-meta, então retorne-o e encerre. Se não for um estado-meta, mas for melhor que o estado corrente então transforme-o em estado corrente; se não for melhor que o estado corrente, então continue no loop. Diferença entre este algoritmo e o gerar-e-testar, neste caso o algoritmo possui um função de avaliação como meio de injetar ao processo controle dos conhecimentos específicos a respeito da tarefa (busca heurística);

Pergunta-se ao longo da heurística : “Este estado é melhor que o outro para o algoritmo funcionar precisamos definir o que significa “melhor”; exemplo:quebra-cabeça dos quatro cubos coloridos; para solucionar o problema necessita-se definir uma função heurística que descreva o quão perto esta uma determinada situação da solução (estado-meta); necessita-se escrever um conjunto de regras que irão transformar uma configuração em outra (conhecimento do problema, espaço de estados); gera-se um estado inicial aleatório; busca-se a solução através da função heurística; se o estado resultante for melhor , será mantido, senão voltaremos ao estado anterior e buscaremos uma heurística diferente;

Subida de Encosta pela trilha mais íngreme Considera todos os movimento já feitos a partir do estado corrente selecionando o melhor como próximo estado; algoritmo: 1. Avalie o estado inicial. Se ele também for um estado meta, retorne-o e encerre, caso contrário, continue com o estado inicial como estado corrente; 2. Repita o processo até encontrar uma solução ou até que uma iteração completa não produza nenhuma mudança no estado corrente:

a) atribua a sucessor um estado; b) para cada operador que se aplique ao estado corrente faça o seguinte: aplique o operador e gere um estado novo; avalie o novo estado. Se for um estado-meta, retorne-o e encerre. Senão, compare-o a sucessor, se for melhor, então atribua-o a sucessor, caso contrário deixe o sucessor como está. Exemplo: cubos coloridos neste método, precisamos considerar todas as alterações do estado inicial e escolher a melhor; neste problema isto é difícil pois temos muitos movimentos possíveis (explosão combinatória); sempre há perdas e ganhos entre o tempo exigido para escolher um movimento e o número de movimentos necessários para chegar a uma solução;

Os métodos vistos até então podem não encontrar uma solução, qualquer um dos algoritmos pode terminar, não porque o estado-meta foi encontrado, mas porque chegou-se a um estado que não há nenhum estado melhor que ele, isto ocorre quando um programa tiver alcançado o máximo local, um platô ou uma cordilheira; máximo local: estado melhor que todos os seus vizinhos, mas não melhor que estados mais distantes; platô:área dentro do espaço de busca onde o grupo de estados vizinhos tem o mesmo valor, não sendo possível determinar a melhor direção através de comparações locais;

modos para lidar com estes problemas: cume:um tipo de máximo local. Área do espaço de busca mais alta que seus vizinhos que não permite atravessar a cordilheira num único movimento; modos para lidar com estes problemas: volte a um nó anterior e siga uma heurística diferente (máximos locais); de um salto grande em alguma direção para tentar chegar a uma nova seção do espaço de busca (platôs); aplique duas ou mais regras, move-se em várias direções ao mesmo tempo (cordilheiras); apesar de todos estas estratégias a subida de encosta não é muito eficiente

Têmpera Simulada Variação da subida de encosta; no início do processo podem ser feitos movimentos descendentes (morro abaixo) explorando suficientemente o espaço do problema, para que a solução final não fique presa a um máximo local, platô ou cordilheira; utilizada em processos físicos de recozimento, onde substâncias físicas como os metais são fundidas ( altos níveis de energia) e depois gradualmente resfriados até alcançar um estado sólido;

função-objetivo (função heurística) é o nível de energia; Objetivo: produzir um estado final com um mínimo de energia (estado-meta); função-objetivo (função heurística) é o nível de energia; a velocidade com que o sistema é resfriado é chamado de cronograma de têmpera; algoritmo: 1. Avalie o estado inicial. Se for também um estado-meta, então retorne-o e encerre. Caso contrário, continue com o estado inicial como estdo corrente; 2. Inicialize melhor-até-o´momento como igual ao estado corrente;

3. Inicialize T de acordo com o cronograma de têmpera; 4. Repita o processo até ser encontrada uma solução ou até não haver mais nenhum operador que possa ser aplicado no estado corrente: a) selecione um operador que ainda não tenha sido aplicado ao estado corrente e aplique-o para produzir um estado novo; b) avalie o estado novo. Calcule E = valor do estado corrente - valor do estado novo (mudança de energia) se o estado novo for um estado meta, retorne-o e encerre;

Busca pela melhor escolha se não for um estado meta, mas for melhore que o estado corrente, então torne-o o estado corrente com a probabilidade p´ ( definido aleatoriamente um número entre [0,1] se for menor que p´então o movimento é aceito, senão , não faz nada; c) retorne melhor-até-o-momento como resposta; até agora utilizamos duas estratégias sistemáticas de controle de busca , busca em profundidade e em amplitude (diversos tipos); best-first search: busca pela melhor escolha combinando a busca em amplitude e em profundidade; Busca pela melhor escolha

Grafos ou: A busca em profundidade é interessante pois permite que uma solução seja encontrada sem que todas as ramificações concorrentes tenham de ser expandidas e também porque não fica presa em caminhos sem saída; uma maneira de combinar os dois métodos é seguir um único caminha de cada vez, mas mudar de caminho toda vez que algum caminho concorrente parecer mais promissor do que o caminho corrente; grafos:

para a pesquisa de grafos precisamos usar duas listas de nós: Na subida de encosta, um movimento é selecionado e todos os outros rejeitados, e nunca mais voltam a ser reconsiderados; na busca pela melhor escolha, um movimento já selecionado fica disponível, caso o valor do estado corrente seja menor que o valor do selecionado; para a pesquisa de grafos precisamos usar duas listas de nós: abertos: nós que forma gerados e sofreram a aplicação da função heurística, mas que ainda não foram examinados (seus sucessores não foram gerados); fechados:nós que já foram examinados, precisamos mantê-los na memória para efetuar a busca no grafo;

algoritmo: 1. Comece com abertos contendo apenas o estado inicial; precisamos de uma função heurística que diga quais são os caminhos mais promissores; algoritmo: 1. Comece com abertos contendo apenas o estado inicial; 2. Até ser encontrado um estado-meta ou até não haver mais nenhum nó em abertos, faça o que segue: a) pegue o melhor nó de abertos; b) gere seus sucessores; c) para cada sucessor faça: se ele ainda não tiver sido gerado antes, avalie-o, acrescente-o a Abertos e registre seu pai;

Algoritmo A*: Agendas: se ele já tiver sido gerado antes, mude o pai se este novo caminho for melhor que o anterior; Neste caso, atualize o custo de chegar a este nó e a qualquer um dos sucessores que este nó possa ter; Algoritmo A*: o algoritmo que foi anteriormente apresentado é uma generalização deste algoritmo A* apresentado por HART em 1968, para resolução de busca pela melhor escolha; Agendas: nos grafos OU assumimos que seria possível avaliar vários caminhos para o mesmo nó, ou seja, chagariamos ao estado-meta por diferentes caminhos;

agenda é uma lista de tarefas que um sistema pode realizar: não possuí nenhuma função heurística que distigua a distância entre um dado nó e uma meta (a espera a se chegar ao caminho meta pode ser maior ou menor (árdua de acordo com o caminho); agenda é uma lista de tarefas que um sistema pode realizar: justificativas = lista de razoes pela qual a tarefa está sendo proposta; classificação = representa o peso total das evidências que sugerem que a tarefa será útil; algoritmo:

1. Até chegar o estado-meta ou até a agenda ficar vazia: a) escolha a tarefa mais promissora da agenda. Note que essa tarefa pode ser representada em qualquer formato desejado (pode ser uma declaração explícita do que deve ser feito a seguir ou simplesmente, uma indicação do próximo a ser expandido; b) execute a tarefa dedicando a ela a quantidade de recursos determinada por sua importância. Os recursos importantes são o tempo e o espaço. A execução da tarefa gerará tarefas adicionais (nós sucessores): veja se ela já existe a agenda. Em caso positivo, veja se esta mesma razão para executá-la já está na lista de justificativas. Em caso positivo, ignore esta evidência atual. Se a justificativa ainda não estiver presente, acrescente à lista. Se a tarefa não estiver na agenda, insira-a;

este método gasta muito tempo para manter a agenda em ordem; Calcule a classificação da nova tarefa, combinando as evidências de todas as suas justificativas. Nem todas justificativas tem peso igual. Em geral, é util associar a cada justificativa uma medida de sua força. Estas medidas são então combinadas na próxima etapa para produzir uma classificação global da tarefa; no método agenda o problema é encontrar a tarefa mais promissora a cada ciclo, para isso mantém-se a agenda organizada por classificação, ou seja,quando uma nova tarefa é criada, insira-a na agenda em local apropriado; quando uma tarefa tem suas justificativas alteradas, recalcule sua classificação e mova-a para o local correto da lista; este método gasta muito tempo para manter a agenda em ordem;

Redução de Problemas Considerando estratégias de busca para o grafo OU pretende-se encontrar um único caminho para o objetivo; utiliza-se outra estratégia, grafo E-OU, que representa a solução de problemas através da decomposição do problema em um conjunto de problemas menores que precisam ser resolvidos também (arco); como num arco ou, vários arcos podem surgir de um único nó, indicando uma série de maneiras de chegar ao estado-meta;

Satisfação de Restrições: Algoritmo AO*: algoritmo de redução de problemas proposto por Martelli e Montari (1973); Satisfação de Restrições: muitos problemas de IA podem ser vistos como problemas de satisfação de restrições, sendo que o objetivo é descobrir algum estado problema que satisfaça a um determinado conjunto de restrições; utilizada em problemas de interpretação da percepção do mundo real; propagação para trás; soluções parcialmente especificadas;

Análise meios-fins: Raciocínio para frente e para trás (mistura): chega-se ao estado-meta resolvendo-se primeiramente os problemas mais difíceis , deixando para depois a resolução dos subproblemas (entre linhas da solução-conhecer as heurísticas);