CS複雑性理論で使用される回路の複雑性クラスがVLSIコミュニティのものとは異なる予測を行い、異なるメトリックを使用することは、はるかに興味深いと思います。ブール関数のVLSI複雑性から:
変数のすべてのブール関数がO (2 n / n )ゲート(Lupanovの定理)を持つ論理回路によって計算できること、およびこのサイズの論理回路を必要とするn個の変数のブール関数が存在することはよく知られています(Shannonの定理)。VLSIチップのThompsonモデルを使用して、VLSI回路で計算されたブール関数の対応する結果を示します。n変数のすべてのブール関数がO (2 n)面積と周期1のVLSI回路によって計算できることを証明し、nのブール関数が存在することを証明しますnO(2n/n)nO(2n)nすべての(凸)VLSIチップが領域を持たなければならない変数。Ω(2n)
興味深いことに、VLSI回路の複雑さは、重要な「深さ」が1つしかないため、深さを「無関係」として扱う傾向があります。クリティカルパスです。最も実用的な目的のために、任意の複雑な回路は、 nのレイテンシで 1 )。O(1)n
実際、 / N L o g T i m eの概念がVLSI回路の複雑性に直接変換されるかどうかはわかりません。Shannons 2 N / Nの結果は、容易に変換されない:Shannons結果が有効であるのみアリティからなるブール基づいため≤ 2 {AND、OR、NOT}。これが唯一の基礎ではなく、必要な「ゲート」の数は、許可するゲートタイプが増えるにつれて劇的に減少します。以下は、RのE 2DLogTimeNLogTime2n/n≤2area2 2入力NANDゲートのサイズに正規化された商用VLSI標準セルライブラリから:
2 3 4 <-アリティ
および1.14 1.28 1.41
ナンド1.00 1.14 1.28
または1.14 1.41 1.41
1.00 1.14 1.41
xor 1.62 2.44
xnor 1.62 2.44
buf 1.14
inv 0.80
aoi22 1.28
aoi222 1.62
aoi33 1.62
oai22 1.41
oai222 1.72
oai33 1.62
addf 2.64
具体的には、注意aoi
/用oai
であるゲートAnd Or Invert
/ Or And Invert
成るアリティ寸法第一の機能を多数の第二の機能、摂食第1の機能ゲートが倍の数に等しいアリティが表示され。たとえば、aoi22
「NORゲートに給電する2つの入力ANDゲート」を表します。
私のポイントは:別々に取られ、 oai222
考えると、3つの2入力ORゲートと3入力NANDゲートを使用して、相互接続に使用される領域を含めない合計約4.56の機能を構築できることです。しかし、このプリミティブはわずか1.72の領域で実現できます。これは、同じブール関数の個別の発現が2.65倍の領域を消費することを意味します。
また、ノートの領域その入力{AND、NAND、OR、NOR、XOR、XNOR}ゲート、ここでN ≥ 2は、それが別個の2つの入力ゲートを使用して、同じ機能を構築するために取ることがはるかに少ない面積よりも長いです。また、このプロセスの{XOR、XNOR}に与えられた面積は他のゲートに比べて「大きい」が、より少ない面積で同じn入力ゲートを構築する他の方法があることに注意してください。nn≥2n
より複雑なプリミティブの伝播特性も、個別のゲートを使用して達成されるものよりも大幅に優れています。
何でこれが大切ですか?少なくとも、私にとっては、仮定に違反すると結果が役に立たなかったり間違ったりする効果がある一連の仮定に基づいて構築された複雑性理論の結果をふるいにかけるのに単純に膨大な時間を費やしたからです。以下は、Steven Cooks vs N PからのものPNPです。
したがって、であることを証明するには、3-SATなどの特定のN P完全問題を解くブール回路ファミリのサイズの超多項式下限を証明すれば十分です。バック1949年シャノンは、ほぼすべてのブール関数のためにその証明F :{ 0 、1 } のn → { 0 、1 }、計算任意のブール回路fが少なくとも必要と2 N / Nゲート。残念ながら、彼の数え上げの議論は、N Pの問題の下限を証明する方法に関する手がかりを与えません。P≠NPNPf:{0,1}n→{0,1}f2n/nNP。
Cooksの推論には興味があります。Shannonsは全てに対して有効である結果したがって場合、N Pの問題を説明することができる{ 0 、1 } のnビット{AND、OR、NOT}が存在しなければなりません基底それは〜で充足可能かどうかを判断することができる回路2 のn / Nゲート(実際の用紙は、上部の大を与えるが、あらゆる可能な機能のためにバインドされた有限、)。これが示すことは、n個以上のゲートを使用するもので、nf:{0,1}n→{0,1}NP{0,1}n2n/nnn問題のサイズの上限であり、必要以上のゲートを使用しています。より大きく、しかし完全なブールベースを使用すると、必要なゲートの数が減少するだけです。異なる回路の複雑度モデル、つまりVLSIを使用すると、「より良い」結果範囲が得られます。奇妙な。しかし、我々はにどんな解決策という事実を知っているN Pの問題は用途以上〜という2 N / N(ゲートはステップ/操作に緩く使用されている)「ゲート」は、サブ最適な方法でそれをやっている...と最適ではない方法で解決策を見つける方法は無限にあります。NPNP2n/n
VLSI実装の複雑さと整数乗算への適用を伴うブール関数のグラフ表現について、OBDDモデルを使用して回路の複雑さを予測すると、実際の回路の複雑さを過大評価することが示されます。
2つの異なるモデルの下でのブール関数の複雑さの下限結果について説明します。1つは、超大規模集積(VLSI)回路におけるチップ面積と速度のトレードオフの抽象化です。2つ目は、ブール関数を記号的に表現および操作するためのデータ構造として使用される順序付きバイナリ決定図(OBDD)表現です。下限は、実装媒体としてのVLSIの基本的な制限と、データ構造としてのOBDDの制限を示しています。単一の出力ブール関数のVLSI実装が面積と時間の複雑さAT2=Ω(n2)また、関数のOBDD表現はc < 1に対して頂点を持っているが、逆は成り立たないことを証明します。OBDD表現が指数サイズの関数がありますが、複雑さA T 2 = O (n 1 + c)の VLSI実装があります。Ω(cn)c<1AT2=O(n1+c)
n2n−1i−12n−i−11≤i≤nAT2=Ω(i2)Ω(1.09i)