![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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/1.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/2.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/3.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/4.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/5.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/6.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/7.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/8.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/9.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/10.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/11.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/12.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/13.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/14.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/15.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/16.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/17.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/18.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/19.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/20.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/21.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/22.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/23.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/24.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/25.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/26.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/27.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/28.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/29.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/30.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/31.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/32.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/33.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/34.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/35.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/36.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/37.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/38.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/39.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/40.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/41.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/42.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/43.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/44.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/45.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/46.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/47.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/48.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/49.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/50.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/51.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/52.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/53.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/54.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/55.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/56.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/57.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/58.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/59.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/60.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/61.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/62.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/63.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/64.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/65.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/66.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/67.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/68.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/69.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/70.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/71.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/72.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/73.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/74.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/75.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/76.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/77.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/78.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/79.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/80.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/81.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/82.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/83.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/84.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/85.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/86.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/87.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/88.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/89.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/90.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/91.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/92.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/93.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/94.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/95.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/96.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/97.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/98.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/99.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/100.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022062819/5706386b1a28abb823904f85/html5/thumbnails/101.jpg)
101
Programação por Restrições