2-SAT

ウィキペディアから、無料の百科事典

2-SAT(英: 2-satisfiability)は、各節が高々2個のリテラルからなる連言標準形の論理式について、式全体を真にする真偽値の割り当てが存在するかを判定する問題である。リテラルとは変数またはその否定をいい、節はリテラルを「または」で結んだもの、連言標準形は節を「かつ」で結んだ形式をいう。この制限を満たす式を2-CNF式という[1]。

命題論理の充足可能性問題(SAT)の制限された場合であり、変数数と節数に比例する時間で判定できる。標準的な解法は、論理式を含意グラフ(英語版)と呼ぶ有向グラフに変換し、その強連結成分を調べるものである。充足可能な場合は、式を真にする割り当ても同じ時間の範囲で得られる[2][3][3.1]。

一方、充足割り当ての個数を数える#2-SATは#P完全、満たす節数を最大化するMAX-2-SATはNP困難である。2-SATは、両立しない選択肢の組合せを禁止する制約を表すために用いられ、ラベル配置やクラスタリングなどに応用される。

2-SATの多項式時間解法は1967年に示され、1976年には線形時間解法が得られた[4][5]。作業に使う記憶領域に着目した計算複雑性の分類では、2-SATはNL完全である[6]。また、無作為に生成した2-CNF式では、節数と変数数の比が1となる付近で、充足可能となる確率が急激に変化する相転移がある[7]。

定義と例

論理式の形式

真を1、偽を0と表す。変数 とその否定 の真偽値は互いに反対である。節を真にするには、それに含まれるリテラルの少なくとも1個が真であればよい。式全体を真にする割り当てを充足割り当てと呼び、それが存在する式を充足可能という[8]。

2個のリテラルを持つ節を用いると、2-CNF式は

と表せる。ここで はリテラル、 は節数であり、 は論理和、 は論理積を表す。リテラル1個からなる節は単位節という。単位節 は と同値なので、反復を許せば2個のリテラルを持つ節として扱える[2][8]。

リテラルを含まない節を空節という。空節を認める定義では、空節は偽を表すため、それを含む式は充足不能である。節がまったくない式は真とする[4]。以下の含意グラフによる判定では、空節を持つ入力を先に充足不能と判定する。

禁止される組合せによる表現

異なる2変数 を含む節は、4通りの割り当てのうち1通りを禁止する制約として読むこともできる。各変数またはその否定を組み合わせると、禁止する割り当てを次のように指定できる。

節と禁止される割り当て
節禁止される の値

このため、2通りの選択肢を持つ対象が複数あり、2対象の選択の組合せに禁止条件がある問題は、その条件を節に変換して2-SATで表現できる。同じ値を要求する条件 は 、異なる値を要求する条件 は と表せる。

具体例

例えば、

は2-CNF式であり、 とすればすべての節が真になる。一方、

には充足割り当てがない。4通りの割り当てを調べると、 では第1節、 では第2節、 では第3節、 では第4節が偽になる[9]。

7変数の例

図による説明の例として、7個の変数 と11個の節からなる式

を考える。すべての変数を1にすれば式は真になる。この式の含意グラフと充足割り当ての集合を、以下の節の図に示す。

含意グラフによる解法

グラフの構成

節 は含意 と同値であり、 とも同値である。この関係を使い、 個の変数について、各変数とその否定に対応する 個の頂点を設ける。各節 に対し、

の2本の有向辺を加える。こうして得られる有向グラフが含意グラフである。充足割り当てでは、ある頂点のリテラルが真なら、その頂点から有向路で到達できるリテラルも真になる[2]。単位節 に対応する辺は となる。

強連結成分による判定

有向グラフで、どの2頂点の間にも両方向の有向路が存在するような極大の頂点集合を強連結成分という。2-CNF式が充足可能であるための必要十分条件は、どの変数 についても、 と が同じ強連結成分に属さないことである[2][3.1]。

両者が同じ成分に属する場合、 を真にすると含意の連鎖によって も真になり、 を偽にすると逆に が真になる。このため、どちらの値を割り当てても矛盾する[2][3.1]。

条件が満たされている場合には、強連結成分をそれぞれ1頂点に縮約して得られる、閉路を持たない有向グラフを使って割り当てを構成できる。辺の始点が終点より先になるように成分を並べるトポロジカル順序を求め、その逆順で未割り当ての成分を真、対応する否定の成分を偽とする。含意グラフでは に対して も存在するため、成分内の全リテラルの否定も1個の成分にまとまる。この構造により、すべての含意を満たす割り当てが得られる[2][3.1]。

成分のトポロジカル順序を番号で表すこともできる。成分間に辺があれば、その始点の成分の番号が終点の成分の番号より小さくなるように番号を付け、リテラル が属する成分の番号を とする。上の必要十分条件を満たす場合、各変数 の値を

と定めると、充足割り当てが得られる[3.1]。

強連結成分を求める方法の一つは、深さ優先探索を2回行うものである。まず含意グラフを探索し、各頂点からの探索を終えた順を記録する。次に、すべての辺を逆向きにしたグラフで、記録した順の逆順に未訪問の頂点から探索を始める。この2回目の各探索で新たに訪れる頂点の集合が、それぞれ1個の強連結成分になる。未訪問の頂点がなくなるまで繰り返すと、成分の発見順は、元のグラフで成分を縮約した有向非巡回グラフのトポロジカル順序にもなる[3.2]。

具体例の含意グラフ

上の充足可能な式 から得られる辺は次のとおりである。

節対応する有向辺
、
、
、

このグラフの強連結成分は と であり、後者から前者への辺がある。前者のリテラルを真、後者を偽とすれば、 の充足割り当てが得られる。式 では、さらに と が加わり、4頂点が同じ強連結成分に入る。

7変数の例の含意グラフ

7変数とそれぞれの否定からなる14頂点の含意グラフ。矢印は11節から得られる22個の含意を示す。
式 の含意グラフ。図中の は を表す。

式 の第1節 からは と が得られる。第2節 からは と が得られる。図では、残りの節についても同じ規則で辺を加えている[2]。

この例の含意グラフには有向閉路がなく、各頂点がそれぞれ1個の強連結成分となる。したがって、変数とその否定が同じ成分に入ることはなく、式は充足可能である。

計算量

含意グラフは 個の頂点と高々 本の辺を持つ。通常の隣接リスト表現では、グラフの構成、強連結成分の計算、各変数と否定の成分の比較、真偽値の割り当ては、合計 時間で実行できる。これは、変数数と節数の和に比例する線形時間という意味である[2][3.1]。

その他の解法

導出原理

導出原理は、ある変数とその否定をそれぞれ含む2個の節から、残りのリテラルを含む節を導く推論規則である。例えば、 と からは が導かれる。元の2節を満たす割り当ては導かれた節も満たすため、その節を式に加えても充足割り当ての集合は変わらない[4]。

この操作によって得られる新しい節を、追加できなくなるまで加える。導出原理の完全性により、空節が得られる場合に限り元の式は充足不能である。2-CNF式から導かれる節も高々2個のリテラルを持ち、 変数で作れる異なる節の数は である。このため、節の組を調べて新しい節を加える方法でも、多項式時間で判定できる[4]。含意グラフでは、 という2段階の含意から を得る操作に対応する。

単位伝播

単位節に含まれるリテラルを真とする割り当てを行い、真になった節を取り除き、ほかの節から偽になったリテラルを取り除く。この簡約を、新しい単位節がなくなるまで繰り返す操作を単位伝播(英語版)という。空節が生じれば矛盾が検出され、節がすべてなくなれば充足割り当てが得られる[8]。

2-CNF式では、まず既存の単位節を伝播し、未割り当ての変数 が残っていれば を仮定して再び伝播する。矛盾が生じた場合は、その仮定とそれに基づく割り当てを取り消し、 として伝播する。こちらでも矛盾すれば充足不能である。矛盾が生じない場合は、得られた割り当てを保持して残りの式に同じ操作を繰り返す。2-CNF式では、矛盾を生じない仮定と伝播の後の式が充足可能であることと、操作前の式が充足可能であることは同値になる。この性質により、過去の矛盾しなかった仮定へ戻って探索し直す必要がなく、多項式時間で判定できる[8]。

1976年の線形時間解法では、 と の両方から含意の伝播を並行して進める。片方の処理で矛盾が見つかれば他方を試し、片方が矛盾なく完了すれば他方の処理を打ち切って、その部分割り当てを確定する。原論文は、含意を調べるための適切なデータ構造を用いると、この方法を線形時間で実行できるとしている[5][10]。

乱択アルゴリズム

任意の割り当てから始め、偽になっている節を1個選び、その節の2個のリテラルの一方を等確率で選んで、対応する変数の値を反転する方法もある。充足可能な式については、充足割り当てが得られるまでの反転回数の期待値は高々 であり、 回の反転で見つけられる確率は少なくとも となる[11]。

この方法は、発見した割り当てが式を充足することを確認して成功を報告する。一方、打ち切りまでに発見できなかったことは、充足不能の証明にはならない。独立に繰り返すことで、充足可能な入力を見逃す確率を小さくできる[11]。

解法の歴史

導出原理による2-SATの多項式時間解法は、1967年の研究で示された[4]。1976年には、アディ・シャミアらによって、互いに反対の仮定から生じる含意の伝播を並行して進める線形時間解法が示された。この方法は、片方の仮定からの処理が矛盾なく完了したときに、その部分割り当てを確定するものである[5][10][2]。

1979年には、ロバート・タージャンらによって、含意グラフの強連結成分を利用する線形時間アルゴリズムが発表された[2]。教科書の参考文献解説でも同論文は2-SATの解法として紹介され、1991年の解法比較論文では含意伝播による方法などとともに検討されている[12][10]。

計算複雑性と関連する問題

判定問題

2-SATは、多項式時間で判定できる問題のクラスPに属する。各節を高々3個のリテラルに拡張した3-SATはNP完全であり、節の大きさの制限は計算複雑性に関わる[8]。NPは、肯定的な答えを裏付ける解候補を多項式時間で検証できる判定問題のクラスである。NP完全な問題はNPに属し、NPのどの問題も、その問題へ多項式時間で変換して解くことができる[13]。

対数領域での計算に着目すると、2-SATは対数領域還元の下でNL完全である。NLは、入力長に対して対数程度の作業領域を使う非決定性計算によって判定できる問題のクラスである。NL完全とは、このクラスに属し、クラス内のどの問題も、対数領域で計算できる変換によってその問題へ還元できることをいう[6]。

NL完全性は、有向グラフにおける到達可能性との関係からも説明できる。グラフ と頂点 に対し、頂点 ごとに変数 を用意し、

を作る。 から への有向路があれば、 から含意をたどって となるため、この式は充足不能である。有向路がなければ、 から到達できる頂点の変数を真、残りを偽とすれば式を充足する。したがって、到達不能の判定を2-SATへ還元できる。式を生成する変換は対数領域で実行でき、NLに属する問題の答えを反転した問題もNLに属するという性質と合わせて、2-SATのNL困難性が得られる[6]。

充足割り当ての集合

7桁の0と1で表示された16個の充足割り当てを頂点とするグラフ。1桁だけ異なる頂点の間に辺がある。
式 の16個の充足割り当て。7桁の数字は左から の値を表し、1変数の値だけが異なる割り当てを辺で結ぶ。

2-CNF式の充足割り当ての集合は、変数ごとの多数決に関して閉じている。すなわち、3個の充足割り当て を選び、各変数の値を、その3個の割り当てのうち少なくとも2個で採用されている値にすれば、得られる割り当ても元の式を満たす。この性質は中央値演算に関する閉性として述べられ、有限個のブール変数の割り当て集合がこの演算に関して閉じていることと、その集合をある2-CNF式の解集合として表せることは同値である[14]。

多数決で得られた割り当てが解になることは、節ごとに確認できる。3個の解はいずれも節 を満たすので、 の少なくとも一方は2個以上の解で真になる。そのリテラルは多数決後も真になり、節は満たされる。単位節についても同様である[14]。

空でない有限の解集合には、この中央値演算から中央値グラフと呼ばれるグラフを対応させられる。中央値グラフでは、任意の3頂点に対し、それぞれの頂点対を結ぶ最短路のいずれかに共通して含まれる頂点がただ1個存在する[14]。図は式 の解集合を表す中央値グラフである。この例では1変数の反転が辺に対応するが、一般の2-CNF式で1変数ずつ反転してすべての解を行き来できるとは限らない。例えば の解は と であり、両者の間を移るには2変数を同時に反転する必要がある。

計数と最大化

充足割り当ての個数を数える問題を#2-SATという。この問題は#P完全である[1]。#Pは、多項式時間で検証でき、長さも入力長の多項式で抑えられる解候補の個数を求める関数のクラスである。ここでいう#P完全とは、そのクラスに属し、クラス内の任意の計数問題を、多項式時間の計算とその問題への問い合わせによって解けることをいう[15]。

すべての節を満たせるかではなく、同時に満たす節数を最大化する問題はMAX-2-SATと呼ばれ、NP困難である。3-SATからの多項式時間の還元があるため、MAX-2-SATを多項式時間で厳密に解ければ、3-SATも多項式時間で解ける[16]。判定、計数、最大化では、同じ2-CNF式を入力としても異なる計算問題が得られる。

MAX-2-SATの近似

MAX-2-SATには、最適な節数を厳密に求める方法のほか、最適値に対して一定の割合以上の節を満たす割り当てを求める近似アルゴリズムがある。各節が異なる2変数を含む場合、各変数を独立に等確率で0または1にすれば、各節が真になる確率は である。節数が なら満たす節数の期待値は となり、最適値は 以下なので、最適値に対しても期待値で少なくとも を保証する[17]。

1995年には、半正定値計画法で緩和した解を乱択的に丸めることで、満たす節数の期待値が最適値の少なくとも約0.87856倍となる多項式時間アルゴリズムが示された[18]。この研究の予備版は1994年に発表され、1995年に論文誌へ掲載された[18]。その後の研究では丸め方の改良も検討され、2002年のアルゴリズムについて約0.9401という近似率が報告されている。2007年の研究では、各変数の肯定と否定の出現の重みが等しい場合と、偏りがある場合を区別して、近似可能性と近似困難性が調べられた[19]。

真にする変数の個数と重み

2-CNF式を充足するという条件に加えて、真にする変数の個数を最小化する問題はNP困難である。これは頂点被覆問題を含む。無向グラフの頂点 ごとに変数 を設け、辺 ごとに節 を加えると、真にした変数に対応する頂点の集合は、すべての辺の少なくとも一端を含む頂点被覆となる。したがって、真にする変数の個数の最小化は、この場合には頂点被覆の大きさの最小化に相当する[20]。

変数 に実数の重み を与え、充足割り当てのうち

を最小化または最大化する問題もNP困難である。これは変数に重みを与える問題であり、MAX-2-SATで満たした節の数、または満たした節の重みの和を最大化する問題とは目的関数が異なる[20][19]。

別の定式化として、2-CNF式と整数 を入力し、ちょうど 個の変数を真にする充足割り当てがあるかを問う重み付き2-SATがある。ここでは「重み」は真にした変数の個数を意味する。この問題は、 をパラメータとする計算量の分類でW[1]完全である[21]。パラメータ化計算量では、入力長 に対し 時間で解け、定数 が に依存しない問題を固定パラメータ容易という。W[1]完全性は、この重み付き2-SATにそのようなアルゴリズムが存在すれば、W[1]に属するすべての問題も固定パラメータ容易になることを意味する[21]。

量化された式

変数に存在量化子 または全称量化子 を付けた式の真偽を判定する問題も考えられる。存在量化は式を真にする値が存在すること、全称量化は両方の真偽値について式が真であることを表す。通常の2-SATは、すべての変数を存在量化した場合に相当する。量化子を式の先頭に置き、その後に2-CNF式を置いた形では、存在量化と全称量化が混在していても、強連結成分を用いる方法を拡張して線形時間で真偽を判定できる[2]。

無作為2-SAT

無作為に生成した2-CNF式については、充足可能となる確率が研究されている。 個の変数から異なる2変数を選び、それぞれを肯定または否定することで作れる 種類の節を考える。この中から重複なく 個の節を一様に選び、その論理積を取るモデルを とする[7]。

節数と変数数の比 が定数 に近づくように を増やすと、 では充足可能な確率が1へ、 では0へ近づく。閾値は であり、この変化は相転移と呼ばれる。有限の では遷移に幅がある。十分小さい定数 を固定し、充足可能な確率が 以上となる領域と 以下となる領域の間を遷移窓とすると、その幅は比 で測って である。ここで は、正の定数倍によって上からも下からも抑えられることを表す[7]。これは無作為な入力の分布についての結果であり、個々の式を節数と変数数だけで判定する条件ではない。

多値論理への拡張

多値論理では、変数が真と偽以外の値も取るため、2リテラルの節に制限しても、通常の2-SATと同じ計算量になるとは限らない。例えば、許容する真理値の集合 を指定するリテラル を用い、それらを論理和と論理積で結んだ式を考えると、各節が高々2個のリテラルであっても、充足可能性の判定はNP完全になり得る[22]。

一方、真理値集合に全順序があり、各リテラルを または というしきい値条件に制限した正則な式では、多項式時間で判定できる。真理値の種類数を固定した場合には線形時間のアルゴリズムもある。したがって、多値の場合には、節の長さに加えて、リテラルの許容範囲も計算複雑性を左右する[22]。

応用

ラベル配置

2-SATは、候補の選択と、候補同士の両立しない組合せの禁止を論理式で表すために用いられる。例えば地下鉄路線図のラベル配置では、各駅について2個のラベル位置候補を残し、各駅からちょうど1個を選び、選んだラベルが重ならない配置を求める部分問題を2-SATとして表せる[23]。

候補ごとに「採用するなら真」となる変数を設ける。2候補を とすると、ちょうど1個を選ぶ条件は

で表せる。また、候補 と が重なるなら を加え、路線と交差する候補 を禁止するなら単位節 を加える。これらはいずれも2-CNFの節であり、同時に満たす配置の有無を判定できる[23]。

生成した論理式の判定は変数数と節数に対して線形時間であるが、候補のすべての組の重なりを制約にすると、駅数を として節数は になり得る。したがって、制約の生成を含む配置判定の時間は、駅数に対して線形とは限らない[23]。

グラフの描画と集積回路の配線

グラフの頂点の位置を固定し、各辺を2通りの円弧のいずれかで描くとき、交差のない描画を選べるかという問題は2-SATに還元できる。各辺に1個の変数を対応させ、交差を生じる円弧の組合せを節で禁止する。平面グラフの頂点数を とすると、この直接的な方法は 時間で判定する。幾何的な探索構造を用い、含意関係をすべて列挙せずに探索することで、計算時間を短縮する方法も示されている[24]。

集積回路の配線にも同じ考え方を適用できる。端点の組を水平・垂直の線分で結び、曲がる回数を高々1回とする場合、各配線には通常2通りの経路がある。1層にすべての配線を交差なく収められるかどうかは、経路の選択を変数にし、配線間の干渉を高々2リテラルの節で表して判定できる。1986年の研究では、この方法による 時間のアルゴリズムが示された。ここで は配線の本数である[25]。

改名可能ホーン式の判定

ホーン節は、否定されていない変数を高々1個含む節である。各節がホーン節であるCNF式をホーン式という。各節の長さに上限はない。一部の変数について、その変数と否定の出現を式全体で入れ替えることでホーン式になるCNF式は、改名可能ホーン式と呼ばれる[26]。

この変換が可能かどうかは、補助的な2-SATを使って判定できる。原変数 ごとに「 の肯定と否定を入れ替えるなら1」となる変数 を設ける。同じ原節に現れる任意の2リテラルが、変換後に同時に肯定形にならないことを条件にする。例えば原節 に対しては、

を加える。この条件を全節のリテラルの組について作れば2-CNF式が得られ、その充足割り当てが、ホーン式に変換するための入れ替え方を与える[26]。

2クラスタの直径制約

点集合を高々2個のクラスタに分け、各クラスタの直径を指定された非負の上限以下にする問題も2-SATで表せる。クラスタの直径は、その中にある2点間の距離の最大値であり、1点だけのクラスタでは0とする。点 の変数を とし、第1クラスタに属するなら真、第2クラスタに属するなら偽とする[27]。

直径の上限がそれぞれ のとき、距離 が を超える点の組には を加え、両方が第1クラスタに入ることを禁止する。同様に、 なら を加える。得られた式を満たす割り当ては、指定された直径制約を満たす振り分けに対応する。空になった集合はクラスタとして数えない。点数を とすると、調べる点対と生成する節の数は なので、この可否判定は 時間で行える[28]。

このような可否判定は、クラスタの直径の和を最小化する手法にも用いられる[27]。1987年の研究では、2個の非空クラスタの直径の和を最小化する 時間のアルゴリズムが示された。この方法は、直径の候補をグラフの構造から絞り込み、上限の組に対する可否判定を繰り返すものである[28]。

2通りの時間帯の選択

日程調整でも、各予定に2通りの時間帯があり、選んだ時間帯が互いに重ならないようにする問題は2-SATで表せる。例えば、開始時刻 、終了時刻 の結婚式ごとに、所要時間 の式典を最初か最後に置き、同じ担当者がすべての式典に出席する問題がある。候補となる時間帯は と であり、ある式典の終了時刻と別の式典の開始時刻が等しい場合は、両方に出席できるものとする。また、会場間の移動時間は考慮しない[3.3]。

変数 を、式典を最初に置くなら真、最後に置くなら偽とする。結婚式 の最初の時間帯どうしが重なる場合には、節 を加え、両方で最初を選ぶことを禁止する。最初と最後、最後と最初、最後どうしについても同様に、時間帯が重なる選択の組を節で禁止する。これらの節をすべて満たす割り当てがあれば、それに対応する時間帯を選ぶことで日程を組める[3.3]。

具体例として、1組目の結婚式が8時から9時までで式典に30分、2組目が8時15分から9時までで式典に20分かかる場合を考える。時間帯の重なりから得られる式は

であり、充足割り当ては となる。したがって、1組目の式典を8時から8時30分、2組目を8時40分から9時に置けば、担当者は両方に出席できる[3.3]。

学校の時間割

学校の時間割を組む問題では、教師 とクラス の組ごとに必要な授業数 が与えられ、双方が利用できる時間帯に授業を割り当てる。教師が同時に複数のクラスを教えたり、クラスが同時に複数の授業を受けたりすることは禁止される。各教師が利用できる時間帯を高々2個に制限した場合、この時間割問題は多項式時間で解ける[5]。

1976年の論文は、この場合を分岐を限定したバックトラック法で解いている。すでに決めた時間割によって選択が1通りに定まる教師を順に割り当て、そのような教師がいなくなったら、未割り当ての教師について一方の時間割を仮定する。そこから矛盾が生じれば、その仮定からの割り当てを取り消して他方を試す。両方で矛盾が生じれば実行不能と判定でき、それ以前に確定した選択まで戻る必要はない。同論文は、この分岐を限定する手法が2-SATにも適用できると述べている[5]。一方、利用可能時間が3個の教師を含めると、全体の時間帯が3個でクラスが常に利用可能という制限の下でも、時間割問題はNP完全となる[5]。

スポーツの日程

総当たり戦では、対戦相手と試合日が決まっていても、どちらのチームのホームで試合を行うかを選ぶ必要がある。連続する2試合がともにホーム、またはともにアウェーとなることをブレークという。 チームが 回の試合日に毎回1試合ずつ行い、ほかの全チームと1回ずつ対戦する場合、ブレークの総数を理論的下限の とする割り当ての存在と、各チームのブレークをちょうど1回とする割り当ての存在は、いずれも2-SATを用いて判定できる[29]。

2005年に示された方法では、ホームとアウェーの選択をブール変数で表す補助問題を作る。対戦する両チームに異なる値を要求する条件などは、2リテラルの節で表せる。 個の補助問題を、それぞれ 個の変数と節からなる2-SATに変換するため、全体で 時間となる。この結果が扱うのは、指定したブレーク数や分布を実現できるかという問題である[29]。

離散トモグラフィーとパズル

各行と列の周囲に数値があり、黒いマスで図形を表したお絵かきロジック。
お絵かきロジックの解の例。周囲の数字は、各行・列で連続する黒いマスの個数を順に示す。

離散トモグラフィー(英語版)は、行や列などの方向ごとの投影から離散的な図形を復元する問題を扱う。例えば、0と1からなる行列の各行・各列について、1の個数が与えられたとき、それに一致する図形を求める問題がある。各行と各列で図形を構成するマスが連続し、さらに図形全体が辺を共有するマスで連結するポリオミノに限ると、復元問題を2-SATに還元する方法がある。図形の左右端の位置の候補を調べ、各候補に対して図形の外側の4領域をブール変数で表し、凸性や投影の条件を節にする[30]。

お絵かきロジックでは、各行・各列の黒いマスの総数だけでなく、連続する黒いマスの長さと順序が指定される。これを解く手法の一つは、各行・各列の条件を動的計画法で調べる方法と、マスの総数に関する投影の条件から推論する方法を組み合わせ、得られたマス間の含意を2-CNF式にまとめるものである。含意グラフに の有向路があれば、充足可能な式のどの解でも となり、逆向きの有向路があれば となる。この性質を使って値の確定したマスを増やし、推論を繰り返す[31]。

この推論は多項式時間で行えるが、得られる2-SAT制約はパズルのすべての条件を表すとは限らない。そのため、各マスの値がすべて確定すればパズルは解けるものの、未確定のマスが残る場合もあり、一般のお絵かきロジックを多項式時間で必ず解く方法ではない[31]。

脚注

  1. 1 2 Creignou, Nadia; Khanna, Sanjeev; Sudan, Madhu (2001). “Complexity Classifications of Boolean Constraint Satisfaction Problems” [ブール制約充足問題の計算量分類] (PDF). Complexity Theory Column 34. SIGACT News (英語). Vol. 32, no. 4. pp. 24–33. doi:10.1145/568425.568432. ISSN 0163-5700. 2024年11月7日時点のオリジナルよりアーカイブ (PDF). 2026年10月11日閲覧. 特に§2、§5。
  2. 1 2 3 4 5 6 7 8 9 10 11 Aspvall, Bengt; Plass, Michael F.; Tarjan, Robert Endre (1979). “A linear-time algorithm for testing the truth of certain quantified boolean formulas” [ある種の量化ブール式の真偽を判定する線形時間アルゴリズム] (PDF). Information Processing Letters (英語). 8 (3): 121–123. doi:10.1016/0020-0190(79)90002-4. ISSN 0020-0190. Zbl 0398.68042. 2026年1月28日時点のオリジナルよりアーカイブ (PDF). 特にpp. 121–123、Theorems 1–2。
  3. ↑ 秋葉拓哉、岩田陽一、北川宜稔『プログラミングコンテストチャレンジブック』毎日コミュニケーションズ、2010年。ISBN 978-4-8399-3199-5。
    1. 1 2 3 4 5 6 pp. 270–272
    2. ↑ pp. 267–268
    3. 1 2 3 pp. 272–273
  4. 1 2 3 4 5 Phokion G. Kolaitis (2014). “Logic and Computation” [論理と計算] (PDF). EASLLC 2014 (英語). スライド12–15、22、39–42. 2021年5月6日時点のオリジナルよりアーカイブ (PDF). 2026年10月11日閲覧.
  5. 1 2 3 4 5 6 Even, Shimon; Itai, Alon; Shamir, Adi (1976). “On the Complexity of Timetable and Multicommodity Flow Problems” [時間割編成問題と多品種フロー問題の計算複雑性について] (PDF). SIAM Journal on Computing (英語). 5 (4): 691–703. doi:10.1137/0205048. ISSN 1095-7111. 2026年2月6日時点のオリジナルよりアーカイブ (PDF). 2026年10月11日閲覧. 特に§1–2、pp. 691–697。
  6. 1 2 3 Sipser, Michael (2020). “Lecture 20: L and NL, NL = coNL” (PDF). 18.404J Theory of Computation (英語). Massachusetts Institute of Technology. 2020年秋、スライド2、6、8–12. 2025年12月16日時点のオリジナルよりアーカイブ (PDF). 2026年10月11日閲覧.
  7. 1 2 3 Bollobás, Béla; Borgs, Christian; Chayes, Jennifer T.; Kim, Jeong Han; Wilson, David B. (2001). “The scaling window of the 2-SAT transition” [2-SATの相転移におけるスケーリング窓] (PDF). Random Structures & Algorithms (英語). 18 (3): 201–256. arXiv:math/9909031. doi:10.1002/rsa.1006. ISSN 1098-2418. 2024年3月27日時点のオリジナル (PDF)よりアーカイブ. 2026年10月11日閲覧. 著者公開稿の§1、pp. 2–5、Theorem 1.1、Corollary 1.2。
  8. 1 2 3 4 5 岡本吉央「分枝アルゴリズム (1): 基礎 (PDF)」『離散最適化基礎論 (2025年後学期): 高速指数時間アルゴリズム』電気通信大学、2025年10月21日、第2回、スライド24–29、41–51。2025年10月21日時点のオリジナルよりアーカイブ (PDF)。2026年10月11日閲覧。
  9. ↑ Shi, Li (2019年10月25日). “Lecture 18: Random walk and 2-SAT problem” [第18講:ランダムウォークと2-SAT問題] (PDF). CSE 632: Analysis of Algorithms II (英語). Chen Xu(講義記録). ニューヨーク州立大学バッファロー校. §2、pp. 1–2. 2025年8月3日時点のオリジナルよりアーカイブ (PDF). 2026年10月11日閲覧.
  10. 1 2 3 Petreschi, Rossella; Simeone, Bruno (1991). “Experimental comparison of 2-satisfiability algorithms” [2-充足可能性問題のアルゴリズムの実験的比較] (PDF). RAIRO—Operations Research (英語). 25 (3): 241–264. doi:10.1051/ro/1991250302411. eISSN 1290-3868. ISSN 0399-0559. Zbl 0746.05062. 2025年10月22日時点のオリジナルよりアーカイブ (PDF). 2026年10月11日閲覧. 特にpp. 242、247、249–250。
  11. 1 2 Chris Pollett (2019年5月6日). “Randomized and LP based Approximation Algorithms” [乱択アルゴリズムと線形計画法に基づく近似アルゴリズム]. CS255 (英語). サンノゼ州立大学. Random Walks for 2SAT. 2026年10月11日時点のオリジナルよりアーカイブ. 2026年10月11日閲覧.
  12. ↑ Sedgewick, Robert; Wayne, Kevin. “References”. Algorithms, 4th Edition (英語). 4. GRAPHS. 2026年6月12日時点のオリジナルよりアーカイブ. 2026年10月11日閲覧.
  13. ↑ Sipser, Michael (2020). “Lecture 15: NP-Completeness” [第15講:NP完全性] (PDF). 18.404J Theory of Computation (英語). Massachusetts Institute of Technology. 2020年秋、スライド2、6. 2024年11月18日時点のオリジナルよりアーカイブ (PDF). 2026年10月11日閲覧.
  14. 1 2 3 Bandelt, Hans-Jürgen; Chepoi, Victor (2008). “Metric graph theory and geometry: a survey” [計量グラフ理論と幾何学:概観] (PDF). Surveys on Discrete and Computational Geometry. Contemporary Mathematics (英語). Vol. 453. American Mathematical Society. pp. 49–86. doi:10.1090/conm/453/08795. ISSN 0271-4132. 2026年10月11日閲覧. 特に§2.1、著者公開稿pp. 7–8、Propositions 2.4–2.5。
  15. ↑ Arora, Sanjeev; Barak, Boaz (2007). Computational Complexity: A Modern Approach [計算複雑性:現代的なアプローチ] (PDF) (英語) (2007年1月草稿 ed.). pp. 172–174. 2026年9月16日時点のオリジナルよりアーカイブ (PDF). 2026年10月11日閲覧. §9.1–9.2、Definitions 9.2、9.5。
  16. ↑ Chen, Jianer. “Chapter 8: Constant-Ratio Approximations” [第8章:定数比の近似アルゴリズム] (PDF). CSCE 669 (英語). Texas A&M University. 2024年の資料ディレクトリ所収、§8.3 Maximum Satisfiability、pp. 232–233、Theorem 8.3.1. 2026年10月11日閲覧.
  17. ↑ Håstad, Johan (2013年12月10日). “Approximating Maximum Constraint Satisfaction Problems” [最大制約充足問題の近似] (PDF) (英語). スライド10–13. 2026年3月7日時点のオリジナルよりアーカイブ (PDF). 2026年10月11日閲覧.
  18. 1 2 Goemans, Michel X.; Williamson, David P. (1995). “Improved approximation algorithms for maximum cut and satisfiability problems using semidefinite programming” [半正定値計画法を用いたマックスカット問題・充足可能性問題の近似アルゴリズムの改良] (PDF). Journal of the ACM (英語). 42 (6): 1115–1145. doi:10.1145/227683.227684. ISSN 0004-5411. 2026年2月4日時点のオリジナルよりアーカイブ (PDF). 2026年10月11日閲覧. 特に抄録、§1、§7。
  19. 1 2 Austrin, Per (2007). “Balanced Max 2-Sat Might Not be the Hardest” [均衡なMAX-2-SATは必ずしも最難ではない] (PDF). Proceedings of the Thirty-Ninth Annual ACM Symposium on Theory of Computing (英語). ACM. pp. 189–197. doi:10.1145/1250790.1250818. 2026年10月11日閲覧. 特に§1、pp. 189–190。約0.9401という数値については、同論文に丸め方の解析における数値最適化の留保がある。
  20. 1 2 Porschen, Stefan; Speckenmeyer, Ewald (2007). “Algorithms for Variable-Weighted 2-SAT and Dual Problems” [変数重み付き2-SATと双対問題のためのアルゴリズム] (PDF). Theory and Applications of Satisfiability Testing—SAT 2007. Lecture Notes in Computer Science (英語). Vol. 4501. Springer. pp. 173–186. doi:10.1007/978-3-540-72788-0_19. 2026年2月15日時点のオリジナルよりアーカイブ (PDF). 2026年10月11日閲覧. 特に§1、§4、著者公開稿pp. 1、5–6。
  21. 1 2 Marx, Dániel (2005). “Parameterized complexity of constraint satisfaction problems” [制約充足問題のパラメータ化計算複雑性] (PDF). Computational Complexity (英語). 14 (2): 153–183. doi:10.1007/s00037-005-0195-9. eISSN 1420-8954. ISSN 1016-3328. 2017年9月22日時点のオリジナルよりアーカイブ (PDF). 2026年10月11日閲覧. 特に§1、§3、pp. 154–155、160。
  22. 1 2 Hähnle, Reiner; Escalada-Imaz, Gonzalo (1997). “Deduction in Many-Valued Logics: a Survey” [多値論理における推論:概観] (PDF). Mathware & Soft Computing (英語). 4 (2): 69–97. 2026年10月11日閲覧. 特に§4.2、§5、pp. 83、85。
  23. 1 2 3 Niedermann, Benjamin (2017). Automatic Label Placement in Maps and Figures: Models, Algorithms and Experiments [地図と図形における自動ラベル配置:モデル・アルゴリズム・実験] (PDF) (PhD thesis) (英語). Karlsruhe Institute of Technology. 2024年4月11日時点のオリジナルよりアーカイブ. 2026年10月11日閲覧. §9.2.1、pp. 145–146。
  24. ↑ Efrat, Alon; Erten, Cesim; Kobourov, Stephen G. (2007). “Fixed-Location Circular Arc Drawing of Planar Graphs” [平面グラフの位置固定円弧描画] (PDF). Journal of Graph Algorithms and Applications (英語). 11 (1): 145–164. doi:10.7155/jgaa.00140. eISSN 1526-1719. 2025年12月28日時点のオリジナルよりアーカイブ (PDF). 2026年10月11日閲覧. 特に著者公開稿の§3、pp. 4–6。
  25. ↑ Raghavan, Raghunath; Cohoon, James; Sahni, Sartaj (1986). “Single Bend Wiring” [単一ベンド配線] (PDF). Journal of Algorithms (英語). 7 (2): 232–257. doi:10.1016/0196-6774(86)90006-4. ISSN 0196-6774. 2022年8月15日時点のオリジナルよりアーカイブ (PDF). 2026年10月11日閲覧. 特に§1–2、pp. 234–239。
  26. 1 2 Ashutosh Gupta (2015年9月7日). “Lecture 8: Low complexity subclasses of SAT” [第8講:SATの低計算量の部分クラス] (PDF). Mathematical Logic (英語). スライド17–20、Theorem 8.8. 2026年10月11日閲覧.
  27. 1 2 Behsaz, Babak; Salavatipour, Mohammad R. (2015). “On Minimum Sum of Radii and Diameters Clustering” [半径と直径の総和の最小化クラスタリングについて] (PDF). Algorithmica (英語). 73: 143–165. doi:10.1007/s00453-014-9907-3. eISSN 1432-0541. ISSN 0178-4617. 2017年7月5日時点のオリジナルよりアーカイブ (PDF). 2026年10月11日閲覧. 2014年2月21日の著者公開稿の§1.1、§5、pp. 2、17。
  28. 1 2 Hansen, P.; Jaumard, B. (1987). “Minimum Sum of Diameters Clustering” [直径の総和の最小化クラスタリング]. Journal of Classification (英語). 4 (2): 215–226. doi:10.1007/BF01896987. ISSN 0176-4268. 2026年10月11日時点のオリジナルよりアーカイブ. 2026年10月11日閲覧. 特に§2–4、pp. 217–221、Theorems 1–4。
  29. 1 2 Miyashiro, Ryuhei; Matsui, Tomomi (2005). “A polynomial-time algorithm to find an equitable home–away assignment” [公平なホーム・アウェー割当てを求める多項式時間アルゴリズム]. Operations Research Letters (英語). 33 (3): 235–241. doi:10.1016/j.orl.2004.06.004. ISSN 0167-6377. 2026年10月11日閲覧. 特に§2.1、§3、pp. 236–240。
  30. ↑ Chrobak, Marek; Dürr, Christoph (1999). “Reconstructing hv-convex polyominoes from orthogonal projections” [直交投影からのhv-凸ポリオミノの復元] (PDF). Information Processing Letters (英語). 69 (6): 283–289. arXiv:cs/9906021. doi:10.1016/S0020-0190(99)00025-3. ISSN 0020-0190. 2025年11月15日時点のオリジナルよりアーカイブ. 2026年10月11日閲覧. 特に§1–3、Theorem 2。
  31. 1 2 Batenburg, K. J.; Kosters, W. A. (2009). “Solving Nonograms by combining relaxations” [緩和の組み合わせによるお絵かきロジックの解法] (PDF). Pattern Recognition (英語). 42 (8): 1672–1683. doi:10.1016/j.patcog.2008.12.003. ISSN 0031-3203. 2024年4月15日時点のオリジナルよりアーカイブ (PDF). 2026年10月11日閲覧. 特に§4–5、著者公開稿pp. 9–13。