12
handout.pdf — October 30, 2006 — 1 Universidade Estadual de Campinas - UNICAMP Instituto de Computa¸ ao - IC MO824 - T´opicos em Otimiza¸ aoCombinat´oria Algoritmos de Planos de Corte e Desigualdades V´ alidas Cid Carvalho de Souza 2 o semestre de 2005 C. C. de Souza (IC-UNICAMP) Algoritmos de Planos de Corte 2 o semestre de 2005 1/1 Algoritmos de planos de corte Id´ eia: 1 resolver a relaxa¸ ao linear de z = max{cx : x Z n + , Ax b X }. 2 seja x a solu¸ ao ´ otima da relaxa¸ ao. Pergunta: x Z n + ? SIM x * ´ esolu¸c˜ ao ´otima do PLI. P ` ARA. N ˜ AO resolve o problema da separa¸c˜ ao para x * e conv(X ). 3 se o problema da separa¸ ao retornar uma desigualdade πx π 0 que ´ e satisfeita por todos pontos de conv(X ) mas tal que πx 0 , inclu´ ı-la na formula¸ ao e voltar ao Passo 1. Se n˜ ao, P ` ARA. Defini¸c˜ ao: Seja X R n . A desigualdade πx π 0 alida para X se e somente se πy π 0 para todo y X . C. C. de Souza (IC-UNICAMP) Algoritmos de Planos de Corte 2 o semestre de 2005 2/1

Algoritmos de Planos de Corte e Desigualdades Va lidas ...ic.unicamp.br/~cid/cursos/MO420/Material-didatico/planos-de-corte-2p.pdf · Algoritmos de Planos de Corte e Desigualdades

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Algoritmos de Planos de Corte e Desigualdades Va lidas ...ic.unicamp.br/~cid/cursos/MO420/Material-didatico/planos-de-corte-2p.pdf · Algoritmos de Planos de Corte e Desigualdades

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

Page 2: Algoritmos de Planos de Corte e Desigualdades Va lidas ...ic.unicamp.br/~cid/cursos/MO420/Material-didatico/planos-de-corte-2p.pdf · Algoritmos de Planos de Corte e Desigualdades

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

Page 3: Algoritmos de Planos de Corte e Desigualdades Va lidas ...ic.unicamp.br/~cid/cursos/MO420/Material-didatico/planos-de-corte-2p.pdf · Algoritmos de Planos de Corte e Desigualdades

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

Page 4: Algoritmos de Planos de Corte e Desigualdades Va lidas ...ic.unicamp.br/~cid/cursos/MO420/Material-didatico/planos-de-corte-2p.pdf · Algoritmos de Planos de Corte e Desigualdades

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

Page 5: Algoritmos de Planos de Corte e Desigualdades Va lidas ...ic.unicamp.br/~cid/cursos/MO420/Material-didatico/planos-de-corte-2p.pdf · Algoritmos de Planos de Corte e Desigualdades

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

Page 6: Algoritmos de Planos de Corte e Desigualdades Va lidas ...ic.unicamp.br/~cid/cursos/MO420/Material-didatico/planos-de-corte-2p.pdf · Algoritmos de Planos de Corte e Desigualdades

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

Page 7: Algoritmos de Planos de Corte e Desigualdades Va lidas ...ic.unicamp.br/~cid/cursos/MO420/Material-didatico/planos-de-corte-2p.pdf · Algoritmos de Planos de Corte e Desigualdades

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

Page 8: Algoritmos de Planos de Corte e Desigualdades Va lidas ...ic.unicamp.br/~cid/cursos/MO420/Material-didatico/planos-de-corte-2p.pdf · Algoritmos de Planos de Corte e Desigualdades

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

Page 9: Algoritmos de Planos de Corte e Desigualdades Va lidas ...ic.unicamp.br/~cid/cursos/MO420/Material-didatico/planos-de-corte-2p.pdf · Algoritmos de Planos de Corte e Desigualdades

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

Page 10: Algoritmos de Planos de Corte e Desigualdades Va lidas ...ic.unicamp.br/~cid/cursos/MO420/Material-didatico/planos-de-corte-2p.pdf · Algoritmos de Planos de Corte e Desigualdades

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

Page 11: Algoritmos de Planos de Corte e Desigualdades Va lidas ...ic.unicamp.br/~cid/cursos/MO420/Material-didatico/planos-de-corte-2p.pdf · Algoritmos de Planos de Corte e Desigualdades

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

Page 12: Algoritmos de Planos de Corte e Desigualdades Va lidas ...ic.unicamp.br/~cid/cursos/MO420/Material-didatico/planos-de-corte-2p.pdf · Algoritmos de Planos de Corte e Desigualdades

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