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 = 150Trava_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 <- 3capac_cam <- 60Carga_mercado_futuro <- 330permissao_venda <- 1bigM <- 5000model <- MIPModel() %>%# venda do animal i para o frigorifico j no mercado m,# dado o peso no dia kadd_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 kadd_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 kadd_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 usadoadd_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 kadd_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")%>%# maximizarset_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 vezadd_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 respeitadaadd_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 prazoadd_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 descasquesadd_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 vendidosadd_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 arobasadd_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 futuroadd_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.