使用定律和属性简化 5-var 布尔 SOP 表达式

Simplifying 5-var Boolean SOP Expression using the Laws and Properties

这个问题让我很困惑,因为我不知道我应该从哪里开始,我应该在开始时选择哪些术语?因为这种令人困惑的表达甚至不让我接受普通话,因为它毫无意义。此外,它甚至不允许我删除赞美(使用法律),因为它也没有任何意义。请帮助我,至少指导我该怎么做?我应该从哪里开始?我将不胜感激。

我用来写表达式的符号说明:

! : 非门

+ : 或门

。 (点):与门

布尔表达式:

A.!B.E + !(B.C).D.!E + !(C.D).E+!A.D。 !E + A.!(C.D).E + A.E + A.B.!E + !(A.C) + B.C.!D

我使用了在线表达式简化器,得到了以下答案:

!A + B + !C + D + E

但是上面很长的表达方式是如何在这个简短的表达方式中简化的呢?我知道法律和财产,但我不明白我应该如何开始简化长篇?我应该先看哪些条款?请任何人帮助我。

(这是对你的评论的直接回答,也是对你的主要问题的侧面回答。总之,使用不同的方法来获得所需的简化表达式。)

您有一个复杂的表达式,但只使用了 5 个逻辑变量。在这个问题中,建立一个只有 2^5 = 32 行的真值 table 会容易得多。您可以查看结果并使用它们来构建简化的等效表达式。这不使用您的原始问题所需的 "the laws and properties",但它是简化布尔表达式的标准技术。

您应该已经学会了如何在任何离散数学 class 中建立真理 table。简而言之,您创建了一个 table,其中每行中的每个元素对于 True 都是 T 或对于 FalseF。这些行包含 Ts 和 Fs 的所有可能组合。对于 5 个变量,这将使用 2^5 = 32 行。对于每一行,您将第一个值分配给 A,第二个值分配给 B,依此类推。然后计算这些值的表达式并将结果写在行尾。

这可以手工完成,但你的表情足够复杂,我们可以避免。这是打印所需 table 的 Python 3 脚本。请注意,Python 具有 product() 函数,可简化获取 Ts 和 Fs 的所有可能组合。此脚本使用 B[] 将布尔值转换为单个字符 TF.

from itertools import product

"""Make a truth table for the Boolean expression
    A.!B.E + !(B.C).D.!E + !(C.D).E+!A.D.!E + A.!(C.D).E + A.E + A.B.!E + !(A.C) + B.C.!D
"""
B = ('F', 'T')
print('A B C D E : Result')
print('- - - - - : ------')
for a, b, c, d, e in product((True, False), repeat=5):
    print(B[a], B[b], B[c], B[d], B[e], end=' : ')
    print(B[
            (a and not b and e)
            or (not (b and c) and d and not e)
            or (not (c and d) and e)
            or (not a and d and not e)
            or (a and not (c and d) and e)
            or (a and e)
            or (a and b and not e)
            or (not (a and c))
            or (b and c and not d)
    ])

结果如下:

A B C D E : Result
- - - - - : ------
T T T T T : T
T T T T F : T
T T T F T : T
T T T F F : T
T T F T T : T
T T F T F : T
T T F F T : T
T T F F F : T
T F T T T : T
T F T T F : T
T F T F T : T
T F T F F : F
T F F T T : T
T F F T F : T
T F F F T : T
T F F F F : T
F T T T T : T
F T T T F : T
F T T F T : T
F T T F F : T
F T F T T : T
F T F T F : T
F T F F T : T
F T F F F : T
F F T T T : T
F F T T F : T
F F T F T : T
F F T F F : T
F F F T T : T
F F F T F : T
F F F F T : T
F F F F F : T

我们看到结果总是 T 除了单行 T F T F F。这意味着你的表达式为真,除非 A 为真,B 为假,C 为真,D 和 E 为假。所以我们可以将您的表达式(使用您的符号)简化为

!(A.!B.C.!D.!E)

简单使用 DeMorgan 定律即可将其更改为标准形式:

!A + B + !C + D + E

这就是你想要的。