Você está na página 1de 30

Simulação e Tomada

de Decisão
Material Teórico
Programação Linear: Métodos e Aplicações

Responsável pelo Conteúdo:


Prof. Ms. Roberto Luiz Garcia Vichinisky

Revisão Textual:
Profa. Ms. Fátima Furlan
Programação Linear: Métodos
e Aplicações

• Método Simplex
• Ferramentas Computacionais
• Roteiro para Utilização do Software “SIMPLEX in PHP”

OBJETIVO DE APRENDIZADO
··O objetivo desta unidade é detalhar os procedimentos para aplicação
do método SIMPLEX para a resolução de problemas de Programação
Linear, introduzindo os conceitos de análise e interpretações econômi-
cas a partir dessa aplicação.
Orientações de estudo
Para que o conteúdo desta Disciplina seja bem
aproveitado e haja uma maior aplicabilidade na sua
formação acadêmica e atuação profissional, siga
algumas recomendações básicas:
Conserve seu
material e local de
estudos sempre
organizados.
Aproveite as
Procure manter indicações
contato com seus de Material
colegas e tutores Complementar.
para trocar ideias!
Determine um Isso amplia a
horário fixo aprendizagem.
para estudar.

Mantenha o foco!
Evite se distrair com
as redes sociais.

Seja original!
Nunca plagie
trabalhos.

Não se esqueça
de se alimentar
Assim: e se manter
Organize seus estudos de maneira que passem a fazer parte hidratado.
da sua rotina. Por exemplo, você poderá determinar um dia e
horário fixos como o seu “momento do estudo”.

Procure se alimentar e se hidratar quando for estudar, lembre-se de que uma


alimentação saudável pode proporcionar melhor aproveitamento do estudo.

No material de cada Unidade, há leituras indicadas. Entre elas: artigos científicos, livros, vídeos e
sites para aprofundar os conhecimentos adquiridos ao longo da Unidade. Além disso, você também
encontrará sugestões de conteúdo extra no item Material Complementar, que ampliarão sua
interpretação e auxiliarão no pleno entendimento dos temas abordados.

Após o contato com o conteúdo proposto, participe dos debates mediados em fóruns de discussão,
pois irão auxiliar a verificar o quanto você absorveu de conhecimento, além de propiciar o contato
com seus colegas e tutores, o que se apresenta como rico espaço de troca de ideias e aprendizagem.
UNIDADE Programação Linear: Métodos e Aplicações

Contextualização
Para resolvermos problemas de programação linear, cujos modelos matemáticos
possuam apenas duas variáveis de decisão, podemos aplicar, com certo grau de
facilidade, as técnicas gráfica e analítica. No entanto, para problemas que envolvem
três ou mais variáveis de decisão, essas técnicas são inviáveis. Nesses casos, lança-
se mão de outros recursos, como por exemplo, o método SIMPLEX.

Esse método, desenvolvido em 1947 pelo matemático norte-americano George


Dantzig, vem sendo utilizado desde então para a solução de problemas complexos
que envolvem muitas variáveis de decisão, demonstrando-se bastante eficiente
nesse aspecto. Porém, devido ao grande volume de dados manipulados durante a
resolução de problemas complexos, o método SIMPLEX é normalmente executado
em computadores, por meio de softwares específicos ou aplicativos matemáticos
que oferecem ferramentas para sua implementação. Entretanto, para problemas
pequenos, a execução manual desse método ainda é uma opção viável.

No ambiente empresarial, por razões de produtividade e precisão, obviamente


a resolução de problemas de programação linear não é realizada de forma
manual. Nesse contexto, utilizam-se programas de computadores, onde o modelo
matemático do problema é introduzido e as soluções são rapidamente apresentadas,
permitindo ao usuário realizar diversas simulações a partir de versões modificadas
do modelo matemático original, o que seria impraticável caso a resolução fosse
realizada manualmente.

Entretanto, o conhecimento dos métodos de resolução de problemas de


programação linear, assim como a habilidade para aplicá-los sem o uso de
ferramentas computacionais, são requisitos fundamentais para que o profissional
desenvolva o seu pensamento crítico e expanda sua capacidade de análise em
relação aos problemas organizacionais complexos

8
Método Simplex
O método Simplex, desenvolvido em 1947 pelo matemático norte-americano
George Bernard Dantzig, é um procedimento algébrico para solucionar problemas
de programação linear. Baseia-se na aplicação de um algoritmo com o propósito
de se obter a otimização de sistemas de equações lineares.

Em linhas gerais, o método Simplex consiste em executar um algoritmo de forma


iterativa (repetidamente), até que se encontre a solução ótima para um determinado
problema de programação linear a partir de seu modelo matemático. A Figura 1
apresenta o fluxograma genérico que ilustra o princípio básico do método Simplex.

INÍCIO

Obter modelo
matemático

Encontrar
solução viável

Solução
ótima?

Encontrar
solução viável
melhor FIM

Figura 1 - Fluxograma genérico do método Simplex

O método Simplex foi concebido para resolver problemas de maximização, cujas


inequações de restrição, presentes em seus modelos matemáticos, devem conter
apenas operadores relacionais do tipo “menor ou igual” ( ≤ ), com exceção da restri-
ção de não negatividade das variáveis de decisão. Portanto, modelos matemáticos
que não atendem essas condições, devem ser adequadamente transformados.

9
9
UNIDADE Programação Linear: Métodos e Aplicações

Aplicação do Método Simplex


Para demonstrarmos a aplicação do método Simplex, vamos tomar como
exemplo o seguinte problema de maximização:

Uma empresa fabrica dois produtos: A e B, sendo que o lucro por unidade do
produto A é R$ 10,00 e do produto B é R$ 8,00. Na manufatura desses produtos são
empregadas apenas duas matérias-primas: MP1 e MP2, na seguinte proporção: 3
unidades de MP1 e 3 unidades de MP2 para cada unidade do produto A e 6 unidades
de MP1 e 3 unidades de MP2 para cada unidade do produto B. A empresa possui
um estoque de 300 unidades de MP1 e 480 unidades de MP2. Considerando que as
variáveis de decisão são X1 (quantidade de A a ser produzida) e X2 (quantidade de B
a ser produzida), quais devem ser as quantidades de A e B a serem produzidas para
que a empresa obtenha o lucro máximo?

Vamos agora aplicar os quatro passos básicos do método Simplex para resolver
esse problema.

Passo 1 - Elaboração do modelo matemático


O primeiro passo para iniciarmos a resolução de um problema de programação
linear, independentemente do método utilizado, é a construção do modelo
matemático correspondente. De forma particular, o método Simplex exige que
façamos algumas alterações nesse modelo matemático para que ele possa ser
adequadamente resolvido. Essas adequações envolvem, basicamente, duas ações:
igualar a função objetivo a zero e introduzir variáveis de folga nas inequações de
restrição para transformá-las em equações.
Analisando o nosso problema, podemos construir o modelo matemático e ajustá-
lo aos padrões exigidos pelo método Simplex, conforme demonstração a seguir.

Modelo Matemático Original Modelo Matemático Ajustado


Maximizar: Z = 10.X1 + 8.X2 Maximizar: Z - 10.X1 - 8.X2 = 0
Sujeito a Sujeito a
3.X1 + 3.X2 ≤ 300 (restrição de MP1) 3.X1 + 3.X2 + X3 = 300
6.X1 + 3.X2 ≤ 480 (restrição de MP2) 6.X1 + 3.X2 + X4 = 480
X1 , X2 ≥ 0 (restrição de não negatividade) X1 , X2 , X3 , X4 ≥ 0

Observe que no modelo matemático ajustado, a função objetivo aparece


como uma equação igualada a zero, onde as variáveis independentes X1 e X2,
com seus respectivos coeficientes, são colocadas à esquerda do sinal como
parcelas negativas.

As novas variáveis X3 e X4, inseridas nas restrições do modelo matemático


ajustado, têm como propósito transformar as inequações (desigualdades) em
equações (igualdades), permitindo a substituição do operador “menor ou igual” ( ≤ )
pelo operador “igual” (=). Essas variáveis auxiliares são chamadas de “Folga”.

10
Importante! Importante!

Para cada restrição técnica do problema é necessário introduzir uma variável de folga
específica (a restrição de não negatividade não é uma restrição técnica, portanto, ela
não deve ser considerada). No exemplo apresentado, temos apenas duas restrições
técnicas, sendo assim, introduzimos duas variáveis de folga, as quais identificamos como
X3 e X4. Veja que para nomear essas variáveis, estamos adotando a letra “X” seguida de
um identificador numérico sequencial. Como já temos as variáveis de decisão X1 e X2, os
identificadores das variáveis de folga devem ser X3 e X4.

A variável de folga é o elemento de uma restrição que indica a quantidade não


utilizada de um determinado recurso. Para ilustrar, vamos tomar como exemplo a
segunda restrição do nosso modelo matemático ajustado: 6.X1 + 3.X2 + X4 = 480.
As variáveis X1 e X2 (variáveis de decisão) correspondem às quantidades de produtos
A e B a serem fabricadas, respectivamente, sendo que seus coeficientes (6 e 3)
correspondem às quantidades de matéria-prima MP2 empregadas na fabricação de
uma unidade de cada produto (6 unidades de MP2 para fabricar o produto A, e 3
unidades para fabricar o produto B). O valor 480 corresponde à quantidade de MP2
disponível no estoque da empresa (restrição de recurso). Para melhor compreensão,
os componentes dessa equação de restrição são apresentados a seguir.
6.X1 + 3.X2 + X4 = 480
disponível
Quantidade de MP2 não utilizada (folga)
Quantidade fabricada do produto B
Quantidade de MP2 utilizada no produto B
Quantidade fabricada do produto A
Quantidade de MP2 utilizada no produto A

Passo 2 - Montagem da tabela de coeficientes


Este passo consiste em montar uma tabela de coeficientes, onde as linhas devem
representar a função objetivo (Z) e as restrições técnicas do modelo (a restrição de
não negatividade não é considerada). As colunas dessa tabela devem representar as
variáveis de decisão (X1 e X2), as variáveis de folga (X3 e X4) e o termo independente
(b), conforme mostra a Figura 2.

Variáveis de decisão, variáveis de folga e termo


independente, compondo as colunas da tabela

X1 X2 X3 X4 b
Função objevo e Z
restrições técnicas,
compondo as linhas R1
da tabela R2

Figura 2 - Linhas e colunas da tabela de coeficientes

11
11
UNIDADE Programação Linear: Métodos e Aplicações

Essa tabela deve ser preenchida com os coeficientes e os termos independentes


das equações do modelo matemático, conforme demonstrado a seguir:

Modelo Matemático Tabela de Coeficientes


Maximizar Z - 10.X1 - 8.X2 = 0 X1 X2 X3 X4 b
Sujeito a Z -10 -8 0 0 0

3.X1 + 3.X2 + 1.X3 = 300 R1 3 3 1 0 300

6.X1 + 3.X2 + 1.X4 = 480 R2 6 3 0 1 480

X1 , X2 , X4 = 480

Passo 3 - Determinação da solução inicial


Para encontrarmos a solução inicial do problema, devemos atribuir o valor
zero às variáveis de decisão, encontrando dessa forma o resultado da função
objetivo e os valores positivos das variáveis de folga. Sendo assim, teremos os
seguintes resultados:

Função Objetivo Restrição 1 (R1) Restrição 2 (R2)


Equação original Z - 10.X1 - 8.X2 = 0 3.X1 + 3.X2 + X3 = 300 6.X1 + 3.X2 + X4 = 480
Substituindo X1 e X2 por zero Z - 10.(0) - 8.(0) = 0 3.(0) + 3.(0) + X3 = 300 6.(0) + 3.(0) + X4 = 480
Resultado Z=0 X3 = 300 X4 = 480

Observando os resultados encontrados, podemos dizer que, se a empresa não


fabricar nenhum dos produtos (X1 = 0 e X2 = 0), o lucro obtido, obviamente, será
zero (Z = 0). Nesse caso não haverá consumo de matéria-prima, sendo assim, os
valores das folgas representarão toda a quantidade de matéria-prima disponível (X3
= 300 e X4 = 480).

Apesar de esse resultado ser uma solução viável do problema, fica claro que ele
não é a solução ótima. Portanto, devemos encontrar outra solução.

Uma maneira simples para detectarmos se a solução ótima do problema foi


encontrada, é verificarmos, na tabela de coeficientes, a existência de algum valor
negativo na linha da função objetivo, ou seja, se algum coeficiente da função
objetivo for negativo, a solução ótima ainda não foi encontrada. Observe na nossa
tabela inicial (mostrada a seguir) que a função objetivo apresenta os coeficientes
negativos -10 e -8, sendo assim, a solução inicial (X1 = 0 e X2 = 0) não é a solução
ótima do problema.

X1 X2 X3 X4 b
Z -10 -8 0 0 0
X1 3 3 1 0 300
X2 6 3 0 1 480

12
Passo 4 - Determinação da próxima solução viável
Para encontrarmos a próxima solução viável, devemos realizar uma sequência
de operações sobre a tabela de coeficientes original, com o objetivo de gerar uma
nova tabela otimizada. Essa sequência de operações tem o propósito de realizar a
otimização matemática das equações do modelo por meio de iterações (repetições),
até que a solução ótima seja encontrada. Como citado anteriormente, a solução
ótima é determinada quando todos os coeficientes da função objetivo forem
positivos ou zero. Dessa forma, o “Passo 4” deve ser repetido enquanto existir
pelo menos um valor negativo na linha Z da tabela de coeficientes.

Neste passo, para cada iteração, devemos realizar as seguintes operações:

a. Identificar a “variável que entra”;


b. Identificar a linha pivô;
c. Calcular a nova linha pivô;
d. Calcular as novas linhas da tabela. Essas operações estão destacadas no
fluxograma do algoritmo Simplex apresentado na Figura 3.

INÍCIO

Passo 1
Elaboração do modelo matemático

Passo 2
Montagem da tabela de coeficientes

Passo 3
Determinação da solução inicial

Passo 4
Determinação da próxima solução viável
a. Identificação da "variável que entra"
b. Identificação da linha pivô
c. Cálculo a nova linha pivô
d. Cálculo das novas linhas da tabela

Solução ótima?

FIM

Figura 3 - Fluxograma genérico do algoritmo Simplex

Vamos agora realizar a primeira iteração do algoritmo, executando as quatro


operações citadas.

13
13
UNIDADE Programação Linear: Métodos e Aplicações

Primeira Iteração
Identificação da “variável que entra”
Esta operação consiste em encontrar a variável de decisão que apresenta a
maior contribuição para o aumento da função objetivo, ou seja, aquela que possui
como coeficiente o maior valor absoluto (essa variável é tratada como “variável
que entra”, pois, será ela que entrará na base para a composição da nova tabela).
Analisando a nossa tabela original, facilmente podemos ver que o maior valor
absoluto existente na linha da função objetivo é 10, que corresponde ao coeficiente
da variável X1. Portanto, a variável que “entra” é a própria X1. Devemos então
destacar a coluna que representa essa variável, conforme mostrado a seguir:

X1 X2 X3 X4 b
Z -10 -8 0 0 0
R1 3 3 1 0 300
R2 6 3 0 1 480

Identificação da linha pivô


A linha pivô da tabela de coeficientes, também chamada de “linha que sai”, é
uma das linhas que contêm os coeficientes das restrições do problema (a linha da
função objetivo não é considerada). Para encontrá-la, devemos inicialmente dividir
o termo independente b (última coluna da tabela) pelo respectivo coeficiente da
variável que “entra” (coluna destacada, que neste caso é a coluna da variável X1).
Dessa forma, encontraremos para a restrição R1 o valor 100 (300 ÷ 3) e para a
restrição R2 o valor 80 (480 ÷ 6), conforme demonstrado a seguir:

X1 X2 X3 X4 b
Z -10 -8 0 0 0
R1 3 3 1 0 300 (300 ÷ 3 = 100)
R2 6 3 0 1 480 (480 ÷ 6 = 80)

A linha pivô é aquela que apresenta o menor quociente positivo obtido por
meio da divisão do termo independente pelo coeficiente da “variável que entra”.
No nosso caso, o menor valor positivo encontrado é 80, portanto, a linha pivô da
nossa tabela é aquela que representa a restrição R2. Devemos então destacá-la,
conforme segue:

14
X1 X2 X3 X4 b
Z -10 -8 0 0 0
R1 3 3 1 0 300
R2 6 3 0 1 480

O coeficiente que se encontra na intersecção da linha pivô e da coluna da “variável


que entra” é chamado de “elemento pivô” (no nosso caso é o coeficiente 6). Esse
elemento será utilizado no cálculo da nova linha pivô, conforme veremos a seguir.

Cálculo da nova linha pivô


O procedimento para calcularmos a nova linha pivô é bastante simples, basta
dividirmos todos os elementos da linha base atual pelo elemento pivô, encontrando
assim os novos elementos (coeficientes) que farão parte da nova base.

X1 X2 X3 X4 b
Z -10 -8 0 0 0
R1 3 3 1 0 300
R2 6 3 0 1 480
(÷6)

X1 X2 X3 X4 b
Z -10 -8 0 0 0
R1 3 3 1 0 300
R2 1 1/2 6 1/6 80

Cálculo das novas linhas da tabela


Após obter a nova linha pivô, conforme procedimento anterior (apresentado no
item “c”), devemos recalcular os coeficientes para a obtenção das outras linhas da
nova tabela.

Vamos começar pela primeira linha, que corresponde à função objetivo. Pri-
meiramente, devemos identificar, nessa linha, o valor do coeficiente da “variá-
vel que entra”, que nosso caso é o valor da variável X1. Em seguida, devemos
multiplicar todos os elementos da linha pivô atual pelo oposto desse valor (se
negativo, vira positivo, e vice-versa), e somá-los aos respectivos coeficientes da
função objetivo. Dessa forma, obteremos a nova linha da função Z. Para melhor
compreensão desse procedimento, vamos realizá-lo passo a passo:

15
15
UNIDADE Programação Linear: Métodos e Aplicações

I. Identificar o valor do coeficiente da “variável que entra” na função objetivo.


Coeficiente da “variável
que entra” (-10)

X1 X2 X3 X4 b
Z -10 -8 0 0 0
R1 3 3 1 0 300
R2 1 1/2 0 1/6 80

II. Multiplicar todos os elementos da linha pivô atual pelo oposto do valor
encontrado no procedimento anterior.
X1 X2 X3 X4 b
Z -10 -8 0 0 0
Linha pivô atual
R1 3 3 1 0 300
R2 1 1/2 0 1/6 80 Coeficientes da linha pivô
multiplicados por 10 (oposto
do valor - 10 que é o coeficiente
(x 10) de X1 na função objetivo)
10 5 0 5/3 800

III. Somar os resultados encontrados com os coeficientes da função objetivo.


X1 X2 X3 X4 b
Linha atual da
Z -10 -8 0 0 0 função objetivo
R1 3 3 1 0 300
R2 1 1/2 0 1/6 80
+ + + + +
10 5 0 5/3 800
Nova linha da
0 -3 0 5/3 800
função objetivo

E assim teremos a nova linha da função objetivo. Nossa nova tabela de coeficien-
tes tem agora o seguinte aspecto:

16
X1 X2 X3 X4
b
Z -10 -3 0 5/3 800
R1 3 3 1 0 300
R2 1 1/2 0 1/6 80

Vamos agora calcular os coeficientes da linha correspondente à restrição R1.


Lembre-se de que já temos os novos coeficientes da função objetivo Z e da restrição
R2 (linha pivô). Portanto, para finalizar a primeira iteração do algoritmo, falta
calcularmos os novos coeficientes da restrição R1.

Para recalcularmos essa linha, devemos empregar os mesmos procedimentos


realizados para o cálculo da linha da função objetivo, tomando por base, obviamente,
a linha da restrição R1 ao invés da linha da função objetivo. Vamos realizar esses
procedimentos passo a passo:

I. Identificar o valor do coeficiente da “variável que entra” na equação da


restrição R1.
Coenficiente da
“variável que entra” (3)

X1 X2 X3 X4 b
Z 0 -3 0 5/3 800
R1 3 3 1 0 300
R2 1 1/2 0 1/6 80

II. Multiplicar todos os elementos da linha pivô atual pelo oposto do valor
encontrado no procedimento anterior.
Coenficiente da
“variável que entra” (3)

X1 X2 X3 X4
b
Z 0 -3 0 5/3 800
Linha pivô atual
R1 3 3 1 0 300
R2 1 1/2 0 1/6 80 Elementos da linha pivô
multiplicados por -3 (oposto
do valor 3, que é o coeficiente
(x -3) de X1 na restrição R1)
-3 -3/2 0 -1/2 -240

17
17
UNIDADE Programação Linear: Métodos e Aplicações

III. Somar os resultados encontrados com os coeficientes da restrição R1.


X1 X2 X3 X4
b
Z 0 -3 0 5/3 800
Linha atual da
R1 3 3 1 0 300 restrição R1
R2 1 1/2 0 1/6 80
+ + + + +
-3 -3/2 0 -1/2 -240
Nova linha da
0 3/2 1 -1/2 60
restrição R1

E assim teremos a nova linha da restrição R1, concluindo desta forma a primeira
iteração do algoritmo Simplex. Nossa nova tabela de coeficientes tem agora o
seguinte aspecto:
X1 X2 X3 X4 b
Z 0 -3 0 5/3 800
R1 0 3/2 1 -1/2 60
R2 1 1/2 0 1/6 80

Observe que ainda existe um coeficiente negativo na linha da função objetivo,


que é justamente o coeficiente da variável de decisão X2 (-3), sendo assim, sabemos
que a solução ótima ainda não foi encontrada. Portanto, devemos realizar uma
nova iteração, repetindo as quatro operações descritas no “passo 4” para a nova
tabela de coeficientes.

Segunda Iteração
Identificação da “variável que entra”
Observando a nova tabela, podemos notar que a “variável que entra” agora é a
X2, pois é ela, dentre as variáveis de decisão (X1 e X2), que apresenta o coeficiente
de maior valor absoluto na linha da função objetivo.
A variável que entra é a X2 (possui o
coeficiente de maior valor absoluto
na linha da função Z)

X1 X2 X3 X4 b
Z 0 -3 0 5/3 800
R1 0 3/2 1 -1/2 60
R2 1 1/2 0 1/6 80

18
Identificação da linha pivô
Já sabemos que a linha pivô, chamada também de base, é uma das linhas que
representam as restrições do problema (R1 ou R2). Mais precisamente, é aquela
onde o termo independente “b”, dividido pelo respectivo coeficiente da “variável
que entra”, gerará o menor resultado. Na nossa nova tabela, podemos constatar
que a linha pivô é a linha da restrição R1, pois, o quociente da divisão de “b” por
X2 é 40 (60÷3/2=40), e esse valor é menor que o valor calculado para a linha da
restrição R2 (80÷1/2=160), conforme podemos observar a seguir.

X1 X2 X3 X4 b
Z 0 -3 0 5/3 800
R1 0 3/2 1 -1/2 60 (60 ÷ 3/2 = 40)
R2 1 1/2 0 1/6 80 (80 ÷ 1/2 = 160)

Linha pivô Elemento pivô

Lembre-se de que o coeficiente que se encontra na intersecção da linha pivô e


da coluna da “variável que entra” é chamado de “elemento pivô” (no nosso caso é
o coeficiente 3/2).

Cálculo da nova linha pivô


Para calcularmos a nova linha pivô, basta dividirmos todos os elementos da linha
base atual pelo elemento pivô, conforme demonstrado a seguir:

X1 X2 X3 X4 b
Z 0 -3 0 5/3 800
R1 0 3/2 1 -1/2 60
R2 1 1/2 0 1/6 80
(÷ 3/2)
X1 X2 X3 X4 b
Z 0 -3 0 5/3 800
R1 0 1 2/3 -1/3 40
R2 1 1/2 0 1/6 80

Nova linha pivô

19
19
UNIDADE Programação Linear: Métodos e Aplicações

Cálculo das novas linhas da tabela


Devemos agora recalcular as outras linhas da nova tabela. Vamos recordar os
procedimentos que devem ser realizados para cada uma dessas linhas:

I. Identificar, na linha em questão, o coeficiente da “variável que entra”;

II. Multiplicar todos os elementos da linha pivô pelo oposto do coeficiente


identificado;

III. Somar os resultados encontrados aos respectivos coeficientes da linha


em questão.

Aplicando esses três procedimentos na linha da função objetivo, teremos os


novos elementos dessa linha, conforme demonstração a seguir:

X1 X2 X3 X4 b
Z 0 -3 0 5/3 800
Linha pivô atual
R1 0 1 2/3 -1/3 40
R2 1 1/2 0 1/6 80 Elementos da linha pivô
mulplicados por 3 (oposto do
valor -3, que é o coeficiente de
(x 3) 0 3 2 -1 120 X2 na função objevo)

Elementos atuais da linha da


(+) 0 -3 0 5/3 800
função objevo

Novos elementos da linha da


(=) 0 0 2 2/3 920
função objevo

A nova tabela terá o seguinte aspecto:

X1 X2 X3 X4 b
Z 0 0 2 2/3 920 Nova linha da função objevo
R1 0 1 2/3 -1/3 40
R2 1 1/2 0 1/6 80

Resta agora recalcular a nova linha da restrição R2. Devemos aplicar o mesmo
procedimento, conforme demonstração a seguir:

X1 X2 X3 X4 b
Z 0 0 2 2/3 920
Linha pivô atual
R1 0 1 2/3 -1/3 40
R2 1 1/2 0 1/6 80 Elementos da linha pivô
mulplicados por -1/2 (oposto do
valor 1/2, que é o coeficiente de
(x -1/2) 0 -1/2 -1/3 1/6 -20 X2 na restrição R2

Elementos atuais da linha da


(+) 1 1/2 0 1/6 80
restrição R2

Novos elementos da linha da


(=) 1 0 -1/3 1/3 60
restrição R2

20
A nova tabela terá o seguinte aspecto:

X1 X2 X3 X4 b
Z 0 0 2 2/3 920
R1 0 1 2/3 -1/3 40
R2 1 0 -1/3 1/3 60 Nova linha da restrição R2

Observe que agora não existe nenhum valor negativo na linha da função objetivo
Z. Isso sinaliza que a solução ótima do problema foi encontrada.

Para obtermos os valores das variáveis de decisão X1 e X2, que correspondem às


quantidades dos produtos A e B a serem fabricados, respectivamente, para que a
empresa obtenha o lucro máximo, devemos analisar as linhas de restrições R1 e R2
da tabela de coeficientes. Essa análise consiste em encontrar, para cada variável de
decisão, a linha onde o seu coeficiente é igual a 1 (um), sendo que o valor do termo
independente “b” dessa linha é o próprio valor da variável de decisão em questão.
Vejamos a seguir os procedimentos para obtenção desses valores.

Procedimento para encontrarmos o valor da variável de decisão X1:

Na coluna da variável X1, devemos localizar o coeficiente cujo valor é 1 (um).


Na linha desse coeficiente, devemos obter o valor do termo independente “b”, que
é o próprio valor da variável de decisão. Portanto, o valor de X1 é 60, conforme
podemos observar por meio da demonstração a seguir:

Coluna da variável X1

X1 X2 X3 X4 b
Z 0 0 2 2/3 920

Linha onde o R1 0 1 2/3 -1/3 40


coeficiente de X1 é R2 1 0 -1/3 1/3 60
igual a 1

Valor da variável X1

Procedimento para encontrarmos o valor da variável de decisão X2:

Da mesma forma, na coluna da variável X2, devemos localizar o coeficiente


cujo valor é 1 (um). Na linha desse coeficiente, devemos obter o valor do termo
independente “b”, que é o próprio valor da variável de decisão. Portanto, o valor
de X2 é 40, conforme demonstração a seguir:

21
21
UNIDADE Programação Linear: Métodos e Aplicações

Coluna da variável X2

X1 X2 X3 X4 b
Z 0 0 2 2/3 920
Linha onde o
coeficiente de X2 é R1 0 1 2/3 -1/3 40
igual a 1
R2 1 0 -1/3 1/3 60

Valor da variável X2

Para concluirmos a análise, vamos relembrar o enunciado do problema e o seu


modelo matemático:

ENUNCIADO
Uma empresa fabrica dois produtos: A e B, sendo que o lucro por unidade do
produto A é R$ 10,00 e do produto B é R$ 8,00. Na manufatura desses produtos
são empregadas apenas duas matérias-primas: MP1 e MP2, na seguinte proporção:
3 unidades de MP1 e 3 unidades de MP2 para cada unidade do produto A e 6
unidades de MP1 e 3 unidades de MP2 para cada unidade do produto B. A empresa
possui um estoque de 300 unidades de MP1 e 480 unidades de MP2. Considerando
que as variáveis de decisão são X1 (quantidade de A a ser produzida) e X2 (quantidade
de B a ser produzida), quais devem ser as quantidades de A e B a serem produzidas
para que a empresa obtenha o lucro máximo?

MODELO MATEMÁTICO
Maximizar Z = 10.X1 + 8.X2
Sujeito a
3.X1 + 3.X2 ≤ 300 (restrição de MP1)
6.X1 + 3.X2 ≤ 480 (restrição de MP2)
X1 , X2 ≥ 0 (restrição de não negatividade)

Sabendo-se que a solução ótima é dada por X1=60 e X2=40 (conforme aplicação
do método Simplex), podemos dizer que o lucro máximo será obtido se a empresa
fabricar 60 unidades do produto A e 40 unidades do produto B. O valor do lucro
pode ser encontrado substituindo-se as variáveis X1 e X2 da função objetivo Z por
seus respectivos valores:

Z = 10.X1 + 8.X2
Z = 10.(60) + 8.(40)
Z = 920

22
Observe que esse valor pode ser obtido através da própria tabela de coeficientes:

X1 X2 X3 X4 b
Lucro
Z 0 0 2 2/3 920
Quandade do produto B a ser
R1 0 1 2/3 -1/3 40 fabricada (X2)
R2 1 0 -1/3 1/3 60
Quandade do produto A a ser
fabricada (X1)

E assim, a solução do problema pode ser escrita da seguinte forma:

Para que a empresa obtenha o lucro máximo de R$ 920,00, ela deverá produzir 60
unidades do produto A e 40 unidades do produto B.

Ferramentas Computacionais
É fácil perceber que a aplicação do algoritmo Simplex para a resolução de
problemas de programação linear não é uma tarefa rápida. Apesar da simplicidade
do algoritmo, a sua aplicação envolve procedimentos repetitivos (iterações) que
demandam muito tempo de trabalho na reconstrução das várias versões da
tabela de coeficientes, o que propicia a introdução de eventuais valores errados,
comprometendo todo o trabalho.

O algoritmo Simplex não foi concebido para ser uma receita a ser seguida
manualmente, mas sim para ser implementado por meio de programas de
computadores. Nesse sentido, foram desenvolvidas diversas ferramentas
computacionais voltadas à resolução de problemas de programação linear baseadas
nesse algoritmo, das quais destacamos o software LINDO, desenvolvido pela
LINDOTM Systems (http://www.lindo.com).

Além das ferramentas específicas, o algoritmo Simplex pode ser implementado


por meio de aplicativos matemáticos, como por exemplo, o Excel (desenvolvido pela
Microsoft Corporation), o MatLab (desenvolvido pela MathWorks Inc.), dentre outros.

Existem ainda diversas ferramentas online, disponibilizadas gratuitamente pela


internet, que oferecem recursos para a resolução de problemas de programação
linear por meio do método Simplex. Como exemplo desse tipo de ferramenta,
destacamos o “SIMPLEX in PHP”, cujo código é disponibilizado nos termos
da GNU (General Public License) pela Free Software Foundation Inc. Uma
versão dessa ferramenta, adaptada às nossas necessidades, pode ser encontrada
no endereço http://vichinsky.com.br/simplex. Para ilustrar o seu uso, segue um
pequeno roteiro para a resolução do problema apresentado nesta unidade.

23
23
UNIDADE Programação Linear: Métodos e Aplicações

Roteiro para Utilização do Software


“SIMPLEX in PHP”
Acesse o endereço http://vichinsky.com.br/simplex e siga os passos descritos
a seguir.

1. Na tela inicial, informe o tipo de problema (maximização ou minimização),


a quantidade de variáveis de decisão e o número de restrições técnicas. O
nosso problema é de maximização, com duas variáveis de decisão (X1 e X2) e
duas restrições técnicas (R1 e R2). Após o preenchimento dos campos, clique
em “PROSSEGUIR”.

2. Na próxima tela, introduza o modelo matemático conforme indicações a


seguir. Ao final, clique em “PROSSEGUIR”.

Coeficiente de X1 na
função objevo: 10
Coeficiente de X2 na
função objevo: 8
Modelo Matemático
Max Z = 10.X1 + 8.X2
Sujeito a
3.X1 + 3.X2 ≥ 300
6.X1 + 3.X2 ≥ 480
X1 , X2 ≥ 0 Coeficientes de X1
nas restrições: 3 e 6

Termos independentes
Coeficientes de X2 das restrições: 300 e 480
nas restrições: 3 e 3

24
3. A resolução do problema é apresentada em uma única tela que contém os
seguintes elementos:

a. Modelo matemático original e modelo ajustado

b. Solução inicial e iterações

25
25
UNIDADE Programação Linear: Métodos e Aplicações

c. Solução ótima e análise gráfica

Observe que a solução encontrada pelo software é a mesma que encontramos


com os procedimentos realizados manualmente.

26
Material Complementar
Indicações para saber mais sobre os assuntos abordados nesta Unidade:

Livros
Pesquisa Operacional na Tomada de Decisões
LACHTERMACHER, G. Pesquisa Operacional na Tomada de Decisões. 4. ed. Sao Paulo:
Pearson Prentice Hall, 2012. Capítulo 2.

Introdução à Pesquisa Operacional


HILLIER, F. S.; LIEBERMAN, G. J. Introdução à Pesquisa Operacional. 9. ed. Porto Alegre:
Mc Graw-Whill, 2013. Capítulo 4.

Leitura
Utilização da Programação Linear e do Método SIMPLEX para Otimização da Produção de Pães em uma Empresa
de Panificação
Utilização da Programação Linear e do Método SIMPLEX para Otimização da Produção de
Pães em uma Empresa de Panificação, disponível em:
https://goo.gl/nKUQy2

O Uso da Ferramenta SOLVER do EXCEL na Resolução de Problemas de Programação Linear


O Uso da Ferramenta SOLVER do EXCEL na Resolução de Problemas de Programação Linear,
disponível em:
https://goo.gl/iXk9rb

27
27
UNIDADE Programação Linear: Métodos e Aplicações

Referências
ANDRADE, E. L. Introdução à Pesquisa Operacional: Métodos e Modelos Para
a Análise de Decisão. 4. ed. Rio de Janeiro: Ltc-Livros Técnicos e Científicos, 2011.

HILLIER, F. S.; LIEBERMAN, G. J. Introdução à Pesquisa Operacional. 9. ed.


Porto Alegre: Mc Graw-Whill, 2013.

LACHTERMACHER, G. Pesquisa Operacional na Tomada de Decisões. 4. ed.


São Paulo: Pearson Prentice Hall, 2012.

28

Você também pode gostar