我有一个复杂的问题,我已经简化为一个简单的整数线性规划公式。
给定标量,向量和是已知的。特别是 是测量值(例如:每 10 分钟),而是固定的(以前计算的)。考虑到我有: 即,我必须识别(例如:)元素的存在,每个元素的维度为(例如:)。
因此,对于每个固定,我必须解决的问题具有以下公式:
你知道哪些算法可以解决这个公式吗?特别是我正在寻找一种用 Python 实现的算法。
我有一个复杂的问题,我已经简化为一个简单的整数线性规划公式。
给定标量,向量和是已知的。特别是 是测量值(例如:每 10 分钟),而是固定的(以前计算的)。考虑到我有: 即,我必须识别(例如:)元素的存在,每个元素的维度为(例如:)。
因此,对于每个固定,我必须解决的问题具有以下公式:
你知道哪些算法可以解决这个公式吗?特别是我正在寻找一种用 Python 实现的算法。
与您在问题的第一句话中所写的相反,您的问题不是整数线性规划 (ILP) 的实例,不能被表述为 ILP 问题。
如果您使用范数(而不是范数),则可以将其表述为 ILP 问题。您将引入其他变量,添加线性不等式
其中表示个系数,然后最小化目标函数。
使用范数,这不再是 ILP 问题。它是整数二次规划的一个实例。您可以尝试为混合整数二次规划 (MIQP) 应用现成的求解器。不过,MIQP 总体来说还是挺难的,不知道会不会有效。
作为另一种选择,您可以将 MIQP 实例放松为二次规划或半定性规划的实例,求解实数解,然后将每个实数舍入到最接近的整数(或使用随机舍入),并希望得到的结果解决方案“相当不错”。这在计算上可能更可行(因为实数上的二次规划/半定性规划比 MIQP 更容易),但不能保证得到的解决方案的质量;它可能是任意坏的。
您的问题似乎与格中的最近向量问题(CVP)有关,这被认为是困难的。在这里,您有系数为 0 或 1(而不是任意整数)的附加约束。如果不太大,您也许可以使用现有算法,例如LLL 基础缩减。我不知道这是否会奏效。
您可以重新参数化为,其中是一个常数,因此,然后继续使用您最喜欢的优化方法来查找,然后从那里。
当然,这可能会出现问题,因为不再受限于,但可能足以满足您的用例。