101
1 Programação por Restrições Pedro Barahona

1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

Embed Size (px)

Citation preview

Page 1: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

1

Programação por Restrições

Pedro Barahona

Page 2: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

2

Restrições - O que são• Intuitivamente são limitações aos possíveis

valores que as variáveis de um problema podem tomar dentro de um certo domínio.

• Um problema de satisfação de restrições pode ser especificado por um tuplo < V, D, R > em que– V: é o conjunto de variáveis usadas na

modelação do problema– D: é o domínio(s) em que as variáveis de V

podem tomar valores– R: é o conjunto de restrições que afectam as

variáveis V

Page 3: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

3

Restrições - Exemplos• Planeamento de testes em circuitos digitais

– Para detecção de avarias– Para distinção de avarias

• Gestão de Tráfego em Redes• Gestão da Produção• Sequenciação de Tarefas (Scheduling)• Geração de Horários• Caixeiro Viajante

– Simples ou Multiplo• “Colocação” ou “preenchimento”

– 2D: corte de peças (tecido, tábuas, etc...)– 3D: prenchimento de contentores

Page 4: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

4

Restrições - Circuitos digitais• Planeamento de testes para detecção de

avarias• Objectivo: Determinar um padrão de

entrada que permita detectar se uma “gate” está avariada.

• Variáveis: modelam o valor do nível eléctrico (high/low) nos vários “fios” do circuito

• Domínio: Booleanos: 0/1.• Restrições: Restrições de igualdade entre o

sinal de saída e o esperado pelo funcionamento das “gates”

Page 5: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

5

Restrições - Circuitos digitaisA

C

D

B

E

F

G

H

I

G1

G2

G3

G4

G5

• E = A+B+A·B % E = or(A,B) • F = 1+ B·C % F = nand(B,C) • G = C·D % G = nand(B,C) • H = 1+E·F % H = nand(E,F) • I = 1+F·G % H = nand(E,F)

Page 6: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

6

Restrições - Gestão de Produção• Determinação de quantidades ideais de

items a produzir

• Objectivo: Determinar a quantidade de items que deve compor um plano de produção

• Variáveis: modelam o número de exemplares de cada preduto

• Domínio: Inteiros / Reais não negativos.• Restrições: Limites dos recursos existentes,

restrições sobre o plano produzido

Page 7: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

7

Restrições - Gestão de Produção

Limites dos recursos existentesa1j X1 + a2jX2 + a3jX3 + .... ≤ Ri

Restrições sobre o plano produzido

X1 + X2 ≥ X3

X4 = X5

Page 8: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

8

Restrições - Gestão de Redes• Determinação do tráfego em redes de

telecomunicações (ou de transporte de água).

• Objectivo: Determinar a quantidade de informação que flui em cada um dos troços de uma rede de comunicações

• Variáveis: modelam o fluxo num troço• Domínio: Reais não negativos.• Restrições: Limites de capacidade dos troços,

não perda de informação nos vários nós

Page 9: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

9

Restrições - Gestão de Redes

• Restrições de Capacidade Xab ≤ 15

• Restrições de não perda de informaçãoXab+Xbd = Xbc

A

B

C

E

G

FZ

H

D

I4

2315

Page 10: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

10

Restrições - Escalonamento de Tarefas

• Precedência entre tarefasJ11 + D11 ≤ J12

• Não sobreposição de tarefasMi ≠ Mj Jij + Dij ≤ Jkl Jkl + Dkl ≤ Jij

J 1

J 2

J 3

J 4

1 2 3

1 2 3

1 2 3

1 2 3

Page 11: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

11

Restrições - Horários• Determinação de horários (p.ex. escolares)

para planos de produção• Objectivo: Determinar o início das várias

aulas de dum horário• Variáveis: modelam o início da aula, e

eventualmente a sala, o professor, etc...• Domínio: Finitos para osprofessores

Finitos (horas certas) para os tempos

• Restrições: Não sobreposição de aulas na mesma sala , nem com o mesmo professor, etc...,

Page 12: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

12

Restrições - Caixeiro Viajante• Determinação de percursos (frotas de

carros, empresas de distribuição)• Objectivo: Determinar o “melhor” caminho

para ser seguido pelos veículos de uma empresa de distribuição

• Variáveis: Ordem em que uma localidade é atingida

• Domínio: Finitos (localidades existentes)• Restrições: Não repetir localidades, garantir

ciclos, não existência de sub-ciclos

Page 13: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

13

Restrições - Caixeiro Viajante

• ordem em que uma localidade é atingidaV1 = a, V2 = d, V3 = b, ...

• garantir ciclosVj ≠ Vj

• não existência de sub-ciclos???

A

B

C

E

G

FZ

H

D

I4

231534

Page 14: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

14

Restrições - Colocação• Colocar componentes sem sobreposição

• Objectivo: Determinar formas de conseguir colocar componentes num dado espaço

• Variáveis: Coordenadas dos elementos• Domínio: Reais / Finitos (grelha)• Restrições: Não sobrepôr componentes,

não ultrapassar os limites do “contentor

Page 15: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

15

Restrições - Colocação

• Não ultrapassar os limites do “contentorXa+Lxa ≤ Xmax

• Não sobrepôr componentesXa+Lxa ≤ Xb Xb+Lyb ≤ Xa

Ya+Lya ≤ Yb Yb+Lyb ≤ Ya

D

G

I

BCA

JH

E

FK

Page 16: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

16

Restrições - Satisfação ou Optimização• Em certos (muitos) casos o que se

pretende determinar não é uma solução qualquer, mas sim a melhor solução

• Um problema de optimização com restrições pode ser especificado por um tuplo < V, D, R, F > em que– V, D, R como antes– F: é uma função das soluções para

um domínio ordenado

Page 17: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

17

Optimização com Restrições - Exemplos• Planeamento de testes em circuitos

digitais– Teste com menos entradas especificadas

• Gestão de Tráfego em Redes– Tráfego com menor custo

• Gestão da Produção– Plano com maior lucro

• Sequenciação de Tarefas (Scheduling)– Solução com o fim mais cedo

Page 18: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

18

Optimização com Restrições - Exemplos• Geração de Horários

– Solução com menos furos– Solução com menos teóricas de tarde

• Caixeiro Viajante– Solução com menor distância percorrida

• “Colocação” ou “preenchimento”– Colocação do maior número de peças

Page 19: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

19

Restrições + Optimização - Caixeiro Viajante

• Distância percorridaV1 = a V2 = d P1 = 15

• Optimizaçãomin Pi

A

B

C

E

G

FZ

H

D

I4

231534

Page 20: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

20

Restrições - Complexidade• A dificuldade em resolver os

problemas de restrições reside na sua complexidade exponencial.

• Domínio Booleano– Número de variáveis: n– Dimensão do Domínio: 2 – Número de soluções potenciais: 2n

• Domínio Finitos– Número de variáveis: n– Dimensão do Domínio: k – Número de soluções potenciais: kn

Page 21: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

21

Complexidade Exponencial

• Para perspectivar ...

kn 10 20 30 40 50 60

2 1 mseg 1 seg 18 min 12.7 dias 35.7 anos 365 séculos

3 50 mseg 1 hora 6.5 anos 3855 séculos

4 1 seg 12.6 dias 365 séculos

5 9.8 seg 1103 dias 295 Kséculos

6 1 min 116 anos

Page 22: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

22

Restrições - Complexidade• O problemas de interesse são

geralmente– Restrições: NP - completos– Optimização: NP - difíceis

• Analogia com 3SAT

Problema 3SAT

Page 23: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

23

Restrições - Métodos de Resolução• Resolução Simbólica

– Booleanos– Programação Linear Inteira

• Retrocesso– Percorre todo o espaço de pesquisa

• Complexidade k1n

– Redução do espaço de pesquisa• Propagação de restrições• Cortes - Programação inteira• Complexidade k2

n

Page 24: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

24

Retrocesso

Testes 0 Retrocessos 0

Page 25: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

25

Retrocesso

Testes 0 + 1 = 1 Retrocessos 0

Q1 \= Q2, L1+Q1 \= L2+Q2, L1+Q2 \= L2+Q1.

Page 26: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

26

Retrocesso

Testes 1 + 1 = 2 Retrocessos 0

Q1 \= Q2, L1+Q1 \= L2+Q2, L1+Q2 \= L2+Q1.

Page 27: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

27

Retrocesso

Testes 2 + 1 = 3 Retrocessos 0

Q1 \= Q2, L1+Q1 \= L2+Q2, L1+Q2 \= L2+Q1.

Page 28: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

28

Retrocesso

Testes 3 + 1 = 4 Retrocessos 0

Page 29: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

29

Retrocesso

Testes 4 + 2 = 6 Retrocessos 0

Page 30: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

30

Retrocesso

Testes 6 + 1 = 7 Retrocessos 0

Page 31: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

31

Retrocesso

Testes 7 + 2 = 9 Retrocessos 0

Page 32: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

32

Retrocesso

Testes 9 + 2 = 11 Retrocessos 0

Page 33: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

33

Retrocesso

Testes 11 + 1 + 3 = 15 Retrocessos 0

Page 34: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

34

Retrocesso

Testes 15 + 1 + 4 + 2 + 4 = 26 Retrocessos 0

Page 35: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

35

Retrocesso

Testes 26 + 1 = 27 Retrocessos 0

Page 36: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

36

Retrocesso

Testes 27 + 3 = 30 Retrocessos 0

Page 37: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

37

Retrocesso

Testes 30 + 2 = 32 Retrocessos 0

Page 38: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

38

Retrocesso

Testes 32 + 4 = 36 Retrocessos 0

Page 39: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

39

Retrocesso

Testes 36 + 3 = 39 Retrocessos 0

Page 40: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

40

Retrocesso

Testes 39 + 1 = 40 Retrocessos 0

Page 41: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

41

Retrocesso

Testes 40 + 2 = 42 Retrocessos 0

Page 42: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

42

Retrocesso

Testes 42 + 3 = 45 Retrocessos 0

Page 43: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

43

Retrocesso

Testes 45 Retrocessos 0

Falha

6

Retrocede

5

Page 44: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

44

Retrocesso

Testes 45 Retrocessos 1

Page 45: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

45

Retrocesso

Testes 45 + 1 = 46 Retrocessos 1

Page 46: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

46

Retrocesso

Testes 46 + 2 = 48 Retrocessos 1

Page 47: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

47

Retrocesso

Testes 48 + 3 = 51 Retrocessos 1

Page 48: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

48

Retrocesso

Testes 51 + 4 = 55 Retrocessos 1

Page 49: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

49

Retrocesso

Testes 55+1+3+2+4+3+1+2+3 = 74 Retrocessos 1

Falha

6

Retrocede

5 e 4

Page 50: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

50

Retrocesso

Testes 74+2+1+2+3+3= 85 Retrocessos 1+2 = 3

Page 51: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

51

Retrocesso

Testes 85 + 1 + 4 = 90 Retrocessos 3

Page 52: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

52

Retrocesso

Testes 90 +1+3+2+5 = 101 Retrocessos 3

Page 53: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

53

Retrocesso

Testes 101+1+5+2+4+3+6= 122 Retrocessos 3

Page 54: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

54

Retrocesso

Testes 122+1+5+2+6+3+6+4+1= 150 Retrocessos 3+1=4

Falha

8

Retrocede

7

Page 55: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

55

Retrocesso

Testes 150+1+2= 153 Retrocessos 4+1=5

Falha

7

Retrocede

6

Page 56: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

56

Retrocesso

Testes 153+3+1+2+3= 162 Retrocessos 5+1=6

Falha

6

Retrocede

5

Page 57: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

57

Retrocesso

Testes 162+2+4= 168 Retrocessos 6+1=7

Page 58: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

58

Retrocesso

Testes 168+1+3+2+5+3+1+2+3= 188 Retrocessos 7

Falha

6

Retrocede

5

Page 59: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

59

Retrocesso

Testes 188+1+2+3+4= 198 Retrocessos 7+1=8

Falha

5

Retrocede

4

Page 60: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

60

Retrocesso

Testes 198 + 3 = 201 Retrocessos 8+1=9

Page 61: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

61

Retrocesso

Testes 201+1+4 = 206 Retrocessos 9

Page 62: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

62

Retrocesso

Testes 206+1+3+2+5 = 217 Retrocessos 9

Page 63: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

63

Retrocesso

Testes 217+1+5+2+5+3+6 = 239 Retrocessos 9

Page 64: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

64

Retrocesso

Testes 239+1+5+2+4+3+6+7+7= 274 Retrocessos 9+1=10

Falha

8

Retrocede

7

Page 65: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

65

Retrocesso

Testes 274+1+2= 277 Retrocessos 10+1=11

Falha

7

Retrocede

6

Page 66: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

66

Retrocesso

Testes 277+3+1+2+3= 286 Retrocessos 11+1=12

Falha

6

Retrocede

5

Page 67: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

67

Retrocesso

Testes 286+2+4= 292 Retrocessos 12

Page 68: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

68

Retrocesso

Testes 292+1+3+2+5+3+1+2+3= 312 Retrocessos 12+1=13

Falha

6

Retrocede

5

Page 69: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

69

Retrocesso

Testes 312+1+2+3+4= 322 Retrocessos 13+2=15

Falha

5

Retrocede

4 e 3

Page 70: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

70

Retrocesso

Testes 322 + 2 = 324 Retrocessos 15

X1=1

X2=3

X3=5

Impossível

Page 71: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

71

Propagação

Testes 0 Retrocessos 0

Page 72: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

72

Propagação

1 1

1

1

1

1

11

1

1

1

1

1

1

Testes 8 * 7 = 56 Retrocessos 0

Q1 #\= Q2, L1+Q1 #\= L2+Q2, L1+Q2 #\= L2+Q1.

Page 73: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

73

Propagação

1 1

1

1

1

1

11

1

1

1

1

1

12

2

2

2

2

2

2

2

2

2

2

Testes 56 + 6 * 6 = 92 Retrocessos 0

Page 74: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

74

Propagação

1 1

1

1

1

1

11

1

1

1

1

1

12

2

2

2

2

2

2

2

2

2

2

3

3

3

3

3

33

Testes 92 + 4 * 5 = 112 Retrocessos 0

Page 75: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

75

Propagação 2

1 1

1

1

1

1

11

1

1

1

1

1

12

2

2

2

2

2

2

2

2

2

2

3

3

3

3

3

33

Testes 92 + 4 * 5 = 112 Retrocessos 0

X6 só pode tomar o valor 4

Page 76: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

76

Propagação 2

1 1

1

1

1

1

11

1

1

1

1

1

12

2

2

2

2

2

2

2

2

2

2

3

3

3

3

3

33

6

6

6

6

6 6

Testes 112+3+3+3+4 = 125 Retrocessos 0

Page 77: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

77

Propagação 2

1 1

1

1

1

1

11

1

1

1

1

1

12

2

2

2

2

2

2

2

2

2

2

3

3

3

3

3

33

6

6

2

6

6 6

Testes 125 Retrocessos 0

X8 só pode tomar o valor 7

Page 78: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

78

Propagação 2

1 1

1

1

1

1

11

1

1

1

1

1

12

2

2

2

2

2

2

2

2

2

2

3

3

3

3

3

33

6

6

2

6

6 6

Testes 125 Retrocessos 0

Page 79: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

79

Propagação 2

1 1

1

1

1

1

11

1

1

1

1

1

12

2

2

2

2

2

2

2

2

2

2

3

3

3

3

3

33

6

6

2

6

6 6

8

8

Testes 125+2+2+2=131 Retrocessos 0

Page 80: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

80

Propagação 2

1 1

1

1

1

1

11

1

1

1

1

1

12

2

2

2

2

2

2

2

2

2

2

3

3

3

3

3

33

6

6

2

6

6 6

8

8

Testes 131 Retrocessos 0

X4 só pode tomar o valor 8

Page 81: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

81

Propagação 2

1 1

1

1

1

1

11

1

1

1

1

1

12

2

2

2

2

2

2

2

2

2

2

3

3

3

3

3

33

6

6

2

6

6 6

8

8

Testes 131 Retrocessos 0

Page 82: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

82

Propagação 2

1 1

1

1

1

1

11

1

1

1

1

1

12

2

2

2

2

2

2

2

2

2

2

3

3

3

3

3

33

6

6

2

6

6 6

8

8

4

Testes 131+2+2=135 Retrocessos 0

Page 83: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

83

Propagação 2

1 1

1

1

1

1

11

1

1

1

1

1

12

2

2

2

2

2

2

2

2

2

2

3

3

3

3

3

33

6

6

2

6

6 6

8

8

4

Testes 135 Retrocessos 0

X5 só pode tomar o valor 2

Page 84: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

84

Propagação 2

1 1

1

1

1

1

11

1

1

1

1

1

12

2

2

2

2

2

2

2

2

2

2

3

3

3

3

3

33

6

6

2

6

6 6

8

8

4

Testes 135 Retrocessos 0

Page 85: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

85

Propagação 2

1 1

1

1

1

1

11

1

1

1

1

1

12

2

2

2

2

2

2

2

2

2

2

3

3

3

3

3

33

6

6

2

6

6 6

8

8

4

5

Testes 135+1=136 Retrocessos 0

Page 86: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

86

Propagação 2

1 1

1

1

1

1

11

1

1

1

1

1

12

2

2

2

2

2

2

2

2

2

2

3

3

3

3

3

33

6

6

2

6

6 6

8

8

4

5

Testes 136 Retrocessos 0

Page 87: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

87

Propagação 2

1 1

1

1

1

1

11

1

1

1

1

1

12

2

2

2

2

2

2

2

2

2

2

3

3

3

3

3

33

6

6

2

6

6 6

8

8

4

5

Testes 136 Retrocessos 0+1=1

Falha

7

Retrocede

3 !

Page 88: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

88

Propagação 2

1 1

1

1

1

1

11

1

1

1

1

1

12

2

2

2

2

2

2

2

2

2

2

3

33

3

3

3

3

3

Testes 136 Retrocessos 1

3

X1=1

X2=3

X3=5

Impossível

Testes

136

(324)

Retrocessos

1

(15)

Page 89: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

89

Restrições - Métodos de Resolução• Pesquisa Local

– Reparação de “soluções”– Optimização– Método incompleto

Page 90: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

90

Pesquisa Local - Reparação

4

7

1

6

3

5

8

2

Solução

Permutação

Vizinhança

Troca

Page 91: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

91

Pesquisa Local - Reparação

2 Ataques

3 - 5

4 - 8

4

7

1

6

3

5

8

2

Page 92: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

92

Pesquisa Local - Reparação

4

7

1 2

6

3

5

8

2 1

2 Ataques

3 - 5

4 - 8

Page 93: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

93

Pesquisa Local - Reparação

4

7

2

6

3

5

8

1

3 Ataques

1 - 3

2 - 8

3 - 6

Page 94: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

94

Pesquisa Local - Reparação

4 1

7

2

6

3

5

8

1 4

3 Ataques

1 - 3

2 - 8

3 - 6

Page 95: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

95

Pesquisa Local - Reparação

1 Ataque

3 - 6

1

7

2

6

3

5

8

4

Page 96: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

96

Pesquisa Local - Reparação

1

7

2 8

6

3

5

8 2

4

1 Ataque

3 - 6

Page 97: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

97

Pesquisa Local - Reparação

1

7

8

6

3

5

2

4

3 Ataques

2 - 3

2 - 7

3 - 6

Page 98: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

98

Pesquisa Local - Reparação

1

7 5

8

6

3

5 7

2

4

3 Ataques

2 - 3

2 - 7

3 - 6

Page 99: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

99

Pesquisa Local - Reparação

0 Ataques

1

5

8

6

3

7

2

4

Page 100: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

100

Programação por Restrições• Foco na propagação de restrições

associada ao retrocesso• Extensão ao Prolog

– Constraint Logic Programming– CHIP, ECLIPSE, SICStus

• Outras possibilidades– Packages de filtragem– ILOG, CHIP

• Página da cadeirassdi.di.fct.unl.pt/~pb/cadeiras/pr

Page 101: 1 Programação por Restrições Pedro Barahona. 2 Restrições - O que são Intuitivamente são limitações aos possíveis valores que as variáveis de um problema

101

Programação por Restrições