Considerado como um dos avanços científicos mais importantes de meados do
Séc. XX, a Programação Linear (PL) é um dos modelos matemáticos utilizados para
solucionar problemas envolvendo decisões de otimização (HILLIER e LIEBERMAN,
2013). A PL busca encontrar a solução ótima de problemas que tenham modelos
expressos linearmente, consistindo na maximização ou minimização de uma função
linear, denominada de Função Objetivo (FO) e respeitando um sistema de igualdade
(=) ou desigualdade (≤ ou ≥), chamado de Restrições (PIZZOLATO e GANDOLPHO,
2012).
De acordo com HILLIER e LIEBERMAN (2013) os principais elementos que
compõem um modelo simbólico, do problema de insumo-produto, de PL são:
Z valor da medida de desempenho global;
x
j nível de atividade j (para j = 1, 2, ..., n);
c
j incremento em Z que resultaria de cada incremento unitário no nível de
atividade j;
b
i quantidade do recurso i que se encontra disponível para alocação em
atividades (para i = 1, 2, ..., m);
a
ij quantidade de recurso i consumido por unidade de atividade j.
As variáveis de decisão são representadas por x
j, as constantes do modelo,
também chamadas de parâmetros do modelo são representadas por c
j, b
i e a
ij (para i
= 1, 2, ..., m e j = 1, 2, ..., n). A TAB 3.1 apresenta os dados necessários para a
formulação de um modelo de PL que envolve a alocação de recursos para
atividades (HILLIER e LIEBERMAN, 2013):
TAB. 3.1 – Dados necessários para um modelo de programação linear que envolve
a alocação de recursos para atividades (HILLIER e LIEBERMAN, 2013).
Recurso
Uso de recursos por unidade de atividade
Quantidade de
recursos disponíveis
Atividade
1 2 ... n
1 a11 a12 ... a1n b1
2 a21 a22 ... a2n b2
. ... ... ... ... .
. ... ... ... ... .
. ... ... ... ... .
m am1 am2 ... amn bm
Contribuição para Z por
unidade de atividade c1 c2 ... cn
A forma padrão da PL consiste em escolher as variáveis de decisão x
1, x
2, ..., x
n,
não negativos, em um grupo de equações que visa otimizar a função objetivo Z,
sujeito a várias restrições lineares, conforme mostrado a seguir na FIG. 3.1:
Max (ou Min)
sujeito a
𝑍 = 𝑐
1𝑥
1 + 𝑐
2𝑥
2 + . .. + 𝑐
𝑛𝑥
𝑛
𝑎
11𝑥
1 + 𝑎
12𝑥
2+ . .. +𝑎
1𝑛𝑥
𝑛 ≤ 𝑏
1
𝑎
21𝑥
1+ 𝑎
22𝑥
2+ . .. +𝑎
2𝑛𝑥
𝑛 ≤ 𝑏
2
⋮ ⋮ ⋮ ⋮
𝑎
𝑚1𝑥
1+ 𝑎
𝑚2𝑥
2+ . .. +𝑎
𝑚𝑛𝑥
𝑛 ≤ 𝑏
𝑚
𝑥
𝑗 ≥ 0 (𝑗 = 1, 2, … , 𝑛)
FIG. 3.1 – Forma padrão da Programação Linear (HILLIER e LIEBERMAN, 2013)
O modelo de insumo-produto, apresentado na FIG. 3.1, é o modelo típico da PL,
onde, por exemplo, pode-se dizer que m representa os insumos produtivos, nas
quantidades correspondentes b
1, b
2, ..., b
m, com os quais é possível produzir n
produtos distintos x
1, x
2, ..., x
n, com respectivos lucros c
1, c
2, ..., c
n. Os elementos
tecnológicos que relacionam os insumos com os produtos podem ser organizados
em uma matriz chamada de matriz tecnológica, sendo eles representados por a
ij.
Desta forma, a produção de uma unidade do produto x
j, consome a
ij unidades do
insumo b
i. As restrições funcionais do modelo podem ser apresentadas na forma de
equações, identificada pelo sinal de igualdade “=”, ou na forma de desigualdades,
identificadas pelos sinais “≤” ou “≥”. Apesar de ser um modelo que se encaixa na
maioria dos tipos de problemas de PL, nem todos os problemas se enquadram neste
tipo de modelo (PIZZOLATO e GANDOLPHO, 2012) e (HILLIER e LIEBERMAN,
2013).
O Problema Geral da Programação Matemática tem por objetivo a busca por um
ponto ótimo, podendo ser um máximo ou um mínimo de uma equação (EQ. 3.1)
(PIZZOLATO e GANDOLPHO, 2012).
𝑍 = 𝑓(𝑋
𝑖, 𝑌
𝑗) EQ. 3.1
Onde:
Z medida do desempenho do sistema;
X
i variáveis de decisão;
Y
j variáveis independentes;
f relação funcional entre Z, X
i e Y
j.
De acordo com HILLIER e LIEBERMAN (2013) qualquer valor encontrado para
as variáveis de decisão em um problema de PL é tido como uma solução, porém
esta solução sempre deve ser acompanhada de um adjetivo. Estes adjetivos podem
qualificar as soluções em: solução viável que é quando todas as restrições são
satisfeitas; uma solução inviável que é quando ao menos uma das restrições foi
violada. Pode haver o caso de também não haver nenhuma solução viável que é
quando nenhuma restrição é satisfeita. Diante disto, a PL tem por objetivo encontrar
a solução ótima, que é a melhor solução viável, ou seja, é a solução viável que tem
o valor mais favorável da função objetivo. O valor mais favorável da função objetivo
é o maior valor para a FO que o problema é de maximização e o menor valor para a
FO quando o problema é de minimização.
Conforme exposto por PIZZOLATO e GANDOLPHO (2012) os tipos de solução
da PL podem ser:
- Solução única: um único ponto ótimo, onde na solução gráfica é
representado por um vértice formado entre as restrições do espaço de
soluções possíveis. HILLIER e LIEBERMAN (2013) apresentam este tipo de
solução viável como sendo uma solução ponto extremo factível (PEF) que
assume uma função de fundamental importância na procura de uma solução
ótima pelo método simplex;
- Solução múltipla: na solução gráfica é representado por um segmento de
reta sobre uma restrição, limitado por dois vértices encontrados como
ótimos, ou seja, existem ao menos duas soluções PEF;
- Solução ilimitada: quando o espaço das soluções está aberto ao infinito, não
tendo nenhuma restrição que o feche;
- Solução infactível: quando a combinação das restrições resulta em um
espaço de soluções viáveis nulo.
De acordo com PIZZOLATO e GANDOLPHO (2012) as principais características
da PL, tratadas como hipóteses por HILLIER e LIEBERMAN (2013) são:
- Certeza, onde os coeficientes numéricos são constantes e conhecidos;
- Divisibilidade, onde as variáveis podem assumir valores reais;
- Proporcionalidade, onde nenhuma variável possui expoente diferente de 1;
- Atividade, onde os coeficientes de cada variável são fixos e independem dos
demais.
Satisfazer a hipótese da certeza em problemas reais é raro, visto que a
modelagem trabalha com previsões dos valores reais. Isto se deve ao fato que numa
aplicação futura, a situação da coleta de dados para abastecer o modelo poderá não
necessário realizar uma análise de sensibilidade após a obtenção de uma solução
ótima (HILLIER e LIEBERMAN, 2013).
Conforme descrito por PIZZOLATO e GANDOLPHO (2012) as variantes da PL
são:
- Programação Linear Inteira: quando as variáveis x
i são obrigatoriamente
números inteiros;
- Programação Linear Mista: quando algumas variáveis são contínuas e
outras inteiras;
- Programação Não Linear: quando as relações entre as variáveis não são
lineares.
Existem vários métodos manuais e softwares ou rotinas de computador para
solucionar os problemas de programação linear, sendo eles (PIZZOLATO e
GANDOLPHO, 2012):
- Métodos manuais:
- Solução gráfica – para problemas com até três variáveis;
- Simplex – método algébrico;
- Softwares ou rotinas:
- SOLVER – um dos mais populares, oferecido como suplemento do MS
Excel e também pode ser adquirido separadamente;
- LINDO – um dos aplicativos genéricos mais utilizados, oferecidos em
versões para estudantes e para uso profissional, muito utilizado no meio
acadêmico para aprendizagem;
- PROLIN – aplicativo na internet, desenvolvido na UFV – Universidade
Federal de Viçosa, de uso online;
- Aplicativos de ultima geração: LINGO, AIMMS, GAMS, AMPL, CPLEX –
utilizados para resolver problemas de grandes dimensões, podendo ter
milhões de variáveis e restrições. Para utilização destes programas é
necessário o uso de uma linguagem de modelagem que transforma a
simbologia matemática em matrizes que compõem as restrições do
problema;