Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
handout.pdf — October 30, 2006 — 1
��������
�������������������� �
�������
�������������������� �
�������
�������������������� �
�������
��������������������
Universidade Estadual de Campinas - UNICAMPInstituto de Computacao - IC
MO824 - Topicos em Otimizacao Combinatoria
Algoritmos de Planos de Corte e Desigualdades Validas
Cid Carvalho de Souza
2o semestre de 2005
C. C. de Souza (IC-UNICAMP) Algoritmos de Planos de Corte 2o semestre de 2005 1 / 1
Algoritmos de planos de corte
Ideia:1 resolver a relaxacao linear de z = max{cx : x ∈ Z
n+,Ax ≤ b
︸ ︷︷ ︸
X
}.
2 seja x∗ a solucao otima da relaxacao.Pergunta: x∗ ∈ Z
n+ ?
SIM ⇒ x∗ e solucao otima do PLI. PARA.
NAO ⇒ resolve o problema da separacao para x∗ e conv(X ).
3 se o problema da separacao retornar uma desigualdade πx ≤ π0 que esatisfeita por todos pontos de conv(X ) mas tal que πx∗ > π0, incluı-lana formulacao e voltar ao Passo 1.Se nao, PARA.
Definicao: Seja X ⊆ Rn. A desigualdade πx ≤ π0 valida para X se e
somente se πy ≤ π0 para todo y ∈ X .
C. C. de Souza (IC-UNICAMP) Algoritmos de Planos de Corte 2o semestre de 2005 2 / 1
handout.pdf — October 30, 2006 — 2
Algoritmos de planos de corte: observacoes
A cada iteracao do algoritmo de planos de corte a formulacao se“aproxima mais” de conv(X ).
Em geral, na pratica, para problemas NP-difıceis, o algoritmo deveser interrompido bem antes de se chegar a conv(X ). Por que ?
Quais desigualdades levam o algoritmo a encerrar mais rapidamente ?
Como obte-las ?
E SEMPRE possıvel encontrar uma desigualdade no passo 3 egarantir que o algoritmo para em um tempo finito ?
C. C. de Souza (IC-UNICAMP) Algoritmos de Planos de Corte 2o semestre de 2005 3 / 1
Exemplos de desigualdades validas
Conjunto 0-1 puro:
X = {x ∈ B5 : 3x1 − 4x2 + 2x3 − 3x4 + x5 ≤ −2};
⇒ x2 e x4 nao podem ser ambos nulos: x2 + x4 ≥ 1;⇒ x1 = 1 implica x2 e x4 devem ser 1: 2x1 ≤ x2 + x4.
Conjunto 0-1 misto:X = {(x , y) ∈ R× B : x ≤ 10y , 0 ≤ x ≤ 5};Desigualdade valida: x ≤ 5y .
y
x
x ≤ 5
x ≤ 10y
x ≤ 5y
Chegou-se a envoltoria convexa !
C. C. de Souza (IC-UNICAMP) Algoritmos de Planos de Corte 2o semestre de 2005 4 / 1
handout.pdf — October 30, 2006 — 3
Exemplos de desigualdades validas
No caso do problema de localizacao de facilidades com capacidades,tınhamos o modelo
∑
i∈M xij ≤ bjyj , ∀j ∈ N∑
j∈N xij = ai , ∀i ∈ N
xij ≥ 0, yj ∈ {0, 1}.
Desigualdade valida: xij ≤ min{ai , bj}yj .
Conjunto inteiro misto:X = {(x , y) : x ≤ Cy , 0 ≤ x ≤ b, y ∈ Z+} onde C nao divide b.Defina: γ = b −
(⌈ b
C⌉ − 1
)C e k = ⌈ b
C⌉.
Desigualdade valida: x ≤ b − γ(k − y).Por exemplo, se X = {(x , y) : x ≤ 5y , 0 ≤ x ≤ 14, y ∈ Z+},γ = 4 e k = 3 e a desigualdade obtida e x ≤ 4y + 2;
C. C. de Souza (IC-UNICAMP) Algoritmos de Planos de Corte 2o semestre de 2005 5 / 1
Exemplos de desigualdades validas
y x ≤ 5y x ≤ 4y + 20 x ≤ 0 x ≤ 21 x ≤ 5 x ≤ 62 x ≤ 10 x ≤ 103 x ≤ 15 x ≤ 14 (x ≤ 15 redundante)
x = Cy
xbx ≤ b − γ(k − y)
y
y = ⌈ bC⌉ − 2
y = ⌈ bC⌉ − 1
y = ⌈ bC⌉ A desigualdade valida e dada
pela reta que passa nos pontos
x0 = b,
y0 = ⌈ bC⌉;
x1 =(⌈ b
C⌉ − 1
)C ,
y1 = ⌈ bC⌉ − 1.
C. C. de Souza (IC-UNICAMP) Algoritmos de Planos de Corte 2o semestre de 2005 6 / 1
handout.pdf — October 30, 2006 — 4
Exemplos de desigualdades validas
Conjunto Combinatorio:X = {vetores de incidencia dos emparelhamentos de um grafo} ouX = {x ∈ Z
n+ :
∑
e∈δ(i) xe ≤ 1,∀i ∈ V }.Se T ⊆ V e |T | e ımpar, temos a seguinte desigualdade valida:∑
e∈E(T ) xe ≤|T |−1
2 .Arredondamento inteiro:X = {x ∈ Z
4+ : 13x1 + 20x2 + 11x3 + 6x4 ≥ 72}.
A seguinte desigualdade e valida para X :
13
11x1 +
20
11x2 +
11
11x3 +
6
11x4 ≥
72
11.
Como estamos no ortante positivo, outra desigualdade valida seria:
2x1 + 2x2 + x3 + x4 ≥ 66
11.
E como as variaveis x sao inteiras, chega-se a desigualdade valida
2x1 + 2x2 + x3 + x4 ≥ 7.C. C. de Souza (IC-UNICAMP) Algoritmos de Planos de Corte 2o semestre de 2005 7 / 1
Como gerar desigualdades validas
Como encontrar desigualdades validas para P = {x ∈ R+ : Ax ≤ b} ?(Programacao Linear !)
Proposicao 1:
A desigualdade πx ≤ π0 e valida para P 6= ∅ se e somente seexistem vetores u e v nao negativos tais que uA− v = π eub ≤ π0 (ou u ≥ 0 tal que uA ≥ π e ub ≤ π0).
Prova:
Primal: z = max{πx : Ax ≤ b︸ ︷︷ ︸
u
,−x ≤ 0︸ ︷︷ ︸
v
, x irrestrito}.
Dual: w = min{ub : uA− v = π, u ≥ 0, v ≥ 0}.Desigualdade Valida: z ≤ π0 ≡ w ≤ π0 ≡ ub ≤ π0, ondeuA− v = π, u ≥ 0, v ≥ 0. �
C. C. de Souza (IC-UNICAMP) Algoritmos de Planos de Corte 2o semestre de 2005 8 / 1
handout.pdf — October 30, 2006 — 5
Como gerar desigualdades validas
Para PL toda desigualdade valida e obtida a partir de combinacoes linearesnao-negativas das desigualdades em Ax ≤ b.E para PLI ?
Observacao trivial: arredondamento
Se X = {y ∈ Z : y ≤ b} entao y ≤ ⌊b⌋ e valida para X .
Gerando desigualdades validas para PLI (I)
Combinacao linear nao-negativa de desigualdades validas seguida dearredondamento inteiro do RHS.
C. C. de Souza (IC-UNICAMP) Algoritmos de Planos de Corte 2o semestre de 2005 9 / 1
Exemplo: emparelhamento em grafos
desigualdades originais:∑
e∈δ(i) xe ≤ 1,∀i ∈ V ;
Seja T ⊆ V com T ımpar. Multiplicar todas as desigualdadesoriginais dos vertices em T por 1/2 e somar:
∑
i 6=j ,{i ,j}⊂T
xij +1
2
∑
i∈T , j 6∈T
xij ≤|T |
2.
Como o segundo termo do LHS e nao-negativo, chega-se a
∑
e∈E(T ) xe ≤|T |2 .
Considerando que as variaveis sao inteiras, pode-se concluir que aseguinte desigualdade e valida para o politopo dos emparelhamentos:
∑
e∈E(T )
xe ≤ ⌊|T |
2⌋.
C. C. de Souza (IC-UNICAMP) Algoritmos de Planos de Corte 2o semestre de 2005 10 / 1
handout.pdf — October 30, 2006 — 6
Gerando desigualdades validas para PLI (II)
Arredondamento dos coeficientes das variaveis inteiras mantendo a direcaoda desigualdade.
Exemplo 1:
X = {5.27x ≤ 11.32, com x ∈ Z}.Desigualdade valida: 5x ≤ 11.32 =⇒ 5x ≤ 11 =⇒ x ≤ ⌊115 ⌋ = 2.
Exemplo 2:
−x1 + 2x2 ≤ 4 (5/11) (4/11)5x1 + x2 ≤ 20 (3/22) (3/11)
−2x1 − 2x2 ≤ −7 (0) (0)x1, x2 ∈ Z+.
Desigualdade valida 1: (5/22)x1 + (23/22)x2 ≤ (100/22) ou, aposarredondamento, x2 ≤ ⌊(100/22)⌋ = 4.Desigualdade valida 2: x1 + x2 ≤ 6.
C. C. de Souza (IC-UNICAMP) Algoritmos de Planos de Corte 2o semestre de 2005 11 / 1
Procedimento de Chvatal-Gomory
Procedimento de Chvatal-Gomory
Seja X = P ∩ Zn, onde P = {x ∈ R
n+ : Ax ≤ b}, A : m × n e u ∈ R
m+.
1∑
j∈N(ua.j)xj ≤ ub e valida para X ;
2∑
j∈N⌊ua.j⌋xj ≤ ub e valida para X ;
3∑
j∈N⌊ua.j⌋xj ≤ ⌊ub⌋ e valida para X ;
Teorema 2
Toda desigualdade valida para X pode ser obtida pela aplicacao doprocedimento de Chvatal-Gomory em um numero finito de vezes.
C. C. de Souza (IC-UNICAMP) Algoritmos de Planos de Corte 2o semestre de 2005 12 / 1
handout.pdf — October 30, 2006 — 7
Inclusao de desigualdades validas a priori
Formulacao: P = {x ∈ Rn+ : Ax ≤ b}, X = P ∩ Z
n.
Qx ≤ d : conjunto de desigualdades validas para X .
Nova formulacao: P ′ = P ∩ {Qx ≤ d}.
Usar P ′ como entrada para o branch-and-bound !
vantagem: se a formulacao P ′ for muito melhor que a formulacao P,permitira que o pruning seja feito mais cedo !desvantagem: se o numero de desigualdades em Qx ≤ d for muitogrande, tornara muito lenta a resolucao das relaxacoes lineares !
C. C. de Souza (IC-UNICAMP) Algoritmos de Planos de Corte 2o semestre de 2005 13 / 1
Como encontrar desigualdades validas a priori
Decomposicao de X : X = X1 ∩ X2.Encontrar desigualdades validas para conv(X2) e mais facil do que paraconv(X ).
Exemplo: uncapacitated facility location
Formulacao:∑n
j=1 xij = 1, i = 1, . . . ,m,
(Pj)
{ ∑mi=1 xij ≤ myj , j = 1, . . . , n, .
xij ≥ 0, 1 ≥ yj ≥ 0
A envoltoria convexa dos pontos inteiros de Pj (Xj) e dada por:
conv(Xj) = {xij ≤ yj , xij ≥ 0, 1 ≥ yj ≥ 0, i = 1, . . . ,m, j = 1, . . . , n}.
Substituindo Pj por conv(Xj) chega-se a uma formulacao forte !
Os limitantes melhoram muito e as solucoes da relaxacao sao quaseinteiras.
C. C. de Souza (IC-UNICAMP) Algoritmos de Planos de Corte 2o semestre de 2005 14 / 1
handout.pdf — October 30, 2006 — 8
Algoritmo de planos de corte
Especializando para uma famılia de desigualdades
Seja X = P ∩ Zn, onde P = {x ∈ R
n+ : Ax ≤ b}.
Seja F uma famılia de desigualdades validas para X e considere oproblema de PLI dado por z = max{cx : x ∈ X}.
Passo 0: t ← 0 e P0 ← P;Passo 1: resolver a relaxacao linear (LPt): z t = max{cx : x ∈Pt}, obtendo a solucao otima x t .Passo 2: Se x t e inteira, retorne (z t , x t) e pare.Se nao, resolver o problema de separacao para x t e F e ir parao passo 3.Passo 3: Se nao encontrou desigualdade violada por x t em F ,pare e retorne o limitante superior z t .Se nao, seja πtx ≤ πt
0 a desigualdade violada por x t em F .Faca Pt+1 = Pt ∩ {x ∈ R
n+ : πtx ≤ πt
0}, t ← t + 1 e volte aopasso 1.
C. C. de Souza (IC-UNICAMP) Algoritmos de Planos de Corte 2o semestre de 2005 15 / 1
Algoritmo de planos de corte (cont.)
Comentarios:
P0 ⊃ P1 ⊃ P2 ⊃ . . . ⊃ Pt ⊃ . . .;
Com a adicao de cortes o limite superior decresce a cada iteracao;
A partir da segunda relaxacao linear, resolver o LP usando o dualsimplex;
Se for conhecido um limitante inferior z t , o algoritmo pode serinterrompido na k-esima iteracao usando um pruning por otimalidadequando z t − z t ≤ ǫ (fixado a priori).
Usando limitantes inferiores, e possıvel ainda fixar variaveis por custoreduzido;
IMPORTANTE: na pratica, e melhor adicionar varias desigualdadesvioladas a cada iteracao do que uma unica !
C. C. de Souza (IC-UNICAMP) Algoritmos de Planos de Corte 2o semestre de 2005 16 / 1
handout.pdf — October 30, 2006 — 9
Como garantir que uma solucao inteira seja atingida ?
F = {todas desigualdades obtidas de P pelo procedimento CG};
Ou seja, no passo 2, se x t nao e inteira, ela viola uma desigualdadeCG;
Preciso de um algoritmo para encontrar esta desigualdade !
O corte fracionario de Gomory
Seja B uma base otima da relaxacao. Reescrevendo a formulacao:
max z = z0 +∑
j∈N c jx∗j (c j = cj − cBB−1a.j)
s.a. x∗B,u +∑
j∈N aujx∗j = au0 , u ∈ M (a.j = B−1a.j)
x∗ ≥ 0 (au0 = [B−1b]u)
Se x∗ 6∈ Zn, existe u ∈ M tal que x∗B,u e fracionario (au0 nao e inteiro);
Aplicar o procedimento CG nesta linha do tableau !
C. C. de Souza (IC-UNICAMP) Algoritmos de Planos de Corte 2o semestre de 2005 17 / 1
Corte fracionario de Gomory
Aplicando CG a linha u
x∗B,u +∑
j∈N aujx∗j = au0
x∗B,u +∑
j∈N⌊auj⌋x∗j ≤⌊au0⌋
Subtraindo-se as duas expressoes chega-se a:
∑
j∈N (auj − ⌊auj⌋)︸ ︷︷ ︸
fuj
x∗j ≥ (au0 − ⌊au0⌋)︸ ︷︷ ︸
fu0
,
onde 0≤fuj ≤ 1 e 0<fu0 < 1 (parte fracionaria).
Corte fracionario de Gomory∑
j∈N
fujxj ≥ fu0
Para x inteiro, a folga desta restricao e inteira ! (Por que ?)
C. C. de Souza (IC-UNICAMP) Algoritmos de Planos de Corte 2o semestre de 2005 18 / 1
handout.pdf — October 30, 2006 — 10
Exemplo
max z = 3x1 + 4x2
s.a. x1 + 2x2 ≤ 11 x1 + 2x2 + x3 = 117x1 + x2 ≤ 21 7x1 + x2 + x4 = 21x1, x2 ∈ Z+
x1 x2 x3 x4 RHSz -3 -4 0 0 0
x3 1 2 1 0 11x4 7 1 0 1 21
x1 x2 x3 x4 RHSz -1 0 2 0 22
x2 1/2 1 1/2 0 11/2x4 13/2 0 -1/2 1 31/2
x1 x2 x3 x4 RHSz 0 0 25/13 2/13 317/13
x2 0 1 7/13 -1/13 56/13x1 1 0 -1/13 2/13 31/13
1o corte de Gomory:
12
13x3 +
2
13x4 ≥
5
13.
Inserindo a variavel de folga: (tem que ser inteira)
−1213x3 −
213 + x5 = − 5
13 (restricao da forma ≤)
C. C. de Souza (IC-UNICAMP) Algoritmos de Planos de Corte 2o semestre de 2005 19 / 1
Exemplo (cont.)
x1 x2 x3 x4 x5 RHSz 0 0 25/13 2/13 0 317/13
x2 0 1 7/13 -(1/13) 0 56/13x1 1 0 -(1/13) 2/13 0 31/13x5 0 0 -(12/13) -(2/13) 1 -(5/13)
Usar o dual simplex !
x1 x2 x3 x4 x5 RHSz 0 0 1 0 1 24
x2 0 1 1 0 -(1/2) 9/2x1 1 0 -1 0 1 2x4 0 0 6 1 -(13/2) 5/2
2o corte de Gomory:
(1/2)x5 ≥ 1/2 ou − (1/2)x5 + x6 = −(1/2).
C. C. de Souza (IC-UNICAMP) Algoritmos de Planos de Corte 2o semestre de 2005 20 / 1
handout.pdf — October 30, 2006 — 11
Exemplo (cont.)
x1 x2 x3 x4 x5 x6 RHSz 0 0 1 0 1 0 24
x2 0 1 1 0 -(1/2) 0 9/2x1 1 0 -1 0 1 0 2x4 0 0 6 1 -(13/2) 0 5/2x6 0 0 0 0 -(1/2) 1 -(1/2)
Dual simplex ...
Proxima iteracao: x∗1 = 1, x∗2 = 5 e z∗ = 23.Solucao otima inteira !
Cortes de Gomory em funcao das variaveis originais:
1o: 2x1 + 2x2 ≤ 13;2o: x1 + x2 ≤ 6;
C. C. de Souza (IC-UNICAMP) Algoritmos de Planos de Corte 2o semestre de 2005 21 / 1
Grafico
5
6
4
3
2
1
1 2 3
x1 + 2x2 ≤ 11
1o
corte
2o
corte
7x1 + x2 ≤ 21
C. C. de Souza (IC-UNICAMP) Algoritmos de Planos de Corte 2o semestre de 2005 22 / 1
handout.pdf — October 30, 2006 — 12
Proposicao
Seja β a u-esima linha de B−1 e q = β − ⌊β⌋. Entao, a desigualdade∑
j∈N fjxj ≥ f0 escrita em funcao das variaveis originais e o corte deChvatal-Gomory dado por
∑
j∈N⌊qaj⌋xj ≤ ⌊qb⌋ (⌊qA⌋x ≤ ⌊qb⌋).
Exemplo
Obtendo o corte 1 do exemplo anterior ...
β = [−(1/13) 2/13], β − ⌊β⌋ = q = [12/13 2/13].
⌊qa1⌋x1 + ⌊qa2⌋x2 ⇒⌊[12/13 2/13][1 7]t⌋x1 + ⌊[12/13 2/13][2 1]t⌋x2
≤ ⌊[12/13 2/13][11 21]t⌋ ⇒⌊26/13⌋x1 + ⌊26/13⌋x2 ≤ ⌊174/13⌋ ⇒2x1 + 2x2 ≤ 13.
C. C. de Souza (IC-UNICAMP) Algoritmos de Planos de Corte 2o semestre de 2005 23 / 1