回路計算量

回路計算量（英: circuit complexity）とは、計算複雑性理論において、ブール関数をその計算に要する計算資源の量によって分類することを指す。回路計算量では、それらの資源量は論理回路の大きさや深さで表される。 入力が n ビットの論理回路は有向非巡回グラフであり、各ノード（回路計算量の場合、「ゲート」と呼ぶ）は、入次数 0 の入力ノード（n個の入力ビットのいずれかに対応）か、ANDゲート、ORゲート、NOTゲートである。これらのゲートのいずれかが出力ゲートとなる。このような回路が n 個の入力の関数を計算する。回路の大きさは、全ゲート数と、入力ゲートから出力ゲートまでの最大の長さ（すなわち、回路の深さ）で表される。 ブール関数 f の回路計算量（大きさと深さ）は、f を計算する回路のうちで最も小さい回路（あるいは浅い回路）の大きさ（や深さ）で表される。回路計算量の目標は、ブール関数群の最小の大きさや深さを決定することである。n ビット入力の関数 f n {\displaystyle f_{n}} の回路計算量を求める場合、 f 1 , f 2 , . . . {\displaystyle f_{1},f_{2},...} といった小さい関数から始めて、漸近的に求める手法がよく使われる。 論理回路に関する複雑性クラスとして、AC0、AC、TC0、NCがある。 論理回路は一様でない計算模型の典型例であり、入力長が違えば回路も異なる。一方チューリングマシンのような一様な計算模型では、同じ計算機械を任意の入力長に使うことができる。従って、ある計算問題に対応した論理回路は（入力長に従って） C 1 , C 2 , . . . {\displaystyle C_{1},C_{2},...} のように複数存在し、 C n {\displaystyle C_{n}} の回路は n ビットの入力を扱う。従って一様性はそれら論理回路群全体で成り立つものであり、個々の回路は計算資源を制限したチューリングマシンで計算可能である。 Vollmer の 1999年の著書（参考文献参照）によれば、回路計算量の研究に大きな影響を与えたものとして、Savage の1976年の著書[要文献特定詳細情報]が挙げられる。 ブール関数 PARITY は、入力ビット群の 1 の数が奇数の場合に 1 を返すものだが、 A C 0 {\displaystyle AC^{0}} には含まれない。Ajtai（1983）と Furst、Saxe、Sipser（1984）がそれぞれ独立に発見した。Hasted（1987）[要文献特定詳細情報]はさらに A C 0 {\displaystyle AC^{0}} に属して PARITY を計算する回路は指数関数的な大きさになることを示した。Smolensky（1987）は、入力ビット数を数えて、それを任意の素数で割った余りを出力する回路で同じことが言えることを証明した。 単調関数 CLIQUE は多項式サイズの単調回路（否定を使わない、AND と OR だけの回路）では計算できない。Razborov（1985）が最初に発見し、Alon と Boppana（1987）がさらに発展させた。Raz と McKenzie（1999）は、単調NC階層は無限であることを示した。 除算はTC0に含まれる（Hesse 2001）。 回路計算量の複雑性クラスの多くはクラス群の階層で定義されている。任意の整数 i について、NCiというクラスが存在し、深さ O ( log i ⁡ ( n ) ) {\displaystyle O(\log ^{i}(n))} で入力端子数の制限された AND/OR/NOTゲートを使った多項式サイズの回路が属している。これらのクラスを総称して NC クラスと呼ぶ。入力端子数が無制限のゲートに関しては、ACi とその総称としての AC クラスがある。ゲート数や深さが同じでも、使用するゲートが異なれば、回路計算量の複雑性クラスも異なる。 ^ Ajtai, Miklós (1983). " Σ 1 1 {\displaystyle \Sigma _{1}^{1}} -formulae on finite structures". Annals of Pure and Applied Logic. 24: 1–24. doi:10.1016/0168-0072(83)90038-6。 ^ Ajtai, Miklós; Komlós, János; Szemerédi, Endre (1983). "An O ( n log ⁡ n ) {\displaystyle O(n\log n)} sorting network". Proceedings of the 15th Annual ACM Symposium on Theory of Computing, 25–27 April, 1983, Boston, Massachusetts, USA. Association for Computing Machinery. pp. 1–9. doi:10.1145/800061.808726。 ^ Furst, Merrick L.; Saxe, James Benjamin; Sipser, Michael Fredric (1984). "Parity, circuits, and the polynomial-time hierarchy". Mathematical Systems Theory. 17 (1): 13–27. doi:10.1007/BF01744431. MR 0738749. S2CID 6306235。 ^ Smolensky, Roman (1987). "Algebraic methods in the theory of lower bounds for Boolean circuit complexity". Proceedings of the 19th Annual ACM Symposium on Theory of Computing. Association for Computing Machinery. pp. 77–82. doi:10.1145/28395.28404。 ^ Razborov, Aleksandr Aleksandrovich (1985). "Lower bounds on the monotone complexity of some Boolean functions". Soviet Mathematics - Doklady. 31: 354–357. ISSN 0197-6788。 ^ Alon, Noga; Boppana, Ravi B. (1987). "The monotone circuit complexity of Boolean functions". Combinatorica. 7 (1): 1–22. CiteSeerX 10.1.1.300.9623. doi:10.1007/bf02579196. S2CID 17397273。 ^ Raz, Ran; McKenzie, Pierre (1999). "Separation of the monotone NC hierarchy". Combinatorica. 19 (3): 403–435. doi:10.1007/s004930050062。 ^ Hesse, William (2001). "Division is in uniform TC0". Proceedings of the 28th International Colloquium on Automata, Languages and Programming. Springer Verlag. pp. 104–114. Vollmer, Heribert (1999). Introduction to Circuit Complexity: a Uniform Approach. Springer Verlag. ISBN 3-540-64310-9。 Lecture notes for a course of Uri Zwick on circuit complexity Circuit Complexity before the Dawn of the New Millenium, a 1997 survey of the field by Eric Allender