n項モノトーンCNFの最短公式


10

n個の変数()にm個の項がある単調なCNF式は、の形式の式であり、各は変数の一部のサブセットのORです。、とからの範囲に。 F X 1... xはN= C I C I X 1... X nは I 1 m個x1,,xnf(x1,,xn)=CiCix1,,xni1m

たとえば、は、4つの変数に2つの項を持つ単調なCNF式です。バツ1バツバツ4バツ2バツ4

私は、n個の項を持つn個の変数の特定の単調CNF式と同じ関数を表す同じ変数のセットで、最も短い式(必ずしも単調でなくても、CNFである必要はありません!)を探しています。(項と変数の数は同じであることに注意してください。)

式を構築する1つの明白な方法は、与えられたCNF定義を拡張することです。これにより、サイズ式が得られます。(数式のサイズを文字列として書き留めたときの数式の長さとなるように定義しましょう。)これが最も効率的な一般的な構成であるかどうか、またはすべてのn項の単調CNFに数式が存在するかどうかを知りたいサイズ。o n 2O2o2

これが可能かどうか知りたいだけなのですが、アルゴリズムにはあまり興味がありません。これが不可能な場合は、反例となる機能がいいでしょう。文献で答えを見つけることができる場所へのポインタも高く評価されています。

編集:私はシンをより明確にするために例を追加しています。

入力式がます。これは、単調なCNF式です。同じ関数を表す短い式は次のとおりです:。xは1X 2X 3... X Nf=バツ1バツ2バツ1バツバツ1バツバツ1バツ2バツバツ

回答:


11

カウンティング引数を使用して下限を取得できます変数には項のCNF があります(これは簡単ですが、過大計算がないことを確認してください)、ただし最大でサイズの式(または回路)があります。 e x p n 2n n e x p s log s sΩ2/ログeバツp2 eバツpsログss

数式サイズの2次の下限を証明する必要があるため、最後のファクターを獲得するのは難しいと思われます。私の推測では、これに関するいくつかの既存の手法では不十分です。 は、少なくとも4つのロシア語に似た手法を使用すれば、少なくとも回路規模では正しい答えになる可能性さえあります。O n 2 / log n ログO2/ログ


パーフェクト、ありがとう!log n係数は私にとってそれほど重要ではないので、これは私の質問に完全に答えます。
ロビンKothari

2

すべてのCNFについて、解決の下でクロージャーを取り、包摂消去法を適用することにより、一連の素因数(その最小値はサブセットでなければならない)を計算できることを考慮してください。

しかし、任意の単調CNFの場合には、の解像度閉鎖ある(負のリテラルが存在しないように、可能な解決方法は存在しません)。したがって、最小CNFはプライムインプリケートのセットであり、これは正確にすでに持っている式です。F FFFF

もちろん、私はあなたが新しい変数を導入したくないと仮定しています。

項を含む数式があることを確認したい場合は、提案したように、不足している変数を追加して句の一部を拡張するのが唯一の方法です。そのようなCNFは、固定されたおよび同じ数のリテラル(私が信じているとあなたが提案するサイズ測定)を持つ必要があります。f nf


いいね、気に入った。(ちなみに、単調なDNFケースが出てきた場合、@ Robin、これは興味深いものになると思います:citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.69.4716
Daniel

1
私は上手く理解できていない気がします。最小サイズのCNFは、既に持っている単調なCNFの式かもしれませんが、あらゆる種類の最小の長さの式を探しています。CNFやモノトーンである必要はありません。これを明確にするために質問を編集します。
Robin Kothari

1
ああ、なるほど。まあ、私が言っていたことは、それがCNFでなければならない場合をカバーしています。それが任意の命題式である場合、私はもっと考える必要があります。
MGwynne
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.