締切り済みの質問
最近独学で論理回路を勉強している者です。
ある本に以下のゲート(素子)の組み合わせは万能(任意のブール
関数を表現できる)であるとあったのですが、
(1){AND, NOT}
(2){OR, NOT}
(3){NAND}
(4){NOT}
((3)、(4)は単一種類のゲートですが、便宜上集合表現にしました)
これに関して次の(A)、(B)の疑問が浮かびました。
(A)(1)~(4)以外に((1)~(4)を部分集合として含まない)万能
であるゲートの組み合わせは存在しないのか?
(B)あるゲートの組み合わせ(たとえば{XOR}、{XOR、NOT}など)
が万能性を持たないことはどうやって証明すればいいのか?
ご存知の方、ご教示をいただければ幸いです(参考文献の指示等
でもありがたいです)。
どうぞよろしくお願いいたします。
投稿日時 - 2008-12-12 00:10:56
1人が「このQ&Aが役に立った」と投票しています
回答(3件中 1~3件目)
(ご指摘ありがとう^^)
内容については、全く、不勉強の限りでそうかもしれません。 重ね重ね失礼しました。
また 句読点など、これから注意していこうと思っています。 ありがとうございました。
これからも、皆さんの回答など参考にさせて貰おうと楽しみにしています。
投稿日時 - 2008-12-28 17:10:07
補足
(1)yuragifuu様の謙虚な御姿勢に感銘を受けた
(2)同じ疑問を抱いた人に私が投稿した「お礼」の内容を参考にしてほしい
以上2点の理由からこの回答にポイントをつけさせていただきます。
投稿日時 - 2009-10-29 05:57:34
お礼
yuragifuu様、わざわざ返信をありがとうございます。
ところで、その後本を読んでこの疑問への解答を得ることが出来ました。結論を手短かに紹介しますと、次のような定理が存在するそうです。
[定理]
論理関数(ゲート)の集合Sは、以下の5つの論理関数集合のいずれの部分集合にもなっていないとき、またそのときに限り、万能となる。
(1)1を保存する論理関数全体の集合
(すなわち、F(1,1,...,1)=1となる論理関数Fの集合)
(2)0を保存する論理関数全体の集合
(すなわち、F(0,0,...,0)=0となる論理関数Fの集合)
(3)自己双対論理関数全体の集合
(すなわち、F(not x1, not x2, ... , not xk) = not F(x1,x2,...,xk)となる論理関数Fの集合)
(4)単調増加論理関数全体の集合
(すなわち、a1<=b1,a2<=b2,...,ak<=bkならばF(a1,a2,...,ak)<=F(b1,b2,...,bk)となる論理関数Fの集合)
(5)線形論理関数全体の集合
(すなわち、F(x1,x2,...,xk)=a0#a1x1#a2x2#...#akxkと表せる論理関数Fの集合。ここでaiは0或いは1、#はXOR、ajxjはajとxjの論理積(AND)で、ANDの方がXORより優先度が高いとする。)
(定理終)
この定理から極小な万能論理関数集合は他にもいろいろとあることが分かります。たとえば、{OR, IFF, F}、{AND, XOR, T}など(IFFは同値、Fは恒偽、Tは恒真)。
参考文献:「論理設計―スイッチング回路理論」(笹尾勤著、近代科学社)、他
投稿日時 - 2009-10-29 05:52:53
(返答に対して)
失礼しました (はるか昔ですが)40年ほど前 電卓を作りたくて 当時は LSI はおろか MSI SSI もなく HTL(IC SSI? )レベルの頃で 2進十進変換回路さえも 単純なロジックで構成しなければならないときでした 私はその頃 そのために論理回路をかじり ブール代数もその関連でちょこっと理解した程度でした そのため 私の中では 論理回路=ブール代数みたいな等式ができており 今回の回答もそれで簡単に考えてしまいました 実際のブール代数は集合の概念など理解しないといけないし かなり難しそうですね 集合論に関しては私はまるっきりわかりません 論理回路はブール代数を使って表現できるというだけで(ブール代数は論理回路を内包する?)論理回路は 上記の基本ゲートの組み合わせで全てを記述できますが 確かに 期待された回答とそぐわないものになっていたかもしれません 失礼しました
投稿日時 - 2008-12-26 11:22:20
お礼
yuragifuu様 再度の書き込みをありがとうございます。
論理回路はブール代数を用いて論理演算を行う電気回路
(デジタル回路、スイッチング回路)ですから(Wikipediaより)、
論理回路の動作を論じる上で「論理回路=ブール代数」と
考えるのは自然(それで問題は生じない)なことだと思います。
ですが、「論理回路=ブール代数」と考えることがyuragifuu
様が回答No.1で書かれたような内容に結びつくというのは
私にはまったく理解できません。
ちなみに、本題とは関係ないことですが、日本語の文章を
書かれる際は句読点を用いられた方が読者にとってはありが
たいと思います。
質問者、年少(私はまだ40年生きておりませんので)の立場で
ありながらズケズケと書いてしまいましたが、ご容赦いただ
ければ幸いです。
それでは失礼いたします。
投稿日時 - 2008-12-26 19:27:30
(A)は 論理回路は(1)から(4)の組み合わせで表現できると言っている のです もし それらで表現できない回路があれば それが 答えになります
(その論理を組み立てるのに必要な 上の4種以外の基本的な 素子が必要になるはずですが 現在のところ 4種で表現で きてしまいます)=存在しません
(B)は 例えば{XOR}なら NOT と OR の組み合わせですね
つまり XOR が万能性を持たないというよりは 基本の NOTと
OR の組み合わせであるというだけです
以下 想定されるゲートは 基本の4種で全て表現できてします ので 万能性を持たないことを証明できるのではなく 必要がな いのです
投稿日時 - 2008-12-12 13:33:43
お礼
yuragifuu様、書き込みをありがとうございます。
ただ、私の文章が拙かったようで質問の意図が伝わらなかった
ようなのが残念です。
>論理回路は(1)から(4)の組み合わせで表現できると言っている
>のです
(1)~(4)の"いずれか一つだけで"万能(=任意のブール関数を表現
可能)です。
>現在のところ4種で表現できてしまいます=存在しません
現在のところ(1)~(4)(のいずれか一つ)で任意のブール関数が
表現できるからといって、他にも万能性を持つゲートの組み合
わせが他に存在しないことの証明にはならないと思います。
>XORが万能性を持たないというよりは基本のNOTとORの組み合わせ
>であるというだけです
申し訳ありませんがどういうことを意図された文なのか理解
できません(ちなみに(当然ながら)XORは{AND, NOT}でも{NOR}
でも{NAND}でも表現できるわけですが)
>想定されるゲートは基本の4種で全て表現できてしますので
>万能性を持たないことを証明できるのではなく必要がないのです
私は学問的興味から(B)の答えを知りたいと思っています。
どうもありがとうございました。
投稿日時 - 2008-12-12 17:37:43