你知道我可以用来比较约束(不仅仅是数学)的工具吗?通过示例更容易解释:
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的约束。
我可以尝试手工写东西,但我不认为这是一个解决方案。我知道解决约束的问题是不可判定的,但我想知道在这方面做了哪些工作。
谢谢,
答案 0 :(得分:0)
这是一个有趣的问题!您可以编写一个解析每个约束的脚本,并检查每个约束中单独比较的数量,但我不确定这是否是测量它们的最佳方法。
答案 1 :(得分:0)
您是否正在尝试确定约束C1是否包含C2(意味着无法找到满足C1且不满足C2的一组值 - &gt; C2在C1为真但可能的所有情况下都为真不是相反的方式)?当C1包含C2时,可以删除C2,因为它不会为问题添加任何语义。
如果是这种情况,我建议您使用CSP求解器。它比看起来容易。例如,Eclipse CSP求解器(这里的Eclipse不引用IDE平台,求解器具有相同的名称)可以通过定义良好的API从java程序中轻松调用,这样您就可以将问题发送给求解器,看哪个约束更弱