A utilização do Software R na resolução de problemas na Pesquisa Operacional


A Pesquisa Operacional consiste na utilização de métodos científicos para auxiliar a tomada de decisão frente a problemas complexos que exigem alocações eficientes de recursos escassos.

A resolução desses problemas se dá por várias etapas, sendo que a modelagem e a escolha do software para resolução se caracterizam como partes fundamentais para o sucesso da resolução.

Nesse trabalho, vamos utilizar o software R na resolução de problemas de Pesquisa Operacional, especificamente problemas de Programação Linear, modelados ou não por redes.

O objetivo é mostrar que, embora o software R seja utilizado majoritariamente em Matemática e Estatística, ele pode ser uma ferramenta bastante útil na Programação Linear, posto que possui muitas funções associadas à Otimização de forma geral e, além disso, é um software livre e gratuito.

INTRODUÇÃO

A Pesquisa Operacional (PO) surgiu durante a Segunda Guerra Mundial, especificamente na Inglaterra. Um grupo de cientistas foi convocado para determinar uma utilização eficiente de recursos militares limitados e, os resultados positivos obtidos por esses cientistas, fizeram com que a PO fosse difundida para os Estados Unidos, onde ela se desenvolveu de forma consistente. Desde então, essa ciência vem sendo aplicada com sucesso na otimização de recursos em diferentes segmentos (FÁVERO & BELFIORE, 2013).

Segundo Arenales et al. (2011), a PO consiste na utilização de métodos científicos para auxiliar a tomada de decisão frente a problemas complexos que exigem alocações eficientes de recursos escassos (ou seja, problemas de otimização).

De forma simplificada, Marins (2011) propõe a resolução de um problema de PO em cinco etapas:

a) Formulação do problema (identificação do sistema);

b) Construção do modelo matemático;

c) obtenção da solução;

d) teste do modelo e da solução obtida;

e) implementação.

Uma das ferramentas mais utilizadas dentro da PO é a Programação Linear (PL). A PL tem como objeto, essencialmente, encontrar a melhor solução para os problemas que tenham expressões lineares representando seus modelos. Essencialmente, atribui-se a PL a maximização ou minimização de uma função linear (função objetivo), satisfazendo as restrições do modelo (sistema linear de igualdades ou desigualdades).

Incorporado a programação linear pode-se ressaltar o método simplex, que é uma técnica utilizada para se determinar, numericamente a solução ótima para um determinado modelo.

É necessário utilizar-se de software para a resolução de problemas de programação linear, pois a maioria dos impasses podem apresentar funções de várias variáveis, tornando-se assim inviável a solução de tal problema sem o auxílio dos softwares. Contudo, grande parte desses softwares apresentam código fechado, isto é, seu acesso é restrito, deixando de apresentar para o usuário uma solução de forma didática (MARINS, 2011).

Para a resolução dessa modelagem, vários softwares foram desenvolvidos, como: LINDO, CPLEX, PROMODEL, ARENA e Solver do Excel. Porém, tais programas não possuem código livre e não são gratuitos, limitando seu acesso e utilização.

Dessa forma, esse estudo tem como objetivo mostrar a utilização de softwares livres e gratuitos para a resolução de problemas de pesquisa operacional, especificamente problemas de programação linear. Nesse caso, mostrar a potencialidade do software R para a resolução de problemas aplicados pesquisa operacional.

Software R

software R (R CORE TEAM, 2018), que surge pela criação da R Foundation for Statistical Computing, além de um tipo de linguagem, é um software computacional e gráfico, que tem como vantagens a gratuidade, código aberto e livre acesso, para que inúmeros usuários desenvolvam novos comandos e de forma que possam compartilhar em redes sociais (RSTUDIO, 2020).

Além disso, o programa oferece uma gama de funções, podendo adaptá-la de acordo com suas necessidades.

O R tem compatibilidade com diversas plataformas, como LINUX e Windows, e permite a ligação de interfaces de diferentes formatos, como Excel e SQL Server. Sendo fonte aberta, permite ao utilizador alterar funcionalidades existentes, bem como criar funcionalidades para responder aos seus problemas específicos de forma mais eficaz (LIMA et al., 2015).  

Atualmente, o software R não é o meio de resolução de problema de pesquisa operacional e programação linear mais utilizado, pois há uma cultura de que o EXCEL (Solver) tenha usabilidade mais fácil e prática que o R (RSTUDIO, 2020).

Entretanto, o R oferece diversas opções de pacotes (conjuntos de funções) para resolver problemas de Pesquisa Operacional, como orlocalinprogquadprog, BB, bootkernlablimSolveLowRankQPrcddRglpk, entre outros (LIMA et al., 2015).  

Resolução de um problema de Pesquisa Operacional utilizando o Software R

O problema proposto a seguir é denominado Caso LCL Motores Ltda. É um exemplo que mostra uma das típicas situações enfrentadas no dia a dia por diversas empresas (LACHTERMACHER, 2009).

Para resolver o exemplo proposto, foi utilizado o pacote lpSolve (Berkelaar, 2020).

Problema: A LCL Motores Ltda. uma fábrica de motores especiais recebeu recentemente R$ 900.000.00 em pedidos de seus três tipos de motores. Cada motor necessita de um determinado número de horas de trabalho no setor de montagem e acabamento. A LCL pode terceirizar parte da sua produção. A tabela abaixo resume estes dados. A LCL Motores deseja determinar quanto motores devem ser produzidos em sua fábrica e quantos devem ser produzidos de forma terceirizada para atender à demanda de pedidos.

Não foi fornecido texto alternativo para esta imagem

Solução:

O primeiro passo para a modelagem é a determinação das variáveis de decisão. Neste caso, o objetivo é determinar a quantidade de motores de cada tipo que deve ter sua produção terceirizada. Sendo assim, as variáveis são:

Não foi fornecido texto alternativo para esta imagem

O segundo passo é determinar a expressão da função objetivo. Neste caso, a empresa deseja maximizar seus lucros. Ou seja,

Não foi fornecido texto alternativo para esta imagem

Equivalentemente, pode-se escrever a função como:

Não foi fornecido texto alternativo para esta imagem

Por fim, deve-se determinar as restrições que se aplicam ao modelo. Estas restrições estão relacionadas aos recursos da empresa e são descritas a seguir:

1) Restrição de Montagem

Não foi fornecido texto alternativo para esta imagem

2) Restrição do Acabamento

Não foi fornecido texto alternativo para esta imagem

3) Restrições de Demanda

Não foi fornecido texto alternativo para esta imagem

O nosso problema pode ser resumido na seguinte modelagem:

Sujeito a:

Não foi fornecido texto alternativo para esta imagem

Figura 1: Instalação do pacote lpSolve:

Não foi fornecido texto alternativo para esta imagem

Figura 2: Script da resolução do problema no software R

Não foi fornecido texto alternativo para esta imagem

Figura 3: Script da resolução do problema no software R

Não foi fornecido texto alternativo para esta imagem

Figura 4: Valor das variáveis de decisão e da função objetivo do problema proposto

Não foi fornecido texto alternativo para esta imagem

Na Figura 1, encontra-se a forma de instalação dos pacotes do R. Quando o software é instalado, apenas as configurações mínimas são instaladas. Um dado pacote deve ser pesquisado em packages e instalado para seu total funcionamento.

Na Figura 2, tem-se o script do R para resolução do problema proposto. Para utilizar o pacote lpSolve com a função lp é necessário definir:

a) Função objetivo;

b) Matriz de restrições;

c) Tipos de desigualdades;

d) Lado direito das desigualdades ou limites

Todos os elementos na programação do R (vetores, matrizes, data frame) podem ser arquivados por meio do sinal “<-“.

Ainda pela Figura 2, nota-se que para os elementos “coef_func_objetivo”, “coef_restricoes”, “sinais_restricoes” e “limites_restricoes” ficam atribuídos, respectivamente, o vetor de coeficientes da função objetivo, a matriz dos coeficientes das restrições, os sinais associados às restrições e os limites numéricos das restrições.

Para entender a função lp do pacote lpSolve, o R fornece a descrição de todas suas funções no Help. Todos os argumentos e as formas corretas para considerar as informações são encontradas nesse tópico, além de exemplos que ilustram a utilização da função. Pode-se observar na Figura 3, o item de ajuda do software R.

Na Figura 4, encontra-se os valores da função objetivo e das variáveis de decisão do problema proposto. Conclui-se que, para o custo mínimo de R$ 439000, a empresa deve terceirizar a produção de 2000 motores do modelo 2 e produzir 3000, 5000 e 500 motores dos modelos 1, 2 e 3, respectivamente

Conclusão

software R é uma importante ferramenta utilizada na resolução de problemas de Estatística e Matemática. Porém, esse software possui diversos tipos de pacotes que contêm funções capazes de resolver problemas dos mais diversos assuntos. Dentre esses problemas, pode-se incluir a Pesquisa Operacional e, em particular, a Programação Linear e Não Linear.

Conforme abordado acima, o software R apresenta uma série de vantagens para a pesquisa operacional e com o desenvolver do estudo é possível concluir que o programa é de fácil manuseio, além de trazer funções diversas que outros softwares mais populares não possuem. Além disso, pode-se dizer que o software R oferece auxílio suficiente para um aprendizado autodidata, posto que sua função de ajuda é bastante detalhada e informativa, com exemplos e explicações detalhadas das funções.

Portanto, o estudo apresentado tem importância associada à formação de um engenheiro de produção, pois permite a utilização de um software livre e de fácil aplicação mesmo em problemas de difícil solução, aumentando as possibilidades de ferramentas que podem ser utilizadas por um profissional completo.

Autor: Julio César Proença da Costa

Linkedin: https://www.linkedin.com/in/julio-proen%C3%A7a-43499315b/

#R #pesquisaoperacional #metódodedecisão