通过整数求解x1和x2的以下不等式系统。
x1 + x2 = l
x1> = y1
x2> = y2
x1< = z1
x2< = z2
l - z1< = x2
l - z2< = x1
l,y1,y2,z1,z2是任意的但是固定且> = 0。
使用示例值
l = 8
y1 = 1
y2 = 2
z1 = z2 = 6
我solve the system并获得以下等式:
2< = x1< = 6
x2 = 8 - x1
当我告诉WolframAlpha它应该solve it over the integers时,它只输出所有可能的值。
我的问题是我是否能够以编程方式为任何给定的l,y1,y2,z1,z2导出x1和x2的方程/范围。这个问题与约束编程有关,我找到了一篇关于这个问题的旧论文:Harvey等人的"Compiling Constraint Solving using Projection"
这种方法是否用于任何现代约束求解库?
我之所以这样说的原因是我需要使用不同的参数来解决上述几千次的系统,如果整个系统被一遍又一遍地读取/优化/解决,这需要很长时间。因此,如果我可以编译我的参数化系统一次,然后只使用编译版本,我期望大幅度的速度增益。