更换电脑后ompr.highs包运行报错:unused argument (dry_run = FALSE)
解决ompr.highs包运行时
unused argument (dry_run = FALSE)错误 问题描述
更换电脑后,使用ompr.highs包运行代码时触发错误,示例代码如下:
library(ompr) library(ompr.highs) suppressPackageStartupMessages(library(dplyr, quietly = TRUE)) max_bins <- 10 bin_size <- 3 n <- 10 weights <- runif(n, max = bin_size) MIPModel() |> add_variable(y[i], i = 1:max_bins, type = "binary") |> add_variable(x[i, j], i = 1:max_bins, j = 1:n, type = "binary") |> set_objective(sum_over(y[i], i = 1:max_bins), "min") |> add_constraint(sum_over(weights[j] * x[i, j], j = 1:n) <= y[i] * bin_size, i = 1:max_bins) |> add_constraint(sum_over(x[i, j], i = 1:max_bins) == 1, j = 1:n) |> solve_model(highs_optimizer()) |> get_solution(x[i, j]) |> filter(value > 0.9) |> arrange(i, j)
设备环境:R版本4.2.0,最新版RStudio
报错信息:
Error in highs_solve(L = as.numeric(obj$solution), A = constraints$matrix, :
unused argument (dry_run = FALSE)
该代码在其他电脑可正常运行,处理复杂问题时也出现相同错误。
解决办法
这个错误源于ompr.highs与依赖的highs包版本不匹配:新版本highs移除了dry_run参数,但旧版ompr.highs仍在调用该参数,导致冲突。
具体修复步骤
- 卸载现有冲突包:
remove.packages(c("ompr.highs", "highs")) - 安装兼容版本:
- 针对R 4.2.0,推荐安装
highs1.0.0和ompr.highs0.5.0:install.packages("highs", version = "1.0.0", repos = "https://cran.r-project.org/") install.packages("ompr.highs", version = "0.5.0", repos = "https://cran.r-project.org/") - 或者直接安装
ompr.highs最新兼容版,它会自动匹配合适的highs版本:install.packages("ompr.highs", dependencies = TRUE)
- 针对R 4.2.0,推荐安装
- 重启RStudio,重新运行代码即可。
另外,建议将R版本升级到4.3.x及以上稳定版,新版本对包的兼容性更好,能减少这类版本冲突问题。
内容的提问来源于stack exchange,提问作者Mousta1101
相关产品推荐
相关产品推荐

