単純パーセプトロンによる論理回路(2)

単純パーセプトロンで、ANDゲート・NANDゲート・ORゲートを作ることができる。また、これらを組み合わせることで、XORゲートも作ることができる。

このことについては、

を参照。

実は、NANDゲートだけで、他の全ての論理回路を実現できる。論理回路どころか、あらゆる回路を実現できるが、今回は論理回路に話を限定する。

まずはNOTゲートだ。

NANDゲートはすでに作成しているものとする。NANDゲートの特性から、

[0, 0] -> 1
[1, 1] -> 0

のように入力を変換する。

そこで、同じ値をNANDゲート2つの入力に通すような回路を作れば、NOTゲートになる。

次にANDゲートを作る。

ANDゲートは、NANDゲートの出力を反転させたものだ。出力を反転させるにはNOTゲートを通せばいい。

さらに、ORゲートを作る。

ORゲートは、[0, 0]のみ0に変換して、その他は1に変換する。一方、NANDゲートは、[1, 1]のみ0に変換して、その他は1に変換する。このことから、NANDゲートの入力を反転してやれば、ORゲートになることが分かる。

最後に、XORゲートだ。少し複雑なので、先に完成した配線を見よう。

NANDゲートは、入力のどちらか一方でも0であれば、必ず1を出力することに注目する。

入力が[0, 0]であれば、真ん中の2つのNANDゲートには共に0の入力がある。0の入力があるから、共に1を出力する。その2値を入力とする右端のNANDゲートは0を出力する。

入力が[1, 1]であれば、左端のNANDゲートは0を出力する。この場合も、真ん中のNANDゲートには共に0の入力がある。あとは入力が[0, 0]の場合と同じで、最後に0を出力する。

入力が[0, 1]であれば、左端のNANDゲートの出力は1になる。真ん中の下側のNANDゲートの入力は[1, 1]だから、その出力は0になる。すると、右端のNANDゲートには0の入力があるから、1を出力する。

対称性から、入力が[1, 0]の場合も同様に1を出力する。

これで、XORゲートも実現していることが分かった。

論理回路には、他にもNORゲート・XNORゲートがあるが、それぞれORゲート・XORゲートの出力を反転させればいい。つまり、最後にNOTゲートをつなげば実現する。