集合论中关系矩阵的布尔乘法运算与优化
一、关系矩阵布尔乘法运算法则:
矩阵的布尔乘法与普通的矩阵乘法的计算过程是一样的,只是使用数理逻辑中的合取替代普通的乘法,使用析取替代普通的加法。下图的运算公式就不多说了,反正我没看懂,用通俗一点的话来描述,可能就是这么大一坨了:
① 第1个矩阵中第1行的各元素与第2个矩阵中第1列的各元素对应合取的析取,作为乘积矩阵第1行第1列元素
② 第1个矩阵中第1行的各元素与第2个矩阵中第2列的各元素对应合取的析取,作为乘积矩阵第1行第2列元素
③ 第1个矩阵中第1行的各元素与第2个矩阵中第3列的各元素对应合取的析取,作为乘积矩阵第1行第3列元素
④ 第1个矩阵中第2行的各元素与第2个矩阵中第1列的各元素对应合取的析取,作为乘积矩阵第2行第1列元素
⑤ 第1个矩阵中第2行的各元素与第2个矩阵中第2列的各元素对应合取的析取,作为乘积矩阵第2行第2列元素
⑥ 第1个矩阵中第2行的各元素与第2个矩阵中第3列的各元素对应合取的析取,作为乘积矩阵第2行第3列元素
⑦ 第1个矩阵中第3行的各元素与第2个矩阵中第1列的各元素对应合取的析取,作为乘积矩阵第3行第1列元素
⑧ 第1个矩阵中第3行的各元素与第2个矩阵中第2列的各元素对应合取的析取,作为乘积矩阵第3行第2列元素
⑨ 第1个矩阵中第3行的各元素与第2个矩阵中第3列的各元素对应合取的析取,作为乘积矩阵第3行第3列元素
...
二、例题分析
求两个关系R与S的复合关系R〇S的关系矩阵M时,需要用到布尔乘法。
设关系R与S的关系矩阵Mr与Ms是:
Mr = 1 0 1 Ms = 1 0 1
1 0 0 0 1 1
0 1 0 1 0 0
则所求关系矩阵M的运算如下:
M = 1∧1∨0∧0∨1∧1 1∧0∨0∧1∨1∧0 1∧1∨0∧1∨1∧0 /* ∧合取运算 */
1∧1∨0∧0∨0∧1 1∧0∨0∧1∨0∧0 1∧1∨0∧1∨0∧0 /* ∨析取运算 */
0∧1∨1∧0∨0∧1 0∧0∨1∧1∨0∧0 0∧1∨1∧1∨0∧0
运算结果是:
M = 1 0 1
1 0 1
0 1 1
三、关系矩阵布尔乘运算的优化
在计算的时候,可以先计算合取,再计算析取,因为析取运算只要其中一项为1,则可以忽略其他而得到结果为1,以例题矩阵第一行的运算为例,运算顺序可以更改为:
M = (1∧1)∨(0∧0)∨(1∧1) (1∧0)∨(0∧1)∨(1∧0) (1∧1)∨(0∧1)∨(1∧0)
内层合取式中只要出现一个1∧1的运算,则外层析取式的结果必定为1,否则必定为0,以此类推!利用这点可以大大简化矩阵布尔积运算的复杂度!