Você está na página 1de 30
Programacao Linear aplicada a andlise de investimentos 1-1, PROGRAMAGAO LINEAR I-1.1. Introdugio Este apéndice tem a finalidade de introduzir os assuntos de Programacdo Linear relevantes 4 andlise de investimento. No item 1-2 utilizaremos os resultados deste item para introduzir métodos de solucdo de problemas de Programagdo Linear com vatidveis inteiras, e no item I'3 usaremos 05 resultados obtidos nos dois primeiros itens para a selecdo de inves. timentos. A maioria dos assuntos deste capitulo é tratada sem rigor matemitico e a apresentacao é feita através de exemplos, j& que os resultados se encontram de- monstrados em diversos autores: Dantzig,’ Fadigas Torres,? Hadley? ou Hillier e Lieberman.* 1-1.2. O problema de Programacao Linear O problema de Programacdo Linear (PPL) Pode ser abordado do seguinte modo: consideremos n variaveis no negativas xj V = 1, 2, ...,2) e uma fungdo linear z destas variaveis que deve ser maximizada. Se tivermos também um conjun- to de restricées lineares para as variéveis x;, poderemos definir a forma-padraio do PPL como sendo calcular o n Maximo z (z= 2% xj) tee DANTZIG, G. B. On the significance of solving linear programing problems with some interger variables. Econometrica, 28 (1): 30-44. 2. TORRES, 0. Fadigas. Programacio linear; introdugZo tedrica e método simplex. Depar- tamento de Engenharia de Produgao, Escola Politécnica da Universidade de $0 Paulo. 3. HADLEY, G. Linear programing. Reading, Addison Wesley, 1962. 4. HILLIER, F. S. & LIEBERMAN, G. L. Introduction to operations research. San Francis- co, Holden-Day, 1967. 265 266 sujeito as restrigdes a 2 9X; 0 e x6 >0, 2. minimo z= maximo (-z) 3. a restricéo > (c) pode ser multiplicada por -1 2x3 - x4 + xg <-10 4. a restricao de igualdade (b) pode ser substitufda por duas desigualdades, (by) x1 - 2x #x4<15 (bz) x1 - 2xq +x >15 ou oxy + 2xg - xf <-15. Introduzindo as transformacdes 1, 2, 3 e 4 no exemplo dado, temos a se- inte forma-padrao: calcule 0 maximo de 2x, - 2x2 - x3 - Xs + X¢, (-min 2), sujeito as restricdes: (a) 2x, + 3x2 -x3 <20 (61) x1 - 2x + Xs - xX <15 (bz) -x1 + 2xq - x5 +xX— <-15 (c) 2x3 - xq +X5 ~X6 <—10 onde Ht, Xa, on, X20 Entretanto, para resolvermos problemas de programaeao linear nem sempre @ necessario transformar a forma original (geral) na forma-padrao. De fato, por exemplo, para aplicarmos 0 método simplex de solucdo precisamos definir a for- ma canénica do PPL. A forma canénica do PPL é: a maximizarz (z= 2 oj xj), 1 sujeito a a ()D aygxp= bp F= 1,2, (ll) 720 onde Gj aij & bj > 0 so parametros reais finitos do problema. O conjunto de valores xj que satisfaz as restrigdes (I) endo satisfaz (Il) é chamado pseudoprograma. As soluces que apresentam valores para as varidveis xj & satisfazem (i) e (I!) so chamadas vidveis. As solugdes com no minimo (n - m) varidveis iguais a zero e satisfazem (I) sdéo chamadas bésicas; quando satisfazem também (II) séo chamadas basicas vidveis. A solucdo viavel que maximiza a funco objetivo Z é chamada étima. Solu- gdes otimas podem ser basicas ou nao, porém a existéncia de uma solugao étima finita implica sempre a existéncia de pelo menos uma solu¢do basica vidvel étima. Para transformarmos as desigualdades do tipo < ou > em igualdades intro- duzimos varidveis residuais no negativas. Por exemplo, para escrevermos a forma canénica do problema enunciado nesta seco devemos somar a variavel residual x7 20 desigualdade (a) do tipo 0 a desigual- dade (b) do tipo >, além de substituir a variével nfo restrita x; por (xs - x6) e usar maximizagéo. A forma canénica do problema em questao é, com as substituicées descri- tas, a seguinte maximizar 2x; ~ 2x2 - x3 - x5 + x6, sujeito a (a) 2x1 + 3x, —x3 +x7 = 20 (b) x1 - 2kq 4x5 — x6 = 15 (c) 2x3 + x4 ~Xxs +x6 -x— = 10 onde Ky Kae ve Ka, Xg 0 267 1-1.3. Teorema fundamental Se um PPL tem uma solugao otima finita, entao existe pelo menos uma solu- cao basica viavel que é dtima. Evidentemente, se existe uma Unica solucéo otima finita, ela deve ser basica vidvel. O teorema fundamental foi demonstrado por Dantzig, mas para um melhor entendimento do seu significado consideraremos um exemplo com duas variaveis. Maximize x1 +x2, x1, x2 20 sujeito as restricdes (a) 2x, + x2 <4 (b) x1 #3x2 <3 (ce) xy + x2 21 As restricées (a), (b), (c) e x1, x2 = 0 sao lineares, e 0 conjunto de solugdes em R? (plano) de cada desigualdade é um conjunto convexo. (Um conjunto X é chamado convexo se para quaisquer x, y € X, ax + (1 - a) y © X para todo a, O< 1,6 © Conjunto C indicado na Figura |-1 2 Figura F-1. Conjunto de soluedo da restrigdo (c). 0 conjunto convexo X representado na Figura |-2 é 0 conjunto de todos os pontos x = (x1, x2) que satisfaz a ndo-negatividade e as restrig6es (a), (b) e (c). 4. Os quatro pontos (1,0), (2,0), (9/5, 2/5) e (0,1) sdo extremos do conjunto convexo X. (Um ponto x € X é ponto extremo de X se no existir nimero real > 0 tal que x = ay; +(1~aly2, onde y; ¢ ¥2 S80 dois pontos de X ndo coinci- dentes com x.) As solugées vidveis basicas do problema em questo correspondem aos pon- tos extremos do conjunto das solugdes vidveis X. De fato, cada reta considerada 268 anteriormente representa uma variavel igual a zero, e, portanto, como cada ponto x20 Figura 1-2. Representacao grafica do conjunto convexo X. extremo é 0 encontro de no minimo duas retas, teremos no minimo duas varidveis iguais a zero, ou seja, uma solugdo vidvel bésica. Por exemplo, os pontos da reta (a) séo obtidos quando se considera a igualdade na primeira restricao, ou seja, quando se considera a varidvel residual associada a essa restricdo igual a zero {x3 = 0); e, portanto, o ponto extremo (2,0), que corresponde a interseccio da reta (a) com 0 eixo das abscissas (x, = 0), corresponde a solucao vidvel bésica X1 = 2, x2 = 0, x3 = 0, x4 = 1 Xs = 1, onde xq € Xs do as varidveis residuais as- sociadas as restrigGes (b) e (c), respectivamente. Se representarmos a func&o objetivo z = x, + x2 por uma familia de retas paralelas, poderemos facilmente verificar que 0 valor Zax = 21/5 @ obtido pela reta que passa pelo ponto extremo (9/5, 2/5) e 0 valor Zmmjn = 1 € obtido pela reta que passa pelos pontos extremos (1,0) e (0,1). (E interessante observar que os Pontos entre os extremos (1,0) e (0,1) também dio solugdes com Zmin = 1.) A importéncia primordial do teorema fundamental é permitir que se procure oa Be = meee a solugio étima apenas entre as solusSes vidvels bésicas, que so no maximo (”” ) : combinagSes, sendo 1’ 0 niimero de variaveis (incluindo as residuais) em o numero de restrigdes. O esquema de enumeracdo das solugdes vidveis basicas introduzido por Dantzig é chamado método simplex. 1-1.4. Método simplex © método simplex é um pracesso algébrico iterativo para resolver proble- mas de programacao linear na forma canénica que progressivamente se aproxima da solugdo étima, Seja Xq = Ung. Xnqs-+ Xngp O1 +», 0) a Solugdo vidvel obtida na q-ésima ite- ago do método simplex. Como 0 teorema fundamental permite que considere: 969 270 mos apenes as solucdes vidveis bésicas, e como sabemos que as solucdes vidveis ba- sicas so pontos extremos do conjunto convexo das solucdes vidveis X, podemos afirmar que 0 ponto X, representa um ponto extremo de X. Para escolher Xq4,, consideramos apenas os pontos extremos vizinhos (sepa- rados por uma Unica aresta) que modificam o valor da funcao objetivo em dirego do timo. O método simplex procura selecionar a varidvel que entra em Xq+ €, conseqiientemente, a que sai de X,, de modo que obtemos a maxima variacdo da fungo objetivo em direcdo do valor étimo. No método simplex modificamos monotonicamente o valor da funcdo obje- tivo e consideramos apenas solugdes vidveis basicas. Portanto, téo logo encontre- mos um ponto extremo X,, para o qual nao existe nenhum ponto extremo vizi- nho cujo valor da fungao objetivo seja melhor que 0 associado a solucio Xq, poderemos parar 0 processo iterativo. No algoritmo classico do método simplex, a solugo basica inicial deve ser viavel, 0 que nos obriga muitas vezes a introduzir variaveis artificiais, ou seja, va- ridveis cujos valores na solucdo Stima dever&o ser necessariamente iguais a zero. Outros métodos, tais como o Dual e o Primal-Dual, podem partir de uma soluco basica nao vidvel. Para garantirmos que as varidveis artificiais sejam iguais a zero na solucdo final, podemos usar 0 “‘método das penalidades” ou o “‘método das duas fases”’ E importante observar que qualquer variavel artificial pode ser eliminada das ite- races seguintes assim que o seu valor se anular. Como os métados acima mencio: nados no so importantes no desenvolvimento dos capftulos que se seguem, néo nos preocuparemos em descrevé-los. Consideremos um PPL na sua forma candnica genérica e definamos 77 m 6034) ® nye» Xn) €8 Soluedo visvel basic inicisl. 7] ~ Gj onde Zj A tabela inicial de (m + 1) linhas e (n + 1) colunas para empregarmos o método simplex de solu¢go pode ser visualizada na Tabela |-1. Tabela 1-1. Tabela inicial do método simplex. linhao [om 7% Fa aun aaj by linhai | aft ain | by amt amn | &m Nos problemas em que nao hé necessidade de introduzir variéveis artificiais, 08 valores inicias de 77 sio iguais a - cj e 0 valor inicial z 6 zero. Para passarmos de uma tabela para a seguinte devemos: (1) escolher o mfnimo valor da linha zero, se existir pelo menos um valor negativo, e chamar j* a respectiva coluna. A varidvel x/* seré e que en- tra na nova solugdo vidvel basica. (i) ay (vy chamar * a linha / tal que bifaye & Minimo, sendo ajj* > 0. dividir os valores da linha #* por aj*;+. subtrair de todas as linhas /, / #0 ef #/*, a linhai” multiplicada por ajj*, e da linha O subtrair a linha i* multiplicada por a". Quando na linha zero tivermos apenas valores nao negativos, teremos obtido uma soluc&o otima. Se tivermos 7 = 0 para alguma variavel que nao as da base, saberemos que existem solugdes basicas étimas alternativas. Evidentemente as combinagées lineares convexas das solugdes basicas 6timas também serao étimas. 1-1.5. Método simplex revisado Ao aplicarmos 0 método simplex para resolver um problema de programa- cdo linear na forma canénica, com ou sem varidveis artificiais, poderdo existir va- ridveis que no entrargo na base de.nenhuma iteraco. Portanto, sera tempo perdi- do computar as respectivas colunas a cada iteracao. Pelo motivo mencionado, pela limitago da meméria dos computadores e pelo fato de, em geral, termos grande numero de coeficientes nulos nas restrigdes, introduziu-se o método simplex revisado, descrito a seguir. Na Tabela I-1 se considerarmos as colunas correspondentes as varidveis da solugdo viavel basica, encontraremos uma matriz identidade de m linhas e m colu- nas. Chamaremos x,); a variével que tem o valor 1 na linha/ da Tabela |-1. Consideremos a seguir a Tabela |-2, obtida pelo método simplex apés q ite- ragdes: Tabela 2. Resultado do método simplex apos q iteragoes linhao [m4 a 1, aii aij ain bh linhaé 271 Se levarmos em conta que as Tabelas I-1 e I-2 representam sistemas equiva- lentes de equagdes lineares, pois a Tabela |-2 foi obtida a partir da Tabela |-1 pela multiplicago de linhas por constantes no nulas ou pela adicdo de linhas, pode- mos escrever as seguintes identidades: m (a) aj = re fing 2kj 1 Fk (b) bj = (c) a m (Sy oes a2 ropa ket Portanto, se tivermos a Tabela I-1, 08 valores ajny .m, podere- mos obter qualquer outro valor da Tabela !-2. ern O método simplex revisado, partindo, em cada iteracdo, das colunas 21,72, ‘mm da Tabela |-2 e utilizando a Tabela I-1 e as identidades, consiste em compu- tar a coluna da varidvel que entra e os valores independentes bj da Tabela I-2 para poder encontrar os novos valores af, € ing, k = 1, 2, .., m. E interessante obser- var que, na selecao da varidvel que entra, utilizamos 0 mesmo critério do método simplex, mas 0s valores 17 séo obtidos pela utilizacao da identidade (c). 1-1.6. Dual: definicdes e propriedades Dado um PPL na forma-padrao 2 maximizar2,2= © cj x; Farce sujeito a ims Xj 1-1,7. Método dual-simplex Este método introduzido por Lemke trabalha com tabelas idénticas as do método simplex, porém parte de uma solugo basica nao vidvel do primal que obe- dece ao critério de otimalidade uy > 0 e vai transformando as tabelas até chegar a uma solugdo bésica vidvel. O método dual-simplex mantém viaveis as solucées basicas do dual enquan- to o método simplex mantém viaveis as solugdes basicas do primal. Consideremos uma tabela idéntica 4 Tabela |-1 do método simplex, porém admitamos que todos os 1; sejam ndo negativos. Se b; > 0 para todo /, /= 1, 2, ..., m, teremos chegado & soluedo étima, caso contrério aplicaremos 0 método dual-simplex como segue: (I) Selecionamos o minimo 6; (< 0), e chamamos /* a linha correspon- dente. (1) Chamamos j* 0 valor j tal que Tifaygeg, & Fimo para todo 2;*) <0, MW i Se todos a;*; so positivos, o problema é inviavel. 5. TORRES, ©. Fadigas, Ob. cit. 273 (111) Dividimos os valores da linha /*por aj*/*. (IV) Subtrafmos de todas as linhas /, / #0 e/#/*, a linhas~ multiplicada Por ajj* e da linha 0 subtraimos a linha /* multiplicada por 7;* Se ainda tivermos algum 6; < 0 retornaremos ao primeira passo, (I) Este método é muito itil quando se consideram novas restricdes depois de um problema ter sido resolvido ou quando se quer reduzir 0 numero de variaveis artificiais. Podemos também aplicar 0 método dual-simplex com as tabelas no formato introduzido por Beale.* Esse formato sera utilizado na apresentac3o dos métodos de solucio de problemas de programacao linear com varidveis inteiras descritas n0 proximo item. Consideremos o seguinte problema: a minimizarz,z= > cx; ye hehe sujeito a e xj20./ A forma canénica do problema em questdo pode ter a sequinte formulacéo: a maximizar ra G x) sujeito a 17 = ~bj +E (-ay) (xj), onde rj > 0,7 = 1, 2, ..., m so as varidveis residuais exj20,=1,2,.... A tabela inicial para aplicar o método dual-simplex de Beale para a formula: 80 dada é visualizada na Tabela |-3. Para este formato de tabela os dois primeiros passos (I) e (II) do método dual-simplex so idénticos, porém ao invés de efetuarmos a eliminacao Gaussiana pela linha /* (III e IV) nos a efetuamos pela coluna j*, isto é: (111) Dividimos a coluna j* por aj*;* (6 importante notar que aj*;* aparece na tabela com o sinal trocado). (IV) Subtraimos de todas as colunas j, / # 0 ej #/*,acoluna j* multipli- cada por a;*;’ ¢ da coluna 0 subtraimos a coluna j* multiplicada por b;* 6. BEALE, E. M. L. A method of solving linear programming problems when some but not all of the variables must take integral values. Statistical Thecniques Research Group Tech. Report, n9 19. Princeton University, 1958. Tabela 1-3. Tabela inicial do método dual-simplex. coluna 0 coluna j x aan linha 0 0 on Ga ry | rb “ai ~ain linhay ni | -bF -aij 'm| ~&m Gorges ~amp xi] 0 10... 0 0 linha (mj) 0 Opes 0=1 0 oO 0 Oo oO Oo -1 Quando a coluna 0 conter apenas valores néo negativos, nao considerando a linha 0, teremos chegado & solugo étima. Tendo em vista que o método dual-sim- plex no formato introduzido por Beale nao é tao divulgado como o de Lemke, e que o entendimento da formulago em questo é fundamental para o desenvolvi- mento do Capitulo II, resolveremos o seguinte problema: minimizar 2x, +x onde: x, %2 30 e sujeita as restricées 2x, x, 2-4 -x1 - 3x, 2-3 x, + x2 21 As tabelas para solucionar o problema sao visualizadas nas Tabelas |-3 e |-4. Tabela 1-3.-x, -x2 Tabela 1-4. -x, -r3 io 2 af 44 Eualelacenet retiea cal et roe 3 m |o}|-2 3 Bole ey |! eee oot x | o|-1 0 ah aie Sd ae) ~ | o}o 4 Pee lei teen 275 276 Para passarmos da Tabela |-3 para a Tabela |-4 usamos os seguintes pasos do método dual-simplex de Beale: (1) 3, pois -1 € 0 tinico valor negativo na coluna 0. (WI) 7 =2,pois cp Be laz2 I laai |” (111) Dividimos a coluna 2 por a32 = 1, pois temos de manter o valor -1 na intersec¢ao da linha 3 com a coluna 2. (IV) Subtrafmos das colunas 0 e 1 a coluna 2. A solugdo tima neste caso 6 r, = 3,r2 = O,r3 = 0, x; = 0, x2 = 1,8 Zin = = 1, pois @ coluna 0, excetuada a linha 0, 6 contém valores nao negativos. E inte ressante observar que a solucdo étima no problema em questao é viavel basica de: generada, pois contém trés varidveis nulas. Outra vantagem do método exposto é a de resolver problemas com desigual- dades do tipo > sem introduzir variaveis artificiais. Se aplicarmos alternadamente 0 método simplex e 0 método dual simplex de Lemke, no considerando as condigées de viabilidade do primal ou do dual, respectivamente, evitaremos ter de introduzir varidveis artificiais para as desigual dades. Para usar essa combinagdo de métodos podemos usar e “tabela condensa da’ apresentada por Tucker em Graves e Wolfe.” 1-1.8. Programacdo paramétrica e andlise de sensibilidade A Programagio Paramétrica estuda 0 comportamento das solugées otimas devido a modificacies sistematicas introduzidas nos parametros cj, / = 1, 2, 0. eb), f= 1,2, As modificagdes sistematicas introduzidas nos parametros consistem em somar @yj aos coeficientes cj e 56; aos valores bj, onde os simboios @e 6 séo va ridveis reais e +; e 6; sdo valores conhecidos, j = 1, 2, ..,7 e@#=1, 2, ...,m. Admi tiremos que © problema de programacao linear em consideracdo tem como valores iniciais, para aplicar 0 método simplex, os apresentados na Tabela |-1. m. Se considerarmos a Tabela !-2 como sendo a tabela que apresenta a soluca 6tima do problema, poderemos utilizar nesta seco as identidades do método simplex revisado. Chamaremos 1’ o valor correspondente a 7* na Tabela |-2 quando substi tuimos cj por cj + Gy; j= 1, 2, ...,n. Usaremos 0 simbolo Xn* para indicar a va- ridvel que tem valor 1 na linha/ da Tabela |-3 e zero nas outras linhas. Para as variaveis xj, j # nj (i = 1, 2, ..., m), subtraimos @y; do valor 7 para as variaveis xn; (basicas na solucao otima) subtraimos ©y,,: de mz (=0) © somamos a linha / multiplicada por @y,* aos valores correntes da linha 0, pois riz deve ser igual a zero ¢ ajny = 1. 7. GRAVES, R. L. & WOLFE, P. Recent advances in mathematical programming. New York, McGraw-Hill, 1963.

Você também pode gostar