100% acharam este documento útil (1 voto)
170 visualizações8 páginas

Proglinear3 PDF

1. O documento descreve o método simplex para resolver problemas de programação linear. 2. O método simplex envolve transformar o problema para a forma padrão e construir uma tabela simplex inicial. 3. A solução é obtida através de repetições de determinação do elemento pivô e cálculo de novas tabelas simplex até chegar a uma tabela terminal.
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
100% acharam este documento útil (1 voto)
170 visualizações8 páginas

Proglinear3 PDF

1. O documento descreve o método simplex para resolver problemas de programação linear. 2. O método simplex envolve transformar o problema para a forma padrão e construir uma tabela simplex inicial. 3. A solução é obtida através de repetições de determinação do elemento pivô e cálculo de novas tabelas simplex até chegar a uma tabela terminal.
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 8

Capítulo 2.

Programação Linear

2.3 RESOLUÇÃO DOS PROBLEMAS DE PL PELO MÉTODO SIMPLEX

2.3.1 Variáveis de folga, excesso e não restritas

Em todos os problemas anteriores, usamos os sinais () e () nas inequações das
restrições e depois resolvemos o problema assumindo que todas variáveis eram não
negativas. Nesta secção vamos definir dois tipos especiais de variáveis: as variáveis de
folga e de excesso, associadas com as restrições da forma  e  respectivamente,
também faz-se uma introdução do conceito de variáveis não restritas, cujo valor pode ser
positivo, zero ou negativo.

Variável de Folga
Introduz-se uma variável de folga, para cada restrição do tipo  no primeiro membro da
inequação e transfoma-se esta em equação.

Uma variável de folga representa a diferença entre o limite máximo de um determinado


recurso e as quantidades do mesmo recurso que forem usadas pelas diferentes
actividades. Por exemplo, matemáticamente a restrição 6x1 + 4x2  24 é equivalente a
6x1 + 4x2 + x3 = 24 e x3  0, a variável de folga x3 representa a quantidade do recurso que
não foi utilizada: x3 = 24 - 6x1 - 4x2.

Variável de Excesso
Restrições do tipo , normalmente referem-se a quantidade mínima necessária que deve
ser utilizada na combinação de diferentes actividades. A introdução de uma variável de
excesso numa inequação, transforma esta em equação.

As variáveis de excesso representam o excesso da quantidade do recurso obtido pela


combinação das actividades em relação ao recurso mínimo necessário. Por exemplo, a
restrição x1 + x2  80, matemáticamente é equivalente a x1+x2 – x3 = 80 e x3  0.
A condição de não negatividade de x3, significa que a quantidade atribuída a variável de
excesso foi produzida na combinação das actividades x1 e x2 .(x3 = x1+ x2 – 80).

Variável não Restrita


Nos modelos passados assumimos a condição de não negatividade para todas variáveis.
Suponhamos que num dado problema uma variável possa assumir qualquer valor real.
Por exemplo:

Maximizar Z = 0.20x1 + 0.15x2 + 0.25x3


0.25 x1  0.20 x 2  x3  20

Sujeito à  x1 , x 2  0
 x nao restrito ou x  R
 3 3

A variável x3 pode ser de excesso ou folga. Em termos matemáticos a variável não restrita
é substituida por duas variáveis não negativas: x3 = x3+ - x3- onde x3+ ; x3-  0.
 Se x3+ > 0 e x3- = 0 então x3+ é variável de folga;
 Se x3- > 0 e x3+ = 0 então x3- é variável de excesso;

Apontamentos de Investigação Operacional 21 Alberto Mulenga


Capítulo 2. Programação Linear

 Se x3+ > 0 e x3- > 0, o problema de propgramação linear não tem solução.

De um modo geral, o modelo será:


Maximizar Z = 0.20x1 + 0.15x2 + 0.25x3+- 0.25x3-
0.25 x1  0.20 x 2  x3  x3  20

Sujeito à 
  
 x1 , x 2 , x3 , x3  0
Resumo:
1. Uma inequação do tipo  () converte-se em uma equação se for adiccionada a
variável de folga (excesso) no primeiro membro.
2. Um modelo de programação linear está na forma padrão (standard) se:
 Todas as restrições (com excepção das restrições de não negatividade) forem
equações, com os valores do segundo membro não negativos;
 Todas as variáveis são não negativas;
 A função objectiva é do tipo de maximização ou minimização.
3 Para tornar o valor do segundo membro de uma inequação não negativo, multiplica-se
ambos os membros desta por (-1);
4 Se existe uma variável não restrita, ao passar o problema da PL para a forma padrão,
esta variável deverá ser substituida por duas variáveis não negativas
5 A maximização de z = f(x1,x2,...,xm) é equivalente a minimizar –z = -f(x1,x2,...,xm).

Exemplo 2.7. Escrever os seguintes problemas de programação linear na forma padrão.


Modelo do Problema PL Forma padrão do modelo do problema de PL

a) Max Z = 30x1 + 50 x2 Maximizar Z = 30x1 + 50 x2 + 0x3+0x4+0x5


2 x1  x 2  x3  0 x 4  0 x5  16
2 x1  x 2  16  x  2 x  0 x  x  0 x  11

Sujeito à  x1  2 x 2  11 Sujeito à  1 2 3 4 5

 x1  3 x 2  15  x1  3 x 2  0 x3  0 x 4  x5  15

 x1 , x 2  0

 x1 , x 2 , x3 , x 4 , x5  0

b) Min W = 3x1 + 2 x2 Minimizar W = 3x1 + 2x2 + 0x3 + 0x4 + 0x5


5 x1  x 2  10 5 x1  x 2  x3  0 x 4  0 x5  10
2 x  2 x  12 
Sujeito à  1 2
Sujeito à 2 x1  2 x 2  0 x3  x 4  0 x5  12
 x1  4 x 2  12 1x1  4 x 2  0 x3  0 x 4  x5  12

 x1 , x 2  0 
 x1 , x 2 , x3 , x 4 , x5  0

c) Max Z = 2x1 + 3x2 +5x3 Max Z = 2x1 + 3x2 + 5x3+ - 5x3- + 0x4 + 0x5 -Ma1
 x1  x 2  x3  5
 x1  x 2  x3  x3  x 4  0 x5  0a1  5
 6 x  7 x  9 x  4 
Sujeito. à  1 2 3 Sujeito à   
 6 x1  7 x 2  9 x3  9 x3  0 x 4  x5  0a1  4
 x1  3 x 2  4 x3  10 
 x1  3 x 2  4 x3  4 x3  0 x 4  0 x5  a1  10

 x1 , x 2  0; x3  R   

 x1 , x 2 , x3 , x3 , x 4 , x5 , a1  0

Apontamentos de Investigação Operacional 22 Alberto Mulenga


Capítulo 2. Programação Linear

Até agora, foi apresentado o método gráfico para a resolução dos problemas de
programação linear nos quais só tinhamos duas variáveis de decisão. Quando o número
das variáveis aumenta, este método ainda que seja correto torna a procura de solução
muito trabalhosa. Uma alternativa deste método é a utilização do método simplex.

O Método Simplex foi apresentado pelo G.Danztig (1947), como um método prático para
a resolução dos problemas de programação linear. O Simplex pode ser descrito como um
processo matricial para resolver problemas de programação linear na forma padrão.

Actualmente o método simplex é uma das ferramentas fundamentais de resolução dos


problemas de programação linear nos diversos casos em que eles se apresentam. Nesta
abordagem serão apresentados em separado os algorítmos de resolução para cada um dos
casos. Deve-se salientar que em todos casos existem 4 etapas fundamentais.

1. Tabela simplex inicial. A tabela simplex inicial para um problema de maximização


de programação linear é como se segue.

V.básicas x1 x2 ... xm xm+1 ... xm+n Recursos-Termos


(base) Independentes
xm+1 a11 a12 ... a1m 1 0 ... 0 b1
xm+2 a21 a22 ... a2m 0 1 ... 0 b2
... .............. ............ ...

xm+n an1 an2 ... anm 0 0 ... 1 bn


Z -c1 –c2 ... -cm 0 0 ... 0 0

 Da tabela inicial, nota-se que as variáveis básicas (base) são todas variáveis de folga
ou de excesso;
 Os coeficientes – ci, são opostos da função objectivo e são importantes na indicação
da coluna pivô, por isso são chamados indicadores da coluna pivô;
 O elemento no canto inferior direito é zero, ele corresponde ao valor da função
objectivo inicial.

2. Determinação do elemento pivô. Um elemento pivô de uma tabela simplex é obtido


da seguinte forma:
 Escolhe-se na linha dos coeficientes da função objectivo, o maior elemento negativo
(max) ou o maior elemento positivo (min), e a coluna que contém este elemento
chama-se coluna pivô;
 Divide-se cada termo independente pelo correspondente elemento positivo da coluna
pivô. A linha que apresentar o menor quociente positivo é chamada linha pivô;
 O elemento que situa-se no cruzamento entre a linha pivô e a coluna pivô é chamado
elemento pivô.

Se a tabela não tem nenhum indicador negativo (max) ou positivo (min), esta é uma
tabela terminal e não tem pivô.

Apontamentos de Investigação Operacional 23 Alberto Mulenga


Capítulo 2. Programação Linear

3. Cálculo da nova tabela simplex. Seja T1 a tabela simplex com n linhas e m+n
colunas, cujo o elemento pivô é aij da matrix A. Uma nova tabela T2 é calculada a
partir da tabela T1, usando operações elementares sobre as linhas da matriz A de tal
forma que apareça um “1” na posição pivô e zeros “0” nas outras posições da coluna
pivô, i.é:

 Divide-se cada elemento da linha pivô li da tabela T1 pelo elemento pivô aij, obtendo-
se a correspondente linha na tabela T2 (li’).
1
li'  * li
aij
 Se a coluna pivô de T1 é denotada por xi, então a correspondente coluna de T2, será
denotada também por xi;
 Cada uma das outras linhas lk’ da tabela T2 é obtida subtraindo o múltiplo conveniente
da linha li’ à linha lk, onde k = 1,n.
l k'  l k  aki * li '

4. Interpretação da tabela terminal. Depois de tantas repetições das etapas (2) e (3),
chega-se a uma tabela terminal, a qual não tem nenhum indicador de pivô negativo
(max) ou positivo (min).

V.básicas x1 x2 ... xm xm+1 ... xm+n Termos


(base) Independentes
x1 1 0 ... 0 a* ... a* b1*
x2 0 1 ... 0 a* ... a* b2*
... ............... ............ ...

xm 0 0 ... 1 a* ... a* bn*


Z 0 0 ... 0 c* ... c* Z0

 Zo – é o valor óptimo da função objectivo;


 xi – tem uma raiz diferente de zero se estiver marcado por 1 numa única posição da
coluna correspondente e zeros nas restantes linhas (xi pertence a base).
 xi é igual a zero se não estiver na base, apresentando óbviamente um ci  0.

2.3.2 Maximização com restrições da forma 

Os problemas de maximização com restrições da forma , são resolvidos aplicando-se o


simpelx directo. Se houver alguma restrição da forma  ou mesmo = esta deverá ser
transformada a forma canônica do problema de maximização.

Os passos gerais para os problemas de maximização são:


Passo 1. Escrever o problema na forma canônica ou na forma padrão;
Passo 2. Introduzir as variáveis de folga (+xm+n) e rescrever o sistema inicial na forma
padrão;
Passo 3. Apresentar a tabela simplex inicial;

Apontamentos de Investigação Operacional 24 Alberto Mulenga


Capítulo 2. Programação Linear

Passo 4. Se a tabela simplex inicial tiver algum valor negativo na linha da função
objectivo e na coluna correspondente haver algum valor positivo, determinar o elemento
pivô e realizar as operações necessárias para obter a nova tabela;
Passo 5.. Repetir o processo do passo 4 até que todos os indicadores da linha z sejam
positivos. Assim chega-se à tabela terminal e deve-se interpretar a solução obtida .

Exemplo 2.8. Resolver o seguinte problema de programação linear pelo método simplex.
Maximizar Z = x1 + 9x2 + x3
 x1  2 x 2  3x3  9

Sujeito à 3x1  2 x 2  2 x3  15
x , x , x  0
 1 2 3
Resolução
O problema já está na forma canônica, portanto, vai-se introduzir as variáveis de folga.
Maximizar Z = x1 + 9x2 + x3 + 0x4 + 0x5
 x1  2 x 2  3x3  1x 4  0 x5  9

Sujeito à 3x1  2 x 2  2 x3  0 x 4  1x5  15
x , x , x , x , x  0
 1 2 3 4 5

Tabela simplex inicial

Base x1 x2 x3 x4 x5 bi
x4 1 2 3 1 0 9 9/2= 4.5 min
x5 3 2 2 0 1 15  15/2=7.5
Z -1 -9 -1 0 0 0

1a Iteração
base x1 x2 x3 x4 x5 bi
x2 1/2 1 3/2 1/2 0 9/2  l1’ = ½*l1
x5 2 0 -1 -1 1 6  l2’=l2 - 2l1’
Z 7/2 0 25/2 9/2 0 81/2 l3’= l3+9l1’

Solução: Zmax = 81/2, x1 = 0, x2 = 9/2, x3 = x4 = 0, x5 = 6

Exemplo 2.9.Resolver o problema do alfaiate pelo método simplex.


Max Z = 30x1 + 50x2
2 x1  1x 2  16
1x  2 x  11
 1 2
Suj. à 
1x1  3 x 2  15
 x1 , x 2  0

Apontamentos de Investigação Operacional 25 Alberto Mulenga


Capítulo 2. Programação Linear

Resolução
Max Z = 30x1 + 50x2 + 0x3 + 0x4 + 0x5
2 x1  1x 2  x3  0 x 4  0 x5  16
1x  2 x  0 x  x  0 x  11
 1 2 3 4 5
Suj. à 
1x1  3x 2  0 x3  0 x 4  x5  15
 x1 , x 2 , x3 , x 4 , x5  0

Tabela simplex inicial


base x1 x2 x3 x4 x5 bi
x3 2 1 1 0 0 16  16/1 = 16
x4 1 2 0 1 0 11  11/2 = 5.5
x5 1 3 0 0 1 15  15/3 = 5 min
Z -30 -50 0 0 0 0
1a Iteração
base x1 x2 x3 x4 x5 bi
x3 5/3 0 1 0 -1/3 11  l1’=l1-l3’ (33/5)
x4 1/3 0 0 1 -2/3 1  l2’=l2-2*l3’ (3)
x2 1/3 1 0 0 1/3 5  l3’=1/3*l3 (15)
Z -40/3 0 0 0 50/3 250 l4’=l4+50l3’
a
2 Iteração
base x1 x2 x3 x4 x5 bi
x3 0 0 1 -5 3 6  l1’=l1 – 5/3* l2’ (2)
x1 1 0 0 3 -2 3  l2’=3*l2 (neg)
x2 0 1 0 -1 1 4  l3’=l3-1/3*l2’ (4)
Z 0 0 0 40 -10 290l4’=l4+40/3l2’
a
3 Iteração
Base x1 x2 x3 x4 x5 bi
x5 0 0 1/3 -5/3 1 2  l1’=1/3*l1
x1 1 0 2/3 -1/3 0 7  l2’=l2+2*l1’
x2 0 1 -1/3 2/3 0 2  l3’=l3 – l1’
Z 0 0 10/3 70/3 0 310 l4’=l4+10l1’

Solução: x1 = 7; x2 = 2; x3 = x4 = 0; x5 = 2; Zmax = 310

Exemplo 2.10. Resolva o seguinte problema de programação linear.

Maximizar Z = 4x1 + 2x2 + 3x3


 x1  x 2  x3  11
2 x  3x  x  20
 1 2 3
Sujeito à 
 x1  3x 2  2 x3  20
 x1 , x 2 , x3  0

Apontamentos de Investigação Operacional 26 Alberto Mulenga


Capítulo 2. Programação Linear

Resolução
Maximizar Z = 4x1 + 2x2 + 3x3 + 0(x4+x5+x6)
 x1  x 2  x3  x 4  0 x5  x6  11
2 x  3x  x  0 x  x  0 x  20
 1 2 3 4 5 6
Sujeito à 
 1x  3 x 2  2 x 3  0 x 4  0 x 5  x 6  20
 x1 , x 2 , x3 , x 4 , x5 , x6  0

Tabela inicial Simplex


base x1 x2 x3 x4 x5 x6 bi
x4 1 1 1 1 0 0 11  (11)
x5 2 3 1 0 1 0 20  (10) min
x6 1 3 2 0 0 1 20  (20)
Z -4 -2 -3 0 0 0 0
a
1 Iteração
base x1 x2 x3 x4 x5 x6 bi
x4 0 -1/2 1/2 1 -1/2 0 1  l1’=l1 - l2’ (2)
x1 1 3/2 1/2 0 1/2 0 10  l2’=1/2*l2 (20)
x6 0 3/2 3/2 0 -1/2 1 10 l3’=l3 -l2’ (20/3)
Z 0 4 -1 0 2 0 40  l4’=l4+4l2’
a
2 Iteração
base x1 x2 x3 x4 x5 x6 bi
x3 0 -1 1 2 -1 0 2  l1’=2l1
x1 1 2 0 -1 1 0 9  l2’=l2 –1/2l1’
x6 0 3 0 -3 1 1 7 l3’=l3 –3/2l1’
Z 0 3 0 2 1 0 42  l4’=l4+l1’
Solução: x1 = 9; x2 = 0; x3 = 2; x4 = 0; x5 = 0; x6 = 7; Zmax = 42

2.3.3 Minimização com restrições da forma 

O processo iterativo do método simplex sempre exige uma solução básica inicial a partir
da qual se busca uma solução óptima. Nos problemas de maximização esta solução básica
inicial era formada pelas variáveis de folga, já que as restrições eram do tipo ( ). Quando
as restrições são do tipo () ou (=), não existe essa solução básica inicial.
Vejamos:

Minimizar W = 16x1 + 12x2 + 5x3


8 x1  4 x 2  4 x3  16

Sujeito à 4 x1  6 x 2  0 x3  12
x , x , x  0
 1 2 3

Como devem ser introduzidas variáveis de excesso a forma padrão do problema de


minimização é:

Apontamentos de Investigação Operacional 27 Alberto Mulenga


Capítulo 2. Programação Linear

Minimizar W= 16x1 + 12x2 + 5x3 + 0x4 + 0x5


8 x1  4 x 2  4 x3  x 4  0 x5  16

Sujeito à 4 x1  6 x 2  0 x3  0 x 4  x5  12
x , x , x , x , x  0
 1 2 3 4 5

O processo de resolução anteriormente realizado leva as variáveis de excesso x4 e x5 a


valores negativos (x4 = -16 e x5 = -12), violando a condição de não negatividade.

Conclusão:
Para resolver este tipo de problemas são introduzidas algumas modificações nas equações
das restrições em seguida pode se usar o procedimento dual, os métodos de duas fases,
de grande M e o Dual simplex, que são modificações do método simplex directo.

Método de duas fases

Para os problemas de minimização na forma canônica, o método simplex em duas fases


tem os seguintes passos:
Passo 1. Introduzir as variáveis de excesso (-xm+n) e artificiais (+ai) para cada restrição.
Passo 2. Criar uma nova função objectivo formada pela:
 soma dos coeficientes das equações para a mesma variável tomados com o sinal
negativo d = -(a11+21+...+an1);
 soma dos coeficientes das variáveis artificiais que é igual a zero;
 nova função objectivo que é igual a soma dos termos intependentes tomados com
o sinal negativo (Za = -(b1+ b2 +...+ bn)
Passo 3. Escreve-se a tabela inicial do simplex para a 1a fase do processo de resolução do
problema.
Passo 4. Aplica-se normalmente o procedimento do método simplex, tomando-se como
função objectivo a última linha. Quando a solução óptima for atingida dois casos podem
ocorrer:
 Za = 0: neste caso foi obtida uma solução básica do problema original e o processo de
solução deve continuar, desprezando-se as variáveis artificiais e os elementos da
última linha. É o início da fase 2 do processo.
 Za  0: neste caso o problema original não tem solução viável.

Exemplo 2.11. Resolva o seguinte problema pelo método de duas fases.


Minimizar W = 16x1 + 12x2 + 5x3
8 x1  4 x 2  4 x3  16

Sujeito à 4 x1  6 x 2  0 x3  12
x , x , x  0
 1 2 3

Resolução
Minimizar W = 16x1 + 12x2 + 5x3 + 0x4 + 0x5 +0a1+ 0a2

Apontamentos de Investigação Operacional 28 Alberto Mulenga

Você também pode gostar