将基于 Matlab 问题的公式转换为基于求解器的公式的 ILP 变量映射

ILP variable mapping in converting Matlab problem-based formulation to solver-based formulation

我正在使用 Matlab 工具作为 "vehicle" 在 ILP 上旋转。它们在更高的抽象层次上都有一个传统的"solver" based (SB) formulation and a "problem" based (PB) formulation

SB 和PB 的区别在于,对于PB,用户不必担心哪些问题变量映射到变量的ILP 列向量的元素。 优化问题对象接受符号形式的优化函数和equality/inequality约束,class方法处理定义问题变量列向量的簿记,优化函数的系数以及等式和不等式约束的矩阵和相关 RHS。

实际上可以通过使用 prob2struct 从 PB 转换为 SB 来检查 PB 公式的 SB 对应物。不幸的是,尚不清楚 prob2struct 如何决定哪些 PB 变量映射到变量列向量的哪些元素。

我尝试搜索 PB 公式中的优化问题对象,看看它是否包含自己的内部 SB 公式详细信息(不管它是否与 prob2struct 的那些匹配),或者至少是变量映射。我找不到这样的细节。

对于prob2struct,是否有可靠的规则让我们知道哪些符号PB变量映射到SB的变量列向量中的哪些元素?

试试 varindex 函数。它是在 R2019a 中引入的。