• Nenhum resultado encontrado

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

N/A
N/A
Protected

Academic year: 2021

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

Copied!
41
0
0

Texto

(1)

Inteligência Artificial (SI 214)

Aula 5

Problemas de Satisfação de

Restrições

Prof. Josenildo Silva

jcsilva@ifma.edu.br

(2)

© 2012 Josenildo Silva (jcsilva@ifma.edu.br)

Este material é derivado dos slides de Hwee Tou Ng, disponível no site do livro AIMA (Russel & Norvig) para professores e instrutores.

(3)

Leitura obrigatória

• Leia o Capítulo 5 do livro AIMA

(4)

Sumário

• Problemas de Restrição de Satisfação (CSP)

• Busca com Backtracking para CSPs • Busca Local para CSPs

(5)

Problemas de Satisfação de

Restrições (CSPs)

• Problema de Busca Padrão:

– estado é uma caixa preta "black box“

– qualquer estrutura que suporte a função sucessor, heuristicas, e teste de objetivo.

• CSP:

– estado é definido por variáveis Xi com valores de um dominio Di

– teste de objetivo é um conjunto de restrições especificando combinações permitidas de valores para as variáveis

• Representa uma linguagem formal de representação

• Permite algorimos úteis de propósito geral com mais poder que algoritmos de busca padrão

(6)

Exemplo: colorir mapa

• Variáveis WA, NT, Q, NSW, V, SA, T

• Dominios Di = {red,green,blue}

• Restrições: regiões adjacentes devem ter cores diferentes

• Ex: WA ≠ NT, or (WA,NT) in

{(red,green),(red,blue),(green,red), (green,blue),(blue,red),(blue,green)}

(7)

Exemplo: colorir mapa

• Soluções são atribuições completas e

consistentes

• Ex: WA = red, NT = green,Q = red,NSW = green,V = red,SA = blue,T = green

(8)

Grafo de Restrições

• CSP Binário: cada restrição relaciona duas váriaveis

• Grafo de restrições representa um CSP Binário:

(9)

Variáveis em CSPs

• Discretas com Domínio Finitos

– n variáveis, tamanho do dominio d

(10)

Variáveis em CSPs (2)

• Discretas com Domínio Infinitos:

– inteiros, strings, etc.

– Ex: escalonamento de tarefas, variaveis são inicio/fim para cada tarefa

– precisa de uma linguagem de restrição, ex: StartJob1 + 5 ≤ StartJob3

(11)

Variáveis em CSPs (3)

• Variáveis Contínuas

– Ex: tempo de inicio/fim para observações com o telescópio Hubble

– restrições lineares são resolvíveis em tempo polinomial com programação linear

(12)

Tipos de Restrições

• Unárias: envolvem uma única variável

– ex. SA ≠ green

• Binárias: envolvem pares de variáveis

– ex. SA ≠ WA

• N-arias (high order): envolvem 3 ou mais variáveis

(13)

Exemplo: Cryptarithmetica

• Variables: F T U W R O X1 X2 X3 • Domains: {0,1,2,3,4,5,6,7,8,9} • Constraints: Alldiff (F, T, U, W, R, O) – O + O = R + 10 · X1 – X1 + W + W = U + 10 · X2 – X2 + T + T = O + 10 · X3 – X3 = F, T ≠ 0, F ≠ 0

(14)
(15)

Problemas Reais de CSPs

• Problemas de Escala

– Ex: quem ministrará qual disciplina?

• Problemas de Horário

– Ex: quando e onde cada disciplina será oferecida?

• Logística de Transporte

• Escalonamento em Fábrica

• Muitos problemas envolvem variáveis com valores reais

(16)

Formulação padrão de busca

(incremental)

• Abordagem básica:

– Estados são definidos pelos valores atribuidos até o momento

– Estado inicial: atribuição vazia { }

– Função Successor: atribui um valor para uma variável não atribuida, sem entrar em conflito com as atribuições existentes

• Falha, caso não haja atribuições legais

(17)

Formulação padrão de busca

(incremental)

• Esta formulação serve para todos os CSPs • Uma solução aparece no nível n com n

variáveis

– Busca em profundidade é uma boa escolha

• O caminho é irrelevante, então pode-se

utilizar uma formulação de estado completo.

– Cada estado é uma atribuição completa

• O número de nodos na árvore de busca é de

(18)

Busca com Backtracking

• Atribuições são comutativas

[ WA = red seguido de NT = green ] é o mesmo que

[ NT = green seguido de WA = red ]

• Considera-se apenas atribuições para uma variável por vez em cada nodo • Com estas suposições, o número de

(19)

Busca com Backtracking

• Busca com bracktracking: busca em

profundidade para CSPs com atribuição a variáveis simples

• É o algoritmo de busca cega mais básico para CSPs

(20)
(21)
(22)
(23)
(24)
(25)

Melhorando a eficiencia da busca

com backtracking

• Métodos de propósito geral podem nos dar grande ganhos em velocidade:

– Qual a próxima variável devemos atribuir? – Em qual ordem os valores devem ser

tentandos?

(26)

Variável Mais Restrita

• A variável mais restrita é que possui menor número de valores legais

• Abordagem também conhecida como

heuristica dos valores remanescentes

(27)

Variável Mais Restrita

• Desempate entre variáveis restritas

(28)

Valor Menos Restritivo

• Dada uma variável, escolha o valor que seja menos restritivo:

– O que descarta menos valores para as variáveis restantes

• Combinando estas duas heurísticas torna possível resolver 1000 queens

(29)

Verificação Adiante

• Ideia:

– Manha registro dos valores legais que ainda podem ser utiliazados para variáveis não atribuídas

– Encerra a busca quando qualquer variável não tem valores legais

(30)

Verificação Adiante

• Ideia:

– Manha registro dos valores legais que ainda podem ser utiliazados para variáveis não atribuídas

– Encerra a busca quando qualquer variável não tem valores legais

(31)

Verificação Adiante

• Ideia:

– Manha registro dos valores legais que ainda podem ser utiliazados para variáveis não atribuídas

– Encerra a busca quando qualquer variável não tem valores legais

(32)

Verificação Adiante

• Ideia:

– Matenha registro dos valores legais que ainda

podem ser utiliazados para variáveis não atribuídas – Encerra a busca quando qualquer variável não tem

(33)

Propagação de Restrições

• Verificação adiante propaga informação das variáveis atribuídas para as não-atribuídas mas não detecta cedo todas as falhas:

• NT e SA não pode ser ambos azuis!

• Propagação de restrição repetidamente reforçam as restrições localmente

(34)

Consistência dos Arcos

• A maneira mais simples de propagação torna cada arco consistente

• X Y é consistente sse para cada valor de x há algum valor permitido de y

(35)

Consistência dos Arcos

• A maneira mais simples de propagação torna cada arco consistente

• X Y é consistente sse para cada valor de x há algum valor permitido de y

(36)

Consistência dos Arcos

• A maneira mais simples de propagação torna cada arco consistente

• X Y é consistente sse para cada valor de x há algum valor permitido de y

(37)

Consistência dos Arcos

• A maneira mais simples de propagação torna cada arco consistente

• X Y é consistente sse para cada valor de x há algum valor permitido de y

(38)

Algoritmo AC-3: consistência de arcos

(39)

Busca Local para CSPs

• Busca local funciona tipicamente com estados "completos", i.e., todas as variáveis atribuidas • Adaptando para CSPs:

– Permitir estados com restrições não satisfeitas – Operadores reatribuem valores

• Seleção de variáveis: selecionar

randomicamente qualquer variável em conflito • Heurística min-conflicts para seleção:

– Escolha a variável que viole menos restrições

(40)

Exemplo: 4-Rainhas

• Estados: 4 rainhas em 4 colunas (256 states) • Ações: mover rainha em uma coluna

• Teste de objetivo: não há ataques

• Avaliação: h(n) = número de ataques

• Dado um estado inicial qualquer, este método pode resolver n-queens quase em tempo constante para valor arbitrário de n com alta probabilidade (ex: n = 10,000,000)

(41)

Resumo

• CSPs são tipo especial de problema:

– estados são definidos por valores de variáveis

– teste de objetivo é definido por restrições nos valores das variáveis

• Backtracking = busca em profundidade com uma variável atribuida por vez

• Verificação adiante previne atribuições que levam a falha futura

• Propagação de restrições ajuda a restringir valores e detectar inconsistencias

Referências

Documentos relacionados

Para as condições estudadas, pode-se concluir que: plantas de minimelancia cultivadas no sistema de calhas preenchidas com substrato de casca de arroz in natura

Com o avanço das indústrias e suas relações de trabalho, a criação de um setor nas organizações que fossem voltados apenas para a relação entre empregado e empregador se tornou

se um algoritmo polinomial existe para qualquer desses problemas, todos os problemas em NP seriam computáveis em tempo polinomial, ou seja, P seria igual a NP. Esses problemas

“Considero bem importante esse serviço prestado pela cooperativa e sempre busco orientação antes de realizar um negócio, escolher a melhor aplicação, fazer empréstimos

Existe uma diferença terminológica nas dificuldades de aprendizagem entre vários autores; para uns, as dificuldades de aprendizagem correspondem a toda e qualquer dificuldade da

Fica estabelecido que no caso de não ser efetuado pela empresa o pagamento dos salários até o quinto dia útil do mês subseqüente ao vencido, bem como do 13º salário e

Figura 14: Distribuição do volume de negócios total do setor agrícola da Baviera por produção e região em 2010 (total = 6,4 mil milhões de euros). Fonte: Bayerischer

Foram utilizados os seguintes descritores para servir de base para a investigação dos MOOCs: massive open online courses, mooc, moocs, moocs + music education, cursos online