Você está na página 1de 9

Capítulo 2.

Programação Linear

2.3 RESOLUÇÃO DE PROBLEMAS DE PL PELO MÉTODO ALGÉBRICO

2.3.1 INTRODUÇÃO AO MÉTODO

Para introduzir o método, vamos resolver o problema do exercício 2.6:


Maximizar Z = 4x1 + x2

 2 x1 + 3x2 ≤ 1 2

Sujeito à  2 x1 + 1x2 ≤ 8
 x ,x ≥ 0
1 2
Onde x1 é a quantidade de mesa e x2 é a quantidade de armários.

Como o conjunto solução das restrições forma um domínio solução, existe uma
infinidade de soluções das combinações de x1 e x2 que satisfazem as restrições. Vamos
usar um raciocínio lógico e tentar encontrar um par de valores que fornece um lucro
máximo.

Como ponto de partida, tomemos a seguinte combinação: x1 = 0; x2 = 0; z = 0.


Que é uma solução possível para o problema, óbviamente não é a melhor. Pela função
objectivo, sabemos que:
• Cada mesa produzida aumenta o lucro em 4 u.m.
• Cada armário produzido aumenta o lucro em 1u.m.

Como o objectivo é maximizar o lucro, vamos variar x1 e manter x2, isto é:


• x1 deve ser positivo (x1 > 0)
• x2 continua em zero (x2 = 0)

Para conhecermos o novo valor de x1, vamos voltar ao sistema das restrições, mas agora
com x2 = 0.

 2x1 + 3x2 ≤ 1 2  x1 ≤ 6
 para x2 = 0, temos 
 2x1 + 1x2 ≤ 8  x1 ≤ 4
Como para fazer uma mesa, gastam-se os dois recursos, é evidente que o maior valor
possível para x1 é 4, já que não teriamos mão-de-obra suficiente para fazermos 6 mesas.
A nova programação da produção dá melhor lucro do que a primeira.
: x1 = 4; x2 = 0; Z = 4*4 + 1*0 = 16 u.m.

Apontamentos de Investigação Operacional 28


Alberto Mulenga
Capítulo 2. Programação Linear

 2 * 4 + 3*0 = 8 ≤ 1 2
A solução é viável, já que satisfaz todas as restrições 

 2 * 4 + 1* 0 = 8 ≤ 8
Assim, partimos de uma solução viável (x1 = 0; x2 = 0; z = 0) para outra solução viável
(x1 = 4; x2 = 0; z = 16), que dá o melhor lucro usando os seguintes critérios:
• Começamos por aumentar a variável que mais contribuí para o lucro, neste caso, a
variável que tem o maior coeficiente na função objectivo.
• Escolhida a variável, sua produção foi estabelecida no maior valor possível, isto é,
o valor que satisfaz todas as inequações das restrições ou o mínimo valor positivo.

Esta solução é óptima ou não?.


O máximo de x1 é 4, se o processo continuasse, deveriamos variar x2 por ex. de 0 para 1.

Da equação 2, cujo o recurso máximo é de 8 H.h, temos: 2x1+ 1*1 = 8 ⇒ x1novo = 3.5
Logo, um aumento de x2 em 1 unidade, exige uma redução de x1 em 0.5: “4-3.5 = 0.5”

Para ∆ x1 = 3.5 - 4 = -0.5 e ∆ x2 = 1-0 = 1, a variação do lucro é:


∆ z = 4*∆ x1+1*∆ x2 =4*(-0.5) + 1*1 = -1, o novo lucro é Znovo = 16 –1 = $15

Conclusão: neste problema não é vantajoso produzir armários e a solução óptima é:


{x1 = 4; x2 = 0 e Zmax = 16}

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

Apontamentos de Investigação Operacional 29


Alberto Mulenga
Capítulo 2. Programação Linear

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.2 5x1 + 0.2 0x2 + x3 = 2 0



Sujeito à  x1 , x 2 ≥ 0
 x n a or e s t r it o u 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;
• 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.2 5x1 + 0.2 0x2 + x3+ − x3− = 2 0


Sujeito à 
 x1 , x2 , 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:

Apontamentos de Investigação Operacional 30


Alberto Mulenga
Capítulo 2. Programação Linear

• 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 objectivo é 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).

Determinação da solução básica


Um problema de programação linear na forma padrão inclui um sistema de n equações
lineares com m variáveis ou incógnitas (n <m). Nós dividimos as variáveis em dois
grupos: (1) m-n variáveis, tomarão valores iguais a zero e (2) n variáveis tomarão valores
determinados pela resolução do sistema de n equações.
Se n equações têm uma única solução associada a n variáveis, dizemos que as variáveis
são básicas e as restantes m-n variáveis chamamos de variáveis não básicas. Neste caso
a única solução é dita solução básica.

Se todas as variáveis assumem valores não negativos, a solução básica é uma solução
admissível, caso contrário esta não é solução admissível. O número possível de soluções
básicas para m equações e n variáveis é dado pela fórmula.
m!
C nm =
n!( m − n)!

Na inequação 10x1+5x2 ≤ 3 temos 10x1+5x2 + x3 = 3 se x1 = x2 = 0 então x3 = 3, a


variável de folga x3 é básica e x1, x2 são não básicas e (0,0,3) é uma solução básica
admissível.

Na inequação 10x1+5x2 ≥ 3 temos 10x1+5x2 - x3 = 3 se x1 = x2 = 0 então x3 = -3, a


variável de excesso x3 não é básica e (0,0,-3) não é uma solução admissível.

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 + x2 ≤ 1 6  2 x1 + x2 + x3 + 0 x4 + 0 x5 = 1 6
 x + 2x ≤ 1 1  x + 2x + 0x + x + 0x = 1 1
 1 2  1 2 3 4 5
Sujeito à  Sujeito à 
 x1 + 3x2 ≤ 1 5  x1 + 3x2 + 0 x3 + 0 x4 + x5 = 1 5
 x1 , x2 ≥ 0  x1 , x2 , x3 , x4 , x5 ≥ 0
Apontamentos de Investigação Operacional 31
Alberto Mulenga
Capítulo 2. Programação Linear

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


 5 x1 + x2 ≥ 1 0  5x1 + x2 − x3 + 0 x4 + 0 x5 = 1 0
 2x + 2x ≥ 1 2  2x + 2x + 0x − x + 0x = 1 2
 1 2  1 2 3 4 5
Sujeito à  Sujeito à 
 x1 + 4 x2 ≥ 1 2  1x1 + 4 x2 + 0 x3 + 0 x4 − x5 = 1 2
 x1 , x2 ≥ 0  x1 , x2 , x3 , x4 , x5 ≥ 0

c) Max Z = 2x1 + 3x2 +5x3 Max Z = 2x1 + 3x2 + 5x3+ - 5x3- + 0x4 + 0x5
 x1 + x2 − x3 ≥ − 5
 − 6x + 7 x − 9x ≤ 4
 1 2 3
Sujeito. à  Sujeito à
 x1 + x2 + 4 x3 = 1 0
 x1 , x2 ≥ 0; x3 ∈ R
 − x1 − x 2 + x 3+ − x 3− + x 4 + 0 x 5 = 5

 − 6 x1 + 7 x 2 + − 9 x 3+ + 9 x 3− + 0 x 4 + x 5 = 4
 + −
 x1 + 3x 2 + 4 x 3 − 4 x 3 + 0 x 4 + 0 x 5 = 1 0
 + −
 x1 , x 2 , x 3 , x 3 , x 4 , x 5 ≥ 0
2.3.3 PROCEDIMENTO DO MÉTODO ALGÉBRICO

Dado um problema de PL, Optimizar Z = CX sujeito à AX ≤ B ou AX ≥ B , X ≥ 0,


para resolver este problema pelo método algébrico, devemos seguir os passos:

Passo 1. Transformar todas as inequações em equações, introduzindo variáveis de folga


(max) ou de excesso (min), isto é, escrever o problema na forma padrão.
Optimizar Z = C(X+Xm+1) sujeito à A(X+Xm+1) = B ou A(X-Xm+1) = B; B ≥ 0 e X ≥ 0.

Passo 2. Tem duas etapas:


• Escolher um vértice do domínio como primeira aproximação. Recomenda-se que seja
o ponto Po(0,0) para maximização ou um dos pontos P1(x1,0) ou P2(0,x2) para
minimização.

Apontamentos de Investigação Operacional 32


Alberto Mulenga
Capítulo 2. Programação Linear

• Calcular os valores das outras variáveis do sistema bem como o valor da função
objectivo, obtendo-se a solução básica. V(x1,x2,x3,...,xm+1) e Z1.

NB. Todas as variáveis atribuídas ou iguais a zero, são variáveis não básicas (v. livres).
Todas as variáveis diferentes de zero, são variáveis básicas (v. dependentes).

Passo 3. Escrever tanto as variáveis básicas como a função objectivo em função das
variáveis não básicas, passando para o primeiro membro as variáveis básicas, isto é:
Vbásicas = f(Vnbásicas) e Z = z1 + f(Vnbásicas) = z1 + CiXi.

Passo 4. Se algum coeficiente da função objectivo Ci > 0 para o problema de


maximização ou Ci < 0 para o problema de minimização, procurar um vértice de modo a
optimizar o valor da função objectivo, continuando a respeitar as restrições:
• Para o problema de maximização, variar o xi com o maior coeficiente na função
objectivo.
• Para o problema de minimização, variar o xi com o menor coeficiente na função
objectivo.
Quer num quer no outro caso, fixa-se a outra variável em zero .

Passo 5. Usando as variações encontradas, determinar o novo vértice, bem como deve-se
calcular o novo valor da função objectivo, como segunda aproximação.

Passo 6. Repetir os passos 3, 4, e 5 até que todos Ci < 0 para maximização e todos Ci > 0
para minimização, só assim é que o processo de procura da solução acaba e a solução
óptima será: Zóptimo = Zn-1.

Exemplo 2.8. Usando o método algébrico, resolva o problema de programação linear.


Maximizar Z = 2x1 – x2

 x1 + x2 ≤ 1 0

Sujeito à  x1 − 2 x2 ≤ 6
 3x + x ≤ 1 2 e a s v a r i a vxe, xi s ≥ 0
 1 2 1 2
Passo 1. Introdução das variáveis de folga.

Maximizar Z = 2x1 – x2 + 0x3 + 0x4 + 0x5


 x1 + x2 + x3 + 0 x4 + 0 x5 = 1 0
 x − 2x + 0x + x + 0x = 6
 1 2 3 4 5
Sujeito à 
 3x1 + x2 + 0 x3 + 0 x4 + x5 = 1 2
 x1 , x2 , x3 , x4 , x5 ≥ 0
Apontamentos de Investigação Operacional 33
Alberto Mulenga
Capítulo 2. Programação Linear

Passo 2. Escolhemos P(0,0) como vértice inicial para a primeira aproximação


Ou seja x1 = x2 = 0 e de acordo com o sistema do passo 1, temos:

 x3 = 1 0

 x4 = 6 ; o valor de função objectivo é: z1 = 2*0 – 0 = 0.
x = 1 2
 5
As variáveis x1 e x2 são não básicas e x3, x4, x5 são variáveis básicas.

Passo 3.1 Escrever o sistema do passo 1, de forma que (x3,x4,x5) = f(x1,x2) bem com
z = z1 + f(x1,x2).

 x3 = 1 0− x1 − x2

 x4 = 6 − x1 + 2 x2
 x = 1 2− 3x − x
 5 1 2

e z = 0 + 2x1 - x2

Passo 4.1. Como na função objectivo do passo 3.1, existe um Ci > 0, vamos variar x 1 e
mantemos o x2 em zero, sem esquecer a restrição de não negatividade (x2 = 0).
Do passo 3.1 se

 x3 ≥ 0  1 0− x1 ≥ 0  x1 ≤ 1 0
  
 x4 ≥ 0 então  6 − x1 ≥ 0 ⇒  x1 ≤ 6
x ≥ 0  1 2− 3x ≥ 0  x ≤ 4 o m i n i me '4o , l o g ox = 4
 5  1  1 1

Passo 5.1. Usando as variações encontradas para x1 = 4 e x2 = 0, vamos calcular os novos


valores das variáveis básicas do passo 3.1.

 x3 = 1 0− 4  x3 = 6
 
 x4 = 6 − 4 ⇒  x4 = 2 novo Z2 = 0 + 2*4-0 = 8.
 x = 1 2− 3 * 4 x = 0
 5  5
Apontamentos de Investigação Operacional 34
Alberto Mulenga
Capítulo 2. Programação Linear

As variáveis (x2, x5) são não básicas e as variáveis (x1,x3,x4) são básicas.
Passo 3.2. Vamos rescrever o sistema do passo 3.1 de tal forma que (x1,x3,x4) = f(x2,x5),
z = z2 + f(x2,x5) e x1 entra na base enquanto x5 sai.
 1 1
 x
 3 = 1 0 − ( 4 − x − x5 ) − x 2
 x3 = 1 0− x1 − x2  x3 = 1 0− x1 − x2
2
3 3

   1 1
 x4 = 6 − x1 + 2 x2 ⇒  x4 = 6 − x1 + 2 x2 ⇒  x4 = 6 − (4 − 3 x2 − 3 x5 ) + 2 x2
 x = 1 2− 3x − x  x = 4 − 1 x − 1 x 
 5 1 2

1
3
2
3
5
x = 4 −
1
x −
1
x5
 1 2
 3 3
 1 1  1 1
 x1 = 4 − x 2 − x5  x1 = 4 − x 2 − x5
3 3 3 3
 
 1 1  2 1
⇒  x3 = 6 + x 2 + x5 − x 2 ⇒  x3 = 6 − x 2 + x 5
 3 3  3 3
 1 1  7 1
x
 4 = 2 + x 2 + x5 + 2 x 2 x
 4 = 2 + x 2 + x5
 3 3  3 3

1 1 5 2
z = 2x1 - x2 = 2( 4 − x 2 − x5 ) – x2 = 8 - x 2 − x5
3 3 3 3

Como todos ci < 0, não temos mais alguma possibilidade de aumentar o valor da função
objectivo, então já temos a solução óptima.

Solução S = {x1 = 4; x2 = 0; x3 = 6; x4 = 2; x5 = 0 e Zmax = 8}

Exemplo 2.9. Resolver o exemplo 2.4 do agricultor pelo método algébrico.


Resolução.
Por comodidade vamos dividir por 10; 20 e 10 respectivamente os coeficientes das
restrições.
Minimizar W = 30x1 + 20x2 Minimizar W = 30x1 + 20x2
 5 0x1 + 1 0x2 ≥ 1 0 0  5 x1 + 1x2 ≥ 1 0
 2 0x + 2 0x ≥ 1 2 0 x + x ≥ 6
 1 2  1 2
Sujeito a  ⇔ sujeito à 
 1 0x1 + 4 0x2 ≥ 1 2 0  x1 + 4 x2 ≥ 1 2
 x1 , x2 ≥ 0  x1 , x2 ≥ 0

Apontamentos de Investigação Operacional 35


Alberto Mulenga
Capítulo 2. Programação Linear

Passo 1. Introdução das variáveis de excesso.


Minimizar W = 30x1 + 20x2 + 0x3 + 0x4 + 0x5
 5 x1 + x2 − x3 + 0 x4 + 0 x5 = 1 0
 x + x + 0x − x + 0x = 6
 1 2 3 4 5
Sujeito à 
 x1 + 4 x2 + 0 x3 + 0 x4 − x5 = 1 2
 x1 , x2 , x3 , x4 , x5 ≥ 0

Apontamentos de Investigação Operacional 36


Alberto Mulenga

Você também pode gostar