Você está na página 1de 51

PESQUISA OPERACIONAL II

Profa. Vanessa Batista Schramm

PROGRAMAO INTEIRA

Introduo
uma ferramenta para resolver Problemas de Programao

Linear onde a hiptese da divisibilidade no atendida, isto , a


valores no inteiros no so permitidos para as variveis de
deciso.
Programao Linear Inteira Programao Inteira (PI).
O modelo matemtico para Problemas de Programao Inteira
(PPI) o mesmo modelo de PPL com uma restrio adicional de
que as variveis devem ser valores inteiros.
Caso essa restrio adicional seja apenas associada a algumas
variveis, permanecendo a hiptese da divisibilidade vlida para as
demais, trata-se de um modelo de Programao Inteira Mista
(PIM).

Programao Inteira Binria


Uma importante rea de aplicao da PI problemas envolvendo

decises dicotmicas, do tipo sim e no.


Nestes casos, as variveis do problema so binrias (0-1),

implicando na denominao Programao Inteira Binria (PIB) ou


Programao Inteira 0-1.

1!!!!!!!"!!!!"#$%!!!!!"#!"!"#"
!! =
0!!!!!!!"!!!!"#$%!!!!!"#!"!!"

Problema da Mochila (binrio)


O problema da mochila (knapsack problem) metaforicamente

representa o desafio de encher uma mochila sem ultrapassar um


determinado limite de peso, otimizando o valor do produto
carregado.
O modelo do Problema da Mochila pode ser aplicado a diferentes
contextos:
Problemas de investimento
Problemas de corte e empacotamento
Carregamento de veculos
Oramento

Problema da Mochila (binrio)


n

Max z = c j x j
j=1

sujeito a :
n

w j x j b
j=1

x j {0,1} j

xj a varivel binria que ir

representar a deciso de levar ou


no o objeto j:
xj = 1 levar o objeto j
xj = 0 no levar o objeto j

cj o valor (utilidade) do objeto j


wj o peso do objeto j
b a capacidade da mochila

Exerccio: Problema da Mochila


Um estudante dispe de uma mochila com capacidade para 14 kg

e tem quatro itens para colocar nela, com pesos e valores


(utilidade) diferenciados:
Peso (Kg) Valor
Item 1

Item 2

11

Item 3

Item 4

Deseja-se maximizar a soma dos valores dos itens colocados na

mochila. Determine o modelo matemtico para este problema.

Exerccio: Problema da Mochila


Max Z = 8x1 + 11x2 + 6x3+ 4x4
Sujeito a:
5x1 + 7x2 + 4x3 + 3x4 14
xj {0, 1}

Aplicaes: Problema de Investimento


Suponha que uma empresa esteja planejando seus investimentos

para os prximos T perodos. Existem n projetos prioritrios, mas


que devem ser contabilizados com o oramento disponvel Gt no
perodo t (t = 1, 2, ..., T). Se o projeto j realizado, ele exige um
investimento atj no perodo t. Suponha ainda que cada projeto j
seja conhecido o seu valor presente bj. O problema de oramento
de capital consiste em selecionar projetos a realizar de forma a
maximizar o valor presente total, respeitada a limitao
oramentria.

Aplicaes: Problema de Investimento


Seja xj a varivel binria que indica a aprovao ou no do projeto

j (j = 1, 2, ..., n).
O modelo consiste em determinar os valores de xj.

Max Z = b1x1 + b2x2 + ... + bnxn


s/a:
a11x1 + a12x2 + ... + a1nxn G1
a21x1 + a22x2 + ... + a2nxn G2
.
.
.

aT1x1 + aT2x2 + ... + aTnxn GT


xj {0, 1}, para j = 1, 2, 3, 4.

Aplicaes: Problema de Investimento


Caso 1: Projetos mutuamente exclusivos. Suponha que os

projetos p, q e r sejam mutuamente exclusivos, ou seja, se um dele


for aprovado, os demais tm que ser rejeitados. Para tal situao
basta acrescentar ao modelo a restrio:
xp + xq + ... + xr 1

Caso 2: Projetos contingenciais. Suponha que o projeto xf s

possa ser realizado caso o projeto xg tambm seja. Para tal


situao, basta acrescentar ao modelo a restrio:
xf xq

Note que esta restrio permite trs alternativas: i) xf = xq = 0; ii) xf = xq = 1;

e iii) xf = 0 e xq = 1, ficando excluda a situao xf = 1 e xq = 0.

Aplicaes: Problema de Investimento


Caso 3: Restries de caixa. Se o modelo desejar incorporar o

fluxo de caixa associado ao projeto, h que convencionar que atj >


0 ou atj < 0, conforme sejam entradas ou sadas de caixa no
perodo t decorrentes do projeto j.

Exemplo: Problema de Investimento


A CALIFORNIA MANUFACTURING COMPANY est

considerando a possibilidade de se expandir com a construo de


uma nova fbrica em Los Angeles ou ento em So Francisco, ou
quem sabe, at mesmo em ambas as cidades. Ela tambm est
considerando a possibilidade de construir um novo depsito, mas
a escolha do local est restrita a uma cidade na qual a fbrica ser
construda.
A tabela a seguir mostra os dados do problema. O objetivo

encontrar a combinao de alternativas que maximize o valor


presente lquido total (rentabilidade total considerando o valor
temporal do dinheiro).

Exemplo: Problema de Investimento


Deciso Pergunta
Nmero Sim-ou-No

Varivel de
Deciso

Valor Presente
Lquido (U$$)

Capital
Exigido (U$$)

Construir a fbrica em Los Angeles?

x1

9 milhes

6milhes

Construir a fbrica em So Francisco?

x2

5 milhes

3 milhes

Construir o depsito em Los Angeles?

x3

6 milhes

5 milhes

Construir o depsito em So Francisco?

x4

4 milhes

2 milhes

Capital disponvel: U$$ 10 milhes

Formule o modelo PI, sabendo que todas as variveis de deciso

so binrias.

1!!!!!!!"!!!!"#$%!!!!!"#!"!"#"
!! =
0!!!!!!!"!!!!"#$%!!!!!"#!"!!"

Exemplo: Problema de Investimento


Faamos Z = valor presente lquido total.
Observe as seguintes recomendaes:
um novo depsito significa que s dever ser construdo 1 um nico
depsito: x3 e x4 so decises mutuamente exclusivas.
a escolha do local est restrita a uma cidade na qual a fbrica ser

construda significa que a empresa ir construir um depsito em uma


determinada cidade somente se tambm fosse construir uma nova fbrica l:
x3 e x1 so decises contingentes, assim como x4 e x2.

Exemplo: Problema de Investimento


Faamos Z = valor presente lquido total.
Observe as seguintes recomendaes:
um novo depsito significa que s dever ser construdo no mximo um
depsito.
x3 + x4 1
a escolha do local est restrita a uma cidade na qual a fbrica ser

construda significa que a empresa ir construir um depsito em uma


determinada cidade somente se tambm fosse construir uma nova fbrica l.
necessrio que x3 = 0 se x1 = 0
Similarmente, x4 = 0 se x2 = 0

x3 x1
x4 x2

Exemplo: Problema de Investimento


Max Z = 9x1 + 5x2 + 6x3 + 4x4
Sujeito a:
6x1 + 3x2 + 5x3 + 2x4 10
x3 + x4 1
x1 + x3 0
x2 + x4 0
xj {0, 1}, para j = 1, 2, 3, 4

Aplicaes: Modelo com Custo Fixo


Para um modelo bsico de um PPL no qual modelo as variveis

representam nveis de determinada atividade.


n

Min custo = c j x j
j=1

sujeito a :
n

aij x j bi
j=1

xj 0 j

para i = 1,2,...,m

Aplicaes: Modelo com Custo Fixo


Suponha que haja uma atividade j com custo fixo Kj e custo

operacional unitrio cj. Assim:


Se xj = 0, ento custo = 0
Se xj > 0, ento custo = Kj + cjxj

Neste caso, o PPL deve ser alterado para um modelo de PIB, de

forma a levar em conta o custo fixo.


Acrescentar funo objetivo Kjyj
Acrescentar s restries: xj M.yj e yj binria
M uma constante arbitrariamente grande: essa restrio usada para forar

que xj seja maior que zero apenas quanto yj for igual a 1 (0 xj M); caso
contrrio, xj = 0.

Aplicaes: Modelo com Custo Fixo


n

Min custo = c j x j + K j y j
j=1

j=1

sujeito a :
n

aij x j bi

para i = 1,2,...,m

j=1

x j M .y j

para j = 1,2,...,n,

xj 0 j
y j binria j

Aplicaes: Problema de Localizao


Sejam m localizaes potenciais onde se produz um nico bem.

Este bem deve ser distribudo a n depsitos, cada um com um


demanda dj (j = 1, 2, ..., n). Se a localizao potencial i for ativada
e passar a produzir, ela ter um custo fixo Ki e uma capacidade de
produo Mi. O custo de transportar uma unidade da fonte i ao
depsito j gij.
O modelo linear misto a seguir responde as duas indagaes: i)

quais fontes devem ser ativadas?; e ii) que quantidades devem ir da


fonte i ao depsito j?

Aplicaes: Problema de Localizao


m

Min gij zij + Ki yi


i=1 j=1

i=1

sujeito a :
m

zij = d j

para j = 1,2,...,n

i=1
n

zij M i yi

para i = 1,2,...,m,

j=1

zij 0 i e j
yi binria i

yi = 1 significa a deciso de

ativar a localizao i
zij volume transportado da
localizao i para o depsito
j.
A primeira restrio indica
que o volume recebido pelo
depsito j, vindo de todas as
localizaes, igual a
demanda dj.
A segunda restrio indica
que s h transporte a partir
da localizao i se yi = 1.

Algumas Aplicaes
Anlise de investimento
Escolha de um local
Desenhando uma rede de distribuio
Despacho de mercadorias
Programao de atividades
Programao de venda de ativos
Aplicaes em linhas areas

Fonte: Hillier FS e Lieberman GJ. Introduo Pesquisa


Operacional, 8 Ed., Porto Alegre: AMGH, 2010.

Algumas Aplicaes
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.

O problema de alocao de pessoal


O problema do jantar de Nero
O problema da otimizao de padres de corte
O problema da cmara de segurana
O problema do carregamento de avies
O problema da auditoria bancria
O problema do incndio florestal ataque massivo
O problema do sistema de defesa antiarea
O problema de anncios na rede de TV
O problema das equipes de natao
O problema da expedio de pesquisa a Marte
O problema das lagoas de estabilizao
Fonte: Goldarg, MC. Otimizao Combinatria e
Programao Linear, 8 Ed., Rio de Janeiro: Elsevier, 2000.

Consideraes sobre a Resoluo de PPI


Considere um problema de PIB com 2 variveis x1 e x2. H 4

solues possveis para este problema: (0, 0), (0,1), (1,0) e (1,1).
Algumas dessas solues podem no ser viveis.

Se o problema apresenta 1 varivel a mais, o nmero de solues

possveis passa a ser 8.


Com n variveis passa a ser 2n. Isto significa que o nmero de
solues possveis cresce exponencialmente, assim como a
dificuldade do problema.
Problemas relativamente pequenos, com 30, variveis podem ter mais de

1bilho de solues possveis.

Para problemas de PI genricos a complexidade ainda maior.

Consideraes sobre a Resoluo de PPI


Em PPLs h infinitas solues possveis dentro da regio de
solues viveis, mesmo para problemas muito pequenos, com 2
duas variveis. Portanto, correto afirmar que a resoluo de PPLs
mais complexa que a resoluo de problemas de PI?
No. PPLs so mais simples de resolver!
Por que?
Na Programao Linear h um teorema que diz que,
necessariamente, a soluo tima ser em um dos pontos
extremos do conjuntos de solues viveis, reduzindo,
significativamente, o nmero de possibilidades.
Esta garantia o segredo da eficincia do Mtodo Simplex.

Consideraes sobre a Resoluo de PPI


Mesmo computadores muito rpidos so incapazes de realizar as

enumeraes exaustivas de problemas de PI (verificar se cada uma


das solues vivel ou no e, em caso positivo, calcular o valor
da funo objetivo).
Os trs aspectos determinantes para a complexidade de um
problema de PI so:
Nmero de variveis.
Se estas variveis so binrias (menos complexo) ou genricas (mais

complexo)
Se h ou no alguma estrutura especial para o problema
O nmero de restries tambm importante, porm menos que os trs
aspectos acima.

Relaxamento do PPI
Alguns algoritmos foram desenvolvidos para resoluo de alguns

problemas de PI.
A maioria destes algoritmos incorpora o mtodo simplex (ou o

mtodo simplex dual) o mximo possvel, relacionando o


problema de PI considerado ao PPL correspondente, denominado
de relaxamento do PI (que o prprio PI sem a restrio
inteira).

Relaxamento do PPI
PI

Max z = x2
s/a:
x1 + x2 1/ 2
x1 + x2 7 / 2
x1 0, x2 0
x1 e x2 inteiros

Relaxamento do PI

Max z = x 2
s /a:
x1 + x 2 1/ 2
x1 + x 2 7 / 2
x1 0, x 2 0

Relaxamento do PPI
Uma alternativa resolver o relaxamento do PI; se a soluo

encontrada satisfizer a restrio inteira do problema, o problema


de PI est resolvido CASO FORTUITO!
Cuidado ao resolver o relaxamento do PI e depois arredondar os

valores no inteiros, forando a soluo a satisfazer a restrio


inteira.
A soluo arredondada pode no ser vivel.
A soluo arredondada pode no ser tima.

Relaxamento do PPI
H diversos tipos especiais de problemas de PI para os quais a

soluo encontrada sempre satisfaz a restrio inteira do


problema:
Problema de transporte;
Problema da designao;
Problema do caminho mais curto; e
Problema do fluxo mximo.

Exerccio: Relaxamento do PPI


Resolva os seguintes relaxamentos de PI graficamente, caso a

soluo contenha algum valor no inteiro, arredonde-os e


verifique se a nova soluo ainda uma soluo tima.
Max z = x 2

Max z = x1 + 5x 2

s /a:
x1 + x 2 1/ 2

s /a:
x1 +10x 2 20

x1 + x 2 7 / 2

x1 2

x1 0, x 2 0

x1 0, x 2 0

x1 e x 2 inteiros

x1 e x 2 inteiros

Algoritmos para a Resoluo de PPI


Tcnicas de Enumerao
Separao e avaliao progressiva Branch-and-Bound
Enumerao implcita
Restries surrogate
Tcnicas de Corte
Cortes inteiros (primais e duais)
Cortes combinatrios
Cortes de interseo
Mtodo de decomposio de Benders
Tcnicas Hbridas
Branch-and-Cut
Teoria de Grupo

Algoritmos para a Resoluo de PPI


Dada e exploso combinatorial de alguns problemas de otimizao

em alguns casos necessrio recorrer a tcnicas heursticas


visando busca de boas solues.
Heurstica. So tcnicas, baseadas em alguma experincia, para

resolver computacionalmente problemas de otimizao; estas


tcnicas no garantem encontrar exatamente a soluo tima, mas
se aproximam dela de forma satisfatria (solues boas).
A heurstica mais bsica que existe tcnica de tentativa-e-erro.

Algoritmos para a Resoluo de PPI


Existem algoritmos heursticos que so bastante eficientes na resoluo

de PPI especficos.
Apesar de no garantirem uma soluo tima, eles tendem a ser mais
eficientes na resoluo de um PI que a estratgia de arredondar o
resultado encontrado para o correspondente problema relaxado.
Dentre as heursticas utilizadas para resolve PPI, destacam-se:
Algoritmos Genticos
Colnia de Formigas
Simulated Anneling
Estratgia MuliStart
Busca de Tabus
Busca em Vizinhana Varivel
Heurstica Gulosa

Algoritmos para a Resoluo de PPI


Para problemas de PI que so suficientemente pequenos para se

encontrar a soluo tima, h um nmero considervel de


algoritmos disponveis atualmente. Entretanto, nenhum deles
possui a eficincia computacional do Mtodo Simplex.
Portanto, o desenvolvimento de novos algoritmos para problemas

de PI uma rea de estudo ativa na Pesquisa Operacional.

Branch-and-Bound
Branch-and-Bound - Ramificao e Avaliao Progressiva.
A ideia geral do algoritmo Branch-and-Bound dividir o conjunto de

solues viveis em subconjuntos, sem intersees entre si,


calculando os limites superior e inferior para cada subconjunto e
eliminar certos subconjuntos de acordo com alguma regras prestabelecidas.

Branch-and-Bound
Problema 1 (original)
Max z = 3x1 + 3x 2

x2

s /a:
x1 + 4x 2 12

Soluo tima do
relaxamento do PI
(x1 = 2,4; x2 = 2,4)
z* = 14,4

6x1 + 4x 2 24

6x1 + 4x 2 24
x1 0, x 2 0

(0,3)

(2,4, 2,4)

x1 e x 2 inteiros

x1 + 4x 2 12
(4,0)

x1

Branch-and-Bound
Escolhemos um dos dois valores para tentar torna-lo inteiro.

Escolhendo x1, temos que: x1 2, x1 3


Com isso, dividimos o problema em dois subproblemas:
Problema 2

Problema 3

Max z = 3x1 + 3x 2

Max z = 3x1 + 3x 2

s /a:

s /a:

x1 + 4x 2 12

x1 + 4x 2 12

6x1 + 4x 2 24

6x1 + 4x 2 24

x1 2

x1 3

x1 0, x 2 0

x1 0, x 2 0

x1 e x 2 inteiros

x1 e x 2 inteiros

Branch-and-Bound
x2

6x1 + 4x 2 24

(2, 2,5)
(3, 1,5)

x1 + 4x 2 12
2

Parte eliminada do
conjunto de
solues viveis

x1

Branch-and-Bound
Calcula-se a soluo tima para os dois problemas relaxados.
Soluo tima Problema 2 (relaxado)
(x1 = 2; x2 = 2,5)
z* = 13,5

x2

6x1 + 4x 2 24

Soluo tima Problema 3 (relaxado)


(x1 = 3; x2 = 1,5)
z* = 13,5

(2, 2,5)
(3, 1,5)

x1 + 4x 2 12
2

x1

Branch-and-Bound
Tornando o valor de x2, que atualmente 2,5 inteiro, os problemas

2 e 3 sero divididos em dois subproblemas cada.


O problema 2 ser divididos nos problemas 4 e 5, adicionando,
respectivamente, as seguintes restries: x 2 2 e x 2 3
Problema 4

Problema 5

Max z = 3x1 + 3x 2

Max z = 3x1 + 3x 2

s /a:

s /a:

x1 + 4x 2 12

x1 + 4x 2 12

6x1 + 4x 2 24

6x1 + 4x 2 24

x1 2

x1 2

x2 2

x2 3

x1 0, x 2 0

x1 0, x 2 0

x1 e x 2 inteiros

x1 e x 2 inteiros

Branch-and-Bound
O problema 3 ser dividido nos problemas 6 e 7, adicionando,

respectivamente, as seguintes restries x 2 2 e x 2 3 de modo


a tornar inteiro o valor de x2, que igual a 1,5 para este problema.
Problema 6

Problema 7

Max z = 3x1 + 3x 2

Max z = 3x1 + 3x 2

s /a:

s /a:

x1 + 4x 2 12

x1 + 4x 2 12

6x1 + 4x 2 24

6x1 + 4x 2 24

x1 3

x1 3

x2 1

x2 2

x1 0, x 2 0

x1 0, x 2 0

x1 e x 2 inteiros

x1 e x 2 inteiros

Branch-and-Bound
Soluo do Problema 4
x2

Soluo tima Problema 4 (relaxado)


(x1 = 2; x2 = 2)
z* = 12

6x1 + 4x 2 24

3
(2, 2)

x1 + 4x 2 12
2

x1

Branch-and-Bound
Soluo do Problema 5
Soluo tima Problema 5 (relaxado)
(x1 =0; x2 = 3)
z* = 9

x2

6x1 + 4x 2 24

S o ponto (0,3)
vivel
3

x1 + 4x 2 12
2

x1

Branch-and-Bound
Soluo do Problema 6
Soluo tima Problema 6 (relaxado)
(x1 =10/3; x2 = 1)
z* = 13

x2

6x1 + 4x 2 24

(10/3, 1)

x1 + 4x 2 12

x1

Branch-and-Bound
Soluo do Problema 7 (relaxado)
x2

6x1 + 4x 2 24

No h soluo vivel

(3, 1,5)

x1 + 4x 2 12
3

x1

Branch-and-Bound
Os problemas 4 e 5 tm solues inteiras e o Problema 7

invivel. J o Problema 6 apresenta soluo no inteira e, portanto,


ainda pode ser dividido em dois subproblemas, adicionando as
restries x1 3 e x1 4
Problema 8
Max z = 3x1 + 3x 2

Problema 9

Max z = 3x1 + 3x 2

s /a:
x1 + 4x 2 12

s /a:

6x1 + 4x 2 24

6x1 + 4x 2 24

x1 3

x1 3

x2 1

x2 1

x1 3

x1 4

x1 0, x 2 0

x1 0, x 2 0

x1 e x 2 inteiros

x1 e x 2 inteiros

x1 + 4x 2 12

Branch-and-Bound
Soluo do Problema 8
x2

Soluo tima Problema 8 (relaxado)


(x1 =3; x2 = 1)
z* = 12

6x1 + 4x 2 24

S o ponto (3,1)
vivel

(3, 1)

x1 + 4x 2 12
3

x1

Branch-and-Bound
Soluo do Problema 9
x2

Soluo tima Problema 9 (relaxado)


(x1 =4; x2 = 0)
z* = 12

6x1 + 4x 2 24

S o ponto (4,0)
vivel

x1 + 4x 2 12
3

(4,0)

x1

Branch-and-Bound
rvore de soluo
x1 2

x2 2
X1 = 2
X2 = 2
Z = 12

X1 = 2
X2 = 2,5
Z = 13,5

X1 = 2,4
X2 = 2,4
Z = 14,4

x1 3
X1 = 3
X2 = 1,5
Z = 13,5

x2 2

x2 1

x2 3

X1 = 10/3

X1 = 0
X2 = 3
Z=9

invivel

X2 = 1
Z = 13

x1 3
X1 = 3
X2 = 1
Z = 12

x1 4
X1 = 4

X2 = 0
Z = 12

Você também pode gostar