「ベン図」の解説(4)

このページをスマホなどでご覧になる場合は、画面を横長にする方が読みやすくなります。
目次へ  前のページへ (1) (2) (3) (4) (5) 次のページへ
2020年06月06日 公開

2.論理関数や論理回路で使われるベン図

前章ではベン図が集合論で使われる事を説明しました。

ベン図は、本来は集合論で使われる図なのですが、集合論と論理関数の間には、ある類似性が存在します。その類似性のため、ベン図は論理関数の理解や、論理関数の計算をする組み合わせ回路(2値論理回路の一種)の動作の理解のためにも利用できます。

この章では、論理関数や論理回路で用いられるベン図について説明します。

2-1.集合と論理関数の類似性

前章では、表1に示す10人の生徒の集合を例に、集合論におけるベン図について説明しました。

表1は、表4の様に要約できます。

表4、各生徒のプロフィールを要約した表
名前 Mに属するか Pに属するか Sに属するか
一郎 1 1 1
健太 1 0 1
さくら 0 1 1
詩織 0 1 0
達也 1 0 0
太郎 1 1 0
花子 0 1 0
0 0 0
雅治 1 1 1
美咲 0 0 1

表4の一番左側の列には、生徒の名前が書いてあります。

表4の2~4列目には、それぞれ、集合M、集合P、集合Sに属するかどうかが、0または1で書かれています。0の場合はその集合に属さない事を、1の場合はその集合に属する事を表しています。この01は、「その人は集合X(XにはACのいずれかが入る)に属する」という命題真理値になっている事に注意してください。(01です)

各集合がどの様な集合であったかを振り返っておきます。Mは男子生徒の集合でした。Pはピアノを習っている生徒の集合でした。Sはサッカーが好きな生徒の集合でした。

例えば表4で詩織の行を見ると、左から010となっています。つまり、詩織はMには属さず、Pには属して、Sには属さない生徒という事になります。さらに分かりやすくいうと、詩織は女子生徒で、ピアノを習っていて、サッカーに興味がないという事になります。(これは、表1の説明と一致しています)

表4の例で分かる様に、(全体集合Uの)各要素は、各集合に属するかどうかの真理値で、ベン図上のどの領域に属するかが決まります。(図23参照)

図23、表4の各生徒の属性を表す3つの真理値と、ベン図上の領域の対応
↑ 画像をクリックすると拡大
図23、表4の各生徒の属性を表す3つの真理値と、ベン図上の領域の対応

図の中に書いてある3桁の数字は、左の桁から順に、集合Mに属するか、集合Pに属するか、集合Sに属するかを表す真理値です。

表4の場合はMPSの3つの集合を問題にしていたので、各要素の属性を表す真理値は3つでしたが、一般にN個(N=1,2,3···)の集合を問題にする場合は、N個の真理値で、各要素の属性が表現できます。

あるいは、真理値と2進数1桁の数字を同一視するなら、N個の集合を問題にする場合、N桁の(Nビットの)2進数で、各要素の属性が表現できるという事もできます。

注:「2進数」という用語は、「二進法で表記した数」という意味で使っています。数学におけるp進数の、p=2の場合を指している訳ではありません。

この様に、集合論における物の属性は、集合の数と同じビット数の2進数で表現できるために、論理関数や論理回路と関連付けて考える事ができます。

2-2.論理関数や論理回路におけるベン図の意味

2-2-1.2変数の論理関数で使われるベン図

論理関数の議論でベン図がどの様に使われるかを説明するため、今、2変数の論理関数F(A,B)を考えます。

論理関数(ブール関数)というのは真理値の変数(01の値を取る変数)を取り、関数の計算値も真理値になる様な関数の事です。2つの変数ABを取る論理関数F(A,B)の場合は、ABF(A,B)が、0(偽)または1(真)の値を取ります。

あまり抽象的な話をすると、話が理解しにくくなるため、例として、論理関数F論理和だとして、論理和のベン図の描き方について考えます。この場合、論理関数Fは式(23)で表されます。

F(A,B) = A+B ··· (23)

この時、論理関数F(A,B)を真理値表で表すと、表5の様になります。

表5、論理和の真理値表
A B F(A,B)
(=A+B)
0 0 0
0 1 1
1 0 1
1 1 1

ここで、2つの変数ABの値の、組み合わせについて考えます。

例えばAの値が0Bの値が1の組み合わせが考えられます。この組み合わせを、省略して(A,B)=(0,1)と表記する事にします。(Aの値が1Bの値が0なら、(A,B)=(1,0)です)

さらに、2つの変数がABだと分かっている場合は、(A,B)=(0,1)の最初の(A,B)=の部分を省略して、(0,1)と書いてもいい事にします。

この表記法を使って書くと、ABの値の、考えられる組み合わせは、(0,0)、(0,1)、(1,0)、および(1,1)の4つとなります。

ここで、変数Aと変数Bの値の、考えられる全ての組み合わせ、すなわち、先程示した(0,0)、(0,1)、(1,0)、および(1,1)の4つを要素とする集合を、全体集合Uとして、集合の議論をします。

全体集合Uの定義を数式で書くと、式(24)になります。

U = { (0,0), (0,1), (1,0), (1,1) } ··· (24)

また、変数Aと変数Bの値の組み合わせの内、変数Aの値が1となる物の集合を、集合Aとします。

ここで、変数Aと集合Aは、互いに密接に関係しているために、同じ名前Aを用いています。単にAと書くと、変数を指すのか集合を指すのかが分かりにくいため、これ以降は、「変数A」や「集合A」と呼び、変数と集合を区別する事にします。

集合Aは、変数Aと変数Bの値の組み合わせの内、変数Aの値が1となる物の集合ですから、式(25)で与えられます。

A = { (1,0), (1,1) } ··· (25)

また、変数Aと変数Bの値の組み合わせの内、変数Bの値が1となる物の集合を、集合Bとします。この時集合Bは、式(26)で与えられます。

B = { (0,1), (1,1) } ··· (26)

全体集合Uと集合Aと集合Bの関係をベン図で表すと、図24の様になります。

図24、全体集合Uと集合Aと集合Bの関係
↑ 画像をクリックすると拡大
図24、全体集合Uと集合Aと集合Bの関係

図24の外側の長方形は、全体集合Uを表しています。論理関数のベン図の場合、全体集合の変数名Uは、通常記載しません。

またこの図には、全体集合Uを構成する4つの要素、(0,0)、(0,1)、(1,0)、および(1,1)も書き込んであります。この図に示す様に、論理関数の議論で使うベン図の場合、集合Aの範囲を示す円と集合Bの範囲を示す円とで区切られた4つの領域に、要素が1つずつ入ります。

(1,0)と(1,1)は、変数Aの値が1になる組み合わせですから、集合Aの範囲を表す円の内側に書いてあります。また(0,0)と(0,1)は、変数Aの値が0になる組み合わせですから、集合Aの範囲を表す円の外側に書いてあります。

同様に、(0,1)と(1,1)は、変数Bの値が1になる組み合わせですから、集合Bの範囲を表す円の内側に書いてあります。また(0,0)と(1,0)は、変数Bの値が0になる組み合わせですから、集合Bの範囲を表す円の外側に書いてあります。

図24のベン図において、論理関数F(A,B)の値が1になる範囲をピンクに着色したのが図25です。

図25、論理関数F(A,B)の値が1になる範囲を表したベン図(この場合は論理和のベン図)
↑ 画像をクリックすると拡大
図25、論理関数F(A,B)の値が1になる範囲を表したベン図(この場合は論理和のベン図)

この図には、(0,0)等の変数Aと変数Bの値の組み合わせが灰色で書き込んでありますが、これらは、表5の真理値表との対応を見やすくするために書き込んだものです。論理関数のベン図には、これらの変数の値の組み合わせが書かれていなくても構いません。

図25と表5を見比べると、真理値表でF(A,B)の欄が1になっている変数Aと変数Bの値の組み合わせだけが、ベン図上でピンク色に着色されている事が理解できると思います。

図25の様に、論理関数F(A,B)の値が1になる範囲を着色して表したベン図の事を、単に「論理関数F(A,B)のベン図」といいます。

今回は論理関数F(A,B)の真理値表(表5)が先に分かっていて、そこから図25のベン図を求めましたが、逆に図25のベン図から、表5の真理値表を求める事もできます。言い換えると、ベン図と真理値表は1対1対応しています。この様に、ベン図は真理値表を視覚的に表した図だという事がいえます。

図25が論理和の真理値表を視覚的に表した図だという事は、図25は、論理和演算を行なうOR回路(図26参照)の真理値表を視覚的に表した図だともいえます。

図26、2入力OR回路(図25のベン図に対応)
↑ 画像をクリックすると拡大
図26、2入力OR回路(図25のベン図に対応)

論理回路の真理値表を表現したベン図の事を、単に「論理回路のベン図」といいます。(図25の場合は、2入力OR回路のベン図です)

ところで、図25から分かる通り、論理和の演算(OR演算)は、ベン図上では和集合を求める事に相当します。論理和も、和集合も、「和」という言葉が付きますから、憶えやすいと思います。

次に、別の2変数論理関数として、式(27)に示す論理積演算について考えます。

G(A,B) = A·B ··· (27)

G(A,B)の真理値表を、表6に示します。

表6、論理積の真理値表
A B G(A,B)
(=A·B)
0 0 0
0 1 0
1 0 0
1 1 1

この真理値表を基に、論理積のベン図を作成すると、図27の様になります。

図27、論理積のベン図
↑ 画像をクリックすると拡大
図27、論理積のベン図

図27は、図28に示す2入力AND回路のベン図でもあります。

図28、2入力AND回路(図27のベン図に対応)
↑ 画像をクリックすると拡大
図28、2入力AND回路(図27のベン図に対応)

図27を見ると分かる様に、論理積の演算(AND演算)は、ベン図上では積集合(共通部分)を求める事に相当します。論理積も、積集合も、「積」という言葉が付きますから、憶えやすいと思います。

2-2-2.1変数の論理関数で使われるベン図

先程は2変数の論理関数の議論で使われるベン図について説明しましたが、今度は1変数の論理関数の議論で使われるベン図について説明します。

変数Aを取る、1変数の論理関数、F(A)を考えます。

変数Aの考えられる値の組み合わせ(組み合わせといっても1変数しかないので実質は変数Aの値)は、(A)=(0)と(A)=(1)の2つです。

そこで、全体関数Uを式(28)の様に定義して、集合の議論をします。

U = { (0), (1) } ··· (28)

全体集合Uの2つの要素の内、変数Aの値が1になる物の集合を集合Aとすると、集合Aは式(29)で与えられます。

A = { (1) } ··· (29)

全体集合Uと変数Aの関係をベン図に表すと、図29の様になります。

図29、全体集合Uと集合Aの関係を表したベン図
↑ 画像をクリックすると拡大
図29、全体集合Uと集合Aの関係を表したベン図

外側の正方形が全体集合Uを表しています。

1変数の論理関数F(A)の例として、式(30)の論理否定関数を考えます。

F(A) = A ··· (30)

この場合、変数Aの値が0の時に論理関数F(A)の値が1になりますから、論理関数F(A)を表すベン図(論理式Aを表すベン図)は、図30に示す様に、集合Aの外側を着色したものになります。

図30、論理式Aを表すベン図
↑ 画像をクリックすると拡大
図30、論理式Aを表すベン図

この図には、(0)と(1)が灰色で書き込んでありますが、これらは、図が解釈しやすい様に、その領域での変数Aの真理値を書き込んであるだけです。論理関数のベン図には、(0)や(1)が書かれていなくても構いません。

この様に、論理否定演算(NOT演算)は、ベン図上では補集合を求める事に相当します。変数Aの論理否定を表す論理式はAと記述しますし、集合Aの補集合もAと記述します。論理式でも集合でも同じ記号を使うので、憶えやすいと思います。

また、図31に示すNOT回路は、論理式Aを計算する回路ですから、図30のベン図は、NOT回路の動作を表したベン図でもあります。

図31、NOT回路(図30のベン図に対応)
↑ 画像をクリックすると拡大
図31、NOT回路(図30のベン図に対応)

2-2-3.3変数の論理関数で使われるベン図

この項では、3変数の論理関数のベン図について説明します。

3変数の論理関数F(A,B,C)を考えます。

3つの変数ABCの値の考えられる組み合わせは、(A,B,C)=(0,0,0)、(0,0,1)、(0,1,0)、···、(1,1,1)と、8通り考えられます。

ここで、それら8通りの組み合わせの集合を、全体集合Uとして、集合の議論をします。全体集合Uは、式(31)で定義されます。

U = { (0,0,0), (0,0,1), (0,1,0), (0,1,1), (1,0,0), (1,0,1), (1,1,0), (1,1,1) } ··· (31)

全体集合Uの要素の中で、変数Aの値が1になる物の集合を集合Aとすると、集合Aは式(32)で与えられます。

A = { (1,0,0), (1,0,1), (1,1,0), (1,1,1) } ··· (32)

全体集合Uの要素の中で、変数Bの値が1になる物の集合を集合Bとすると、集合Bは式(33)で与えられます。

B = { (0,1,0), (0,1,1), (1,1,0), (1,1,1) } ··· (33)

全体集合Uの要素の中で、変数Cの値が1になる物の集合を集合Cとすると、集合Cは式(34)で与えられます。

C = { (0,0,1), (0,1,1), (1,0,1), (1,1,1) } ··· (34)

全体集合Uと集合A集合Bと集合Cの関係をベン図で表すと、図32の様になります。

図32、全体集合Uと集合Aと集合Bと集合Cの関係
↑ 画像をクリックすると拡大
図32、全体集合Uと集合Aと集合Bと集合Cの関係

この外側の正方形が全体集合Uを表しています。

このベン図は、図23のベン図とほぼ同じです。図23は、クラスの生徒を分類したベン図であり、論理関数の議論とは全く関係ないにも関わらず、3変数の論理関数の議論で扱うベン図と、形式上は同じ形をしています。

3変数の論理関数の具体的な例として、式(35)の関数を考えてみます。

F(A,B,C) = A·(B+C) ··· (35)

式(35)の論理関数の真理値表を表7に示します。

表7、式(35)の論理関数の真理値表
A B C F(A,B,C)
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 0
1 0 0 1
1 0 1 0
1 1 0 1
1 1 1 1

表7の真理値表で、F(A,B,C)の値が1になっている行の変数A、変数B、変数Cの組み合わせについて、図32のベン図の対応部分に着色をすると、図33の様なベン図ができます。これが、式(35)の論理関数のベン図です。

図33、論理式A·(B+C)のベン図
↑ 画像をクリックすると拡大
図33、論理式A·(B+C)のベン図

この図には、(0,0,0)等の変数A、変数B、および変数Cの値の組み合わせが灰色で書き込んでありますが、これらは、表7の真理値表との対応を見やすくするために書き込んだものです。論理関数のベン図には、これらの変数の値の組み合わせが書かれていなくても構いません。

表7の真理値表と図33のベン図は、同じ情報を表していますが、ベン図の方が、関数値が1となる変数の組み合わせの範囲が、視覚的に把握しやすくなっています。

例えば、変数Aの値が1になる事は、論理式A·(B+C)の値が1になる事の必要条件ですが、図33のベン図を見ると、ピンク色に着色された領域は全て、確かに集合Aの円の内部になっています。また、変数Bの値が1になるか、または変数Cの値が0になる事も、論理式A·(B+C)の値が1になる事の必要条件ですが、図33のベン図を見ると、ピンク色に着色された領域は全て、確かに集合Bの円の内部であるか、または集合Cの円の外部になっています。この様に、ベン図を使えば、論理関数を視覚的に把握できます。

ところで図34に示す回路は、論理式A·(B+C)の値を計算するための論理回路です。よって、図33のベン図は、図34の論理回路の動作を表したベン図でもあります。

図34、論理式A·(B+C)の計算を行なう回路(図33のベン図に対応)
↑ 画像をクリックすると拡大
図34、論理式A·(B+C)の計算を行なう回路(図33のベン図に対応)

次のページでは、基本論理ゲートのベン図を紹介します。

目次へ  前のページへ (1) (2) (3) (4) (5) 次のページへ

関連用語

関連ページ

Arduino 電子工作
このサイトの記事が本になりました。
書名:Arduino 電子工作
ISBN:978-4-7775-1941-5
工学社の書籍の内容の紹介ページ
本のカバーの写真か書名をクリックすると、Amazonの書籍購入ページに移動します。