01-パーマネントの#P完全性(ヴァリアントの定理とも呼ばれる) [ 1 ]は、行列のパーマネントに関する数学的証明であり、計算複雑性理論における重要な結果と考えられている。[ 2 ] [ 3 ] 1979年、レスリー・ヴァリアントは、行列の要素がすべて0または1に制限されている場合でも、行列のパーマネントを計算する計算問題は#P困難であることを証明した。 [ 4 ]この制限されたケースでは、パーマネントの計算は#P完全である。なぜなら、1を0に変更することによって得られる置換行列の数を数える#P問題に対応するからである。
Valiantの1979年の論文では、 #Pを複雑性クラスとして導入した。[ 5 ]
Valiant の完全性の定義と、01-パーマネントの完全性の証明は、いずれも多項式時間チューリング還元を用いていました。この種の還元では、#P 内の他の問題の単一の困難なインスタンスが、複数のグラフのシーケンスのパーマネントを計算することに還元されます。各グラフは、以前のパーマネント計算の結果に依存する可能性があります。Ben -DorとHalevi (1993)による後の簡略化では、より弱い還元の概念である多項式時間計数還元を使用して、他の問題をパーマネント問題の単一のインスタンスに変換できることが示されました。
パーマネントの計算複雑性に関心が集まる理由の一つは、単一の解を構築することは効率的にできるが、すべての解を数えることは難しい問題の例を提供しているからである。[ 6 ] パパディミトリウは著書『計算複雑性』の中で次のように述べている。
最も印象的で興味深い#P完全問題は、対応する探索問題を多項式時間で解ける問題である。0-1行列のPERMANENT問題は、二部グラフにおける完全マッチングの数え上げ問題と等価であり、その典型的な例である。[ 1 ]
具体的には、パーマネントを計算すること(Valiantの結果で困難であることが示されている)は、二部グラフにおける完全マッチングを見つけることと密接に関連しており、これはHopcroft–Karpアルゴリズムによって多項式時間で解くことができる。[ 7 ] [ 8 ] 2n個の頂点を持つ二部グラフがそれぞれn個の頂点を持つ2つの部分に分割されている場合、完全マッチングの数はその二部隣接行列のパーマネントに等しく、完全マッチングの数の2乗はその隣接行列のパーマネントに等しい。[ 9 ]任意の0-1行列は、ある二部グラフの二部隣接行列であるため、Valiantの定理は[ 9 ]二部グラフにおける完全マッチングの数を数える問題は#P完全であることを意味し、 Todaの定理と併せて考えると、これは多項式階層全体に対して困難であることを意味する。[ 10 ] [ 11 ]
パーマネントの計算複雑性は、複雑性理論の他の側面にもある程度の意義がある。NCがP に等しいかどうか(非公式には、すべての多項式時間で解ける問題が多対数時間並列アルゴリズムで解けるかどうか)は不明であり、Ketan Mulmuley は、パーマネントを行列の行列式として記述することに依存するこの問題を解決するアプローチを提案している。[ 12 ]
ハートマン[ 13 ]は、行列のイマナントの計算の複雑さに関するヴァリアントの定理の一般化を証明し、行列式とパーマネントの両方を一般化しました。
以下に、01行列のパーマネントを計算することが#P完全であることの証明を記述する。これは主にBen-Dor & Halevi (1993)による証明に従う。[ 14 ]
任意の正方行列は、有向グラフの隣接行列と見なすことができ、頂点からの辺の重みを表す頂点へ。それから、は、グラフのすべてのサイクルカバーの重みの合計に等しい。これは、パーマネントのグラフ理論的解釈である。
#SAT は、ブール充足可能性問題に関連する関数問題であり、与えられたブール式の充足割り当ての数を数える問題です。これは#P 完全問題です (定義により)。なぜなら、任意の NP マシンは、クックの定理と同様のプロセスによってブール式にエンコードでき、そのブール式の充足割り当ての数は、NP マシンの受理パスの数と等しくなるからです。SAT の任意の式は、充足割り当ての数を保持したまま 3- CNF形式の式に書き換えることができ、したがって #SAT と #3SAT は同等であり、#3SATも#P 完全です。
01-Permanentが#P-困難であることを証明するには、3-CNF式の充足割り当ての数が、0と1の値のみを含む行列のパーマネントの関数として簡潔に表現できることを示せば十分である。これは通常、次の2つのステップで達成される。
3CNF式が与えられた場合と条項と変数を用いて、重み付き有向グラフを構築することができる。そのため
したがって、満足できる課題の数このグラフのパーマネントは次のようになります。(ヴァリアントの元の証明では、エントリを持つグラフが構築される。その永久はどこ「リテラルの出現回数の2倍」「-」)
グラフの構築には、「ブラックボックス」として扱われるコンポーネントが使用されます。説明を簡潔にするため、このコンポーネントの構造を実際に定義することなく、その特性のみを示します。
具体的にまず、変数ノードを構築します。それぞれについて変数さらに、条項節の構成要素を構築するでそれは一種の「ブラックボックス」として機能します。注意すべき点はそれだけです。3 つの入力エッジと 3 つの出力エッジがあります。入力エッジは、変数ノードまたは前の節コンポーネント (例:一部の人にとって出力エッジは変数ノードまたは後続の節コンポーネント (例:一部の人にとって最初の入力エッジと出力エッジは、節の最初の変数に対応します。など。これまでのところ、グラフに表示されるすべてのノードは指定されています。
次に、エッジについて考えてみましょう。各変数についてのでは、真のサイクル(Tサイクル)と偽のサイクル(Fサイクル)が作られます。Tサイクルを作成するには、変数ノードから始めます。節コンポーネントにエッジを描画しますそれは、最初の節に対応します。表示されます。節の最初の変数は対応するこのエッジは、最初の入力エッジになります。など。次に、次の節に対応する次の節の構成要素にエッジを描画します。その中で適切な出力エッジから接続して現れます次の節コンポーネントの適切な入力エッジへ、以下同様。が現れたら、対応する節コンポーネントの適切な出力エッジをの変数ノード。もちろん、これでサイクルは完了します。Fサイクルを作成するには、同じ手順に従いますが、の変数ノードを、~ が該当する節の構成要素に渡します。現れて、最後にの変数ノード。節コンポーネントの外側にあるこれらのエッジはすべて外部エッジと呼ばれ、すべて重みが 1 です。節コンポーネントの内側にあるエッジは内部エッジと呼ばれます。すべての外部エッジは T サイクルまたは F サイクルの一部です (両方ではありません。両方だと矛盾が生じます)。
グラフに注目してください線形サイズしたがって、(節の構成要素が問題を引き起こさないと仮定すれば)構築は多項式時間で実行できます。
有用な特性そのサイクルカバーは変数割り当てに対応している自転車カバー用の次のように言える変数に値を割り当てる念のためすべての外部エッジが含まれていますの T サイクルと外部エッジのいずれもすべての変数に対するFサイクル代入によって真となること、そしてすべての変数についてその逆もまた同様である。割り当てが偽である。割り当てを誘発する必要はありません、そうするものは正確に 1 つの割り当てを誘導し、誘導される同じ割り当ては外部エッジのみに依存します。。 用語この段階では、外側の縁についてのみ言及しているため、不完全なサイクルカバーとみなされます。以下のセクションでは、-各サイクルカバーに対応するサイクルカバーのセットがあることを示すための完了必要な特性を備えているもの。
カバーの種類代入を誘発しないのは、節の構成要素内で「ジャンプ」するサイクルを持つものです。つまり、すべての少なくとも1つの入力エッジは節コンポーネントのすべての出力エッジは対応する入力エッジが、 それから各節の構成要素に関して適切であり、満足のいく課題を生み出すでしょうこれは、適切なカバーがすべての変数の完全なTサイクルまたは完全なFサイクルのいずれかを含むでまた、各節コンポーネントに出入りするエッジもそれぞれ含まれます。したがって、これらのカバーは、各節コンポーネントに真または偽(両方ではない)のいずれかを割り当てます。そして、各条項が満たされていることを確認する。さらに、そのようなすべてのサイクルカバーの集合体重がある、その他重さがあるその理由は、節の構成要素の構造によって異なり、以下に概説する。
節の構成要素の関連特性を理解するそのためには、M-完成の概念が必要となる。サイクルカバー外部エッジが特定の特性を満たす場合に限り、満足のいく割り当てを誘導します。外部のエッジのみを考慮すると、部分集合は。 させて外部エッジの集合。内部エッジの集合は念のため完了自転車カバーはさらに、すべての集合を次のように表す。-完了そして、結果として得られるすべてのサイクルカバーのセットはによる。
建設を思い出してください各外部エッジの重みが 1 であったため、サイクルは、あらゆる結果から生じるは、関係する内部エッジのみに依存します。ここで、節の構成要素の構成が、可能なものの合計が-各節コンポーネント内の内部エッジの重みの完了、節の構成要素に対して適切な場合は 12 です。それ以外の場合は、内部エッジの重みは 0 です。節の構成要素、および内部エッジのセットの選択、各節コンポーネント内では、他の節コンポーネント内の内部エッジのセットの選択とは独立しているため、すべてを掛け合わせて重みを取得できます。なので、それぞれの重量は、 どこ満足のいく課題を誘発し、さらに、満足のいく課題を引き出さない、一部に関しては適切ではない内部エッジの重みの積はになるだろう。
節コンポーネントは、重み付き有向グラフであり、7つのノードを持ち、エッジには重みが付けられ、ノードは上記の特性が得られるように配置されています。これは、Ben-DorとHalevi(1993)の付録Aに示されています。ここで、内部エッジの重みは、集合から取得されることに注意してください。;すべての辺に0~1の重みがあるわけではありません。
最後に、特定の満足割り当てを誘導するサイクルカバーのすべてのセットの重みの合計は、そして他のすべてのサイクルカバーの重みの合計は 0 であり、次のセクションでは計算を削減します。01マトリックスのパーマネントへ。
上記のセクションでは、パーマネントが#P困難であることを示しました。一連の還元操作により、任意のパーマネントは、要素が0または1のみの行列のパーマネントに還元できます。これにより、01-パーマネントも#P困難であることが証明されます。
モジュラー演算を使用して、整数行列を変換します。同等の非負行列に変換するそのため、は、パーマネントから簡単に計算できます。、 次のように:
させてになる整数行列で、どの要素もそれより大きい値を持たない。
変革の中へは多項式であるそして表現に必要なビット数は多項式であるそして
変換の例と、それが機能する理由を以下に示します。
ここ、、、 そして、 それで。 したがって
モジュラー演算のおかげで要素が非負であることに注目してください。パーマネントを計算するのは簡単です。
それで。 それから、 それで

任意の数は2 のべき乗の和に分解できることに注意してください。たとえば、
この事実は、非負行列を、すべての要素が2のべき乗である等価な行列に変換するために利用されます。この変換は、元の行列と等価なグラフを用いて表現できます。
させてになる非負の重みを持つ -ノード重み付き有向グラフ、最大の重みはあらゆる端重量は、以下のように2のべき乗の重みを持つ同等のエッジに変換されます。
これは図1にグラフで示されている。既存のエッジを置き換えるサブグラフにはノードと端。
これが同等のグラフを生成することを証明するオリジナルと同じ永久性を持つものについては、サイクルカバー間の対応関係を示す必要があります。そして。
自転車カバーを検討してみては?で。
サイズに注意してくださいは多項式であるそして。

ここでの目的は、要素が2のべき乗である行列を、0と1のみを含む同等の行列(つまり、各辺の重みが1である有向グラフ)に縮小することです。
させてになる-ノード有向グラフで、エッジのすべての重みが2のべき乗である。グラフを構築します。各エッジの重みは 1 であり、この新しいグラフのサイズは、は、そしてグラフ内の任意のエッジの最大重みは。
この削減は各エッジで局所的に行われます。重みが1より大きいもの。優位に立つ重さサブグラフに置き換えられます。それはノードと図2に示すエッジ。各エッジは重みは 1 です。したがって、結果として得られるグラフは重みが1の辺のみを含む。
自転車カバーを検討してみては?で。
2011年、量子コンピュータ科学者のスコット・アーロンソンは、量子的手法を用いてパーマネントが#P困難であることを証明した。[ 15 ]