当前位置:文档之家› 《点集拓扑》§2.4 导集,闭集,闭包

《点集拓扑》§2.4 导集,闭集,闭包

《点集拓扑》§2.4 导集,闭集,闭包
《点集拓扑》§2.4 导集,闭集,闭包

§2.4 导集,闭集,闭包

本节重点:

熟练掌握凝聚点、导集、闭集、闭包的概念;

区别一个点属于导集或闭包的概念上的不同;

掌握一个点属于导集或闭集或闭包的充要条件;

掌握用“闭集”叙述的连续映射的充要条件.

如果在一个拓扑空间中给定了一个子集,那么拓扑空间中的每一个点相对于这个子集而言“处境”各自不同,因此可以对它们进行分类处理.

定义 2.4.1设X是一个拓扑空间,A X.如果点x∈X的每一个邻域U中都

有A中异于x的点,即U∩(A-{x})≠,则称点x是集合A的一个凝聚点或极限点.集合A的所有凝聚点构成的集合称为A的导集,记作d(A).如果x∈A并且x不是A的凝聚点,即存在x的一个邻

域U使得U∩(A-{x})=,则称x为A 的一个孤立点.

即:(牢记)

在上述定义之中,凝聚点、导集、以及孤立点的定义无一例外地都依赖于它所在的拓扑空间的那个给定的拓扑.因此,当你在讨论问题时涉及了多个拓扑而又谈到某个凝聚点时,你必须明确你所谈的凝聚点是相对于哪个拓扑而言,不容许产生任何混淆.由于我们将要定义的许多概念绝大多数都是依赖于给定拓扑的,因此类似于这里谈到的问题今后几乎时时都会发生,我们不每次都作类似的注释,而请读者自己留心.

某些读者可能已经在诸如欧氏空间中接触过刚刚定义的这些概念,但绝不要以为对欧氏空间有效的性质,例如欧氏空间中凝聚点的性质,对一般的拓扑空间都有效.以下两个例子可以帮助读者澄清某些不正确的潜在印象.

例2.4.1 离散空间中集合的凝聚点和导集.

设X是一个离散空间,A是X中的一个任意子集.由于X中的每一个单点集都是开集,因此如果x∈X,则X有一个邻域{x},使得

,以上论证说明,集合A没有任何一个凝聚点,从而A的导集是空集,即d(A)=

例2.4.2 平庸空间中集合的凝聚点和导集.

设X是一个平庸空间,A是X中的一个任意子集.我们分三种情形讨论:

第1种情形:A=.这时A显然没有任何一个凝聚点,亦即

d(A)=.(可以参见定理2.4.1中第(l)条的证明.)

第2种情形:A是一个单点集,令A={}如果x∈X,x≠,点x只有惟一的一个邻域X,这

时,所以

;因此x是A的一个凝聚点,即x∈d (A).然而对于的惟一邻域X有:

所以

d(A)=X-A.

第3种情形:A包含点多于一个.请读者自己证明这时X中的每一个点都是A的凝聚点,即d(A)=X.

定理 2.4.1设X是一个拓扑空间,A X.则

(l)d()=;

(2)A B蕴涵d(A)

d(B);

(3)d(A∪B)=d(A)∪d(B);

(4)d(d(A))A∪d(A).证明(1)由于对于任何一点x∈X和点x的任何一个邻域U,

有U∩

(2)设A B.如果

这证明了d(A)d(B).

(3)根据(2),因为A,B A∪B,所以有d(A),d(B)d(A∪B),从而d(A)∪d(B)d(A∪B).

另一方面,如果

综上所述,可见(3)成立.(这是证明一个集合包含于另一个集合的另一方法:要证,只要证

即可.)

(4)设:

即(4)成立.

定义 2.4.2设X是一个拓扑空间,A X.如果A的每一个凝聚点都属于A,

即d(A)A,则称A是拓扑空间X中的一个闭集.

例如,根据例2.4.l和例2.4.2中的讨论可见,离散空间中的任何一个子集都是闭集,而平庸空间中的任何一个非空的真子集都不是闭集.

定理 2.4.2设X是一个拓扑空间,A X.则A是一个闭集,当且仅当A的补

集是一个开集.

证明必要性:设A是一个闭集

充分性:设:

即A是一个闭集.

例2.4.3 实数空间R中作为闭集的区间.

闭包概念

闭包概念 以下是写的比较科学规范的闭包求解方法,设X和Y均为关系R的属性集的子集,F 是R上的函数依赖集,若对R的任一属性集B,一旦X→B,必有B?Y,且对R的任一满足以上条件的属性集Y1 ,必有Y?Y1,此时称Y为属性集X在函数依赖集F下的闭包,记作X+。 计算关系R的属性集X的闭包的步骤如下: 第一步:设最终将成为闭包的属性集是Y,把Y初始化为X; 第二步:检查F中的每一个函数依赖A→B,如果属性集A中所有属性均在Y中,而B 中有的属性不在Y中,则将其加入到Y中; 第三步:重复第二步,直到没有属性可以添加到属性集Y中为止。最后得到的Y就是X+ 例(1):设有关系模式R(U,F),其中U={A,B,C,D,E,I},F={A→D,AB→E,BI→E,CD→I,E→C},计算(AE)+ 解: (1) 令X={AE},X(0)=AE (2)在F中寻找尚未使用过的左边是AE的子集的函数依赖,结果是: A→D,E→C;所以X(1)=X(0)DC=ACDE,显然X(1)≠X(0). (3) 在F中寻找尚未使用过的左边是ACDE的子集的函数依赖,结果是: CD→I;所以X(2)=X(1)I=ACDEI。虽然X(2)≠X(1),但F中寻找尚未使用过函数依赖的左边已经没有X(2)的子集,所以不必再计算下去,即(AE)+=ACDEI。 说白话一点:闭包就是由一个属性直接或间接推导出的所有属性的集合。 例如:f={a->b,b->c,a->d,e->f};由a可直接得到b和d,间接得到c,则a的闭包就是{a,b,c,d} 候选码的求解理论和算法 对于给定的关系R(A1,A2,…An)和函数依赖集F,可将其属性分为4类:L类仅出现在函数依赖左部的属性。 R 类仅出现在函数依赖右部的属性。 N 类在函数依赖左右两边均未出现的属性。 LR类在函数依赖左右两边均出现的属性。 定理:对于给定的关系模式R及其函数依赖集F,若X(X∈R)是L类属性,则X必为R的任一候选码的成员。 推论:对于给定的关系模式R及其函数依赖集F,若X(X∈R)是L类属性,且X+

离散数学二元关系传递性判别、闭包方法实验报告

离散数学二元关系传递性判别、闭包方法实验报告 学院:理学院班级:11信息与计算科学1班 姓名:***学号:************* 一、实验目的 1. 通过上机程序,进一步加深对二元关系传递性判别,自反闭包,对称闭包,传递闭 包的理解。 2. 掌握传递性判别,Warshall算法。 3. 学会用程序解决离散数学中的问题。 4. 增强我们编写程序的能力 二、实验内容 实验1:二元关系传递性判别 实验2:有限集上给定关系的自反、对称和传递闭包(用Warshall算法)。 三、实验环境 在microsoft visual c++实验环境下完成的,而所设计的程序也在这个环境下通过了编译,运行和测试。 四、实验原理和实现过程 实验1: #include using namespace std; void main() { intn,i,j,k; int m=0; //m是判断传递关系计数参数 cout<<"请输入矩阵的行列数n:"; cin>>n; int a[20][20]; for(i=1;i<=n;i++) { for(j=1;j<=n;j++) { cout<<"请输入a["<>a[i][j]; } } //输入R矩阵 cout<<"R的关系矩阵为:"<

} cout< using namespace std; void main() { intn,i,j; cout<<"请输入矩阵的行列数n:"; cin>>n; int a[20][20]; for(i=1;i<=n;i++) { for(j=1;j<=n;j++) { cout<<"请输入a["<>a[i][j]; } } cout<<"R的关系矩阵为:"<

离散数学关系的闭包运算

《离散数学》 实验报告 学院软件学院 专业软件工程 指导教师邹丽娜 学号10008118 姓名冯立勇 提交日期2011-12-25

实验二 关系的闭包运算 一 、实验目的 熟悉关系的闭包运算,编程实现关系闭包运算算法。 一 、实验内容 利用矩阵求解有限集上给定关系的自反、对称和传递闭包。 三. 实验过程 1. 算法分析: 在三种闭包中自反和对称闭包的求解很容易,对矩阵表示的关系,其自反闭包只要将矩阵的主对角线全部置为1就可;对称闭包则加上关系的转置矩阵(逻辑加法);传递闭包则有两种算法(二选一即可): 算法1:直接根据 n i i R R t 1 )(== 计算,过程略。 算法2:Warshall 算法(1962) 设R 的关系矩阵为M (1)令矩阵A=M (2)置i=1 (3)对所有的j ,若A[j ,i]=1,则 对于 k=1,2,…,n ,令A[j ,k]=A[j ,k]+A[i ,k] 注:此处为逻辑加,可以使用运算符|| (4) i=i+l . (5)若i ≤n ,则转到(3),否则结束. 流程图

2. 程序代码: #include void output(int s[][100]); void zifan(int s2[][100]); void duichen(int s2[][100]); void chuandi2(int s2[][100]); void chuandi1(int s2[][100]); void aa(); int s[100][100],z; int d,n ,i,j; int main(){aa();return 0;} void aa() { printf("请输入矩阵的行数(必须小于10)\n "); scanf("%d",&n); printf("请输入矩阵的列数(必须小于10)\n "); scanf("%d",&d); printf("请输入关系矩阵\n"); for(i=0;i

试验二关系闭包计算

实验二关系闭包计算 实 验 报 告 学院:计算机科学与软件学院指导老师:石陆魁 班级:116班 姓名:薛捷星 学号:112547

一、实验目的 熟悉Warshall算法,掌握求关系的自反闭包、对称闭包和传递闭包的方法。 二、实验内容与要求 定义6 设R是A上的二元关系,R的自反(对称、传递)闭包是关系R1,则 ①R1是自反的(对称的、传递的) ②R?R1 ③对任何自反的(对称的、传递的)关系R2,若R?R2,则R1?R2。 R的自反、对称和传递闭包分别记为r(R)、s(R)和t(R)。 定理1 令R?A?A,则 ①r(R)=R∪IA ②s(R)=R∪R-1 ③t(R)=R∪R2∪R3… Warshall算法:设R是n个元素集合上的二元关系,M是R的关系矩阵; (1)置新矩阵A:=M (2)置i:=1; (3)for j=1 to n do if A[j,i]=1 then do for k=1 to n do A[j,k]:=A[j,k]+A[i,k] (4)i=i+1; (5)if i<=n then to (3) else stop 本实验要求从键盘输入一个关系的关系矩阵,计算其自反闭包、对称闭包和传递闭包,计算传递闭包时使用Warshall算法。用C语言或MA TLAB实现。 三、源程序 #include #define n 4 main()

{ int i,j,k,a[n][n],I[n][n]={1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1},b[n][n],r[n][n]; printf("输入R的关系矩阵:\n"); for(i=0;i

相关主题
文本预览
相关文档 最新文档