我正在尝试使用lpSolve::lp.transport优化R中的一个运输问题。我的代码如下:
library(lpSolve)
cost <- matrix(rep(100, 34968), nrow = 372)
row.signs <- rep("<=", 372)
row.RHS <- c(t(vehicleGVWR2[,2]))
col.signs <- rep(">=", 94)
col.RHS <- c(t(branchGVWR[, 2]))
lptrans <- lp.transport(cost, "min", row.signs, row.RHS, col.signs, col.RHS)每个值的成本矩阵都是"100“,因为分配的成本被认为是可以忽略的/对于每个组合来说是相同的。
成本矩阵是372x94。这是不是太多的变量使函数无法处理?或者代码最终会完成运行吗?
发布于 2021-07-01 05:07:14
您应该发布branchGVWR和branchGVWR2向量,以便我们可以测试。然而,如果没有这些,因为你所有的成本系数都是完全相等的,那么问题的解决方案可能会大量退化。因此,求解器从一个解移动到另一个解,其中解总是相等的。您可以尝试向每个成本系数添加一个随机epsilon值:
cost <- matrix(rep(100,34968),nrow = 372)
cost <- abs(rnorm(34968)) + cost看看这是否解决了超时问题。
https://stackoverflow.com/questions/68200219
复制相似问题