Desenvolvimento de Sistemas Baseados em Conhecimento

Slides:



Advertisements
Apresentações semelhantes
Árvores CC/EC/Mestrado Teoria dos Grafos ‏ 1.
Advertisements

Inteligência Artificial
Fluxo em Redes Prof. Ricardo R. Santos.
N Rainhas Descrição do Problema Satisfação de Restrições (CSP)
Métodos para representação de estruturas hierárquicas
Pesquisa e Heurísticas
1 Domínios Finitos A eficiência das programas em domínios finitos (incluindo booleanos) podem ainda ser melhoradas pelo uso de Algoritmos de Propagação.
Introdução à Linguagem Prolog
I Iterated Local Search Helena R. Lorenço, Olivier Martinz
Busca informada (heurística) Parte 2
1 Busca Heurística - Informada Estratégias de Busca Exaustiva (Cega) encontram soluções para problemas pela geração sistemática de novos estados, que são.
Á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
DI - UFPE 1 Constraint Satisfaction Problems (CSP) nConceitos básicos nBusca cega simples e refinada nBusca heurística nCSP iterativo.
Busca Cega (Exaustiva)
A FAST APRIORI implementation
WAR STORY Stripping Triangulations Luciana Oliveira e Silva
Solução de problemas por meio de busca
Buscando Soluções Busca Heurística.
Princípios e Conceitos de Software(v2)
3 - Equações Lineares de Segunda Ordem
Buscas em Grafos Prof. André Renato 1º Semestre/2012
Disciplina: Inteligência Artificial
Informática Teórica Engenharia da Computação
1 Introdução aos Agentes Inteligentes Flávia Barros.
I Iterated Local Search Helena R. Lorenço, Olivier Martinz
Tema 4 André Martini Diniz Danilo Elias da Silva
Histórico, exemplos e problemas
Histórico, exemplos e problemas
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)
Redes Bayesianas – Inferência
AULA COMPUTACIONAL - Síntese de Sistemas de Separação (Cap. 7) 20 DE OUTUBRO DE 2008.
Sistemas Especialistas
1 - Equações Diferenciais Ordinárias
Algoritmos de Busca Local
Tópicos Avançados em Inteligência Artificial
Inteligência Artificial
1 A COMPUTAÇÃO MODERNA Valdemar W. Setzer Depto. de Ciência da Computação da USP
Tópicos em Sistemas Inteligentes
Ronaldo Celso Messias Correia –
Construção e Análise de Algoritmos
Fontes de Erros Aula 1 Introdução; Erros em processos numéricos;
Testes de Software AULA 02 Eduardo Silvestri
Busca Combinatorial e Métodos de Heurística
Inteligência Artificial
Seleção de atributos Mariana Pinheiro Bento IA368Q.
PUCC 1 Tópicos em Sistemas Inteligentes. PUCC 2 Agenda - Aula 03 Buscas Agentes que Planejam.
INE Fundamentos de Matemática Discreta para a Computação
1 Introdução aos Agentes Inteligentes Inventando Funções Heurísticas Flávia Barros.
Satisfação de problemas restritos (CSP)
Transformada de Hough Processamento global para a detecção de linhas retas numa imagem Nenhum conhecimento é necessário a respeito da posição das linhas.
Resolução de Problemas de Busca
Busca com Informação e Exploração “Busca heurística”
CES-10 INTRODUÇÃO À COMPUTAÇÃO

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
tópicostópicos itens 01. Terminologia 02. Operações básicas 03. Representação de linguagens 04. Formalização de gramáticas 05. Processo de derivação 06.
Interpretação do Teorema de Herbrand
Algoritmo de Transportes Objecto de Aprendizagem Manuel Pina MarquesDEIG
Ant Colony Optimization Theory Rio de Janeiro 2011 Disciplina: Inteligência de Enxame Docente: José Manoel Seixas Discente: José Dilermando Costa Junior.
1 Algoritmos Genéticos em Otimização de Planejamento l Planejamento ocorre em todas as atividades e envolve: PLANEJAMENTO Recursos Tarefas Tempo Objetivos.
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.
Transcrição da apresentação:

Desenvolvimento de Sistemas Baseados em Conhecimento CSP - Constraint Satisfaction Problems

Motivação Estratégias de busca CSP Cada estado é estado é uma caixa preta Não existe uma estrutura que suporte operações Teste de objetivo, avaliação, função sucessor Heurísticas específicas para cada domínio CSP Estado é definido por variáveis Xi com possíveis valores dentro de um domínio Di Teste é um conjunto de restrições que especificam as combinações de valores possíveis para subconjuntos de variáveis Exemplo de uma simples Linguagem de Representação Formal Permite o uso de algoritmos de propósito geral com mais poder que algoritmos de busca padrão

Definição Formal para um CSP Conjunto de variáveis X1, X2, ..., Xn Conjunto de restrições C1, C2,..., Cm Cada variável X1 tem um domínio Di   de possíveis valores Um estado do problema é definido como uma atribuição de valores para todas as variáveis { xi = vi, xj = vj, ... } Uma atribuição que não viola qualquer restrição é dita consistente Uma atribuição que considera todas as variáveis é dita completa Uma atribuição consistente e completa é dita uma solução

Exemplo 1 – Coloração de mapas Colorir um mapa com três cores, de modo que nenhuma cor seja vizinha a outra Variáveis WA, NT,Q,AS,NSW,V,T Domínios Di = {red,green,blue} Restrições: regiões adjacentes devem ter cores diferentes WANT, WAAS, NTQ,... ou (WA,NT)  {(red,green),(red,blue), (green,red),(green,blue)...}

Exemplo – Coloração de mapas Colorir um mapa com três cores, de modo que nenhuma cor seja vizinha a outra

Gráfico de Restrições CSP Binário: cada restrição está relacionada a no máximo duas variáveis Facilmente representada via um gráfico de restrições Arcos = restrições Nós = variáveis

Tipos de Variáveis Variáveis discretas Variáveis contínuas Domínio finito Exemplo: Coloração de mapas Problema das oito rainhas pode ser modelado com variáveis discretas? Variáveis contínuas Domínios infinitos Exemplo: agendamento das observações do telescópio Hubble Start/end times

Tipos de Restrições Restrições unárias Restrições binárias Envolvem uma simples variável E.g., SA  green Restrições binárias Envolvem pares de variáveis E.g., SA  WA Restrições de alta ordem Envolvem 3 ou mais variáveis E.g., Problemas de cryptarithmetic Preferências (soft-constraints) Restrições que só são obedecidas se for possível (idéia de custo) Vermelho é melhor do que azul

Exemplo: cryptarithmetic Substitua letras por números de forma que a operação esteja correta Variáveis F, T, U, W, R, O, X1, X2, X3 Domínios D = {0,1,2,3,4,5,6,7,8,9} Restrições: alldiff(F,T,U,W,R,O) O+O = R+ 10 . X1 ...

Formulação Utilizando Busca Padrão Vamos iniciar com uma abordagem dump e melhorá-la Estados são definidos como cada possível atribuição Estado inicial: a atribuição vazia, { } Função sucessor: atribui um valor para uma variável não utilizada que não conflita com as atribuições atuais Falha se não existe atribuição possível Teste de objetivo: a atribuição atual é completa Vantagens: Solução solução em profundidade n, sendo n número de variáveis Desvantagem Altamente ineficiente (Dump)

Formulação usando Backtracking Tomar vantagem da característica de comutatividade Atribuição de variávei sem CSP são comutativas [WAred e então NTgreen]  [WAgreen e então NT red]

Formulação usando Backtracking

Formulação usando Backtracking

Formulação usando Backtracking Importância de se escolher uma boa estratégia

Melhorando a Eficiência Métodos de propósito geral podem gerar grandes ganhos em velocidade Qual variável deve ser atribuída em seguinte? Em que ordem os seus valores devem ser atribuídos? É possível detectar falhas previamente? Podemos tomar vantagem da estrutura do problema?

Melhorando a Eficiência Ordem das variáveis Feita de forma estática Minimum Remaining Values (MRV) Escolher variável com o menor conjunto de valores possíveis Próximo melhor variável

Melhorando a Eficiência Característica do MRV Se existe uma variável X com zero valores legais restantes, o MRV irá selecionar X e uma falha será detectada imediatamente. Isso evita buscas “mortas” através de outras variáveis que irão sempre falhar quando X é finalmente selecionado. Considerável ganho, de acordo com a tabela anterior Performance de 3 a 3000 melhor Comparação justa? Não é considerado o custo extra de calcular os valores heurísticos

Melhorando a Eficiência A heurística MRV não ajuda na escolha da primeira região da Austrália a ser colorida No início todas as regiões possuem três cores legais Uso da Degree Heuristic como critério de desempate Seleção da variável envolvida com maior número de constraints sobre outras variáveis não atribuídas 5 constraints

Melhorando a Eficiência Métodos de propósito geral podem gerar grandes ganhos em velocidade Qual variável deve ser atribuída em seguinte? Em que ordem os seus valores devem ser atribuídos? É possível detectar falhas previamente? Podemos tomar vantagem da estrutura do problema?

Melhorando a Eficiência Heurística least-constraining-value Prefere valores que excluem o menor número de escolhas para as variáveis vizinhas no gráfico de restrição Tentar uma máxima flexibilidade para a atribuição de variáveis subsequentes

Melhorando a Eficiência Métodos de propósito geral podem gerar grandes ganhos em velocidade Qual variável deve ser atribuída em seguinte? Em que ordem os seus valores devem ser atribuídos? É possível detectar falhas previamente? Podemos tomar vantagem da estrutura do problema?

Melhorando a Eficiência Até o momento consideramos as constraints sobre variáveis apenas no momento que a variável é escolhida pelo método SELECT-UNASSIGNED-VARIABLE Olhar previamente algumas constraints na busca, ou antes mesmo da busca, pode reduzir dramaticamente o espaço de busca

Melhorando a Eficiência Método FORWARD CHECKING Toda vez que uma variável X é atribuída, o sistema olha cada variável Yi não atribuída que está conectada a X por uma constraint e apaga do domínio de Yi qualquer valor que é inconsistente como valor escolhido para X.

Melhorando a Eficiência Método FORWARD CHECKING

Melhorando a Eficiência Método FORWARD CHECKING

Melhorando a Eficiência Método FORWARD CHECKING

Melhorando a Eficiência Limitações do FORWARD CHECKING Não consegue detectar todas as inconsistências existentes NT e SA não podem ter a cor azul ao mesmo tempo

Melhorando a Eficiência Propagação de Constraints Termo geral para a propagação de implicações de uma constraint sobre uma variável em outras variáveis Neste exemplo é necessário propagar de WA e Q para NT e SA

Melhorando a Eficiência Método ARCO CONSISTÊNCIA (Arc Consistency) Arcos se referem a uma ligação direta no gráfico de restrições Dado o domínio de SA e NSW, o arco é considerado consistente se, para todo valor x de SA, existe algum valor y de NSW que é consistente com x.

Melhorando a Eficiência Método ARCO CONSISTÊNCIA (Arc Consistency) Uma simples forma de propagação é fazer cada arco consistente X arc Y é consistente sss x (x  X)  y (y  Y)

Melhorando a Eficiência Método ARCO CONSISTÊNCIA (Arc Consistency) Lembrar que se um X perde um valor, os seus visinhos precisam ser reavaliados

Melhorando a Eficiência Método ARCO CONSISTÊNCIA (Arc Consistency) Obviamente esta técnica detecta falhas mais cedo do que a forward checking Tecnica pode ser utilizada como um pre-processo ou depois de cada atribuição

Melhorando a Eficiência Método ARCO CONSISTÊNCIA (Arc Consistency)

Melhorando a Eficiência Busca Local para CSP Usam uma formulação de estados completa No estado inicial é atribuído um valor para toda variável A função sucessor modifica o valor de uma variável de cada vez Heurística Min-conflicts: seleciona o valor que resulta em um número mínimo de conflitos com outras variáveis Estado inicial? Função sucessor?

Melhorando a Eficiência Busca Local para CSP Pode ser usada em correções em tempo real quando o problema é modificado Característica muito importante para problemas de scheduling “O schedule de uma companhia aérea pode envolver milhares de vôos e dezenas de milhares de alocações de funcionários, mas um mau tempo em um aeroporto pode tornar o schedule inválido. Um sistema ideal deveria reparar o schedule com o mínimo de modificações. Isto pode ser facilmente feito com um algoritmo de busca local, que tem o seu estado inicial setado como o schedule corrente”

Melhorando a Eficiência Métodos de propósito geral podem gerar grandes ganhos em velocidade Qual variável deve ser atribuída em seguinte? Em que ordem os seus valores devem ser atribuídos? É possível detectar falhas previamente? Podemos tomar vantagem da estrutura do problema?

Melhorando a Eficiência Tirando vantagem da estrutura do problema Tasmania e a parte continental são sub-problemas independentes Facilmente identificável Solução final é a união das sub-soluções Caso muito raro

Melhorando a Eficiência Tirando vantagem da estrutura do problema Na maioria dos casos todos os nós estão conectados Caso mais simples é quando o gráfico de restrições forma uma árvore Qualquer duas variáveis são conectadas no máximo por uma ligação

Melhorando a Eficiência Tirando vantagem da estrutura do problema Algoritmo para uma árvore CSP estruturada 1. Escolha uma variável como root, ordene as variáveis do root para as folhas tal que todo pai do nó 2. Para j de n até 2, aplique REMOVEINCONSISTENT(Parent(Xj),Xj) 3. Para j de 1 até n, atribua Xj consistentemente com Parent(Xj)

Melhorando a Eficiência Árvores quase estruturadas Tentar transformar para estruturadas Algoritmo Instancie todas as variáveis de modo que as variáveis restantes (não instanciadas) virem uma árvore Ajuste os domínios visinhos

Melhorando a Eficiência O valor para SA pode ser escolhido erroneamente Algoritmo geral Escolha um subconjunto de S de VARIABLES[csp] tal que o gráfico de restrições torne-se um árvore depois da remoção de S. S é chamado de “Cycle cutset” Para cada possível atribuição para a variável em S que satisfaça todas as restrições em S Remova do domínio das variáveis restantes qualquer valor que seja inconsistente com a atribuição para S Se o CSP resultante tem uma solução, retorne ele com a atribuição para S

Melhorando a Eficiência Outra abordagem é baseada na construção de uma árvore de decomposição do grafo de restrições em um conjunto de subproblemas conectados Cada solução é trabalhada individualmente e as soluções combinadas

Melhorando a Eficiência A decomposição da árvore deve satisfazer três requisitos Toda variável no problema original aparece no mínimo em um subproblema Se duas variáveis estão conectadas por uma restrição no problema original, elas devem aparecer juntas (com suas restrições) no mínimo em um dos subproblemas Se uma variável aparece em dois subproblemas na árvore, deve haver uma restrição dizendo que o valor de tais variáveis deve ser igual Resolução Se uma dos subproblemas não tem solução, o problema não tem solução Se todos os subproblemas tem solução, tenta-se encontrar uma solução global

Melhorando a Eficiência Resolução (continuação) Resolução global: Considerar cada subproblema como uma mega-variável cujo domínio é o conjunto de todas as soluções para o subproblema Utilizar o algoritmo para árvores anterior, onde as restrições entre subproblemas simplesmente forçam que as soluções para os subproblemas cheguem a um acordo quanto as variáveis compartilhadas Domínio com 6 elementos: e.g. {WA = red, AS = blue, NT = green Única solução possível {AS = blue, NT = green, Q = red}