Objectivo Geral: Resolver problemas de
programação linear, usando o algoritmo simplex a partir do seu modelo
matemático.
Fundamentação Teórica
O Método
Simplex foi proposto por Dantzig. O primeiro e mais importante passo na sua
descoberta foi a conclusão de que a região admissível é o que se chama um polítopo (poliedro
convexo limitado), e donde concluiu que
o ponto óptimo tem que estar sobre algum dos vértices desse conjunto. Além
disso, Dantzig argumentou que a função objectivo tem geralmente valores
diferentes para cada vértice escolhido arbitrariamente, no qual a função
objectivo tem um determinado valor, passando de vértice para vértice, na
procura do ponto óptimo.
Inicialmente,
Dantzig pensou que tal procedimento poderia ser irremediavelmente ineficaz, ou
seja , divagar durante muito tempo ao longo das arestas, de vértice para
vértice, antes de alcançar o vértice em que a função objectivo atinge o valor
óptimo. Mas estava enganado, pois, na realidade veio a descobrir que, em quase
todos os casos, encontrar a solução somente exigia tantos movimentos quantas as
restrições do problema.
Alguns conceitos
fundamentais no método simplex
A
introdução destes conceitos é fundamental para a apresentação do método
simplex. Ao considerarmos um problema de
programação linear, ele terá sempre a seguinte forma padrão:
Optimizar Z = c1x1 +
c2x2 + ... +cnxn
Sujeito a: a11x1
+ a12x2 + ... + a1nxn = b1
a21x1
+ a22x2 + ... + a2nxn = b
am1x1 + am2x2
+ ... + amnxn
= bn
x1, x2,
…, xm, ..., xn ≥
0 (m ≤ n)
onde:
m = número de restrições funcionais;
n = número de variáveis de restrição.
Supõe-se
ainda que os termos independentes são não negativos: bi ≥ 0 (i = 1, 2, ..., m). Caso
contrário pode sempre multiplicar-se por (-1) toda a equação.
Suponha-se
que a característica (número máximo de colunas linearmente independentes) da
matriz A é igual a m, ou seja, C(A) = m. Isto significa que existe uma
submatriz de A quadrada de ordem m (Bm x m) com determinante não
nulo. Esta submatriz permite efectuar uma classificação das variáveis em:
básicas (as correspondentes às colunas daquela submatriz) e não básicas (as
restantes n-m variáveis).
Um
sistema das restrições é um sistema indeterminado de grau n-m, em que m
variáveis podem ser escritas em termos das restantes n-m, e tem, por
consequência, uma infinidade de soluções (correspondente à infinidade de
valores que arbitrariamente podem ser atribuídos às n-m variáveis).
Suponha-se
então que X = (x1, x2, …, xm, xm+1,
…, xn) é uma solução desse sistema.
Se
uma submatriz Bm x m da matriz A do sistema considerado é não
singular, isto é, o seu determinante é nulo, então a submatriz Bm x m
designa-se por base. Sem perda de
generalidade, suponha-se que a base é composta pelas m últimas colunas, isto
é, B = {P1, P2,
…, Pm}.
As m
variáveis x1, x2, …, xm correspondentes às
colunas de Bm x m designam-se por variáveis básicas. As restantes n-m variáveis xm+1, xm+2,
…, xn designam-se variáveis
não básicas.
Uma solução básica para o sistema obtém-se
atribuindo o valor zero a todas as variáveis não básicas xm+1, xm+2,
…, xn e determinando depois uma solução para as m variáveis básicas
restantes x1, x2, …, xm . Isto é, X = (0, ...,
0, x1, x2, …, xm), onde XB = (x1, x2,
…, xm) é a única solução do sistema de equações BXB = b.
Se
uma solução básica X verifica ainda as condições de não-negatividade (3’), isto é, todas as variáveis da
solução são não negativas então, esta solução é uma solução básica admissível.
Duas
soluções básicas que apenas diferem numa variável básica designam-se por soluções básicas adjacentes.
Uma
solução básica admissível é óptima
quando nenhuma das soluções básicas admissíveis adjacentes é “melhor”, isto é,
nenhuma melhora o valor da função objectivo.
Se
todas as variáveis básicas x1, x2, …, xm são
não nulas, a solução básica designa-se por solução
básica não degenerada. Se alguma variável básica for igual a zero a solução
básica designa-se por solução básica
degenerada.
Os
simétricos dos coeficientes associados a cada variável na função objectivo (no
caso da maximização) designam-se custos
reduzidos.
ALGORITMO DO MÉTODO SIMPLEX
O
que é um algoritmo?
Um
algoritmo é um processo que repete (itera) sucessivas vezes um procedimento
sistemático até obter um resultado. Além disso, também inclui um procedimento
para iniciar e um critério para terminar.
O algoritmo simplex pode ser sintetizado nos seguintes
passos:
1º Obter uma primeira solução
básica admissível;
2º Verificar se a solução
básica admissível é óptima, isto é, se os coeficientes da função objectivo,
expressa em termos das variáveis não básicas são todos positivos. Se a solução
for óptima, o algoritmo termina;
3º
Se algum coeficiente for negativo, considerar
o negativo com maior valor absoluto como o correspondente à variável que deve
entrar na base e, portanto, correspondente à coluna do pivot;
4º Determinar o maior valor
possível da variável que vai entrar na base, dividindo os termos independentes
pelos coeficientes da variável nas várias restrições, para os casos em que
sejam positivos, e considerando o menor dos quocientes positivos. A linha a que corresponde este menor
quociente é a linha do pivot.
Se todos os quocientes forem negativos,
a variável a entrar na base pode tomar um valor infinitamente grande e o
problema diz-se sem solução limitada (ou sem óptimo finito);
5º Manipular
as linhas do quadro, de acordo com as operações elementares realizadas com
linhas de matrizes, de modo a obter um quociente unitário no lugar do pivot e
valores nulos para os outros elementos da coluna pivot.
Obtém-se assim uma nova solução básica.
Regressar ao 2º passo. Para tornar mais simples a aplicação deste algoritmo
recorre-se à construção de vários quadros. Uma vez que qualquer problema de
maximização pode ser facilmente convertido num problema de minimização,
consideraremos apenas o caso da minimização para facilitar a exposição.
Assim, o problema na forma canónica
corresponde ao seguinte quadro:
|
x1
|
x2
|
...
|
xm
|
...
|
xn
|
bi
|
|
a11
|
a12
|
...
|
a1m
|
...
|
a1n
|
b1
|
|
...
|
|
|
|
|
|
...
|
|
am1
|
am2
|
...
|
amm
|
...
|
amn
|
bm
|
Z
|
c1
|
c2
|
...
|
cm
|
...
|
cn
|
0
|
Em
que o canto inferior direito representa o simétrico do valor da função
objectivo.
Segue-se
o algoritmo descrito, registando-se as várias fases em diferentes quadros. No
fim do processo iterativo:
-
a solução óptima é obtida atribuindo-se a cada variável não básica o valor zero
e a cada variável básica o valor da linha correspondente ao número 1, da sua
coluna, na última coluna;
-
o valor óptimo da função objectivo é o simétrico do número resultante na última
linha e na última coluna. Caso se trata-se de um problema de maximização, seria
mesmo o valor e não o seu simétrico.
Exemplos de aplicação do método simplex
Dado
que a representação gráfica da resolução de P.L. com mais de duas variáveis se
torna difícil de interpretar, usa-se nesses casos o método simplex. Iremos
expor de seguida dois exemplos de resolução de problemas usando este método. Apresentamos
primeiramente um problema com duas variáveis (exemplo de maximização, já
exposto anteriormente) pois consideramos que ajuda à compreensão do método.
Posteriormente, apresentamos o problema com três variáveis.
1º
Problema
Resolução
usando o método simplex:
x =
x1 = n.º de unidades do Produto 1
y =
x2 = n.º de unidades do Produto 2
max Z = 3x1 + 5x2
sujeito
a x1 ≤ 4
2x2 ≤ 12
3x1 + 2x2 ≤ 18
Introduzindo
as variáveis de folga x3, x4, x5, obtemos:
x1
+ x3 = 4
2x2 + x4 = 12
3x1 + 2x2 + x5
= 18
Aplicando
o método simplex, obtemos sucessivamente os quadros:
|
x1
|
x2
|
x3
|
x4
|
x5
|
b
|
x3
|
1
|
0
|
1
|
0
|
0
|
4
|
x4
|
0
|
2*
|
0
|
1
|
0
|
12
|
x5
|
3
|
2
|
0
|
0
|
1
|
18
|
Z
|
-3
|
-5
|
0
|
0
|
0
|
0
|
A
primeira solução básica admissível é (x1, x2, x3,
x4, x5) = (0, 0, 4, 12, 8); onde x1, x2 são
variáveis não básicas e x3, x4, x5 são as
variáveis básicas. Verificamos que esta solução não é óptima, visto que existem
custos reduzidos negativos: -3 e -5.
A
variável a entrar na base é x2, porque entre as variáveis não
básicas com custo reduzido negativo é a que tem menor valor.
A
variável de saída é x4, porque o min { 12/2, 18/2} corresponde à linha
definida por esta variável básica.
O
pivot neste caso é 2 (assinalado com um asterisco).
A
actualização do quadro simplex é feita utilizando as seguintes operações elementares:
L1 ® L1
L2
®
1/2L2
L3
®
L3 – L2
L4 ® L4 + 5/2L2
|
x1
|
x2
|
x3
|
x4
|
x5
|
b
|
x3
|
1
|
0
|
1
|
0
|
0
|
4
|
x2
|
0
|
1
|
0
|
1/2
|
0
|
6
|
x5
|
3*
|
0
|
0
|
-1
|
1
|
6
|
Z
|
-3
|
0
|
0
|
5/2
|
0
|
30
|
Obtemos
uma nova solução básica admissível (x1, x2, x3,
x4, x5) = (0, 6, 4, 0, 6); esta solução ainda não é
óptima pois existe um custo reduzido negativo.
Repare-se
que para esta solução a função objectivo é 30.
A
variável a entrar na nova base é x1, porque entre as duas variáveis
não básicas é a única que tem um custo reduzido negativo.
A
variável de saída é x5, porque o min {4/1,6/3} corresponde à linha
definida por x5.
O
novo pivot é 3 (assinalado com um asterisco).
A
nova actualização do quadro simplex é feita utilizando as seguintes operações elementares:
L1 ® L1 – 1/3L3
L2
®
L2
L3
®
1/3L3
L4 ® L4 + L3
|
x1
|
x2
|
x3
|
x4
|
x5
|
b
|
x3
|
0
|
0
|
1
|
1/3
|
-1/3
|
2
|
x2
|
0
|
1
|
0
|
1/2
|
0
|
6
|
x1
|
1
|
0
|
0
|
-1/3
|
1/3
|
2
|
Z
|
0
|
0
|
0
|
3/2
|
1
|
36
|
A
nova solução básica admissível é (x1, x2, x3,
x4, x5) = (2, 6, 2, 0, 0) ; uma vez que neste último
quadro não existem custos reduzidos negativos, esta solução é óptima.
Como resposta:
precisase de 2 unidades do produto1 e 6 unidades do produto2 para que se
atinja um lucro máximo de 36.
BIBLIOGRAFIA
1. Goldbarg, M.C. Luna, H.P.L. (2005) Otimização Combinatória e Programação Linear.
Modelos e Algoritmos. 2ª Edição. Editora Campus.
2.
Hillier F. S., Lieberman G. J. (2010) Introdução à Pesquisa Operacional. 8ª
Edição. Editoras Mc Graw Hill e bookman.
3.
Taha, Hamdy A. (2008) Pesquisa Operacional: Uma Visão Geral. 8ª Edição. São
Paulo. Pearson Prentice Hall.
4.
Ramalhete, Manuel; Guerreiro, Jorge; Magalhães,
Alípio – Programação Linear,
Volume 1. Alfragide: McGraw-Hill, 1984.
5.
Tavares, L. Valadares; Oliveira,
R. Carvalho; Themido, I. Hall; Correia, F. Nunes – Investigação Operacional. Alfragide:
McGraw-Hill, 1997.
Nenhum comentário:
Postar um comentário