转换为 XOR 合取形式
Posted
技术标签:
【中文标题】转换为 XOR 合取形式【英文标题】:Converting to XOR conjunctive form 【发布时间】:2013-07-16 04:17:19 【问题描述】:异或合取形式定义如下:(a XOR b) and (c XOR d)...等
SAT-XCF 是由可满足的先例(XOR 合取)表达式定义的语言。
我想知道 SAT-XCF 是 NP 难吗?那么,是否有一个函数能够将任何可满足的布尔表达式转换为可满足的 XOR 合取形式?
非常感谢您的贡献。
【问题讨论】:
【参考方案1】:我认为即使对于 2 个变量,您最后一个问题的答案也是“否”。具体来说,(a OR b) 不能表示为任意数量的 XOR 表达式的 AND。最多 2 个变量中几乎没有不同的 XOR 表达式:false、true、a、b、!a、!b、(a XOR b) 和 (a XOR !b)。如果你与其中任何一个:false、true、a、b、!a、!b、(a XOR b)、(a XOR !b),你将设置为 false 的 4 种可能组合之一 (a,乙)。这只留下了与 (a OR b) 不同的表达式 true。
【讨论】:
【参考方案2】:是的,您可以,并且有一个有效的算法。你遵循正常的代数规则模2。关于前面的评论:
A|B=A^B^AB
这种形式称为代数范式 https://en.wikipedia.org/wiki/Algebraic_normal_form
【讨论】:
以上是关于转换为 XOR 合取形式的主要内容,如果未能解决你的问题,请参考以下文章
数理逻辑命题逻辑的等值演算与推理演算 ( 命题逻辑 | 等值演算 | 主合取 ( 析取 ) 范式 | 推理演算 ) ★★