我正在尝试使用 CVXPY 解决以下形式的线性程序:
10 个人回答了一项询问他们的家庭、年龄、性别和世代的调查。从这些回复中,我写了许多约束和统计数据,例如“所有 10 个人的平均年龄 = 40”,或“单亲家庭数 = 0”。每个字段(给定人的年龄、种族等)都表示为一个 CVXPY 变量。目标是使用这些约束来重新生成原始调查响应(假设局外人看到发布的约束而没有看到调查响应,并希望确定每个人的原始调查响应是什么)。
我可以将我的约束编码为 CVXPY 约束,但是我没有最大化的目标函数,因为我有很多约束。有没有办法对我的目标函数进行编码以返回给定变量分配所满足的约束数量,以便在满足所有约束时最大化目标函数?我无法从 CVXPY 文档中判断是否有办法做到这一点。或者,是否有另一个更适合解决这个程序的开源优化器?我已经使用 SAT 求解器解决了它,现在想使用非线性优化器来解决它。
示例数据采用以下格式:ID、家庭编号、年龄、性别、种族、世代:
ID 无关紧要,仅用于帮助我跟踪其他代码中的行号。
1 1 80 1 1 2
2 1 40 0 0 1
3 1 70 1 0 2
4 1 30 1 1 1
5 1 90 0 0 2
6 2 10 0 1 0
7 2 10 0 1 0
8 2 10 1 0 0
9 2 40 1 0 1
10 2 20 0 1 1
谢谢你,克里斯蒂安