Aula-CSP

25
1 lnteligência Artificial Problemas de Satisfação de Restrições

description

Problemas de solução de restrições

Transcript of Aula-CSP

  • 1lnteligncia Artificial

    Problemas de Satisfao de Restries

  • 2Constraint Satisfaction Problems(CSP)

    Conceitos bsicos

    Busca cega simples e refinada

    Busca heurstica

    CSP iterativo

  • 3Constraint Satisfaction Problems (CSP) Um Problema de Satisfao de Restries

    tipo de problema que impe propriedades estruturais adicionais soluo a ser encontrada

    h uma demanda mais refinada do que na busca clssica ex. ir de Recife Cajazeiras com no mximo 3

    tanques de gasolina e 7 horas de viagem

    Um CSP consiste em:1. um conjunto de variveis que podem assumir

    valores dentro de um dado domnio2. um conjunto de restries que especificam

    propriedades da soluo valores que essas variveis podem assumir.

  • 4Constraint Satisfaction Problems (CSP)Formulao: Estados: definidos pelos valores possveis das variveis Estado inicial: nenhuma varivel instanciada Operadores: atribuem valores (instanciao) s

    variveisUma varivel por vez

    Teste de trmino: verificar se todas as variveis esto instanciadas obedecendo as restries do problema

    Soluo: conjunto dos valores das variveis instanciadas

    Custo de caminho: nmero de passos de atribuio

  • 5CSP: caractersticas das restries O conjunto de valores que a varivel i pode assumir

    chamado domnio Di O domnio pode ser discreto (fabricantes de uma pea do

    carro) ou contnuo (peso das peas do carro) Quanto aridade, as restries podem ser

    unrias (sobre uma nica varivel) binrias (sobre duas variveis) n-rias( a restrio unria um sub-conjunto do domnio, enquanto

    que a n-ria um produto cartesiano dos domnios) Quanto natureza, as restries podem ser

    absolutas (no podem ser violadas) preferenciais (devem ser satisfeitas quando possvel)

  • 6ExemploProblema das 8-rainhas

    variveis: localizao das rainhas (coluna, linha) valores: possveis posies do tabuleiro restrio binria: duas rainhas no podem estar

    na mesma coluna, linha ou diagonal soluo: valores para os quais a restrio

    satisfeita

  • 7Busca Cega com Retrocesso para CSP Funcionamento

    estado inicial: variveis sem atribuio aplica operador: instancia uma varivel teste de parada: todas variveis instanciadas sem violaes

    Retrocesso (Backtracking) depois de realizar uma atribuio, verifica se restries no so

    violadas caso haja violao retrocede

    Anlise pode ser busca em profundidade limitada ( l = nmero de

    variveis) completa fator de ramificao mxima: max(|Di|), expanso total: i (|Di|) o teste de parada decomposto em um conjunto de restries

    sobre as variveis

  • 8Exemplo: colorao de mapasvariveis: A,B,C,D,E,Fdomnio: Da=Db...=Df={green,red,blue}restries: A B; A C; A E; B E; B F;

    C E; C F; D F; E F

    A B

    C

    D

    E

    F

    Solucionar usando busca em profundidade limitada com l=6.

  • 9A=g, B=C=D=E=F=x

    A=g, B=g, C=D=E=F=xFalha!

    A=g, B=r, C=D=E=F=x

    A=g, B=r, C=g, D=E=F=xFalha!

    A=g, B=r, C=r, D=E=F=x

    A=g, B=r, C=r, D=g, E=F=x

    A=g, B=r, C=r, D=g, E=g, F=xFalha!

    A=g, B=r, C=r, D=g, E=r, F=xFalha!

    A=g, B=r, C=r, D=g, E=b, F=xFalha!

    . . .

    retrocesso

    rvore de Busca

  • 10

    Simulao A B C D E F

    gr

    b

    A B C D E Fgr

    b

    A B C D E Fgr

    b

    A B C D E Fgr

    b

    A B C D E Fgr

    b

    A B C D E Fgr

    b

    A B C D E Fgr

    b

    A B C D E Fgr

    b

    A B C D E Fgr

    b. . .

  • 11

    1. A= green2. B = green (falha c/ A)3. B=red4. C=green (falha c/ A)5. C= red6. D=green7. E= green (falha c/ A)8. E= red (falha c/ B)9. E= blue10. F=green (falha c/ D)11. F=red (falha c/ B)12. F = blue (falha c/ E) 13. E (falha) 14. D=red15. E=green (falha c/ A)16. E= red (falha c/ B)17. E= blue18. F=green

    Exemplo: colorao de mapas

    variveis: A,B,C,D,E,Fdomnio: Da=Db...=Df={green,red,blue}restries: A B; A C; A E; B E;

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

    A BC

    DE

    F

    Simulando passo a passo:

    A B

    DFE

    C

  • 12

    Exemplo: colorao de mapasvariveis: A,B,C,D,E,Fdomnio: Da=Db...=Df={red, green, blue}restries: A B; A C; A E; B E; B F;

    C E; C F; D F; E F

    A B

    C

    D

    E

    F

    Solucionar usando busca em profundidade limitada com l=6.

    Nova ordem, novo resultado

  • 13

    A=redB=greenC=blueD=redE= ?? BacktrackingD=greenE=?? BacktrackingD=blueE=?? BacktrackingD= ?? BacktrackingC = greenD = greenE = blueF=red

    Exemplo: colorao de mapas

    A BC

    DE

    F

    variveis: A,B,C,D,E,Fdomnio: Da=Db...=Df={red, green, blue}restries: A B; A C; A E; B E;

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

    Mas poderia comear por red e fazer outra forma de seleo de valores no domnio ...

    A BC

    DE

    FMais retrocessos!!

  • 14

    Backtracking no basta... Problema do backtracking:

    no adianta mexer na 7a. rainha para poder posicionar a ltima.

    O problema mais em cima... O backtracknormalmente tem que ser de mais de um passo

    Solues: Verificao prvia (forward checking) Propagao de restries

  • 15

    Verificao Prvia Verificao prvia (forward checking)

    idia: olhar para frente para detectar situaes insolveis

    Algoritmo: Aps cada atribuio, eliminar do domnio das

    variveis no instanciadas os valores incompatveis com as atribuies feitas at agora.

    Se um domnio torna-se vazio, retrocede imediatamente.

    bem mais eficiente!

  • 16

    Exemplo: colorao de mapasvariveis: A,B,C,D,E,Fdomnio: Da=Db...=Df={green, red, blue}restries: A B; A C; A E; B E; B F;

    C E; C F; D F; E F

    A B

    C

    D

    E

    F

    Solucionar usando busca em profundidade limitada com l=6 e verificao prvia.

  • 17

    1. A= green B,C,E={r,b}, D,F={g,r,b}

    2. B=red C={r,b}, D={g,r,b}, E={b}, F={g,b}

    3. C= red D={g,r,b}, E={b}, F={g,b}

    4. D=green E={b}, F={b}5. E= blue F=?? backtracking6. E=?? Backtracking7. D=red E={b}, F={g,b}8. E= blue F={g}9. F=green

    Exemplo: colorao de mapasvariveis: A,B,C,D,E,Fdomnio: Da=Db...=Df={green,red,blue}restries: A B; A C; A E; B E;

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

    Simulando passo a passo:

    A B

    DF

    E

    C

  • 18

    Propagao de restries

    Propagao de restries (constraintpropagation)

    uma conseqncia da verificao prvia quando um valor eliminado, isto propagado

    para outros valores que dele dependem, podendo torn-los inconsistentes e eliminados tambm

    como uma onda que se propaga: as escolhas ficam cada vez mais restritas

  • 19

    Exemplo: colorao de mapasvariveis: A,B,C,D,E,Fdomnio: Da=Db...=Df={green, red, blue}restries: A B; A C; A E; B E; B F;

    C E; C F; D F; E F

    A B

    C

    D

    E

    F

    Solucionar usando busca em profundidade limitada com l=6 e verificao prvia combinada com propagao de restries

  • 20

    1. A= green B,C,E={r,b}, D,F={g,r,b}

    2. B=red C={r,b}, D={g,r,b}, E={b}, F={g,b} C={r}, F={g} D={r,b}

    3. C= red D={r,b}, E={b}, F={g}

    4. D=red E={b}, F={g}5. E= blue6. F=green

    Sem retrocesso!

    Exemplo: colorao de mapasvariveis: A,B,C,D,E,Fdomnio: Da=Db...=Df={green,red,blue}restries: A B; A C; A E; B E;

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

    Simulando passo a passo:

    A B

    DF

    E

    C

  • 21

    Heursticas para CSP Tenta reduzir o fator de expanso do espao de estados

    Onde pode entrar uma heurstica? Ordenando a escolha da varivel a instanciar Ordenando a escolha do valor a ser associado a uma varivel

    Existem 3 heursticas para isto... Varivel mais restritiva: varivel envolvida no maior nmero

    de restries preferida (verifica restries) Varivel mais restringida: varivel que pode assumir menos

    valores preferida (verifica os domnios das variveis) Valor menos restritivo: valor que deixa mais liberdade para

    futuras escolhas (verifica os valores dos domnios e as restries)

  • 22

    Varivel mais restritiva(varivel envolvida no maior nmero de restries)

    variveis: A,B,C,D,E,Fdomnio: Da=Db...=Df={green,red,blue}restries: A B; A C; A E; B E;

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

    A BC

    DE

    F

    A BC

    DE

    F

    Candidatas1: E, F, ...restoE = green

    Candidatas: F, ...restoF = red

    Candidatas: A, B, C, DA= red

    Candidatas: B, C, DB= blue

    Candidatas: C, DC= blueD = green

    SEM BACKTRACK!!

    1 em ordem de prioridade (4, 4, 3, 3, 3, 1)

  • 23

    Colorao de mapas: varivel mais restringida(varivel que pode assumir menos valores)

    variveis: A,B,C,D,E,Fdomnio: Da=Db...=Df={green,red,blue}restries: A B; A C; A E; B E;

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

    A BC

    DE

    F

    A BC

    DE

    F

    Candidatas: todasA = green

    Candidatas: B(rb), C(rb), E(rb), ...B = red

    Candidatas: E(b), C(rb), F(gb), ...E=blue

    Candidatas: C(r), F(g), D...C=red

    Candidatas: F(g), D(rgb)F=greenD = red ou blue

    SEM BACKTRACK!!

  • 24

    Colorao de mapas: valor menos restritivo(valor que deixa mais liberdade)

    variveis: A,B,C,D,E,Fdomnio: Da=Db...=Df={green,red,blue}restries: A B; A C; A E; B E; B F;

    C E; C F; D F; E F1. A = green B(br), C(br), D(grb), E(br), F(grb)2. B=r ou B=b poda liberdade igualmente faz escolha na ordemB = red C(rb), D(grb), E(b), F(gb) 3. C=r: D(grb), E(b), F(gb); C=b: D(grb), E( ), F(g) escolhe C=rC= red D(grb), E(b), F(gb)4. D=g: E(b), F(b); D=r: E(b), F(gb); D=b: E(b), F(g) escolhe D=rD = red E(b), F(gb)5. E= blue F(g)6. F=green

    SEM BACKTRACK!!

    A BC

    DE

    F

    A BC

    DE

    F

  • 25

    CSP concluses Grande importncia prtica, sobretudo em tarefas de

    Criao, projeto (design) Agendamento (scheduling) onde vrias solues existem e mais fcil dizer o que no

    se quer...

    Estado atual Grandes aplicaes industriais $$$$ Nmero crescente de artigos nas principais conferncias

    Observao: a sigla CSP tambm usada para falar de Constraint

    Satisfaction Programmimg, que um paradigma de programao