离散数学 关系矩阵的布尔乘法的简便方法

求R1 R2 的复合关系R1○R2的关系矩阵时,需要用到布尔乘法,

设关系矩阵为R1  1   0   1   R2   1   0   1
                1   0   1       0   1   1
                 0   1   0      1   0   0
则根据公式运算方法为

1∧1 ∨ 0∧0 ∨ 1∧1     1∧0 ∨ 0∧1 ∨ 1∧0     1∧1 ∨ 0∧1 ∨ 1∧0

1∧1 ∨ 0∧0 ∨ 1∧1     1∧0 ∨ 0∧1 ∨ 1∧0    1∧1 ∨ 0∧1 ∨ 1∧0

0∧1 ∨ 1∧0 ∨ 0∧1     0∧0 ∨ 1∧ 1 ∨ 0∧0    0∧1∨ 1∧1 ∨ 0∧0

在计算的时候,如果两两先计算合取,最后计算析取,因为析取只要出现一个1,则可以忽略其他而得到结果为1,利用这点可以简化计算,
ex. : Line1 : 1∧1 ∨ 0∧0 ∨ 1∧1 等于 (1∧1) ∨ (0∧0) ∨ (1∧1)
很明显 强调部分 1∧1 等于1 所以结果第一行第一列为1

由此,我们可以把计算重心放在“1”上
计算结果时:
Part1:R1第一行 第 1 第 3 个数字是1

           R2:    
                   I. 第一列第 1 , 3 都是1, 所以复合关系L1R1(行1列1)是1
                  II. 第二列第 1 , 3都不是1,所以复合关系L1R2 是 0
                 III. 第三列第 1 个是1,所以复合关系L1R3 是1

Part2: R1第二行 第 1 第 3 个数字是 1

          R2: 因为“1”的位置相同,所以同上
                 

Part3:R1 第三行 第 2 个数字是 1

         R2:
              简便点讲R2只有第二列的第2个数字是1,所以L3,只有R2 是1  即 0 1 0

所以结果是

1  0  1
      1  0  1
      0  1  0
读者不难发现R1中的1 越少,则计算量简化的越多。

离散数学 关系矩阵的布尔乘法的简便方法_第1张图片
demo

像这一题的思路,则非常简单,S 的第一行第三个数字是1
R中 只有第二列第三个数字是1,所以答案第一行为 01000;
S第二行第四个数字是1,R中第三列第四个数字是1,所以答案00100;
以此类推,实际在计算过程中填充1的位置,最后补全0,也很简便。

你可能感兴趣的:(离散数学 关系矩阵的布尔乘法的简便方法)