Você está na página 1de 33

Relaxao Lagrangeana

Claudio Barbieri da Cunha

Escola Politcnica

cbcunha@usp.br
Claudio Barbieri da Cunha
Motivao
Princpio:
muitos problemas de programao inteira difceis podem
ser visualizados como problemas fceis, que se tornam
complicados quando adicionado um conjunto reduzido de
restries

Relaxao Lagrangeana uma tcnica de decomposio


que pode ser aplicada a um problema de otimizao em
que as restries complicadas so substitudas por um
ou mais termos com penalidades introduzidos na
funo objetivo

Claudio Barbieri da Cunha


Viso Geral - II
Decomposio:
Restries fceis
Restries que complicam o problema

Restries complicadas so movidas para a FO

Para problemas de min/max obtem-se um limite


inferior (LB)/superior (UB) da soluo tima

Em muitos casos, esse limitante encontra-se muito


prximo do valor timo da funo objetivo.

Claudio Barbieri da Cunha


Conceito
Seja (P) um problema de programao inteira, cuja
formulao matemtica pode ser escrita como:

Z = min cx (P)
sujeito a:
Ax = b
Dx f
x 0 e inteiro

onde x um vetor de dimenses (n 1),


b tem dimenses (m 1), f do tipo (k 1) e todas as demais
matrizes tm as dimenses adequadas decorrentes.
Claudio Barbieri da Cunha
Conceito - II
Assume-se que as restries de (P) tenham sido
separadas em dois conjuntos
Ax = b
Dx f

e que o problema (P) possa ser resolvido com facilidade


caso o conjunto de restries ditas difceis, ou seja,

Ax = b

seja removido.

Claudio Barbieri da Cunha


Conceito - III
Seja = {1, 2, ..., m} um vetor (m 1) de multiplicadores
de Lagrange.

O problema Lagrangeano obtido removendo-se as m


restries Ax = b, e adicionando-se o termo (Ax b) funo
objetivo de (P), devidamente penalizado pelos
multiplicadores , o que resulta no seguinte problema
relaxado (RL):

Claudio Barbieri da Cunha


Conceito - IV
Assumindo-se que (P) seja vivel
e que o conjunto de solues viveis de (RL) seja finito,
ento ZD() finito para todo .

Ao se removerem as restries Ax = b, o valor timo ZD()


corresponde a um limitante inferior de Z, pois o problema
(RL) torna-se menos restrito; portanto ZD() Z. Seja x* o
vetor correspondente soluo tima de (P).
Conseqentemente,

Caso Ax = b seja substitudo por Ax b, necessrio


impor 0 para que ZD() cx* + (Ax* b) Z.
Analogamente, se Ax b ento 0 para que ZD() Z.

Claudio Barbieri da Cunha


Resolvendo o problema relaxado
como selecionar um valor adequado para o vetor ?
para que valores de se obtm uma soluo ZD()
igual ou muito prxima de Z ?

De acordo com Fisher (1981), a melhor escolha para estaria na soluo tima
do problema dual de otimizao:

Z D* = max Z D ( )

Sabe-se ainda que:

Z D ( ) Z D* Z * cx

Claudio Barbieri da Cunha


Condies de otimalidade

o se um vetor de multiplicadores de Lagrange e x uma soluo


vivel para o problema (P) que satisfaz a condio ZD() = cx = Z,
ento ZD() corresponde soluo tima para o problema relaxado
(RL), e x= x* a soluo tima para o problema (P).

o se para alguma escolha do vetor de multiplicadores de Lagrange ,


a soluo x* da relaxao Lagrangeana (RL) for vivel para o
problema (P), ento x* a soluo tima para o problema (P) e a
soluo tima para problema relaxado (RL).

Claudio Barbieri da Cunha


Exemplo: Generalized Assigned Problem (GAP)

Claudio Barbieri da Cunha


Relaxao Lagrangiana

Claudio Barbieri da Cunha


Exemplo: Problema de caminho mnimo
Dado: grafo G = (N,A)
cij custo no (i,j)
tij tempo de viagem no arco (i,j)

Z* = Min c xij
( i , j ) A ij
1 if i = s

s. t. j xij j x ji = 1 if i = t
0 otherwise

( i , j )A tij xij T Complicating constraint

=xij 0 or 1 for all ( i , j ) A


Claudio Barbieri da Cunha
Exemplo
Encontrar o caminho mnimo entre o n
1 e o n 6 com tempo total de viagem
no superior a 10

(cij,tij)
i j
(1,1)
2 4
(1,10) (2,3) (1,7)

1 (1,2) (10,1) 6
(5,7)
(10,3) (2,2)
3 5
(12,3)

Claudio Barbieri da Cunha


Caminho Mnimo com restrio temporal
Problemas de caminho mnimo so fceis de resolver
Problemas de caminho mnimo com restries de tempo
total de viagem so NP-hard.

Diz-se que um problema de otimizao restrito Y uma


relaxao de um problema X se Y obtido de X atravs
da elminao de uma ou mais restries.

Assim, relaxamos a restrio que complica o problema


e usamos uma heuristica para penalizar o tempo total
de viagem acima do mximo permitido.

Claudio Barbieri da Cunha


Caminho Mnimo com restrio temporal
Passo 1: (relaxao). Resolva o problema sem a
restrio complicadora
Se a soluo obtida satisfizer essa restrio
complicadora, ento tima para o problema original.

c xij
( i , j ) A ij
1 if i = s

j xij j x ji =
1 if i = t
0 otherwise

=xij 0 or 1 for all ( i , j ) A

Claudio Barbieri da Cunha


Qual o caminho mnimo do n 1 para o n 6 ?

(1,1)
2 4
(1,10) (2,3) (1,7)

1 (1,2) (10,1) 6
(5,7)
(10,3) (2,2)
3 5
(12,3)

Claudio Barbieri da Cunha


Caminho mnimo 1-2-4-6
Tempo total de
1-2-4-6 18.
A fim de reduzir o
(1,1)
2 4 tempo total de
(1,10) (2,3) (1,7) viagem, introduz-se
uma penalidade
1 (1,2) (10,1) 6 proporcional ao
(5,7) tempo de viagem
(10,3) (2,2) em cada arco
3 5
(12,3) Suponha uma
penalidade de $1
por unidade de
tempo.
Claudio Barbieri da Cunha
Qual o novo caminho mnimo de 1 para 6?
1-2-5-6
custo modificado
igual a 20.
2 Tempo total = 15
2 4
11 5 8 Custo total = 5

1 11 6
3
12 1-2-5-6 tambm
13 4 no vivel
3 5
15
Aumenta-se a
penalidade
para $2
Claudio Barbieri da Cunha
Qual o novo caminho mnimo de 1 para 6?
O caminho
1-2-5-6 continua
sendo o timo
3 para
2 4
15
penalidade = $2
21 8

1 12 6
5
19
16 6
3 5
18

Claudio Barbieri da Cunha


E h um outro caminho mnimo alternativo
1-2-5-6
com custo
modificado = 35.
3
2 4 1-3-2-5-6 tambm
21 8 15 timo

1 12 6 E o que se pode
5
falar para o
19 problema
16 6
original?
3 5
18 Tempo total = 10
Custo total = 15

Claudio Barbieri da Cunha


Anlise paramtrica
Custo Tempo Custo penalizado
Penalid penalizado Custo Viagem - 10 * penalidade
0 3 3 18 3
1 20 5 15 10
2 35 5 15 15
3 45 15 10 15
4 55 15 10 15
5 64 24 8 14
6 72 24 8 12
7 80 24 8 10
8 88 24 8 8
9 96 24 8 6
10 104 24 8 4
Claudio Barbieri da Cunha
Anlise paramtrica das penalidades

30
25
Custo
20
Tempo de viagem
15
10 Custo penalizado -
10 * penalidade
5
0
0 2 4 6 8 10
Penalidade
Limitante
Pode-se definir qualquer penalidade nos tempos

Para um caminho P cP = (i,j)P cij

tP = (i,j)P tij

Para e P cP() = (i,j)P [cij + tij]

Suponha que 0 e que P seja o caminho de mnimo custo no


grafo com custos modificados cP(). Ento cP() - T um
limitante inferior da distncia total no caminho mnimo restrito.

Claudio Barbieri da Cunha


Montando a relaxao Lagrangeana
z* = min c xij
( i , j ) A ij
1 if i = s

s.t. x j x ji =
j ij 1 if i = t
0 otherwise

( i , j )A tij xij T
=xij 0 or 1 for all ( i , j ) A

Para cada 0, substitua a funo objetivo por:

z() = min ( i , j )A ij
c xij + ( ( i , j )A t ij xij T )
= ( i , j ) A
(cij + t ij ) xij T

Assim z() z* para 0 pois t xij T


( i , j ) A ij
Claudio Barbieri da Cunha
Relaxao Lagrangeana
L() = min ( i , j ) A
(cij + t ij ) xij T
1 if i = s

s.t. j xij j x ji =
1 if i = t
0 otherwise

=xij 0 or 1 for all ( i , j ) A

A relaxao Lagrangeana foi obtida penalizando a


restrio e ento eliminando (relaxando) a mesma

Teorema: L() z() z*

Claudio Barbieri da Cunha


Aplicao ao problema de caminho mnimo restrito

L() = min ( i , j ) A
(cij + t ij ) xij T

Seja c(P) o custo do caminho P



Seja c ( P ) o custo modificado do caminho P

Suponha que P* corresponda ao caminho mnimo


com custos modificados e suponha que
c=
( P *) c( P *) + T
Ento P* timo

Prova
c ( P *) T= L( ) z* c( P *)= c ( P *) T .
Claudio Barbieri da Cunha
Relaxao Lagrangiana
z* = min cx
sujeito a Ax b, (P)
x X.

L() = min cx + (Ax - b) (P())


sujeito a x X.

L* = max (L() : 0).

Portanto, deseja-se maximizar em , ao mesmo tempo


que minimiza-se em x.
(1,1)
Suponha agora que 2 4
(1,10) (2,3) (1,7)
se deseje o caminho
de mnimo custo
1 (1,2) (10,1) 6
entre os ns 1 e 6
(5,7)
com restrio de
durao mxima da (10,3) (2,2)
viagem igual a 14 (ao 3 5
invs de 10) (12,3)

P cP tP cP+ (tP 14)

1-2-4-6 3 18 3+4
1-2-5-6 5 15 5+
1-2-4-5-6 14 14 14
etc.
2
L* = max (L(): 0)
Custo composto no caminho
Custo no Tempo no Custo composto
Caminho P Caminho c P Caminho tP c P + (t P -T ) =0 =1 =2 =3 =4 =5
1-2-4-6 3 18 3 + 4 3 7 11 15 19 23
1-2-5-6 5 15 5+ 5 6 7 8 9 10
1-2-4-5-6 14 14 14 14 14 14 14 14 14
1-3-2-4-6 13 13 13 13 12 11 10 9 8
1-3-2-5-6 15 10 15 4 15 11 7 3 -1 -5
1-3-2-4-5-6 24 9 24 5 24 19 14 9 4 -1
1-3-4-6 16 17 16 + 3 16 19 22 25 28 31
1-3-4-5-6 27 13 27 27 26 25 24 23 22
1-3-5-6 24 8 24 6 24 18 12 6 0 -6
Otimizao por Subgradiente
Permite resolver o problema de determinao dos
multiplicadores

k +1
= + t k ( Ax b)
k k

k (Z D* Z D ( k ) )
tk = 2
Ax b
k

tk 0

k (UB Z D ( k ) )

k
tk = 2
t
j =1 k
Ax k b

Claudio Barbieri da Cunha


k k t P -T Z D ( k ) k tk
0 0,0000 4 3,0000 0,80000 1,0500
1 4,2000 -4 -1,8000 0,80000 0,8400
2 0,8400 4 6,3600 0,80000 0,4320
3 2,5680 -4 4,7280 0,80000 0,5136
4 0,5136 4 5,0544 0,80000 0,4973
5 2,5027 -4 4,9891 0,40000 0,2503
6 1,5016 1 6,5016 0,40000 3,3993
7 4,9010 -6 -5,4059 0,40000 0,2267
8 3,5406 -4 0,8376 0,40000 0,3541
9 2,1244 -4 6,5026 0,40000 0,2124
10 1,2746 1 6,2746 0,40000 3,4902
11 4,7648 -6 -4,5886 0,40000 0,2177
12 3,4589 -4 1,1646 0,20000 0,1729
13 2,7671 -4 3,9316 0,20000 0,1384
14 2,2137 -4 6,1453 0,20000 0,1107
15 1,7709 1 6,7709 0,20000 1,6458
16 3,4167 -4 1,3330 0,20000 0,1708
17 2,7334 -4 4,0664 0,20000 0,1367
k k t P -T Z D ( k ) k tk
.... .... .... .... .... ....
15 1,7709 1 6,7709 0,20000 1,6458
16 3,4167 -4 1,3330 0,20000 0,1708
17 2,7334 -4 4,0664 0,20000 0,1367
18 2,1867 -4 6,2531 0,10000 0,0547
19 1,9680 1 6,9680 0,10000 0,8032
20 2,7712 -4 3,9150 0,10000 0,0693
21 2,4941 -4 5,0235 0,10000 0,0624
22 2,2447 -4 6,0212 0,05000 0,0281
23 2,1325 -4 6,4701 0,05000 0,0267
24 2,0258 -4 6,8966 0,05000 0,0253
25 1,9246 1 6,9246 0,00250 0,0202
26 1,9447 1 6,9447 0,00250 0,0201
27 1,9649 1 6,9649 0,00250 0,0201
28 1,9850 1 6,9850 0,00250 0,0200
29 2,0050 -4 6,9800 0,00250 0,0013
30 2,0000 -4 7,0000 0,00250 0,0012
31 1,9950 1 6,9950 0,00250 0,0200
32 2,0150 -4 6,9400 0,00250 0,0013