Você está na página 1de 16

MATEMÁTICA I

Nélia Amado
Gabinete 65
namado@ualg.pt
MÉTODO SIMPLEX
16, 17 e 18 de novembro 2022
Método Simplex
O Método Simplex é uma técnica utilizada para determinar,
numericamente, a solução ótima de um modelo de Programação Linear.

Será desenvolvido inicialmente para Problemas de Programação Linear,


na forma padrão ou standard. Diz-se que um problema de Programação
Linear está na forma standard se:
1. Pretendemos maximizar a função objetivo: 𝒁 = 𝑪𝑿
2. Sujeita a um conjunto de restrições na forma 𝐴𝑋 ≤ 𝐵,
com 𝑋 ≥ 0
Problema 1:
Uma fábrica de barcos está dividida em três seções.
Na tabela seguinte apresenta-se a distribuição de horas, por semana,
em cada secção da fábrica, para a construção de cada um dos
modelos.
Pretende-se maximizar o lucro desta empresa na
construção destes dois tipos de barcos.

Formalizando o problema através de condições, vem:

Maximizar: 𝐿 = 60 𝑥1 + 80 𝑥2

Sujeito às restrições: 2𝑥1 + 4𝑥2 ≤ 80


2𝑥1 + 2𝑥2 ≤ 50
4𝑥1 + 2𝑥2 ≤84
𝑥1 ≥ 0, 𝑥2 ≥ 0

Podemos ainda escrever 𝐿 − 60 𝑥1 − 80 𝑥2 = 0 ,


obtendo uma nova equação para o sistema (em que se
pretende que L seja o maior possível!)
As expressões anteriores estão na forma de desigualdades, mas
nós aprendemos a resolver sistemas de várias equações com
várias incógnitas.

O passo seguinte será introduzir novas variáveis de modo a


transformar as desigualdades anteriores em igualdades.
Obtemos assim, um sistema de 6 incógnitas com 4 equações,
portanto um sistema que pode admitir uma infinidade de
soluções.
𝑳 − 𝟔𝟎 𝒙𝟏 − 𝟖𝟎 𝒙𝟐 = 0
Porquê?
2𝑥1 + 4𝑥2 + 𝑠1 = 80
2𝑥1 + 2𝑥2 + 𝑠2 = 50
4𝑥1 + 2𝑥2 + 𝑠3 = 84
Às novas variáveis 𝑠1 , 𝑠2 , 𝑠3 damos o nome de variáveis folga.
Vamos colocar o problema numa tabela do Simplex

L 𝑥1 𝑥2 𝑠1 𝑠2 𝑠3

0 2 4 1 0 0 80

0 2 2 0 1 0 50

0 4 2 0 0 1 84

1 -60 -80 0 0 0 0
Começamos por selecionar a coluna por onde vamos iniciar o processo
de resolução. Escolhemos na linha da função objetivo o número que
apresenta maior valor absoluto. Em seguida, calculamos o quociente
entre os 𝑏𝑖 e os valores da coluna selecionada.

80/4=20

50/2=25

84/2=42

Identificada a coluna, o passo seguinte é escolher a linha. Esta deve ser


selecionada a partir dos quocientes indicados à direita do quadro. O
menor valor encontrado é 20 que corresponde ao valor 4.
Vamos efetuar as operações elementares na 1ª linha. Para tal vamos
transformar o pivot em 1, dividindo todos os elementos da linha 1 por 4.

L 𝑥1 𝑥2 𝑠1 𝑠2 𝑠3

0 2/4 1 1/4 0 0 80/4

0 2 2 0 1 0 50

0 4 2 0 0 1 84

1 -60 -80 0 0 0 0
Em seguida vamos tornar todos os elementos da coluna selecionada iguais a zero.
Adicionamos à 2ª linha a 1ª multiplicada por -2 e o mesmo com a 3ª linha. À linha 4
vamos somar a 1ª multiplicada por 80.
Vamos efetuar as operações elementares na 1ª linha. Para tal vamos transformar o
pivot em 1. Então, vamos dividir todos os elementos da linha 1 por 4.

L 𝑥1 𝑥2 𝑠1 𝑠2 𝑠3

0 1/2 1 1/4 0 0 20 20/(1/2)=40

0 1 0 -1/2 1 0 10
10/1=10

0 3 0 -1/2 0 1 44
44/3=14,6
1 -20 0 10 20 0 1600

Existe um valor negativo, -20 para coeficientes de L. Logo a 1ª coluna vai ser
escolhida e vamos ver qual a linha para escolher o pivot. O procedimento é o
mesmo, calculamos o quociente entre os 𝑏𝑖 e os valores da coluna selecionada..
O pivot é 1, pelo que podemos de imediato fazer as operações elementares.
L 𝑥1 𝑥2 𝑠1 𝑠2 𝑠3

0 0 1 1/2 -1/2 0 15

0 1 0 -1/2 1 0 10

0 0 0 1 -3 1 14

1 0 0 10 20 0 1800

Podemos concluir que: 𝑥1 = 10 𝑒 𝑥2 = 15 𝑒 𝑳𝒖𝒄𝒓𝒐 = 𝟏𝟖𝟎𝟎


Exercício 1:
Max 𝑍 = 3 𝑥1 + 2𝑥2 , sujeita às seguintes restrições:

2 𝑥1 + 𝑥2 ≤ 100
𝑥1 + 𝑥2 ≤ 80
𝑥1 ≤ 40
𝑥1 , 𝑥2 ≥ 0

1.º Passo: 𝑍 − 3 𝑥1 − 2𝑥2 = 0 e introduzindo as variáveis folga nas


restrições obtemos um sistema de equações:

2 𝑥1 + 𝑥2 + 𝑠1 = 100
𝑥1 + 𝑥2 + 𝑠2 = 80
𝑥1 + 𝑠3 = 40
𝑥1 , 𝑥2 ≥ 0

2.º Passo: Escrever a tabela


Z 𝑥1 𝑥2 𝑠1 𝑠2 𝑠3 b

Z 1 -3 -2 0 0 0 0

𝒔𝟏 0 2 1 1 0 0 100 100/2=50

𝒔𝟐 0 1 1 0 1 0 80 80/1=80

𝒔𝟑 0 1 0 0 0 1 40 40/1=40

pivot
Selecionado o pivot vamos efetuar as operações elementares de modo o obter
uma coluna da matriz identidade.
Z 𝒙𝟏 𝒙𝟐 𝒔𝟏 𝒔𝟐 𝒔𝟑 b
Z 1 0 -2 0 3 120
𝒔𝟏 0 0 1 1 0 -2 20 20/1=20
𝒔𝟐 0 0 1 0 1 -1 40 40/1=40
𝒙𝟏 0 1 0 0 0 1 40

Ainda temos um elemento negativo, -2, significa que temos de fazer novamente
operações de modo a eliminá-lo. Repetimos o processo.

Z 𝒙𝟏 𝒙𝟐 𝒔𝟏 𝒔𝟐 𝒔𝟑 b

Z 1 0 0 2 0 -1 160
𝒙𝟐 0 0 1 1 0 -2 20 acabou de entrar

𝒔𝟐 0 0 0 0 1 1 20

𝒙𝟏 0 1 0 0 0 1 40

Selecionado o pivot 1, vamos fazer as operações elementares, o que significa uma


troca de variáveis 𝒔𝟑 com 𝑠2 . Finalmemte, obtemos a solução ótima.
Z 𝒙𝟏 𝒙𝟐 𝒔𝟏 𝒔𝟐 𝒔𝟑 b
Z 1 0 0 1 1 0 180

𝒙𝟐 0 0 1 -1 2 0 60

𝒔𝟑 0 0 0 -1 1 1 20

𝒙𝟏 0 1 0 1 -1 0 20

Obtemos assim a solução ótima. 𝒙𝟏 = 20, 𝒙𝟐 =60 .


A folga 𝒔𝟑 =20

𝒁 = 𝟑 × 𝟐𝟎 + 2× 𝟔𝟎 = 𝟔𝟎 + 𝟏𝟐𝟎 = 𝟏𝟖𝟎
Resolva os seguintes problemas de programação linear pelo Método
Simplex:

1. Max 𝑍 = 10 𝑥1 + 12𝑥2 , sujeita às seguintes restrições:

𝑥1 + 𝑥2 ≤ 100
𝑥1 + 3𝑥2 ≤ 270

𝑥1 , 𝑥2 ≥ 0

2. Max 𝑍 = 𝑥1 + 9𝑥2 + 𝑥3 , sujeita às seguintes restrições:

𝑥1 + 2𝑥2 + 3 𝑥3 ≤ 9
ቐ3𝑥1 + 2𝑥2 + 3𝑥3 ≤ 15
𝑥1 , 𝑥2 ≥ 0

Você também pode gostar