Introducción a la Programación de Restricciones y …public.tepper.cmu.edu/jnh/buapesp.pdf ·...
Transcript of Introducción a la Programación de Restricciones y …public.tepper.cmu.edu/jnh/buapesp.pdf ·...
Introducción a la Programación
de Restricciones y Optimización
Tutorial
Septiem
bre 2005
BUAP, Puebla, México
John Hooker
Carnegie MellonUniversity
Agenda
�Examinaremos 5 problemas ejemplo
y los usaremos
para ilustrar algunas ideas básicas de programación de
restricciones yoptimización.
�Transferencia de carga
�Problema del agente viajero
�Optimización global continua
�Configuración de producto
�Asignación de máquinas
Agenda
�Ejemplo: Transferencia de carga
�Propagación de cotas
�Consistencia de cotas
�Cortes “knapsack” (m
ochila)
�Relajación lineal
�Búsqueda por ramificación (“branching search”)
Agenda
�Ejemplo: Problema del agente viajero
�Filtración por restricciones “todas diferentes”
�Relajación de la condición “todas diferentes”
�Arco-consistencia
Agenda
�Ejemplo: Optimización global continua
�Propagación no lineal de cotas
�Factorización de funciones
�División por intervalos
�Propagación lagrangeana
�Fijación de variable por costo reducido
Agenda
�Ejemplo: Configuración de producto
�Indices variables
�Filtración por restricción de elemento
�Relajación de la restricción elemento
�Relajación de una disjunción de sistemas lineales
Ejemplo: Transferencia de Carga
�Propagación de cotas
�Consistencia de cotas
�Cortes “knapsack” (m
ochila)
�Relajación
�Búsqueda por ramificación (“branching search”)
Transferencia de Carga
}3,2,1,0{
8
423
45
7
4050
6090
min
43
21
43
21
43
21
∈≤
++
+≥
++
++
++
jx
xx
xx
xx
xx
xx
xx
�Transportar 42 toneladas de carga usando a lo sumo 8 camiones.
�Los camiones son de 4 capacidades diferentes: 7,5,4 y 3 tons.
�Cuántos camiones de cada capacidad deben ser usados para
minimizar costos?
�x j= número de camiones de capacidad j.
Costo del
camión de
capacidad 4
Transferencia de Carga
�Resolveremos el problema usando “branching search”.
�En cada nodo del árbol de búsqueda:
�Reducir los dominios de las variables usando
propagación de cotas.
�Resolver una relajación linealdel problema para obtener
una cota para el valor óptimo.
Propagación de Cotas
�El dominio de xjes el conjunto de valores que puede tomar
x jpara alguna solución factible.
�Inicialmente el dominio de cada xjes {0,1,2,3}.
�La
propagación de cotasreduce los dominios.
�Dominios de menor tamaño significan un menor número
de bifurcaciones.
Propagación de Cotas
�Primero, reducir el dominio de x1:
42
34
57
43
21
≥+
++
xx
xx
++
−≥
7
34
54
24
32
1
xx
xx
176
7
33
34
35
42
1=
=
⋅
−⋅
−⋅
−≥
x
�Entonces, el dominio de x1se reduce de {0,1,2,3} a {1,2,3}.
�No es posible reducir los dominios de x2, x 3, x 4.
Max. elemento
del dominio
Propagación de Cotas
�En general, sea {L i, …, Ui} el dominio de xi .
�Una desigualdad ax
≥b (para a ≥
0)puede ser usada para
aumentar L ia
−∑ ≠
i
ij
jj
ia
Ua
bL
,m
ax
�Una desigualdad ax
≤b (para a ≥0)puede ser usada para
reducir Uia
−∑ ≠
i
ij
jj
ia
La
bU
,m
in
Propagación de Cotas
�Ahora, propagar el dominio reducido a las otras
restricciones para quizás reducir más el dominio:
84
32
1≤
++
+x
xx
x
−−
−≤
1
84
32
1
xx
xx
717
1
00
18
1=
=
−
−−
≤x
�No son posibles reducciones adicionales.
Min elemento
del dominio
Consistencia de Cotas
�Nuevamente, sea {L j, …, Uj} el dominio de xj
�Un conjunto de restricciones es “consistente en cotas” si para
cada j:
�x j= Ljpertenece a alguna solución factible y
�x j= U
jpertenece a alguna solución factible.
�Consistencia de cotas ⇒
no asignaremos a xjningún valor no
factible durante la bifurcación.
�La propagación de cotas es “consistente en cotas” para el caso
de una única desigualdad.
�7x 1+ 5x 2+ 4x 3+ 3x 4
≥42 es “consistente en cotas” cuando
los dominios son x1
∈{1,2,3} y x 2, x 3, x 4
∈{0
,1,2
,3}.
�Pero no necesariamente para un conjunto
de desigualdades.
Consistencia de Cotas
�La propagación de cotas puede no alcanzar consistencia
para un conjunto.
�Consideremos el conjunto de desigualdades
01
21
21
≥−
≥+
xx
xx
con dominios x 1, x 2
∈{0,1},soluciones (x
1,x2) = (1,0), (1,1).
�La propagación de cotas no tiene efecto sobre los dominios.
En x1+ x2
≥1:
01
11
01
11
12
21
=−
=−
≥=
−=
−≥
Ux
Ux
En x1
−x 2
≥1:
10
11
01
11
12
21
=+
=+
≤=
−=
−≥
Lx
Ux
�El conjunto de restricciones no es “consistente en cotas”
porque x1 = 0 no es una solución factible.
Cortes “Knapsack”
�Las restricciones en desigualdad (restricciones “knapsack”)
implican planos secantes.
�Losplanossecantesrestringenlarelajaciónlinealaunmás,y
susoluciónesunacotamásrestrictiva.
�Para la restricción ≥
, cadapaquete m
áximo corresponde a
un plano secante (corte “knapsack”).
423
45
74
32
1≥
++
+x
xx
x
Estos térm
inos form
an un paquete máximo porque:
(a)Por sí solos no pueden sumar
≥42, aun si cada xj
toma el mayor valor en su dominio (3).
(b) No existe un súper conjunto de estos térm
inos con
esta propiedad.
Cortes “Knapsack”
�El máximo paquete:
42
34
57
43
21
≥+
++
xx
xx
corresponde al corte “knapsack”: {
}2
3,4m
ax
35
37
42
43
=
⋅
−⋅
−≥
+x
x
Coeficientes
de x3, x 4
Min. valor de
4x 3+ 3x 4
requerido
para
satisfacer la
desigualdad
Cortes “Knapsack”
�En general, J
es un paquete de ax
≥b (para a ≥
0) si
bU
aJ
jj
j<
∑ ∈
∑∑
∉∈
−≥
Jj
Jj
jj
jj
Ua
bx
a
�Si Jes un paquete de ax
≥b, entonces lor térm
inos restantes
deben cubrir la diferencia:
�Así tenemos el corte “knapsack”:
∑∑
∉∉
∈
−
≥J
jj
Jj
Jj
jj
ja
Ua
b
x}
{m
ax
Cortes “Knapsack”
�Los cortes “knapsack” válidos de
42
34
57
43
21
≥+
++
xx
xx
son
322
32
42
43
≥+
≥+
≥+
xx
xx
xx
Relajación Lineal
jj
jU
xL
xx
xx
xx
xx
xx
xx
xx
xx
xx ≤
≤≥
+≥
+≥
+≤
++
+≥
++
++
++ 322
8
423
45
7
4050
6090
min
32
42
43
43
21
43
21
43
21
�Tenemos ahora una relajación lineal del problema de
transferencia de carga:
Búsqueda por Bifurcación (“Branching Search”)
�En cada nodo del árbol de búsqueda:
�Reducir el dominio por medio de propagación de cotas.
�Solucionar una relajación lineal para obtener una cota
inferior para cualquier solución factible en el sub-árbol
que empieza en ese nodo.
�Si la relajación es no factible, o su valor óptimo no mejora
la mejor solución factible encontrada hasta ahora, entonces
“backtrack”.
�De lo contrario, si la solución de la relajación es factible,
guardarla y “backtrack”.
�De lo contrario, bifurcar dividiendo el dominio.
3132
31
52
3va
lor
02
32
01
23
01
23
01
23
12
3
==
∈
),
,,
(x
x
fact
ible
n
o
re
laja
ció
n1
23
12
3
23
12
∈x
52
6va
lor
02
62
30
12
3
01
23
01
233
==
∈
),
,.
,(
x
x
55
27
valo
r
07
52
23
01
23
12
3
01
23
.
),
.,
,(
==
∈
x
x
fact
ible
solu
ció
n
53
0va
lor
20
330
12
01
233
==
∈
),
,,
(xx
fact
ible
solu
ció
n 5
30
valo
r 1
22
31
23
12
123
==
∈
),
,,
(xx
cota
la a
deb
ido
bac
ktra
ck"
"
53
0
valo
r 5
03
51
30
123
01
23
==
∈
).
,,
.,
(x
x
x 1∈{1,2}
x 1=3
x 2∈{0,1,2}
x 2=3
x 3∈{1,2}
x 3=3
Búsqueda
por
bifurcación
Dominios después de la
propagación de cotas
Solución de la relajación
lineal
Búsqueda por Bifurcación
This im
age cannot currently be displayed.
)1,2,2,3()
,,
,(
43
21
=x
xx
x
�Dos soluciones óptimas fueron encontradas (costo = 530):
)2,0,3,3()
,,
,(
43
21
=x
xx
x
Ejemplo: Agente Viajero
�Filtración por restricciones todas diferentes
�Relajación de la condición “todas diferentes”
�Arco-consistencia
Agente Viajero
()
{}n
x
xx
c
j
n
ix
xi
i ,,,
,
min
…
…
1
dife
rent
es
toda
s1
1
∈
∑+
�El agente visita cada ciudad una sola vez.
�La distancia de la ciudad ia la ciudad j
es c ij .
�Minimizar la distancia recorrida.
�x i= i-ésima ciudad visitada.
Distancia desde la
i -ésima ciudad
visitada hasta la
siguiente ciudad
(ciudad n+1 = ciudad 1)
�Puede ser resuelto por bifurcación + reducción de dominio
+ relajación.
Filtración por “Todas Diferentes”
�El mejor algoritmo conocido de filtración por “todas
diferentes” está basado en el aparemiento bipartito de
máxima cardinalidad y el teorema de Berge.
�Objetivo: filtrar valores no factibles en los dominios de las
variables.
�La filtración reduce el dominio y por lo tanto reduce el
número de bifurcaciones necesarias.
Filtración por “Todas Diferentes”
�Consideremos (x
1,x2,x3,x4,x5) todas diferentes con dominios
}6,5,4,3,2,1{
}5,1{
}5,3,2,1{
}5,3,2{}1{
54321
∈∈∈∈∈
xxxxx
x 1 x 2 x 3 x 4 x 5
1 2 3 4 5 6
Indicar el dominio con trazos.
Encontrar el apareamiento
bipartito de máxima cardinalidad.
Marcar trazos en trayectorias
alternas que comienzan en
vértices no cubiertos.
Marcar trazos en ciclos alternos.
Elim
inar trazos no marcados o
apareados.
x 1 x 2 x 3 x 4 x 5
1 2 3 4 5 6
Indicar el dominio con trazos.
Encontrar el apareamiento
bipartito de máxima cardinalidad.
Marcar trazos en trayectorias
alternas que comienzan en
vértices no cubiertos.
Marcar trazos en ciclos alternos.
Elim
inar trazos no marcados o
apareados.
Filtración por “Todas Diferentes”
}6,4{
}6,5,4,3,2,1{
}5{
}5,1{
}3,2{}
5,3,2,1{
}3,2{}
5,3,2{}1{
55
44
33
221
∈⇒
∈∈
⇒∈
∈⇒
∈∈
⇒∈∈
xx
xx
xx
xxx
Relajación de “Todas Diferentes”
�(x
1,x 2,x3,x4) todas diferentes con dominios x j
∈{1,2,3,4}
tiene la relajación de envolvente convexa:
43
21
43
21
++
+=
++
+x
xx
x
32
1
43
2
43
1
42
1
32
1
++
≥
++
++
++
++
xx
x
xx
x
xx
x
xx
x
21
43
42
32
41
31
21
+≥
++++++
xx
xx
xx
xx
xx
xx
1≥
jx
�Aunque esta es la relajación lineal más ajustada (“tightest”)
posible, puede ser demasiado débil (e involucrar demasiadas
desigualdades) limitando su utilidad.
Arco-Consistencia
�El conjunto de restricciones Sque contiene las variables
x 1, …, x ncon dominios D1, …, Dnes arco-consistente si el
dominio no contiene valores no factibles.
�O sea, para todo j, y para todo v
∈Dj, x j= v, para alguna
solución factible de S.
�De hecho, se trata de arco-consistencia generalizada
(dado que puede haber mas de 2 variables por restricción).
�La arco-consistencia se satisface filtrando todas las soluciones
no factibles de los dominios.
Arco-Consistencia
�El algoritmo de apareamiento satisface arco-consistencia
para “todas diferentes”.
�Con frecuencia los algoritmos de filtración en la práctica no
satisfacen arco-consistencia completamente ya que alcanzarla
no justifica la inversión en tiempo.
�Las herramientas básicas de programación de
restricciones son algoritmos de filtración que satisfacen o
aproximan arco-consistencia.
�Los algoritmos de filtración son análogos a los
algoritmos de plano secante en programación entera.
Arco-Consistencia
�Los dominios que son reducidos a través de un algoritmo de
filtración para una restricción pueden ser propagadosa otras
restricciones.
�Similar a la propagación de cotas.
�Pero la propagación puede no satisfacer arco-consistencia
para un conjunto
de restricciones, aun cuando la arco-
consistencia es satisfecha para cada restricción por separado.
�De nuevo, similar a la propagación de cotas.
Arco-Consistencia
�Por ejemplo, consideremos el conjunto de restricciones
dife
rent
es
tod
as
dife
rent
es
tod
as
dife
rent
es
tod
as
32
31
21
),
(
),
(
),
(
xx
xx
xx
}3,2
{
}3,2{
}2,1{
321
∈∈∈
xxx
con dominios
�No es posible reducir más el dominio.
�Cada restricción es arco-consistente para sus respectivos
dominios.
�Sin embargo, x 1= 2 no es una solución factible para el
conjunto de restricciones.
�Por lo tanto, el conjunto de restricciones no es arco-
consistente.
Arco-Consistencia
�Por otro lado, en ocasiones el mantener arco-consistencia puede
resolver un problema —
sin necesidad de bifurcación.
�Consideremos el problema de coloración de grafos.
�Colorear los vértices de rojo, azul o verde de tal manera que
todos los vértices adyacentes entre sí tengan colores diferentes.
�Estas son restricciones binarias(contienen solo 2 variables).
�Arbitrariamente colorear dos vértices adyacentes de rojo y
verde.
�Reducir los dominios para mantener arco-consistencia para
cada restricción.
Ejemplo: Optimización Global Continua
�Propagación no lineal de cotas
�Factorización de funciones
�División por intervalos
�Propagación lagrangeana
�Fijación de variable por costo reducido
Optimización Global Continua
�Actualmente
,lossolucionadores de programación de
restricciones (CHIP, ILOG Solver) hacen énfasis en
propagación.
�Actualmente, lossolucionadores de programación entera
(CPLEX, Xpress-MP) hacen énfasis en relajación.
�Actualmente, lossolucionadores globales (BARON, LGO)
combinan propagación y relajación.
�Quizás en el futuro cercano todos los solucionadores
combinaran propagación y relajación.
Optimización Global Continua
�Consideremos el problema de optimización global continua:
]2,0[],1,0[
14
22m
ax
21
21
21
21
∈∈
=≤
++
xx
xx
xx
xx
�El conjunto factible es no convexo, y existe más de un óptimo
local.
�Técnicas de programación no lineal tratan de encontrar un
óptimo local.
�Técnicas de optimización global tratan de encontrar un óptimo
global.
]2,0[],1,0[
22
14m
ax
21
21
21
21
∈∈
≤+
=+
xx
xx
xx
xx
Conjunto factible
Optimo global
Optimo local
x 1
x 2
Optimización Global Continua
�Bifurcar dividiendo dominios de intervalos continuos.
�Reducir los dominios a través de:
�Propagación no lineal de cotas.
�Propagación lagrangeana (fijación de variable por costo
reducido).
�Relajarel problema factorizando funciones.
Optimización Global Continua
Propagación No Lineal de Cotas
81
241
41
21
=⋅
=≥
Ux
�Para propagar 4x 1x 2
= 1, expresarla como x
1= 1/4x 2
y
x 2= 1/4x 1. Entonces:
41
141
41
12
=⋅
=≥
Ux
�Esto implica dominios x 1
∈[0.125,1], x
2∈[0.25,2].
�Propagaciones adicionales de 2x 1+ x2
≤2 implican x
1∈
[0.1
25,0
.875
], x 2
∈[0
.25,
1.75
].
�La iteración de las 2 restricciones converge en el punto fijo x
1
∈[0
.146
,0.8
54],
x 2∈
[0.2
93,1
.707
].
�En la práctica, el proceso de iteración se detiene antes de
alcanzar convergencia, debido a que alcanzarla puede no
compensar los costos en tiempo computacional.
Propagar los intervalos
[0,1], [0,2]
a través de las
restricciones, para obtener
[1/8,7/8], [1/4,7/4]
x 1
x 2
Propagación No Lineal de Cotas
�Descomponer funciones complejas en funciones elementales
con relajaciones lineales conocidas.
�Expresar 4x 1x 2= 1 como 4y= 1 donde y= x1x 2.
�Esto factoriza 4x 1x 2en la función lineal 4y,y la función
bilineal x 1x 2.
�La relajación lineal de la función lineal 4yes ella misma.
�La función bilineal y= x
1x 2tiene la relajación lineal: 2
12
11
22
12
11
2
21
21
12
21
21
12
UL
xL
xU
yU
Ux
Ux
U
LU
xU
xL
yL
Lx
Lx
L
−+
≤≤
−+
−+
≤≤
−+
Factorización de Funciones
�Tenemos ahora la relajación lineal del problema no lineal:
jj
jU
xL
UL
xL
xU
yU
Ux
Ux
U
LU
xU
xL
yL
Lx
Lx
L
xxy
xx
≤≤
−+
≤≤
−+
−+
≤≤
−+
≤+=
+
21
21
12
21
21
12
21
21
12
21
21
12
21
21
22
14m
axFactorización de Funciones
Res
olve
r la
rel
ajac
ión
linea
l.
x 1
x 2
Dad
o qu
e la
sol
ució
n es
no
fact
ible
, div
idir
el in
terv
alo
y bi
furc
ar.
]1,25.0[
2∈
x
]75.1,1[
2∈
x
División de Intervalos
]75.1,1[
2∈
x]1,
25.0[2∈
x
x 1
x 2
x 1
x 2La solución de
la relajación es
factible,
valor = 1.25
Esta se
convierte en la
mejor solución
factible.
]75.1,1[
2∈
x]1,
25.0[2∈
x
x 1
x 2
x 1
x 2La solución de
la relajación no
es factible,
valor = 1.854
La solución de
la relajación es
factible,
valor = 1.25
Esta se
convierte en la
mejor solución
factible.
jj
jU
xL
UL
xL
xU
yU
Ux
Ux
U
LU
xU
xL
yL
Lx
Lx
L
xxy
xx
≤≤
−+
≤≤
−+
−+
≤≤
−+
≤+=
+
21
21
12
21
21
12
21
21
12
21
21
12
21
21
22
14m
ax
El multiplicador de Lagrange (variable dual)
en la solución de la relajación es 1.1
Propagación Lagrangeana
El valor óptimo de la relajación es 1.854
�Cualquier reducción ∆
en el lado derecho de 2x 1+ x2
≤2
reduce el valor óptimo de la relajacion en 1.1 ∆.
�Entonces, cualquier reducción ∆
en el lado izquierdo de la
desigualdad (ahora 2) tiene el mismo efecto.
Propagación Lagrangeana
�Cualquier reducción ∆
en el lado izquierdo de 2x 1+ x
2≤2
reduce el valor óptimo de la relajación (ahora 1.854) en 1.1 ∆.
�El valor óptimo no debe ser reducido por debajo del lím
ite
inferior 1.25 (valor de la mejor solución factible hasta ahora).
�Así, debemos tener 1.1 ∆
≤1.854 −
1.25, o
25
.18
54
.1)]
2(2[1.1
21
−≤
+−
xx
45
1.1
1.1
25
.18
54
.12
22
1=
−−
≥+
xx
o
�La desigualdad puede ser propagada para reducir los dominios.
�Reducir el dominio de x2de [1,1.714] a [1.166,1.714].
Fijación de Variable por Costo Reducido
λL
vb
xg
−−
≥)(
Límite inferior en el
valor óptimo del
problema original
Valor óptimo de la
relajacion
�Engeneral,dadalarestriccióng(x)
≤bconmultiplicador
deLagrange
λ,lasiguienterestricciónesválida
�Si g(x)
≤b es una restricción de no negatividad −x j
≤0
con multiplicador de Lagrange λ(i.e, el costo reducido de
x jes
−λ), entonces λ
Lv
xj
−−
≥−
λL
vx
j
−≤
or
�Si x jes una variable 0-1 y (v
−L)/
λ< 1, entonces
podemos fijar x jen 0. Esto se conoce como fijación de
variable por costo reducido.
Ejemplo: Configuración de Producto
�Indices variables
�Filtración por la restricción elemento
�Relajación de la restricción elemento
�Relajación de una disjunción de sistemas
lineales
Configuración de Producto
�Queremos configurar una computadora seleccionando el tipo de
fuente de energía, el tipo de “disk drive” y el tipo de chips de
memoria.
�También seleccionamos el número de “disk drives” y de chips
de memoria.
�Usar solamente 1 tipo de “disk drive” y 1 tipo de memoria.
�Restricciones:
�Generar energía suficiente para los componentes.
�El espacio de disco debe ser por lo menos 700.
�La memoria debe ser por lo menos 850.
�Minimizar peso sujeto a las restricciones.
Mem
oria
Mem
oria
Mem
oria
Mem
oria
Mem
oria
Mem
oria
Fue
nte
de
ener
gía
Fue
nte
de
ener
gía
Fue
nte
de
ener
gía
Fue
nte
de
ener
gía
Dis
k dr
ive
Dis
k dr
ive
Dis
k dr
ive
Dis
k dr
ive
Dis
k dr
ive
Com
puta
dora
per
sona
l
Configuración de Producto
Configuración de Producto
�Sea t i= tipo del componente iinstalado.
qi = cantidad del componente iinstalado.
�Estas son las variables del problema.
�Este problema ilustrará la restricción elemento.
jU
vL
jA
qv
vc
jj
j
iij
ti
j
jj
j
i
to
da
par
a
to
da
par
a
,,
min
≤≤=∑∑
Can
tidad
del
atr
ibut
o j
prod
ucid
a (<
0 s
i es
co
nsum
ida)
: m
emor
ia, e
nerg
ía,
peso
, etc
.
Can
tidad
del
co
mpo
nent
e i
inst
alad
o
Configuración de Producto
jU
vL
jA
qv
vc
jj
j
iij
ti
j
jj
j
i
to
da
par
a
to
da
par
a
,,
min
≤≤=∑∑
Can
tidad
del
atr
ibut
o j
prod
ucid
a po
r el
tipo
t i
de c
ompo
nent
e i
Configuración de Producto
Can
tidad
del
atr
ibut
o j
prod
ucid
a (<
0 s
i es
co
nsum
ida)
: m
emor
ia, e
nerg
ía,
peso
, etc
.
Can
tidad
del
co
mpo
nent
e i
inst
alad
o
jU
vL
jA
qv
vc
jj
j
iij
ti
j
jj
j
i
to
da
par
a
to
da
par
a
,,
min
≤≤=∑∑
t i e
s un
índi
ce
varia
ble
Configuración de Producto
Can
tidad
del
atr
ibut
o j
prod
ucid
a po
r el
tipo
t i
de c
ompo
nent
e i
Can
tidad
del
atr
ibut
o j
prod
ucid
a (<
0 s
i es
co
nsum
ida)
: m
emor
ia, c
alor
, en
ergí
a, p
eso,
etc
.
Can
tidad
del
co
mpo
nent
e i
inst
alad
o
jU
vL
jA
qv
vc
jj
j
iij
ti
j
jj
j
i
to
da
par
a
to
da
par
a
,,
min
≤≤=∑∑
Cos
to p
or u
nida
d de
pr
oduc
ir el
atr
ibut
o j
Configuración de Producto
t i e
s un
índi
ce
varia
ble
Can
tidad
del
atr
ibut
o j
prod
ucid
a po
r el
tipo
t i
de c
ompo
nent
e i
Can
tidad
del
atr
ibut
o j
prod
ucid
a (<
0 s
i es
co
nsum
ida)
: m
emor
ia, c
alor
, en
ergí
a, p
eso,
etc
.
Can
tidad
del
co
mpo
nent
e i
inst
alad
o
�Los índices variables son implementados con la restricción
elemento.
�La yen xyes un índice variable.
�Los solucionadores de programación de restricciones
implementan xyremplazándola con una nueva variable zy
agregando la restricción elemento(y,(x 1,…,xn),z).
�Esta restricción asigna zal y-ésimo elemento de la lista
(x1,…,xn).
�Así, es remplazada por y la nueva restricción
Indices Variables
This im
age cannot currently be displayed.
()
ijij
ni
iji
iz
Aq
Aq
t),
,,
(,…
1e
lem
en
to∑ i
ijt
ii
Aq
�La restricción elemento puede ser propagada y relajada.
∑ iijz
para cada i.
Filtración por Elemento )
),,
,(,
(z
xx
yn
…1
elem
ento
puede ser procesada con un algoritmo de reducción de
dominio que mantenga arco-consistencia.
con
trar
io
lo d
e
}{
s
}|
{
{j
j
j
y
j
x
yz
x
xx
yy
Dj
xz
z
D
jD
iD
D
DD
jD
D
DD
D
=←
∅≠
∩∩
←
∩←
∈∪
Dominio de z
Ejemplo...
)),
,,
,(,
(z
xx
xx
y4
32
1el
emen
to
Los dominios iniciales son:
}70,
50,40{
}90,
80,50,
40{
}20,
10{
}50,
10{
}4,3,1{
}90,
80,60,
30,20{
4321
======
xxxxyz
DDDDDD
Los dominios reducidos son:
}70,
50,40{
}90,
80{
}20,
10{
}50,
10{}3{
}90,
80{
4321
======
xxxxyz
DDDDDD
Filtración por Elemento
Relajación de Elemento
�elemento(y,(x 1,…,xn),z) puede ser una relajación continua.
�Esto implica la disjunción
)(
kk
xz
=∨
�En general, a una disjunción de sistemas lineales se le puede
dar una relajación de envolvente convexa.
�Esto proporciona una form
a de relajar la restricción
elemento.
�Esta describe la unión de poliedros definida por Ak x
≤bk .
�Cada punto xen la envolvente convexa de esta unión es una
combinación convexa de los puntos
en el poliedro.
Relajación de una Disjunción de Sistemas Lineales
�Consideremos la disjunción
)(
kk
kb
xA
≤∨
11
bx
A≤
22
bx
A≤
33
bx
A≤
x
1x
2x
3x
Envolvente
convexa
kx
�Así, tenemos
∑
∑
≥=≤
=
kk
k
kk
kk
kk
kb
xA
xx
01
to
dapa
ra α
α
α
,,
Usando el cambio de variable
obtenemos la relajación de envolvente convexa
kk
kx
xα
=
∑
∑
≥=≤
=
kk
k
kk
kk
k
k
kb
xA
xx
01
to
dapa
ra α
αα ,
,
Relajación de una Disjunción de Sistemas Lineales
Relajación de Elemento
�La relajación de envolvente convexa de
elemento(y,(x 1, …, x n), z) es la relajación de envolvente
convexa de la disjunción , que se reduce a
ix
x
xz
kik
i
kkk
to
dapa
ra ,
∑∑ ==
)(
kk
xz
=∨
()
ji
zA
At
jU
vL
zv
vc
ijij
mij
i
ij
jj
ijj
jj
j
,,
),,
,(,
,,
min
to
das
para
el
emen
to
to
dapa
ra
1…
∑∑≤
≤=
Configuración de Producto
�Volviendo al problema de configuración de producto, el modelo
con la restricción de elemento es
con dominios {
}{
}{
}
{}{
}3,2,1,
,1
al
l],
,[
,,
,,
,,
,
32
1
32
1
∈∈∈
∈∈
∈
q
jU
Lv
CB
At
BA
tC
BA
t
jj
j
Tipo de fuente de energía
Tipo de disco
Tipo de memoria
Número de
fuentes de
energía
Número de discos,
chips de memoria
Configuración de Producto
�Podemos usar los cortes “knapsack” para filtrar los dominios.
Dado que , la restricción implica
donde cada zijtoma uno de los valores
.
],
[j
jj
UL
v∈
∑=
jij
jz
v
∑≤
≤j
U jij
L jv
zv
ijm
iij
iA
qA
q,
,1…
�Lo cual implica las desigualdades ”knapsack”
∑≤
iijk
ki
jA
qL
}{
ma
xj
iijk
ki
UA
q≤
∑}
{m
in
�Estas desigualdades pueden ser usadas para reducir el
dominio de q
i.
Configuración de Producto
�Usando los lím
ites inferiores L j, para energía, espacio de disco
y memoria, obtenemos las desigualdades “knapsack” }
40
0,
30
0,
25
0m
ax{
}0,0
max
{}
0,0,0m
ax{
85
0
}0,0,0
max
{}
80
0,
50
0m
ax{
}0,0,0
max
{7
00
}3
0,
25
,2
0m
ax{
}5
0,
30
max
{}
15
0,
10
0,
70
max
{0
32
1
32
1
32
1
q
q
q
++
≤+
+≤
−−
−+
−−
+≤
que se reducen a
32
32
1
40
08
50
80
07
00
20
30
15
00
q
≤≤−
−≤
�Propagándolas se reduce el dominio de q
3de {1,2,3} a {3}.
Configuración de Producto
�La propagación de todas las restricciones reduce los dominios a
]1
04
0,
56
5[
]1
20
0,
90
0[
]1
60
0,
70
0[
]4
5,0[
]9
0,
75
[]
60
0,
14
0[
]3
50
,3
50
[
]1
20
,9
00
[]
0,0[]0,0[
]0,0[]
16
00
,7
00
[]0,0[
]7
5,
90
[]
30
,7
5[
]1
50
,1
50
[
},
{}
,{
}{
}3{}
2,1{}1{
43
21
3424
14
3323
13
3222
12
3121
11
32
1
32
1
∈∈
∈∈
∈∈
∈∈
∈∈
∈∈
∈−
−∈
−−
∈∈
∈∈
∈∈
∈∈
vv
vv
zz
z
zz
z
zz
z
zz
z
CB
tB
At
Ct
q
ki
q
jv
qA
jq
Av
iq
jv
vv
iq
q
jq
Av
vc
iki
U ji
ijk
Dk
ii
ijk
Dk
L j
U ii
L i
U jj
L j
Dk
iki
iD
kik
ijk
j
jj
j
it
it
it
it
,,
,}
{m
in
},{
max
,,,
,
min
t
od
asp
ara
0
t
od
ap
ara
t
od
ap
ara
t
od
ap
ara
t
od
ap
ara
t
od
ap
ara
t
od
ap
ara
≥
≤
≤≤
≤≤
≤==
∑
∑∑∑∑
∑ ∈
∈
∈
∈
Configuración de Producto
�Usando la relajación de envolvente convexa de la restricción
elemento obtenemos la relajación lineal del problema:
Cotas actuales de v
jCotas actuales de q
i
qik> 0 cuando el tipo
kdel componente i
es seleccionado, y qik
es la cantidad
instalada
Configuración de Producto
�La solución a la relajación lineal en el nodo inicial es
),
,,
()
,,
(7
05
90
01
00
01
5
0 s
o
tro
s
321
41
33
22
11
====
==
==
vv
qqq
ijBAC
…
Usar 1 tipo C de fuente de energía (t 1 = C)
Usar 2 tipos A de “disk drives” (t 2 = A)
Usar 3 tipos B de chips de memoria (t 3 = B)
�Ya que hay un solo q
ik> 0 para cada i, no hay
necesidad de bifurcar en los t i s.
�Esta es una solución factible y por lo tanto óptima.
�El problema es resuelto en el nodo inicial.
Mín. peso es 705.
Asignación de Máquinas
�Queremos asignar 5 trabajos a 2 máquinas.
�Cada trabajo tiene tiempos de iniciación y term
inación.
�Los tiempos y costos de procesamiento varían entre las
dos máquinas.
�Queremos minimizar el costo total teniendo en cuenta
las restricciones en tiempos.
�Primero estudiaremos la propagación para el problema de
1 máquina(“edge finding”).
�Luego resolveremos el problema de 2 máquinas usando la
descomposición de Benders y la propagación en el
problema de 1 máquina.
Tiempo de
procesamiento en la
máquina A
Tiempo de
procesamiento en la
máquina B
Asignación de Máquinas
�Los trabajos deben ser realizados uno a la vez en cada
máquina (asignación disjunta). Para esto usamos la
restricción
),
(ed
isju
nct
ivp
t
t= (t 1,…t n)
son tiempos de
iniciación
(variables)
p= (pi1,…pin)
son tiempos de
procesamiento
(constantes)
�El mejor algoritmo conocido para la restricción “disjunctive”
es “edge finding”.
�“Edge finding” no satisface complementamente
arco-consistencia o consistencia de cotas.
Asignación de Máquinas
�El problema puede ser escrito como
()
ii
yp
iy
t
jd
pt
f
jij
jj
jj
yj
jj
y
j
j
to
da
par
a ,)
|(
),|
(e
dis
jun
ctiv
to
da
par
a ,
min
==
≤+
∑
Tiempo de
iniciación del
trabajo j
Máquina asignada
al trabajo j
�Primero miraremos el problema de asignación de 1
máquina.
Asignación de Máquinas
“Edge Finding”
�Tratemos de asignar los trabajos 2, 3, 5 a la máquina A.
�Inicialmente, el tiempo más temprano de iniciación E
j
y el tiempo más tardío de term
inación L
json las fechas
de iniciación rjy de term
inación d
j :
]7,3[
],
[
]7,2[
],
[
]8,0[]
,[
55
33
22
===
EL
EL
EL
05
10
Trabajo 2 Trabajo 3
Trabajo 5
E3
L 3
= marco de
tiempo
“Edge Finding”
�El trabajo 2 debe preceder los trabajos 3 y 5, porque:
�Los trabajos 2, 3, 5 no se podrán realizar entre el tiempo
más temprano de iniciación de 3, 5 y el tiempo más tardío
de term
inación de 2, 3, 5.
�Por lo tanto, el trabajo 2 debe term
inar antes de que
los trabajos 3, 5 empiecen.
05
10
Trabajo 2
Trabajo 3 Trabajo 5
min{E
3,E
5}
max{L 2,L3,L5}
pA2
pA3
pA5
“Edge Finding”
�El trabajo 2 precede los trabajos 3, 5 porque:
05
10
min{E
3,E
5}
max{L 2,L3,L5}
pA2
pA3
pA5
53
25
35
32
},
min
{}
,,
max
{A
AA
pp
pE
EL
LL
++
<−
�A esto se le llama “edge finding” porque encuentra un
margen en el grafo de precedencia de los trabajos.
Trabajo 2
Trabajo 3 Trabajo 5
“Edge Finding”
�En general, el trabajo kdebe preceder el conjunto S
de trabajos
en la máquina icuando
05
10
min{E
3,E
5}
max{L 2,L3,L5}
pA2
pA3
pA5
∑ ∪∈
∈∪
∈<
−}
{}
{}
{m
in}
{m
axk
Sj
ijj
Sj
jk
Sj
pE
L
Trabajo 2
Trabajo 3 Trabajo 5
“Edge Finding”
�Dado que el trabajo 2 debe preceder al 3 y al 4, los tiempos
más tempranos de iniciación de los trabajos 3 y 4 pueden ser
actualizados.
�Ellos no pueden empezar antes de que el trabajo 2 term
ine.
05
10
pA2
[E3,L3] actualizado a [3,7]
Trabajo 2
Trabajo 3 Trabajo 5
“Edge Finding”
This im
age cannot currently be displayed.
�“Edge finding” también determ
ina que el trabajo 3 debe preceder
el trabajo 5, ya que
05
10
pA2
[E5,L5] actualizado a [5,7]
53
55
33
25
4}3
min
{}
7,7m
ax{
}m
in{
},
max
{A
Ap
pE
LL
+=
+=
<=
−=
−
pA3
pA5
�Lo cual actualiza [E5,L5] a [5,7], y hay muy poco tiempo
para realizar el trabajo 5. La asignación es no factible.
Trabajo 2
Trabajo 3 Trabajo 5
Descomposición de Benders
�Resolveremos el problema de asignación de 2 máquinas con la
descomposición de Benders basada en lógica.
�Primero resolveremos el problema de asignación que distribuye
trabajos entre las máquinas (problema m
aestro).
�Dada esta distribución, asignaremos los trabajos distribuidos a
cada máquina (subproblema).
�Si una máquina tiene una asignación no factible:
�Determ
inar que trabajos causan la no factibilidad.
�Generar un “nogood” (corte de Benders) que excluya la
asignación de estos trabajos a esa máquina.
�Agregar los cortes de Benders al problema maestro y
solucionarlo nuevamente.
�Repetir hasta que el subproblema sea factible.
�Lo resolveremos como un problema de programación entera.
�Sea la variable binaria x
ij= 1 cuando y
j= i.
Descomposición de Benders
B
end
ers
d
e
Cor
tes∑ j
jy
jf
min
�El problema m
aestro (asignación de trabajos a máquinas) es:
},{
min
10
Ben
der
s
de
C
orte
s
∈
∑
ij
ijij
ij
x
xf
Descomposición de Benders
�Agregaremos una relajación del subproblemaal problema
maestro para agilizar la búsqueda de la solución.
8
5
3
10
8
5
min
55
44
33
22
55
44
33
54
55
44
33
22
11
55
44
33
22
55
44
33
≤+
++
≤+
+≤≤
++
++
≤+
++
≤+
+
∑
BB
BB
BB
BB
AA
AA
AA
AA
AA
AA
AA
AA
AA
AA
AA
AA
AA
AA
AA
AA
ijij
ij
xp
xp
xp
xp
xp
xp
xp
xp
xp
xp
xp
xp
xp
xp
xp
xp
xp
xp
xp
xp
xf
Si los trabajos 3,4,5
son asignados a la
máquina A, sus
tiempos de
procesamiento en
esa máquina deben
estar entre sus
tiempos de
iniciación más
tempranos (2) y de
term
inación más
tardíos (7).
Descomposición de Benders
�La solución del problema maestro es
0 s
o
tra
s
14
53
21
==
==
==
ij
BA
AA
A
x
xx
xx
x
�Distribuir los trabajos 1,2,3,5 a la máquina A, y el trabajo 4 a la
máquina B.
�El subproblema es asignar estos trabajos en las 2 máquinas.
�Para la máquina B es trivial la asignación (solo 1 trabajo).
�Encontramos que los trabajos 2, 3, 5 no pueden ser asignados
en la máquina A.
�Entonces los trabajos 1, 2, 3, 5 no pueden ser asignados a la
máquina A.
Descomposición de Benders 1
)1(
)1(
)1(
53
2≥
−+
−+
−A
AA
xx
x
�Entonces creamos un corte deBenders
(“nogood”) que excluya
la asignación de los trabajos 2, 3, 5 de la máquina A.
�Estos son los trabajos que causan la no factibilidad.
�El corte de Benders es:
�Agregar esta restricción al problema maestro.
�La solución del problema maestro ahora es:
0 s
ot
ras
14
35
21
==
==
==
ij
BB
AA
A
x
xx
xx
x