O que é programação linear em ciência de dados: visão geral
Publicados: 2022-09-21A Ciência de Dados cresceu como um campo verdadeiramente interdisciplinar que toma emprestado da ciência da computação, matemática, análise de dados, estatísticas, etc. Seus avanços ajudaram empresas em todo o mundo a tomar decisões muito mais informadas e baseadas em dados. Como resultado, hoje, as empresas percebem a importância dos dados que adquiriram ao longo dos anos.
Os cientistas de dados usam ferramentas avançadas para avaliar os cenários de negócios atuais usando dados existentes, derivar relacionamentos e encontrar padrões perspicazes. Este método é conhecido como Análise Descritiva. Além disso, os cientistas de dados também estudam os efeitos e suas causas, mantendo em mente várias variáveis dependentes e independentes, conhecidas como Predictive Analytics.
Como o Predictive Analytics funciona identificando relações de causa e efeito, é benéfico para tomar decisões perspicazes para o futuro. No entanto, isso não é tão simples quanto pode parecer. Qualquer negócio tem muitas variáveis para lidar – incluindo insights atuais, restrições e muito mais.
Confira nossas certificações em ciência de dados para se aprimorar.
Para prever com precisão, você deve considerar essas variáveis e chegar à solução ideal. É aqui que a Programação Linear entra em cena. A programação linear é uma técnica importante que funciona de forma algorítmica e ajuda os cientistas de dados a encontrar a solução mais ideal para vários problemas. A Programação Linear considera todas as variáveis, igualdades e desigualdades essenciais para chegar à solução final, o que garante que a previsão seja infalível.
Neste artigo, vamos ver o que é Programação Linear, os diferentes métodos de Programação Linear e um exemplo de problema de Programação Linear!
Explore nossos cursos populares de ciência de dados
Programa Executivo de Pós-Graduação em Ciência de Dados do IIITB | Programa de Certificação Profissional em Ciência de Dados para Tomada de Decisões de Negócios | Mestre em Ciência de Dados pela Universidade do Arizona |
Programa de Certificado Avançado em Ciência de Dados do IIITB | Programa de certificação profissional em ciência de dados e análise de negócios da Universidade de Maryland | Graduação em Ciência de Dados |
Programação linear em análise preditiva
Antes de começar com os aspectos técnicos, é crucial notar que a programação no contexto da Programação Linear não se refere à programação de computadores ou software. Por outro lado, a Programação Linear é essencialmente uma técnica de otimização (Linear Optimization) útil para encontrar os melhores resultados de modelos matemáticos. Para formular um programa linear, é importante ter uma compreensão dos elementos básicos da Programação Linear, que incluem:
- Variáveis de Decisão: Refere-se às variáveis que gostaríamos de determinar, as incógnitas.
- Função Objetivo: Refere-se à função linear que representa as quantidades que precisam ser minimizadas ou maximizadas.
- Restrições: Este é um conjunto de desigualdades ou igualdades que representam todas as restrições em nossa variável de decisão.
- Restrições não negativas: Refere-se a um ponto essencial de restrição em que os valores das variáveis de decisão são não negativos.
Com os termos básicos resolvidos, vamos agora ver quais abordagens podem ser adotadas ao resolver um problema de Programação Linear.
Principais habilidades essenciais de ciência de dados para aprender em 2022
SL. Não | Principais habilidades de ciência de dados para aprender em 2022 | |
1 | Certificações de análise de dados | Certificações de Estatística Inferencial |
2 | Certificações de teste de hipóteses | Certificações de regressão logística |
3 | Certificações de regressão linear | Certificações de Álgebra Linear para Análise |
Resolvendo a programação linear
Podemos seguir estes quatro passos para resolver um problema de Programação Linear com sucesso:
- Identificando variáveis de decisão
- Desenvolvendo a função objetivo
- Especificando as restrições
- Declarando as restrições de não negatividade
Iremos nos aprofundar nessas etapas mais tarde, quando examinarmos um exemplo resolvido de Programação Linear. Mas antes disso, vamos ver as várias maneiras de abordar um problema de Programação Linear. Existem basicamente quatro abordagens para escolher:
- Método Gráfico: O método gráfico é o método mais básico usado para resolver um problema de Programação Linear em duas variáveis. É usado principalmente quando há apenas duas variáveis de decisão a serem consideradas. O método gráfico envolve formar um conjunto de desigualdades lineares e submetê-las às condições ou restrições relevantes. Em seguida, as equações são plotadas no plano XY, e a área de interseção formada pela plotagem de todas as equações lineares é a área viável. Esta área indica os valores de um modelo e fornece a solução ideal.
- Método Simplex: Este é um método poderoso para resolver problemas de Programação Linear e segue um procedimento iterativo para chegar à solução ótima. Nesta abordagem, as variáveis essenciais são modificadas até que o valor máximo ou mínimo (conforme necessário) seja alcançado para a função objetivo inicial.
- Método do Canto Noroeste e do Menor Custo: São tipos específicos de métodos usados essencialmente para problemas de transporte para determinar a melhor maneira de transportar produtos ou mercadorias. Como resultado, este é um método de otimização útil para problemas de oferta e demanda. A suposição para este método é que existe apenas um produto. No entanto, a demanda por este produto vem de várias fontes, que cumulativamente compõem a oferta total. Portanto, este método visa minimizar o custo de transporte.
- Resolver usando R: R é uma das ferramentas mais usadas para ciência de dados e análise de dados. R torna muito fácil realizar a otimização em apenas algumas linhas de código usando o pacote IpSolve.
- Resolvendo usando ferramentas de código aberto: O último método usa uma das muitas ferramentas de código aberto disponíveis para problemas de otimização. Um exemplo de ferramenta de código aberto é o OpenSolve, um otimizador linear para Excel e funciona perfeitamente para até 100 variáveis. Além disso, CPLEX, MATLAB, Gurobi, etc., são algumas outras ferramentas úteis de código aberto.
Leia nossos artigos populares de ciência de dados
Plano de carreira em ciência de dados: um guia abrangente de carreira | Crescimento da carreira em ciência de dados: o futuro do trabalho está aqui | Por que a ciência de dados é importante? 8 maneiras pelas quais a ciência de dados agrega valor aos negócios |
Relevância da ciência de dados para gerentes | A melhor folha de dicas de ciência de dados que todos os cientistas de dados deveriam ter | 6 principais razões pelas quais você deve se tornar um cientista de dados |
Um dia na vida do cientista de dados: o que eles fazem? | Mito quebrado: a ciência de dados não precisa de codificação | Business Intelligence vs Data Science: Quais são as diferenças? |
Exemplo de resolução gráfica de programação linear
Durante as épocas festivas anuais, uma empresa leva em consideração dois fatores – X e Y – para criar um pacote de usuário. O peso do pacote total deve ser de 5kg – e não deve haver mais de 4kg de Y, e pelo menos 2kg de X. X e Y contribuem para o lucro total da seguinte forma – Rs. 5/kg para X e 6/kg para Y.
Vamos tentar resolver este problema de Programação Linear para chegar ao melhor mix que resulte nos maiores lucros para a empresa.
1. Trabalhando com nossa função principal
O objetivo de otimização do nosso problema é a maximização do lucro. A contribuição de lucro de X e Y nos é dada no enunciado do problema. Agora,
- Seja um kg de X
- Seja b kg de Y
- Nossa função objetivo então se torna -> c = 5*a + 6*b, e precisamos maximizar c.
Temos a, b como variáveis de decisão, enquanto c é nossa função requerida.
2. Desenvolvendo as restrições do problema
Temos as seguintes restrições no problema:
- O peso do pacote de presente deve ser de 5kg => a + b = 5
- Menos de 4kg de Y e pelo menos 2kg de X => x>=2; y<=4
3. Restrições não negativas
As quantidades para X e Y devem ser positivas => a, b>0
Agora, vamos resumir rapidamente todo o problema como o apresentamos até agora:
Precisamos otimizar c = 5a+6b sob as duas condições a seguir:
- a+b=5
- a>=2
- b<=4
Estamos usando o método gráfico para resolver este problema, então vamos considerar um gráfico de 2 dimensões com o eixo XY e tentar traçar as equações e inequações. Teremos as seguintes coisas conosco:
- a + b = 5 é uma linha reta que corta o eixo x em (5,0) e o eixo y no ponto (0,5). Como temos um sinal de igualdade em nossa expressão, temos certeza de que nossa região viável está na área de interseção dessas linhas.
- a >= 2 é uma linha reta cortando o eixo x como (2,0). Como nossa expressão tem uma restrição maior que, nossa região viável cai para o RHS de nossa linha.
- b <= 4 é uma linha reta cortando o eixo y em (0,4). Como temos uma restrição menor, nossa região viável é a área abaixo da linha.
- Finalmente, como a e b são ambos valores positivos, nossa área de preocupação é o primeiro quadrante.
Se você plotou essas linhas e restrições em uma folha de gráfico, você terá a região final que satisfaz todas as condições exigidas. Os dois pontos mais extremos desta linha são considerações possíveis para a maximização do lucro. Estes são os pontos (2,3) e (5,0). Para descobrir qual desses dois dá melhores lucros, podemos simplesmente colocar os pontos em nossa função objetivo e ver qual produz o melhor resultado:
- c = 5a + 6b ⬄ c = (5*2) +(6*3) = 28
- c = 5a + 6b ⬄ z = (5*5) +(6*0) = 25
Como você pode ver, obtemos um valor de lucro maior para a opção A. Então, nossa solução que dá os melhores lucros é a seguinte => 2kg de fator X e 3kg de fator Y!
Para concluir
Não há fim para os problemas de otimização – especialmente quando falamos em um contexto de negócios. As empresas enfrentam desafios de otimização com mais frequência do que gostariam. Como resultado, apenas o método gráfico não é suficiente para resolver problemas de otimização mais técnicos.
Você precisa entender ferramentas ou linguagens de programação importantes para realizar a otimização linear em problemas multivariáveis com sucesso. Mas a boa notícia é que não é tão difícil pegar o jeito de trabalhar em ferramentas ou linguagens de programação relevantes. Todo o campo da ciência de dados é altamente acolhedor, o que torna mais fácil para pessoas de qualquer formação construir uma carreira em ciência de dados, se tiverem interesse.
No upGrad, orientamos estudantes de todo o mundo com diversas origens e os ajudamos a desenvolver o conhecimento teórico relevante e a experiência prática necessária para ter sucesso na ciência de dados. Confira nosso Programa de Pós-Graduação Executiva em Ciência de Dados para obter mais informações sobre a estrutura do curso, o programa e a vantagem do upGrad!
1. A Programação Linear está relacionada à programação de computadores?
Não, programação linear refere-se a realizar otimizações sob restrições. Não está relacionado à programação de computadores no sentido tradicional da palavra.
2. Quando a Programação Linear é mais necessária?
Você precisa de programação linear ao otimizar algumas variáveis de decisão sob várias restrições. Ele é útil durante a análise preditiva e ajuda as empresas a fazer melhores previsões.
3. A Programação Linear precisa ser feita manualmente?
Não, existem várias ferramentas - de código aberto e não - que podem ajudá-lo a realizar programação linear.