生成无效的不等式组合

时间:2013-05-24 11:52:25

标签: math logic pseudocode arithmetic-expressions

这是一个相当模糊的问题,但我想我会试试运气。

我需要为一组未知变量生成无效等式的无效组合。

例如,给定a,b和c,我想生成这些:

a < b && a ≥ c && b ≤ c
a ⩵ b && a ≤ c && b > c
a ⩵ b && a > c && b ≤ c
a > b && a ≤ c && b ≥ c

以上都评价为假。

我需要能够为任意数量的变量生成它们。

如何做到这一点?

3 个答案:

答案 0 :(得分:0)

不失一般性,所有变量都来自有限集{1,2,..,n},其中n =变量数。
像“a i &lt; a j ”这样的每个条件实际上都是所有n n 点的有限集的子集。
因此,只需搜索具有相应子集的空交集的条件组合。

答案 1 :(得分:0)

首先,写下以下命题:

P1: a <= b <= c <= ... <= zzz

然后写

P2: a = b = c = ... = zzz

P3: zzz <= a <= b <= c <= ... <= zzy

然后写

P1 & ¬P2 & P3

这是假的。

我希望你现在反驳这个解决方案不能满足你的要求。我相信它满足了您告诉我们的要求,如有必要,请告诉我们更多信息。

是的,我知道这更多是评论的本质而不是答案。

答案 2 :(得分:0)

给定n个表示数值的变量,一组最小的无效(不可行)不等式具有以下形式:

a_1 ≥ a_2 ≥ ... ≥ a_n ≥ a_1

这些弱的不等式中的任何一个都变成了强烈的不等式>。 [注意:如果您允许不等式(斜线等于),从使用的字体中不清楚,但将其添加到弱不等式的循环中也会产生一组不可行的条件。]

这种不可行的集合可以通过几种方式加以阐述。变量可以任意置换(除了改变强不等式的位置),并且可以将额外的不等式添加到最小集合(进一步的限制保持不可行性)。作为后者的一个特例,不一致的弱不平等可以改为强烈的不平等。

另请注意,n-1个变量上任何无效的不等式都可以(被动地)扩展到n个变量的无效集。