📜  布尔函数的最小化

📅  最后修改于: 2021-09-28 10:03:33             🧑  作者: Mango

正如“布尔函数的表示”中所讨论的,每个布尔函数都可以表示为最小项的总和或最大项的乘积。由于在这样的表达字面量的数量通常很高,而且数字逻辑门实现布尔函数的复杂性直接关系到从该函数被实现代数表达式的复杂性,它优选的是具有最代数表达式的简化形式。
简化布尔函数的代数表达式的过程称为最小化。最小化很重要,因为它降低了相关电路的成本和复杂性。
例如,函数F=x^\prime y^\prime z + x^\prime yz + xy^\prime可以最小化为F=x^\prime z + xy^\prime .与上述表达式相关的电路是——

从上图可以清楚地看出,该表达式的最小化版本需要较少数量的逻辑门,并且还大大降低了电路的复杂性。因此,最小化对于找到布尔函数的最经济等价表示很重要。
可以使用代数操作或 K-Map 方法进行最小化。每种方法都有自己的优点和缺点。

使用代数操作的最小化 –

这种方法是用于最小化的所有方法中最简单的。它适用于涉及 4 或 5 个变量的中型表达式。代数运算是一种手动方法,因此容易出现人为错误。
代数运算中使用的普通定律:

  1. \:A + A^\prime = 1
  2. \:A + A^\prime B = A + B
  3. \:A + AB = A
  • 示例 1 –使用代数运算最小化以下布尔函数
    F=ABC^\prime D^\prime + ABC^\prime D + AB^\prime C^\prime D + ABCD + AB^\prime CD + ABCD^\prime \\        + AB^\prime CD^\prime
  • 解决方案 –属性是指上面提到的三个普通定律。

         \begin{align*} F=\:&ABC^\prime(D^\prime + D) +AB^\prime C^\prime D + ACD(B + B^\prime) &&\\ &\:+ ACD^\prime(B + B^\prime)&&\\ =\:&ABC^\prime +AB^\prime C^\prime D + ACD +ACD^\prime && \text{Using Property-1}\\ =\:&ABC^\prime +AB^\prime C^\prime D + AC(D +D^\prime )&&\\ =\:&ABC^\prime +AB^\prime C^\prime D + AC && \text{Using Property-1}\\ =\:&A(BC^\prime +C)+AB^\prime C^\prime D &&\\ =\:&A(B+C)+AB^\prime C^\prime D&& \text{Using Property-2}\\ =\:&AB +AC+AB^\prime C^\prime D &&\\ =\:&AB + AC + A C^\prime D && \text{Using Property-2}\\ =\:&AB + AC + AD && \text{Using Property-2}\\ \end{align*}

使用 K-Map 最小化 –

代数操作方法是乏味和麻烦的。 K-Map 方法速度更快,可用于求解最多 5 个变量的布尔函数。请参阅此链接以了解有关 K-Map 的更多信息。

  • 示例 2 –考虑示例 1 中的相同表达式,并使用 K-Map 将其最小化。
  • 解决方案 –以下是给定表达式的 4 变量 K-Map。

    上图突出显示了绿色、红色和蓝色的主要含义。
    绿色的横跨整个第三排,这给了我们—— AB
    红色的跨越 4 个方格,这给了我们—— AD
    蓝色的跨越 4 个方格,这给了我们—— AC
    所以,最小化的布尔表达式是- AB+AC+AD

GATE CS 角问题

练习以下问题将帮助您测试您的知识。所有问题都在前几年的 GATE 或 GATE 模拟测试中提出。强烈建议您练习它们。

1. GATE CS 2012,问题 30
2. GATE CS 2007,问题 32
3. GATE CS 2014 Set-3,问题 17
4. GATE CS 2005,问题 18
5. GATE CS 2004,问题 17
6. GATE CS 2003,问题 45
7. GATE CS 2002,问题 12

参考-

K-Map – 维基百科
数字设计,第 5 版,Morris Mano 和 Michael Ciletti