我正在研究一个编程问题,该问题归结为一组方程和不等式:
x[0]*a[0] + x[1]*a[1] + ... x[n]*a[n] >= D
x[0]*b[0] + x[1]*b[1] + ... x[n]*b[n] = C
我想求解
X
的值,该值将给出 C
的绝对最小值,给定输入 D
和列表以及 A
和 B
由 a[0 - n]
和 b[0 - n ]
组成。我目前正在用 Python 解决这个问题,但一般来说这个问题与语言无关。
澄清更新:系数
x[0 - n]
仅限于非负整数集。 最佳答案
这看起来像是 linear programming 问题。 Simplex algorithm 通常会给出很好的结果。它基本上遍历由不等式分隔的子空间的边界,寻找最优值。
从视觉上考虑:每个不等式表示一个半空间,一个 n 维空间中的平面,你必须在它的右侧。您的效用函数就是您要优化的函数。如果空间是封闭的,则最优值将在封闭空间的顶点之一;如果它是开放的,则最优值可能是无限的。
关于python - 求解最小值的不等式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/227282/