演習課題 No6 は少なくない学生さんから「分からない」 「難しい」 「答えを 知りたい」などの質問が寄せられていました.そこで,中間テストの前なの で,そのような気分に返ってなれないかもしれませんが,気になって就眠で きない(昔,そんなギャグでうけていた漫才がありましたが)人が居ては困 るので,敢て,1つの解答例を示してみました. 「1つの」と書いたのは,こ のような課題には「答え方は無数に存在する」との立場で,あまり『模範解 答』などを求めて欲しくないと考えているので,あくまで「1つ」の考え方 である点を強調しています.是非とも, (そのようなものの考え方・ ・ 「解答方 法」ではありません)理解して欲しいと考えています. 真理値表を使用しないで 1 真理値表を使用すると「総ての組み合わせ」を試すことができるので,ほぼ いつでも有効な解答となります(もちろん,少しは例外もあるでしょうが). しかし,真理値表を使用しないでとなると,式変形で確認するしかないので, 一般には少し難しい(あるいは時間が掛かる)ことになります. ここで「x OR y と xAND(NOTy)ORy とが同値となることを,真理値表 を使用しないで,どちらも積和標準形および和積標準形に式変形して,証明 してください. 」という問題ですが,その真意は,与えられた論理関数は「積 和標準形」「和積標準形」に 一意に変形可能 すなわち, 「積和標準形あるいは 和積標準形は必ず一通りである」という性質を使用して,2つの論理関数 • 「x OR y」すなわち,f1 (x, y) = x + y • 「xAND(NOTy)ORy」すなわち,f2 (x, y) = xȳ + y を「積和標準形」あるいは「和積標準形」に変形することによって,両者を 比較する問題となります. 1.1 積和標準形へ式変形する シャノンの展開定理(積和標準形版)を思い出してください.どのような 論理関数でも f (x) = x̄f (0) + xf (1) の形式に展開(=式変形)できることは 既に証明済みですね.そこで,2変数の論理関数 f (x, y) も同様に展開,すな わち式変形可能です.この時,2変数の論理関数の「積和標準形」は必ず, f (0, 0)x̄ȳ + f (0, 1)x̄y + f (1, 0)xȳ + f (1, 1)xy と式変形できますね. (実は, 「真理値表」でもこの値を必要とすることは全く 同じなのですが・ ・) 1 1. 「x OR y」すなわち,f1 (x, y) = x + y の場合 f1 (0, 0) = 0 + 0 = 0 f1 (0, 1) = 0 + 1 = 1 f1 (1, 0) = 1 + 0 = 1 f1 (1, 1) = 1 + 1 = 1 2. 「xAND(NOTy)ORy」すなわち,f2 (x, y) = xȳ + y の場合 f2 (0, 0) = 00̄ + 0 = 0 f2 (0, 1) = 01̄ + 1 = 1 f2 (1, 0) = 10̄ + 0 = 1 + 0 = 1 f2 (1, 1) = 11̄ + 1 = 1 なる論理演算を行うことで,2つの論理関数:f1 (x, y) と f2 (x, y) の値(係 数に相当する部分)が総て決定できます. 次に,シャノンの展開定理(積和標準形版)を活用することで, 1. 「x OR y」すなわち,f1 (x, y) = x + y の場合 f1 (x, y) = f1 (0, 0)x̄ȳ + f1 (0, 1)x̄y + f1 (1, 0)xȳ + f1 (1, 1)xy と式変形 でき,上で求めた,f1 (0, 0) = 0,f1 (0, 1) = 1,f1 (1, 0) = 1 および f1 (1, 1) = 1 を代入すれば, f1 (x, y) = 0x̄ȳ + 1x̄y + 1xȳ + 1xy = x̄y + xȳ + xy となります(これは一意な式変形なので心配はご無用です). 2. 「xAND(NOTy)ORy」すなわち,f2 (x, y) = xȳ + y の場合 f2 (x, y) = f2 (0, 0)x̄ȳ + f2 (0, 1)x̄y + f2 (1, 0)xȳ + f2 (1, 1)xy と式変形 でき,上で求めた,f2 (0, 0) = 0,f2 (0, 1) = 1,f2 (1, 0) = 1 および f2 (1, 1) = 1 を代入すれば, f2 (x, y) = 0x̄ȳ + 1x̄y + 1xȳ + 1xy = x̄y + xȳ + xy となります(当然,これも一意な式変形となります). 従って,2つの論理関数の「積和標準形」が全く同じとなるので, 「両者は同 値」であると言えます. 以下はその意味では「蛇足」とも言えますが,シャノンの展開定理(和積 標準形版)を活用することになります. 2 1.2 和積標準形へ式変形する シャノンの展開定理(和積標準形版)を利用します.どのような論理関数 でも f (x) = (x̄ + f (1))(x + f (0)) の形式に展開(=式変形)できることは既 に証明済みですし,双対性 (Principle of Duality) より常に導出可能とも言え ます.そこで,2変数の論理関数 f (x, y) も同様に展開,すなわち式変形可能 です.この時,2変数の論理関数の「和積標準形」は必ず, (f (1, 1) + x̄ + ȳ)(f (1, 0) + x̄ + y)(f (0, 1) + x + ȳ)(f (0, 0) + x + y) と式変形可能です. 既に,4つの係数:f (0, 0),f (0, 1),f (1, 0), および f (1, 1) の値は,前のサブ 節で導出済みです. そこで,シャノンの展開定理(和積標準形版)を f1 (x, y) および f2 (x, y) に 適用することで, 1. 「x OR y」すなわち,f1 (x, y) = x + y の場合 f1 (x, y) = (f1 (1, 1)+x̄+ȳ)(f1 (1, 0)+x̄+y)(f1 (0, 1)+x+ȳ)(f1 (0, 0)+x+ y) と式変形でき,上で求めた,f1 (0, 0) = 0,f1 (0, 1) = 1,f1 (1, 0) = 1 および f1 (1, 1) = 1 を代入すれば,f1 (x, y) = (1 + x̄ + ȳ)(1 + x̄ + y)(1 + x + ȳ)(0 + x + y) = (1)(1)(1)(0 + x + y) = x + y となります. (実は f1 (x, y) は既に「和積標準形」だった訳ですね). 2. 「xAND(NOTy)ORy」すなわち,f2 (x, y) = xȳ + y の場合 f2 (x, y) も f2 (x, y) = (f2 (1, 1) + x̄ + ȳ)(f2 (1, 0) + x̄ + y)(f2 (0, 1) + x + ȳ)(f2 (0, 0) + x + y) と式変形でき,上で求めた,f2 (0, 0) = 0, f2 (0, 1) = 1,f2 (1, 0) = 1 および f2 (1, 1) = 1 を代入すれば,f2 (x, y) = (1+ x̄+ ȳ)(1+ x̄+y)(1+x+ ȳ)(0+x+y) = (1)(1)(1)(0+x+y) = x+y となります. 今更ですが, 「和積標準形」はどのような論理関数でも一意の形式なの で,当然,一致しますね. ということで,2つの論理関数の「和積標準形」が全く同じ表現なので, 「両 者は同値」であるとの結論はここでも再確認できます. 2 真理値表を使用して 次に「⊕ を Ex-OR 記号とするとき,論理式 (x ⊕ y)AND(y ⊕ z)AND(z ⊕ x) を簡単な論理式で表現してください. 」という問題を真理値表を使用す る方法とそうでない方法で考えてみましょう. 3 2.1 真理値表を使用してもよい場合 真理値表を使用してもよいとなると,いろいろと便利です(また,表記も 簡便となります). まず,2 つの論理変数 a, b からなる論理式 (a ⊕ b) は表 1 となります. 表 1: 論理式 (a ⊕ b) の真理値表 a b (a ⊕ b) 0 0 0 1 0 1 1 1 0 1 1 0 そこで,3つの論理式:(x ⊕ y),(y ⊕ z),(z ⊕ x) の真理値表は表 2 で表 現されます. 表 2: 論理式:(x ⊕ y),(y ⊕ z),(z ⊕ x) の真理値表 x y z (x ⊕ y) (y ⊕ z) (z ⊕ x) 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 0 1 1 1 1 0 1 0 1 1 1 0 0 0 1 1 1 0 1 1 0 1 1 1 1 0 1 0 0 1 0 1 0 従って,題意の「論理式 (x ⊕ y)AND(y ⊕ z)AND(z ⊕ x) 」とは (x⊕y)(y ⊕ z)(z ⊕ x) なので,(x ⊕ y),(y ⊕ z) および (z ⊕ x) の内,1つでもゼロがあ れば,その AND(すなわち論理積) はゼロとなるので, (x ⊕ y)(y ⊕ z)(z ⊕ x) = 0 と言える.これを真理値表で表現すれば,次の 表 3 となります. すなわち, 「⊕ を Ex-OR 記号とするとき,論理式 (x ⊕ y)AND(y ⊕ z)AND(z ⊕ x) を簡単な論理式で表現する」と真理値表の「表 3」より,論理変数 x, y, z の値によらず,常にゼロ,すなわち,(x ⊕ y)(y ⊕ z)(z ⊕ x) = 0 となる,と 言えます. 4 表 3: 論理式:(x ⊕ y),(y ⊕ z),(z ⊕ x) の真理値表,その2 x y z (x ⊕ y) (y ⊕ z) (z ⊕ x) (x ⊕ y)AND(y ⊕ z)AND(z ⊕ x) 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 0 0 1 0 1 1 1 1 0 0 1 1 1 0 0 0 0 1 1 1 1 0 1 0 0 1 0 1 0 0 0 2.2 真理値表を使用しない場合 では,便利な真理値表をしない場合はどうなるでしょうか.もちろん,先 に述べた「積和標準形」あるいは「和積標準形」に変形することで解答する ことも可能です.上でも述べたように,関数値(シャノンの展開定理の係数 に相当する値)を総て決定する作業と真理値表を作成する作業とは同値とも 言えます.従って,ここでは,少しだけ趣向を変えて,式変形だけで解答し てみましょう. 「論理式 (x ⊕ y)AND(y ⊕ z)AND(z ⊕ x) 」は (x ⊕ y)(y ⊕ z)(z ⊕ x) と表記できるのは上で既に述べました. (x ⊕ y)(y ⊕ z)(z ⊕ x) = (x̄y + xȳ)(ȳz + yz̄)(z̄x + z x̄) (1) = (x̄y ȳz + x̄yyz̄ + xȳ ȳz + xȳyz̄)(z̄x + z x̄) (2) = (0 + x̄yz̄ + xȳz + 0)(z̄x + z x̄) (3) = (x̄yz̄ + xȳz)(z̄x + z x̄) (4) = x̄yz̄ z̄x + x̄yz̄z x̄ + xȳz z̄x + xȳzz x̄ (5) = (6) 0+0+0+0=0 上の式変形は容易に理解できるとは思いますが,念のため,少しだけ補足し ておきます. 式 (1) は「排他的論理和 (Exclusive OR)」の定義式ですね.式 (2) は前半 の2項だけを分配則に従って展開しています.式 (3) は aā = 0 なる関係式, 5 および aa = a なる関係式を用いて簡単化しています.式 (4) を同様に分配則 を用いて展開すると式 (5) を得ます.しかし,ここでも aā = 0 なる関係式な どを用いて,式 (6) を導くことができます. Last updated: 平成 27 年 12 月 3 日 今井慈郎 Yoshiro Imai 6
© Copyright 2024 ExpyDoc