【发布时间】:2021-10-11 22:28:42
【问题描述】:
我正在尝试反转表单中的聚合,以便在对非聚合数据再次执行聚合时,它会产生完全相同的聚合数据集。
这些数据是关于用户及其对软件应用程序的使用情况。
我所拥有的是描述所用软件组合的三角矩阵(即 2 个用户使用软件 1 和软件 3)
S1 S2 S3 S4 S5
S1 1 2 0 1
S2 2 1 2
S3 0 2
S4 1
我还有用户数 = 5。
我想得到的是这样的(例如,意味着 User2 正在使用 S1、S2、S3):
S1 S2 S3 S4 S5
User1 1 0 0 0 0
User2 1 1 1 0 0
User3 0 1 0 1 1
User4 0 1 1 0 1
User5 1 0 1 0 1
我尝试了 GLPK,但没有找到正确设置约束的方法。我的想法是检查列的 sumproduct(例如 S1 和 S2 )是否受三角矩阵中的值(在第一种情况下 = 1)的约束,但该乘积似乎使其成为非线性问题。
使用求解器是解决这个问题的正确方法吗? 有没有办法在 GLPK 中解决这个问题,如果没有,我应该使用哪个求解器?
【问题讨论】:
标签: optimization solver nonlinear-optimization mixed-integer-programming glpk