逻辑函数的代数化简法
根据逻辑函数表达式,可以画出相应的逻辑图。然而,直接根据某种逻辑要求归纳出来的逻辑函数表达式往往不是最简的形式,这就需要对逻辑函数表达式进行化简。利用化简后的逻辑函数表达式构成逻辑电路时,可以节省器件,降低成本,提高数字系统的可靠性。
1. 逻辑函数的最简与 - 或表达式
一个逻辑函数可以有多种不同的逻辑表达式,例如有一个逻辑函数表达式为
In[46]:= L = A \[And] F \[Or] \[Not] F \[And] G
Out[46]= (A && F) || (! F && G)
式中 A && F 和 ! F &&G 两项都是由与(逻辑乘)运算把变量连接起来的,故称为与项(乘积项),然后由或运算将这两个与项连接起来,这种类型的表达式称为与 - 或逻辑表达式,或称为逻辑函数表达式的“积之和”形式。
在若干个逻辑关系相同的与 - 或表达式中,将其中包括的与项数最少,且每个与项中变量数最少的表达式称为最简与 - 或表达式。
一个与 - 或表达式易于转换为其他类型的函数式,例如,上面的与 - 或表达式经过变换,可以得到其与非 - 与非表达式、或 - 与表达式、或非 - 或非表达式以及与 - 或 - 非表达式等。
与 - 或表达式
1 In[20]:= A \[And] F \[Or] \[Not] F \[And] G 2 3 Out[20]= (A && F) || (! F && G)
与非 - 与非表达式
1 In[17]:= \[Not] (\[Not] (A \[And] F) \[And] \[Not] (\[Not] F \[And] G)) 2 3 Out[17]= ! (! (A && F) && ! (! F && G)) 4 5 In[30]:= BooleanConvert[! (! (A && F) && ! (! F && G))] 6 7 Out[30]= (A && F) || (! F && G)
或 - 与表达式
1 In[21]:= (A \[Or] \[Not] F) \[And] (F \[Or] G) 2 3 Out[21]= (A || ! F) && (F || G) 4 5 In[24]:= BooleanConvert[(A || ! F) && (F || G)] 6 7 Out[24]= (A && F) || (! F && G)
或非 - 或非表达式
1 In[25]:= \[Not] (\[Not] (A \[Or] \[Not] F) \[Or] \[Not] (F \[Or] G)) 2 3 Out[25]= ! (! (A || ! F) || ! (F || G)) 4 5 In[27]:= BooleanConvert[! (! (A || ! F) || ! (F || G))] 6 7 Out[27]= (A && F) || (! F && G)
与 - 或非表达式
1 In[28]:= \[Not] (\[Not] A \[And] F \[Or] \[Not] F \[And] \[Not] G) 2 3 Out[28]= ! ((! A && F) || (! F && ! G)) 4 5 In[29]:= BooleanConvert[! ((! A && F) || (! F && ! G))] 6 7 Out[29]= (A && F) || (! F && G)
逻辑函数化简就是要消去与 - 或表达式中多余的乘积项和每个乘积项中多余的变量,以得到逻辑函数的最简与 - 或表达式。有了最简与 - 或表达式以后,再用公式变换就可以得到其他类型的函数式,所以下面着重讨论与 - 或表达式的化简。
2. 逻辑函数的化简方法
逻辑函数的化简方法,常用的有代数法和卡诺图法等。代数法就是运用逻辑代数的基本定律和恒等式对逻辑函数进行化简,这种方法需要一些技巧,没有固定的步骤。