A Implementação Computacional Problema: Refinaria De Petróleo
Por: DEBORASALVADOR • 29/3/2023 • Trabalho acadêmico • 879 Palavras (4 Páginas) • 60 Visualizações
#-----------------------------------------------------------------------
# Modelagem do problema
#-----------------------------------------------------------------------
# Variaveis de decisao
# Xi: qtd. de litros de gasolina i a produzir, i ∈ {aviacao (A), aditivada (D), comum (C)}
# Funcao objetivo
# MAX: 0.03XA + 0.05XD + 0.02XC [R$]
# Restricoes
# XC >= 8.000.000 [L]
# 0.20XA + 0.50XD + 0.75XC <= 10.000.000 [L]
# 0.30XA + 0.30XD + 0.05XC <= 3.000.000 [L]
# 0.50XA + 0.20XD + 0.20XC <= 7.000.000 [L]
# XA >= 0 [L]
# XD >= 0 [L]
#-----------------------------------------------------------------------
# Implementacao do modelo
#-----------------------------------------------------------------------
# Instalar e carregar pacote lpSolve
#install.packages("lpSolve")
library(lpSolve)
# Criando o modelo
funcao_objetivo = c(0.03, 0.05, 0.02)
restricoes = matrix(c(0.00, 0.00, 1.00,
0.20, 0.50, 0.75,
0.30, 0.30, 0.05,
0.50, 0.20, 0.20,
1.00, 0.00, 0.00,
0.00, 1.00, 0.00), ncol = 3, byrow = T)
restricoes_dir = c(">=",
"<=",
"<=",
"<=",
">=",
">=")
restricoes_rhs = c(8000000,
10000000,
3000000,
7000000,
0,
0)
res_modelo = lp("max", # maximizar funcao objetivo
funcao_objetivo, # funcao objetivo
restricoes, # matriz de restricoes (lhs)
restricoes_dir, # sinais relcacionados as restricoes
restricoes_rhs, # vetor de restricoes (rhs)
all.int = F, # indica que todas as variaveis de decisao podem não ser inteiras
compute.sens = T) # computa a sensibilidade
#-----------------------------------------------------------------------
# Resultados
#-----------------------------------------------------------------------
res_modelo # lucro [R$]
res_modelo$solution # qtd. milhoes de litros produzidos (Xi)
res_modelo$sens.coef.from # valores min. dos parametros
res_modelo$sens.coef.to # valores max. dos parametros
res_modelo$duals # preço sombra das restricoes e var. decisao
...