无需穷举真值表,求解阈值逻辑单元(TLU)对应的布尔函数
首先明确这个TLU的计算规则:
输入 (x_1, x_2, x_3, x_4, x_5) 取值为0或1,计算加权和 (S = 1.1x_1 + 3.1x_2 -1x_3 -2x_4 +0.5x_5),当 (S > 1) 时输出为真(1),否则为假(0)。
我们可以分两种核心情况分析:输入(x_2=1) 和 输入(x_2=0),因为(x_2)的权重(3.1)是所有输入中最大的,对结果影响最显著。
情况1:(x_2=1)
此时加权和的基础值为3.1,剩余项为 (1.1x_1 -x_3 -2x_4 +0.5x_5),整体需要满足:
[3.1 + (1.1x_1 -x_3 -2x_4 +0.5x_5) > 1]
简化后等价于:
[1.1x_1 -x_3 -2x_4 +0.5x_5 > -2.1]
我们只需要找不满足这个条件的例外情况:
当(x_3=1)且(x_4=1)时,剩余项变为 (1.1x_1 -3 +0.5x_5)。此时即使(x_1=0)、(x_5=1),剩余项为(-3+0.5=-2.5),小于-2.1;只有当(x_1=1)时,剩余项最小为(1.1-3=-1.9),大于-2.1。
所以(x_2=1)时,输出为真的条件是:
(x_2 \land (x_1 \lor \neg x_3 \lor \neg x_4))
(翻译过来:x₂为真,且x₁为真,或者x₃为假,或者x₄为假)
情况2:(x_2=0)
此时加权和为 (1.1x_1 -x_3 -2x_4 +0.5x_5),需要满足 (S>1)。
分析所有可能的输入组合:
- 若(x_4=1),加权和至少为(-2)(其他输入为0),不可能大于1;
- 若(x_3=1)且(x_4=0),加权和最大为(1.1+0.5-1=0.6),也小于1;
- 只有当(x_1=1)、(x_3=0)、(x_4=0)时,加权和为(1.1+0.5x_5),最小为1.1(x₅=0),大于1,输出为真。
所以(x_2=0)时,输出为真的条件是:
(\neg x_2 \land x_1 \land \neg x_3 \land \neg x_4)
合并布尔函数
将两种情况合并,得到完整的布尔函数:
[F(x_1,x_2,x_3,x_4,x_5) = \left[x_2 \land (x_1 \lor \neg x_3 \lor \neg x_4)\right] \lor \left[\neg x_2 \land x_1 \land \neg x_3 \land \neg x_4\right]]
我们还可以进一步简化这个表达式:
[F(x_1,x_2,x_3,x_4,x_5) = x_2 \land \neg(x_3 \land x_4) \lor x_1 \land (x_2 \lor (\neg x_3 \land \neg x_4))]
验证例外情况
比如输入是(x_1=0,x_2=1,x_3=1,x_4=1,x_5=0),计算加权和(S=3.1-1-2=0.1),不大于1,输出为假,符合我们的函数(此时(x_2=1)但(x_1=0)、(x_3=1)、(x_4=1),不满足(x_1 \lor \neg x_3 \lor \neg x_4),所以输出假)。
内容的提问来源于stack exchange,提问作者Marso

