Modelos de programação linear
A otimização multiobjetivo pode ser uma proposta complicada, mas a programação linear oferece uma solução. Nesse método, fatores como objetivos e restrições são traduzidos em equações lineares para ajudar as pessoas a tomar uma decisão. Esta lição examina como usar soluções auxiliadas por computador para resolver modelos de equação linear que representam objetivos humanos acionáveis.
Na programação linear, os objetivos são simplificados e descritos em uma série de relações lineares. Essas relações são então analisadas para determinar a solução ideal para o problema em questão. Por exemplo, um problema comum que você pode examinar é determinar a rota mais curta para o seu destino de férias. Ao determinar a rota mais curta possível para o local entre todas as opções possíveis disponíveis, você está usando relações lineares em sua cabeça (ou em seu GPS) para calcular o melhor caminho para levá-lo até lá.
Ao trabalhar com problemas mais complexos, como maximizar o lucro de uma empresa que fabrica muitos tipos de widgets, nem sempre é possível determinar a solução ideal simplesmente pensando bem. Afinal, as pessoas não são máquinas perfeitamente lógicas com memórias infalíveis. Você pode deixar de levar em conta uma variável crucial, como impostos ou custos de suprimentos, por exemplo, tornando a solução impraticável. Felizmente, temos dispositivos como calculadoras e computadores. Eles podem nos ajudar a resolver problemas complexos com as informações certas.
Exemplo: maximizando o lucro
O programa de software conhecido como R é um utilitário gratuito muito útil e popular entre muitos cientistas de dados, pois pode calcular facilmente soluções ótimas usando programação linear em apenas algumas etapas. Vejamos um exemplo.
A Acme Manufacturing, Inc., que cria e fornece soluções para residências e pequenas empresas, oferece duas linhas de produtos populares e fáceis de usar; computadores laptop e desktop. Esses produtos são vendidos a $ 400 e $ 500, respectivamente. Ambas as soluções requerem recursos para criar, como carcaças, processadores, módulos de memória e drives de armazenamento de dados, dos quais existem 10.000 unidades no total disponíveis a cada dia. Os laptops requerem 12 unidades para criar um produto acabado, enquanto os desktops requerem 20 unidades. O tempo de produção é de 15 minutos (por causa da automação pesada), mas os funcionários ainda têm que trabalhar 9 horas por dia. Quantos de cada linha devem ser fabricados para garantir o maior lucro para a empresa?
Representação Matemática do Problema
Com um programa como o R, a solução para este problema complexo com múltiplas variáveis é rápida e fácil. Primeiro, vamos quebrar esse problema de palavras em uma equação matemática mais gerenciável.
As variáveis de decisão , que neste caso são o preço acordado dos itens, são utilizadas na formulação da solução.
Outra coisa a se ter em mente para essa situação é a restrição de não negatividade , que estabelece que os valores de decisão devem ser maiores que o número zero (0). Você não pode ter lucro se não cobrar nada dos clientes!
A função objetivo , o objetivo final de todo o projeto (significando lucro máximo), é:
Max.z = 400x + 500y
- z é o lucro que a empresa deseja obter. Max.z, portanto, significa lucro máximo.
- x é o preço total da linha A, os computadores laptop.
- y é o preço total da linha B, os computadores desktop.
Restrições:
(Estes são os custos incorridos para a fabricação dos produtos.)
12x + 20y ≤ 10.000
- Aqui, x são as unidades de recursos usadas para a linha A, os computadores laptop.
- Aqui, y são as unidades de recursos usadas para a linha B, os computadores desktop.
- 10000 é o total de unidades de recursos disponíveis.
15x + 15y ≤ 540
- Aqui, x é o tempo final levado para o produto acabado da linha A, os laptops.
- Aqui, y é o tempo final levado para o produto acabado da linha B, os computadores desktop.
- 540 são 9 horas por dia.
Resolução de problemas com R: entrada de dados
Vamos dar uma olhada na entrada do software para R:
install.packages ('' lpSolve '') # Primeiro instale a
biblioteca de pacotes '' lpSolve '' (lpSolve)
# Definindo os coeficientes das variáveis de decisão
objetiva.in = c (400,500)
# Matriz de restrição
const.mat = matrix (c ( 12,20,15,15), nrow = 2, byrow = T)
# definindo restrições
const_time = 540 # em minutos
const_res = 10000
# RHS para restrições
const.rhs = c (const_res, const_time)
# Direção para restrições
const.dir = c ('' <= '', '' <= '')
# Encontrando a solução ótima
opt = lp (direction = '' max '', goal.in, const.mat, const.dir, const.rhs)
summary (opt)
# Valores objetivos de xey
opt $ solution
# Valor da função objetivo no ponto ideal
opt $ objval
Resolução de problemas com R: saída de dados
Agora vamos ver o que R calcula para nós como a solução ideal, ou seja, quantos laptops e desktops precisamos para obter o lucro máximo.
![]() |
Portanto, com base na saída do computador, vemos que a Acme Manufacturing deve criar 0 laptops e 36 computadores desktop. O lucro total com a venda desses computadores desktop será de US $ 18.000.
Resumo da lição
Esta lição examinou como você usa modelos de programação linear para resolver problemas pessoais, como ir do ponto A ao ponto B, ou problemas mais complexos, como maximizar o lucro da empresa. O exemplo foi resolvido usando R, uma ferramenta de programação gratuita para tarefas de ciência de dados.
Na programação linear, as variáveis de decisão são usadas na formulação da solução e representam informações imutáveis. A restrição de não negatividade significa que os valores de decisão devem ser sempre maiores que 0. Não há lucro se você estiver dando o produto de graça. Por fim, a função objetivo é o resultado final que se busca.