A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Disciplina: Inteligência Artificial

Apresentações semelhantes


Apresentação em tema: "Disciplina: Inteligência Artificial"— Transcrição da apresentação:

1 Disciplina: Inteligência Artificial
Problemas de Satisfação de Restrições Constraint Satisfaction Problems (CSP) Disciplina: Inteligência Artificial CONTEÚDO (1) CSP (Coloração de Mapas) (2) Exercício (3) Problema Real: Alocação de Disciplinas

2 Roteiro da aula de CSP Mini-problema: Coloração do Mapa com CSP
F Mini-problema: Coloração do Mapa com CSP Objetivo: Colorir o mapa com o mínimo de cores; Dois blocos adjacentes não podem ter cores iguais (2) Exercício de compreensão: passagem de moto-taxi Fazer o pagamento da corrida de moto-taxi usando 5 moedas; Uma moeda de 50 centavos ou duas de 25c são obrigatórias; (3) Problema real: alocação de disciplinas Fazer a alocação das disciplinas de um curso; Variáveis possíveis: professores, disciplinas, períodos, laboratórios, salas com data show, professores com restrições de horários, etc

3 (1) Satisfação de Restrições (CSP)
Um Problema de Satisfação de Restrições Constraint Satisfaction Problems (CSP) 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 ex. ir de Recife à Cajazeiras com no máximo 3 tanques de gasolina e 7 horas de viagem Um CSP consistem 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 - valores que essas variáveis podem assumir.

4 (1) CSP: Formulação Estados: Estado inicial: Operadores:
definidos pelos valores possíveis das variáveis Estado inicial: nenhuma variável instanciada ainda Operadores: atribuem valores (instanciação) às variáveis (uma variável por vez) Teste de término: verificar se todas as variáveis estão instanciadas obedecendo as restrições do problema Solução: conjunto dos valores das variáveis instanciadas Custo de caminho: número de passos de atribuição

5 (1) CSP: características das restrições
O conjunto de valores que a variável i pode assumir é chamado domínio Di O domínio pode ser discreto (fabricantes de uma peça do carro) ou contínuo (peso das peças do carro) Quanto à aridade, as restrições podem ser unárias (sobre uma única variável) - ex. B ≠ azul binárias (sobre duas variáveis) - ex. B ≠ C n-árias - ex. palavras cruzadas a restrição unária é um sub-conjunto do domínio, enquanto que a n-ária é um produto cartesiano dos domínios Quanto à natureza, as restrições podem ser absolutas (não podem ser violadas) preferenciais (devem ser satisfeitas quando possível)

6 (1) CSP - Busca cega Funcionamento Análise
estado inicial: variáveis sem atribuição aplica operador: instancia uma variável teste de parada: todas variáveis instanciadas sem violações Análise pode ser implementada com busca em profundidade limitada ( l = número de variáveis) é completa fator de expansão: i |Di| o teste de parada é decomposto em um conjunto de restrições sobre as variáveis

7 (1) CSP-Exemplo: coloração de mapas
Simulação passo a passo... A= verde B = verde C= verde D=verde E=verde F=verde (falha c/ C, E, D) F=vermelho E (falha c/ C,A,B) E=vermelho (falha c/ F) E=azul C (falha c/ A) ... Muito dispendioso variáveis: A,B,C,D,E,F domínio: {verde,vermelho,azul} 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

8 (1) CSP - Backtracking na busca cega
Problema da busca em profundidade perda de tempo pois continua mesmo que uma restrição já tenha sido violada (não se pode mais redimir o erro) Solução: Backtracking depois de realizar uma atribuição, verifica se restrições não são violadas caso haja violação  backtrack

9 (1) CSP-Exemplo: coloração de mapas
Simulação passo a passo... A= verde B = verde (falha c/ A) B=vermelho C=verde (falha c/ A) C= vermelho D=verde E= verde (falha c/ A) E= vermelho (falha c/ B e C) E= azul F=verde (falha c/ D) F=vermelho (falha c/ C) F = azul (falha c/ E) F backtracking E backtracking D=vermelho E=verde (falha c/ A) E= vermelho (falha c/ B) F=verde variáveis: A,B,C,D,E,F domínio: Da=Db...=Df={verde,vermelho,azul} 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

10 (1) CSP-Exemplo: coloração de mapas
Mas poderia ser mais complicado começando por vermelho... A=vermelho B=verde C=azul D=vermelho E= ?? Backtracking D=verde E=?? Backtracking D=azul D= ?? Backtracking C = verde D = verde E = azul F=vermelho variáveis: A,B,C,D,E,F domínio: Da=Db...=Df={verde,vermelho,azul} 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

11 (1) CSP - Backtracking não basta...
Problema do backtracking: Após atribuir um valor a uma variável -> solução impossível Ex.: A=vermelho, B=verde e C=azul. Soluções Verificação de arco-consistência (forward checking) Propagação de restrições

12 (1) CSP - Refinamentos Verificação prévia (forward checking)
idéia: olhar para frente para detectar situações insolúveis Algoritmo: Após cada atribuição, elimina do domínio das variáveis não instanciadas os valores incompatíveis com as atribuições feitas até agora. Se um domínio torna-se vazio, backtrack imediatamente. É bem mais eficiente!

13 (1) CSP - Propagação de restrições
Forward checking é um caso particular de verificação de arco-consistência um estado é arco-consistente se o valor de cada variável é consistente com as restrições sobre esta variável arco-consistência é obtida por sucessivas eliminações de valores inconsistentes Propagação de restrições (constraint propagation) uma conseqüência da verificação de arco-consistência quando um valor é eliminado, outros podem se tornar inconsistentes e terem que ser eliminados também é como uma onda que se propaga: as escolhas ficam cada vez mais restritas

14 (1) CSP - Propagação de restrições
variáveis: A,B,C,D,E,F domínio: Da=Db...=Df={verde,vermelho,azul} restrições: A  B; A  C; A  E; B  E; B  F; C  E; C  F; D  F; E  F Passo a passo... A=vermelho => B, C, E ={verde,azul} (variáveis c/ restrições c/ A) => D, F ={vermelho,verde,azul} B=verde => E = {azul}, F = {vermelho, azul} (variáveis c/ restrições c/ B) => C ={verde,azul}, D ={vermelho,verde,azul} C = verde => E ={azul}, F = {vermelho, azul} (restrições c/ C) => D = {vermelho,verde,azul} D=vermelho, E=azul, F=?? Backtracking F e D!! D=verde, E=azul, F=vermelho A B C D E F A B C D E F

15 (1) CSP - Heurísticas para CSP
Tenta reduzir o fator de expansão do espaço de estados Onde pode entrar uma heurística? Ordenando a escolha da variável a instanciar Ordenando a escolha do valor a ser associado a uma variável 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

16 (1) CSP - Variável mais restritiva (variável envolvida no maior número de restrições)
variáveis: A,B,C,D,E,F domínio: Da=Db...=Df={verde,vermelho,azul} restrições: A  B; A  C; A  E; B  E; B  F; C  E; C  F; D  F; E  F Candidatas1: E(4), F(4), ...resto(3) E = verde Candidatas2: F, ...resto F = vermelho Candidatos3: A, B, C, D A= vermelho Candidato4: B, C, D B= azul Candidatos5: C, D C= azul D = verde SEM BACKTRACK!! A B C D E F A B C D E F 1 em ordem de prioridade

17 (1) CSP - Variável mais restringida (variável que pode assumir menos valores)
variáveis: A,B,C,D,E,F domínio: Da=Db...=Df={verde,vermelho,azul} restrições: A  B; A  C; A  E; B  E; B  F; C  E; C  F; D  F; E  F Candidatas1: todas A={v,v,a},B={v,v,a},C={v,v,a},... A = verde Candidatas2: B={v,a}, C={v,a}, E={v,a}, D={v,v,a}, F={v,v,a} B = vermelho Candidatos3: E={a}, C={v,a}, F={v,a}, D={v,v,a} E=azul Candidatos4: C={v}, F={v}, D={v,v,a} C=vermelho Candidatos5: F={v}, D={v,v,a} F=verde Candidatos6: D={v,a} D = azul ou vermelho SEM BACKTRACK!! A B C D E F A B C D E F

18 (1) CSP - Valor menos restritivo? (valor que deixa mais liberdade)
variáveis: A,B,C,D,E,F domínio: Da=Db...=Df={verde,vermelho,azul} restrições: A  B; A  C; A  E; B  E; B  F; C  E; C  F; D  F; E  F B A Começando com A = verde B = vermelho C=??? vermelho é melhor do que azul C E F D

19 (1) CSP - Conclusão Grande 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... Estado atual Grandes aplicações industriais $$$$ Número crescente de artigos nas principais conferências Observação: a sigla CSP também é usada para falar de Constraint Satisfaction Programming, que é um paradigma de programação

20 (2) Exercício Eu preciso pagar a minha passagem de moto-taxi, que custa 91 centavos. Para pagá-la, eu devo utilizar 5 moedas. O cobrador quer que eu lhe dê uma moeda de 25 centavos ou duas de 10 centavos. Represente isso como um problema de satisfação de restrições e mostre como as heurísticas de propagação de restrições (forward-checking), variável mais restrita eu variável mais restringente agilizam a resolução. Admita que você possui um número infinito de cada moeda.

21 (3) Problema real: Alocação de Disc.
Objetivo: Todo coordenador tem a cansativa tarefa de montar os horários das disciplinas a cada semestre. Formule uma solução para esse problema: usando CSP, lembrando que você deve estabelecer: (1)Variáveis; (2) Domínio e (3) Regras. a lógica de programação usada (independente de linguagem). Admita que a faculdade têm apenas: dois períodos (P1 e P2); dois professores (Fechine e Nilton); duas disciplinas por período (d1_a, d1_b, d2_a, d2_b); Fechine leciona d1_a e d2_a, e Nilton leciona d1_b, d2_b; duas noites de aula por semana, com duas aulas por noite; Fechine não pode ensinar no primeiro horário da segunda; não é permitido que uma mesma disciplina tenha duas aulas por noite.


Carregar ppt "Disciplina: Inteligência Artificial"

Apresentações semelhantes


Anúncios Google