Você está na página 1de 10

PESQUISA OPERACIONAL

O MÉTODO SIMPLEX
Introdução:
A Programação Linear busca obter valores para n variáveis de decisão, x1, x2, ..., xn, a valores não
negativos, de modo a otimizar – maximizar ou minimizar – uma expressão linear, Z = c1x1 + c2x2 + ... +
cnxn, satisfazendo a um conjunto de restrições lineares, na forma de igualdades ou de desigualdades,
representadas matricialmente por Ax {, =, ≥} b.
A é a matriz dos coeficientes tecnológicos, x é um vetor coluna com dimensão n reunindo as
variáveis de decisão, e b ≥ 0 o vetor dos recursos ou insumos disponíveis para a produção.
O Método Simplex de resolução da Programação Linear, desenvolvido por Dantzig (1947) será
visto na forma de algoritmo e de exemplos resolvidos.
Para aplicar o método simplex é importante, em um primeiro momento, distinguir-se as restrições
de igualdade das restrições de desigualdade, pois facilita a introdução de diversos aspectos, embora mais
adiante se constate que essa diferença não é relevante. A forma padrão, correspondendo à igualdade, é a
mais geral, enquanto que a forma Ax  b, com b ≥ 0, é característica da forma canônica.
✓ Forma Padrão:
A forma padrão é aquela em que as restrições estão expressas por meio de equações lineares:
Max (ou Min) Z = c1 x1 + c 2 x 2 +  + c n x n
sujeito a a 11 x1 + a12 x 2 +  + a1n x n = b1
a 21 x1 + a 22 x 2 +  + a 2 n x n = b2
   
a m1 x1 + a m 2 x 2 +  + a mn x n = bm
xi 0 (i = 1,2,...,n)
onde: A = matriz mxn dos coeficientes tecnológicos
b = vetor mx1 das constantes do lado direito
x = vetor nx1 das variáveis de decisão
c = vetor 1xn dos coeficientes da função objetivo

✓ Forma Canônica:
O sistema é dito na forma canônica quando, embutido na matriz dos coeficientes, encontra-se a
matriz identidade. Em conseqüência, esse sistema admite uma solução trivial em que as variáveis não
associadas às colunas da matriz identidade são nulas. Além disso, se todo bi ≥ 0, (i = 1, ..., m), a solução
é também viável. A solução trivial consiste em fazer xn+i = bi, enquanto que as demais variáveis x1 a xn
são nulas.

Prof. André Gandolpho 1


PESQUISA OPERACIONAL
Max (ou Min) Z = c1x1 + c2x2 + ... + cnxn + cn+1x1,n+1+ cn+2xn+2 + ... + cn+mxn+m
Sujeito a: a11x1 + a12x2 + ... + a1nxn + xn+1 = b1
a21x1 + a22x2 + ... + a2nxn ……..+ xn+2 = b2
..... ..... ..... .... .... .....
am1x1 + am2x2 + ... + amnxn + xn+m = bn
x1, x2, ..., xn+m  0

MÉTODO SIMPLEX NA FORMA DE QUADROS

O Método Simplex pesquisa a solução ótima apenas entre as soluções básicas admissíveis,
através de um processo iterativo realizado de modo que o valor da função objetivo aumente/diminua a
cada iteração. Considere-se o programa linear na sua forma canônica, conforme visto no item anterior.
Podemos transformar a função objectivo

Z = c1x1 + c2x2 + ... + cnxn + cn+1x1,n+1+ cn+2xn+2 + ... + cn+mxn+m


Em uma restrição:
Z – (c1x1 + c2x2 + ... + cnxn + cn+1x1,n+1+ cn+2xn+2 + ... + cn+mxn+m) = 0
Desta forma é possível escrever o problema na forma de tabela, conforme segue:

Base Z x1 x2 ..... xn b

Max 1 -c1 -c ..... -cn 0 Linha (0)


x1 0 a11 a12 ..... a1n b1 Linha (1)

x2 0 a21 a22 ..... a2n b2 Linha (2)

..... 0 ..... ..... ..... ..... ..... .....


xn 0 am1 am2 ..... amn bn Linha (m)

SÍNTESE DO ALGORITMO SIMPLEX:


Formalizando, vamos escrever o método Simplex na forma de um algoritmo. Para isso, considere
o problema de maximização, colocado na forma canônica.
Quando se trata do problema em sua primeira iteração, os coeficientes são os dados originais do
problema. A partir da segunda iteração, os coeficientes vão se modificando, por conta dos pivotamentos.
A presença das barras sobre os coeficientes serve para indicar valores modificados. Deste modo, pode-se
escrever em termos de algoritmo o método simplex:

Prof. André Gandolpho 2


PESQUISA OPERACIONAL
✓ O Algoritmo Simplex (Forma de Maximização):
1. Coloca-se o problema na forma canônica, onde b i  0 (i = 1,2,...,m)

2. Se − c j  0 , para j = 1,2,...,n, então PARE, ótimo encontrado. Se houver algum − cj < 0, escolher
dentre eles a menor, ou seja:
 
c s = min c j | − c j  0 , vá para (3), para fazer o vetor xs entrar na base.

Se o mínimo c s ocorrer para mais de um s, escolher arbitrariamente um deles.


3. Entrar com o vetor xs na base.Para definir o vetor a sair da base surgem duas possibilidades
i) ais ≤ 0 para todo i = 1,...,m. Então xs pode ser aumentado indefinidamente, sem fazer nenhuma
variável básica decrescer a zero e o valor de Z tende a infinito. PARE, a solução é ilimitada.
ii) ais > 0 para algum i. Nesse caso calcule o menor dos coeficientes bi/ais. Seja r a variável básica
tal que:
br  bi 
= min  a is  0
a rs  a is 
i

Esta relação define que a variável a sair da base é a variável básica correpondente à r-ésima
equação, digamos xr, enquanto que ars é denominado elemento pivot. Vá para o passo (4)
4. Troque na base a variável na linha r pela variável xs que passará a ser básica. Estabeleça a forma
canônica, ou seja, pivotar no coeficiente a rs . Isto exige que a linha r seja dividida por a rs ,
inclusive o elemento br. Para tornar zero os demais elementos da coluna s, tem-se que adicionar
múltiplos apropriados da linha r. Igualmente, o elemento c s deve se tornar zero pela adição de
múltiplos da linha r. Como conseqüência dessas operações, todos os elementos do quadro sofrem
alterações que, para cálculos automáticos em computador, podem ser reduzidos às seguintes
regras:
a rj
Linha r: a rj  , j = 1,2,..., n, n + 1
a rs

i = 0,1,..., m
a 
a ij  a ij − is a rj i  r
a rs  j = 1,2,..., n, n + 1

Elemento i,j:
onde : a oj = c j corresponde aos elementos da linha (0);
a i,n +1 = b i corresponde aos elementos da linha i e
a o,n +1 = 0, no quadro inicial indica os valores da função objetivo Z.

5. Vá para (2) e realize novamente o teste de otimização.


Fonte: Pizzolato e Gandolpho, 2005

Prof. André Gandolpho 3


PESQUISA OPERACIONAL

EXERCÍCIOS RESOLVIDOS
Resolva os seguintes problemas de Programação Linear utilizando o Método Simplex na forma
de quadros:

1) Max Z = 2x1 + 3x2


sa
2x1 + 3x2  30
3x1 + 8x2  70
x1 0
x2  0
Solução:
Tableau Ótimo:

Base Z X1 X2 X3 X4 b RAZÃO
MAX 1 0 0 1 0 30
X1 0 1 0 8/7 - 3/7 30/7
X2 0 0 1 - 3/7 2/7 50/7
No tableau atualizado não existem candidatos a entrar na base. Como os coeficientes do lado
direito são não negativos, conclui-se que chegou-se ao ponto ótimo.

Desta forma, tem-se a seguinte solução final ótima:


X1 = 30/7 = 4,29; X2 = 50/7 = 7,14; Z = 30

Prof. André Gandolpho 4


PESQUISA OPERACIONAL
2) Max Z = 4x1 + 1x2
sa
9x1 + 1x2  18
3x1 + 1x2  12
x1 0
x2  0

Solução:
Tableau Final
Base Z X1 X2 X3 X4 b
MAX 1 0 0 1/6 5/6 13
X1 0 1 0 1/6 - 1/6 1
X2 0 0 1 - 1/2 3/2 9

Solução final ótima:


X1 = 1; X2 = 9; Z = 13

Prof. André Gandolpho 5


PESQUISA OPERACIONAL
3) Max 8x1 + 5x2
sa
12x1 + 10x2  150
x1  130
x2  100
40x1 + 60x2  567

Solução:
TABLEAU ÓTIMO
Base Z X1 X2 X3 X4 X5 X6 b RAZÃO
MAX 1 0 5/3 2/3 0 0 0 100
X1 0 1 5/6 1/12 0 0 0 25/2
X4 0 0 - 5/6 - 1/12 1 0 0 235/2
X5 0 0 1 0 0 1 0 100
X6 0 0 80/3 -10/3 0 0 1 67

X1= 25/2; X2 = 0; X3 = 0; X4 = 0; Z = 100

Prof. André Gandolpho 6


PESQUISA OPERACIONAL
4) Max Z = 22x1 + 20x2
st
1x1 + 3x2  60
2x1 + 0x2  24
0x1 + 1x2  15
3x1 + 1x2  45

Solução:
TABLEAU ÓTIMO
Base Z X1 X2 X3 X4 X5 X6 b RAZÃO
MAX 1 0 0 0 0 38/3 22/3 520
X3 0 0 0 1 0 -8/3 - 1/3 5
X1 0 1 0 0 0 - 1/3 1/3 10
X4 0 0 0 0 1 2/3 - 2/3 4
X2 0 0 1 0 0 1 0 15

x1 = 10; x2 = 15; x3 = 5; x4 = 0; x5 = 4; Z = 520

Prof. André Gandolpho 7


PESQUISA OPERACIONAL
5) Seja o seguinte modelo de Programação Linear (Pizzolato & Gandolpho, 2005):
Max. Z = 2x1 + 3x2
Sujeito a x1 + 2x2  8
–2x1 + 3x2  5
x1 + x2  6
x1, x2  0
Tableau Ótimo:

Base Z X1 X2 X3 X4 X5 b
Max 1 0 0 1 0 1 14
X1 0 1 0 –1 0 2 4
X2 0 0 1 1 0 –1 2
X4 0 0 0 –5 1 7 7
Quadro 5: Método Simplex, Solução Ótima.

x1 = 4; x2 = 2; x3 = 0; x4 = 7; x5 = 0; Z = 14

Prof. André Gandolpho 8


PESQUISA OPERACIONAL
6) Seja o seguinte modelo de Programação Linear (Pizzolato & Gandolpho, 2005):
Max Z = 2x1 + 3x 2
Sujeito a x 1 + 2x 2  2
x1 + x2  3
3x1 + 5x 2  15
x 1, x 2  0
Solução:
Como já explicado, as inequações podem ser transformadas em equações pela introdução de
variáveis de folga, com peso nulo na função objetivo:

Max Z = 2x1 + 3x2 + 0x3 + 0x4 + 0x5


Sujeito a x1 + 2x2 + x3 = 2
x1 + x2 + x4 = 3
3x1 + 5x2 + x5 = 15
xi  0, para i = 1,2,...,5

entra
X1 X2 X3 X4 X5 RHS razão
-2 -3 0 0 0 0
sai X3 1 2 1 0 0 5 2,5
X4 1 1 0 1 0 4 4
X5 3 5 0 0 1 15 3

entra
X1 X2 X3 X4 X5 RHS razão
-0,5 0 1,5 0 0 7,5
X2 0,5 1 0,5 0 0 2,5 5
sai X4 0,5 0 -0,5 1 0 1,5 3
X5 0,5 0 -2,5 0 1 2,5 5

X1 X2 X3 X4 X5 RHS
0 0 1 1 0 9
X2 0 1 1 -1 0 1
X1 1 0 -1 2 0 3
X5 0 0 -2 -1 1 1

Solução Final Ótima:


VARIÁVEL VALOR
X1 3,0
X2 1,0
X3 1,0
X4 3,0
X5 1,0
FO 9,0

Prof. André Gandolpho 9


PESQUISA OPERACIONAL
Referências Bibliográficas:

1) Notas de Aula de Fernando M. A. Nogueira – Universidade Federal de Juiz de Fora – UFJF;

2) Marco Cesar Goldbarg and Henrique Pacca L. Luna. Otimização Combinatória e Programação
Linear: Modelos e Algoritmos. Editora Campus, 2a edição, Rio de Janeiro, 2005;

3) Maristela Oliveira dos Santos – Universidade de São Paulo – USP – Notas de Aula – março de 2010;

4) Notas de Aula de Rosa Ferreira Canelas – Editora Lisboa;

5) Pizzolato, Nélio Domingues; Gandolpho, André A.; Técnicas de Otimização, LTC, Rio de Janeiro,
2005;

6) Pires, Marília; Notas de Aulas de Programação Matemática – Curso de Licenciatura em Matemática;


Universidade do Algarve – Portugal; 2005/2006;

7) Puccini, Abelardo de Lima; Pizzolato, Nélio Domingues, Programação Linear, LTC, 2 a Edição, Rio
de Janeiro.

8) Taha, Hamdy A.; Pesquisa Operacional; Editora Pearson; 8a Edição

Prof. André Gandolpho 10

Você também pode gostar