Você está na página 1de 38

2

Campus de Ilha Solteira

JEAN VITOR DE PAULO

ESTUDO SOBRE PROGRAMAÇÃO LINEAR

Orientador: Prof. Dr. Alexandre César Rodrigues Silva

Ilha Solteira
2014
3

RESUMO

Neste trabalho realizou-se o estudo dos principais conceitos da Programação Linear, de forma
a prover o entendimento de seus métodos de construção e resolução de problemas. Para tal,
foram estudados e são aqui apresentados os conceitos essenciais para a formulação dos
problemas em sua forma padrão através de uma fundamentação teórica e resolução de
exemplos, permitindo assim uma compreensão da Programação Linear. Para solução dos
problemas, foram estudados os métodos Simplex, Simplex Revisado e Dual Simplex bem como
a Dualidade na programação linear e suas formas de resolução.

Palavras-Chave: Programação Linear. Simplex. Dualidade. Revisado.


4

ABSTRACT

This work was carried out to study the main concepts of Linear Programming in order to provide
an understanding of their construction methods and problem solving. For such, were studied
and are presented here, the essential concepts for the formulation of problems in their standard
form through a theoretical basis and resolution of examples, thus allowing an understanding of
Linear Programming. To solve the problems, the Simplex, Revised Simplex and Dual Simplex
methods as well as the Duality in linear programming and its forms of resolution have been
used.

Keywords: Linear Programming. Simplex. Duality. Revised.


5

LISTA DE FIGURAS

Figura 1 – Gráfico da representação das restrições do problema (I). ....................................... 11


Figura 2 – Região factível do problema (I) em destaque. ........................................................ 12
Figura 3 – Retas com a função objetivo destacadas no gráfico. ............................................... 12
Figura 4 – Paralelo entre os problemas Primal e Dual ............................................................. 31
6

LISTA DE TABELAS

Tabela 1 - Formato da tabela no método Simplex tabular. ...................................................... 17


Tabela 2 – Problema (IV) no formato tabular. ......................................................................... 18
Tabela 3 – Problema (IV) com a variável que entra na base em destaque. .............................. 19
Tabela 4 – Problema (IV) com itens selecionados na iteração 1. ............................................. 20
Tabela 5 – Tabela Simplex após o pivoteamento na iteração 1................................................ 20
Tabela 6 – Tabela Simplex do problema (IV) com seleção na iteração 2. ............................... 21
Tabela 7 – Problema (IV) após o pivoteamento na iteração 2. ................................................. 21
Tabela 8 – Tabela inicial do problema (V)............................................................................... 24
Tabela 9 – Problema V após pivoteamento na iteração 1. ........................................................ 24
Tabela 10 – Problema V após o pivoteamento e eliminação de 𝑎. ........................................... 25
Tabela 11 – Tabela do método Simplex revisado..................................................................... 26
Tabela 12 – Tabela para pivoteamento do método Simplex revisado. ..................................... 27
Tabela 13 – Tabela inicial para o problema (VI)...................................................................... 29
Tabela 14 – Problema (V) na primeira iteração com 𝑥2 acoplado. ......................................... 29
Tabela 15 – Problema (VI) após pivoteamento da primeira iteração. ...................................... 29
Tabela 16 – Tabela para segunda iteração com 𝑥1 acoplado. .................................................. 30
Tabela 17 – Problema (VI) após pivoteamento na iteração 2................................................... 30
Tabela 18 – Organização dos problemas Primal e Dual. .......................................................... 33
Tabela 19 – Quadro inicial do problema (VIII) ........................................................................ 35
Tabela 20 – Problema (VIII) com os valores selecionados ...................................................... 36
Tabela 21 – Problema (VIII) após pivoteamento da iteração 1 ................................................ 37
7

SUMÁRIO

1 INTRODUÇÃO ..................................................................................................................... 8
2 TEORIA DE PROGRAMAÇÃO LINEAR ........................................................................ 9
2.1 CONCEITOS BÁSICOS ...................................................................................................... 9
2.2 SOLUÇÃO GRÁFICA ....................................................................................................... 10
2.3 FORMA PADRÃO ............................................................................................................ 13
2.4 FORMA CANÔNICA ........................................................................................................ 15
3 MÉTODO SIMPLEX .......................................................................................................... 17
3.1 ALGORITMO SIMPLEX TABULAR .............................................................................. 17
3.1.1 Síntese do método tabular Simplex .............................................................................. 18
3.1.2 Variável que entra na base ........................................................................................... 19
3.1.3 Variável que sai da base ................................................................................................ 19
3.1.4 Nova Solução Básica ...................................................................................................... 20
3.2 TÉCNICAS PARA DESEMPATE .................................................................................... 21
3.2.1 Coluna pivô .................................................................................................................... 22
3.2.2 Linha pivô....................................................................................................................... 22
3.3 SOLUÇÕES ÓTIMAS MÚLTIPLAS ................................................................................ 22
3.4 ADAPTAÇÕES DE CASOS ESPECÍFICOS .................................................................... 23
3.4.1 Método Big-M ................................................................................................................ 23
4 MÉTODO SIMPLEX REVISADO.................................................................................... 26
4.1 DEFINIÇÕES E TABELA ................................................................................................. 26
4.2 ALGORITMO .................................................................................................................... 27
5 DUALIDADE NA PROGRAMAÇÃO LINEAR .............................................................. 31
5.1 TEOREMA FUNDAMENTAL DA DUALIDADE .......................................................... 31
5.2 PROPRIEDADE DA FOLGA COMPLEMENTAR ......................................................... 32
5.3 APLICAÇÕES DO PROBLEMA DUAL .......................................................................... 34
5.4 MÉTODO DUAL SIMPLEX ............................................................................................ 34
5.4.1 Algoritmo Dual Simplex ................................................................................................ 34
6 CONCLUSÃO..................................................................................................................... 38
REFERÊNCIAS ..................................................................................................................... 39
8

1 INTRODUÇÃO

A tomada de decisões é uma necessidade constante no cotidiano. Em grandes


corporações, uma decisão para um determinada ocasião, como por exemplo, a alocação de
recursos, pode ser um diferencial na obtenção de resultados positivos. A Pesquisa Operacional,
e em consequência a Programação Linear, são campos de estudo originados da necessidade de
se analisar a gestão de uma organização, cientificamente.
A Programação Linear foi criada por Dantzig (1948) como forma de um planejamento
automatizado para distribuição de recursos, logística e alocacção de tempo para o exército dos
Estados Unidos. Em sua essência, a Programação Linear tem como foco a otimização de
sistemas, através da maximização ou minimização de determinados problemas
matematicamente formulados (Hillier; Leiberman, 2006).
Em 1949, Dantizg publicou um estudo que descrevia o Método Simplex para resolução
de problemas de Programação Linear. Esse método é amplamente utilizado devido a sua
capacidade de gerir problemas complexos de tomada de decisão, bem como a habilidade de
produzir decisões aceitáveis em um curto período de tempo (Hillier; Leiberman, 2006).
Este estudo tem como objetivo fornecer o conhecimento necessário sobre os principais
conceitos e formas de resolução de problemas de Programação Linear, atuando como forma de
aprendizado na resolução e construção de problemas através dos algoritmos disponíveis
atualmente.
Ao início são expostas considerações essenciais para a formulação de problemas de
Programação Linear. Em seguida são apresentados suas formas de resolução através do método
gráfico, Simplex e Simplex duas fases Big-M. Por fim, os conceitos de Dualidade sobre
problemas de programação linear e suas aplicações.
9

2 TEORIA DE PROGRAMAÇÃO LINEAR

2.1 CONCEITOS BÁSICOS

A Programação Linear tem como objetivo a realização de operações com finalidade de


encontrar a melhor solução e auxiliar na tomada de decisões de problemas que sejam
representados por modelos com expressões lineares. Essa abordagem tem como escopo a
maximização ou minimização de uma função linear, chamada Função Objetivo, que
comumente é dada por

𝑧 = 𝑐1 𝑥1 + 𝑐2 𝑥2 + ⋯ + 𝑐𝑛 𝑥𝑛 ,

no qual as variáveis 𝑥𝑛 são chamadas de variáveis de decisão.


Para determinar quais os valores adequados que as variáveis de decisão devem assumir,
é necessário seguir um conjunto de equações ou inequações também lineares, que determinam
regras que o modelo deve adotar. Esse conjunto de expressões são conhecidos por Restrições
do Modelo e seguem a seguinte estrutura:

𝑎11 𝑥11 + 𝑎12 𝑥12 + ⋯ + 𝑐1𝑛 𝑥1𝑛 ≤ 𝑏1


𝑎21 𝑥21 + 𝑎22 𝑥22 + ⋯ + 𝑐2𝑛 𝑥2𝑛 ≤ 𝑏2
⋮ ⋮ ⋮ ⋮ ⋮
𝑎𝑚1 𝑥𝑚1 + 𝑎𝑚2 𝑥𝑚2 + ⋯ + 𝑐𝑚𝑛 𝑥𝑚𝑛 ≤ 𝑏𝑚
𝑥1 , 𝑥2 , … , 𝑥𝑛 ≥ 0.

As Restrições do Modelo são responsáveis pela delimitação de uma área de solução


conhecida por área factível ou área viável. A melhor solução, conhecida por solução ótima, é
encontrada dentro dessa região podendo maximizar ou minimizar a função objetivo.
Bazaraa, Jarvis e Sherali (2010) definem que um problema de Programação Linear deve
ser criado à partir de uma análise que demanda uma série de passos, são eles:
 Formulação do problema: Consiste em uma avaliação do problema real, no qual
deve-se considerar fatores limitantes, possíveis variações, constantes e restrições. É
nessa etapa que ocorre a coleta de dados e identifica-se o problema a ser estudado;
10

 Construção do modelo matemático: Representa a fase no qual o problema


matemático é idealizado por meio da análise feita durante o passo anterior. A
formulação deve ser minuciosamente construída para que a mesma gere um modelo
matemático que representa o problema;
 Obtenção de uma solução: Deve ser escolhida qual a abordagem de resolução dar ao
modelo. É possível que se busque múltiplas soluções ótimas ou apenas uma, e para
ambos os casos, deve-se escolher heurísticas ou técnicas que melhor se adequem de
forma à se obter o mínimo decréscimo de qualidade;
 Teste do modelo: Nesse passo são feitas análises de confiabilidade e se necessário,
reestruturações através da adição ou simplificação de expressões, para que o modelo
em questão se torne confiável em diferentes situações. Para uma maior credibilidade
dos resultados é imprescindível também a análise de resultados esperados com
resultados já previstos;
 Implementação: É necessário que o modelo seja constantemente atualizado com
possíveis novos parâmetros ou restrições se necessário, bem como o mesmo seja
reavaliado constantemente para que não se torne obsoleto.

2.2 SOLUÇÃO GRÁFICA

Dentre métodos de solução existentes para problemas de Programação Linear, é


extensamente abordado por autores como Bazaraa, Jarvis e Sherali (2010) e Kolman e Beck
(1995) a possibilidade de resolver graficamente problemas com um pequeno número de
variáveis de decisão. Como exemplo, considere o problema (I).

𝑀𝑎𝑥𝑖𝑚𝑖𝑧𝑎𝑟 𝑧 = 4𝑥1 + 3𝑥2 (I)


2𝑥1 + 𝑥2 ≤ 1000 (1)
𝑥1 + 𝑥2 ≤ 800 (2)
𝑠𝑢𝑗𝑒𝑖𝑡𝑜 𝑎: 𝑥1 ≤ 400 (3)
𝑥2 ≤ 700 (4)
{ 𝑥𝑗 ≥ 0, 𝑗 = 1,2 ,

a existência de duas variáveis de decisão possibilita a representação gráfica em um espaço de


duas dimensões, no qual 𝑥1 pode assumir o eixo das abcissas e 𝑥2 as ordenadas.
11

Essa categoria de solução de problemas, pode atingir a solução ótima, seguindo os


seguintes passos:
1) Encontrar a região factível de solução através da representação das respectivas retas
das restrições, obedecendo os pontos que satisfazem a restrição.
2) Através da verificação do ponto (0,0), para cada restrição, é possível analisar
visualmente em qual lado da reta a solução estará, possibilitando assim uma
delimitação global utilizando todas as restrições, deixando visível a região factível.
a. É possível que exista problemas que a área factível não existe, sendo então
considerado um problema impossível, ou infactível.
3) Uma série de retas paralelas podem ser geradas através da representação da função
objetivo. A solução ótima encontra-se no ponto que está associado ao valor que
melhor otimiza o problema e tangencia a região factível.
A Figura 1 exibe a representação gráfica de todas as restrições referentes ao modelo.

Figura 1 – Gráfico da representação das restrições do problema (I).

Fonte: Autoria própria.

Considerando as restrições para a percepção da região factível do problema, conforme


indicado no passo 2, é criado então o gráfico apresentado na Figura 2.
12

Figura 2 – Região factível do problema (I) em destaque.

Fonte: Autoria própria.

A Figura 3 apresenta as retas referentes a função objetivo, gerando um gradiente que


permite que seja visualizada possíveis soluções do problema.

Figura 3 – Retas com a função objetivo destacadas no gráfico.

Fonte: Autoria própria.


13

É presumível por meio da análise da tendência das retas que o ponto que leva a melhor
solução do problema encontra-se na interseção entre as retas das equações (1) e (2), gerando o
respectivo sistema:

2𝑥1 + 𝑥2 ≤ 1000
{
𝑥1 + 𝑥2 ≤ 800.

A resolução do sistema gerado por essas duas equações levam ao ponto (200, 600).
Substituindo tais valores na função objetivo, obtem-se 𝑧 = 2600. Que é a solução ótima.

2.3 FORMA PADRÃO

Para que se utilize um algoritmo de solução como o Simplex ou Simplex revisado,


comumente utilizado em problemas práticos, é recomendável que o problema tratado seja
transformado em uma forma padrão. O modelo de minimização encontra-se na forma padrão
na seguinte formulação, de acordo com Marins (2011):

𝑀𝑖𝑛 𝑧 = ∑ 𝑐𝑗 𝑥𝑗
𝑗=1
𝑛

∑ 𝑎𝑖𝑗 𝑥𝑗 = 𝑏𝑖 , 𝑏𝑖 ≥ 0, 𝑖 = 1,2, … , 𝑚
𝑠𝑢𝑗𝑒𝑖𝑡𝑜 𝑎: {
𝑗=1
𝑥𝑗 ≥ 0, 𝑗 = 1,2, … , 𝑛.

Ou no formato matricial

𝑀𝑖𝑛 𝑍 = ∑ 𝐶′ 𝑋𝑗
𝑗=1

𝐴𝑋 = 𝑏 𝑐𝑜𝑚 𝑏 ≥ 0
𝑠𝑢𝑗𝑒𝑖𝑡𝑜 𝑎: {
𝑋 ≥ 0.

Para a redução do modelo à forma padrão, é necessário caso ocorra alguma expressão
com desigualdades, a adição de uma variável auxiliar em cada uma das inequações, para que a
14

mesma torne-se uma igualdade. Tal variável é conhecida como variável de folga para restrições
com sinal ≤, ou de excesso, onde assume um valor negativo para restrições com sinal ≥ .
Considerando o sistema com as equações (5) e (6):

2𝑥 + 𝑥2 ≤ 4 (5)
{ 1
−3𝑥1 + 2𝑥2 ≥ 5. (6)

A inserção de uma variável de folga 𝑥3 em (5) e a de excesso −𝑥4 , na equação (6)


produz o seguinte sistema:

2𝑥1 + 𝑥2 + 𝑥3 = 4
{−3𝑥1 + 2𝑥2 − 𝑥4 = 5
𝑥1,2,3,4 ≥ 0.

É necessário também a adaptação de modelos que possuem variáveis que


obrigatoriamente assumem valores menores que 0, ou que contém variáveis livres. Elas também
demandam uma manipulação no sistema para que possam assumir valores e levar o problema
à forma padrão.
Considerando 𝑥𝑘 uma variável livre, é possível representa-la à partir de uma expressão
já na forma de igualdade, colocando-a em função das outras variáveis e substituindo a equação
encontrada nas demais expressões do modelo.
Caso uma variável 𝑥𝑛 ≤ 0 é necessário sua substituição pela seu valor simétrico

𝑥′𝑛 = −𝑥𝑡 ≥ 0 ,

em todas as equações.
Como exemplo, considere o seguinte problema:

𝑀𝑎𝑥𝑖𝑚𝑖𝑧𝑎𝑟 𝑧 = 2𝑥1 − 𝑥2 + 𝑥3
𝑥1 + 2𝑥2 − 𝑥3 ≥ 5
4𝑥1 + 𝑥3 ≤ 0
𝑠𝑢𝑗𝑒𝑖𝑡𝑜 𝑎: −𝑥1 − 2𝑥3 ≥ −7
𝑥1 + 𝑥2 = 8
{ 𝑥1 ≥ 0, 𝑥2 ≤ 0, 𝑥3 𝑙𝑖𝑣𝑟𝑒
15

Inicialmente, é necessário transformar as inequações em equações, e inibir a existência


de qualquer 𝑏𝑖 negativo. O problema assume então o seguinte formato:

𝑀𝑎𝑥𝑖𝑚𝑖𝑧𝑎𝑟 𝑧 = 2𝑥1 − 𝑥2 + 𝑥3 (II)


𝑥1 + 2𝑥2 − 𝑥3 − 𝑥4 = 5 (7)
4𝑥1 + 𝑥3 + 𝑥5 = 0 (8)
𝑠𝑢𝑗𝑒𝑖𝑡𝑜 𝑎: 𝑥1 + 2𝑥3 + 𝑥6 = 7 (9)
𝑥1 + 𝑥2 = 8 (10)
{ 𝑥1,4,5,6 ≥ 0, 𝑥2 ≤ 0, 𝑥3 𝑙𝑖𝑣𝑟𝑒.

Como a variável 𝑥3 é livre, é então isolada na equação (9) onde se obtém,

𝑥3 = −4𝑥1 − 𝑥5 .

Substituindo essa equação em (7), (8), (10) e na função objetivo e também considerando
𝑥2 = −𝑥2 onde for admissível, o problema então assume a forma padrão procurada.

𝑀𝑎𝑥𝑖𝑚𝑖𝑧𝑎𝑟 𝑧 = −2𝑥1 − 𝑥2 − 𝑥5
5𝑥1 + 2𝑥2 − 𝑥4 − 𝑥5 = 5
−7𝑥1 − 2𝑥3 + 𝑥6 = 7
𝑠𝑢𝑗𝑒𝑖𝑡𝑜 𝑎: { 𝑥 + 𝑥 = 8
1 2
𝑥𝑗 ≥ 0 𝑗 = 1,2, … ,6.

2.4 FORMA CANÔNICA

Considere o seguinte sistema de equações:

𝑥1 − 2𝑥2 + 𝑥3 − 4𝑥4 + 2𝑥5 = 2 (11)


{
𝑥1 − 𝑥2 − 𝑥3 − 3𝑥4 − 𝑥5 = 4. (12)

O conjunto solução do sistema são os valores de 𝑥1 , 𝑥2 , 𝑥3 , 𝑥4 e 𝑥5 que satisfazem


ambas as equações do sistema simultaneamente. Sendo considerado um Sistema Equivalente.
Sistemas equivalentes podem ser obtidos por meio de um processo matemático chamado
Método de Eliminação de Gauss Jordan. Esse processo se baseia na multiplicação e divisão de
uma das equações de um sistema por um determinado número que ao se somar a combinação
linear em outra equação, resulta em termos eliminados.
16

O Método de Eliminação de Gauss Jordan no sistema contendo as equações (11) e (12)


é iniciado com a multiplicação de (11) por -1 seguido da adição a (12), obtendo assim, o
seguinte sistema equivalente:

𝑥1 − 2𝑥2 + 𝑥3 − 4𝑥4 + 2𝑥5 = 2 (13)


{
𝑥2 − 2𝑥3 + 𝑥4 − 3𝑥5 = 2. (14)

Ainda é possível eliminar 𝑥2 de (13) Multiplicando (14) por 2 e somando-a na equação


em questão, o que resulta em:

𝑥1 − 3𝑥3 − 2𝑥4 − 4𝑥5 = 6


{ (II)
𝑥2 − 2𝑥3 + 𝑥4 − 3𝑥5 = 2.

Como não é mais possível reduzir a quantidade de variáveis, é então dito que essa é a
Forma Canônica do sistema original.
Considerando o sistema em sua forma canônica, é possível então realizar as seguintes
definições.
 É considerada uma variável básica a que possui o coeficiente 1 em uma das
equações, e assume um valor nulo nas demais. Caso essa condição for falsa, essa
variável então é considerada uma variável não básica. O sistema canônico (II)
discutido, contém 𝑥1 e 𝑥2 como variáveis básicas e 𝑥3 , 𝑥4 e 𝑥5 como não
básicas.
 A solução básica de um sistema em sua forma canônica é dada fazendo com que
todas as variáveis não básicas assumam um valor nulo. Para o sistema (II)
𝑥3 = 𝑥4 = 𝑥5 = 0, 𝑥1 = 6 e 𝑥2 = 2 torna a solução básica.
 Quando todas as variáveis assumem valores positivos, é dito que essa solução é
uma solução básica viável. Para o sistema (II) dado, a solução básica é uma
solução básica viável.
17

3 MÉTODO SIMPLEX

É um procedimento iterativo algébrico desenvolvido por George B. Dantzig em 1947.


Tem por objetivo prosseguir à partir de uma dada solução básica viável, presente em um ponto
extremo, para um outro ponto adjacente que busca acrescer a função objetivo, ou no pior dos
casos mantê-la com o mesmo valor. O algoritmo é executado até que se encontre uma solução
ótima ou conclua-se que o problema não possui uma solução ótima finita (Kolman; Beck, 1995).
O algoritmo baseia-se em dois passos principais de acordo com Kolman e Beck (1995):
1) Verificar se uma determinada solução básica viável é uma solução ótima;
2) Encontrar uma solução básica viável com mesmo valor ou um valor maior para a
função objetivo.

3.1 ALGORITMO SIMPLEX TABULAR

O método Simplex é utilizado no formato de tabela, que representa uma forma sucinta
e organizada para a resolução de problemas. Para a criação da tabela, é necessário a
identificação dos coeficientes das variáveis e as constantes do lado direito da equação.
A tabela chamada Tabela Simplex, tem o objetivo de simplificadamente exibir de modo
compacto o sistema de equações que leva a uma solução básica viável. Diversos autores como
Kolman e Beck (1995), Bazaraa, Jarvis e Sherali (2010) ou Hillier e Leiberman (2006)
apresentam ligeiras variações na construção da Tabela Simplex, entretanto não apresentam
alterações na realização do algoritmo para a solução de problemas. Para este estudo, adotou-se
o modelo de Bazaraa, Jarvis e Sherali (2010), que está apresentada da Tabela 1.

Tabela 1 - Formato da tabela no método Simplex tabular.

Z 𝑥1 𝑥2 … 𝑥𝑛 𝑥𝑛+1 𝑥𝑛+2 … 𝑥𝑛+𝑚 B


1 −𝑐1 −𝑐2 ... −𝑐𝑛 0 0 … 0 0
0 𝑎11 𝑎12 … 𝑎1𝑛 1 0 … 0 𝑏1
0 𝑎21 𝑎22 … 𝑎2𝑛 0 1 … 0 𝑏2
⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋱ ⋮ ⋮
0 𝑎𝑚 𝑎𝑚2 … 𝑎𝑚𝑛 0 0 … 1 𝑏𝑚
Fonte: Bazaraa, Jarvis e Sherali (2010).
18

3.1.1 Síntese do método tabular Simplex

Será seguido os passos de resolução apresentado por Hillier e Leiberman (2006),


considerando o seguinte exemplo:

𝑀𝑎𝑥𝑖𝑚𝑖𝑧𝑎𝑟 𝑧 = 2𝑥1 + 3𝑥2 + 𝑥3


𝑥1 + 𝑥2 + 𝑥3 ≤ 40
2𝑥1 + 𝑥2 − 𝑥3 ≤ 20
𝑠𝑢𝑗𝑒𝑖𝑡𝑜 𝑎: { 3𝑥 + 2𝑥 − 𝑥 ≤ 30
1 2 3
𝑥𝑗 ≥ 0, 𝑗 = 1,2,3.

 Inicialização: A adição das variáveis de folga e colocando z em função das outras


variáveis na função objetivo faz com que o problema assuma a seguinte forma:

𝑀𝑎𝑥𝑖𝑚𝑖𝑧𝑎𝑟 𝑧 − 2𝑥1 − 3𝑥2 − 𝑥3 = 0 (IV)


𝑥1 + 𝑥2 + 𝑥3 + 𝑥4 = 40
2𝑥1 + 𝑥2 − 𝑥3 + 𝑥5 = 20
𝑠𝑢𝑗𝑒𝑖𝑡𝑜 𝑎: { 3𝑥 + 2𝑥 − 𝑥 + 𝑥 = 30
1 2 3 6
𝑥𝑗 ≥ 0, 𝑗 = 1,2, … ,6

O problema (IV), que encontra-se na forma padrão, ou seja, é um problema de


maximização com 𝑏𝑖 positivos e variáveis somente podendo assumir valores positivos, permite
construir a Tabela Simplex utilizando o modelo anteriormente apresentado. A Tabela 2
representa o problema.

Tabela 2 – Problema (IV) no formato tabular.

Z 𝑥1 𝑥2 𝑥3 𝑥4 𝑥5 𝑥6 B
1 -2 -3 -1 0 0 0 0
0 1 1 1 1 0 0 40
0 2 1 -1 0 1 0 20
0 3 2 1 0 0 1 30
Fonte: Autoria própria.

Inicialmente é possível notar que as variáveis 𝑥1 e 𝑥2 são variáveis não básicas,


assumindo portanto valores nulos, fazendo com que 𝑥4 = 40, 𝑥5 = 20 e 𝑥6 = 30 se tornem
básicas.
19

 Teste de otimalidade: Uma solução básica viável é considerada ótima se todos os


coeficientes provenientes da linha que representa a função objetivo forem todos
positivos. Se essa premissa for verdadeira, o algoritmo deve ser interrompido, pois
sua solução ótima foi encontrada, caso contrário, realize o procedimento novamente
para que se obtenha uma nova solução.
Para o presente exemplo, 𝑐1, 𝑐2 e 𝑐3 são negativos, sendo necessário ir ao próximo passo.

3.1.2 Variável que entra na base

O primeiro passo para a criação de uma nova solução básica é por meio da escolha da
variável que entra na base. Para tal, é escolhido o coeficiente negativo da função objetivo que
possui o maior valor absoluto. A coluna no qual ele pertence será selecionada e sua respectiva
variável será considerada a variável que entrará na base e pode ser chamada de coluna pivô.
O caso atual seleciona 𝑥2 , conforme exibido na Tabela 3.

Tabela 3 – Problema (IV) com a variável que entra na base em destaque.

Z 𝑥1 𝑥2 𝑥3 𝑥4 𝑥5 𝑥6 B
1 -2 -3 -1 0 0 0 0
0 1 1 1 1 0 0 40
0 2 1 -1 0 1 0 20
0 3 2 1 0 0 1 30
Fonte: Autoria própria.

3.1.3 Variável que sai da base

Seguido da escolha feita no passo anterior, é necessário realizar o teste da razão mínima
para seleção da variável que sairá da base. O procedimento é efetivado através da divisão do
termo da coluna que contém a constante de cada equação, pelo coeficiente da coluna
selecionada no passo anterior, linha a linha. A menor razão, estritamente positiva, terá sua
respectiva linha selecionada e será representada pela variável básica nela contida e pode ser
chamada de linha pivô.
Para o exemplo, a segunda linha tem-se 40, a terceira, 20 e por fim a quarta com 30/2 =
15. Logo, seleciona-se a linha 4, de 𝑥6 conforme apresentado na Tabela 4.
20

Tabela 4 – Problema (IV) com itens selecionados na iteração 1.

Z 𝑥1 𝑥2 𝑥3 𝑥4 𝑥5 𝑥6 B
1 -2 -3 -1 0 0 0 0
0 1 1 1 1 0 0 40
0 2 1 -1 0 1 0 20
0 3 2 1 0 0 1 30
Fonte: Autoria própria.

O número na interseção da coluna com a linha selecionadas é considerado o Número


Pivô.

3.1.4 Nova Solução Básica

Através de operações elementares na linhas, uma nova Tabela Simplex será construída.
São necessárias a realização 2 operações:
1) A linha pivô deve ser inteiramente dividida pelo número pivô.
2) Multiplique a linha resultante do passo 1 pelo inverso do número da coluna pivô
referente a linha em questão. Em seguida some o resultado dessas duas operações,
substituindo a linha antiga.
A execução dos dois passos anteriores, chamados de pivoteamento, formam a Tabela 5.

Tabela 5 – Tabela Simplex após o pivoteamento na iteração 1.

Z 𝑥1 𝑥2 𝑥3 𝑥4 𝑥5 𝑥6 B
1 2,5 0 -2,5 0 0 1,5 45
0 -0,5 0 1,5 1 0 -0,5 25
0 0,5 0 -0,5 0 1 -0,5 5
0 1,5 1 -0,5 0 0 0,5 15
Fonte: Autoria própria.

O processo segue-se do teste de otimalidade, que indica 𝑥1 , 𝑥3 e 𝑥6 como variáveis não


básicas, e 𝑥2 = 15, 𝑥4 = 25, e 𝑥5 = 5, com 𝑧 = 45. Contudo, 𝑥3 ainda apresenta um valor
negativo, o que demanda que o processo seja refeito.
21

São selecionados então uma nova linha e uma nova coluna pivô da Tabela 6,
apresentadas na Tabela 6.

Tabela 6 – Tabela Simplex do problema (IV) com seleção na iteração 2.

Z 𝑥1 𝑥2 𝑥3 𝑥4 𝑥5 𝑥6 B
1 2,5 0 -2,5 0 0 1,5 45
0 -0,5 0 1,5 1 0 -0,5 25
0 0,5 0 -0,5 0 1 -0,5 5
0 1,5 1 -0,5 0 0 0,5 15
Fonte: Autoria própria.

A realização das operações fundamentais para procura de uma nova solução básica
viável sobre as linhas produzem a Tabela 7.

Tabela 7 – Problema (IV) após o pivoteamento na iteração 2.

Z 𝑥1 𝑥2 𝑥3 𝑥4 𝑥5 𝑥6 B
1 1,65 0 0 1,67 0 0,65 86,67
0 -0,34 0 1 0,67 0 -0,64 16,67
0 0,33 0 0 0,35 1 -0,67 13,33
0 1,3 1 0 0,34 0 0,33 23,35
Fonte: Autoria própria.

As variáveis 𝑥1 , 𝑥4 e 𝑥6 se tornam não básicas enquanto 𝑥2 = 23,35, 𝑥3 = 16,67 e 𝑥5 =


13,33 são basicas com um valor de 𝑧 = 86,67. Como não existe nenhum número negativo na
linha da função objetivo, o algoritmo deve parar, pois a solução ótima foi encontrada.

3.2 TÉCNICAS PARA DESEMPATE

Durante a escolha das variáveis que entram ou que saem da base, em alguns casos os
parâmetros definidos pelo algoritmo podem levar a empates, ocasionando diversas escolhas
diferentes.
22

3.2.1 Coluna pivô

Quando mais de uma variável possui valores absolutos iguais, a escolha é feita
arbitrariamente, pois a solução ótima será alcançada independentemente da opção. Hillier e
Leiberman (2006) mencionam que não existe uma forma conveniente de se escolher qual das
alternativas levarão primeiro à solução ótima do problema.

3.2.2 Linha pivô

A sequência de eventos encadeados à partir da escolha da linha pivô, faz com sua
escolha tenha uma importância que de acordo com Hillier e Leiberman (2006) é mais teórica
do que prática.
Todas as variáveis básicas com o mesmo valor chegam a 0 ao mesmo tempo conforme
a variável que entra tem seu valor acrescido. Logo, as alternativas não escolhidas também terão
um valor nulo na nova solução básica viável. As variáveis básicas que vão à 0, assim como a
solução básica viável são classificadas com o termo Degeneradas.
Devido à essa característica, se uma das linhas pivô se manter com suas variáveis básicas
degeneradas, a variável que entra também terá seu valor mantido em 0 para que não torne
negativo a variável que sai. Essa ação torna o valor de 𝑧 inalterado, podendo levar o algoritmo
a um caso de repetição infinita.
Um loop infinito pode ocorrer em problemas práticos, mas em sua essência é um
problema puramente teórico que pode ser desfeito apenas alterando a escolha da variável que
sai da base.

3.3 SOLUÇÕES ÓTIMAS MÚLTIPLAS

O fato de um problema de Programação Linear poder ter mais de uma solução, pode
levar a casos onde mais de um resultado ótimo pode ser encontrado. O método Simplex, ao ser
finalizado, consegue indicar se outras soluções ótimas se aplicam.
Se existe algum 𝑐𝑛 = 0 associado à alguma variável não básica 𝑥𝑛 , então o modelo em
questão possui uma outra solução ótima viável onde 𝑥𝑛 é uma variável básica.
23

3.4 ADAPTAÇÕES DE CASOS ESPECÍFICOS

Em casos que o modelo não segue a forma padrão do resolvido pelo método Simplex é
possível que se utilize processos para que o mesmo se adeque e possa ser resolvido
normalmente. Essas adaptações normalmente exigem que a tabela Simplex passe por um
processo de solução em duas fases, que podem ser feitos através do Método Big-M.

3.4.1 Método Big-M

Esse método é aplicado em restrições que não respeitam o modelo padrão através da
utilização de restrições funcionais, possuindo portanto o seguinte formato:

∑ 𝑎𝑖𝑗 𝑥𝑗 ≥ 𝑏𝑖 , 𝑏𝑖 ≥ 0, 𝑖 = 1,2, … , 𝑚
𝑗=1

𝑥𝑗 ≥ 0.

O método Big-M se baseia em uma manipulação no formato do modelo, criando um


problema artificial cuja solução ótima é a mesma do problema original.
São introduzidas variáveis artificiais 𝑎𝑛 não negativas nas respectivas restrições como
se fossem variáveis de folga. As variáveis criadas necessitam de um custo extremamente alto,
representado pelo coeficiente 𝑀 na função objetivo.
O método Simplex para o problema artificial é executado normalmente, contudo, deve-
se levar em consideração a necessidade de todos os 𝑎𝑛 se tornarem variáveis não básicas,
portanto, assumindo valores nulos.
Em seguida, as colunas que representam os valores de 𝑎𝑛 devem ser eliminadas da tabela
Simplex e o processo continuado até que se encontre uma solução ótima. Caso a solução ótima
encontrada contenha uma variável artificial com valor diferente de 0, o problema original é
infactível. Considere o seguinte exemplo:

𝑀𝑎𝑥𝑖𝑚𝑖𝑧𝑎𝑟 𝑧 = 2𝑥1 + 3𝑥2


𝑥1 + 𝑥2 ≥ 10 (15)
𝑠𝑢𝑗𝑒𝑖𝑡𝑜 𝑎: { 2𝑥1 + 𝑥2 ≤ 16 (16)
𝑥𝑗 ≥ 0, 𝑗 = 1,2
24

Passando para a forma padrão de resolução, com a inserção da variável artificial 𝑎 na


equação (16) e na função objetivo acompanhada do coeficiente 𝑀. O modelo então assume o
seguinte formato:

𝑀𝑎𝑥𝑖𝑚𝑖𝑧𝑎𝑟 𝑧 − 2𝑥1 − 3𝑥2 + 𝑀𝑎 = 0 (V)


𝑥1 + 𝑥2 + 𝑎 − 𝑥3 = 10
2𝑥 + 𝑥2 + 𝑥4 = 16
𝑠𝑢𝑗𝑒𝑖𝑡𝑜 𝑎: { 1
𝑥𝑗 ≥ 0, 𝑗 = 1,2
𝑎≥0

A Tabela 8 representa o problema, já com as devidas colunas selecionadas para o início


da resolução.

Tabela 8 – Tabela inicial do problema (V).

Z 𝑥1 𝑥2 𝑥3 𝑥4 𝑎 𝑏
1 -2 -3 0 0 𝑀1 0
0 1 1 -1 0 1 10
0 2 1 0 1 0 16
Fonte: Autoria própria.

Conforme os conceitos da necessidade de eliminação das variáveis artificiais, a Tabela


8 é então pivoteada, resultando na Tabela 9.

Tabela 9 – Problema (V) após pivoteamento na iteração 1.

Z 𝑥1 𝑥2 𝑥3 𝑥4 𝑎 𝑏
1 1 0 -3 0 𝑀1 30
0 1 1 -1 0 1 10
0 1 0 1 1 -1 6
Fonte: Autoria própria.

É possível perceber que a variável artificial 𝑎 está assumindo um estado de variável não
básica, junto com 𝑥1 e 𝑥3 . Logo, a coluna contendo 𝑎 pode ser eliminada do problema, e o
pivoteamento realizado, resultando na Tabela 10.
25

Tabela 10 – Problema (V) após o pivoteamento e eliminação de 𝑎.

Z 𝑥1 𝑥2 𝑥3 𝑥4 𝑏
1 4 0 0 3 48
0 2 1 0 1 16
0 1 0 1 1 6
Fonte: Autoria própria.

Como não existem valores negativos de 𝑐𝑛 , o problema então encontra-se em seu ótimo.
Com os seguintes valores: 𝑥1 , = 𝑥4 = 0, 𝑥2 = 16, 𝑥3 = 6, 𝑧 = 48.
26

4 MÉTODO SIMPLEX REVISADO

Conforme pôde ser visualizado nas seções anteriores o método Simplex executa uma
série de operações algébricas que nem sempre são necessárias para a tomada de decisão, seja
na iteração atual, ou nas seguintes. Essas operações, quando executadas em problemas reais,
que normalmente possuem uma grande quantidade de variáveis de decisão, podem necessitar
de um esforço computacional desnecessário (Hillier; Leiberman, 2006).
Tal percepção, levou ao desenvolvimento de uma revisão no método Simplex,
adaptando-o para executar somente as operações necessárias mas mantendo a essência do
Simplex original.

4.1 DEFINIÇÕES E TABELA

Considerando um problema Simplex em sua forma padrão, no formato matricial, pode-


se definir os seguintes conjuntos:
𝑥𝑏 : vetor com as variáveis básicas;
𝑥𝑛 : vetor das variáveis não básicas;
𝑐: vetor dos custos de todas as variáveis;
𝑐𝑛 : vetor dos custos das variáveis básicas;
𝑐𝑏 : vetor dos custos das variáveis não básicas;
𝐵 : Matriz dos coeficientes das restrições das variáveis básicas;
𝑎𝑘 : coluna da variável não básica do problema original.
O quadro Simplex revisado, pode ser dado pela tabela seguinte:

Tabela 11 – Tabela do método Simplex revisado.

Base inversa b
𝑤 𝑐𝑏 𝑏̅
𝐵 −1 𝑏̅
Fonte: Bazaraa, Jarvis e Sherali (2010).

Nos quais,
𝑤 = 𝑐𝑏 𝐵−1,
𝑏̅ = 𝐵 −1 𝑏.
27

Para o pivoteamento, é adicionada uma coluna temporária contendo a variável não


básica que irá entrar na base. Para tal, a tabela recebe a coluna contendo os valores dos
coeficientes da respectiva variável, assumindo uma tabela com o seguinte formato:

Tabela 12 – Tabela para pivoteamento do método Simplex revisado.

Base inversa B 𝑥𝑘
𝑤 𝑐𝑏 𝑏̅ 𝑧𝑘 − 𝑐𝑘
𝐵 −1 𝑏̅ 𝑦𝑘
Fonte: Bazaraa, Jarvis e Sherali (2010).

Onde
𝑦𝑘 = 𝑎𝑘 𝐵 −1.

4.2 ALGORITMO

O algoritmo Simplex revisado é apresentado por Bazaraa, Jarvis e Sherali (2010) como
contendo os seguintes passos:
1) Montar a tabela através da definição dos conjuntos iniciais.
2) Calcular os custos relativos das variáveis não básicas dada pela equação:

𝑐̅ = 𝑤𝐴 − 𝑐𝑛 .

3) Se todas as variáveis de 𝑐̅ forem ≥ 0, pare. A solução ótima foi encontrada.


4) Usando os mesmos critérios do Simplex original, escolha a variável que entra na
base.
5) Atualizar a coluna dos coeficientes da variável não básica 𝑥𝑘 que entrará na base,
por meio do cálculo de 𝑦𝑘 .
6) Acople a coluna temporária de 𝑥𝑘 na tabela.
7) Escolhe a linha que sai da base utilizando o mesmo critério do método Simplex
original
8) Realize o pivoteamento, atualize as variáveis básicas. Retorne ao passo 2.
Considere o seguinte exemplo:
28

𝑀𝑖𝑛𝑖𝑚𝑖𝑧𝑎𝑟 𝑧 = −𝑥1 − 3𝑥2


𝑥1 + 𝑥2 ≤ 6
𝑠𝑢𝑗𝑒𝑖𝑡𝑜 𝑎: { 1 + 2𝑥2 ≤ 8
−𝑥
𝑥𝑗 ≥ 0, 𝑗 = 1,2

Na forma padrão:

𝑀𝑖𝑛𝑖𝑚𝑖𝑧𝑎𝑟 𝑧 = −𝑥1 − 3𝑥2 (VI)


𝑥1 + 𝑥2 + 𝑥3 = 6
𝑠𝑢𝑗𝑒𝑖𝑡𝑜 𝑎: { −𝑥1 + 2𝑥2 + 𝑥4 = 8
𝑥𝑗 ≥ 0, 𝑗 = 1,2,3,4

Os conjuntos são respectivamente:

𝑐 = (−1 − 3 0 0),
𝑐𝑛 = (−1 − 3),
𝑐𝑏 = (0 0),
6
𝑏 = ( ),
8
1 1 1 0
𝐴= ( ),
−1 2 0 1
1 0
B=( ),
0 1
𝑥𝑏 = (𝑥3 𝑥4 ),
𝑥𝑛 = (𝑥1 𝑥2 ).

A construção da tabela inicial no passo 1 se dá por:

𝐵 −1 = 𝐼,
𝑤 = 𝑐𝑏 𝑥3 = (0 0)𝐼 = (0 0),
𝑏̅ = 𝐵 −1 𝑏 = 𝐼𝑏 = 𝑏.

Gerando a Tabela 13, apresentada a seguir.


29

Tabela 13 – Tabela inicial para o problema (VI).

𝐵 −1 𝑏
Z 0 0 0
𝑥3 1 0 6
𝑥4 0 1 8
Fonte: Autoria própria.

2 – Calculando o custo relativo: 𝑐̅

𝑐̅ = (0 0)𝐴 − 𝑐 = −𝑐 = (1 3 0 0).

Com isso, 𝑥2 entra na base. É necessário então construir o vetor 𝑦𝑘 .

1 1
𝑦𝑘 = 𝑎𝑘 𝐵 −1 = ( ) 𝐼 = ( ).
2 2

Acoplando a coluna para o pivoteamento, tem-se:

Tabela 14 – Problema (V) na primeira iteração com 𝑥2 acoplado.

𝐵 −1 𝑏 𝑥2
Z 0 0 0 3
𝑥3 1 0 6 1
𝑥4 0 1 8 2
Fonte: Autoria própria.

Com isso, verifica-se que 𝑥4 sai da base, é então possível realizar o pivoteamento,
formando a Tabela 15.

Tabela 15 – Problema (VI) após pivoteamento da primeira iteração.

𝐵 −1 𝑏
Z 0 -1,5 -12
𝑥3 1 -0,5 2
𝑥2 0 0,5 4
Fonte: Autoria própria.
30

Retornando ao passo 2:

1 1 1 0
𝑐̅ = (0 1,5) ( ) − (1 3 0 0) = (2,5 0 0 − 1,5).
−1 2 0 1

A solução não é ótima, 𝑥1 entra na base.

1 −0,5 1 1,5
𝑦𝑘 = ( ) ( )= ( ).
0 0,5 −1 −0,5

Acoplando 𝑦𝑘 na Tabela 16.

Tabela 16 – Tabela para segunda iteração com 𝑥1 acoplado.

𝐵 −1 𝑏 𝑥1
Z 0 -1,5 -12 2,5
𝑥3 1 -0,5 2 1,5
𝑥2 0 0,5 4 -0,5
Fonte: Autoria própria.

Pela regra, 𝑥3 sai da base. Após o pivoteamento tem-se:

Tabela 17 – Problema (VI) após pivoteamento na iteração 2.

𝐵 −1 𝑏
Z -1,67 -0,67 -15,3
𝑥1 0,67 -0,33 1,33
𝑥2 0,33 0,33 4,67
Fonte: Autoria própria.

Retornando ao passo 2.

1 1 1 0
𝑐̅ = (−1,67 − 0,67) ( ) − (1 3 0 0) = (0 0 − 1,67 − 067).
−1 2 0 1

Como todos os valores de 𝑐̅ são ≤ 0, a solução ótima foi encontrada, com 𝑥1 =


1,33, 𝑥2 = 4,67, 𝑥3 = 𝑥4 = 0 𝑒 𝑧 = −15,3.
31

5 DUALIDADE NA PROGRAMAÇÃO LINEAR

Para cada problema de programação linear, esse considerado Primal, existe outro
problema chamado Dual. Esse problema, é gerado diretamente pelos valores contidos no
problema Primal original (BAZARAA; JARVIS; SHERALI, 2010). Assumindo o seguinte
formato:
 Os coeficientes da função objetivo no Primal assumem os valores do lado direito
das restrições do problema Dual;
 Os valores do lado direito do problema Primal tornam-se os coeficientes de custo da
função objetivo no problema Dual, ou seja, gerando uma variável por restrição;
 Cada conjunto de coeficientes pertencentes à mesma variável presente nas restrições
do Primal, torna-se uma variável no problema Dual;
 Os sinais de desigualdade são invertidos.
Considerando essas afirmações, o modelo pode ser melhor visualizado na Figura 4.

Figura 4 – Paralelo entre os problemas Primal e Dual

Fonte: Autoria própria

5.1 TEOREMA FUNDAMENTAL DA DUALIDADE

Bazaraa, Jarvis e Sherali (2010) listam 3 conceitos que são definidos como sendo
fundamentais para a Dualidade de um problema de programação linear.
1) Se um problema possui uma solução ótima ilimitada, o outro será infactível;
2) Se um problema possui uma solução ótima limitada, então o mesmo acontece para
o outro problema;
32

3) Ambos os problemas são infactíveis simultaneamente.

Hillier e Leiberman (2006) definem que existem inter-relacionamentos chamado


Primal-Dual, que são caracterizados pelas seguintes definições:
 Versão fraca da teoria da Dualidade: Se 𝑥 for uma solução viável para o problema
Primal e 𝑦 a solução do problema Dual, então:

𝑐𝑥 ≤ 𝑏𝑦.

 Versão forte da teoria da dualidade: Se ambos os problemas possuem soluções


ótimas 𝑥 ∗ e 𝑦 ∗ , logo

𝑐𝑥 ∗ = 𝑦 ∗ 𝑏.

 Propriedade das soluções complementares: O algoritmo Simplex identifica a cada


iteração uma solução simultânea para os problemas Primal e Dual, consideradas 𝑥 e
𝑦. A solução do problema Dual é chamada solução complementar, no qual,

𝑐𝑥 = 𝑏𝑦.

 Essa propriedade também pode ser estendida à solução ótima do problema,


considerando 𝑥 ∗ e 𝑦 ∗ como as soluções ótimas do problema Primal e Dual,
respectivamente. Então:

𝑐𝑥 ∗ = 𝑦 ∗ 𝑏.

 Propriedade da simetria: Todas as relações entre os dois tipos de problemas são


simétricas, pois o Dual de um problema dual, é seu problema Primal original.

5.2 PROPRIEDADE DA FOLGA COMPLEMENTAR

Os valores de todas as variáveis, sejam de custo ou de folga, estão relacionadas entre os


problemas primais e duais. As soluções básicas de ambos os problemas podem ser encontrados
33

por meio do conhecimento da solução ótima apenas de um dos problemas, deixando explícito
que a resolução de um, leva simultaneamente à solução do outro. As soluções são encontradas
aplicando o método Simplex. Hillier e Leiberman (2006) e Bazaraa, Jarvis e Sherali (2010)
descrevem que a tabela ótima dos problemas estão interligadas da forma apresentada na Tabela
18.

Tabela 18 – Organização dos problemas Primal e Dual.

𝑦𝑚+1 𝑦𝑚+2 … 𝑦𝑚+𝑛 𝑦1 𝑦2 … 𝑦𝑛


Z 𝑥1 𝑥2 … 𝑥𝑛 𝑥𝑛+1 𝑥𝑛+2 … 𝑥𝑛+𝑚 B
1 −𝑐1 −𝑐2 ... −𝑐𝑛 0 0 … 0 0
0 𝑎11 𝑎12 … 𝑎1𝑛 1 0 … 0 𝑏1
0 𝑎21 𝑎22 … 𝑎2𝑛 0 1 … 0 𝑏2
⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋱ ⋮ ⋮
0 𝑎𝑚 𝑎𝑚2 … 𝑎𝑚𝑛 0 0 … 1 𝑏𝑚
Fonte: Hillier e Leiberman (2006) e Bazaraa, Jarvis e Sherali (2010)

1 - O valor de 𝑦𝑖∗ é o coeficiente da variável de folga 𝑥𝑚+𝑖



;

2 - O valor do coeficiente da variável de folga 𝑦𝑚+𝑗 é o coeficiente ótimo de 𝑥𝑖∗ ;

3 - Se a variável 𝑥𝑛+𝑖 for básica, então 𝑦𝑖∗ é não básica;
4 - Se a variável de folga 𝑥𝑗∗ for básica, então 𝑦𝑚+𝑗

é não básica;
5 - Se a variável 𝑦𝑖∗ é básica, então 𝑥𝑛+𝑖

é não básica;

6 - Se a variável 𝑦𝑚+𝑗 é básica então 𝑥𝑗∗ é não básica.
Através dessa propriedade, é possível visualizar a solução do problema Dual do modelo
(IV) resolvido anteriormente. Sua forma apresentar o seguinte formato:

𝑀𝑖𝑛𝑖𝑚𝑖𝑧𝑎𝑟 𝑧 = 40𝑦1 + 20𝑦2 + 30𝑦3


𝑦1 + 2𝑦2 + 3𝑦3 ≥ 2
𝑦1 + 𝑦2 + 2𝑦3 ≥ 3
𝑠𝑢𝑗𝑒𝑖𝑡𝑜 𝑎: { 𝑦 −𝑦 −𝑦 ≥1
1 2 3
𝑦𝑗 ≥ 0, 𝑗 = 1,2,3

Por meio da inspeção de sua tabela ótima, apresentada na Tabela 7, é possível concluir
que seus valores ótimos do problema Dual seriam: 𝑦1 = 1,67, 𝑦2 = 0, 𝑦3 = 0,65, 𝑦4 = 𝑦5 =
𝑦6 = 0.
34

5.3 APLICAÇÕES DO PROBLEMA DUAL

É dito por Hillier e Leiberman (2006) que a quantidade de restrições de um problema


afeta o desempenho do método Simplex durante a resolução. Portanto quando um problema
tem um número muito maior de restrições em comparação a quantidade de variáveis, torna sua
resolução com uma menor quantidade de processamento computacional.
A Dualidade também é utilizada no conceito de pós-otimalidade, expresso por alguns
autores como análise de sensibilidade. A utilização enquadra-se quando já se possui um
problema solucionado, e devido à necessidade de alteração do modelo, o lado direito que
possuem as variáveis b, é alterado. Essa alteração pode tornar sua otimalidade uma solução
Primal inviável, porém, mantendo a viabilidade Dual. Contudo, os coeficientes de custo devem
permanecer o mesmo (Bazaraa, Jarvis e Sherali, 2010).

5.4 MÉTODO DUAL SIMPLEX

É considerado de acordo com Bazaraa, Jarvis e Sherali (2010) como uma forma de
resolver um problema Dual, diretamente em seu quadro Primal.
O processo inicia-se de uma solução básica viável para o problema Dual, e a cada
iteração, melhora essa solução. O processo só termina quando a otimalidade Dual é encontrada,
encontrando simultaneamente a otimalidade Primal. Contudo, somente no quadro ótimo, o
problema Primal é factível.
Normalmente, em problemas práticos, é necessário a adição de variáveis artificias para
a obtenção de uma solução básica viável onde todos os valores de 𝑏 são ≥ 0. Para esses casos,
é possível a obtenção de uma solução, mesmo esta sendo infactível, sem a adição de variáveis
artificiais, através do método Dual Simplex.

5.4.1 Algoritmo Dual Simplex

Considere o seguinte o seguinte exemplo:


35

𝑀𝑖𝑛𝑖𝑚𝑖𝑧𝑎𝑟 𝑧 = 3𝑥1 + 4𝑥2 (𝑉𝐼𝐼)


2𝑥1 + 4𝑥2 ≤ 600
𝑥1 + 𝑥2 ≤ 225
𝑠𝑢𝑗𝑒𝑖𝑡𝑜 𝑎: 5𝑥1 + 4𝑥2 ≤ 1000
𝑥1 + 2𝑥2 ≥ 150
{ 𝑥𝑗 ≥ 0, 𝑗 = 1,2.

Para levar o problema (VII) à sua forma padrão, seria necessário a adição de variáveis
artificiais para a obtenção de uma solução básica inicial. Contudo, como o método Dual
Simplex permite que problemas infactíveis em sua forma Primal sejam solucionados, é
possível, para esse caso, fazer com que os valores de 𝑏 assumam valores negativos e o problema
solucionado. Com isso, pode-se obter o seguinte problema em sua forma padrão:

𝑀𝑖𝑛𝑖𝑚𝑖𝑧𝑎𝑟 𝑧 − 3𝑥1 − 4𝑥2 = 0 (𝑉𝐼𝐼𝐼)


2𝑥1 + 4𝑥2 + 𝑥3 = 600
𝑥1 + 𝑥2 + 𝑥4 = 225
𝑠𝑢𝑗𝑒𝑖𝑡𝑜 𝑎: 5𝑥1 + 4𝑥2 + 𝑥5 = 1000
−𝑥1 − 2𝑥2 + 𝑥6 = −150
{ 𝑥𝑗 ≥ 0, 𝑗 = 1, … ,6.

No quadro Simplex:

Tabela 19 – Quadro inicial do problema (VIII)

Z 𝑥1 𝑥2 𝑥3 𝑥4 𝑥5 𝑥6 𝑏
1 -3 -4 0 0 0 0 0
0 2 1 1 0 0 0 600
0 1 1 0 1 0 0 225
0 5 4 0 0 1 0 1000
0 -1 -2 0 0 0 1 -150
Fonte: Autoria própria.

Percebe-se que como é um problema de minimização, o Simplex Primal está em seu


ótimo, devido à todos os coeficientes de custo da função objetivo na tabela serem ≤ 0. Contudo,
o valor negativo contido no lado dos valores de 𝑏, implica que o problema Primal é infactível.
Logo o algoritmo Dual Simplex, pode ser aplicado.
36

Em cada iteração do Dual Simplex, deve-se seguir os seguintes critérios de acordo com
Bazaraa, Jarvis e Sherali (2010):
 Manter a otimalidade Primal, ou seja, a viabilidade dual, conservando os
coeficientes de custo sempre negativos, para problemas de minimização.
 Procurar a viabilidade Primal, buscando sempre tornar os termos de 𝑏 ≥ 0.
 O Algoritmo finaliza quando a viabilidade Primal é atingida.
Os critérios para criação de uma nova solução, são os mesmos do Simplex Primal.
Entretanto, devem ser escolhidos considerando objetivo de induzir o problema à sua
viabilidade, logo:
1) A variável que sai da base, deve ser escolhida através do método convencional de
menor valor absoluto negativo na coluna de 𝑏.
2) A variável que entra na base deve ser escolhida por meio do teste da razão positiva
mínima dos termos da linha da função objetivo pelos termos da linha escolhida pelos
critérios do item anterior.
3) O pivoteamento é realizado da forma usual.
Por meio dos passos 1 e 2, a coluna de 𝑥2 e a linha de 𝑥6 são escolhidas. Conforme pode
ser visualizado na Tabela 20:

Tabela 20 – Problema (VIII) com os valores selecionados

Z 𝑥1 𝑥2 𝑥3 𝑥4 𝑥5 𝑥6 𝑏
1 -3 -4 0 0 0 0 0
0 2 1 1 0 0 0 600
0 1 1 0 1 0 0 225
0 5 4 0 0 1 0 1000
0 -1 -2 0 0 0 1 -150
Fonte: Autoria própria.

O pivoteamento da Tabela 20, produz a Tabela 21:


37

Tabela 21 – Problema (VIII) após pivoteamento da iteração 1

Z 𝑥1 𝑥2 𝑥3 𝑥4 𝑥5 𝑥6 𝑏
1 -1 0 0 0 0 -2 300
0 1,5 0 1 0 0 0,5 525
0 0,5 0 0 1 0 0,5 150
0 3 0 0 0 1 2 700
0 0,5 1 0 0 0 0,5 75
Fonte: Autoria própria.

A ausência de valores 𝑏 ≤ 0, bem como a negatividade dos coeficientes de custo da


função objetivo, implica que o Tabela 21 representa o estado ótimo do problema (VIII). Com
um valor de Z=300, 𝑥1 = 𝑥6 = 0 e 𝑥2 = 75, 𝑥3 = 525, 𝑥4 = 150, 𝑥5 = 700.
38

6 CONCLUSÃO

Este trabalho teve a finalidade de atuar como uma prática de aprendizado para os
principais conceitos e resoluções de problemas de programação linear.

Esse objetivo foi concluído por meio da exposição dos conceitos referentes aos métodos
Simplex, Simplex Revisado, e Dual Simplex de resolução de problemas de programação linear.
Através dessa conceitualização baseada em uma fundamentação teórica de seus algoritmos,
técnicas de resolução e adaptação de casos foi possível realizar resolução de problemas que
levaram ao entendimento dos conceitos expostos.
39

REFERÊNCIAS

BAZARAA M. S.; JARVIS J. J; SHERALI H. D. Linear Programming and Network


Flows. Virginia: Wiley, 2010. 4 ed. 748 p.

DANTZIG G. B. Programming in a Linear Structure, Comptroller, United States


Air Force, Washington, 1948.

HILLIER F. S.; LIEBERMAN G. J,. Introdução à pesquisa operacional. São


Paulo:McGraw Hill, 2006. 8 ed. 829 p.

KOLMAN B.; BECK R. E. Elementary Linear Programming with Applications, Estados


Unidos: Elsevier, 1995, 449 p.

MARINS F. A. S. Introdução à pesquisa operacional. São Paulo: Cultura Acadêmica,


2011. 176 p.