CNFをさらに縮小するためのアルゴリズムがあります
-
29-09-2020 - |
質問
結合的な通常の形式でブール式を持っています(CNF)。 $(A \ VEE B \ VEE C)\ wedge(A \ VEE B \ VEE \ NEG C)\ WEDGE(X \ VEY Y)$
これが簡単にできることを知っています。 $(a \ vee b)\ wedge(x \ vee y)$ 。
a)CNFがすでに縮小されているかどうかを判断するためのアルゴリズムがあるか?
b)各ペアを比較するよりも効率的な方法でこの縮小を行うことができるアルゴリズムは、ペアリングを減らすことができるかどうかを確認することができるか?私はどんなCNFのためにこの縮小を自動化し、私が借りる/実装できるすべてのアルゴリズムを探しています。
解決
CNF最小化は難しい。 https://cstheory.stackexchange.com/q/9839/5038 。それは確かにNP硬いものであり、それが「さらに硬い」であるという意味があります。
その直感を受ける1つの方法は、CNFが満足できないならば、その縮小された形式は「偽」であるが、それが満足できるならば、その縮小は何か他のものであるということです。したがって、あなたが縮小された形を見つけるための効率的な方法を持っていたら、それはすぐにCNFが満足できるかどうかを言う方法を与えるでしょう - 私たちが知っているタスクはnp-hardです。
https://cstheory.stackexchange.com/q/9839/5038 と https://en.wikipedia.org/wiki/logic_optimization# jircuit_minimization_in_boolan_algebra このタスクのアルゴリズム