使用布尔代数化简



什么是卡诺图 (K-Map)?

卡诺图 (K-Map) 是一种图形工具,用于简化以标准形式表示的布尔表达式,以获得其最小形式。

卡诺图基本上是一个图表,由相邻的单元格或方块组成,每个单元格代表函数变量的特定组合,以和式或积式表示。

卡诺图中单元格的数量取决于布尔函数中变量的数量,即,K-map 有 2n 个相邻单元格,其中 n 是布尔表达式中变量的数量。因此,2变量卡诺图中的单元格数量为 4 (22),3变量卡诺图中的单元格数量为 8 (23),4变量卡诺图中的单元格数量为 16 (24),依此类推。

但是,我们可以对任意数量的变量使用卡诺图。但是,对于简化超过 5 个变量的布尔函数,它会变得繁琐。

现在,让我们讨论使用卡诺图简化布尔表达式的过程。

使用卡诺图简化布尔表达式的步骤

使用卡诺图简化给定布尔表达式涉及以下步骤:

步骤 1 - 根据给定布尔函数中变量的数量选择卡诺图。

步骤 2 - 识别最小项(在 SOP 形式中)或最大项(在 POS 形式中)。

步骤 3 - 对于SOP(积之和)形式,根据给定函数的最小项在卡诺图的单元格中放入 1。读取卡诺图如下:

  • 读取卡诺图中与任何其他 1 不相邻的 1。这些 1 是孤立的最小项,因此需要按原样读取,因为它们不能组合成组。
  • 读取卡诺图中仅与另一个 1 相邻的 1。将此类最小项组合成 2-方块。
  • 读取卡诺图中相邻 1 的四元组(4-方块)、八元组(8-方块)等等,即使它们有一些 1 已经在其他组中组合。唯一需要注意的是,它们必须几何地形成矩形或正方形。
  • 读取卡诺图中尚未分组的任何 1,如果可能,将它们分组到更大的正方形或矩形中。
  • 最后,获得所有组的乘积项,然后将它们加起来形成最小的 SOP 表达式。

对于POS(和之积)形式,根据给定函数的最大项在卡诺图的单元格中放入 0。读取卡诺图如下:

  • 读取卡诺图中与任何其他 0 不相邻的 0。这些 0 是孤立的最大项,因此需要按原样读取,因为它们不能组合成组。
  • 读取卡诺图中仅与另一个 0 相邻的 0。将此类最大项组合成 2-方块。
  • 读取卡诺图中相邻 0 的四元组(4-方块)、八元组(8-方块)等等,即使它们有一些 0 已经在其他组中组合。唯一需要注意的是,它们必须几何地形成矩形或正方形。
  • 读取卡诺图中尚未组合的任何 0,如果可能,将它们组合到更大的正方形或矩形中。
  • 最后,获得所有组的和项,然后将它们相乘形成最小的 POS 表达式。

让我们借助一些已解决的示例来了解使用卡诺图简化布尔表达式的过程。

示例 1

使用卡诺图简化以下 SOP 形式的 3 变量布尔函数。

$$\mathrm{F(P, \: Q, \:R) \: = \: \sum m ( 0, \: 1, \: 3, \: 5, \: 7)}$$

解答

给定布尔函数的卡诺图表示如图 1 所示。

K-Map Representation

根据以下步骤简化此卡诺图:

  • 没有孤立的 1。
  • 最小项 m1 与最小项 m3、m5 和 m7 形成一个 4-方块。将其组合并读取为 R。
  • 最小项 m0 与最小项 m1 形成一个 2-方块。将其组合并读取为 $\mathrm{\bar{P} \: \bar{Q}}$
  • 以 SOP 形式编写所有乘积项。

因此,简化的 SOP 表达式为:

$$\mathrm{F \: = \: R \: + \: \bar{P}\bar{Q}}$$

示例 2

使用卡诺图简化以下 POS 形式的 3 变量布尔函数。

$$\mathrm{F(A, \: B, \: C) \: = \: \Pi \: M(1, \: 2, \: 4, \: 6)}$$

解答

给定布尔函数的 POS 卡诺图表示如图 2 所示。

POS K-map Representation

根据以下步骤简化此 POS 卡诺图:

  • 最大项 M1 没有相邻项。因此,按原样保留它并将其读取为 $\mathrm{(A \: + \: B \: + \: \bar{C})}$.
  • 最大项 M2 只有一个相邻项 M6。因此,将最大项 M2 扩展为与最大项 M6 的 2-方块,并将 2-方块读取为 $\mathrm{(\bar{B} \: + \: C)}$。
  • 最大项 M4 也只有一个相邻项 M6。因此,将最大项 M4 扩展为与最大项 M6 的 2-方块,并将 2-方块读取为 $\mathrm{(\bar{A} \: + \: C)}$。
  • 以 POS 形式编写所有和项。

因此,简化的 POS 表达式为:

$$\mathrm{F \: = \: (A \: + \: B \: + \: \bar{C}) \: (\bar{B} \: + \: C) \: (\bar{A} \: + \: C)}$$

示例 3

简化以下 SOP 形式的 4 变量布尔函数以获得最小的 SOP 表达式。

$$\mathrm{F(A, \: B, \: C, \:D) \: = \: \sum \: m( 0,\: 1, \:3, \: 5, \: 7, \: 6, \: 10, \: 13, \: 14, \: 15)}$$

解答

给定布尔函数的 SOP 卡诺图表示如图 3 所示。

SOP K-map Representation

根据以下步骤简化此 SOP 卡诺图:

  • 没有孤立的 1。
  • 最小项 m1 有三个相邻项 m3、m5 和 m7。因此,将 m1 扩展为与最小项 m3、m5 和 m7 的 4-方块,并将 4-方块读取为 $\mathrm{\bar{A}D}$。
  • 最小项 m5 有三个相邻项 m7、m13 和 m15。将 m5 扩展为与最小项 m7、m13 和 m15 的 4-方块,并将 4-方块读取为 BD。
  • 最小项 m6 也具有三个相邻项 m7、m14 和 m15。将 m6 扩展为与最小项 m7、m14 和 m15 的 4-方块,并将 4-方块读取为 BC。
  • 最小项 m10 只有一个相邻项 m14。将 m10 扩展为与最小项 m14 的 2-方块,并将 2-方块读取为 $\mathrm{AC\bar{D}}$。
  • 最小项 m0 也只有一个相邻项 m1。将 m0 扩展为与最小项 m1 的 2-方块,并将 2-方块读取为 $\mathrm{\bar{A}\bar{B}\bar{C}}$。
  • 以 SOP 形式编写所有乘积项。

因此,简化的 SOP 表达式为:

$$\mathrm{F \: = \: \bar{A}D \: + \: BD \: + \: BC \: + \: AC\bar{D} \: + \: \bar{A}\bar{B}\bar{C}}$$

结论

通过这种方法,我们可以使用卡诺图(K-map)简化给定的布尔表达式,得到最小表达式。尝试解决以下练习题以更好地理解。

题 1 − 将以下三变量布尔函数化简为SOP形式,得到其最小表达式。

$$\mathrm{F(A, \: B, \: C) \: = \: \sum \: m(1, \: 2, \: 4, \: 5, \: 7)}$$

题 2 − 将以下四变量布尔函数化简为SOP形式,得到其最小布尔表达式。

$$\mathrm{F(A, \: B, \: C, \: D) \: = \: \sum \: m(0, \: 1, \: 2, \: 4, \: 5, \: 7, \: 8, \: 9, \: 10, \: 12, \: 14, \: 15)}$$

广告