Boa tarde pessoal, estou trabalhando com modelos matemáticos de otimização usando o pacote ompr. A ultima linha do código (azul) retorna um erro que não estou conseguindo tratar.
Copiei o erro em baixo (vermelho). Alguém já teve a experiência de encontra esse mesmo erro? rm(list=ls(all=TRUE)) #install package from github #devtools::install_github("dirkschumacher/ompr") #devtools::install_github("dirkschumacher/ompr.roi") #install.packages("ROI.plugin.glpk") library(dplyr, warn.conflicts = FALSE) library(ROI) library(ROI.plugin.glpk) library(ompr) library(ompr.roi) frig = rep(seq(1, 4,1), rep((150*40),4) ) carro = rep(rep(seq(1, 40, 1), rep(150, 40)), 4) dias = rep( seq(1:150), 4*40) lucro = (rnorm(4*40*150, 30,1)) merc = rep(1, length(150*40*4)) praca = rep(1, length(150*40*4)) conj_dados= cbind(frig, carro, dias, lucro, merc, praca) DIF = 150 Trava_param <- function(DIF){ dia <- seq(1, DIF, 1) trav <- rep(0, DIF) praca <- rep(1, DIF) Trava <- data.frame(dias = dia, praca = praca, Trava = trav) return(Trava) } Trava = Trava_param(DIF) Max_descasque <- 3 capac_cam <- 60 Carga_mercado_futuro <- 330 permissao_venda <- 1 bigM <- 5000 model <- MIPModel() %>% # venda do animal i para o frigorifico j no mercado m, # dado o peso no dia k add_variable( x[i,j,k,m], i = as.numeric(as.vector(levels( as.factor(conj_dados[,"carro"])))), #1:carro, j = as.numeric(as.vector(levels( as.factor(conj_dados[,"frig"])))), #1:frig, k = as.numeric(as.vector(levels( as.factor(conj_dados[,"dias"])))), m = as.numeric(as.vector(levels( as.factor(conj_dados[,"merc"])))),#1:merc, type = "binary" )%>% # indica a venda de animais no dia k add_variable( y[k], k = as.numeric(as.vector(levels( as.factor(conj_dados[,"dias"])))),#1:dias, type = "binary" )%>% # numero de caminhoes do tipo t indo para o frigorifico j no dia k add_variable( total[j,k], j = as.numeric(as.vector(levels( as.factor(conj_dados[,"frig"])))), #1:frig, k = as.numeric(as.vector(levels( as.factor(conj_dados[,"dias"])))), #1:dias, type = "integer", lb = 0 )%>% # indica qual mercado esta sendo usado add_variable( w[k,m], k = as.numeric(as.vector(levels( as.factor(conj_dados[,"dias"])))),#1:dias, m = as.numeric(as.vector(levels( as.factor(conj_dados[,"merc"])))), #1:merc, type = "binary" )%>% # indica se o boi i foi vendido na praca u no dia k add_variable( t[i,u,k], i = as.numeric(as.vector(levels( as.factor(conj_dados[,"carro"])))), # 1:carro, u = as.numeric(as.vector(levels( as.factor(conj_dados[,"praca"])))), #1:praca, k = as.numeric(as.vector(levels( as.factor(conj_dados[,"dias"])))), #1:dias, type = "binary" )%>% # maximizar set_objective( sum_expr( x[i,j,k,m]*lucro[i,j,k,m], i = as.numeric(as.vector(levels( as.factor(conj_dados[,"carro"])))),# 1:carro, j = as.numeric(as.vector(levels( as.factor(conj_dados[,"frig"])))),# 1: frig, k = as.numeric(as.vector(levels( as.factor(conj_dados[,"dias"])))),#1:dias, m = as.numeric(as.vector(levels( as.factor(conj_dados[,"merc"])))) ) #1:merc) - sum_expr( y[k], k = as.numeric(as.vector(levels( as.factor(conj_dados[,"dias"])))) )#1:dias) + sum_expr(130*t[i,u,k]*15, i = as.numeric(as.vector(levels( as.factor(conj_dados[,"carro"])))), #1:carro, u = as.numeric(as.vector(levels( as.factor(conj_dados[,"praca"])))), #1:praca, k = as.numeric(as.vector(levels( as.factor(conj_dados[,"dias"])))) )#1:dias) ) %>% #Um animal eh vendido uma unica vez add_constraint( sum_expr( x[i,j,k,m], i = as.numeric(as.vector(levels( as.factor(conj_dados[,"carro"])))),#1:carro, j = as.numeric(as.vector(levels( as.factor(conj_dados[,"frig"])))),#1: frig, k = as.numeric(as.vector(levels( as.factor(conj_dados[,"dias"])))), # 1:dias, m = as.numeric(as.vector(levels( as.factor(conj_dados[,"merc"])))))#1:merc) + sum_expr( t[i,u,k], i = as.numeric(as.vector(levels( as.factor(conj_dados[,"carro"])))),# 1:carro, u = as.numeric(as.vector(levels( as.factor(conj_dados[,"praca"])))),# 1: praca, k = as.numeric(as.vector(levels( as.factor(conj_dados[,"dias"])))))#1:dias, <= 1 )%>% # A capacidade do caminhao eh respeitada add_constraint( sum_expr( x[i,j,k,m], i = as.numeric(as.vector(levels( as.factor(conj_dados[,"carro"])))),#1:carro, m = as.numeric(as.vector(levels( as.factor(conj_dados[,"merc"])))))#1:merc) <= total[j,k] * capac_cam, j = as.numeric(as.vector(levels( as.factor(conj_dados[,"frig"])))),#1:frig, k = as.numeric(as.vector(levels( as.factor(conj_dados[,"dias"])))) #1:dias )%>% # Caso exista uma venda no dia k eh calculado um # descasque para mercado a vista e a prazo add_constraint( sum_expr( x[i,j,k,m], i = as.numeric(as.vector(levels( as.factor(conj_dados[,"carro"])))),#1:carro, j = as.numeric(as.vector(levels( as.factor(conj_dados[,"frig"])))),#1:frig, m = as.numeric(as.vector(levels( as.factor(conj_dados[,"merc"])))) )#1:merc) + sum_expr( t[i,u,k], i = as.numeric(as.vector(levels( as.factor(conj_dados[,"carro"])))), #1:carro, u = as.numeric(as.vector(levels( as.factor(conj_dados[,"praca"])))) )#,1:praca) <= bigM * y[k], k = as.numeric(as.vector(levels( as.factor(conj_dados[,"dias"]))))# 1:dias )%>% # Respeito ao numero maximo de descasques add_constraint( sum_expr( y[k], k = as.numeric(as.vector(levels( as.factor(conj_dados[,"dias"])))) ) #1:dias) <= Max_descasque )%>% # Desigualdade valida para ajudar na convergencia - # todos os animais devem ser vendidos add_constraint( sum_expr( x[i,j,k,m], i = as.numeric(as.vector(levels(as.factor(conj_dados[, "carro"])))), j = as.numeric(as.vector(levels(as.factor(conj_dados[, "frig"])))), k = as.numeric(as.vector(levels(as.factor(conj_dados[, "dias"])))), m = as.numeric(as.vector(levels(as.factor(conj_dados[, "merc"])))) ) == 40 )%>% # A carga vendida para mercado futuro eh de pelo menos 330 arobas add_constraint( 15*130*sum_expr( t[i,u,k], i = as.numeric(as.vector(levels( as.factor(conj_dados[,"carro"])))) ) #1:carro) <= Carga_mercado_futuro*Trava[k,u], u = as.numeric(as.vector(levels( as.factor(conj_dados[,"praca"])))), #1:praca, k = as.numeric(as.vector(levels( as.factor(conj_dados[,"dias"])))) #1:dias )%>% # Permissao para venda no mercado futuro add_constraint( sum_expr( t[i,u,k], i = as.numeric(as.vector(levels( as.factor(conj_dados[,"carro"])))), #1:carro, u = as.numeric(as.vector(levels( as.factor(conj_dados[,"praca"])))), #1:praca, k = as.numeric(as.vector(levels( as.factor(conj_dados[,"dias"])))) )#1:dias) <= bigM * permissao_venda )%>% saveRDS(model, file = "model.rds") %>% solve_model(with_ROI(solver = "glpk")) Error in on_element(push, inplace_update_ast, get_ast_value, element) : argument "ast" is missing, with no default
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forne�a c�digo m�nimo reproduz�vel.