关系的定义
//std::map with bool function
R = {<a,b> | a in A && b in B && bool(a,b)}
如果A == B,则称R为A上的关系
例如一个笛卡尔积
y1 | y2 | |
---|---|---|
x1 | <x1,y1> | <x1,y2> |
x2 | <x2,y1> | <x2,y2> |
x3 | <x3,y1> | <x3,y2> |
这个矩阵就是X x Y的笛卡尔积,然后定义关系R
1 | 0 |
---|---|
0 | 1 |
1 | 1 |
把对应元素取出来,R = {<x1,y1>, <x2,y2>, <x3,y1>, <x3,y2>}
记作x1Ry1, x2Ry2…
空关系
∅ \emptyset ∅是AXA的子集,故为一种关系
画成矩阵,整个矩阵就是一个NaN,既不是0也不是1,而是什么都不是。
普通的空关系
y1 | y2 | y3 | |
---|---|---|---|
x1 | NaN | NaN | NaN |
x2 | NaN | NaN | NaN |
x3 | NaN | NaN | NaN |
空集的空关系
画不出矩阵。
只要记住空集的空关系具有关系的5大性质: 自反,反自反,对称,反对称,传递性;这全部是由false->true推出来的。
全域关系
R = 全1
恒等关系 I A I_A IA
I A I_A IA = 单位矩阵
逆关系
转置矩阵,但是要写成 R − 1 R^{-1} R−1
关系的性质
自反
全自环 或 空集上的空关系(可以理解为某种程度上的自环)
I A ⊆ R I_A \subseteq R IA⊆R
反自反
无自环
对称
无单边
R = R T R = R^T R=RT,但是在本书里面逆关系用 R