【論理関数】n変数線形関数の個数、性質

問題

あるn変数論理関数について、(1)f(x1,x2,,xn)=c0c1x1c2x2cnxnが成立するとき、線形関数と呼ぶ。(ci(i=0,1,2,,n)は定数で0か1が入る。)

下記の問に答えよ。
(1)n変数論理関数の中で、n変数線形関数は何個存在するか。
(2)線形関数は、自己双対関数か自己反双対関数のいずれかであることを示せ。
(3)全てのn変数論理関数は、c0X1X2Xm型の環和標準形で表されることを証明せよ。但し、mは任意の自然数

はじめに

論理関数の中には、様々な性質を持つものがあります。例として、前回の記事では、自己双対関数を説明しました。今回は、線形関数について説明します。性質については、本問で述べた通りです。

こちらも、東北大をはじめとする院試でよく出題されます。

この記事で覚えたいこと

  1. n変数線形関数の個数は、ciに入る値の組み合わせ分存在する。
  2. xi=1xiと表すことができる。
  3. 完全系(NOR)は環和標準形(XOR)でも表すことができる。

1.2.3.それぞれ(1)(2)(3)で使用します。

XORは排他的論理和です。xyxyのとき、1、x=yのとき0を出力します。

下記のように分配律が成立します。

(2)NOR(x,y)=(x+y)(3)=(xy)(4)=(1x)(1y)(5)=xyxy1

確かに、環和標準形で表すことができました。この式変形を利用し、(2),(3)を解いていきます。

解答例

(1) n変数線形関数の個数

問題で与えられた通り、n変数線形関数は、式(1)で表される。

ciは、0,1の2通り入り、これがi=0,1,2,,nのn+1個の定数に対し当てはめることができる。

よって、2222=2n+1個存在する。

(2) 線形関数と双対関数

(6)xi=1xiを使用して、式(1)を変形する。

(7)f(x1,x2,,xn)(8)=c0c1x1c2x2cnxn(9)=c0c1(1x1)c2(1x2)cn(1xn)(10)=(c0c1cn)c1x1c2x2cnxn

c1x1c2x2cnxn(A) は線形関数の変数項である。

(c0c1cn)(B) の値次第で(7)式の結果が変化する。

(i) (B)=1 のとき、xi=1xi より出力は反転する。

(11)f(x1,x2,,xn)=f(x1,x2,,xn)

これより、自己双対関数であることが示された。

(ii) (B)=0 のとき、xi=0xi より、入力値を出力する。

(12)f(x1,x2,,xn)=f(x1,x2,,xn)

これより、自己反双対関数であることが示された。

(3) 環和標準形について

線形関数の性質(式(1))より、XORとANDで任意の論理関数を表すことができれば、題意を満たすことができる。

論理回路の他の演算子は、OR、NOR。これをXORとANDで示すことを考える。

NOT:式(6)より成立

NOR:式(5)より成立

OR:NOT(NOR)で、11=0より、xyxyで示すことができる。

3変数以上の場合でも上記の式変形は成立する。これより、任意の論理関数は、例として

f=x1x2x3x4x5x6x7

f=1x1x2x3x4x5x6x7

のように、ANDとXORで表すことができる。

の間をXiで表すと、題意の式が成立する。

最後に

任意の論理関数は、AND、OR、NOTでも表すことができますが、XORを使用すると簡潔に表すことができます。本問の考え方は、論理回路のbit演算(加算器)でも使用することがあります。是非、本問で使用した変形を別の問題でも応用できるよう演習を積んで下さればと思います。

参考文献

解法と演習 大学院入試問題<情報通信系>:関 正治(著),陳 啓浩(著),姫野 俊一(著) P93

タイトルとURLをコピーしました