Problemas de Satisfação de Restrições



Documentos relacionados
Satisfação de Restrições. Capítulo 5 (disponível online)

Problemas de Satisfação de Restrições

IA: Problemas de Satisfação de Restrições. Prof. Msc. Ricardo Britto DIE-UFPI

Projeto e Análise de Algoritmos Projeto de Algoritmos Tentativa e Erro. Prof. Humberto Brandão humberto@bcc.unifal-mg.edu.br

Satisfação de Restrições. Capítulo 5 (disponível online)

Inteligência Artificial Prof. Marcos Quinet Pólo Universitário de Rio das Ostras PURO Universidade Federal Fluminense UFF

Inteligência Artificial. Prof. Tiago A. E. Ferreira Aula 11 Problemas com Satisfação de Vínculos

Projeto e Análise de Algoritmos Projeto de Algoritmos Tentativa e Erro Parte 2. Prof. Humberto Brandão humberto@bcc.unifal-mg.edu.

Inteligência Artificial (SI 214) Aula 5 Problemas de Satisfação de Restrições

MÉTODOS DE RESOLUÇÃO DE PROBLEMAS EM IA. Busca em espaço de estados. Estados e Operadores. Jogo dos 8. Sumário. Exemplo: jogo dos 8

Solução de problemas por meio de busca (com Python) Luis Martí DEE/PUC-Rio

Projeto e Análise de Algoritmos Projeto de Algoritmos Introdução. Prof. Humberto Brandão humberto@dcc.ufmg.br

Jorge Figueiredo, DSC/UFCG. Análise e Técnicas de Algoritmos Jorge Figueiredo, DSC/UFCG. Análise e Técnicas de Algoritmos 2005.

Respostas dos Exercícios Cap. 2 Russell & Norvig

Sistemas Inteligentes Lista de Exercícios sobre Busca

Análise e Complexidade de Algoritmos

Faculdade Alagoana de Administração FAA Ciência da Computação. (Resolução de Problemas em) Espaço de Estados

Resolução de Problemas Com Procura. Capítulo 3

Diagrama de transição de Estados (DTE)

a 1 x a n x n = b,

CTC-17 Inteligência Artificial Problemas de Busca. Prof. Paulo André Castro

Geração de código intermediário. Novembro 2006

Análise de complexidade

GESTÃO de PROJECTOS. Gestor de Projectos Informáticos. Luís Manuel Borges Gouveia 1

Busca em Espaço de Estados

CAP. I ERROS EM CÁLCULO NUMÉRICO

Aula 20. Roteamento em Redes de Dados. Eytan Modiano MIT

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas

Lista 2 - Modelos determinísticos

Resolução de problemas por meio de busca. Capítulo 3 Russell & Norvig Seções 3.1, 3.2 e 3.3

4 O Workflow e a Máquina de Regras

Recursos. Um recurso é ou um dispositivo físico (dedicado) do hardware, ou Solicitar o recurso: esperar pelo recurso, até obtê-lo.

Inteligência Artificial

AULA 6 LÓGICA DOS CONJUNTOS

Inteligência Artificial

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

Computação Paralela. Desenvolvimento de Aplicações Paralelas João Luís Ferreira Sobral Departamento do Informática Universidade do Minho.

Casos de teste semânticos. Casos de teste valorados. Determinar resultados esperados. Gerar script de teste automatizado.

Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri. Banco de Dados Processamento e Otimização de Consultas

01/05/2016. Danillo Tourinho Sancho da Silva, MSc ROTEIRIZAÇÃO TEORIA DOS GRAFOS MOTIVAÇÃO

Faculdade de Engenharia Optimização. Prof. Doutor Engº Jorge Nhambiu

Feature-Driven Development

Resolução de Problemas

Linguagem algorítmica: Portugol

Geração de código. Ivan Ricarte INTRODUÇÃO À COMPILAÇÃO

Projeto de Sistemas I

APLICAÇÕES DA DERIVADA

IA: Busca Competitiva. Ricardo Britto DIE-UFPI

Aula 9 ESCALA GRÁFICA. Antônio Carlos Campos

Utilização do SOLVER do EXCEL

O que queremos. Processamento Estatístico da Linguagem Natural. Parsing Morfológico. Regras Simples. Adicionando palavras. Regras Derivacionais

Aula 03 - Modelagem em PPLIM

Dificuldades de Modelos de PNL. Onde está a solução ótima? Outro exemplo: Condição ótima Local vs. Global Quinta-feira, 25 de abril

Introdução à Programação

Pipeline. Todos os estágios devem estar prontos ao mesmo tempo para prosseguir.

Detecção e Rastreamento de Objetos coloridos em vídeo utilizando o OpenCV

UNIVERSIDADE DO OESTE DE SANTA CATARINA CAMPUS DE SÃO MIGUEL DO OESTE

PPD: Balanceamento de Carga e Scheduling 2

ALGORITMOS. Supervisão: Prof. Dr.º Denivaldo Lopes

Teste de Software. Profa. Cátia dos Reis Machado

SAD orientado a MODELO

5COP096 TeoriadaComputação

INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO

O que é a estatística?

Manejo Florestal Sustentável: Dificuldade Computacional e Otimização de Processos

Sistema de HelpDesk da SESAU Guia do Usuário

ALGORITMOS E FLUXOGRAMAS

Linguagem Lógica Prolog

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

Processamento de Imagem. Prof. MSc. André Yoshimi Kusumoto

CONCURSO PÚBLICO ANALISTA DE SISTEMA ÊNFASE GOVERNANÇA DE TI ANALISTA DE GESTÃO RESPOSTAS ESPERADAS PRELIMINARES

Sistemas especialistas

1. Introdução 2. Representação de números 2.1. Conversão Numérica 2.2. Aritmética de ponto flutuante 3. Erros 3.1 Erros Absolutos e Relativos

Pesquisa Operacional Programação em Redes

Fluxo de trabalho do Capture Pro Software: Indexação de OCR e separação de documentos de código de correção

ESTRUTURAS DE DADOS II

Resolução de problemas e desenvolvimento de algoritmos

Base de dados I. Uma base de dados é um simples repositório de informação relacionado com um determinado assunto ou finalidade

Métodos de Desenvolvimento de Software. Aula 1: Introdução

AULA TEÓRICA 10 Tema 9. Introdução à programação. Desenho de Algoritmos

Projetos. Universidade Federal do Espírito Santo - UFES. Mestrado em Informática 2004/1. O Projeto. 1. Introdução. 2.

Especificação Operacional.

Processamento e Otimização de Consultas

Cálculo Numérico. ECA / 4 créditos / 60 h Introdução, Erros e Matlab. Ricardo Antonello.

Técnicas de Teste de Software

PLANIFICAÇÃO MODULAR

Jogos vs. Problemas de Procura

Complexidade de Algoritmos. Edson Prestes

3 Sistemas de Numeração:

Engenharia de Software

Tarefa Orientada 6 Edição de Dados

computador-cálculo numérico perfeita. As fases na resolução de um problema real podem, de modo geral, ser colocadas na seguinte ordem:

CAP 254 CAP 254. Otimização Combinatória. Professor: Dr. L.A.N. Lorena. Assunto: Metaheurísticas Antonio Augusto Chaves

Árvores de Suporte de Custo Mínimo

SUMÁRIO Acesso ao sistema... 2 Atendente... 3

Transcrição:

Computação Inteligente Problemas de Satisfação de Restrições Lucas Augusto Carvalho Mestrado em Ciência da Computação 2011.1 DCOMP - Universidade Federal de Sergipe 1

Conteúdo Problemas de Satisfação de Restrições (CSPs) Procura com Retrocesso para CSPs Ordenação de variáveis e de valores Propagação de informação nas restrições Procura Local para CSPs Estrutura dos CSPs 2

Problemas de Satisfação de Restrições Problema de Procura Tradicional: CSP: estado é uma caixa preta qualquer estrutura de dados que suporte função sucessores, função heurística, e teste objetivo estado é definido por variáveis Xi com valores do domínio Di Teste objetivo é um conjunto de restrições que especificam combinações possíveis de valores para subconjuntos de variáveis Verificar se restrições C1, C2,..., Cm são satisfeitas 3

Problemas de Satisfação de Restrições Possível utilização de algoritmos genéricos mais poderosos do que os tradicionais algoritmos de procura 4

Exemplo: Coloração de Mapa Variáveis WA, NT, Q, NSW, V, SA, T Domínios Di = {vermelho, verde, azul} Restrições: regiões adjacentes com cores diferentes e.g., WA NT, ou (WA,NT) = {(vermelho,verde), (vermelho,azul), (verde,vermelho), (verde,azul), (azul,vermelho), (azul,verde)} 5

Exemplo: Coloração de Mapa 6

Exemplo: Coloração de Mapa Soluções são atribuições completas e consistentes. e.g., WA = vermelho, NT = verde, Q = vermelho, NSW = verde, V = vermelho, SA = azul, T = verde 7

Grafo de Restrições CSP binário: cada restrição relaciona duas variáveis Grafo de restrições: nós são variáveis, arcos são restrições 8

Tipo de Variáveis Variáveis discretas Domínios finitos: n variáveis e tam(domínio) = d O(d^n) atribuições completas Ex: coloração de mapas [tam(dominio) = 3] Domínios infinitos: valores inteiros, strings, etc. Ex: job scheduling, variáveis são inicio/fim de dias para cada atividade Necessário uma linguagem de restrição, ex: StartJob1 + 5 StartJob3 Não dá para enumerar todas as combinações de valores possíveis 9

Tipo de Variáveis Variáveis contínuas e.g., hora de início e fim de observações do Telescópio Hubble 10

Tipos de Restrições Restrições Unárias: envolvem uma única 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., quebra-cabeças criptoaritmético 11

Tipo de Restrições Restrições globais: envolvem várias variáveis e.g. AllDiff Restrições absolutas (não podem ser violadas) ex: AO TN Restrições preferenciais (devem ser satisfeitas quando possível) ex: problema de elaboração de horários 12

Tipo de Restrições Todas as restrições de ordem superior para domínios finitos podem ser convertidas em restrições binárias usando variáveis auxiliares 13

Exemplo: QB Criptoaritmético Variáveis: F T U W R O X1 X2 X3 Domínio: {0,1,2,3,4,5,6,7,8,9} Restrições: (1) Alldiff (F,T,U,W,R,O) (2) O + O = R + 10 X1 (3) X1 + W + W = U + 10 X2 (4) X2 + T + T = O + 10 X3 (5) X3 = F, T 0, F 0 Cada letra do problema representa um dígito diferente; últimos dígitos (F e T) têm de ser diferentes de zero. 14

Classes de Problemas Problemas de satisfatibilidade O objetivo é encontrar uma associação de valores para as variáveis que satisfaça algumas restrições Exemplos: Criptoaritmética, n-rainhas, coloração de mapas Problemas de otimização Cada associação de um valor para cada variável tem um custo O objetivo é encontrar uma associação com o menor custo (associação ótima) Exemplo: Elaboração de horário de aula 15

Relacionamento com Busca O caminho até o objetivo não é importante, somente a solução Não existe um nó inicial pré-definido Frequentemente estes problemas são grandes, com centenas de variáveis Explorar sistematicamente o espaço de estados pode ser inviável Para problemas de otimização não existem nós objetivos bem definidos 16

Formulação como Busca Estados são definidos por valores atribuídos Formulação do problema: Estado inicial: { } --- variáveis sem valores atribuídas Função sucessor: um valor é atribuído à variável sem gerar conflitos Teste de objetivo: conjunto de atribuições está completo 17

Formulação como Busca Considerando Busca em Largura (sem heurística):... Fator b na raiz = n*d Fator b seguinte = (n-1)*d Quantas folhas possui a árvore? n!*d^n folhas ainda que existam apenas d^n atribuições completas 18

Busca com Backtracking Propriedade ignorada: artibuições à variáveis são comutativas [WA=red e NT=green] <==> [NT=green e WA=red] logo, considerar apenas uma única variável em cada nó b = d ==> d^n folhas Busca com Backtrack = Busca em profundidade para CSPs com única atribuição de variável por nível Algoritmo de busca básico para CSPs Soluciona 8-rainhas com profundidade 25 19

Exemplo: busca com Backtracking 20

Exemplo: busca com Backtracking 21

Exemplo: busca com Backtracking 22

Exemplo: busca com Backtracking 23

Melhorando a eficiência Uso de heurísticas: Qual a próxima variável a ser considerada? Em que ordem os valores do domínio devem ser atribuídos? Podemos prever uma falha inevitável? 24

Heurística 1 Escolher sempre a variável com menor número de valores possíveis (mais restrita): MRV (Minimum Remaining Values) 25

Heurística 2 - MRV não ajuda na escolha da primeira variável; - Escolher a variável com maior número de restrições para as outras variáveis: Degree Heuristics; - South Australia é adjacente a todas as outras regiões! 26

Heurística 3 - Em que ordem os valores do domínio devem ser atribuídos? - Dada uma variável, escolha o valor menos restritivo para as próximas: Least-constrainingvalue 27

Heurística 4 Reduzir o espaço de busca durante a busca ou antes mesmo dela ter início Heurística Forward checking: - Guarda valores possíveis remanescentes para variáveis sem atribuições ainda - Busca finaliza quando não existem mais valores possíveis para qualquer variável Forward checking = verificação posterior/olharem-frente 28

Heurística 4 29

Heurística 4 30

Heurística 4 31

Heurística 4 32

Heurística 4 Propagação de restrições verifica restrições localmente. 33

Heurística 5 - Do Inglês arc consistency - Forma mais simples de propagação assegura consistência de arcos e.g. arco entre X e Y X Y é consistente sse para todos os valores x em X existe algum valor possível y em Y Y X é consistente sse para todos os valores y em Y existe algum valor possível x em X 34

Heurística 5 35

Heurística 5 Se X perde um valor, vizinhos devem ser checados novamente 36

Heurística 5 Detecta falha mais cedo do que Forward Cheking Pode ser executado como um preprocessador da busca 37

Retrocesso Inteligente - Retrocesso com salto: Q = vermelho, NSW = verde, V = azul, T = vermelho, SA = conflito! - Retrocesso alterar valor de T T não foi responsável pelo conflito Conjunto de conflito {Q,NSW,V} retroceder inteligentemente para a variável que causou o conflito e foi atribuída mais recentemente, i.e. V - Forward checking faz o mesmo 38

Retrocesso Inteligente Retrocesso com salto dirigido ao conflito: WA = vermelho, NSW = vermelho, T = vermelho - Atribuir NT, Q, V, SA não existe nenhuma atribuição consistente - Conjunto de conflito não resolve o problema porque NT não está diretamente relacionada com WA e NSW - Conjunto de conflito tem de ir para além de relações diretas 39

Retrocesso Inteligente O retrocesso inteligente não evita que o mesmo conflito venha a aparecer novamente em outro ramo da árvore, e.g. T = vermelho, WA = vermelho, NSW = vermelho T = azul, WA = vermelho, NSW = vermelho Repetição de erros pode ser evitada com aprendizagem! Adicionar uma restrição que não permita que volte a acontecer WA = vermelho NSW = vermelho WA vermelho NSW vermelho 40

Procura Local Usar algoritmos que usam estados completos, i.e. todas as variáveis atribuídas Para aplicar procura local a CSPs: Permitir estados em que não são satisfeitas todas as restrições Transições entre estados consiste na re-atribuição de valores a variáveis Ordenação de variáveis: selecionar aleatoriamente qualquer variável para a qual exista um conflito Seleção de valores com a heurística menor número de conflitos (min-conflicts): Escolher valor que viola o menor número de restrições Se existirem vários valores nestas condições escolher um deles aleatoriamente 41

Exemplo: 4 rainhas Estado: 4 rainhas em 4 colunas (4^4 = 256 estados) Ações: mover rainhas nas colunas Teste objetivo: não há ataques Função de Avaliação: h(n) = número de ataques 42

Procura Local x Backtracking Vantagens Encontra soluções para problemas de grandes dimensões (10.000.000 rainhas) Tempo de execução da heurística do menor número de conflitos está pouco dependente da dimensão do domínio Desvantagens Não permite provar que não há solução porque não mantém um registo dos estados já visitados 43

Estrutura de Problemas - A estrutura de um problema, obtida através da representação em grafo, pode ser usada para facilitar a resolução do problema - É importante detectar sub-problemas: melhorias no desempenho Que decisões afetam outras decisões? E.g. não existe nenhuma relação entre Tasmânia e as outras regiões 44

Estrutura em Árvores Teorema: se um CSP não tem ciclos, então pode ser resolvido em tempo O(nd^2) em vez de O(d^n) Tipicamente um CSP que tem uma estrutura em 45 árvore pode ser resolvido em tempo linear no número de variáveis

Aproximação para Árvores - Podemos transformar um CSP numa estrutura em árvore adaptando o problema: remoção e colapsagem de nós - Remoção de nós: atribuir valores a algumas variáveis t.q. variáveis não atribuídas formem uma árvore Compensa se o número de variáveis a atribuir é pequeno Identificar estas variáveis é NP-difícil! uso de aproximações E.g. atribuir SA 46

Aproximação para Árvores Colapsagem de nós - Problema resultante é uma árvore cujos nós são sub- Problemas - Cada sub-problema é resolvido Separadamente - Soluções resultantes são combinadas 47

Conclusões - CSPs são um tipo especial de problemas: - Estados definidos por valores atribuídos a um conjunto específico de variáveis - Teste objectivo definido a partir de restrições nos valores das variáveis - Retrocesso = procura em profundidade primeiro com uma variável atribuída por cada nó - Ordenação de variáveis e seleção de valores é importante 48

Conclusões - Forward checking evita atribuições que garantidamente levarão a conflitos no futuro - Propagação de restrições (e.g. consistência de arcos) detecta inconsistências adicionais - Procura local + h. menor número de conflitos é eficiente - Conhecimento da estrutura do problema pode melhorar desempenho 49