Cap´ıtulo 4
Programa¸c˜ao
Inteira/Mista
4.1 Restri¸c˜oes de Integralidade
Restri¸c˜oes de integralidade surgem quando a na...
106 Cap´ıtulo 4. Programa¸c˜ao Inteira/Mista
seis unidades de madeira e 28 horas de trabalho. O painel 1 consome duas unid...
4.3. Modelos de Programa¸c˜ao Inteira 107
os valores ´otimos do problema (PLIR) para os inteiros mais pr´oximos, obtendo-s...
108 Cap´ıtulo 4. Programa¸c˜ao Inteira/Mista
Definindo xi como a quantidade do item i = 1, 2, . . . , n, o problema da moch...
4.3. Modelos de Programa¸c˜ao Inteira 109
Problema do Caixeiro Viajante
O problema do caixeiro viajante (travelling salesm...
110 Cap´ıtulo 4. Programa¸c˜ao Inteira/Mista
O modelo matem´atico inicial do problema consiste em minimizar (4.3) sujeito
...
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...
112 Cap´ıtulo 4. Programa¸c˜ao Inteira/Mista
i2 representando n´umeros inteiros n˜ao-negativos consecutivos. Dois novos
pr...
4.4. M´etodo Branch–and–Bound 113
correspondente `a solu¸c˜ao inteira torna-se um limitante inferior, LI, para o
valor ´ot...
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∗
= ...
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....
Próximos SlideShares
Carregando em…5
×

C4044

204 visualizações

Publicada em

0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
204
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
1
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

C4044

  1. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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.

×