【发布时间】:2021-05-29 04:13:03
【问题描述】:
假设我有以下不等式系统:
-2x + y <= -3
1.25x + y <= 2.5
y >= -3
我想找到满足上述不等式的(x, y) 的多个元组。
library(Rglpk)
obj <- numeric(2)
mat <- matrix(c(-2, 1, 1.25, 1, 0, 1), nrow = 3)
dir <- c("<=", "<=", ">=")
rhs <- c(-3, 2.5, -3)
Rglpk_solve_LP(obj = obj, mat = mat, dir = dir, rhs = rhs)
使用上面的代码似乎只返回 1 个可能的解决方案元组(1.5, 0)。是否可以返回其他解决方案元组?
编辑:基于 cmets,我有兴趣了解是否有任何功能可以帮助我找到角点。
【问题讨论】:
-
dir 的第三个元素有错别字吗?不应该是 >= 吗?
-
由于可能有无限多的解决方案,因此很难一一列举。当限制为整数解或角点时,事情至少在理论上更简单。一些求解器具有生成部分或所有不同整数解的功能。
-
@ErwinKalvelagen 有道理。你会碰巧对哪些求解器可以做到这一点提出建议吗?
-
高端 MIP 求解器有一个叫做“解池”的东西。约束编程求解器还可以生成多个解决方案。
-
@ErwinKalvelagen R 中有什么函数可以做到这一点吗?
标签: r linear-programming solver