私はこの問題がNP困難であることを、 ます。平面3 -SAT
からの削減 平面3 -SAT
いくつかの基本的なガジェット
ガジェットは、回路で使用するゲートを構築できるジオメトリの内部構成であり、これを削減します ます。平面3 -SAT
4X3-ガジェット
このガジェットには、2つの有効な最小正方形パーティション状態があります。
4X3-ガジェットを残しました。中央と右: 2つの可能な最小二乗パーティション状態。
5X4-ガジェット
このガジェットは、4X3-gadgetとまったく同じで、寸法が大きくなっています。
左 A 5X4-ガジェット。中央と右: 2つの可能な最小二乗パーティション状態。
エンドポイントガジェット
エンドポイント・ガジェットが ある5X4-ガジェット。ゲートのエンドポイント/ピンとして頻繁に使用されます。エンドポイントの2つの状態のうち1つはtrue、もう1つはfalseと評価できます。エンドポイントは、1つをとして、もう1つをFとして、2つの端をマークします。大きな正方形で覆われている端は、端点の値です。TF
左:エンドポイントガジェットのワイヤフレーム。中央:真の値のエンドポイント。右:誤った値のエンドポイント。
i-wireガジェット
I-ワイヤガジェットは、の略です含意ワイヤー。
ルール:
- I-ワイヤガジェットは、以上の長さの奇数長の矩形から成るとの幅222。
- I-ワイヤガジェットを持つことはできません最小平方パーティション状態、一方の側から押し出さを、他の、またはどちら。I-ワイヤこの第3の状態では、呼び出されなければならないローカルunconstrainted。3
例:
図7:長さ7、幅2のi-wireガジェット72。
使用方法は次のとおりです。
図8,9、左: 2つのエンドポイント間のワイヤフレームi-wire。正しい:連合。
現在、一方のエンドポイントが適切な状態にある場合、もう一方のエンドポイントをプッシュ位置に強制します。例:
左:正方形のパーティション図。左のスイッチがダウンしている場合、すべての四角形をi-wireに「押し込み」、最後に他のスイッチ(エンドポイント)を押します。右:正方形のパーティション図。左のエンドポイントは、「プッシュ」すべて正方形ダウン、フルであるI-線、および軍エンドポイント左には「アップ」します。
A⟹¬ BA⟹B
ただし、これにより制約のない場合が残ります。
2つのi-wireを組み合わせると、双方向の含意、本質的にブール(不)等式を得ることができます。
そのため、2つのi-wireは、回路のように完全な等式関係を保持できます。実際、それは回路です。これらのペアを使用して、使用可能なワイヤを構築します。
各i-wireガジェットは、寄与しますl − 12+ 2
i-wiresは必要に応じて方向付けできます。
ワイヤー
ワイヤは一対で構成I-ワイヤ同じに接続され、ゲートの各エンドポイントです。
- I-ワイヤは赤と緑に着色されています。
- 3
- 各ゲートピンには緑と赤の接点があります。ワイヤを正しく接続する必要があります。
- 不変の規則: 1つの i-wireは他の i-wireとは反対の方向にプッシュされ、各ゲートはこれを想定し、これを特定します(特に明記しない限り)。
- 各ワイヤには双方向の意味が含まれているため、回路内のワイヤのようにゲートからゲートへ値を伝達します。
- すべてのワイヤは、両端でゲートに接続する必要があります。。これに失敗すると、私が説明するいくつかのゲートの仮定と、上記の不変の規則が台無しになります。ただし、リードの両端にエンドポイントがある ゲートは安全です。ゲートを台無しにすることを心配せずに、これらのエンドポイントに浮遊線を接続できます。
- ワイヤは、接続先の回路へのリード線を含め、奇数長でなければなりません。ただし、偶数長のワイヤを奇数長にすることができる奇数スキップゲートについて以下に説明します。
写真:
上:ワイヤー。
左と右:二つの可能な最小限平方パーティションの状態のワイヤー。ワイヤーがこの長さだけの場合、右または左にシフトすることができず、1つの正方形を小さな断片に分割する必要があることに注意してください。
ワイヤは必要に応じて方向付けできます。
ベンドゲート:ワイヤーを曲げる
左:ワイヤフレームビュー。右:ユニオンビュー。
4X3-gadgetの使用に注意してください。赤いリードを奇数の長さに修正するために使用されます。
ベンドの2つの可能な最小正方形パーティション状態は次のとおりです。
左と右:曲げワイヤの2つの可能な最小二乗正方形分割状態。
ゲートは必要に応じて方向を変えることができます。明らかに、このゲートをミラーリングして、他の方向に機能させることができます。
ワイヤーをゆがめる
ワイヤーを簡単にシフトできます。ワイヤフレームの図:
名前付き値ゲート
名前-値ゲートは本質的に一つのワイヤコンタクトとゲートとしてエンドポイントです。
odd-skip-gate:ワイヤーをスキップする奇数
奇数の長さのワイヤしか持っていないことが不便な場合があります。例えば:
ご覧のとおり、この少しの拡張は少し面倒です。4X3-gateを使用した対応するソリューションは次のとおりです。
したがって、これをゲートに変えると、(ワイヤフレームで)奇数スキップゲートが得られます。
ゲートは必要に応じて方向を変えることができます。
ツイストゲート:ワイヤーをねじる
場合によっては、ゲートで使用するために間違った側に赤と黒のiワイヤーがあります。この場合、赤と黒のiワイヤーをねじるために、ツイストゲートが提供されます。を反対側ます。
ワイヤフレームの図:
それが機能することを確信してください:
A
ゲートは必要に応じて方向を変えることができます。
split-gate:ワイヤーを分割する
ワイヤー、ワイヤーフレームの分割:
それが機能することを確信してください:
A
A
注:スプリッターに出入りするすべてのワイヤーは絶対に必要です不変を維持するためにどこかにエンドポイントに接続するがあります。または、スプリッターのリードのペアのそれぞれにエンドポイントを追加できます。
ゲートは必要に応じて方向を変えることができます。
非ゲート
notゲートはワイヤを受け取り、逆の意味を持つワイヤを出力します。それは、基本的にはツイストゲートです。ただし、ワイヤの色のラベルを変更します。ない-ゲート次のようになります。
そして、2つの可能な状態のビュー:
ゲートは必要に応じて方向を変えることができます。
節ゲート
以下のため句ゲート、我々は最初に紹介句-ガジェットを:
3異なる最小正方形パーティション状態。
これがゲートの外観です。
3
説明:
- で開始 句ガジェットから矢印に従ってください。
- 矢印のない線は、回路の一部であることを意味しますが、ゲートによって強制的に状態にされることはありません。
- 節ガジェットの状態により、エンドポイントの1つがtrueになります。
3 -CNF句に必要なものです。
ゲートは必要に応じて方向を変えることができます。
削減
Φ (x)平面3 -SAT
Φ (x) = ∧n私C私、C= {(xj∨ Xk∨ Xl)}
視覚資料(元の資料:Terrain GuardingはNP-Hard(PDF)、tikzで再現):
次に:
- バツ私∈ Xバツ私¬ X私。
- not-gateを使用してゲートを互いに接続し、論理的に互いの値を無効にします。
- 変数のゲートのポリゴンを、平面埋め込みの位置に配置します。
- 句ごとに、句ゲートを配置しますに、plane-embeddingの節の位置に節を配置します。
- 上記のゲートを使用して、すべての変数を句に接続します。
- 最小二乗分割アルゴリズムを実行する結果として生じるゲートのすべてのポリゴン(回路全体)の和集合に対してを。
- アルゴリズムがすべてのゲートの最小平方パーティション状態サイズの合計を返す場合(共有コーナーを減算)、それは充足可能です。満たされない場合、制約されたガジェットを強制的に小さな正方形に分割し、回路を分割するために必要な正方形の数を増やします。
なぜ機能するのか
- 各ガジェットには、最小の正方形パーティション状態サイズがあります。つまり、そのガジェットの最小正方形パーティションは特定のサイズです。
- 一部のガジェットには、このサイズの状態がいくつかあります。これらの状態はそれぞれ有効な最小二乗区画です。
- ガジェットがコーナーでのみ結合されている場合、ガジェットの最小正方形パーティション状態の合計は* minimUM-square-partition-stateのままですのままです。これを直感的に見ることができます。コーナーで参加しても、他のガジェットの正方形と拡大/接続するための十分なスペースが確保されません。
- コーナーでガジェットを組み合わせることは減少させないながら、総最小二乗パーティションサイズを、それがない関連し、それぞれ、他とのガジェットを制約します。
- 上記のゲートを使用すると、状態を十分に制約できるため、論理式が満たされない場合、1つ以上のガジェットがさらに小さな正方形に分割し、最小正方形パーティションサイズを大きくする必要があります。
グラフソース
imgur urlの「s」、「m」、「l」のサフィックスを削除することで、より大きな画像を表示することもできます。たとえば、あなたはこのの拡大画像を参照することができhttp://i.stack.imgur.com/6CKlGs.jpgをに行くことによって
http://i.stack.imgur.com/6CKlG.jpg。の前に「s」がないことに注意してください.jpg
。