Você está na página 1de 69

Instituto Politécnico de Portalegre

Escola Superior de Tecnologia e Gestão

Estudo de um Problema de Programação Linear


Investigação Operacional para Gestão

Discente:
André Antão – 19556

Docente:
João Luís de Miranda

Ano letivo 2019/2020


Lista de Siglas
PL – Programação Linear
IO – Investigação Operacional
Estudo de um Problema de Programação Linear

Índice de Anexos

ANEXO 1 – RESOLUÇÃO GRÁFICA ..............................................................................60

ANEXO 2 – RESOLUÇÃO NA FORMA TABULAR ..........................................................61

ANEXO 3 – SOLUÇÃO DO PROBLEMA DUAL...............................................................64

ANEXO 4 – JUSTIFICAÇÃO DOS VALORES DUAIS......................................................65

4.1. Alteração na variável y1 ........................................................................................65

4.2. Alteração na variável y2 ........................................................................................65

4.3. Alteração na variável y3 ........................................................................................66

ANEXO 5 – VARIAÇÃO NA FUNÇÃO OBJETIVO ...........................................................67

5.1. Gama de variação do parâmetro c1 ...........................................................................67

5.2. Gama de variação do parâmetro c2 ...........................................................................67

ANEXO 6 – VARIAÇÃO NOS PARÂMETROS INDEPENDENTES’ .................................68

6.1. Gama de variação do parâmetro b1..........................................................................68

6.2. Gama de variação do parâmetro b 2..........................................................................68

6.3. Gama de variação do parâmetro b 3..........................................................................69

v
Estudo de um Problema de Programação Linear

Índice Geral

CAPÍTULO I – PROGRAMAÇÃO LINEAR......................................................................13

1.1. Introdução à programação linear ...........................................................................13

1.2. Noções fundamentais............................................................................................14

CAPÍTULO II – O PROBLEMA DE PROGRAMAÇÃO LÍNEAR ......................................15

2.1. Considerações gerais............................................................................................15

2.2. Enunciado do problema ........................................................................................15

2.3. Contextualização e objetivação do problema real .................................................16

2.4. Problema específico ..............................................................................................16

2.5. Aspetos significativos do problema específico.......................................................17

2.6. Variáveis de decisão .............................................................................................17

CAPÍTULO III – FORMULAÇÃO DO MODELO ..............................................................18

3.1. Considerações gerais............................................................................................18

3.2. Modelação matemática .........................................................................................19

3.2.1. Função objetivo .................................................................................................19

3.2.2. Restrições funcionais .........................................................................................19

3.2.3. Aproximações ....................................................................................................19

3.2.4. Condições de não-negatividade.........................................................................20

3.2.5. Simplificações ....................................................................................................21

CAPÍTULO IV – RESOLUÇÃO GRÁFICA.......................................................................22

4.1. Considerações Gerais...........................................................................................22

4.2. Problema em estudo .............................................................................................22

vi
Estudo de um Problema de Programação Linear

CAPÍTULO V – ALGORITMO DO SIMPLEX ...................................................................25

5.1. Considerações gerais............................................................................................25

5.2. Forma canónica ....................................................................................................25

5.3. Resolução pelo algoritmo do Simplex ...................................................................27

5.4. Forma Tabular.......................................................................................................27

5.5. Forma Matricial .....................................................................................................32

CAPÍTULO VI – MÉTODO DUAL ....................................................................................43

6.1. Introdução ao método dual ....................................................................................43

6.2. Solução pelo método dual .....................................................................................46

6.3. Justificação dos valores duais ...............................................................................48

6.4. Comparação primal-dual .......................................................................................49

6.5. Propriedades da relação primal-dual .....................................................................50

CAPÍTULO VII – ANÁLISE DE SENSIBILIDADE............................................................51

7.1. Considerações gerais............................................................................................51

7.2. Variação na função objetivo, c’ ..............................................................................51

7.3. Variação nos parâmetros, b’..................................................................................53

CAPÍTULO VIII – ANÁLISE PARAMÉTRICA..................................................................56

8.1. Análise do parâmetro c1 .......................................................................................56

8.2. Análise do parâmetro b 1 .......................................................................................57

vii
Estudo de um Problema de Programação Linear

Índice de Expressões

Expressão 1 – Modelo de PL ...........................................................................................18

Expressão 2 – Formulação do problema..........................................................................21

Expressão 3 – Forma canónica do Simplex .....................................................................25

Expressão 4 – Forma canónica do problema ...................................................................26

Expressão 5 – Modelo da forma matricial ........................................................................32

Expressão 6 – Relação primal-dual .................................................................................43

Expressão 7 – Transformação primal-dual.......................................................................45

Expressão 8 – Problema Primal na forma algébrica .........................................................45

Expressão 9 – Problema Dual na forma algébrica ...........................................................45

Expressão 10 – Problema Primal na forma algébrica .......................................................46

Expressão 11 – Problema Dual na forma matricial...........................................................46

viii
Estudo de um Problema de Programação Linear

Índice de Quadros

Quadro 1 – Forma tabular (primeira iteração) ..................................................................28

Quadro 2 – Forma tabular (segunda iteração) .................................................................29

Quadro 3 – Forma tabular (segunda iteração) .................................................................29

Quadro 4 – Forma tabular (terceira iteração) ...................................................................30

Quadro 5 – Forma tabular (terceira iteração) ...................................................................31

Quadro 6 – Evolução do parâmetro c1.............................................................................56

Quadro 7 – Evolução do parâmetro b1 ............................................................................57

ix
Estudo de um Problema de Programação Linear

Índice de Gráficos

Gráfico 1 – Representação gráfica do problema ..............................................................23

Gráfico 2 – Evolução do parâmetro c1 .............................................................................56

Gráfico 3 – Evolução do parâmetro b1 .............................................................................57

x
Estudo de um Problema de Programação Linear

Introdução

Em diversas circunstâncias da vida empresarial e, em muitos casos, da vida pessoal,


há necessidade da procura, entre várias soluções possíveis para um determinado
problema, da solução ótima. Esta, por sua vez, deve satisfazer um objetivo, tendo em
consideração as condicionantes impostas pelas limitações às variáveis do problema. Neste
âmbito, surge a Programação Linear, que consiste numa técnica cujo objetivo é otimizar
funções lineares, sujeitas a restrições, também elas, lineares.
Sendo a unidade curricular de Investigação Operacional para Gestão uma disciplina
de carácter teórico-prático, procurou-se também no desenvolvimento deste trabalho criar
um elo de ligação entre os aspetos teóricos mais importantes e as resoluções propriamente
ditas, de carácter prático.
Neste trabalho académico, propus-me a desenvolver um problema de programação
linear, através da sua formulação, implementação e interpretação dos valores, com as
várias técnicas e metodologias lecionadas em sala de aula, e que consistem, de uma
maneira geral, na resolução gráfica, método do Simplex (forma tabular e matricial),
dualidade e relações existentes entre os problemas primal e dual, utilizando, para tal,
algumas ferramentas de resolução computacional, que auxiliam não só como ferramentas
de validação e aferição dos valores obtidos, mas também na interpretação dos valores,
uma vez que produzem relatórios que o possibilitam.
No final, apresentam-se ainda algumas conclusões relativamente aos aspetos
críticos da elaboração e do desenvolvimento deste trabalho académico.

11
Estudo de um Problema de Programação Linear

Abstract

In various circumstances of business life and, in many cases, of personal life, there is
a need to seek, among several possible solutions to a given problem, the optimal solution.
This, in turn, must satisfy an objective, considering the constraints imposed by limitations
on the variables of the problem. In this context, linear programming arises, which consists
of a technique whose objective is to optimize linear functions, subject to restrictions, also,
linear.
Since the Operational Research for Management curricular unit is a theoretical-
practical discipline, we also sought to develop this work to create a link between the most
important theoretical aspects and the resolutions themselves, of a practical nature.
In this academic work, I set out to develop a problem of linear programming, through
its formulation, implementation and interpretation of values, with the various techniques and
methodologies taught in the classroom, and which consist, in general, in graphic resolution,
simplex method (tableau and matrix form), duality and existing relationships between primal
and dual problems, using, for this purpose, some computational resolution tools, which help
not only as validation tools and measurement of the values obtained, but also in the
interpretation of the values, since they produce reports that enable it.
In the end, some conclusions are also presented regarding the critical aspects of the
preparation and development of this academic work.

12
Estudo de um Problema de Programação Linear

CAPÍTULO I – PROGRAMAÇÃO LINEAR

1.1. Introdução à programação linear

Uma das principais tarefas dos gestores é a capacidade para tomarem decisões. Por
vezes, para que estes consigam dar resposta a problemas com dimensões significativas
e/ou elevado grau de complexidade, é necessário que existam ferramentas fiáveis e
eficazes que os apoiem nessa responsabilidade. Para dar resposta a essa necessidade,
surge a Investigação Operacional, que se trata de uma abordagem científica direcionada à
tomada de decisão e que se socorre de modelos matemáticos para esse efeito.
A Investigação Operacional foca-se no estudo de problemas a nível da afetação de
recursos escaços, na medida em que estes, precisamente por serem limitados, devem ser
alocados da melhor forma possível e de acordo com as necessidades da organização. Os
modelos matemáticos, dos quais a Investigação Operacional se suporta, visam otimizar
recursos através da minimização ou maximização de funções compostas por um
determinado conjunto de restrições. Dessa forma, começa a ser estudado e analisado, em
meados do século XX, em plena Segunda Grande Guerra, o ramo científico da
Investigação Operacional a que se denomina de Programação Linear. Esta, por sua vez,
consiste na resolução de problemas de otimização através de sistemas de inequações
lineares.
Os militares da altura depararam-se com problemas diversos a nível logístico, tanto
no alojamento como na manutenção dos exércitos. Assim, em 1947, George Dantzig, em
conjunto com o grupo de trabalho SCOOP (Scientific Computation of Optimum Programs)
da Força Aérea Americana, desenvolveu um algoritmo de resolução de problemas de
Programação Linear denominado Algorítmo do Simplex, ou método do Simplex. Este
método, trata-se se um mecanismo robusto e eficaz para solucionar problemas com um
elevado número de variáveis e equações.
Atualmente, na maioria dos casos, a Programação Linear é utilizada por grandes
organizações como fonte de vantagem competitiva, na medida em que possibilita o
processamento e a gestão dos recursos e meios da empresa em tempo real, levando a
uma redução sistemática dos custos de produção e a um aumento da eficiência e
produtividade geral.

13
Estudo de um Problema de Programação Linear

1.2. Noções fundamentais

Antes de iniciar o estudo propriamente dito de um problema de programação linear,


é importante que algumas noções sejam compreendidas, no sentido de definir de forma
clara aquilo que está a ser tratado. Dessa forma, surgem algumas definições que não se
podem deixar de ter em consideração, nesta fase introdutória à programação linear. São
elas as seguintes:
➢ Função objetivo: função linear que se pretende otimizar, através da sua
minimização ou maximização;
➢ Restrições funcionais: constrangimentos lineares a verificar para otimalidade da
solução;
➢ Condições de não-negatividade: utilizadas no sentido de condicionar as
variáveis do problema a valores positivos ou nulos;
➢ Solução possível: solução que verifica todas as restrições;
➢ Região possível: região que engloba todas as soluções possíveis;
➢ Solução impossível: solução que viola pelo menos uma das restrições;
➢ Solução ótima: solução possível que conduz ao melhor valor da função objetivo.

Para além das noções, gerais e abstratas, mais importantes num programa de
programação linear, importa ainda conhecer as características que estão implícitas em
qualquer modelo de programação linear:
➢ Proporcionalidade: a contribuição de cada atividade para o objetivo é
proporcional ao nível próprio da atividade;
➢ Aditividade: o valor global, do objetivo ou de utilização de recursos, obtem-se da
adição das contribuições individuais das diferentes atividades;
➢ Continuidade ou divisibilidade: a variáveis de decisão podem assumir valores
fracionários.

Por se considerar que estas noções e características servem como base de suporte
à interpretação do conteúdo, e que não constituem o foco do trabalho académico, e sim
como complemento deste, optou-se por colocar apenas as suas definições, a partir da
sebenta da unidade curricular.

14
Estudo de um Problema de Programação Linear

CAPÍTULO II – O PROBLEMA DE PROGRAMAÇÃO LÍNEAR

2.1. Considerações gerais

Pretende-se, no decorrer do presente capítulo, dar a conhecer o problema concreto


de programação linear sobre o qual se versa este trabalho académico.
Nesse sentido, será exposto o enunciado do problema, sendo este posteriormente
tratado e analisado no contexto do problema específico, que visa detalhar os aspetos mais
relevantes daquele e que servirá de suporte à elaboração da modelação matemática.
Ainda neste capítulo, será dado algum destaque a aspetos significativos que
advenham da interpretação e contextualização do problema específico bem como, ainda,
serão definidas as variáveis de decisão do problema.

2.2. Enunciado do problema

O mercado financeiro disponibiliza diferentes produtos em risco e rentabilidade, pelo


que um investidor decide aplicar 800.000 € das suas poupanças em dois produtos, A e B.
Atendendo a que as unidades de participação de cada um dos produtos são valorizadas
em 10 Euros, maximize a rentabilidade global da aplicação sabendo que:
• Para o produto A, de menor risco, estima-se uma taxa de rentabilidade de 7% e
para o produto B, de maior risco, espera-se uma rentabilidade de 9%;
• Visando a segurança da aplicação, o investidor decide aplicar no produto de menor
risco, pelo menos, o triplo do montante aplicado no produto de maior risco;
• A aplicação no produto de maior risco não deve ultrapassar o montante de
250.000€.

Enunciado do problema disponibilizado pelo docente - Portfólio 05

15
Estudo de um Problema de Programação Linear

2.3. Contextualização e objetivação do problema real

O problema anteriormente exposto e que será objeto de análise ao longo


deste trabalho académico, representa uma situação comum no mercado financeiro,
onde a tomada de decisão deve ser feita de forma criteriosa e não meramente
especulativa.
Nesse sentido, apresenta-se um problema cujo objetivo é o de maximizar a
rentabilidade de uma aplicação, limitada a nível de recursos, e cuja alocação destes
deve ser feita de forma criteriosa a cada um dos dois produtos, conforme o risco
que estes representam para o investidor.

2.4. Problema específico

Decorrente de uma leitura detalhada e criteriosa do enunciado do problema, surge o


problema específico, que nada mais é do que uma exposição da interpretação que daquele
se retira. Esta análise visa, acima de tudo, dar destaque aos aspetos mais significativos do
enunciado e da interpretação do mesmo. É útil, principalmente, como suporte da
modelação matemática.
Para o problema em análise, elaborou-se o seguinte esquema representativo do
problema específico:

Maximizar Rentabilidade Global

Sujeito a, Triplo das


Unidades de
unidades de
participação do  participação do
produto A
produto B

Unidades de Disponibilidade
participação do  monetária para o
produto B produto B

Unidades de Disponibilidade
Unidades de
monetária para
participação do participação do 
produto A ambos os
produto B
produtos

16
Estudo de um Problema de Programação Linear

2.5. Aspetos significativos do problema específico

Estamos perante um problema de maximização do(a) lucro/rentabilidade e que será


composto(a) por determinadas unidades de participação de ambos os produtos, A e B, ou
de apenas um deles.
Toda e qualquer aplicação feita nesse âmbito deve cumprir escrupulosamente com
as três restrições supra indicadas, por forma a garantir uma solução válida para o
investidor. Nesse contexto, as restrições do problema foram definidas tendo em
consideração (1) o limite de risco a que o investidor pretende estar exposto, (2) a
rentabilidade das aplicações dos dois produtos financeiros disponíveis, bem como (3) a
disponibilidade monetária do para essas aplicações.

2.6. Variáveis de decisão

A análise que visa definir ao certo a aplicação que maximiza o lucro, e à qual se
dedicam os seguintes capítulos, deve ter em consideração alguns fatores para a
construção do sistema de tomada de decisão. Ou seja, para que se possa tomar a melhor
decisão possível quanto à aplicação financeira a realizar, devem-se ter bem definidos, à
priori, os aspetos sobre os quais se vai decidir.
Nesse âmbito, destacam-se duas variáveis:

Variável 1 – número de unidades de participação a adquirir do produto A;


Variável 2 – número de unidades de participação a adquirir do produto B.

17
Estudo de um Problema de Programação Linear

CAPÍTULO III – FORMULAÇÃO DO MODELO

3.1. Considerações gerais

Através da formulação do modelo de programação linear, pretende-se expressar


de forma quantitativa os elementos anteriormente definidos, de forma qualitativa, no
problema específico (esquema 1) e que, sendo aquela uma ilustração de natureza
matemática, dá suporte às metodologias de resolução de problemas de programação linear
estudadas nos próximos capítulos.
Sendo uma componente crítica no tratamento do problema, deve-se ter especial
atenção nesta etapa, caso contrário, todos os erros que daqui possam surgir tornam os
restantes cálculos e resultados irreais e sem qualquer contexto.
Destacam-se, no estudo da formulação, três aspetos chave: a função objetivo; as
restrições funcionais; e, as condições de não negatividade.
Para ilustrar a representação das partes integrantes de um modelo de programação
linear, para um problema de maximização, apresenta-se a seguinte expressão:

Expressão 1 – Modelo de PL

Fonte: Sebenta da Unidade Curricular

Aqui, representa-se por x as variáveis do problema e por c os seus coeficientes. A,


por sua vez, corresponde à matriz dos coeficientes da base da solução, e b ao lado direito,
ou seja, aos termos independentes. Por fim, surgem as restrições de não-negatividade (x
≥ 0), que, tal como o próprio nome indica, levam as variáveis a apresentar apenas valores
positivos.

18
Estudo de um Problema de Programação Linear

3.2. Modelação matemática

3.2.1. Função objetivo

A função objetivo é uma função linear, que tanto pode ser de minimização como de
maximização, e que surge na perspetiva daquilo que se pretende otimizar.
Neste caso em concreto, tem-se uma função de maximização, cujas variáveis de
decisão, A e B, correspondem ao número de unidades de participação dos produtos A e
B, respetivamente, sendo Z o lucro total (rentabilidade global) proveniente da aplicação
financeira efetuada pelo investidor. Dessa forma, o objetivo será determinar valores para
os quais as variáveis definidas anteriormente maximizam a função:
Z = 0,7 A + 0,9 B
A função objetivo do problema em análise trata-se de uma função de maximização
(Z) com coeficientes 0,7 e 0,9, que dizem respeito às variáveis de decisão A e B,
respetivamente.

3.2.2. Restrições funcionais

As restrições funcionais correspondem a um conjunto de constrangimentos lineares


a que uma otimização deve obedecer. Constituem-se, na forma standard, por um conjunto
de desigualdades, sendo estas ≤ quando se trata de um problema de maximização, e ≥
quando se trata de um problema de minimização.
De acordo com o determinado anteriormente no problema específico, apurou-se o
seguinte conjunto de restrições:

A ≥ 3B
B  25.000
A + B  80.000

3.2.3. Aproximações

Repare-se, que embora no contexto do problema específico esta representação seja


válida, não o é para a formulação matemática do problema, já que se está perante um

19
Estudo de um Problema de Programação Linear

problema de maximização, cujas restrições devem apresentar desigualdades ≤ ao invés


de ≥, o que não acontece na primeira restrição.
Verifique-se dessa forma, com o objetivo de solucionar o desfasamento na primeira
restrição, face às restantes, as equivalências que a inequação (A ≥ B) pode tomar:

⇔ A ≥ B ⇔
⇔ A + 3B ≥ 0 ⇔
⇔ -A + 3B  0

A expressão matemática, referente à primeira restrição, pode agora ser reformulada


de forma a que a desigualdade seja semelhante às das outras restrições e permitindo em
última análise que o desenvolvimento que se segue seja realizo sem qualquer impasse.

3.2.4. Condições de não-negatividade

O problema de programação linear em estudo representa uma situação real, pelo


que todos os tratamentos realizados sobre o mesmo devem permanecer, também eles, o
mais próximos possível da realidade, não descorando, claramente, o facto de que, embora
matematicamente exista possibilidade de efetuar cálculos e obter resultados, não é esse o
objetivo neste contexto.
Tendo esse aspeto em consideração, e assumindo que não existem no contexto real
“unidades de participação” negativas de qualquer produto financeiro, optou-se por
complementar a função objetivo com uma restrição de não negatividade, que faz com que
as variáveis A e B assumam obrigatoriamente valores positivos. Esta restrição pode ser
representada da seguinte forma:

A, B ≥ 0

Concluídos os aspetos mais relevantes que compõem a função objetivo, pode-se


então representá-la pelo seguinte modelo:

Maximizar Z = 0,7 A + 0,9 B


Sujeito a, -A + 3B  0
B  25.000
A + B  80.000
A, B ≥ 0

20
Estudo de um Problema de Programação Linear

3.2.5. Simplificações

É percetível que a formulação final assume, tanto valores muito pequenos, como por
exemplo os coeficientes da função objetivo, com também valores demasiado grandes,
como por exemplo os valores que se encontram do lado direito das desigualdades. Na
tentativa de tornar a modelação matemática mais elucidativa e uniforme, optou-se por tratar
os coeficientes da função objetivo em unidades, bem como os valores que se encontram
do lado direito das desigualdades em milhares de unidades. Como resultado desta
alteração, surge uma nova formulação, como versão final do modelo de programação
linear:

Expressão 2 – Formulação do problema

Maximizar Z = 7A + 9B
Sujeito a, -1A+3B  0
1 B  25
1 A + 1 B  80
A, B ≥ 0
3333333
Fonte: Elaboração própria

21
Estudo de um Problema de Programação Linear

CAPÍTULO IV – RESOLUÇÃO GRÁFICA

4.1. Considerações Gerais

A análise gráfica de um problema de Programação Linear possibilita a compreensão


do comportamento das variáveis que o compõem e permite identificar a região possível, ou
seja, a região para a qual todos e quaisquer valores que a integram são válidos (soluções
possíveis), já que cumprem todas as restrições. Também, no contexto da representação
gráfica, é possível identificar a solução ótima, isto é, o melhor valor, dentro do conjunto de
soluções possíveis, que a função objetivo pode tomar.

4.2. Problema em estudo

O modelo construído para a representação gráfica do problema em análise (figura 1) é


constituído por duas variáveis A e B, representadas nos eixos das abcissas e das
ordenadas, respetivamente. Estas variáveis, assumirão apenas valores positivos, por conta
das condições de não negatividade, enquadrando-se dessa maneira no quadrante positivo
do sistema de coordenadas cartesiano.
No gráfico, representaram-se as restrições resultantes da formulação do problema:

Primeira restrição:
-A + B  0
Transformando a desigualdade numa igualdade, obtém-se:
-A + 3B = 0
Já que uma linha reta pode ser traçada graficamente por dois pontos, atribuiu-se o
valor de zero à variável A (A = 0 ⇒ 3 B = 0 ⇔ B = 0) o que faz com que a variável B
assuma o valor 0, dando origem ao ponto (0 , 0). De igual forma, atribuiu-se o valor de zero
à variável B (B = 0 ⇒ - A = 0 ⇔ A = 0) assumindo a variável A valor 0, originando o ponto
(0 , 0).

22
Estudo de um Problema de Programação Linear

Segunda restrição:
B  25
Adotando um procedimento análogo ao utilizado na primeira restrição, obtém-se:
B = 25
Uma vez que a equação é composta apenas pela variável B, assume-se que B = 25
⇔ B = 25), e obtém-se o ponto (25, 0) para aquela variável.

Terceira restrição:
A + B  80
Convertendo a desigualdade numa igualdade, obtém-se:
A + B = 80
E logo, para traçar um segmento de reta que represente esta restrição, assume-se
para a variável A um valor igual a 0 (A = 0 ⇒ B = 80 ⇔ B = 80), o que dá origem ao ponto
(0, 80). Também nesta perspetiva, se se considerar um valor igual a zero para a variável
B, então: (B = 0 ⇒ A = 80 ⇔ A = 80) e obtém-se o ponto (80, 0).
Uma vez concluída a análise das restrições do problema e identificados os pontos
que permitem traçar os segmentos de reta no gráfico, utilizou-se o software “IOR Tutorial”
para traçar uma representação gráfica válida do problema (Anexo 1). O gráfico obtido
nesse programa pode ser representado da seguinte forma:
Gráfico 1 – Representação gráfica do problema

Fonte: Elaboração própria


23
Estudo de um Problema de Programação Linear

Após traçar os segmentos de reta no gráfico é possível identificar três vértices: A, B


e C. Verifica-se que o vértice B é composto por uma interseção entre a linha 1 (- A + 3 B
= 0) e a linha 2 (A + B = 80). Essa mesma interseção pode ser calculada da seguinte
forma:

1ª Linha -A+3B=0 -
2ª Linha A + B = 80 A = 80 - B

Pelo que…
- (80 - B) + 3 B = 0 ⇔
⇔ (- 80) + B + 3 B = 0 ⇔
⇔ 4 B = 80 ⇔
⇔ B = 20

Logo…
A + B = 80 ⇔
⇔ A + 20 = 80 ⇔
⇔ A = 60

O vértice B está, dessa forma, demarcado no ponto (60, 20), que corresponde ao
vértice ótimo (solução ótima) do problema e que pode ser verificado da seguinte maneira:

Vértices Função Objetivo (Z)


A (0,0) (0) x 7 + (0) x 9 = 0
B (60,20) (60) x 7 + (20) x 9 = 600 Solução ótima!
C (80,0) (80) x 7 + (0) x 9 = 560

24
Estudo de um Problema de Programação Linear

CAPÍTULO V – ALGORITMO DO SIMPLEX

5.1. Considerações gerais

No capítulo anterior analisou-se a possibilidade de resolver problemas de


programação linear através do método gráfico, no entanto, este recurso apenas possibilita
a resolução de problemas em que o número de varáveis é reduzido. Com vista a solucionar
problemas de maior dimensão, que rapidamente podem ascender às dezenas, centenas e
até milhares de variáveis, surgiu o método Simplex, criado por George Dantzig. De
natureza algorítmica, este procedimento pode ser apresentado na forma primal, dual e
primal-dual.

5.2. Forma canónica

Com vista a otimizar um problema de programação linear, deve-se, primeiramente,


transformar o seu conjunto de desigualdades, ou seja, as inequações que restringem
quanto aos limites máximos e mínimos de recursos ou de níveis de atividade, quer se esteja
a maximizar ou a minimizar estes fatores, para um conjunto de equações. Esse
procedimento passa pela adição de variáveis de folga (slack’s) às restrições, sendo que
num problema de maximização, com restrições “menor ou igual que”, o coeficiente deve
ser (+1) e num problema de minimização, com restrições “maior ou igual que”, deve ser (-
1).
Posto isto, para qualquer problema com n variáveis e m restrições, pode definir-se a
seguinte forma canónica:
Expressão 3 – Forma canónica do Simplex

Fonte: Sebenta da Unidade Curricular

25
Estudo de um Problema de Programação Linear

Do problema inicial (Expressão 1), composto por duas variáveis (n = 2) e por três
restrições (m = 3), resulta a seguinte forma canónica:

Expressão 4 – Forma canónica do problema

Maximizar Z = 7 A + 9 B + 0 s1 + 0 s2 + 0 s3
Sujeito a, - A + 3 B + 1 s1 = 0
B + 1 s2 = 25
A + B + 1 s3 = 80
A, B, s1, s2, s3 ≥ 0

Fonte: Elaboração própria

Adicionaram-se três variáveis de folga (s1, s2 e s3), apresentando estas coeficientes


positivos em cada uma das três restrições e coeficientes negativos no objetivo. É de
salientar que, sendo variáveis de coeficientes positivos (+1), se exprimem com relativa
facilidade face às restantes variáveis, pelo que se obtém:

s1 = (– A) – 3 B
s2 = 25 – B
s3 = 80 – A – B

Adicionadas as variáveis de folga ao problema inicial, constata-se que este fica agora
composto por cinco variáveis (n = 5) e três equações (m = 3), o que o torna um problema
indeterminado, já que (n > m), podendo-lhe corresponder mais do que uma solução. Dessa
maneira, para que o problema possa ser resolvido, deve-se achar a diferença entre o
número de variáveis e o número de equações (n – m), já que só assim é possível calcular
os “graus de liberdade”, ou seja, o número de variáveis que terão de ser anuladas
(atribuição de valor nulo) no sistema para que a igualdade entre variáveis e equações se
verifique (n = m).
O problema atual (Expressão 3), em que (n > m) ⇔ (5 > 3), dá origem a (n – m) ⇔
(5 – 3) = 2 graus de liberdade, ou seja, há duas variáveis a que se deve atribuir valor nulo
(variáveis não-básicas), já que não entram na base da solução. Por sua vez, as restantes
três variáveis (variáveis básicas) são aquelas que, tendo valores não nulos, entram nada
base da solução (solução básica).

26
Estudo de um Problema de Programação Linear

5.3. Resolução pelo algoritmo do Simplex

A resolução através do algoritmo do Simplex, seja ela na forma tabular ou matricial,


deve seguir as seguintes etapas:
➢ Inicialização: obter uma primeira solução básica possível, anulando os (n - m)
valores das variáveis não-básicas;
➢ Teste de otimalidade: verificar se a atual solução básica possível é ótima,
comprovando se os coeficientes da função objetivo (expressa em termos das
variáveis não-básicas) são todos positivos;
➢ Ciclo iterativo:
1) Direção da procura: selecionar a variável não básica que entra na base,
escolhendo-se a do coeficiente negativo da função objetivo com maior valor
absoluto;
2) Determinação do avanço: selecionar a variável que sai da base,
escolhendo (através da aplicação do teste da razão mínima) aquela que
primeiro decresce para zero;
3) Cálculo da nova solução básica: através das operações usuais de
eliminação Gaussiana em matrizes, obter o vetor identidade na coluna
correspondente à nova variável básica.

5.4. Forma Tabular

Tendo em consideração os aspetos identificados no ponto 5.2., procede-se agora à


resolução do problema (Expressão 3) na forma tabular do algoritmo do Simplex.
Sendo que as variáveis de folga (s1, s2 e s3) assumem facilmente os valores do lado
direito das igualdades (azul), serão estas as variáveis básicas do sistema (verde), enquanto
as variáveis A e B assumirão valores nulos, sendo estas as variáveis não-básicas (laranja):

Maximizar Z = 7 A + 9 B + 0 s1 + 0 s2 + 0 s3
Sujeito a, - A + 3 B + 1 s1 = 0
B + 1 s2 = 25
A+3B + 1 s3 = 80
A, B ≥ 0

27
Estudo de um Problema de Programação Linear

Logo…

s1 = 0
A=0
s2 = 25 e Z=0
B=0 s3 = 80

Para que seja possível melhorar o objetivo é necessário que se aumentem também
os valores de uma das duas variáveis não-básicas, já que são estas as variáveis que
apresentam quocientes positivos na função objetivo e, por esse motivo, possibilitam o
aumento da rentabilidade da solução.
Com vista a melhorar o objetivo do sistema, seleciona-se uma nova variável para
entrar na base. A primeira etapa a ter em consideração para esse efeito é a de escolher a
variável que apresenta coeficiente mais elevado na função objetivo e dessa forma
seleciona-se a variável B para entrar na base. A segunda etapa, depois de definir a variável
que entra na base da solução, é definir a variável que sai da base e, para esse efeito,
utiliza-se o teste da razão mínimo. Este, por sua vez, consiste em selecionar o valor mínimo
do apuramento das razões entre o lado direito das igualdades e as variáveis básicas:

θ1 = 0/3 = 0 A variável s1 sai


θ2 = 25/1 = 25 da base e passa
θ3 = 80/1 = 80 a variável não -
básica.

Da seleção da variável que entra na base da solução (B) e da variável que sai (s1),
obtém-se o seguinte quadro:

Quadro 1 – Forma tabular (primeira iteração)

Base A B s1 s2 s3 b

L1 s1 -1 3 1 0 0 0

L2 s2 0 1 0 1 0 25

L3 s3 1 1 0 0 1 80

L4 Z -7 -9 0 0 0 0

Fonte: Elaboração própria

28
Estudo de um Problema de Programação Linear

Selecionado o pivot (3), procede-se à divisão de toda a L1 pelo seu valor (L1 ⇒ L1

÷ 3), de forma a que este passe a assumir coeficiente 1, como se pode verificar no quadro
seguinte:

Quadro 2 – Forma tabular (segunda iteração)

Base A B s1 s2 s3 b

L1 s1 - 1/3 1 1/3 0 0 0

L2 s2 0 1 0 1 0 25

L3 s3 1 1 0 0 1 80

L4 Z -7 -9 0 0 0 0

Fonte: Elaboração própria

Para anular os restantes valores da variável B, aplicou-se a eliminação Gaussiana à


linha 2 [L2 ⇒ (– 1 L1) + L2], à linha 3 [L3 ⇒ (– 1 L1) + L3] e à linha 4, que corresponde
à linha do objetivo [L4 ⇒ (9 L1) + L4]. Será que a solução já é ótima? Veja-se quadro
seguinte:

Quadro 3 – Forma tabular (segunda iteração)

Base A B s1 s2 s3 b

L1 B - 1/3 1 1/3 0 0 0

L2 s2 1/3 0 - 1/3 1 0 25

L3 s3 4/3 0 - 1/3 0 1 80

L4 Z -10 0 3 0 0 0

Fonte: Elaboração própria

A solução não é ótima e ainda pode melhorar, já que na linha do objetivo (L4) ainda
se encontra um valor que, estando no simétrico (- 10), corresponde a (+ 10) e, assim sendo,

29
Estudo de um Problema de Programação Linear

é sim possível aumentar a rentabilidade se a variável A assumir um valor diferente de 0 e


entrar na base da solução. Repare-se ainda que a coluna correspondente à variável B é
agora um vetor coluna e por esse motivo corresponde à matriz identidade.

Tem-se que:

B=0
s1 = 0
s2 = 25 e Z=0
A=0 s3 = 80

Procede-se ao teste da razão mínima selecionando o fator limitante, neste caso a


variável s3, para sair da base da solução:

θ1 = 0/(-1/3) = n.d.
θ2 = 25/(1/3) = 75
θ3 = 80/(4/3) = 60 A variável s3 sai da
base e passa a
variável não-básica.

Seleciona-se o pivot, neste caso 1, e divide-se toda a sua linha correspondente pelo
seu valor (L3 ⇒ L3 ÷ 4/3), de forma a que este passe a assumir coeficiente 1, como se
pode verificar no quadro seguinte:

Quadro 4 – Forma tabular (terceira iteração)

Base A B s1 s2 s3 b

L1 B - 1/3 1 1/3 0 0 0

L2 s2 1/3 0 - 1/3 1 0 25

L3 s3 1 0 - 1/4 0 3/4 60

L4 Z -10 0 3 0 0 0

Fonte: Elaboração própria

30
Estudo de um Problema de Programação Linear

Selecionou-se a variável A para entrar na base da solução e a variável s3 para sair


dela. Assim, procedeu-se posteriormente à eliminação Gaussiana com afetação na linha 1
(L1 ⇒ 1/3 L3 + L1), na linha 2 (L2 ⇒ (– 1/3) L3 + L2) e na linha 4, ou seja, a linha do

objetivo (L4 ⇒ + 10 L3 + L4).


Como resultado dos cálculos, obtém-se a seguinte tabela:

Quadro 5 – Forma tabular (terceira iteração)

Base A B s1 s2 s3 b

L1 B 0 1 1/4 0 1/4 20

L2 s2 0 0 - 1/4 1 - 1/4 5

L3 A 1 0 - 1/4 0 3/4 60

L4 Z 0 0 1/2 0 15/2 600

Fonte: Elaboração própria

Chega-se dessa forma, na terceira iteração, à solução ótima. O objetivo não tem
agora valores positivos e dessa forma significa que esta é a solução ótima para este
problema de programação linear. A solução é composta por 60 milhares de unidades do
produto A (A = 60), por 20 milhares de unidades do produto B (B = 20) e por uma folga de
5 milhares de unidades para o produto B ( s2 = 5), o que perfaz uma rentabilidade de 600
centenas de euros (Z = 600).
Em suma, pode dizer-se que para chegar à solução ótima, ou seja, ao ponto em que
não é possível aumentar mais a rentabilidade da nossa solução, foi necessário, ao longo
do tratamento pela forma tabular, retirar da base inicial (colocar como variáveis não-
básicas) as variáveis de folga s1 e s3, enquanto se colocou na base da solução as variáveis
A e B (variáveis básicas).
Veja-se o resultado final através da forma tabular do algoritmo do Simplex:

B = 20
s1 = 0
s2 = 5 e Z = 600 Solução ótima e que já
s2 = 0 A = 60
não pode ser melhorada.

31
Estudo de um Problema de Programação Linear

5.5. Forma Matricial

Um problema de programação linear pode ainda ser resolvido através da forma


matricial do Simplex, que tem em consideração, como o próprio nome indica, a resolução
através do cálculo matricial, ou seja, o cálculo por matrizes.
Nesta fase inicial de introdução à forma matricial, torna-se essencial definir a
representação de cada matriz utilizada ao longo das várias operações, pelo que se
apresenta uma breve explicação do que representa cada matriz:
A matriz básica, composta pelas variáveis básicas do problema, representa-se por
B, enquanto a matriz que diz respeito aos coeficientes básicos da função objetivo se
apresenta como cB; Por sua vez, AN é a matriz não-básica do sistema, onde se encontram
os coeficientes das variáveis não-básicas, enquanto CN diz respeito aos coeficientes não-
básicos da função objetivo. Neste âmbito surge ainda b, como sendo a matriz que
representa o lado direito das desigualdades, também definida aqui como a matriz da
solução.
No que diz respeito ao cálculo matricial propriamente dito, são as matrizes
anteriormente apresentadas que servem de base para os cálculos que sustentam a
determinação da solução ótima. Posto isto, importa nesta fase definir cada matriz utilizada
nessas operações:
Da matriz básica (B) pode obter-se a matriz inversa (B-1), onde se encontram todos
os passos da eliminação Gaussiana. Logo, para o cálculo da solução ótima, procede-se à
multiplicação matricial da matriz inversa pela matriz da solução (b) e assim obtém-se a
matriz do lado direito atualizada (xB = B-1 . b). Por sua vez, para atualizar o lado esquerdo,
ou seja, a matriz não básica, multiplica-se a matriz inversa por esta última (K = B-1 . AN).
A forma matricial do Simplex, pode ser representada da seguinte forma:

Expressão 5 – Modelo da forma matricial

Fonte: Sebenta da Unidade Curricular

32
Estudo de um Problema de Programação Linear

A resolução de qualquer problema na forma matricial do Simplex deve seguir os


seguintes passos:
1) Escolher vetor das variáveis básicas, xB
2) Determinar a matriz base, B
3) Calcular a matriz inversa da base, B-1
4) Determinar a solução básica, xB = B-1 . b; Z = cB . xB
5) Atualizar matriz não - básica: K = B-1 . AN
6) Atualizar função objetivo: y = cB . B-1 ; r = cN - cB . B-1 . AN
7) Verificar otimalidade (cN < 0) ou selecionar para entrar na base a variável
de maior valor positivo não - básico, ocorrendo na coluna (e);

8) Sai da base a variável associada ao valor mínimo de, ,


que ocorre na linha (s); voltar ao passo inicial;

O problema inicial (Expressão 3), pode formular-se o problema na forma matricial, da


seguinte forma:

-1 3 1 0 0 0 s1
c= 7 9 , A, I = 0 1 0 1 0 , b = 25 , x= A , xs = s2
1 1 0 0 1 80 B s3

1ª Iteração:

Numa primeira iteração, selecionam-se as variáveis básicas (xB), neste caso, as


variáveis de folga, a partir das quais se obtém a matriz base (B):

s1 1 0 0
xB = s2 , B= 0 1 0
s3 0 0 1

Opta-se por selecionar as variáveis de folga para entrarem na base, já que são
aquelas que melhor se representam em função do lado direito das igualdades (b).

33
Estudo de um Problema de Programação Linear

Definida a primeira matriz básica, a partir da formulação inicial do problema na forma


canónica (Expressão 3), correspondente às variáveis de folga (s1, s2, s3), procede-se agora
à determinação da matriz identidade/inversa (B-1):

1 0 0
B-1 = 0 1 0
0 0 1

A matriz identidade obtida é semelhante à matriz base, logo, as variáveis de folga


correspondem ao lado direito:

s1 1 0 0 0 0
s2 = 0 1 0 . 25 = 25
s3 0 0 1 80 80

Sucede ainda que, devido aos coeficientes básicos correspondem aos coeficientes
das variáveis de folga (cB), ou seja, a valores zero, o valor da função objetivo (Z), também
ela será igual a zero:

cB = 0 0 0

0
Z= 0 0 0 . 25 = 0
80

Para melhorar o valor do objetivo deve-se fazer uma aplicação, ou seja, adquirir
unidades de participação do produto A ou do produto B que, por sua vez, têm associada
uma rentabilidade e, por esse motivo, permitem o aumento do valor de Z. Essa alteração,
implica que uma variável de folga saia da base e que uma variável, A ou B ,entre na base
da solução.

34
Estudo de um Problema de Programação Linear

Para além da atualização do lado direito feita anteriormente, deve-se neste momento
proceder-se ainda à atualização da matriz não-básica (K):

1 0 0 -1 3 -1 3
K= 0 1 0 . 0 1 = 0 1
0 0 1 1 1 1 1

Ainda, por eliminação Gaussiana, procede-se à atualização da função objetivo, tanto


para as variáveis duais (y), relacionada às variáveis de folga, como para os custos
reduzidos (r), associados às variáveis não básicas:

1 0 0
y= 0 0 0 . 0 1 0 = 0 0 0
0 0 1

1 0 0 -1 3
r= 7 9 - 0 0 0 . 0 1 0 . 0 1 = 7 9
Entra
0 0 1 1 1 B!

Posto isto, importa agora verificar a solução quanto à sua otimalidade. Neste sentido,
se a solução for ótima e não existir nenhuma iteração que cause uma melhor solução,
então os coeficientes dos custos reduzidos devem ser negativos. Como se pode verificar,
existem ainda valores positivos, ou seja, a solução não é ótima, pelo que se adota o critério
de seleção do maior valor, neste caso 9, que corresponde à variável B que irá entrar na
base da solução (índice “e”) da próxima iteração. Como o número de varáveis deve ser
igual ao número de equações, haverá uma variável que tem de sair da base da solução,
pelo que se adota o teste da razão mínima (θ) para verificar qual a variável que sai:

0 Sai s1!

θ = 25
80

Seleciona-se o menor valor, ou seja, o recurso limitante, que diz respeito ao recurso
que ocorre em menor quantidade relativa, neste caso 0, correspondente à variável s1 que

35
Estudo de um Problema de Programação Linear

sai da base da solução (índice “s”). Na próxima iteração, B será uma variável não-básica
e s1 uma variável básica.

2ª Iteração

Como se verificou na primeira iteração, existe uma alteração das variáveis básicas
(xB) que dão origem a uma nova matriz básica (B), uma vez que a solução do problema
não era ótima. Assim, para esta nova iteração, obtêm-se as seguintes matrizes:

B 3 0 0
xB = s2 , B= 1 1 0
s3 1 0 1

Também, a partir a matriz básica, se obtém a matriz identidade (B-1):

1/3 0 0
B-1 = - 1/3 1 0
- 1/3 0 1

Através desta matriz, podem agora ser atualizados os coeficientes básicos:

B 1/3 0 0 0 0
s2 = - 1/3 1 0 . 25 = 25
s3 - 1/3 0 1 80 80

Uma vez que o coeficiente básico da variável B é 9 e no lado direito das igualdades
(b) o coeficiente para esta variável é 0, a sua multiplicação (9x0=0) não originará aumentos
nos valores do objetivo:

cB = 9 0 0

0
Z= 9 0 0 . 25 = 0
80

36
Estudo de um Problema de Programação Linear

O objetivo pode ainda ser melhorado através da aquisição de unidades de


participação do produto A, já que este trará implica rentabilidade, que por sua vez fará
aumentar o valor do objetivo. Esta aquisição, implica adicionar a variável A à base da
solução, pelo que uma das variáveis de folga s2 ou s3 terá de sair da base.
Procede-se então à atualização da matriz não-básica (K):

1/3 0 0 -1 1 - 1/3 1/3


K = - 1/3 1 0 . 0 0 = 1/3 - 1/3
- 1/3 0 1 1 0 1 1/3 - 1/3

Ainda, a atualização da função objetivo para as variáveis duais (y), relacionada às


variáveis de folga e para os custos reduzidos (r), associados às variáveis não básicas:

1/3 0 0
y= 9 0 0 . - 1/3 1 0 = 3 0 0
- 1/3 0 1

1/3 0 0 -1 1
r= 7 0 - 9 0 0 . - 1/3 1 0 . 0 0 = 10 0
Entra
- 1/3 0 1 1 0 A!

A solução ainda não é ótima, já que ainda existe um coeficiente positivo nos custos
reduzidos. Seleciona-se o valor 10, correspondente à variável A para entrar na base da
solução (índice “e”) e a variável que sai da base, através do teste da razão mínima ( θ):

n.d.
θ = 75
60 Sai s3!

Neste teste, seleciona-se o recurso limitante, neste caso 60, correspondente à


variável s2 que sai da base da solução (índice “s”). Em suma, como resultado desta
interação, verifica-se a saída da variável s3 e a entrada da variável A, como nova variável
básica.

37
Estudo de um Problema de Programação Linear

3ª Iteração

Da entrada da variável básica A no conjunto das variáveis básicas (xB) e da saída


da variável s3 da base, obtém-se agora uma nova matriz básica:

B 3 0 -1
xB = s2 , B= 1 1 0
A 1 0 1

E também a matriz identidade da matriz básica (B-1):

1/4 0 1/4
B-1 = - 1/4 1 - 1/4
- 1/4 0 3/4

Através desta matriz, a atualização dos coeficientes básicos:

B 1/4 0 1/4 0 20
s2 = - 1/4 1 - 1/4 . 25 = 5
A - 1/4 0 3/4 80 60

Existe agora um aumento do valor do objetivo, já que:


• a variável básica B tem um coeficiente básico de 9 e um valor do lado
direito de 20, o que indica uma contribuição 180 centenas de euros (9 x 20 =
180) para o objetivo;
• a variável de folga s2, apesar de corresponder a uma folga da segunda
restrição em 5 milhares de euros, não contribui para o aumento do objetivo,
já que tem coeficiente básico de valor zero (0 x 5 = 0);
• a variável básica A tem coeficiente 7 e um valor de 60 no lado direito,
indicando assim uma contribuição para o aumento do valor do objetivo em
420 centenas de euros (7 x 60 = 420).

38
Estudo de um Problema de Programação Linear

cB = 9 0 7

20
Z= 9 0 7 . 5 = 600
60

Para verificar se a solução é ótima, não devem existir coeficientes positivos nos
custos reduzidos (r), pelo que se procede primeiramente à atualização da matriz não-
básica (K) e da função objetivo para variáveis duais (y), para posteriormente se verificar a
otimalidade da solução:

1/4 0 1/4 0 1 1/4 1/4


K = - 1/4 1 - 1/4 . 0 0 = - 1/4 - 1/4
- 1/4 0 3/4 1 0 3/4 - 1/4

1/4 0 1/4
y= 9 0 7 . - 1/4 1 - 1/4 = 1/2 0 7 1/2
- 1/4 0 3/4

1/4 0 1/4 0 1
r= 0 0 - 9 0 7 . - 1/4 1 - 1/4 . 0 0 = 0 0
Solução
- 1/4 0 3/4 1 0 Ótima!

Chega-se então à solução ótima do problema, já que não existem valores positivos
nos custos reduzidos (r). Assim, a solução ótima da forma matricial, é equivalente à forma
tabular, já que se obtém um valor final de 600 centenas de euros [(9 x 20 = 180) + (7 x 60
= 420) = 600] de rentabilidade na aplicação financeira efetuada.
De forma sintética, podem representar-se as matrizes de cada iteração anteriormente
realizada para o problema em estudo, e que visam sintetizar aquilo que foi feito. Para a
primeira iteração, obtêm-se as seguintes tabelas:
Primeiramente, representa-se: a matriz do sistema (A); a matriz de identidade (I)
correspondente às variáveis de folga (s1, s2, s3); os coeficientes do sistema (c); os

39
Estudo de um Problema de Programação Linear

coeficientes das variáveis de folga (0); o vetor independente (b); e, o valor da função
objetivo no ponto inicial, que apresenta valor 0.

-1 3 1 0 0 0
A= 0 1 I= 0 1 0 b= 25
1 1 0 0 1 80

c= 7 9 0= 0 0 0 0

Posteriormente, procede-se à partição por colunas: da matriz básica (B) e dos


respetivos coeficientes básicos (cB); da matriz não-básica (AN) e dos seus coeficientes não
básicos (cN); do vetor independente (b); e, ainda, do valor da função objetivo no momento
inicial.

1 0 0 -1 3 0
B= 0 1 0 AN = 0 1 b= 25
0 0 1 1 1 80

cB = 0 0 0 cN = 7 9 0

A partir da identificação e da organização das diversas matrizes, obtêm-se, através


dos vários cálculos, realizados na primeira iteração, as seguintes matrizes:

1 0 0 -1 3 0
-1 -1
I= 0 1 0 B . AN = 0 1 B . b = 25
0 0 1 1 1 80

0= 0 0 0 cN - cB . B-1 . AN = 7 9 - cB . B-1. b = 0

Quando se resolve o sistema, multiplica-se a matriz básica (B) pela matriz inversa
(B-1), obtendo-se a matriz identidade (I). Esta atualização, que ocorre através da
eliminação Gaussiana, que é efetuada sobre a matriz do sistema (B), permite obter do lado
direito (B-1 . b) a solução do sistema (xB). As operações efetuadas sobre o lado direito e
sobre a matriz básica, são também as operações efetuadas (B-1 . AN) sobre a matriz não-

40
Estudo de um Problema de Programação Linear

básica (AN). Da mesma forma, atualiza-se a função objetivo, também por eliminação
Gaussiana, começando por eliminar valores que sucederiam nos coeficientes básicos (0),
e, de forma semelhante, ocorre a subtração (cN - cB . B-1 . AN) do coeficiente básico (cB) à
matriz K. No lado direito, através da subtração (- cB . B-1. b) dos coeficientes básicos (cB),
que dá origem ao valor da função objetivo (Z).
Como a solução identificada no valor da função objetivo não é ótima, procede-se
agora à representação das tabelas identificadas anteriormente, desta vez relativamente à
segunda iteração:

-1 1 1/3 0 0 0
A= 0 0 I = - 1/3 1 0 b= 25
1 0 - 1/3 0 1 80

c= 7 0 9 0 0 0

De forma análoga à representação da iteração anterior, apresenta-se: a matriz do


sistema (A) composta pelas variáveis (A e s1); a matriz de identidade (I) correspondente
às variáveis (s1, s2, s3); os coeficientes do sistema (c); os coeficientes das variáveis de folga
(0); o vetor independente (b); e, o valor da função objetivo no ponto inicial, que apresenta
valor 0.

3 0 0 -1 1 0
B= 1 1 0 AN = 0 0 b= 25
1 0 1 1 0 80

cB = 9 0 0 cN = 7 0 0

1/3 0 0 - 1/3 1/3 0


-1 -1
I = - 1/3 1 0 B . AN = 1/3 - 1/3 B . b = 25
- 1/3 0 1 1 1/3 - 1/3 80

0= 0 0 0 CN - CB . B-1 . AN = 10 0 - CB . B-1 . b = 0

41
Estudo de um Problema de Programação Linear

Ainda não foi encontrada a solução ótima, já que existe um coeficiente positivo de 10
nos custos reduzidos. Posto isto, elaboraram-se as seguintes tabelas, correspondentes à
terceira iteração:

0 1 1/4 0 1/4 0
A= 0 0 I = - 1/4 1 - 1/4 b= 25
1 0 - 1/4 0 3/4 80

c= 0 0 9 0 7 600

3 0 -1 0 1 0
B= 1 1 0 AN = 0 0 b= 25
1 0 1 1 0 80

cB = 9 0 7 cN = 0 0 600

1/4 0 1/4 v 1/4 1/4 80


-1 -1
I = - 1/4 1 - 1/4 B . AN = - 1/4 - 1/4 B .b= 25
- 1/4 0 3/4 3/4 - 1/4 80

0= 0 0 0 CN - CB . B-1 . AN = 0 0 - CB . B-1 . b = 0

Verifica-se dessa forma o ótimo final:

0 1 1/4 0 1/4 20
A* = 0 0 S* = - 1/4 1 - 1/4 b* = 5
1 0 - 1/4 0 3/4 60

z*- c = -7 1/2 -9 y* = 1/2 0 7 1/2 Z* = 600

42
Estudo de um Problema de Programação Linear

CAPÍTULO VI – MÉTODO DUAL

6.1. Introdução ao método dual

Para cada problema de programação linear na forma standard, existe um problema


associado a ele, denominado de problema dual. As relações entre o problema dual e o
problema original, denominado de problema primal, são bastante interessantes e úteis
para. Alguns dos principais usos da dualidade, consistem na interpretação e
implementação da análise de sensibilidade, bem como na resolução de problemas
económicos e de análise económica.
As decisões que se irão tomar para um problema do tipo dual têm, normalmente,
duas vertentes relativamente ao primal: ou são opostos, ou complementares. Nesse
sentido, dependendo da ótica do primal ou do dual, podem existir visões complementares
sobre a mesma situação, ou visões completamente opostas. Essa complementaridade
surge da permuta dos coeficientes independentes.
Ambos os problemas, dual e primal, estão relacionados de uma forma muito
interessante, já que cada solução obtida em cada um deles, produz um limite no valor ótimo
do outro problema. E se ambos os problemas possuem uma solução ótima, então o outro
problema também a tem, pelo que os valores ótimos para cada problema terão o mesmo
valor.
A relação primal-dual é bastante fácil de compreender, já que o dual utiliza
precisamente os mesmo parâmetros que o problema primal, localizados, no entanto, em
sítios diferentes na formulação. Na comparação primal-dual, importa saber que c e y =[y1,
y2, …, ym] são vetores linha e x e b são vetores coluna.
Expressão 6 – Relação primal-dual

Fonte: Sebenta da Unidade Curricular

43
Estudo de um Problema de Programação Linear

Como consequência desta relação, primal-dual, na forma algébrica, verifica-se que


os parâmetros das restrições do problema primal (b) são os coeficientes da função objetivo
do problema dual, enquanto que os coeficientes da função objetivo do problema primal (c)
se transpõem para o lado direito do problema dual. Ainda, a matriz do sistema das
desigualdades no primal (A), é transposta, e origina a matriz das restrições do dual.
Verifica-se ainda que o problema na forma primal é de maximização e que as restrições
standard na forma canónica são restrições do tipo menor ou igual (≤) o que, de facto, se
verifica no problema dual, já que as variáveis duais são não negativas (yi ≥ 0).

Esta transformação segue, obrigatoriamente, as seguintes regras:


1) Se o problema primal é um modelo de maximização, o problema dual associado
será um modelo de minimização, e vice-versa;
2) O número de variáveis do problema dual é igual ao número de restrições do
problema primal, e o número de restrições duais obtém-se do número das variáveis
primais;
3) Os coeficientes da função objetivo do dual são os parâmetros independentes
do primal, bem como os parâmetros do dual correspondem aos coeficientes da
função objetivo primal;
4) A matriz das restrições do dual obtém-se através da transposição da
correspondente matriz primal;
5) A restrição dual será uma igualdade (=) caso a correspondente variável primal
seja de sinal não-constrangido (+ e -);
6) A desigualdade dual terá o mesmo sentido (≥) que o correspondente sinal da
variável primal (≥ 0), se o primal for modelo de maximização;
7) Se o primal for de minimização, a desigualdade dual (≤) apresentará sentido
oposto ao sinal da variável primal associada (≥ 0);
8) Se uma restrição primal for de igualdade (=), a variável dual associada será
não-constrangida em sinal (+ e -);
9) Se o primal for um modelo de maximização, a variável dual terá sentido
contrário (≥ 0) ao do correspondente sinal da restrição primal (≤);
10) Se o primal for de minimização, a variável dual terá sentido igual (≥ 0) ao do
correspondente sinal da restrição primal (≥).

44
Estudo de um Problema de Programação Linear

Esta transformação, também pode ser representada da seguinte forma:

Expressão 7 – Transformação primal-dual

Fonte: Sebenta da Unidade Curricular

Tendo estes aspetos em consideração, procede-se agora à ilustração do problema


em estudo, através da sua representação na forma algébrica e matricial:

Expressão 8 – Problema Primal na forma algébrica

Maximizar Z = 7 A + 9 B
Sujeito a,
- A + B ≤ 0
B ≤ 25
A + B ≤ 80
A, B ≥ 0

Fonte: Elaboração Própria

Expressão 9 – Problema Dual na forma algébrica

Minimizar W = 0 y1 + 25 y2 + 80 y3
Sujeito a,

- y1 + y3 ≥ 7

3 y1 + y2 + y3 ≥ 9
y 1, y 2 , y 3 ≥ 0

Fonte: Elaboração Própria

45
Estudo de um Problema de Programação Linear

Expressão 10 – Problema Primal na forma algébrica

Maximizar Z = 7 9 . A
Sujeito a, B

-1 3 A 0
.
0 1 B ≤ 25
1 1 80

A 0

B 0

Fonte: Elaboração Própria

Expressão 11 – Problema Dual na forma matricial

Minimizar W = 0 25 80 . y1
Sujeito a, y2
y3

-1 0 1 y1 7
. ≥
3 1 1 y2 9
y3

y1 y2 y3 ≥ 0 0 0

Fonte: Elaboração Própria

6.2. Solução pelo método dual

A partir da transformação primal-dual, procede-se agora à resolução do problema daí


originado, através do software LINDO.
Da resolução computacional (Anexo 3), verifica-se que se está a minimizar uma
função, cuja solução ótima (W = 600) é semelhante à obtida pelo método Tabular ou

46
Estudo de um Problema de Programação Linear

Matricial do Simplex. Também no método dual a dimensão do problema é em euros, logo,


cada uma das variáveis do problema (y1, y2, y3) terá de estar denominada em euros.
➢ Ótica do primal; maximizar a rentabilidade da aplicação;
➢ Ótica do dual: minimizar o valor utilizado na aplicação;

Dessa forma, apresentam-se as variáveis que compõem a segunda ótica, a ótica do


dual:
y1 – esta primeira variável tem, por denominação, o custo das unidades de
participação do Produto A, partindo de pressuposto inicial de que estas unidades devem
superar em três vezes (3x) o número das unidades de participação do Produto B. O valor
da variável surge, tal como já foi definido anteriormente, em euros, já que cada unidade de
participação do Produto A tem um custo de 10 €;
y2 – variável correspondente ao custo das unidades de participação do produto B. Já
que o coeficiente desta variável é 25, significa que se está a tentar minimizar o custo das
unidades de participação adquiridas do Produto B, sendo que esta aplicação não deverá
exceder as 25 mil unidades, cada uma delas com um custo de 10 €;
y3 – relacionada com o custo das unidades de participação adquiridas do Produto A
e do Produto B. Com coeficiente 80 no objetivo, significa que o custo proveniente da
aplicação em ambos os produtos não deve exceder as 80 mil unidades, correspondentes
a 800 mil euros (80.000 x 10 €), logo, vai-se tentar minimizar esse valor.

Apresentam-se também as restrições do problema:


- y1 + y3 ≥ 7 – corresponde ao lucro proveniente de 1000 unidades de participação
do produto A, ou seja, 7 €. Logo, ao tentar minimizar o custo das unidades de participação
do Produto A, a sua rentabilidade deve manter-se;
3 y1 + y2 + y2 ≥ 9 – corresponde ao lucro proveniente de 1000 unidades de
participação do produto B, ou seja, 9 €. Assim, o que é feito no dual, tendo em consideração
esta restrição, é minimizar o custo da aplicação nas unidades de participação do Produto
B, no entanto, mantendo a rentabilidade de 9 €.

Em suma, pode-se afirmar que as variáveis duais (y1, y2, y3) correspondem ao valor
interno dos recursos, ou seja, ao custo (em euros), das unidades de participação do produto
A, ou B, ou de ambos os produtos, que será minimizado de forma a manter a sua
rentabilidade individual.

47
Estudo de um Problema de Programação Linear

6.3. Justificação dos valores duais

Incrementos nos coeficientes das variáveis duais podem provocar variações positivas
no objetivo, ou seja, aumentar os lucros do problema. Para essa verificação, elaboraram-
se alguns cálculos no sentido de aferir valor do objetivo através de uma variação positiva,
de uma unidade, nos coeficientes de cada uma das variáveis. Para confirmar os cálculos,
procedeu-se ao apuramento da solução através do software LINDO (Anexo 4).
Inicia-se a análise através de um aumento nos coeficientes das variáveis na função
objetivo (+1):

y1 = 0 y1 = 1
+1
y2 = 25 y2 = 26
y3 = 80 y3 = 81

Verifica-se, então, a repercussão que tem uma variação positiva de 1 (mil unidades)
valor na primeira variável (y1):

Δ A = - 0,25
Δ y1 = 1 =
Δ B = 0,25

ΔW = (- 0,25) x 7 + (0,25) x 9 = + 0,50

Tal como se pode verificar (Anexo 4 - Alteração na variável y1), através de um


aumento da variável y1, é possível aumentar o objetivo em + 0,5 e assim obtém-se W =
600,50.

Procede-se novamente à mesma análise, desta vez através de uma variação positiva
de 1 (mil unidades) valor na segunda variável (y2):

ΔA=0
Δ y2 = 1 =
ΔB=0

ΔW = (0) x 7 + (0) x 9 = 0

Verifica-se (Anexo 4 - Alteração na variável y2), que um aumento da variável y2, não
provoca qualquer alteração no objetivo, pelo que este mantém o mesmo valor W = 600.

48
Estudo de um Problema de Programação Linear

Por fim, procede-se à mesma análise, através da aplicação de uma variação positiva
de 1 (mil unidades) no valor na terceira variável (y3):

Δ A = 0,75
Δ y3 = 1 =
Δ B = 0,25

ΔW = (0,75) x 7 + (0,25) x 9 = + 7,50

É através de um aumento da variável y3 que se verifica (Anexo 4 - Alteração na


variável y3) o maior aumento do objetivo, provocado por uma variação nos coeficientes
das variáveis, o que leva o objetivo a aumentar em 7,5 e a assumir o valor W = 607,50.

Desta análise é possível concluir que existe um lucro adicional pelo aumento do valor
de duas variáveis (y1, y3) que produzem um incremento no objetivo em + 0,50 e +
7,50, respetivamente. A estes aumentos de valor denomina-se de preço sombra, e
estes são muito importantes, na medida em que, no contexto do problema em estudo,
refletem o máximo que o investidor estaria disposto a investir, para além das
unidades de participação que estão definidas desde o início no problema (Expressão
1), para dispor de mais 1000 unidades de participação de algum dos produtos, ou de
ambos em simultâneo.

6.4. Comparação primal-dual

A partir da última iteração, do primal e do dual, é estabelecer as seguintes


observações:
➢ O valor da função objetivo, ou seja, a margem obtida da aplicação financeira
realizada pelo investidor, é semelhante para ambos, primal e dual, Z = W =
600;
➢ Os coeficientes das variáveis primais A e B são positivos, enquanto que,
relativamente às variáveis de desvio duais, os valores são nulos;
➢ Enquanto que as variáveis de folga, no primal, apresentam valores nulos (s1
= 0, s3 = 0), no dual, as variáveis duais apresentam variações ativas (y1 =
0,5, y3 = 7,5);
➢ Os valores duais positivos (y1 = 0,5, y3 = 7,5) representam o aumento do
valor do objetivo, quando existe uma variação positiva de +1 (mil unidades)
num dos parâmetros y1, y2 ou y3.

49
Estudo de um Problema de Programação Linear

6.5. Propriedades da relação primal-dual

Da relação primal-dual resultam, naturalmente, algumas propriedades, as quais


importa verificar, no sentido de perceber se a transformação realizada foi feita da forma
correta.
Para tal, importa aferir os seguintes aspetos:

➢ Dualidade fraca: sendo que x consiste numa solução possível para o problema
primal e y numa solução possível para o problema dual, deve verificar-se a seguinte
propriedade resultante dessa relação:
c.x ≤ y.b
No problema em estudo, uma solução possível seria A = 50, B = 15, cujo valor da
função objetivo seria Z = c . x = 485 para o problema primal, enquanto que o problema
dual corresponderia a y1 = 1, y2 = 0, y3 = 10, com a função objetivo a assumir o seguinte
valor W = y . b = 800. Estas são apenas duas soluções possíveis para os dois problemas
(primal e dual), no entanto, adequam-se perfeitamente à verificação da propriedade: c . x
≤ y . b ⇔ 485 ≤ 800. Esta verificação deve ser válida para todas as soluções possíveis do
problema.

➢ Dualidade forte: aqui, x * corresponde a uma solução ótima para o problema


primal, enquanto y * é uma solução ótima para o problema dual e, da relação entre ambos,
verifica-se a seguinte propriedade:
c.x* ≤ y*.b
De facto, a solução ótima para o problema primal já é conhecida e corresponde a: A
= 60, B = 20, com a função objetivo com o seguinte valor Z = c . x * = 600 e, para o dual,
y1 = 0,5, y2 = 0, y3 = 7,5, e a função objetivo W ⇔ c . x * = y * . b ⇔ 600 = 600.

➢ Complementaridade das soluções possíveis: em cada iteração do algoritmo


Simplex, encontram-se soluções complementares possíveis,
c.x = y.b
➢ Complementaridade das soluções ótimas: na iteração final do Simplex,
determinam-se soluções ótimas complementares,
c . x* = y* . b

50
Estudo de um Problema de Programação Linear

CAPÍTULO VII – ANÁLISE DE SENSIBILIDADE

7.1. Considerações gerais

A análise da sensibilidade é bastante importante na programação linear, uma vez


que permite conhecer quais são os parâmetros mais sensíveis e quais as repercussões de
uma alteração dos seus valores no objetivo. Nesta ótica, devem distinguir-se parâmetros
externos de parâmetros internos. Os primeiros, consistem em parâmetros que são
passíveis de ser manipulados, enquanto os segundos, dizem respeito a parâmetros sobre
os quais não é possível fazer qualquer manipulação. A análise de sensibilidade permite
ainda gerir o sistema de apoio à decisão, a partir da identificação das evoluções dos dados,
podendo, dessa forma, reconhecer variabilidades internas que deem resposta à
variabilidade externa.
Para que seja possível realizar uma análise de sensibilidade, é necessário ter em
consideração um conjunto de etapas sequenciais, que agora se apresentam:
1) Revisão do modelo;
2) Revisão da tabela final do Simplex;
3) Aplicar a eliminação Gaussiana e converter a tabela para a forma “standard”;
4) Testar se a solução obtida ainda se encontra na região possível;
5) Testar a otimalidade da solução obtida;
6) Reotimizar, caso não se verifique a ocorrência da solução ótima possível.

7.2. Variação na função objetivo, c’

Para que se verifique a otimalidade num problema de maximização, como o do


problema abordado neste trabalho académico, os valores do objetivo devem ser menores
do que 0, caso contrário, algum desses valores poderá aumentar o objetivo ao entrar na
base da solução. Nesse sentido, para o estudo da variação ocorrida na função objetivo,
tem-se em consideração uma gama de variação ótima (range to stay optimal), para a qual
os valores da função objetivo podem variar, num sentido ou noutro, mantendo sempre a
base da solução e, por conseguinte, a sua otimalidade.

51
Estudo de um Problema de Programação Linear

Neste âmbito, apresentam-se os cálculos da aferição da gama de variação ótima


para as variáveis da função objetivo:

Expressão 10 – Modelo de aferição da variação na função objetivo

Fonte: Sebenta da Unidade Curricular

Para elaboração dos cálculos, considera-se que:


c1 = B = 9
c2 = A = 7
Pelo que os custos reduzidos deverão ser:
1/4 1/4
r' = 0 0 - c1 0 c2 . - 1/4 - 1/4 ≤ 0
3/4 - 1/4

Através da multiplicação matricial, obtém-se:

- ( c1 / 4 - 0 + 3c2 / 4 ) ≤ 0 c1 ≥ - 3c2

- ( c1 / 4 - 0 - c2 / 4 ) ≤ 0 c1 ≥ c 2

Com base no resultado, procede-se agora à aferição da gama ótima de variação para
o parâmetro c1, partindo do pressuposto que c2 = 7 e que este valor é constante:

c1 ≥ - 3c2 c1 ≥ - 3 . (7) c1 ≥ - 21
⇔ ⇔
c1 ≥ c2 c1 ≥ 7 c1 ≥ 7

52
Estudo de um Problema de Programação Linear

Sabendo que c1 = 9, procede-se agora à definição da gama de variação ótima deste


parâmetro. É possível concluir que os valores de c1 podem aumentar indefinidamente (c1
≥ - 21 ⇔ 9 ≥ - 21 , c1 ≥ 7 ⇔ 9 ≥ 7), uma vez que as duas inequações têm valores
menores que 9 e não há qualquer restrição ao crescimento, e pode diminuir 2 valores (c1
≥ 7 ⇔ 9 ≥ 7 ⇒ 9 – 7 = 2). Logo, a gama de variação para este parâmetro assume
valores desde 7 até ao infinito, já que pode crescer indefinidamente. Para este intervalo
de valores, a base da solução não se altera e a otimalidade mantém-se.
Estes valores foram verificados através do cálculo no LINDO (Anexo 5 - Gama de
variação do parâmetro c1).

Procede-se agora à aferição da gama ótima de variação para o parâmetro c2, partindo
do pressuposto que c1 = 9 e que este valor é constante:

c1 ≥ - 3c2 9 ≥ - 3c2 c2 ≥ - 3
⇔ ⇔
c1 ≥ c2 9 ≥ c2 c2 ≤ 9

De forma análoga, sabendo que c2 = 7, passa-se agora a definir a gama de variação


ótima deste parâmetro. É possível concluir que os valores de c2 podem aumentar 2
valores (c2 ≤ 9 ⇔ 7 ≤ 9 ⇒ 9 – 7 = 2), uma vez que a segunda inequação restringe c2

até um valor menor ou igual a, e pode diminuir 10 valores (c2 ≥ - 3 ⇔ 7 ≥ - 3 ⇒ 7 – (-


3) = 10). Logo, a gama de variação para este parâmetro assume valores desde - 3 até 9,
já que pode crescer indefinidamente. Para este intervalo de valores, a base da solução não
se altera e a otimalidade mantém-se.
Estes valores foram verificados através do cálculo no LINDO (Anexo 5 - Gama de
variação do parâmetro c2).

7.3. Variação nos parâmetros, b’

Importa ainda proceder à análise dos parâmetros independentes, ou seja, aos


parâmetros do lado direito, cuja variação pode afetar a solução, na medida em que, se
diminuir um dos recursos a solução torna-se não possível e, também, matematicamente
inadmissível. Nesse sentido, para o estudo da variação ocorrida nos parâmetros
independentes tem-se em consideração uma gama de variação possível (range to stay

53
Estudo de um Problema de Programação Linear

possible), para a qual os valores do lado direito podem variar, num sentido ou noutro.
Desde que a otimalidade da solução se mantenha possível, as variações ocorridas nestes
termos não a afetam.
Nesse sentido, apresentam-se os cálculos da aferição da gama de variação possível
para os parâmetros do lado direito:

Expressão 11 – Modelo de aferição da variação nos parâmetros independentes

Fonte: Sebenta da Unidade Curricular

A partir deste modelo, obtém-se:

1/4 1/4 b1
b* = - 1/4 - 1/4 . b2 ≥ 0
3/4 - 1/4 b3

A través da multiplicação matricial, da matriz inversa (B-1) pelo lado direito () obtém-
se as três inequações que dão suporte aos cálculos da gama de variação possível dos
parâmetros desse mesmo lado direito:

1 / 4 b1 + 0 b2 + 1 / 4 b3 ≥0 b1 ≥ - b3

1 / 4 b1 + 1 b2 - 1 / 4 b3 ≥0 ⇔ b1 ≤ 4 b2 - b3

1 / 4 b1 + 0 b2 + 3 / 4 b3 ≥0 b1 ≤ 3 b3

A partir destas inequações, partiu-se do pressuposto que b2 = 25 e b3 = 80 se


mantiveram constantes e procedeu-se à sua substituição ao longo dessas mesmas
inequações. Uma vez que o parâmetro b1 = 0, significa que, segundo as retrições, este

54
Estudo de um Problema de Programação Linear

valor pode aumentar em 20, bem como, também, diminuir em 80. No intervalo, de – 80 a
20, a base da solução não se modifica:

b1 ≥ - b3 b1 ≥ - 80 b1 ≥ - 80

b1 ≤ 4 b2 - b3 ⇔ b1 ≤ 4 . (25) - 80 ⇔ b1 ≤ 20

b1 ≤ 3 b3 b1 ≤ 3 . (80) b1 ≤ 240

Esta gama de variação (possível) pode ser verificada na linha 2 da solução do LINDO
(Anexo 6 – gama de variação do parâmetro b1).

Supondo que os parâmetros b1 = 0 e b3 = 80 são constantes, procede-se agora ao


cálculo da gama de variação para o parâmetro b2.
Uma vez que o valor deste último parâmetro é 25 (b2 = 25), obtém-se uma gama de
variação possível que parte da possibilidade do parâmetro diminuir 5 valores, de 25 para
20, até à possibilidade do valor do parâmetro aumentar indefinidamente:

b1 ≥ - b3 0 ≥ - 80 0 ≥ - 80

b1 ≤ 4 b2 - b3 ⇔ 0 ≤ 4 b2 - 80 ⇔ b2 ≥ 20

b1 ≤ 3 b3 0 ≤ 240 0 ≤ 240

Por último, supõe-se que os parâmetros b1 = 0 e b2 = 25 são constante e efeuta-se


o cálculo para o parâmetro b3. O valor deste parâmetro é de 80 (b3 = 80) e este valor pode
aumentar em 20 valores, até 100, e diminuir 80 valores, até 0. Esta gama corresponde
à gama de variação possível para o parâmetro b3:

b1 ≥ - b3 0 ≥ - b3 b3 ≥ 0

b1 ≤ 4 b2 - b3 ⇔ 0 ≤ 4 . (25) - b3 ⇔ b3 ≤ 100

b1 ≤ 3 b3 0 ≤ 3 b3 b3 ≥ 0

55
Estudo de um Problema de Programação Linear

CAPÍTULO VIII – ANÁLISE PARAMÉTRICA

Numa última abordagem à variação dos parâmetros, procedeu-se ainda à seguinte


análise:

8.1. Análise do parâmetro c1


Quadro 6 – Evolução do parâmetro c1

Fonte: Elaboração Própria

Gráfico 2 – Evolução do parâmetro c1

c1
800

700

600

500

400

300

200

100

0
6 7 8 9 10 11 12 13 14 15 16

Z* Produto B (milhares de unidades)

Fonte: Elaboração Própria

56
Estudo de um Problema de Programação Linear

8.2. Análise do parâmetro b1

Quadro 7 – Evolução do parâmetro b1

Fonte: Elaboração Própria

Gráfico 3 – Evolução do parâmetro b1

b1
700

600

500

400

300

200

100

0
-80 -60 -40 -20 0 20 40

Z* y1 - Dual

Fonte: Elaboração Própria

57
Estudo de um Problema de Programação Linear

Conclusão

Assimilar conceitos novos é sempre uma tarefa gratificante. Pegar nesses conceitos
e transformá-los em algo palpável, com princípio, meio e fim é um processo desafiante,
complexo e, por vezes, de extrema exigência. Mas ver nascer um projeto, alimentá-lo e
fazê-lo crescer, sabendo que esse esforço será uma mais-valia futura, é algo que se
entende como compensador. Foi o caso deste trabalho, ou pelo menos assim foi assimilado
por mim, que ao mesmo tanto me dediquei.
À medida que o mesmo foi progredindo, e por vezes regredindo para tornar a
avançar, auxiliou-me muito no entendimento e compreensão dos diversos tópicos
lecionados na disciplina de investigação operacional para gestão, já que a elaboração de
um trabalho académico de carácter prático como este, obriga a um estudo ativo dos tópicos
abordados em sala de aula.
Não foi fácil a adaptação à nova realidade derivada da pandemia. Aulas à distância,
novas tecnologias e condicionantes que tiveram que se conjugar com as obrigações
profissionais que, pelo menos no meu caso, nunca se suspenderam e antes se tornaram
mais exigentes. Mas, a maior exigência, maior compensação no alcance dos objetivos. E
os meus estão bem definidos, custe o que custar, vou terminar com o maior êxito possível
a meta a que me propus.
Também para este trabalho académico contei com a disponibilidade do docente, que
também ele, apanhado nesta amálgama de novidades e ajustamentos, sempre se
disponibilizou para apoiar no que fosse necessário. Os meus agradecimentos.

58
Estudo de um Problema de Programação Linear

Bibliografia

Tavares, Luís., Oliveira, Rui., Themido, Isabel., Correia., Francisco. (1996). Investigação
Operacional. Lisboa: MCGraw-Hill editora.
Apontamentos da Unidade Curricular.

59
Estudo de um Problema de Programação Linear

ANEXO 1 – RESOLUÇÃO GRÁFICA


Anexos

60
Estudo de um Problema de Programação Linear

ANEXO 2 – RESOLUÇÃO NA FORMA TABULAR

61
Estudo de um Problema de Programação Linear

62
Estudo de um Problema de Programação Linear

63
Estudo de um Problema de Programação Linear

ANEXO 3 – SOLUÇÃO DO PROBLEMA DUAL

64
Estudo de um Problema de Programação Linear

ANEXO 4 – JUSTIFICAÇÃO DOS VALORES DUAIS

4.1. Alteração na variável y1

4.2. Alteração na variável y2

65
Estudo de um Problema de Programação Linear

4.3. Alteração na variável y3

66
Estudo de um Problema de Programação Linear

ANEXO 5 – VARIAÇÃO NA FUNÇÃO OBJETIVO

5.1. Gama de variação do parâmetro c1

5.2. Gama de variação do parâmetro c2

67
Estudo de um Problema de Programação Linear

ANEXO 6 – VARIAÇÃO NOS PARÂMETROS INDEPENDENTES

6.1. Gama de variação do parâmetro b1

6.2. Gama de variação do parâmetro b2

68
Estudo de um Problema de Programação Linear

6.3. Gama de variação do parâmetro b3

69

Você também pode gostar