Problemas de Satisfa ção de Restrições 03/05/2012 cap5.pdf · obtendo ganhos na busca pela...

26
Problemas de Satisfa Problemas de Satisfa ç ç ão de ão de Restri Restri ç ç ões ões 03/05/2012 03/05/2012 Prof. Prof. a a Claudia Brandelero Rizzi Claudia Brandelero Rizzi [email protected] [email protected] Universidade Estadual do Oeste do Paran Universidade Estadual do Oeste do Paran á á Curso de Bacharelado em Ciência da Computa Curso de Bacharelado em Ciência da Computa ç ç ão ão

Transcript of Problemas de Satisfa ção de Restrições 03/05/2012 cap5.pdf · obtendo ganhos na busca pela...

Problemas de SatisfaProblemas de Satisfaçção de ão de RestriRestriççõesões

03/05/201203/05/2012

Prof.Prof.aa Claudia Brandelero RizziClaudia Brandelero Rizzi

[email protected][email protected]

Universidade Estadual do Oeste do ParanUniversidade Estadual do Oeste do Paranáá

Curso de Bacharelado em Ciência da ComputaCurso de Bacharelado em Ciência da Computaççãoão

Roteiro

� Problemas de Satisfação de Restrições (cap. 5

Russell e Norvig)

� Busca com retrocesso

� Heurísticas para PSR

� Aplicações e exemplo

Problema de Satisfação de Restrições (PSR)� Um Problema de Satisfação de Restrições

� tipo de problema que impõe propriedades estruturais

adicionais à solução a ser encontrada

� há uma demanda mais refinada do que na busca

clássica

� Ex1. ir de Foz ao litoral com no máximo 2 tanques de

combustível e 10 horas de viagem

� Ex2. ir da Unioeste até a Rodoviária sem passar em nenhum

local com fiscalização eletrônica e passando no menor

número possível de semáforos.

Problema de Satisfação de Restrições (PSR)� Podem ser definidos algoritmos de busca que

tiram proveito da estrutura de dados.

� Utilizam heurísticas de uso geral em vez de

heurísticas específicas do problema – geralmente

considerando previamente as consequências do

atendimento a uma restrição.

� No problema de coloração de mapas, por exemplo:

pintar primeiro no mapa a cidade mais restritiva

(aquela tem maior número de conexões com outras).

Problema de Satisfação de Restrições (PSR)Um PSR consiste em:

� Um conjunto de variáveis que podem assumir

valores dentro de um dado domínio.

� Um conjunto de restrições que especificam

propriedades da solução, ou seja, valores que

essas variáveis podem assumir.

Problema de Satisfação de Restrições (PSR) - definições� Estado do problema:

� definidos pelos valores atribuídos para as variáveis

� Atribuição consistente ou válida

� Atribuição que não viola nenhuma restrição

� Estado inicial:

� Todas as variável são não-atribuídas

� Operadores:

� atribuem valores (instanciação) às variáveis (uma

variável por vez)

� Função sucessor:

� Um valor pode ser atribuído a qualquer variável

não-atribuída, desde que ela não entre em conflito

com variáveis atribuídas anteriormente

Problema de Satisfação de

Restrições (PSR)- definições� Teste objetivo:

� A atribuição corrente é aceitável

� Teste de término:

� verifica se todas as variáveis estão instanciadas

obedecendo as restrições do problema

� Solução:

� Atribuição completa que satisfaz a todas as

restrições

� Custo de caminho:

� O custo do caminho do estado inicial até o final.

Problema de Satisfação de Restrições (PSR)

� O conjunto de valores que a variável i pode

assumir é chamado domínio Di

� O domínio pode ser

� discreto (domínio finito): ex: coloração de mapas, 8

rainhas - valores finitos.

� contínuo (domínio infinito): casos em que não é

possível descrever todas as variáveis; ex: a data de

entrega de um trabalho, que pode se modificar

assumindo infinitas datas.

Problema de Satisfação de Restrições (PSR)

� Quanto à aridade, as restrições podem ser:

� Unárias: restringe o valor de uma única variável –

ex.cor verde

� Binárias: relaciona duas variáveis - ex. 8-rainhas

� n-árias: relaciona várias variáveis - ex. palavras

cruzadas

� Quanto à natureza, as restrições podem ser

� Absolutas: não podem ser violadas

� Preferenciais: devem ser satisfeitas quando possível

Problema de Satisfação de Restrições (PSR) - exemplo

� Problema das 8-rainhas

� variáveis: R1, R2, ..., R8.

� valores: possíveis posições do tabuleiro

� restrição binária: duas rainhas não podem estar na

mesma coluna, linha ou diagonal

� solução: valores para os quais a restrição é satisfeita

PSR: Busca com retrocesso

Características

� A expressão busca com retrocesso

(backtrack) é utilizada para indicar uma busca

em profundidade que escolhe valores para uma

variável de cada vez e que efetua o retrocesso

quando uma variável não tem valores válidos

restantes a serem atribuídos.

Problema de Satisfação de Restrições (PSR)

variáveis: A,B,C,D,E,Fdomínio: {red,green, blue}restrições: A ≠ B; A ≠ C; A ≠ E; B ≠ E; B ≠

F; C ≠ E; C ≠ F; D ≠ F; E ≠ F

A B

C

D

E

F

Problema de Satisfação de Restrições (PSR)

variáveis: A,B,C,D,E,Fdomínio: {red,green, blue}restrições: A ≠ B; A ≠ C; A ≠ E; B ≠ E; B ≠

F; C ≠ E; C ≠ F; D ≠ F; E ≠ F

A= red A= green A= blue

A= red

B=green

A= red

B=blue

A= red

B=green

C=blue

Restrição E

backtrack

A B

C

D

E

F

Problema de Satisfação de Restrições (PSR)

variáveis: A,B,C,D,E,Fdomínio: {red,green, blue}restrições: A ≠ B; A ≠ C; A ≠ E; B ≠ E; B ≠

F; C ≠ E; C ≠ F; D ≠ F; E ≠ F

A B

C

D

E

F

A B

C

D

E

F

Passo a passo de outro caso... Variáveis = A, B, C, D, E, FDomínios ={red,green,blue}

A=red

=> B, C, E ={green,blue} (variáveis c/ restrições c/ A)

=> D, F ={red,green,blue}

B=green

=> E = {blue}, F = {red, blue} (variáveis c/ restrições c/ B)

=> C ={green,blue}, D ={red,green,blue}

C = green

=> E ={blue}, F = {red, blue} (rest.c/ C)

=> D = {red,green,blue}

D=red, E=blue, F=??

Backtracking F e D!!

D=green, E=blue, F=red

Propagação de restriçõesExemplo: coloração de mapas

A B

C

D

E

F

Busca com retrocesso para PSR

Melhorias???

� Métodos gerais podem ser melhorados,

obtendo ganhos na busca pela solução

� Que variável poderá ser atribuída a seguir?

� Em que ordem seus valores serão tentados?

� Pode-se detectar falhas inevitáveis

antecipadamente?

Busca com retrocesso para PSR

Melhorias???

� Tentar reduzir o fator de expansão do

espaço de estados

� Como uma heurística pode ser utilizada?

� Ordenando a escolha da variável a instanciar

� Ordenando a escolha do valor a ser associado

a uma variável

Busca com retrocesso para PSR

Melhorias???

� Existem 3 heurísticas para isto...

� variável mais restritiva: variável envolvida no

maior número de restrições é preferida

� variável mais restringida: variável que pode

assumir menos valores é preferida

� valor menos restritivo: valor que deixa mais

liberdade para futuras escolhas

Variável mais restritiva(Variável envolvida no maior número de restrições E=5, F=4...)

variáveis: A,B,C,D,E,Fdomínio: Da=Db...=Df={green,red,blue}restrições: A ≠ B; A ≠ C; A ≠ E; B ≠ E;

B ≠ F; C ≠ E; C ≠ F; D ≠ F; E ≠ F

A B

C

D

E

F

A B

C

D

E

F

Candidatas em ordem de prioridade: E, F, ...resto

E = green

Candidatas: F, ...resto

F = red

Candidatos: A, B, C, D

A= red

Candidatos: B, C, DB= blue

Candidatos: C, DC= blueD = green

SEM BACKTRACK!!

variável mais restringida(variável que pode assumir menos valores)

variáveis: A,B,C,D,E,Fdomínio:Da=Db...=Df={green,red,blue}restrições: A ≠ B; A ≠ C; A ≠ E; B ≠ E;

B ≠ F; C ≠ E; C ≠ F; D ≠ F; E ≠ F

A B

C

D

E

F

A B

C

D

E

F

Candidatas: todas

A=green

Candidatas: B, C, E

B=red

Candidatos: E, F

E=blue

Candidatos: C, F, DC=red

Candidatos: F, DF=green

D=blue ou red

SEM BACKTRACK!!

Começando com

A = green

B = redC=??? red é melhor do queblue

valor menos restritivo(valor que deixa mais liberdade)

A B

C

D

E

F

variáveis: A,B,C,D,E,Fdomínio: Da=Db...=Df={green,red,blue}restrições: A ≠ B; A ≠ C; A ≠ E; B ≠ E; B ≠

F; C ≠ E; C ≠ F; D ≠ F; E ≠ F

CSP iterativo

� CSP pode ser resolvido iterativamente

1) instancia aleatoriamente todas variáveis

2) aplica operadores para trocar os valores e então

diminuir o número de restrições não satisfeitas.

Problema de Satisfação de Restrições (PSR)

PSR aplicado a problemas reais

� Importância prática, sobretudo em tarefas de

� criação (design)

� agendamento (scheduling)

� onde várias soluções existem e é mais fácil dizer o que

não se quer...

� Ex.: O prof. X não pode dar aulas na quarta a tarde

� Ex.: A disciplina Y não pode bater com a disciplina Z

� Estado atual

� Aplicações industriais

� Número crescente de artigos nas principais conferências

Problema de Satisfação de Restrições (PSR)

Exemplo

� 8 Rainhas – trabalho acadêmico

disponibilizado na página.

Sobre o trabalho prático

� Mãos à obra!!

Referências

� RICH, ELAINE, KNIGHT, KEVIN, 1993.

Inteligência Artificial. São Paulo: McGrw-Hill

� RUSSEL, S.; NORVIG, P.; 1995. Inteligência

Artificial. 3. ed. Rio de Janeiro: Campus, 2003.

� RABUSKE, R. Inteligência Artificial.

Florianópolis: Editora da UFSC, 1995.

� GUDWIN, R. Representação e solução de

problemas. São Paulo: Unicamp, sd. (lâminas)

� Lâminas de UFPE