📜  使用Karnaugh Map简化布尔表达式

📅  最后修改于: 2020-12-30 04:48:01             🧑  作者: Mango

使用Karnaugh Map简化布尔表达式

众所周知,K-map采用SOP和POS两种形式。因此,有两种可能的K-map解决方案,即minterm和maxterm解决方案。让我们开始学习如何找到K-map的最小项和最大项解。

K图的最小项解

有以下步骤可找到最小项解或K-map:

第1步:

首先,我们以规范形式定义给定表达式。

第2步:

接下来,我们通过向K-map单元格中的每个乘积项输入1来创建K-map,并用零填充其余单元格。

第三步:

接下来,我们通过考虑K-map中的每个分组来形成分组。

请注意,每个组应具有最大数量的“一个”。组不能包含空单元格或包含0的单元格。

在一个组中,总数为2 n 。在此,n = 0、1、2,… n。

示例: 2 0 = 1、2 1 = 2、2 2 = 4、2 3 = 8或2 4 = 16。

我们按降序将数字分组。首先,我们必须尝试使八人一组,然后是四个,然后是两个,最后是1。

以水平或垂直的方式,一组组成矩形和正方形。我们无法在K地图中执行对角线分组。

仅当增加组的大小时,一组中的元素也可以用于不同的组中。

位于表格边缘的元素被认为是相邻的。因此,我们可以将这些元素分组。

只有当他们帮助增加团体人数时,我们才能考虑“无关条件”。否则,“无关”元素将被丢弃。

步骤4:

在下一步中,我们找到每个组的布尔表达式。通过查看单元格标记中的公共变量,我们根据输入变量来定义组。在下面的示例中,总共有两个组,即组1和组2,其中两个和一个为“ 1”。

在第一组中,那些存在于A的值为0的行中。因此,它们包含变量A的补数。在相邻的列中存在剩余的两个“ 1”。在这些列中,只有共同的B项是与A'B组相对应的乘积项。就像组2中的组1一样,一行出现在其中A的值为1的行中。因此,此列的对应变量为B'C'。该组的总产品术语为AB'C'。

步骤5:

最后,我们找到输出的布尔表达式。为了以SOP形式找到简化的布尔表达式,我们将所有单个组的乘积项组合在一起。因此,上述k-map的简化表达式如下:

让我们以2变量,3变量,4变量和5变量K映射示例为例。

范例1:Y = A'B'+ A'B + AB

简化表达式:Y = A'+ B

示例2:Y = A'B'C'+ A'BC'+ AB'C'+ AB'C + ABC'+ ABC

简化表达式:Y = A + C'

示例3:Y = A'B'C'D'+ A'B'CD'+ A'BCD'+ A'BCD + AB'C'D'+ ABCD'+ ABCD

简化表达式:Y = BD + B'D'

K-Map的Maxterm解决方案

使用K-map查找简化的maxterm解与查找minterm解相同。 maxterm解决方案中有一些小的更改,如下所示:

  • 我们将在每个总和项中输入0的值到K-map单元格中,以填充K-map,然后在其余单元格中填充一个。
  • 我们将使“零”组而不是“一个”。
  • 现在,我们将每个组的布尔表达式定义为和项。
  • 最后,要找到POS形式的简化布尔表达式,我们将合并所有单个组的和项。

让我们以2变量,3变量,4变量和5变量K映射示例为例

范例1:Y =(A'+ B')+(A'+ B)+(A + B)

简化表达:A'B

范例2:Y =(A + B + C')+(A + B'+ C')+(A'+ B'+ C)+(A'+ B'+ C')

简化表达式:Y =(A + C')。(A'+ B')

例3:F(A,B,C,D)=π(3,5,7,8,10,11,12,13)

简化表达式:Y =(A + C')。(A'+ B')