关系
1.1序偶及有序n元组
有两个元素x和y按一定得次序排列组成的有序序列称为序偶或有序对,记作<x,y>(与集合{x,y}不同);
1.2笛卡尔积
设A和B为集合,称集合{<a,b>|a属于AΛb属于B}为A和B的笛卡尔积,记作AxB。当A=B时,记为A2。
Ax(BυC)=(AxB)υ(AxC)
Ax(B∩C)=(AxB)∩(AxC)
2.1关系
任一序偶的集合确定了一个二元关系R,R中的任一序偶<a,b>可记作<a,b>属于R或aRb。不在R中的任一序偶<a,b>可记作<a,b>不属于R或aR非b。若aRb,我们说a和
b具有关系R
令R为二元关系,DR={x|至少存在一个y使得(xRy)}为定义域,RR={y|至少存在一个x使得(xRy)}为值域。域记为FR=DRυRR。
IA是A上的二元关系,且满足IA={<x,x>|x属于A},则称IA为A上的恒等关系。
DRυS=DRυDS
DR∩S属于DR∩DS
DR-DS属于DR-S
RRυS=RRυRS
RR∩S属于RR∩DS
RR-RS属于RR-S
2.2关系的性质
设R属于AxA,则:
若对于所有的x(x属于A -> xRx),称R是自反的
若对于所有的x(x属于A -> 非(xRx)),称R是反自反的
若对于所有的x,所有的y(x,y属于A且xRy -> yRx),称R是对称的
若对于所有的x,所有的y(x,y属于A且xRy -> 非(yRx)),称R是非对称的
若对于所有的x,所有的y(x,y属于A且(xRy且x不等于y)-> 非(yRx)),称R是反对称的,比非对称多一个条件而已
若对于所有的x,所有的y,所有的z(x,y,z属于A且xRy且yRz -> xRz),称R是传递的
若对于所有的x,所有的y(x,y属于A且x不等于y -> (xRy) ν (yRx)),称R是连通的
若对于所有的x,所有的y(x,y属于A -> (xRy) ν (yRx)),称R是强连通的
2.3关系的闭包
对给定的关系R和一种性质P,包含R且满足性质P的最小关系称为R对于P的闭包,记作P(R)
设R是非空集合A上的二元关系,则
(1)R的自反闭包r(R) = R并上IA
(2)R的对称闭包s(R) = R并上R的逆
(3)R的传递闭包t(R) = Ri求并(i从1到...),直到t(R)不变为止
Warshall算法求传递闭包:
思路:要求矩阵M的传递闭包
(1)置新矩阵A=M;
(2)i=1;(i表示列)
(3)对所有j,如果A[j,i]=1,则对k=1,2,...,n,A[j,k]=A[j,k]|A[i,k];
(4)i++;
(5)如果i<=n,则转到步骤(3),否则停止。
1 void warshall(int a[][], int n) 2 { 3 int i, j, k; 4 for (i = 1; i <= n; i++) 5 for (j = 1; j <= n; j++) 6 { 7 if (i != j) 8 { 9 if (a[j][i]) 10 { 11 for (k = 1; k <= n; k++) 12 a[j][k] = a[j][k] | a[i][k]; 13 } 14 } 15 } 16 }