閾値関数と単調増大関数、双対関数の関係

(1)f(x1,x2,,xn)=c1x1+c2x2++cnxnT
が成立するとき、fは閾値関数と言う。次の問いに答えよ。
(1)任意のiについてci=1のとき、閾値関数の双対関数は単調増大関数であることを証明せよ。
(2)(1)のとき、n変数閾値関数の双対関数と閾値Tの関係を求めよ。
(3)単調増大かつ自己双対である3変数論理関数を示せ。
(4)単調増大かつ自己反双対であるn変数論理関数を示せ。

本記事で覚えたいこと

  1. 閾値関数は、1を取る変数の数が一定個数(T)以上のとき、必ず1を取る。
  2. 逆に、1を取る変数の数が一定個数未満のとき、必ず0を取る。
  3. 自己双対(関数の否定)を取ると、n-T個以下のとき、必ず0を取るようになる。

3.のように、関数の否定を取ると、閾値が変化する点に注目です。

上記の事実は、(1)(2)を解くうえで使います。(3)(4)は、自己双対関数の記事で扱ったように、真理値用を記載していくことで解決できます。

解答例

(1)(2)n変数閾値関数の双対関数

変数xi=1を取るiの個数をN(x1,x2,,xnとすると、閾値関数の定義より、以下の式が成立する。

(2)N(x1,x2,,xn)T

これの双対関数が1を取るとき、下記の式が成立する。

(3)N(x1,x2,,xn)<T(4)nN(x1,x2,,xn)<T

このとき、

(5)F(x0,x1,x2,,xn)=0

なので、

(6)Fd(x0,x1,x2,,xn)=F(x0,x1,x2,,xn)=1

が成立する。

(5)式を整理すると

(7)nT<N(x1,x2,,xn

よって、Fdは閾値n-T+1の単調増大関数であることが示された。

(3)単調増大かつ自己双対の3変数論理関数

自己双対関数の性質により、真理値表の上半分が決定すると、下半分は、上半分の出力にNOTを取った値が出力される。

単調増大のとき、xi=1を取る変数が0個以上、1個以上、2個以上、3個以上の4通りある。下記により、2個以上の場合のみ題意を満たす。

以上より、3変数多数決関数が題意を満たすので、求める論理式は

(8)f(x1,x2,x3)=x1x2+x2x3+x1x3

(4)単調増大かつ自己反双対のn変数論理関数

題意が成立するとき、以下の関係が成立する。

(9)f(0,0,,0)=f(1,1,,1)

全ての変数が0である場合と1である場合で値が等しい。また、一部の変数が1である場合も同じ値を取らなければならない。

このことから、題意を満たす論理関数は、0値関数か1値関数の2通りのみになる。

最後に

問題によっては、c1=1,c2=2など、変数に対して重みを付与した場合もあります。どのような式で表記されているか、事前に注意深く確認しましょう。

参考文献

スイッチング回路理論:当麻 喜弘 (著)

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