约束比较器

时间:2010-08-18 10:57:40

标签: constraints

你知道我可以用来比较约束(不仅仅是数学)的工具吗?通过示例更容易解释:

A)简单的例子

C1: x < 0 && y * y < x
C2: x < 0 && y * y < x - 1

我想知道C2是否比C1强,而且确实如此。这意味着,C2的(x,y)也在C1中。

B)复杂的例子

C1: x > 0 && y > 0
C2: x > 0

C2比C1弱,因为它不包含y的约束。

我可以尝试手工写东西,但我不认为这是一个解决方案。我知道解决约束的问题是不可判定的,但我想知道在这方面做了哪些工作。

谢谢,

2 个答案:

答案 0 :(得分:0)

这是一个有趣的问题!您可以编写一个解析每个约束的脚本,并检查每个约束中单独比较的数量,但我不确定这是否是测量它们的最佳方法。

答案 1 :(得分:0)

您是否正在尝试确定约束C1是否包含C2(意味着无法找到满足C1且不满足C2的一组值 - &gt; C2在C1为真但可能的所有情况下都为真不是相反的方式)?当C1包含C2时,可以删除C2,因为它不会为问题添加任何语义。

如果是这种情况,我建议您使用CSP求解器。它比看起来容易。例如,Eclipse CSP求解器(这里的Eclipse不引用IDE平台,求解器具有相同的名称)可以通过定义良好的API从java程序中轻松调用,这样您就可以将问题发送给求解器,看哪个约束更弱