Vous êtes sur la page 1sur 29

Pesquisa Operacional II Aula 03 Programao Linear Inteira

Branch-and-Bound
Prof Ana Cristina Giro e Silva (anacrisges@yahoo.com.br)

Programao Linear Inteira


Viso Geral dos Mtodos de Resoluo
Tcnicas de Enumerao: - Partio e avaliao progressiva ou Branch-and-Bound (B&B) - Enumerao: Implcita - Restries Sogorrate Tcnicas de Cortes: - Cortes Inteiros (primais e duais) - Cortes combinatrios - Cortes de interseo - Mtodo de decomposio de Benders Tcnicas Hbridas: - Branch-and-Cut - Teoria de Grupo

Branch-and-Bound (B&B) (Partio e Avaliao Progressiva)

Idia: desenvolver uma enumerao inteligente dos pontos candidatos soluo tima inteira.

O termo solues.

branch

refere-se realizao de parties no espao de

A aplicao de bound limita as parties a fazer.

Branch-and-Bound (B&B) Ponto inicial: Relaxar a integralidade


Problema original max z = x1 + 3x2 s. a.: PLI x1 40 x2 60 x2 10 x1 + x2 20 3x1 +2x2 180 x1 , x2 0 x1 , x2 Z Problema relaxado

max z = x1 + 3x2 s. a.:


Esquecer a condio de integralidade

x1 40 x2 60 x2 10 x1 + x2 20 3x1 +2x2 180 x1 , x2 0

PL

x2

x2

x1

x1

Sobre o Problema Relaxado


Se o problema relaxado impossvel o problema original impossvel

ento

Se a soluo tima do problema relaxado for vivel para o problema original

ento

ser tima para o problema original

Exemplo:

x2

Soluo tima para o problema relaxado (40, 60)

Soluo tima para o problema original (40, 60)

x1

Sobre o Problema Relaxado


o mximo do problema relaxado constitui limite superior para o mximo do problema original
o mnimo do problema relaxado constitui limite inferior para o mnimo do problema original

maximizao Num problema de minimizao

Sobre o Problema Relaxado


o mximo do problema relaxado constitui limite superior para o mximo do problema original
o mnimo do problema relaxado constitui limite inferior para o mnimo do problema original

maximizao Num problema de minimizao Exemplo:

timo

timo

Sobre o Problema Relaxado


o mximo do problema relaxado constitui limite superior para o mximo do problema original
o mnimo do problema relaxado constitui limite inferior para o mnimo do problema original

maximizao Num problema de minimizao Exemplo:

timo

timo

Branch-and-Bound (B&B) Branch (Particionar)


Passagem a subproblemas ou descendentes do problema original.
PL0

Problema original

PL1

PL2

descendentes

Qualquer soluo vivel do problema original soluo vivel de apenas um dos problemas descendentes. Qualquer soluo vivel de um descendente soluo vivel do problema original.

Branch-and-Bound (B&B) Bound (Limitar)


Exemplo: Problema de maximizao Limite superior

Sol. invivel para o PLI

PL0 z = 74,5

74,5

Sol. invivel para o PLI

PL1 z = 68,5

PL2 z = 70,8

Sol. vivel para o PLI 70,8

Os sub problemas gerados a partir de PL1 tero z 68,5, ou seja, menor que o limite inferior. Concluso: No se faz partio nesse sub problema.

Limite inferior

Branch-and-Bound (B&B) Viso Geral do Mtodo


PL0 x1, x2 z 1 passo) Encontrar o timo para o problema relaxado. 2 passo) Avaliar: O problema impossvel? A soluo intera? Se sim pare, seno...

x i [x i]

x i [ x i] + 1

3 passo) Realizar partio na varivel contnua xi onde i=1 ou i=2. Quer dizer que novos problemas, os descendentes, surgiro a partir da incluso de novas restries ao modelo. 4 passo) Encontrar o timo para o problema relaxado e avaliar ...

x1, x2 z

PL1

x 1, x 2 z

PL2

5 passo) Particionar ...

...

...

...

...

6 passo) Encontrar o timo para o problema relaxado e avaliar ...

Branch-and-Bound (B&B) Exemplo 1 - Partio de PL0 em x2


PL0 max z = x1 + 4x2

s. a.:
-2x1 + 4x2 8 2x1 +3x2 12 x1 , x2 0 x1 , x2 Z

PL0 x1=12/7, x2=20/7 z=90/7

x2 [20/7] x2 2

click aqui ver o grfico

x2 [20/7]+ 1 x2 3

PL1
max z = x1 + 4x2 s. a.: -2x1 + 4x2 8 2x1 +3x2 12 x2 2 x1 , x2 0 x1 , x2 Z s. a.:

PL2
max z = x1 + 4x2 -2x1 + 4x2 8 2x1 +3x2 12 x2 3 x1 , x2 0 x1 , x2 Z

PL1 x1=3, x2=2 z=11

PL2 Impossvel

timo inteiro

Branch-and-Bound (B&B) Exemplo 1 - Partio de PL0 em x2


PL0 x2 3 x2 2

PL1

PL3 x2 3 x2 2

Voltar

Branch-and-Bound (B&B) Exemplo 1 - Partio de PL0 em x1


PL0 x1=12/7, x2=20/7 z=90/7=12,85 x1 [12/7] x1 1 PL1 x1=1, x2=5/2 z=11 x2 [5/2] x2 2 click aqui ver o grfico click aqui ver o grfico x1 [12/7]+ 1 x1 2 PL2 x1=2, x2=8/3 z=38/3 = 12,66 x2 [8/3]+ 1 x2 [8/3] click aqui x 3 x 2 2 2 ver o grfico PL5 x1=3, x2=2 z=11 PL6 Impossvel

x2 [5/2]+ 1 x2 3

PL3 x1=1, x2=2 z=9

PL4 Impossvel

Branch-and-Bound (B&B) Exemplo 1 - Partio de PL0 em x1


PL0
max z = x1 + 4x2 s. a.: -2x1 + 4x2 8 2x1 +3x2 12 x1 , x2 0 x1 , x2 Z

PL1
max z = x1 + 4x2 s. a.: -2x1 + 4x2 8 2x1 +3x2 12 x1 1 x1 , x2 0 x1 , x2 Z s. a.:

PL2
max z = x1 + 4x2 -2x1 + 4x2 8 2x1 +3x2 12 x1 2 x1 , x2 0 x1 , x2 Z

PL3
max z = x1 + 4x2 s. a.: -2x1 + 4x2 8 2x1 +3x2 12 x 1 1 x 2 2 x1 , x2 0 x 1 , x2 Z s. a.:

PL4
max z = x1 + 4x2 -2x1 + 4x2 8 2x1 +3x2 12 x11 x2 3 x1 , x2 0 x1 , x2 Z s. a.:

PL5
max z = x1 + 4x2 -2x1 + 4x2 8 2x1 +3x2 12 x12 x2 2 x1 , x 2 0 x1 , x2 Z s. a.:

PL6
max z = x1 + 4x2 -2x1 + 4x2 8 2x1 +3x2 12 x12 x2 3 x1 , x2 0 x1 , x2 Z

Branch-and-Bound (B&B) Exemplo 1 - Partio de PL0 em x1


PL0

PL1

PL2

PL3

PL4

PL5

PL6

Voltar

Branch-and-Bound (B&B) Exemplo 2

Maximizar z 5 x1 8 x2 sujeito a : x1 x2 6 5 x1 9 x2 45 x1 , x2 Z

Branch-and-Bound (B&B) Exemplo 2 - Partio de PL0 em x2


Sol. invivel

PL0 x1=2,25; x2=3,75 z = 41,25 x2 4 PL2 x1=1,8; x2=4 z = 41 x1 1


Sol. invivel

x2 3
Sol. vivel Falta analisar alguma partio? Sim.

PL1 x1=3; x2=3 z = 39

x1 2 PL4 impossvel x2 5

40 39 -

Sol. invivel

PL3 x1=1; x2=4,25 z = 40,4

x2 4
Sol. vivel sem interesse

PL5 x1=1; x2=4 z = 37

PL6 Sol. vivel x1=0; x2=5 z = 40 Falta analisar alguma Sol. tima
partio? No.

Branch-and-Bound (B&B) Exemplo 2 - Partio de PL0 em x1


Sol. invivel

x1 2
Sol. invivel

PL0 x1=2,25; x2=3,75 z = 41,25

x1 3 PL2 x1=3, x2=3 z = 39


Sol. vivel

PL1 x1=2; x2=3,88 z = 41,11 x2 4 PL4 x1=1,8; x2=4 z = 41 x1 1 PL5 x1=1; x2=4,44 z = 40,55 x2 5

x2 3
Sol. vivel sem interesse

PL3 x1=1; x2=3 z = 34

Sol. invivel

x1 2 PL6 Impossvel

40 39 -

Sol. invivel

x2 4
Sol. vivel sem interesse

PL7 x1=1; x2=4 z = 37

PL8 x1=0; x2=5 z = 40 Sol. tima

Sol. vivel
Falta analisar alguma partio? No.

Branch-and-Bound (B&B) Exemplo 3 Problema de Minimizao

Minimizar z 6 x1 8 x2 sujeito a : 6 x1 7 x2 40 x2 2 x1 , x2 Z

Branch-and-Bound (B&B) Exemplo 3 Problema de Minimizao


limite + superior 46 44 limite inferior 42

Sol. invivel

x1 4
Sol. invivel

PL0 x1=13/3; x2=2 z = 42

x1 5 PL2 x1=5; x2=2 z = 46


Sol. vivel Falta analisar alguma partio? Sim.

x2 2 PL3 impossvel

PL1 x1=4; x2=16/7 z = 296/7

x2 3

x1 3
Sol. invivel

PL4 x1=19/6; x2=3 z = 43

Sol. invivel

x1 4 PL6 Sol. vivel x1=4; x2=3 z = 48 Sem interesse

PL5 x1=3; x2=22/7 z = 302/7 x2 4

x2 3 PL7 impossvel

Sol. tima

pois 48>46 Falta analisar PL8 alguma Sol. vivel x1=2; x2=4 partio? Falta analisar z = 44 Sim. alguma partio? No.

Exemplo 3 (cont.)

PL0 PL1

mim z = 6x1 + 8x2 s. a.: 6x1 + 7x2 40 x2 2 x1 , x2 0 e x1 , x2 Z

PL2 Nvel 1

PL3

mim z = 6x1 + 8x2 s. a.: 6x1 + 7x2 40 x2 2 x1 4 x1 , x2 0 e x1 , x2 Z

PL4

mim z = 6x1 + 8x2 s. a.: 6x1 + 7x2 40 x2 2 x1 5 x1 , x2 0 e x1 , x2 Z

mim z = 6x1 + 8x2 s. a.: 6x1 + 7x2 40 x2 2 x1 4 x2 2 x1 , x2 0 e x1 , x2 Z

PL5

mim z = 6x1 + 8x2 s. a.: 6x1 + 7x2 40 x2 2 x1 4 x2 3 x1 , x2 0 e x1 , x2 Z

Nvel 2 PL6 Nvel 3

PL7
s. a.:

mim z = 6x1 + 8x2 s. a.: 6x1 + 7x2 40 x2 2 x1 4 x2 3 x1 3 x1 , x2 0 e x1 , x2 Z

PL8

mim z = 6x1 + 8x2 s. a.: 6x1 + 7x2 40 x2 2 x1 4 x2 3 x1 4 x1 , x2 0 e x1 , x2 Z

mim z = 6x1 + 8x2 6x1 + 7x2 40 x2 2 x1 4 x2 3 x1 3 x2 3 x1 , x2 0 e x1 , x2 Z

mim z = 6x1 + 8x2 s. a.: 6x1 + 7x2 40 x2 2 x1 4 x2 3 x1 3 x2 4 x1 , x2 0 e x1 , x2 Z

Nvel 4

Branch-and-Bound (B&B) Exemplo 4 Problema de PLIB


Maximizar z 9 x1 5 x2 6 x3 4 x4 sujeito a : 6 x1 3x2 5 x3 2 x4 10 x3 x4 1 x1 x3 0 x2 x 4 0 x j {0, 1}, para j 1, 2, 3, 4.

Branch-and-Bound (B&B) Exemplo 4 Problema de PLIB


limite superior
16,5

14

Sol. vivel

limite inferior -

PL0 Sol. invivel (0.83, 1, 0, 1) z = 16,5 x1= 0 x1 = 1 PL1 PL2 (0, 1, 0, 1) (1, 0.8, 0, 0.8) z=9 z = 16,2 x2 = 1 x =0
2

Sol. invivel

PL3 (1, 0, 0.8, 0) z = 13.8 x3= 1 PL6 Impossvel


Sol. invivel

Sol. invivel

PL4 (1, 1, 0, 0.5) z = 16 x4= 1 PL8 Impossvel x4= 1 PL10 Impossvel

x3= 0
Sol. vivel

x4= 0 PL7 (1, 1, 0, 0.5) z = 16

PL5 (1, 0, 0, 0) z=9

Sol. vivel

Sol. tima

x4= 0 PL9 (1, 1, 0, 0) z = 14

Branch-and-Bound (B&B) Tcnicas de desenvolvimento da rvore de enumerao


Busca em largura Busca em profundidade

PL0

PL0

PL1 PL3 PL7 PL8 PL4 PL9 PL10

PL2

PL1

PL2

PL5

PL6

PL3 PL5

PL4 PL6 PL7 PL8

PL11 PL12 PL13 PL14

Branch-and-Bound (B&B) Tcnicas de formao da rvore (escolha da varivel de separao)


- Variante de Dank (1960) - Variante de Land e Doig (1965) - Variante de Spielberg (1968) - Mtodos das penalidades (1965) - Mtodo de Taha (1971) - Estratgias dinmicas (1976) - Outras variantes

Branch-and-Bound (B&B) Variante de Dank


O autor prope que a varivel a ser escolhida para a diviso seja a que possuir o maior resduo.
Exemplo: PLn x1=7,25 ; x2=11,75

x1 ou x2 ? res (x1) = x1 [x1] = 7,25 7 = 0,25


res (x2) = x2 [x2] = 11,75 11 = 0,75

Branch-and-Bound (B&B) Exerccio


Desenvolva a rvore B&B para os problemas abaixo. Por convenincia, sempre selecione x1 como a varivel de ramificao no n 0. a) Max Z = 3x1 + 2x2 s.a: 2x1 + 5x2 9 4x1 + 2x2 9 x1, x2 0 e inteiras

Branch-and-Bound (B&B) Exerccio


b) Min Z = 5x1 + 4x2 s.a: 3x1 + 2x2 5 2x1 + 3x2 7 x1, x2 0 e inteiras