回答:
変換の1つのタイプは、k-sat-to-3-sat変換の逆です。
k-satから "j" -sat、への変換を思い出してください:
ここで、はダミー変数です。つまり、「この句は真ではありませんが、私が知っている別の句はそうです」のようなものです。もう1つの条項は、元の条項から分割された次の条項です。上記は例です。それ以外の場合、2番目の分割ノードはよりも大きいため、同じようにもう一度分割する必要があります。2 J ≥J
変換を元に戻す
次に、句を次のように組み合わせることができます。
この新しい数式にがないことに注意してください。
もちろん、このような句を任意の式で見つけることは保証されていないため、最小保証はと等しくなります。 n k
ただし、通常の数式では、変数とその否定が数式に表示されます。それ以外の場合は、純粋なリテラル消去を実行できます(ここで説明)。簡単にするために、と仮定します。次に、一方にリテラルを、もう一方にその否定を含む2つの句を組み合わせることができます。すべてのリテラルには否定のある別の句が必要であるため、句の数を約半分にできるはずであることを経験的に推測できます(すでに結合されている句でいくつかのリテラルとその否定に悩まされる可能性があるため、最後にいくつかの結合できない句;このような句を最適に結合することは、別の興味深い問題になる可能性があります)。
編集:
リフレクションの後、が属している2つの句を折りたたむためには、がフリーであり、数式の他の場所で使用されてはならないことに気付きました。したがって、これらの種類の句(1つはリテラルを含み、もう1つはその否定で、このリテラルは式の他の場所で使用されていません)は、以前考えたよりもはるかにまれです。したがって、実際の答えは、式の句の数をどれだけ減らすことができるかについての保証はありません。