规范形式 (布尔代数)

布尔代数中,所有由标准逻辑运算符组成的布尔函数,都可以表示为布尔规范形式。规范形式分为“极小项”形式,及其对偶,“极大项”形式。

极小项

我们首先定义极小项(minterm)。对于一个有 n 个变量的布尔函数,极小项是由逻辑与运算符将这 n 个变量(或其逻辑否定)不重复地组合而成的逻辑表达式。

例如:

 
 

这两项中每个变量都出现,且仅只出现一次。三个变量间都仅使用逻辑与相连,因此这两项都符合极小项的定义。

 个变量有 个可能的极小项—这是因为在极小项表达式中,一个变量要么是其自身,要么是其逻辑否定形式— 个变量中的每个都有两种选择。

索引极小项

为了方便书写极小项,我们按照其中的每个变量是否含有逻辑非,为每一个可能的极小项指派一个索引值。

首先确保每个极小项中的变量都按照同样的次序排列(通常按拉丁字母序),从左到右,每个变量对应一个二进制位。一个带逻辑非的项,如 ,对应的二进制位为 0,而一个不带逻辑非的项,如 ,对应的二进制位为 1。例如,  对应的二进制序列是( ),因此,其索引是数字 6,这个极小项表达式写作  。与之相似,三个变量的   ),而 则是  )。

函数等价

因为极小项由各变量的逻辑与组合而成,所以只有当所有含有逻辑非的变量取值都为0,且所有不含逻辑非的变量取值都为 1,该极小项才会输出 1。例如,极小项 ,只在 ac 都为 1 而 b 为 0 时输出 1。

如果你给出一个逻辑函数的真值表,就可以把这个函数写为"积之和"(由极小项OR起来的序列)。像这样组合出来的布尔表达式,其中任何一个极小项输出 1 时也输出 1,对其余输入其输出都是 0。由于每个极小项都只对一个输入输出 1,所以这个组合可以唯一地表示任何布尔函数。这是析取范式的特殊形式。例如,如果给出真值表

例:布尔函数 的真值表
     
0 0 1
0 1 0
1 0 1
1 1 0

观察到 的输出仅在第一行和第三行为 1,所以我们可以把 写为极小项  之和。

验证:

 

通过直接计算,结果和这个函数的真值表是一样的。

布尔函数表示为极小项之和的形式,叫做其主析取范式极小项规范形式

极大项

极大项是极小项的对偶。其中各变量(或其逻辑否定)由逻辑或运算符不重复地组合而成。 例如:

 
 

 个变量同样也有 个可能的极大项。

索引极大项

极大项的索引与极小项的相反:含逻辑非的变量对应的二进制位为 1,不含的对应二进制位为 0。例如,极大项 的索引为 6( ),记作 。同样,三个变量的    

对偶化

可以轻易的使用德·摩根定律验证,极小项的补是同索引的极大项。例如

 
 

函数等价

明显的,极大项 n 现在对这个逻辑函数的第 n+1 个唯一的函数输入给出值。例如,极大项 5,a'+b+c',只在 ac 都为真而 b 为假的时候是假的 - 输入为 a = 1, b = 0, c = 1 得到 0。

如果你给出一个逻辑函数的真值表,就可以把这个函数写为“和之积”(由极大项AND起来的序列)。它是合取范式的特殊形式。例如,如果给出真值表

例:布尔函数 的真值表
     
0 0 1
0 1 0
1 0 1
1 1 0

观察到 的输出仅在第二行和第四行为 0,所以我们可以把 写为极大项  之积。

验证:

 

通过直接计算,结果和这个函数的真值表是一样的。

布尔函数表示为极大项之积的形式,叫做其主合取范式极大项规范形式

结果总结

所有逻辑函数都可以用“极小项之和”或“极大项之积”的规范形式表达。除了可以用直接和简单的代数形式表达复杂的逻辑函数之外,规范形式还允许把这些函数强力分析成最简化的形式,这对于数字电路的最小化是非常重要的。

参见