programação por restrições mestrado / licenciatura em engenharia informática pedro barahona
DESCRIPTION
Programação por Restrições Mestrado / Licenciatura em Engenharia Informática Pedro Barahona 2005/06. 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 . - PowerPoint PPT PresentationTRANSCRIPT
1
Programação por Restrições
Mestrado / Licenciatura em
Engenharia Informática
Pedro Barahona
2005/06
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
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 Múltiplo
• “Colocação” ou “preenchimento”
– 2D: corte de peças (tecido, tábuas, etc...)
– 3D: prenchimento de contentores
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”
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)
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, – Quantidades mínimas a produzir– Custos a não exceder
7
Restrições - Gestão de Produção
• Limites dos recursos existentes
– Só está dísponível uma quantidade Ri “unidades” do recurso i
ai1 X1 + ai2X2 + ai3X3 + .... ≤ Ri
em que
• aij é a quantidade do recurso i necessário para produzir uma unidade do produto j
• Xj é a quantidade do produto j produzida
• Restrições sobre o plano produzido
– Objectivos mínimos de produção
X1 + X2 ≥ 50
– Equilíbrio na produção
| X4 - X5 | < 20
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,
– Manutenção de informação nos vários nós
9
Restrições - Gestão de Redes
• Denotando por Xij o fluxo (bits, carros, m3 de água, corrente eléctrica, ...) entre os nós i e j
– Restrições de Capacidade
Xab ≤ 15
– Restrições de manutenção de informação
Xab+Xdb = Xbc
A
B
C
E
G
FZ
H
D
I4
2315
10
Restrições - Escalonamento de Tarefas
J 1
J 2
J 3
J 4
1 2 3
1 2 3
1 2 3
1 2 3
Job-Shop
• Denotando por Sij / Dij / Dij o início / duração / máquina da tarefa (task) i do trabalho (job) j:
– Precedência entre tarefas do mesmo trabalho
Sij + Dij ≤ Skj para i < k
– Não sobreposição de tarefas na mesma máquina
(Mij ≠ Mkl) (Sij + Dij ≤ Skl) (Skl + Dkl ≤ Jij)
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 os professores
– Finitos (horas certas) para os tempos
• Restrições:
– Não sobreposição de aulas na mesma sala ,
– nem com o mesmo professor,
– etc...,
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
13
Restrições - Caixeiro Viajante
• Denotando por Vi a ordem em que a localidade i é visitada, e cij o custo/distância do caminho directo de i a j
– Garantir que o caminho existe
|Vi – Vj| = 1 cij < M
– Garantir ciclos
Vj ≠ Vj
– Não existência de sub-ciclos
???
A
B
C
E
G
FZ
H
D
I4
231534
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
15
Restrições - Colocação
• Denotando por Xk / Yk as coordenadas do canto “inferior esquerdo” da peça k, e por Lxk / Lyk as dimensões dessa peça – Não ultrapassar os limites do “contentor
Xk+Lxk ≤ Xmax Yk+Lyk ≤ Ymax
– Não sobrepôr componentes
(Xi+Lxi) ≤ Xj % i à esquerda de j
(Xj+Lxj ≤ Xi) % i à direita de j
(Yi+Lyi) ≤ Yj % i à frente de j
(Yj+Lyj ≤ Yi) % i atrás de j
D
G
I
BCA
JH
E
FK
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.
• Neste caso, o problema é mais adequadamente descrito como um problema de optimização com restrições.
• Um problema de optimização com restrições pode ser especificado por um tuplo < V, D, R, F > 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
– F: é uma função das soluções para um domínio ordenado
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
– Máximo tráfego com um dado custo
• Gestão da Produção
– Plano com maior lucro
– Máxima produção com os recursos existentes
• Sequenciação de Tarefas (Scheduling)
– Solução com o fim mais cedo
– Ocupação máxima das máquinas existentes
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 máximo número de peças
19
Restrições + Optimização - Caixeiro Viajante
• Com as definições anteriores e denotando por dij a distância efectivamente percorrida entre os nós i e j,
– Definição da distância percorrida
|Vi – Vj| = 1 cij < M
|Vi – Vj| = 1 dij = cij
Vi – Vj| > 1 dij = 0
– Optimizaçãomin Σi Σj dij
A
B
C
E
G
FZ
H
D
I4
231534
20
Restrições - Complexidade• A maior 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ínios Finitos
– Número de variáveis: n
– Dimensão do Domínio: k
– Número de soluções potenciais: kn
• Domínios Racionais / Reais
– Em teoria infinitas soluções potenciais
– Na prática, número finito, limitado à precisão utilizada
– Métodos diferentes dos domínios finitos
21
Complexidade Exponencial
• Para perspectivar ...
• Assumindo-se que uma operação elementar tem uma duração de 1 μs, o tempo de pesquisa exaustiva das kn possíveis soluções será da ordem de
K \ n 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
22
Restrições - Complexidade
• Os problemas de interesse de satisfação de restrições são geralmente NP – completos:
– Descoberta de solução: complexidade exponencial (pior caso)
– Verificação de solução: complexidade polinomial
• Já os problemas optimização de restrições são geralmente NP – difíceis:
– Descoberta de solução: complexidade exponencial (pior caso)
– Verificação de solução: complexidade exponencial
• Analogia com SAT
Problema SAT
23
Restrições - Métodos de Resolução
• Resolução Simbólica /Algébrica– Domínios Herbrand – Unificação – Booleanos – Unificação Booleana– Programação Linear Inteira (Simplex)
• Retrocesso– Percorre todo o espaço de pesquisa
• Complexidade kn
– Redução do espaço de pesquisa• Propagação de restrições• Cortes - Programação inteira• Complexidade kr
n (kr < k)
• Pesquisa Local
– Método incompleto
– Metaheurísticas – óptimos locais
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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 !
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)
89
Restrições - Métodos de Resolução
• Pesquisa Local
– Reparação de “soluções”
– Optimização
– Método incompleto
• Métodos Mistos
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 cadeira ssdi.di.fct.unl.pt/~pr
– Diapositivos e sumários das aulas
– Software (download, documentação)
– Problemas propostos
– Bibliografia aconselhada
– Regras de Avaliação
– Anúncios, ...