Métodos Simplex
Maximizar Z = f(x,y) = 3x + 2y
sujeita às restrições: 2x + y ≤ 18
2x + 3y ≤ 42
3x + y ≤ 24
x≥0,y≥0
x passa a ser X1
y passa a ser X2
Normalizar as restrições.
Tipo de
Tipo de variável que aparece
desigualdade
≥ - excesso + artificial
= + artificial
≤ + folga
2·X1 + X2 + X3 = 18
2·X1 + 3·X2 + X4 = 42
3·X1 + X2 + X5 = 24
Tabela I . Iteração 1
3 2 0 0 0
Base Cb P0 P1 P2 P3 P4 P5
P3 0 18 2 1 1 0 0
P4 0 42 2 3 0 1 0
P5 0 24 3 1 0 0 1
Z 0 -3 -2 0 0 0
Critério de parada.
Atualizar a tabela.
Anterior Linha P4 42 2 3 0 1 0
- - - - - -
Elemento Anterior Linha na Coluna Pivô 2 2 2 2 2 2
x x x x x x
Nova Linha Pivô 8 1 1/3 0 0 1/3
= = = = = =
Nova Linha P4 26 0 7/3 0 1 -2/3
Tabela II . Iteração 2
3 2 0 0 0
Base Cb P0 P1 P2 P3 P4 P5
P3 0 2 0 1/3 1 0 -2/3
P4 0 26 0 7/3 0 1 -2/3
P1 3 8 1 1/3 0 0 1/3
Z 24 0 -1 0 0 1
Tabela IV . Iteração 4
3 2 0 0 0
Base Cb P0 P1 P2 P3 P4 P5
P2 2 12 0 1 -1/2 1/2 0
P5 0 3 0 0 -7/4 1/4 1
P1 3 3 1 0 3/4 -1/4 0
Z 33 0 0 5/4 1/4 0
Fim do algoritmo.
O que temos acima é um modelo de Programação Linear. Ele é formado sempre por uma
função linear (que é a função objetivo) e por um conjunto de ineqüações lineares
(restrições do problema). No exemplo acima, desejamos obter o maior lucro possível
(maior valor de Z). O objetivo da programação linear é justamente fornecer ferramentas
para resolver o desafio de encontrar o maior ou o menor valor possível em uma função
linear cujas variáveis possuem restrições.
Assim, o problema geral de programação linear pode ser definido por:
Maximizar (ou minimizar) a função objetivo:
sujeita às restrições:
A Criação de Modelos
O conceito de modelos é de importância fundamental ao estudarmos pesquisa
operacional. Um modelo é uma representação simplificada da realidade. Para criarmos um
modelo de programação linear, precisamos identificar em um problema qual é a função
objetivo, as restrições e o tipo de otimização que desejamos (queremos achar o máximo
ou o mínimo da função-objetivo?). Veja o exemplo abaixo:
Uma empresa fabrica mesas e cadeiras. O quadro abaixo mostra os recursos consumidos
por unidade de cada produto e os seus lucros.Quantas mesas e cadeiras podem ser
fabricados para se maximizar o lucro?
A nossa função objetivo é o total de lucro da venda de mesas (M) e cadeiras (C).
Queremos descobrir qual o valor máximo possível de lucro que podemos obter. Logo,
nossa função objetivo é:
Da mesma forma, existe uma quantidade limitada de metais, o que nos dá a segunda
restrição:
Além disso, sabemos que não podemos fabricar uma quantidade negativa de cadeiras ou
mesas:
O gráfico do Domínio é:
O polígono mais escuro que representa os pontos que atendem à todas as restrições
possui como vértices os pontos (0,0), (3,0), (3,3), (1,4) e (0,4). O lucro em (0,0) é $0, em
(3,0) é $3, em (3,3) é $9, em (1,4) é $9 e em (0,4) é $8. Neste exemplo, não existe apenas
um único ponto que representa o máximo da função - existem infinitos pontos. Todos
aqueles que pertencem ao Domínio e estão na reta que liga (3,3) e (1,4) são o máximo da
função e representam a quantidade ideal de produção de pastéis e cachorros-quentes
para o vendedor ambulante. Como o vendedor ambulante não pode fazer um número
fracionário de pastéis e cachorros, quentes, a resposta é: 3 pastéis e 3 cachorros-quentes
ou então 1 pastel e 4 cachorros-quente.
2. Estamos durante a Segunda Guerra Mundial. Temos à nossa disposição tanques e
bombardeiros para atacar nossos inimigos. Sabemos que um tanque causa em média 20
baixas inimigas e um bombardeiro causa 50 baixas. Temos apenas 4 tanques à nossa
disposição. Um bombardeiro requer 1 soldado para pilotá-lo e um tanque requer 2 (e não
cabem soldados adicionais no veículo). Temos a obrigação de enviar no mínimo 9
soldados para o ataque para colaborar com as tropas aliadas que também atacarão. Com
quantos tanques e bombardeiros devemos atacar para causar o maior número de baixas?
<<< reveja essa restrição, não pode ser >= 9... tem que ser <= 9 ... a
solução do problema ficou errada, não tem como usar 4 tanques e 5 bombardeiros, sendo
que só no tanque gastaria 8 soldados, e mais 5 no bombardeiro.. temos um limite de 9
Perceba que não é possível resolver este modelo. Não existe nenhuma informação que
limite superiormente o número de bombardeiros que temos disponíveis. Logo, podemos
simplesmente dizer que o melhor é atacar com infinitos bombardeiros. Isso é um absurdo.
É uma solução inconcebível. Modelos com solução infinita costumam ocorrer quando
algum tipo de restrição é omitida do modelo.