Professional Documents
Culture Documents
Julho 2007
Dividir e conquistar
Dado o problema
z = max{cx : x S}
como podemos fazer para dividi-lo em um conjunto de problemas
menores, possivelmente mais f
aceis de serem resolvidos e reunir a
informacao obtida com a soluc
ao de cada um dos subproblemas de
forma a resolver o problema original ?
S3
S2
x1 = 0
S0
S1
x2 = 0
x2 = 1
S00
x3 = 0
S000
S10
S01
x3 = 1
S001
x3 = 1
x3 = 0
S010
x2 = 1
x2 = 0
S011
x3 = 0
S100
S11
x3 = 1
S101
x3 = 0
S110
x3 = 1
S111
Alguns fatos
Na arvore de enumerac
ao bin
aria mostrada existem 3 nveis,
cada qual associado a uma decis
ao de fixar uma variavel em 0
ou em 1.
A cada folha da arvore de enumerac
ao corresponde uma
solucao que deveria ser avaliada, caso se deseje resolver um
problema de otimizac
ao definido em S, atraves de
enumeracao completa.
Nesta arvore existem 2n (n = 3) folhas.
(1, 4)
(1, 2)
(1, 3)
(2, 3)
1234
(2, 4)
1243
(3, 4)
1342
(3, 2)
1324
(4, 3)
1432
(42)
1423
Proposicao
Seja S = S1 SK a decomposic
ao de S em subconjuntos
k
menores e seja z = max{cx : x Sk } para k = 1, . . . , K . Seja z k
um limite superior para z k e z k um limite inferior para z k . Entao,
z = maxk {z k } e um limite superior para z e z = maxk {z k } e um
limite inferior para z.
Exemplo 1
27
13
20
20
25
20
15
25
S2
S1
S1
15
S2
Exemplo 2
27
13
21
20
26
18
21
S1
S2
26
S1
21
S2
Exemplo 3
40
13
24
37
24
37
13
13
S1
S2
S1
S2
necess
Nao e possvel podar. E
ario continuar decompondo os
problemas S1 e S2 em subproblemas menores.
zk zk = 9 < z
Observacoes
Os limites inferiores s
ao dados por soluc
oes viaveis (primal
viavel) enquanto que os limites superiores s
ao dados por
dualidade ou por relaxac
oes dos subproblemas.
Nao restringimos como estes limites s
ao obtidos !
Tambem nao restringimos como particionar o domnio.
PI
z
max
4x1
7x1
2x1
x1 ,
x2
2x2
x2
2x2
x2
14
3
3
Z+
max
59
7
74 x3
+ 17 x3
x1
x2
x1 ,
x2 ,
- 27 x3
x3 ,
- 71 x4
+ 27 x4
+ x4
+ 10
7 x4
x4 ,
+ x5
x5
=
=
=
20
7
23
7
+
59
7 .
Assumindo que n
ao dispomos de nenhuma solucao viavel para
o problema, fazemos z = .
Uma vez que z < z, devemos particionar o problema.
Branching
Uma opcao: Branching em Vari
aveis
Dado xj Z que na relaxac
ao linear e vari
avel b
asica e valor
assume x j 6 Z, particionamos S da seguinte forma:
S1 = S {x : xj x j }
S2 = S {x : xj x j }
Observe que:
S = S1 S2 (condic
ao necess
aria para garantia de
otimalidade);
Neste caso, S1 S2 = (economia);
A solucao otima da relaxac
ao linear x viola as restricoes que
determinam o particionamento do domnio. Limites duais
mais fortes devem ser encontrados na soluc
ao das Relaxacoes
Lineares associadas aos subproblemas S1 e S2 .
Alexandre Salles da Cunha
Branching em variaveis
20
7
6 Z, fazemos
S1 = S {x : x1 2}
S2 = S {x : x1 3}
59
7
x1 2
S1
S2
x1 3
Qual n
o em aberto devemos escolher para resolver primeiro ?
Exemplo - reotimizando
Vamos escolher abritrariamente o n
o S1 para explorarmos.
Inserimos entao no modelo a restric
ao x1 2 ou x1 + s = 2 que
pode ser escrita como:
20 1
2
x3 x4 + s = 2 ou
7
7
7
2
6
1
x3 x4 + s =
7
7
7
Entao temos o programa linear a resolver:
Calculando LP(S1 )
z1
max
59
7
x1
x2
x1 ,
x2 ,
47 x3
+ 17 x3
- 72 x3
- 71 x3
x3 ,
71 x4
+ 27 x4
+ x4
+ 10
x
7 4
72 x4
x4 ,
+ x5
x5
+s
s
=
=
=
=
20
7
23
7
- 67
+
Resolvendo LP(S1 )
59
7
LP(S1 ) :
x1 2
z 1 = 15
2
x 1 = (2, 21 )
S1
x1 3
S2
59
7
x1 2
LP(S1 ) :
z 1 = 15
2
x 1 = (2, 21 )
x1 3
S1
x2 = 0
S11
S2
x2 1
S12
Dentre os n
os ativos {S2 , S11 , S12 }, arbitrariamente escolhemos S2
para explorar.
Resolvendo LP(S2 )
Observando a u
ltima restric
ao do modelo 2x1 2x2 3,
o e
verificamos que LP(Ss ) e invi
avel. Ent
ao z 2 = e o n
podado por inviabilidade. Os melhores limites inferior e superior
globais nao podem ser atualizados.
59
7
x1 2
LP(S1 ) :
x1 3
LP(S2 ) :
z 1 = 15
2
S1
x 1 = (2, 21 )
S2
z 2 =
inviavel
x2 = 0
S11
x2 1
S12
Escolhendo o proximo no
Dentre os n
os ativos {S11 , S12 }, arbitrariamente escolhemos S12
para explorar.
59
7
x1 2
LP(S1 ) :
x1 3
LP(S2 ) :
z 1 = 15
2
x 1 = (2, 21 )
S1
S2
z 2 =
inviavel
x2 = 0
S11
x2 1
S12
Avaliando LP(S12)
A solucao x 12 de LP(S12 ) e inteira.
Neste caso z 12 fornece um limite inferior (primal) global,
atualizamos z de para z 12 = 7.
O n
o S12 pode ser podado por otimalidade.
59
7
x1 2
LP(S1 ) :
x1 3
LP(S2 ) :
z 1 = 15
2
x 1 = (2, 21 )
S1
S2
z 2 =
inviavel
x2 = 0
S11
x2 1
S12
LP(S12 ) :
z 12 = 7
x 12 = (2, 1)
59
7
x1 2
LP(S1 ) :
x1 3
LP(S2 ) :
z 1 = 15
2
x 1 = (2, 21 )
S1
S2
z 2 =
inviavel
x2 = 0
S11
x2 1
S12
LP(S12 ) :
z 12 = 7
x 12 = (2, 1)
Resolvendo LP(S1 )
A solucao x 11 de LP(S11 ) e fracion
aria e vale z 11 = 6 < z e o
n
o pode ser podado por limites duais.
59
7
x1 2
LP(S1 ) :
LP(S2 ) :
z 1 = 15
2
x 1 = (2, 12 )
S1
S2
z 2 =
inviavel
x2 = 0
LP(S11 ) :
x1 3
S11
z 11 = 6
x 11 = ( 32 , 0)
x2 1
S12
LP(S12 ) :
z 12 = 7
x 12 = (2, 1)
x1 2
LP(S1 ) :
LP(S2 ) :
z 1 = 15
2
S1
x 1 = (2, 12 )
S2
z 2 =
inviavel
x2 = 0
LP(S11 ) :
x1 3
x2 1
S11
S12
z 11 = 6
x 11 = ( 32 , 0)
LP(S12 ) :
z 12 = 7
x 12 = (2, 1)
x = (2, 1), z = 7
Interpretacao geometrica
x1 2
x1 3
x2
( 20
, 3)
7
inviavel
2
2x1 x2 2
(2, 1)
x2 1
(2, 12 )
x1
1
Paralelizacao
Armazenamento
zz
z .
Obtendo solucoes vi
aveis de melhor qualidade
Uso de heursticas primais ao longo da arvore baseadas em
informacao de PL
Cutoffs
Escolhas de implementac
ao: regras de selec
ao e de branching
Alexandre Salles da Cunha
Regras de Branching
Branching em vari
aveis: f
aceis de implementar, comuns na
maioria dos pacotes comerciais. Entretanto, podem gerar
arvores desbalanceadas e via de regra e desej
avel estabelecer
prioridade de branching entre as vari
aveis.
Branching em restric
oes: mais especficas, dependentes do
problema e assim sendo, podem produzir resultados muito
melhores para alguns problemas especficos.
XX
i M jN
n
X
cij xij +
f j yj
jN
xij = 1, i = 1, . . . , m
j=1
xij yj , i = 1, . . . , m, j = 1, . . . , n
x Bnm , y Bn
Questao
Todas as variaveis bin
arias possuem a mesma relevancia para o
branching ?
Alexandre Salles da Cunha
A resposta e nao
jt
jt+1
Selecao de nos
Solucoes viaveis mais r
apido vs melhorar o limite dual.
Por um lado, o n
umero de n
os ativos cresce mais rapidamente
se o n
o a ser explorado e sempre escolhido dentre aqueles
mais pr
oximos da raiz da
arvore. Tipicamente, os limites duais
melhoram mais rapidamente neste caso.
Por outro lado, ao escolher n
os mais distantes da raiz, os
limites duais globais melhoram muito pouco. Esta estrategia
permite encontrar soluc
oes vi
aveis mais rapidamente.
Uma solucao de compromisso
Primeiro implementar uma busca em produndidade, procurando
uma solucao viavel inicial. Em seguida, alternar busca em largura
com busca em profundidade.
Alexandre Salles da Cunha