当前位置:主页 > 论文百科 > 大学课程 >

数字逻辑中的最小完全集

发布时间:2017-04-05 15:08

  本文关键词:数字逻辑,由笔耕文化传播整理发布。


img

u013795675

数字逻辑中的最小完全集

发表于2015/3/20 2:05:13  867人阅读

分类: 数字逻辑电路topics

逻辑门

这里只研究单输入单输出、二输入单输出的逻辑门。
单输入的逻辑门是非门(恒等的情况不考虑),真值表为

A B

0 1

1 0

逻辑门的类型,参见下表

A B C

0 0

0 1

1 0

1 1

任一种的组合都构成一种逻辑门,所以理论上共有16个逻辑门(逻辑函数)。但是经常提到的只有与门(AND)、或门(OR)、与非门(NAND)、或非门(NOR)、同或门(XNOR)、异或门(XOR)等。它们的真值表分别是

与门

A B C

0 0 0

0 1 0

1 0 0

1 1 1

或门

A B C

0 0 0

0 1 1

1 0 1

1 1 1

与非门

A B C

0 0 1

0 1 1

1 0 1

1 1 0

或非门

A B C

0 0 1

0 1 0

1 0 0

1 1 0

同或门

A B C

0 0 1

0 1 0

1 0 0

1 1 1

异或门

A B C

0 0 0

0 1 1

1 0 1

1 1 0

通常只提到它们的原因是,这些逻辑门满足交换律,即AB=BA,或者说AB不可区分,表现在真值表上就是中间两行的输出值相等。

这样满足交换律的门还有两个,即输出全为0和输出全为1的,是无意义或者说是平凡的。所以说,以上六个逻辑门是所有的非平凡的对称逻辑门。除此之外,还有8个不满足对称性的逻辑门。

完全集

能够实现任何逻辑函数的逻辑门类型的集合,被称为逻辑门的完全集。

完全集的一个常见的例子是与门、或门、非门。但是这样的概念并不精炼,数学上我们还要求完全集具有最少的元素,,即满足
1. 任一个逻辑函数,都可以集合中的逻辑门实现,即完备性
2. 集合中的一个元素不能被集合中其他元素实现,即独立性
我们称这样的集合为最小完全集
事实上我们马上会知道,{与门,或门,非门}并不是一个最小完全集。

那么哪些逻辑门可以构成最小完全集呢?

我们提出以下命题:

与非门(或非门)一种可以构成完全集

与非门证明:

已知{与门,或门,非门}是完全集,所以与单独一种与非门可以实现所有逻辑函数,构成一个单元素的完全集(当然也就是最小完全集)。

图示:
blabla

或者考虑代数的表示



1.
2. NAND
3.

或非门证明:

同或门(异或门)一种不能构成完全集 证法一 数论方法
  • 异或门不能构成完全集。

    仅用异或逻辑可以实现的所有逻辑函数可以表示成若干个

  • 如果异或门可以构成完全集,那么可以实现与逻辑。按照与逻辑的真值表

    X Y F

    0 0 0

    0 1 0

    1 0 0

    1 1 1


    矛盾。所以异或门不能单独构成完全集。
    2. 同或门和异或门的等价性。
    异或门串联一个非门即得同或门,而非门可以用异或门实现,方法是异或门的一端接高电平。

    因此同或门和异或门都不可以单独构成完全集。

    补充:
    证明同或门不可行也可以用代数方法直接证明,而不必通过两步转换。


    仅用同或逻辑可以实现的所有逻辑函数可以表示成若干个

    如果同或门可以构成完全集,那么可以实现与逻辑。按照与逻辑的真值表,得到


    矛盾。
    所以同或门不能单独构成完全集。

    证法二 群论方法

    同或满足交换律和结合律。


    任一个逻辑函数可以表示成若干个X,Y,1,0的异或运算的和,根据交换律和结合律,可以得到

    同或的性质是,根据奇偶性有四种情况,组合起来一共有8种情况

    01组合 A B F

    1 2m 2n 1

    1 2m 2n+1 B`1

    1 2m+1 2n A

    1 2m+1 2n+1 AB

    0 2m 2n 0

    0 2m 2n+1 B’

    0 2m+1 2n A’

    0 2m+1 2n+1 (AB)’

    上面这8行,每行代表一个逻辑函数,所以单独的同或门只能实现着8种逻辑函数,不能构成完全集。

    证法三 穷举法

    穷举的判据仍然是:如果只用这一种(同或)逻辑可以实现所有的逻辑函数,那么它就是完全集。

    用真值表来表述:如果只用这一种(同或)逻辑可以得到所有16种真值表,那么它就是完全集。仅用同或门可以实现的所有逻辑函数可以用若干个A,B,0,1进行异或运算得到。

    给A,B,0,1分别编码为,它们中的每两个运算,就是相应的两个编码按位进行运算,运算的结果也是一个四位编码,对应一个逻辑函数。对这个码字的运算的组合、顺序和次数进行穷举,如果可以得到16个不同的码字,那么就证明了同或门可以构成完全集,反之不可以。

    穷举的过程用计算机来实现,因为运算次数虽然有限,还是挺繁琐的。贴一段python代码实现:

    : r="" for i in range(len(x)): if x[i]==y[i]: r+='1' else: r+='0' return r stas=['0101','0011','0000','1111'] con=True while con: con=False for sta in stas: for stb in stas: newSt=Xnor(sta,stb) if not newSt in stas: stas.append(newSt) print(sta+' '+stb+' '+newSt) con=True print(len(stas),stas)

    输出结果:

    ['0101', '0011', '0000', '1111', '1001', '1010', '1100', '0110'] >>>

    这就是在同或逻辑下实现的8个逻辑函数,因为完全集要求有16个输出结果,所以同或门不能构成完全集。

    与门和非门(或门和非门)构成最小完全集

    因此{与门,非门}和{或门,非门}构成最小完全集。

    最小完全集代码全解

    下面考虑用编程的方法,对完全集做进一步的探索。

    单独构成完全集的二输入逻辑门

    有一个说法是,能够单独构成完全集的二输入逻辑门只有与非门和或非门。其实这个说法的前提是对称的逻辑门,也就是以上六种门,当然可以这么说了。事实上,不满足交换律的逻辑门还有四个也可以单独构成完全集。

    : r="" add1 = door/8 add2 = (door/4)%2 add3 = (door/2)%2 add4 = door%2 for i in range(len(x)): if (x[i]=='0')and(y[i]=='0'): r += str(add1) if (x[i]=='0')and(y[i]=='1'): r += str(add2) if (x[i]=='1')and(y[i]=='0'): r += str(add3) if (x[i]=='1')and(y[i]=='1'): r += str(add4) return r door = 1 for door in range(16): stas=['0101','0011','0000','1111'] #print "*********************" #print 'This door is ',door con=True while con: con=False for sta in stas: for stb in stas: newSt=find_new_element(door,sta,stb) if not newSt in stas: stas.append(newSt) con=(len(stas)==16): print door

    输出结果

    这多出来的四个逻辑门的真值表是
    1.

    A B C

    0 0 0

    0 1 0

    1 0 1

    1 1 0

    2.

    A B C

    0 0 0

    0 1 1

    1 0 0

    1 1 0

    3.

    A B C

    0 0 1

    0 1 1

    1 0 0

    1 1 1

    4.

    A B C

    0 0 1

    0 1 0

    1 0 1

    1 1 1

    实际上,这四个门可以归结成一个,即不满足交换律,且当输入同为0或同为1时输出相同。

    由对称二输入逻辑门以及非门中的两个构成的完全集。 (待续) 完全集的应用 注:

    本文内容来自PKU2013级电子系数字逻辑电路课程小班讨论整理,感谢参与讨论的各位同学、老师和助教。


      本文关键词:数字逻辑,由笔耕文化传播整理发布。



    本文编号:287201

    资料下载
    论文发表

    本文链接:https://www.wllwen.com/wenshubaike/dxkc/287201.html


    Copyright(c)文论论文网All Rights Reserved | 网站地图 |

    版权申明:资料由用户f3750***提供,本站仅收录摘要或目录,作者需要删除请E-mail邮箱bigeng88@qq.com