Introducción a la Programación de Restricciones y …public.tepper.cmu.edu/jnh/buapesp.pdf ·...

94
Introducción a la Programación de Restricciones y Optimización Tutorial Septiembre 2005 BUAP, Puebla, México John Hooker Carnegie Mellon University

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

Agenda

�Ejemplo: Asignación de máquinas

�“Edge finding”

�Descomposición de Benders y “nogoods”

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.

Problema de coloración de grafos que puede ser resuelto

manteniendo arco-consistencia.

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

División de Intervalos

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

x 1

x 2

x 1

x 2

]1,25.0[

2∈

x]

75.1,1[2∈

x

]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

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

=

≥=≤

=

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

∈∈∈

∈∈

qq

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

qq

q

qq

q

qq

q

++

≤+

+≤

−−

−+

−−

+≤

que se reducen a

32

32

1

40

08

50

80

07

00

20

30

15

00

qq

qq

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

qq

q

ki

q

jv

qA

jq

Av

iq

qq

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

qq

qq

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.

Ejemplo: Asignación de Máquinas

�“Edge finding”

�Descomposición de Benders y “nogoods”

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

Descomposición de Benders

�Entonces asignamos los trabajos 1, 2, 5 a la máquina A,

y los trabajos 3, 4 a la máquina B.

�Estas asignaciones son factibles.

�La solución obtenida es óptima con costo mínimo

de 130.