Pós-graduação → Personalização ↓
Programação linear
A programação linear (PL) é um método matemático para determinar como alcançar o melhor resultado em um dado modelo matemático. Sua função é representada por relações lineares. A programação linear é uma técnica para otimizar uma função objetivo linear, sujeita a restrições de igualdade linear e desigualdade linear.
Os principais componentes de um problema de programação linear são os seguintes:
- Função objetivo: A função que precisa ser otimizada, geralmente maximizada ou minimizada.
- Variáveis de decisão: Variáveis que decidem o resultado e geralmente são representadas como
x
,y
,z
etc. - Restrições: Estas são restrições ou limites nas variáveis de decisão, frequentemente na forma de desigualdades ou equações lineares.
- Restrição de não negatividade: Assume-se que as variáveis de decisão são não negativas, ou seja, todos os valores são zero ou positivos.
Formulação do problema de programação linear
Para entender a Programação Linear considere o seguinte exemplo:
Imagine que uma empresa fabrica dois produtos: cadeiras e mesas. Cada cadeira contribui com $30
para o lucro, e cada mesa contribui com $50
. A empresa possui limitações de mão de obra e material. Leva 2
horas de trabalho e 3
unidades de material para fazer uma cadeira. Leva 4
horas de trabalho e 2
unidades de material para fazer uma mesa. A empresa tem um máximo de 100
horas de trabalho e 120
unidades de material disponíveis.
Para maximizar o lucro, podemos formular um problema de programação linear como segue:
Máximo: Lucro = 30x + 50y sujeito a: 2x + 4y ≤ 100 (Restrição de mão de obra) 3x + 2y ≤ 120 (Restrição física) x ≥ 0, y ≥ 0 (Restrição de não negatividade)
Representação gráfica
Problemas de programação linear em duas variáveis podem ser resolvidos e representados graficamente. Parece assim:
A região viável é o conjunto de todos os pontos que satisfazem todas as restrições. Está sombreada em cinza acima. A solução ótima está nesta região. Neste exemplo, a estratégia ótima está na interseção das restrições, representada pelo ponto vermelho.
Método Simplex
Quando há mais de duas variáveis, a representação gráfica não é possível. Portanto, usamos o método simplex, que é um método iterativo usado para resolver problemas de programação linear.
O método simplex envolve os seguintes passos:
- Começar no ponto de canto inicial da região viável.
- Avaliar a função objetivo em cada vértice da região viável.
- Mover para um vértice vizinho que melhora o valor da função objetivo.
- Continuar esse processo até que nenhuma melhoria adicional seja possível.
- O ponto do vértice atual fornece o valor máximo ou mínimo da função objetivo.
Exemplo usando o método simplex
Considere o seguinte problema de programação linear:
Maximizar: Z = 3x1 + 2x2 sujeito a: x1 + x2 ≤ 4 x1 - x2 ≤ 2 x1, x2 ≥ 0
Passos para resolver usando simplex:
- Converter as desigualdades em igualdades incluindo as variáveis relaxadas, s1 e s2:
- Criar a tabela simplex inicial:
- Encontrar a coluna pivô (a coluna com o coeficiente mais negativo na linha Z):
- Calcular as razões para encontrar a linha pivô.
- Realizar uma operação de pivotamento para tornar o elemento pivô
1
e todos os outros elementos na coluna pivô0
. - Repetir esse processo até que não haja coeficientes negativos restantes na linha do objetivo.
x1 + x2 + s1 = 4 x1 - x2 + s2 = 2
x1 | x2 | S1 | S2 | Solução | |
---|---|---|---|---|---|
S1 | 1 | 1 | 1 | 0 | 4 |
S2 | 1 | -1 | 0 | 1 | 2 |
Z | -3 | -2 | 0 | 0 | 0 |
O valor mais negativo é -3
(coluna de x1
).
Para linha s1: 4/1 = 4 Para linha s2: 2/1 = 2
Escolher a linha com a menor razão positiva: linha s2
.
Dualidade na programação linear
Todo problema de programação linear, chamado de problema primal, pode ser transformado em outro problema de programação linear conhecido como problema dual. As soluções dos problemas dual e primal fornecem limites para o valor da função objetivo.
Exemplo:
Problema primal: Maximizar: Z = 3x1 + 4x2 sujeito a: 2x1 + 3x2 ≤ 8 3x1 + 3x2 ≤ 6 x1, x2 ≥ 0
Seu dual será:
Minimizar: W = 8y1 + 6y2 sujeito a: 2y1 + y2 ≥ 3 3y1 + 3y2 ≥ 4 y1, y2 ≥ 0
As funções objetivo em primal e dual são interligadas. Resolver uma delas dá insight ou limitação para a outra.
Aplicações da programação linear
A programação linear é amplamente utilizada em uma variedade de campos, incluindo:
- Manufatura: Determinar níveis ótimos de produção e inventários.
- Finanças: Projetar portfólios para maximizar retornos com risco mínimo.
- Transporte: Minimizar o custo de envio de mercadorias através da rede.
- Planejamento de dietas: Determinar a dieta mais acessível que atende a todos os requisitos nutricionais.
- Telecomunicações: Para alocação ótima de largura de banda e análise de rede.
Limitações da programação linear
Apesar de suas amplas aplicações, a programação linear tem algumas limitações:
- Os modelos são baseados na linearidade, enquanto cenários do mundo real nem sempre são lineares.
- Assume-se certeza nos coeficientes; no entanto, os dados da vida real podem ser incertos ou variáveis.
- A solução deve satisfazer completamente todas as restrições, o que pode não ser sempre possível.
- Não acomoda variáveis inteiras de forma direta, o que pode ser importante em alguns problemas práticos.
Conclusão
A programação linear fornece um quadro para encontrar soluções ótimas sob restrições dadas. Embora foque principalmente em otimizar funções objetivo lineares, seus princípios são fundamentais em pesquisa operacional e ciência de gerenciamento. Inovações e otimizações, como a programação linear inteira e programação não linear, estendem sua aplicabilidade a cenários mais complexos.