我在n个变量中具有k个线性不等式(0
谢谢!
答案 0 :(得分:5)
这可以使用具有恒定目标函数的linear programming来完成。也就是说,只检查程序的可行性。
答案 1 :(得分:2)
将SMT求解器用于线性算术理论(Yices,Z3,...)。这些程序旨在查找您指定的输入的模型。当然,您也可以通过其他方式从现有算法中受益。
答案 2 :(得分:2)
你可以使用傅里叶 - 莫兹金消除来解决不等式系统。您需要了解基本代数才能理解解决方案。
http://en.wikipedia.org/wiki/Fourier%E2%80%93Motzkin_elimination
答案 3 :(得分:1)
您只需要与范围相交。以下是伪代码的方法:
// An array that has the ranges (inequalities) to test:
fromToArray = [[0, 10], [5, 20], [-5, Infinity]]
currentRange = [-Infinity, Infinity];
for each pair myRange in fromToArray
if currentRange[0] < myRange[0]
then currentRange[0] = myRange[0]
if currentRange[1] > myRange[1]
then currentRange[1] = myRange[1]
if currentRange[0] >= currentRange[1] // from greater than to, so set is empty.
then return "NO SOLUTION"
end for each
return "Solution is: " + currentRange
答案 4 :(得分:0)
计算相关矩阵的行列式;如果它不是零,那么就有一个独特的解决方案;如果它为零,则有无限多个解或无 - http://en.wikipedia.org/wiki/System_of_linear_equations
或者,使用高斯消元 - http://en.wikipedia.org/wiki/Gaussian_elimination