SlideShare uma empresa Scribd logo
1 de 11
Baixar para ler offline
Cap´ıtulo 4
Programa¸c˜ao
Inteira/Mista
4.1 Restri¸c˜oes de Integralidade
Restri¸c˜oes de integralidade surgem quando a natureza do problema imp˜oe
que todas as suas vari´aveis de decis˜ao assumam apenas valores inteiros (integrais).
Problemas com esta caracter´ıstica s˜ao chamados de problemas de Programa¸c˜ao
Inteira. Problemas nos quais as vari´aveis de decis˜ao s´o podem assumir os valores
inteiros 0 e 1 s˜ao denominados de problemas de Programa¸c˜ao 0-1. Quando ape-
nas parte das vari´aveis est´a restrita a valores inteiros, diz-se que o problema ´e de
Programa¸c˜ao Inteira/Mista.
Os m´etodos tradicionais de Programa¸c˜ao Linear, em especial o m´etodo Sim-
plex, n˜ao levam diretamente em conta restri¸c˜oes de integralidade, o que n˜ao quer
dizer que n˜ao possam produzir solu¸c˜oes ´otimas inteiras. No Cap´ıtulo 3 as solu¸c˜oes
encontradas por m´etodos Simplex especializados para problemas de transporte e de
atribui¸c˜ao s˜ao naturalmente inteiras, porque os dados de entrada destes problemas
s˜ao inteiros e os m´etodos empregados exploram as estruturas especiais destes pro-
blemas para executar apenas opera¸c˜oes de adi¸c˜ao, subtra¸c˜ao e multiplica¸c˜ao, n˜ao
podendo assim gerar resultados n˜ao-inteiros.
Existem, entretanto, problemas importantes de planejamento que requerem
solu¸c˜oes ´otimas inteiras, mas que n˜ao apresentam propriedades que permitam obtˆe-
las por meio de programa¸c˜ao linear. Em geral os m´etodos da programa¸c˜ao linear
precisam ser adaptados para que forne¸cam respostas compat´ıveis com restri¸c˜oes de
integralidade. Embora a presen¸ca de vari´aveis inteiras em problemas de planeja-
mento j´a tenha sido abordada em cap´ıtulos anteriores, ´e neste que se inicia um
estudo mais detalhado de modelos e m´etodos de Programa¸c˜ao Inteira/Mista.
4.2 Exemplo Ilustrativo
Algumas propriedades b´asicas de problemas lineares-inteiros s˜ao discutidas
por meio do exemplo ilustrativo a seguir.
Exemplo 4.1 Um moveleiro fabrica dois tipos de pain´eis de madeira. Disp˜oe de
105
106 Cap´ıtulo 4. Programa¸c˜ao Inteira/Mista
seis unidades de madeira e 28 horas de trabalho. O painel 1 consome duas unidades
de madeira e sete horas de trabalho; o painel 2, uma unidade de madeira e oito horas
de trabalho. Os lucros unit´arios dos pain´eis s˜ao de $120 e $80, respectivamente. O
moveleiro gostaria de maximizar seu lucro com a produ¸c˜ao de pain´eis.
A descri¸c˜ao acima admite a seguinte formula¸c˜ao por programa¸c˜ao linear-
inteira:
(PLI)
maximizar z = 120x1 + 80x2
sujeito a 2x1 + x2 ≤ 6,
7x1 + 8x2 ≤ 28,
com x1 e x2 vari´aveis inteiras n˜ao-negativas. A Figura 4.1 ilustra graficamente o
problema. Apenas os pontos assinalados com o s´ımbolo • s˜ao solu¸c˜oes vi´aveis para
o problema linear-inteiro (PLI).
PSfrag replacements
1
1
2
2
3
3
4
4
5
6
0 x1
x2
2x1 + x2 = 6
7x1 + 8x2 = 28
Solu¸c˜ao de
(PLIR)
Figura 4.1: Representa¸c˜ao gr´afica do problema (PLI).
A solu¸c˜ao ´otima do problema linear-inteiro relaxado, (PLIR), obtido ignorando-
se as restri¸c˜oes de integralidade sobre as vari´aveis de decis˜ao, ´e encontrada na in-
tersec¸c˜ao das restri¸c˜oes lineares: x1 = 20/9 e x2 = 14/9. Se a solu¸c˜ao ´otima obtida
fosse inteira, o problema (PLI) teria sido resolvido. O valor da fun¸c˜ao-objetivo na
solu¸c˜ao do problema linear relaxado ´e
zPLIR = 120(20/9) + 80(14/9) = 3520/9 391.1.
Uma primeira id´eia para for¸car a integralidade da solu¸c˜ao seria arredondar
4.3. Modelos de Programa¸c˜ao Inteira 107
os valores ´otimos do problema (PLIR) para os inteiros mais pr´oximos, obtendo-se
x1 = 2 e x2 = 1. O valor da fun¸c˜ao-objetivo na solu¸c˜ao arredondada ´e zARR = 320.
Uma segunda id´eia, poss´ıvel quando o problema considerado apresenta um
n´umero relativamente pequeno de alternativas vi´aveis inteiras, seria resolver o pro-
blema por enumera¸c˜ao, isto ´e, determinar qual das alternativas vi´aveis inteiras
leva ao maior valor para a fun¸c˜ao-objetivo. A solu¸c˜ao ´otima do problema (PLI),
obtida por enumera¸c˜ao, ´e x1 = 3, x2 = 0 e zPLI = 360. Sua diferen¸ca percentual
em rela¸c˜ao `a solu¸c˜ao obtida por arredondamento ´e
360 − 320
360
11%.
Diferen¸cas percentuais da ordem de 10% de lucro costumam ser significativas
em problemas de planejamento. 2
Dado um problema de programa¸c˜ao linear-inteira (PLI) qualquer e sua vers˜ao
(PLIR) obtida relaxando-se (ignorando-se) restri¸c˜oes de integralidade, ent˜ao, em
termos de valores ´otimos das fun¸c˜oes-objetivos,
zPLI ≤ zPLIR
se o problema original for de maximiza¸c˜ao. No caso de minimiza¸c˜ao,
zPLI ≥ zPLIR.
A raz˜ao para as desigualdades ´e que a regi˜ao vi´avel do problema (PLIR)
cont´em todas as solu¸c˜oes vi´aveis inteiras do problema (PLI). Logo, o valor ´otimo
de (PLIR) ´e no m´ınimo igual ao de (PLI), podendo ser maior ou menor, depen-
dendo do tipo de formula¸c˜ao, maximiza¸c˜ao ou minimiza¸c˜ao. Esta propriedade ´e
freq¨uentemente explorada por m´etodos de programa¸c˜ao inteira.
4.3 Modelos de Programa¸c˜ao Inteira
Muitos problemas de planejamento podem ser formulados a partir de mode-
los de programa¸c˜ao inteira gen´ericos, e que por serem gen´ericos tˆem sido melhor
estudados na literatura da ´area. Alguns destes modelos s˜ao discutidos nesta se¸c˜ao.
Problema da Mochila
O chamado problema da mochila (knapsack problem) descreve a seguinte si-
tua¸c˜ao: certo indiv´ıduo possui uma mochila com capacidade para armazenar b
kilogramas. O indiv´ıduo precisa escolher as quantidades de n diferentes itens a
armazenar na mochila, sabendo que cada unidade do item i pesa ai kilogramas.
O indiv´ıduo atribui o valor pi a cada unidade do item i. O problema consiste em
maximizar o valor total dos itens a armazenar na mochila respeitando o seu limite
de capacidade.
108 Cap´ıtulo 4. Programa¸c˜ao Inteira/Mista
Definindo xi como a quantidade do item i = 1, 2, . . . , n, o problema da mochila
assume a seguinte forma:
(PM)
maximizar z = p1x1 + p2x2 + · · · + pnxn
sujeito a a1x1 + a2x2 + · · · + anxn ≤ b,
com xi, i = 1, 2, . . . , n, vari´aveis inteiras n˜ao-negativas.
O problema da mochila surge com freq¨uˆencia em problemas de planejamento,
como no discutido a seguir.
Exemplo 4.2 Uma empresa est´a considerando investir em quatro novos projetos.
Os projetos gerariam um lucro l´ıquido presente de $16000, $22000, $12000 e $8000.
(O lucro l´ıquido presente, NPV em inglˆes, seria o lucro obtido ao longo dos anos
referido ao momento no qual a decis˜ao de investimento ´e tomada.) Os projetos exi-
giriam investimentos de $5000, $7000, $4000 e $3000, respectivamente. A empresa
disp˜oe de um total de $14000 para investimento nos quatro projetos. O objetivo da
empresa ´e determinar quais projetos devem receber investimentos para que o seu
lucro seja m´aximo.
Este problema se encaixa na formula¸c˜ao geral do problema da mochila definindo-
se as vari´aveis de decis˜ao como xi = 1 se o projeto i ´e selecionado, e xi = 0, caso
contr´ario (i = 1, 2, 3, 4). Expressando valores em $1000, obt´em-se o seguinte pro-
blema de programa¸c˜ao linear-inteira;
(P)
maximizar z = 16x1 + 22x2 + 12x3 + 8x4
sujeito a 5x1 + 7x2 + 4x3 + 3x4 ≤ 14,
com xi = 1 ou xi = 0, i = 1, 2, 3, 4. (O problema (P) poderia ser classificado como
um problema de programa¸c˜ao 0-1.)
A seguir discute-se a introdu¸c˜ao de restri¸c˜oes adicionais como exerc´ıcio de
modelagem de problemas de programa¸c˜ao inteira. Se a empresa resolver investir em
no m´aximo dois projetos (devido a limita¸c˜oes de recursos humanos, por exemplo),
ent˜ao uma restri¸c˜ao do tipo
x1 + x2 + x3 + x4 ≤ 2
deve ser agregada ao problema (P). Se investir no projeto 2 implicar em investir no
projeto 1, a restri¸c˜ao a ser agregada ao problema (P) deve ser
x2 ≤ x1.
Para evitar investimentos simultˆaneos nos projetos 1 e 4, acrescenta-se ao
problema (P) a restri¸c˜ao
x1 + x4 ≤ 1.
2
4.3. Modelos de Programa¸c˜ao Inteira 109
Problema do Caixeiro Viajante
O problema do caixeiro viajante (travelling salesman problem) pode ser re-
sumido da seguinte forma: um vendedor parte para visitar um certo n´umero de
cidades antes de retornar `a sua cidade de origem. Qual a ordem das visitas que
minimiza a distˆancia total percorrida?
O problema do caixeiro viajante possui in´umeras e importantes aplica¸c˜oes em
planejamento. Empresas transportadoras de grande porte, por exemplo, freq¨uente-
mente recorrem a programas computacionais para resolver problemas de rotea-
mento, isto ´e, determinar quais rotas percorrer para atender pedidos de entrega e
coleta de encomendas de forma a minimizar seus custos totais de transporte.
Denomina-se tour qualquer solu¸c˜ao vi´avel para o problema do caixeiro vi-
ajante, isto ´e, qualquer solu¸c˜ao pela qual o caixeiro visita cada cidade uma vez
e retorna `a sua cidade de origem, n˜ao necessariamente percorrendo um caminho
m´ınimo. Num problema envolvendo n cidades existem n! possibilidades de tours,
pois de uma cidade qualquer deve-se passar a uma das n − 1 restantes, e ent˜ao
para as n − 2 restantes, e assim sucessivamente, at´e restar apenas uma cidade a ser
visitada. Se n = 11, ent˜ao o n´umero total de tours seria 10! = 3628800. Observe
que n˜ao ´e necess´ario especificar uma cidade de origem quando se adota o conceito
de tour.
Para obter o modelo matem´atico inicial de um problema com n cidades, define-
se como vari´aveis de decis˜ao, para i, j = 1, 2, . . . , n,
xij =



1, se o tour segue diretamente da cidade i para a cidade j;
0, caso contr´ario
Para que ocorra um tour, exatamente uma cidade deve ser visitada depois da
cidade i, o que se traduz nas n restri¸c˜oes
n
j=1,j=i
xij = 1, i = 1, 2, . . . , n. (4.1)
Um segundo conjunto de n restri¸c˜oes imp˜oe que exatamente uma cidade deve
ser visitada antes da cidade j:
n
i=1,i=j
xij = 1, j = 1, 2, . . . , n. (4.2)
As 2n restri¸c˜oes (4.1) e (4.2) s˜ao similares `as presentes em problemas de atri-
bui¸c˜ao, discutidos no cap´ıtulo anterior.
O objetivo no problema do caixeiro viajante ´e minimizar a distˆancia total
percorrida. Denotando por cij o custo de deslocamento entre as cidades i e j,
obt´em-se a seguinte fun¸c˜ao-objetivo:
z =
n
i=1
n
j=1,j=i
cijxij. (4.3)
110 Cap´ıtulo 4. Programa¸c˜ao Inteira/Mista
O modelo matem´atico inicial do problema consiste em minimizar (4.3) sujeito
`as restri¸c˜oes (4.1) e (4.2). Este modelo possui solu¸c˜oes vi´aveis que n˜ao s˜ao tours.
Exemplo: considere um modelo envolvendo n = 8 cidades e as seguintes vari´aveis
assumindo valor igual a 1: x13, x32, x26, x64, x41, x57, x78 e x85. Todas as 2n = 16
restri¸c˜oes s˜ao satisfeitas, mas a solu¸c˜ao n˜ao corresponde a um tour. Existem, na
verdade, dois subtours: um composto por x13, x32, x26, x64, x41; outro formado
por x57, x78 e x85. Para que qualquer solu¸c˜ao vi´avel corresponda a um tour ´e
necess´ario incorporar novas restri¸c˜oes ao modelo, o que n˜ao ser´a feito nesta discuss˜ao
introdut´oria do problema.
Exemplo 4.3 Problemas envolvendo o seq¨uenciamento de tarefas s˜ao muitas vˆezes
modelados como problemas do tipo caixeiro viajante. Considere a produ¸c˜ao di´aria
de uma ind´ustria qu´ımica, que inclui a produ¸c˜ao de tintas nas cores branco, verme-
lho, amarelo e preto. Como a ind´ustria usa o mesmo equipamento para produzir
todos os tipos de cores, uma limpeza entre bateladas – produ¸c˜oes de cores diferentes
– ´e necess´aria. A tabela a seguir resume os tempos de limpeza entre bateladas, em
minutos. As linhas da tabela representam cores correntes; as colunas, cores a serem
produzidas em seguida. O objetivo da ind´ustria ´e determinar a seq¨uˆencia ´otima de
produ¸c˜ao di´aria das quatro cores que minimiza o tempo total de limpeza (setup).
Branco Amarelo Preto Vermelho
Branco – 10 17 15
Amarelo 20 – 19 18
Preto 50 44 – 25
Vermelho 45 40 20 –
Este problema se enquadra no modelo do problema do caixeiro viajante associando-
se cores a cidades. Denotando as cores por 1, 2, 3 e 4 (branco, amarelo, preto e
vermelho), os tempos de limpeza por cij, as vari´aveis de decis˜ao por xij = 1, se o
tour vai dar cor i para a cor j, e xij = 0, caso contr´ario, obt´em-se diretamente o
modelo matem´atico do problema. Como comentado, a solu¸c˜ao ´otima do problema
pode n˜ao ser um tour. O tour ´otimo obtido por enumera¸c˜ao ´e produzir as cores
na seq¨uˆencia 1,2,4,3 (branco, amarelo, vermelho, preto), com um tempo m´ınimo
total de limpeza igual a 98 minutos. 2
4.4 M´etodo Branch–and–Bound
Nesta se¸c˜ao apresenta-se um m´etodo geral para resolu¸c˜ao de problemas de pro-
grama¸c˜ao inteira, conhecido como m´etodo branch–and–bound. Um exemplo simples
ser´a usado para motivar o desenvolvimento do m´etodo. Considere o problema de
programa¸c˜ao inteira
(P1)
maximizar z = 3x1 + 4x2
sujeito a 2x1 + x2 ≤ 6,
2x1 + 3x2 ≤ 9,
4.4. M´etodo Branch–and–Bound 111
sendo x1 e x2 vari´aveis inteiras n˜ao-negativas. As solu¸c˜oes vi´aveis do problema (P1)
s˜ao representadas pelo s´ımbolo • na Figura 4.11.
PSfrag replacements
1
1
2
2
3
3
4
4
5
5
6
0 x1
x2
2x1 + x2 = 6
2x1 + 3x2 = 9
Figura 4.11: Solu¸c˜oes vi´aveis do problema (P1).
A solu¸c˜ao ´otima do problema (P1), obtida por enumera¸c˜ao expl´ıcita das
alternativas vi´aveis, ´e x1 = 0 e x2 = 3, com z = 12. O m´etodo branch–and–
bound pode ser visto como um m´etodo de enumera¸c˜ao impl´ıcita, porque explora
todo o conjunto vi´avel do problema sem recorrer `a enumera¸c˜ao de todas as suas
alternativas vi´aveis.
Algoritmo Branch–and–bound
O algoritmo branch–and–bound para problemas de maximiza¸c˜ao pode ser des-
crito em trˆes passos principais:
1: Primeira Aproxima¸c˜ao. Ignore as restri¸c˜oes de integralidade e resolva o pro-
blema de programa¸c˜ao linear resultante. Se a solu¸c˜ao ´otima encontrada for
integral, isto ´e, se os valores ´otimos das vari´aveis de decis˜ao forem todos
n´umeros inteiros, ent˜ao o problema de programa¸c˜ao inteira tamb´em sido re-
solvido e o algoritmo termina. Caso contr´ario, o valor ´otimo encontrado para
z se transforma num limitante superior, LS, para o valor ´otimo do pro-
blema com as restri¸c˜oes de integralidade. No exemplo acima, a solu¸c˜ao ´otima
do problema sem as restri¸c˜oes de integralidade ´e x1 = 2.25 e x2 = 1.5, com
z = 12.75. Faz-se LS = 12.75;
2: Ramifica¸c˜ao (branching) Se na primeira aproxima¸c˜ao, uma das vari´aveis,
xj por exemplo, possuir valor n˜ao-inteiro, ent˜ao i1 ≤ xj ≤ i2, com i1 e
112 Cap´ıtulo 4. Programa¸c˜ao Inteira/Mista
i2 representando n´umeros inteiros n˜ao-negativos consecutivos. Dois novos
problemas s˜ao criados acrescentando-se ao problema original as restri¸c˜oes xj ≤
i1 e xj ≥ i2, respectivamente. Este procedimento, chamado de ramifica¸c˜ao,
elimina a solu¸c˜ao corrente com valor de xj n˜ao-inteiro, mas preserva todas as
poss´ıveis solu¸c˜oes vi´aveis inteiras do problema original. Se ap´os a primeira
aproxima¸c˜ao mais de uma vari´avel for n˜ao-inteira, recomenda-se adotar para
ramifica¸c˜ao uma das que apresentarem parte fracion´aria mais pr´oxima de 0.5.
No exemplo, fazendo j = 2, obt´em-se 1 ≤ x2 ≤ 2, e os dois novos problemas
seriam
(P2)
maximizar z = 3x1 + 4x2
sujeito a 2x1 + x2 ≤ 6,
2x1 + 3x2 ≤ 9,
x2 ≤ 1,
e
(P3)
maximizar z = 3x1 + 4x2
sujeito a 2x1 + x2 ≤ 6,
2x1 + 3x2 ≤ 9,
x2 ≥ 2,
com x1 e x2 vari´aveis inteiras n˜ao-negativas. Primeiras aproxima¸c˜oes dos
novos problemas (P2) e (P3) s˜ao obtidas. No exemplo, a solu¸c˜ao de (P2)
´e x1 = 2.5, x2 = 1 e z∗
= 11.5; a solu¸c˜ao de (P3) ´e x1 = 1.5, x2 = 2 e
z = 12.5. Se as solu¸c˜oes de (P2) e (P3) forem ambas n˜ao-integrais, como
no exemplo, selecione para nova ramifica¸c˜ao o problema cuja valor ´otimo da
primeira aproxima¸c˜ao for mais pr´oximo do limitante superior, LS = 12.75. No
exemplo, (P3) ´e selecionado para a ramifica¸c˜ao da vari´avel x1: 1 ≤ x1 ≤ 2.
Os dois novos problema seriam
(P4)
maximizar z = 3x1 + 4x2
sujeito a 2x1 + x2 ≤ 6,
2x1 + 3x2 ≤ 9,
x2 ≥ 2,
x1 ≤ 1,
e
(P5)
maximizar z = 3x1 + 4x2
sujeito a 2x1 + x2 ≤ 6,
2x1 + 3x2 ≤ 9,
x2 ≥ 2,
x1 ≥ 2,
sendo x1 e x2 vari´aveis inteiras n˜ao-negativas. As primeiras aproxima¸c˜oes de
(P4) e (P5) s˜ao as seguintes: para (P4), x1 = 1, x2 = 2.33 e z = 12.33;
o problema (P5) ´e invi´avel. No procedimento de ramifica¸c˜ao pode ocorrer
de algum problema tornar-se invi´avel com a incorpora¸c˜ao da nova restri¸c˜ao.
Ramifica¸c˜oes adicionais a partir deste tipo de problema n˜ao s˜ao poss´ıveis;
3: Limita¸c˜ao (bounding) O procedimento de ramifica¸c˜ao prossegue at´e que uma
primeira aproxima¸c˜ao apresente solu¸c˜ao inteira. O valor da fun¸c˜ao objetivo
4.4. M´etodo Branch–and–Bound 113
correspondente `a solu¸c˜ao inteira torna-se um limitante inferior, LI, para o
valor ´otimo do problema original, (P1). Todos os problemas cujas primeiras
aproxima¸c˜oes, integrais ou n˜ao, apresentarem valores inferiores ao limitante
inferior s˜ao ent˜ao descartados. O limitante inferior ´e atualizado sempre que
uma primeira aproxima¸c˜ao exibir solu¸c˜ao inteira com valor de z maior. O
algoritmo branch–and–bound termina quando n˜ao mais existirem problemas a
serem ramificados. No exemplo, a ramifica¸c˜ao prossegue a partir do problema
(P4):
(P6)
maximizar z = 3x1 + 4x2
sujeito a 2x1 + x2 ≤ 6,
2x1 + 3x2 ≤ 9,
x2 ≥ 2,
x1 ≤ 1,
x2 ≤ 2,
e
(P7)
maximizar z = 3x1 + 4x2
sujeito a 2x1 + x2 ≤ 6,
2x1 + 3x2 ≤ 9,
x2 ≥ 2,
x1 ≥ 2,
x2 ≥ 3,
com x1 e x2 vari´aveis inteiras n˜ao-negativas. A primeira aproxima¸c˜ao de (P6)
´e x1 = 1, x2 = 2 e z = 11. Como a solu¸c˜ao ´e inteira, LI = 11. Ainda n˜ao
´e poss´ıvel descartar problemas. A solu¸c˜ao de (P7), tamb´em inteira, ´e x1 = 0,
x2 = 3 e z = 12; atualiza-se o limitante inferior para LI = 12, e agora ´e
poss´ıvel descartar os problemas (P2) (z = 11.5) e (P4) (z = 11). Como n˜ao
existem mais problemas a serem ramificados, a solu¸c˜ao ´otima do problema
(P1) ´e x1 = 0, x2 = 3 e z = 12.
O algoritmo branch–and–bound gera uma ´arvore. Cada n´o da ´arvore repre-
senta um problema de onde partem dois ramos. Quando um limitante inferior ´e
obtido e ramos s˜ao eliminados, ocorre a poda da ´arvore, na denomina¸c˜ao de alguns
autores. Para o exemplo considerado, a ´arvore se apresentaria como na Figura 4.12.
114 Cap´ıtulo 4. Programa¸c˜ao Inteira/Mista
PSfrag replacements
P1
P2
P3
P4
P5
P6
P7
z∗
= 12.75
z∗
= 11.5
z∗
= 12.5
z∗
= 12.33
z∗
= 11
z∗
= 12
(2.25, 1.5)
(2.5, 1)
(1.5, 2)
(1, 2.33)
(1, 2)
(0, 3)
Infact´ıvel
Figura 4.12: ´Arvore associada ao exemplo.
Ap´os a primeira aproxima¸c˜ao do problema (P1), se poderia pensar em arre-
dondar os valores n˜ao-inteiros da solu¸c˜ao encontrada para os valores inteiros mais
pr´oximos. A solu¸c˜ao inteira sub´otima assim obtida geralmente n˜ao produz bons
resultados, especialmente se os valores das vari´aveis forem pequenos. No exemplo
acima, a solu¸c˜ao inteira vi´avel mais pr´oxima ap´os a primeira aproxima¸c˜ao de (P1)
´e x1 = 2 e x2 = 1, com z = 10. A diferen¸ca percentual do valor ´otimo do problema
(z = 12) em rela¸c˜ao ao produzido pelo arredondamento da sua primeira apro-
xima¸c˜ao ´e de 17%. Em outros casos ´e poss´ıvel que o arredondamento n˜ao introduza
grande varia¸c˜ao no valor ´otimo da fun¸c˜ao-objetivo.
Exemplo 4.4 Um fabricante est´a come¸cando a ´ultima semana de produ¸c˜ao de
quatro diferentes tipos de consoles para televisores, os quais devem ser montados
e ent˜ao decorados. Os modelos requerem 4, 5, 3 e 5 horas para serem montados,
e 2, 1.5, 3 e 3 horas para serem decorados, respectivamente. Os lucros unit´arios
com os modelos s˜ao $7, $7, $6 e $9, respectivamente. O fabricante disp˜oe de 30000
horas para montagem (750 montadores trabalhando 40 horas por semana) e 20000
horas para decora¸c˜ao (500 decoradores trabalhando 40 horas por semana). Quantas
unidades de cada modelo o fabricante deve produzir durante esta ´ultima semana
de forma a maximizar seu lucro? Assuma que todas as unidades produzidas ser˜ao
vendidas.
A formula¸c˜ao matem´atica do problema ´e
(P1)
maximizar z = 7x1 + 7x2 + 6x3 + 9x4
sujeito a 4x1 + 5x2 + 3x3 + 5x4 ≤ 30000,
2x1 + 1.5x2 + 3x3 + 3x4 ≤ 20000,
com x1, x2, x3 e x4 vari´aveis inteiras n˜ao-negativas que representam os n´umeros
de consoles dos tipos 1, 2, 3 e 4. A primeira aproxima¸c˜ao de (P1) ´e x1 = x2 = 0,
4.4. M´etodo Branch–and–Bound 115
x3 = 1666.67 e x4 = 5000, com z = 55000. O limitante superior do problema ´e
LS = 55000. Como x3 n˜ao possui valor inteiro, introduz-se dois novos problemas:
(P2)
maximizar z = 7x1 + 7x2 + 6x3 + 9x4
sujeito a 4x1 + 5x2 + 3x3 + 5x4 ≤ 30000,
2x1 + 1.5x2 + 3x3 + 3x4 ≤ 20000,
x3 ≤ 1666,
e
(P3)
maximizar z = 7x1 + 7x2 + 6x3 + 9x4
sujeito a 4x1 + 5x2 + 3x3 + 5x4 ≤ 30000,
2x1 + 1.5x2 + 3x3 + 3x4 ≤ 20000,
x3 ≥ 1667.
As solu¸c˜oes de (P2) e (P3) s˜ao x1 = x2 = 0, x3 = 1666, x4 = 5000.4 com z =
54999.6, e x1 = 1, x2 = 0, x3 = 1667, x4 = 4999 com z = 55000, respectivamente.
Como a solu¸c˜ao de (P3) ´e inteira, atualiza-se o limitante inferior: LI = 55000.
Elimina-se o problema (P2) (z = 54999.6) e como n˜ao h´a mais problemas a serem
ramificados, a solu¸c˜ao do problema inteiro (P1) ´e x1 = 1, x2 = 0, x3 = 1667,
x4 = 4999 com z = 55000.
Optando-se pelo estrat´egia de arredondamento, a solu¸c˜ao inteira fact´ıvel mais
pr´oxima ap´os a primeira aproxima¸c˜ao de (P1) ´e x1 = x2 = 0, x3 = 1666, x4 = 5000
com z = 54996. Neste caso, o valor ´otimo do problema inteiro, z = 55000, ´e
menos do que 0.008% superior ao produzido pelo arredondamento. 2
O algoritmo branch–and–bound para problemas de programa¸c˜ao inteira que
envolvam minimizar ao inv´es de maximizar ´e essencialmente o mesmo, com pap´eis
inversos dos limitantes: obt´em-se inicialmente um limitante inferior e, em seguida,
um limitante superior, atualizado sempre que um problema apresentar solu¸c˜ao in-
teira com valor ´otimo z menor.

Mais conteúdo relacionado

Destaque

Destaque (20)

+Golos
+Golos+Golos
+Golos
 
Tutorials
TutorialsTutorials
Tutorials
 
Лекция 6 - Криптографические хэш-функции
Лекция 6 - Криптографические хэш-функцииЛекция 6 - Криптографические хэш-функции
Лекция 6 - Криптографические хэш-функции
 
لالاض3101 sejarah atab
لالاض3101 sejarah atabلالاض3101 sejarah atab
لالاض3101 sejarah atab
 
Dieta Dukan Método Ilustrado_
Dieta Dukan Método Ilustrado_Dieta Dukan Método Ilustrado_
Dieta Dukan Método Ilustrado_
 
Anexo edital
Anexo editalAnexo edital
Anexo edital
 
Publityy v1.3
Publityy v1.3Publityy v1.3
Publityy v1.3
 
WAWANCARA (Psikodiagnostika)
WAWANCARA   (Psikodiagnostika)WAWANCARA   (Psikodiagnostika)
WAWANCARA (Psikodiagnostika)
 
Bab II routing
Bab II routingBab II routing
Bab II routing
 
Bienvenidos a mi blog
Bienvenidos a mi blogBienvenidos a mi blog
Bienvenidos a mi blog
 
Diapositiva de titulo
Diapositiva de tituloDiapositiva de titulo
Diapositiva de titulo
 
San 00003863
San 00003863San 00003863
San 00003863
 
Figuras Planas, Áreas e Perímetros
Figuras Planas, Áreas e PerímetrosFiguras Planas, Áreas e Perímetros
Figuras Planas, Áreas e Perímetros
 
OPP Brasil Short 2015
OPP Brasil Short 2015OPP Brasil Short 2015
OPP Brasil Short 2015
 
Organização dos seres vivos
Organização dos seres vivosOrganização dos seres vivos
Organização dos seres vivos
 
Slot 9: Imbas Virus (Bahagian 2)
Slot 9: Imbas Virus (Bahagian 2)Slot 9: Imbas Virus (Bahagian 2)
Slot 9: Imbas Virus (Bahagian 2)
 
1ºanos 13 jpg
1ºanos 13 jpg1ºanos 13 jpg
1ºanos 13 jpg
 
Exercici
ExerciciExercici
Exercici
 
Enotita 3 senario arxaion
Enotita 3 senario arxaionEnotita 3 senario arxaion
Enotita 3 senario arxaion
 
Confartigianato sardegna operazione trasparenza debiti pa-conferenza stampa 2...
Confartigianato sardegna operazione trasparenza debiti pa-conferenza stampa 2...Confartigianato sardegna operazione trasparenza debiti pa-conferenza stampa 2...
Confartigianato sardegna operazione trasparenza debiti pa-conferenza stampa 2...
 

Semelhante a C4044

Atividade avaliativa extra unidade 2
Atividade avaliativa extra   unidade 2Atividade avaliativa extra   unidade 2
Atividade avaliativa extra unidade 2Judson Praxedes
 
Programacao linear 11 ano - 1011
Programacao linear 11 ano -  1011Programacao linear 11 ano -  1011
Programacao linear 11 ano - 1011deolindasa
 
Conceitos basicos 2013_2014
Conceitos basicos 2013_2014Conceitos basicos 2013_2014
Conceitos basicos 2013_2014Nuno Bastos
 
Relações de recorrência
Relações de recorrênciaRelações de recorrência
Relações de recorrênciaPablo Silva
 
Matemática computacional aula 001
Matemática computacional   aula 001Matemática computacional   aula 001
Matemática computacional aula 001Flávio Freitas
 
PROBLEMA DA MOCHILA VALIOSA COM VALOR MINIMO DE UTILIDADE
PROBLEMA DA MOCHILA VALIOSA COM VALOR MINIMO DE UTILIDADEPROBLEMA DA MOCHILA VALIOSA COM VALOR MINIMO DE UTILIDADE
PROBLEMA DA MOCHILA VALIOSA COM VALOR MINIMO DE UTILIDADEJoao Gonçalves
 
Pesquisa Operacional 1_Aula 2
Pesquisa Operacional 1_Aula 2Pesquisa Operacional 1_Aula 2
Pesquisa Operacional 1_Aula 2Joabe Amaral
 
Matematica questões resolvidas i
Matematica questões resolvidas iMatematica questões resolvidas i
Matematica questões resolvidas icon_seguir
 
EMA013_03-PROGRAMAO_LINEAR_METODO_SIMPLEX.pdf
EMA013_03-PROGRAMAO_LINEAR_METODO_SIMPLEX.pdfEMA013_03-PROGRAMAO_LINEAR_METODO_SIMPLEX.pdf
EMA013_03-PROGRAMAO_LINEAR_METODO_SIMPLEX.pdfGabriel374282
 
Modelagem matematica aplicada a engenharia quimica
Modelagem matematica aplicada a engenharia quimicaModelagem matematica aplicada a engenharia quimica
Modelagem matematica aplicada a engenharia quimicaVinicius Chacon
 
17.1 Equações Lineares de Segunda Ordem-15-27.pdf
17.1 Equações Lineares de Segunda Ordem-15-27.pdf17.1 Equações Lineares de Segunda Ordem-15-27.pdf
17.1 Equações Lineares de Segunda Ordem-15-27.pdfBrandonCarhuas
 
Exercicio regra de sinais 2
Exercicio regra de sinais 2Exercicio regra de sinais 2
Exercicio regra de sinais 2Jodiléia Dutra
 

Semelhante a C4044 (20)

Atps pesquisa operacional
Atps pesquisa operacionalAtps pesquisa operacional
Atps pesquisa operacional
 
Atividade avaliativa extra unidade 2
Atividade avaliativa extra   unidade 2Atividade avaliativa extra   unidade 2
Atividade avaliativa extra unidade 2
 
Softwares
SoftwaresSoftwares
Softwares
 
Aula17e18
Aula17e18Aula17e18
Aula17e18
 
Introdução à otimização convexa.
Introdução à otimização convexa.Introdução à otimização convexa.
Introdução à otimização convexa.
 
Programacao linear 11 ano - 1011
Programacao linear 11 ano -  1011Programacao linear 11 ano -  1011
Programacao linear 11 ano - 1011
 
Conceitos basicos 2013_2014
Conceitos basicos 2013_2014Conceitos basicos 2013_2014
Conceitos basicos 2013_2014
 
Matemática - dicas
Matemática - dicasMatemática - dicas
Matemática - dicas
 
Relações de recorrência
Relações de recorrênciaRelações de recorrência
Relações de recorrência
 
Matemática computacional aula 001
Matemática computacional   aula 001Matemática computacional   aula 001
Matemática computacional aula 001
 
PROBLEMA DA MOCHILA VALIOSA COM VALOR MINIMO DE UTILIDADE
PROBLEMA DA MOCHILA VALIOSA COM VALOR MINIMO DE UTILIDADEPROBLEMA DA MOCHILA VALIOSA COM VALOR MINIMO DE UTILIDADE
PROBLEMA DA MOCHILA VALIOSA COM VALOR MINIMO DE UTILIDADE
 
Pesquisa Operacional 1_Aula 2
Pesquisa Operacional 1_Aula 2Pesquisa Operacional 1_Aula 2
Pesquisa Operacional 1_Aula 2
 
Matematica questões resolvidas i
Matematica questões resolvidas iMatematica questões resolvidas i
Matematica questões resolvidas i
 
Prog Din08
Prog Din08Prog Din08
Prog Din08
 
EMA013_03-PROGRAMAO_LINEAR_METODO_SIMPLEX.pdf
EMA013_03-PROGRAMAO_LINEAR_METODO_SIMPLEX.pdfEMA013_03-PROGRAMAO_LINEAR_METODO_SIMPLEX.pdf
EMA013_03-PROGRAMAO_LINEAR_METODO_SIMPLEX.pdf
 
Problema de Transporte
Problema de TransporteProblema de Transporte
Problema de Transporte
 
Problema de Transporte
Problema de TransporteProblema de Transporte
Problema de Transporte
 
Modelagem matematica aplicada a engenharia quimica
Modelagem matematica aplicada a engenharia quimicaModelagem matematica aplicada a engenharia quimica
Modelagem matematica aplicada a engenharia quimica
 
17.1 Equações Lineares de Segunda Ordem-15-27.pdf
17.1 Equações Lineares de Segunda Ordem-15-27.pdf17.1 Equações Lineares de Segunda Ordem-15-27.pdf
17.1 Equações Lineares de Segunda Ordem-15-27.pdf
 
Exercicio regra de sinais 2
Exercicio regra de sinais 2Exercicio regra de sinais 2
Exercicio regra de sinais 2
 

C4044

  • 1. Cap´ıtulo 4 Programa¸c˜ao Inteira/Mista 4.1 Restri¸c˜oes de Integralidade Restri¸c˜oes de integralidade surgem quando a natureza do problema imp˜oe que todas as suas vari´aveis de decis˜ao assumam apenas valores inteiros (integrais). Problemas com esta caracter´ıstica s˜ao chamados de problemas de Programa¸c˜ao Inteira. Problemas nos quais as vari´aveis de decis˜ao s´o podem assumir os valores inteiros 0 e 1 s˜ao denominados de problemas de Programa¸c˜ao 0-1. Quando ape- nas parte das vari´aveis est´a restrita a valores inteiros, diz-se que o problema ´e de Programa¸c˜ao Inteira/Mista. Os m´etodos tradicionais de Programa¸c˜ao Linear, em especial o m´etodo Sim- plex, n˜ao levam diretamente em conta restri¸c˜oes de integralidade, o que n˜ao quer dizer que n˜ao possam produzir solu¸c˜oes ´otimas inteiras. No Cap´ıtulo 3 as solu¸c˜oes encontradas por m´etodos Simplex especializados para problemas de transporte e de atribui¸c˜ao s˜ao naturalmente inteiras, porque os dados de entrada destes problemas s˜ao inteiros e os m´etodos empregados exploram as estruturas especiais destes pro- blemas para executar apenas opera¸c˜oes de adi¸c˜ao, subtra¸c˜ao e multiplica¸c˜ao, n˜ao podendo assim gerar resultados n˜ao-inteiros. Existem, entretanto, problemas importantes de planejamento que requerem solu¸c˜oes ´otimas inteiras, mas que n˜ao apresentam propriedades que permitam obtˆe- las por meio de programa¸c˜ao linear. Em geral os m´etodos da programa¸c˜ao linear precisam ser adaptados para que forne¸cam respostas compat´ıveis com restri¸c˜oes de integralidade. Embora a presen¸ca de vari´aveis inteiras em problemas de planeja- mento j´a tenha sido abordada em cap´ıtulos anteriores, ´e neste que se inicia um estudo mais detalhado de modelos e m´etodos de Programa¸c˜ao Inteira/Mista. 4.2 Exemplo Ilustrativo Algumas propriedades b´asicas de problemas lineares-inteiros s˜ao discutidas por meio do exemplo ilustrativo a seguir. Exemplo 4.1 Um moveleiro fabrica dois tipos de pain´eis de madeira. Disp˜oe de 105
  • 2. 106 Cap´ıtulo 4. Programa¸c˜ao Inteira/Mista seis unidades de madeira e 28 horas de trabalho. O painel 1 consome duas unidades de madeira e sete horas de trabalho; o painel 2, uma unidade de madeira e oito horas de trabalho. Os lucros unit´arios dos pain´eis s˜ao de $120 e $80, respectivamente. O moveleiro gostaria de maximizar seu lucro com a produ¸c˜ao de pain´eis. A descri¸c˜ao acima admite a seguinte formula¸c˜ao por programa¸c˜ao linear- inteira: (PLI) maximizar z = 120x1 + 80x2 sujeito a 2x1 + x2 ≤ 6, 7x1 + 8x2 ≤ 28, com x1 e x2 vari´aveis inteiras n˜ao-negativas. A Figura 4.1 ilustra graficamente o problema. Apenas os pontos assinalados com o s´ımbolo • s˜ao solu¸c˜oes vi´aveis para o problema linear-inteiro (PLI). PSfrag replacements 1 1 2 2 3 3 4 4 5 6 0 x1 x2 2x1 + x2 = 6 7x1 + 8x2 = 28 Solu¸c˜ao de (PLIR) Figura 4.1: Representa¸c˜ao gr´afica do problema (PLI). A solu¸c˜ao ´otima do problema linear-inteiro relaxado, (PLIR), obtido ignorando- se as restri¸c˜oes de integralidade sobre as vari´aveis de decis˜ao, ´e encontrada na in- tersec¸c˜ao das restri¸c˜oes lineares: x1 = 20/9 e x2 = 14/9. Se a solu¸c˜ao ´otima obtida fosse inteira, o problema (PLI) teria sido resolvido. O valor da fun¸c˜ao-objetivo na solu¸c˜ao do problema linear relaxado ´e zPLIR = 120(20/9) + 80(14/9) = 3520/9 391.1. Uma primeira id´eia para for¸car a integralidade da solu¸c˜ao seria arredondar
  • 3. 4.3. Modelos de Programa¸c˜ao Inteira 107 os valores ´otimos do problema (PLIR) para os inteiros mais pr´oximos, obtendo-se x1 = 2 e x2 = 1. O valor da fun¸c˜ao-objetivo na solu¸c˜ao arredondada ´e zARR = 320. Uma segunda id´eia, poss´ıvel quando o problema considerado apresenta um n´umero relativamente pequeno de alternativas vi´aveis inteiras, seria resolver o pro- blema por enumera¸c˜ao, isto ´e, determinar qual das alternativas vi´aveis inteiras leva ao maior valor para a fun¸c˜ao-objetivo. A solu¸c˜ao ´otima do problema (PLI), obtida por enumera¸c˜ao, ´e x1 = 3, x2 = 0 e zPLI = 360. Sua diferen¸ca percentual em rela¸c˜ao `a solu¸c˜ao obtida por arredondamento ´e 360 − 320 360 11%. Diferen¸cas percentuais da ordem de 10% de lucro costumam ser significativas em problemas de planejamento. 2 Dado um problema de programa¸c˜ao linear-inteira (PLI) qualquer e sua vers˜ao (PLIR) obtida relaxando-se (ignorando-se) restri¸c˜oes de integralidade, ent˜ao, em termos de valores ´otimos das fun¸c˜oes-objetivos, zPLI ≤ zPLIR se o problema original for de maximiza¸c˜ao. No caso de minimiza¸c˜ao, zPLI ≥ zPLIR. A raz˜ao para as desigualdades ´e que a regi˜ao vi´avel do problema (PLIR) cont´em todas as solu¸c˜oes vi´aveis inteiras do problema (PLI). Logo, o valor ´otimo de (PLIR) ´e no m´ınimo igual ao de (PLI), podendo ser maior ou menor, depen- dendo do tipo de formula¸c˜ao, maximiza¸c˜ao ou minimiza¸c˜ao. Esta propriedade ´e freq¨uentemente explorada por m´etodos de programa¸c˜ao inteira. 4.3 Modelos de Programa¸c˜ao Inteira Muitos problemas de planejamento podem ser formulados a partir de mode- los de programa¸c˜ao inteira gen´ericos, e que por serem gen´ericos tˆem sido melhor estudados na literatura da ´area. Alguns destes modelos s˜ao discutidos nesta se¸c˜ao. Problema da Mochila O chamado problema da mochila (knapsack problem) descreve a seguinte si- tua¸c˜ao: certo indiv´ıduo possui uma mochila com capacidade para armazenar b kilogramas. O indiv´ıduo precisa escolher as quantidades de n diferentes itens a armazenar na mochila, sabendo que cada unidade do item i pesa ai kilogramas. O indiv´ıduo atribui o valor pi a cada unidade do item i. O problema consiste em maximizar o valor total dos itens a armazenar na mochila respeitando o seu limite de capacidade.
  • 4. 108 Cap´ıtulo 4. Programa¸c˜ao Inteira/Mista Definindo xi como a quantidade do item i = 1, 2, . . . , n, o problema da mochila assume a seguinte forma: (PM) maximizar z = p1x1 + p2x2 + · · · + pnxn sujeito a a1x1 + a2x2 + · · · + anxn ≤ b, com xi, i = 1, 2, . . . , n, vari´aveis inteiras n˜ao-negativas. O problema da mochila surge com freq¨uˆencia em problemas de planejamento, como no discutido a seguir. Exemplo 4.2 Uma empresa est´a considerando investir em quatro novos projetos. Os projetos gerariam um lucro l´ıquido presente de $16000, $22000, $12000 e $8000. (O lucro l´ıquido presente, NPV em inglˆes, seria o lucro obtido ao longo dos anos referido ao momento no qual a decis˜ao de investimento ´e tomada.) Os projetos exi- giriam investimentos de $5000, $7000, $4000 e $3000, respectivamente. A empresa disp˜oe de um total de $14000 para investimento nos quatro projetos. O objetivo da empresa ´e determinar quais projetos devem receber investimentos para que o seu lucro seja m´aximo. Este problema se encaixa na formula¸c˜ao geral do problema da mochila definindo- se as vari´aveis de decis˜ao como xi = 1 se o projeto i ´e selecionado, e xi = 0, caso contr´ario (i = 1, 2, 3, 4). Expressando valores em $1000, obt´em-se o seguinte pro- blema de programa¸c˜ao linear-inteira; (P) maximizar z = 16x1 + 22x2 + 12x3 + 8x4 sujeito a 5x1 + 7x2 + 4x3 + 3x4 ≤ 14, com xi = 1 ou xi = 0, i = 1, 2, 3, 4. (O problema (P) poderia ser classificado como um problema de programa¸c˜ao 0-1.) A seguir discute-se a introdu¸c˜ao de restri¸c˜oes adicionais como exerc´ıcio de modelagem de problemas de programa¸c˜ao inteira. Se a empresa resolver investir em no m´aximo dois projetos (devido a limita¸c˜oes de recursos humanos, por exemplo), ent˜ao uma restri¸c˜ao do tipo x1 + x2 + x3 + x4 ≤ 2 deve ser agregada ao problema (P). Se investir no projeto 2 implicar em investir no projeto 1, a restri¸c˜ao a ser agregada ao problema (P) deve ser x2 ≤ x1. Para evitar investimentos simultˆaneos nos projetos 1 e 4, acrescenta-se ao problema (P) a restri¸c˜ao x1 + x4 ≤ 1. 2
  • 5. 4.3. Modelos de Programa¸c˜ao Inteira 109 Problema do Caixeiro Viajante O problema do caixeiro viajante (travelling salesman problem) pode ser re- sumido da seguinte forma: um vendedor parte para visitar um certo n´umero de cidades antes de retornar `a sua cidade de origem. Qual a ordem das visitas que minimiza a distˆancia total percorrida? O problema do caixeiro viajante possui in´umeras e importantes aplica¸c˜oes em planejamento. Empresas transportadoras de grande porte, por exemplo, freq¨uente- mente recorrem a programas computacionais para resolver problemas de rotea- mento, isto ´e, determinar quais rotas percorrer para atender pedidos de entrega e coleta de encomendas de forma a minimizar seus custos totais de transporte. Denomina-se tour qualquer solu¸c˜ao vi´avel para o problema do caixeiro vi- ajante, isto ´e, qualquer solu¸c˜ao pela qual o caixeiro visita cada cidade uma vez e retorna `a sua cidade de origem, n˜ao necessariamente percorrendo um caminho m´ınimo. Num problema envolvendo n cidades existem n! possibilidades de tours, pois de uma cidade qualquer deve-se passar a uma das n − 1 restantes, e ent˜ao para as n − 2 restantes, e assim sucessivamente, at´e restar apenas uma cidade a ser visitada. Se n = 11, ent˜ao o n´umero total de tours seria 10! = 3628800. Observe que n˜ao ´e necess´ario especificar uma cidade de origem quando se adota o conceito de tour. Para obter o modelo matem´atico inicial de um problema com n cidades, define- se como vari´aveis de decis˜ao, para i, j = 1, 2, . . . , n, xij =    1, se o tour segue diretamente da cidade i para a cidade j; 0, caso contr´ario Para que ocorra um tour, exatamente uma cidade deve ser visitada depois da cidade i, o que se traduz nas n restri¸c˜oes n j=1,j=i xij = 1, i = 1, 2, . . . , n. (4.1) Um segundo conjunto de n restri¸c˜oes imp˜oe que exatamente uma cidade deve ser visitada antes da cidade j: n i=1,i=j xij = 1, j = 1, 2, . . . , n. (4.2) As 2n restri¸c˜oes (4.1) e (4.2) s˜ao similares `as presentes em problemas de atri- bui¸c˜ao, discutidos no cap´ıtulo anterior. O objetivo no problema do caixeiro viajante ´e minimizar a distˆancia total percorrida. Denotando por cij o custo de deslocamento entre as cidades i e j, obt´em-se a seguinte fun¸c˜ao-objetivo: z = n i=1 n j=1,j=i cijxij. (4.3)
  • 6. 110 Cap´ıtulo 4. Programa¸c˜ao Inteira/Mista O modelo matem´atico inicial do problema consiste em minimizar (4.3) sujeito `as restri¸c˜oes (4.1) e (4.2). Este modelo possui solu¸c˜oes vi´aveis que n˜ao s˜ao tours. Exemplo: considere um modelo envolvendo n = 8 cidades e as seguintes vari´aveis assumindo valor igual a 1: x13, x32, x26, x64, x41, x57, x78 e x85. Todas as 2n = 16 restri¸c˜oes s˜ao satisfeitas, mas a solu¸c˜ao n˜ao corresponde a um tour. Existem, na verdade, dois subtours: um composto por x13, x32, x26, x64, x41; outro formado por x57, x78 e x85. Para que qualquer solu¸c˜ao vi´avel corresponda a um tour ´e necess´ario incorporar novas restri¸c˜oes ao modelo, o que n˜ao ser´a feito nesta discuss˜ao introdut´oria do problema. Exemplo 4.3 Problemas envolvendo o seq¨uenciamento de tarefas s˜ao muitas vˆezes modelados como problemas do tipo caixeiro viajante. Considere a produ¸c˜ao di´aria de uma ind´ustria qu´ımica, que inclui a produ¸c˜ao de tintas nas cores branco, verme- lho, amarelo e preto. Como a ind´ustria usa o mesmo equipamento para produzir todos os tipos de cores, uma limpeza entre bateladas – produ¸c˜oes de cores diferentes – ´e necess´aria. A tabela a seguir resume os tempos de limpeza entre bateladas, em minutos. As linhas da tabela representam cores correntes; as colunas, cores a serem produzidas em seguida. O objetivo da ind´ustria ´e determinar a seq¨uˆencia ´otima de produ¸c˜ao di´aria das quatro cores que minimiza o tempo total de limpeza (setup). Branco Amarelo Preto Vermelho Branco – 10 17 15 Amarelo 20 – 19 18 Preto 50 44 – 25 Vermelho 45 40 20 – Este problema se enquadra no modelo do problema do caixeiro viajante associando- se cores a cidades. Denotando as cores por 1, 2, 3 e 4 (branco, amarelo, preto e vermelho), os tempos de limpeza por cij, as vari´aveis de decis˜ao por xij = 1, se o tour vai dar cor i para a cor j, e xij = 0, caso contr´ario, obt´em-se diretamente o modelo matem´atico do problema. Como comentado, a solu¸c˜ao ´otima do problema pode n˜ao ser um tour. O tour ´otimo obtido por enumera¸c˜ao ´e produzir as cores na seq¨uˆencia 1,2,4,3 (branco, amarelo, vermelho, preto), com um tempo m´ınimo total de limpeza igual a 98 minutos. 2 4.4 M´etodo Branch–and–Bound Nesta se¸c˜ao apresenta-se um m´etodo geral para resolu¸c˜ao de problemas de pro- grama¸c˜ao inteira, conhecido como m´etodo branch–and–bound. Um exemplo simples ser´a usado para motivar o desenvolvimento do m´etodo. Considere o problema de programa¸c˜ao inteira (P1) maximizar z = 3x1 + 4x2 sujeito a 2x1 + x2 ≤ 6, 2x1 + 3x2 ≤ 9,
  • 7. 4.4. M´etodo Branch–and–Bound 111 sendo x1 e x2 vari´aveis inteiras n˜ao-negativas. As solu¸c˜oes vi´aveis do problema (P1) s˜ao representadas pelo s´ımbolo • na Figura 4.11. PSfrag replacements 1 1 2 2 3 3 4 4 5 5 6 0 x1 x2 2x1 + x2 = 6 2x1 + 3x2 = 9 Figura 4.11: Solu¸c˜oes vi´aveis do problema (P1). A solu¸c˜ao ´otima do problema (P1), obtida por enumera¸c˜ao expl´ıcita das alternativas vi´aveis, ´e x1 = 0 e x2 = 3, com z = 12. O m´etodo branch–and– bound pode ser visto como um m´etodo de enumera¸c˜ao impl´ıcita, porque explora todo o conjunto vi´avel do problema sem recorrer `a enumera¸c˜ao de todas as suas alternativas vi´aveis. Algoritmo Branch–and–bound O algoritmo branch–and–bound para problemas de maximiza¸c˜ao pode ser des- crito em trˆes passos principais: 1: Primeira Aproxima¸c˜ao. Ignore as restri¸c˜oes de integralidade e resolva o pro- blema de programa¸c˜ao linear resultante. Se a solu¸c˜ao ´otima encontrada for integral, isto ´e, se os valores ´otimos das vari´aveis de decis˜ao forem todos n´umeros inteiros, ent˜ao o problema de programa¸c˜ao inteira tamb´em sido re- solvido e o algoritmo termina. Caso contr´ario, o valor ´otimo encontrado para z se transforma num limitante superior, LS, para o valor ´otimo do pro- blema com as restri¸c˜oes de integralidade. No exemplo acima, a solu¸c˜ao ´otima do problema sem as restri¸c˜oes de integralidade ´e x1 = 2.25 e x2 = 1.5, com z = 12.75. Faz-se LS = 12.75; 2: Ramifica¸c˜ao (branching) Se na primeira aproxima¸c˜ao, uma das vari´aveis, xj por exemplo, possuir valor n˜ao-inteiro, ent˜ao i1 ≤ xj ≤ i2, com i1 e
  • 8. 112 Cap´ıtulo 4. Programa¸c˜ao Inteira/Mista i2 representando n´umeros inteiros n˜ao-negativos consecutivos. Dois novos problemas s˜ao criados acrescentando-se ao problema original as restri¸c˜oes xj ≤ i1 e xj ≥ i2, respectivamente. Este procedimento, chamado de ramifica¸c˜ao, elimina a solu¸c˜ao corrente com valor de xj n˜ao-inteiro, mas preserva todas as poss´ıveis solu¸c˜oes vi´aveis inteiras do problema original. Se ap´os a primeira aproxima¸c˜ao mais de uma vari´avel for n˜ao-inteira, recomenda-se adotar para ramifica¸c˜ao uma das que apresentarem parte fracion´aria mais pr´oxima de 0.5. No exemplo, fazendo j = 2, obt´em-se 1 ≤ x2 ≤ 2, e os dois novos problemas seriam (P2) maximizar z = 3x1 + 4x2 sujeito a 2x1 + x2 ≤ 6, 2x1 + 3x2 ≤ 9, x2 ≤ 1, e (P3) maximizar z = 3x1 + 4x2 sujeito a 2x1 + x2 ≤ 6, 2x1 + 3x2 ≤ 9, x2 ≥ 2, com x1 e x2 vari´aveis inteiras n˜ao-negativas. Primeiras aproxima¸c˜oes dos novos problemas (P2) e (P3) s˜ao obtidas. No exemplo, a solu¸c˜ao de (P2) ´e x1 = 2.5, x2 = 1 e z∗ = 11.5; a solu¸c˜ao de (P3) ´e x1 = 1.5, x2 = 2 e z = 12.5. Se as solu¸c˜oes de (P2) e (P3) forem ambas n˜ao-integrais, como no exemplo, selecione para nova ramifica¸c˜ao o problema cuja valor ´otimo da primeira aproxima¸c˜ao for mais pr´oximo do limitante superior, LS = 12.75. No exemplo, (P3) ´e selecionado para a ramifica¸c˜ao da vari´avel x1: 1 ≤ x1 ≤ 2. Os dois novos problema seriam (P4) maximizar z = 3x1 + 4x2 sujeito a 2x1 + x2 ≤ 6, 2x1 + 3x2 ≤ 9, x2 ≥ 2, x1 ≤ 1, e (P5) maximizar z = 3x1 + 4x2 sujeito a 2x1 + x2 ≤ 6, 2x1 + 3x2 ≤ 9, x2 ≥ 2, x1 ≥ 2, sendo x1 e x2 vari´aveis inteiras n˜ao-negativas. As primeiras aproxima¸c˜oes de (P4) e (P5) s˜ao as seguintes: para (P4), x1 = 1, x2 = 2.33 e z = 12.33; o problema (P5) ´e invi´avel. No procedimento de ramifica¸c˜ao pode ocorrer de algum problema tornar-se invi´avel com a incorpora¸c˜ao da nova restri¸c˜ao. Ramifica¸c˜oes adicionais a partir deste tipo de problema n˜ao s˜ao poss´ıveis; 3: Limita¸c˜ao (bounding) O procedimento de ramifica¸c˜ao prossegue at´e que uma primeira aproxima¸c˜ao apresente solu¸c˜ao inteira. O valor da fun¸c˜ao objetivo
  • 9. 4.4. M´etodo Branch–and–Bound 113 correspondente `a solu¸c˜ao inteira torna-se um limitante inferior, LI, para o valor ´otimo do problema original, (P1). Todos os problemas cujas primeiras aproxima¸c˜oes, integrais ou n˜ao, apresentarem valores inferiores ao limitante inferior s˜ao ent˜ao descartados. O limitante inferior ´e atualizado sempre que uma primeira aproxima¸c˜ao exibir solu¸c˜ao inteira com valor de z maior. O algoritmo branch–and–bound termina quando n˜ao mais existirem problemas a serem ramificados. No exemplo, a ramifica¸c˜ao prossegue a partir do problema (P4): (P6) maximizar z = 3x1 + 4x2 sujeito a 2x1 + x2 ≤ 6, 2x1 + 3x2 ≤ 9, x2 ≥ 2, x1 ≤ 1, x2 ≤ 2, e (P7) maximizar z = 3x1 + 4x2 sujeito a 2x1 + x2 ≤ 6, 2x1 + 3x2 ≤ 9, x2 ≥ 2, x1 ≥ 2, x2 ≥ 3, com x1 e x2 vari´aveis inteiras n˜ao-negativas. A primeira aproxima¸c˜ao de (P6) ´e x1 = 1, x2 = 2 e z = 11. Como a solu¸c˜ao ´e inteira, LI = 11. Ainda n˜ao ´e poss´ıvel descartar problemas. A solu¸c˜ao de (P7), tamb´em inteira, ´e x1 = 0, x2 = 3 e z = 12; atualiza-se o limitante inferior para LI = 12, e agora ´e poss´ıvel descartar os problemas (P2) (z = 11.5) e (P4) (z = 11). Como n˜ao existem mais problemas a serem ramificados, a solu¸c˜ao ´otima do problema (P1) ´e x1 = 0, x2 = 3 e z = 12. O algoritmo branch–and–bound gera uma ´arvore. Cada n´o da ´arvore repre- senta um problema de onde partem dois ramos. Quando um limitante inferior ´e obtido e ramos s˜ao eliminados, ocorre a poda da ´arvore, na denomina¸c˜ao de alguns autores. Para o exemplo considerado, a ´arvore se apresentaria como na Figura 4.12.
  • 10. 114 Cap´ıtulo 4. Programa¸c˜ao Inteira/Mista PSfrag replacements P1 P2 P3 P4 P5 P6 P7 z∗ = 12.75 z∗ = 11.5 z∗ = 12.5 z∗ = 12.33 z∗ = 11 z∗ = 12 (2.25, 1.5) (2.5, 1) (1.5, 2) (1, 2.33) (1, 2) (0, 3) Infact´ıvel Figura 4.12: ´Arvore associada ao exemplo. Ap´os a primeira aproxima¸c˜ao do problema (P1), se poderia pensar em arre- dondar os valores n˜ao-inteiros da solu¸c˜ao encontrada para os valores inteiros mais pr´oximos. A solu¸c˜ao inteira sub´otima assim obtida geralmente n˜ao produz bons resultados, especialmente se os valores das vari´aveis forem pequenos. No exemplo acima, a solu¸c˜ao inteira vi´avel mais pr´oxima ap´os a primeira aproxima¸c˜ao de (P1) ´e x1 = 2 e x2 = 1, com z = 10. A diferen¸ca percentual do valor ´otimo do problema (z = 12) em rela¸c˜ao ao produzido pelo arredondamento da sua primeira apro- xima¸c˜ao ´e de 17%. Em outros casos ´e poss´ıvel que o arredondamento n˜ao introduza grande varia¸c˜ao no valor ´otimo da fun¸c˜ao-objetivo. Exemplo 4.4 Um fabricante est´a come¸cando a ´ultima semana de produ¸c˜ao de quatro diferentes tipos de consoles para televisores, os quais devem ser montados e ent˜ao decorados. Os modelos requerem 4, 5, 3 e 5 horas para serem montados, e 2, 1.5, 3 e 3 horas para serem decorados, respectivamente. Os lucros unit´arios com os modelos s˜ao $7, $7, $6 e $9, respectivamente. O fabricante disp˜oe de 30000 horas para montagem (750 montadores trabalhando 40 horas por semana) e 20000 horas para decora¸c˜ao (500 decoradores trabalhando 40 horas por semana). Quantas unidades de cada modelo o fabricante deve produzir durante esta ´ultima semana de forma a maximizar seu lucro? Assuma que todas as unidades produzidas ser˜ao vendidas. A formula¸c˜ao matem´atica do problema ´e (P1) maximizar z = 7x1 + 7x2 + 6x3 + 9x4 sujeito a 4x1 + 5x2 + 3x3 + 5x4 ≤ 30000, 2x1 + 1.5x2 + 3x3 + 3x4 ≤ 20000, com x1, x2, x3 e x4 vari´aveis inteiras n˜ao-negativas que representam os n´umeros de consoles dos tipos 1, 2, 3 e 4. A primeira aproxima¸c˜ao de (P1) ´e x1 = x2 = 0,
  • 11. 4.4. M´etodo Branch–and–Bound 115 x3 = 1666.67 e x4 = 5000, com z = 55000. O limitante superior do problema ´e LS = 55000. Como x3 n˜ao possui valor inteiro, introduz-se dois novos problemas: (P2) maximizar z = 7x1 + 7x2 + 6x3 + 9x4 sujeito a 4x1 + 5x2 + 3x3 + 5x4 ≤ 30000, 2x1 + 1.5x2 + 3x3 + 3x4 ≤ 20000, x3 ≤ 1666, e (P3) maximizar z = 7x1 + 7x2 + 6x3 + 9x4 sujeito a 4x1 + 5x2 + 3x3 + 5x4 ≤ 30000, 2x1 + 1.5x2 + 3x3 + 3x4 ≤ 20000, x3 ≥ 1667. As solu¸c˜oes de (P2) e (P3) s˜ao x1 = x2 = 0, x3 = 1666, x4 = 5000.4 com z = 54999.6, e x1 = 1, x2 = 0, x3 = 1667, x4 = 4999 com z = 55000, respectivamente. Como a solu¸c˜ao de (P3) ´e inteira, atualiza-se o limitante inferior: LI = 55000. Elimina-se o problema (P2) (z = 54999.6) e como n˜ao h´a mais problemas a serem ramificados, a solu¸c˜ao do problema inteiro (P1) ´e x1 = 1, x2 = 0, x3 = 1667, x4 = 4999 com z = 55000. Optando-se pelo estrat´egia de arredondamento, a solu¸c˜ao inteira fact´ıvel mais pr´oxima ap´os a primeira aproxima¸c˜ao de (P1) ´e x1 = x2 = 0, x3 = 1666, x4 = 5000 com z = 54996. Neste caso, o valor ´otimo do problema inteiro, z = 55000, ´e menos do que 0.008% superior ao produzido pelo arredondamento. 2 O algoritmo branch–and–bound para problemas de programa¸c˜ao inteira que envolvam minimizar ao inv´es de maximizar ´e essencialmente o mesmo, com pap´eis inversos dos limitantes: obt´em-se inicialmente um limitante inferior e, em seguida, um limitante superior, atualizado sempre que um problema apresentar solu¸c˜ao in- teira com valor ´otimo z menor.