二元关系的闭包运算
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
二元关系的闭包运算
关键词:二元关系关系矩阵自反闭包对称闭包传递闭包 Warshall算法三
重循环
<<离散数学>>是现代数学的一个重要分支,也是计算机科学技术,电子信息技术,生物技术等的核心基础课程.二元关系是离散数学中重要内容。世界上的事物都在一定范围内以某种方式互相联系,例如天体之间可以用的是同一星系来划分,人们之间可以用是否有共同的祖先来定血缘.类似的数学或者计算机科学中的研究对象也以各种不同形式互相联系着,例如整数之间以大小,整除或同余关系互相联系着,命题公式之间以是否具有相同的主合取范式相联系, 程序中两个变量可以是否占有同一内存地址相联系。总之,事物之间总可以根据需要确定相应的关系.从数学的角度来看,这类联系就是某个集合中元素之间存在的关系。一个二元关系可能具有某种性质,也可能不具有这种性质。关系闭包就是使一个二元关系变成具有指定性质的关系,并且还要满足最小条件。
Warshall算法的基本思想
对每个结点(从第一列开始),找出所有具有到此结点的有向边的结点(即该列中元素为1的所在行的结点),再将这些结点所在行同该结点所在行进行逻辑加后作为这些结点所在的新行(添加新的有向边)(反映了如果这些结点没有到其它结点的有向边,但有到该结点的有向边,再通过该结点间接到达其它结点,根据传递闭包的定义,这些结点就必然有一条有向边到达其它结点。)
▪设R是集合上的二元关系,Mr是R的关系矩阵
▪(1)置新矩阵A:=Mr
▪(2)置(列) j:=1
▪(3) 对所有的i(1≤i≤n)
如A(i,j)=1,则对k=1,2,…,n
A(i,k):=A(i,k) A(j,k)
▪(即将A的第i行与A的第j行进行逻辑加后送回A的第i行)
▪(4)j:=j+1
▪(5)如j≤n转(3),否则停止。
主要实验流程图
程序开始
输入矩阵的行
数和列数
输入矩阵各元素
的值
输入是否
正确? 计算出传递闭包关系矩
阵
打印传递闭包的关系矩阵
结束
正
确
不正确
试验结果截图展示
1、启动程序
2、输入矩阵并得到结果
实验总结
Warshall算法给我们提供了一个求二元关系传递闭包的高效方法。综合现代计算机技术,利用Warshall算法我们可轻松的求出一个二元关系的传递闭包。
参考文献:
【1】离散数学(第三版)西安电子科技大学出版社方世昌 2009年1月
【2】C程序设计(第三版) 清华大学出版社谭浩强 2012年1月
【3】 C#高级编程(第六版)清华大学出版社(美)内格尔(Nagel.C)等著;
翻译;黄静 2008年10月
组员评分:
徐海燕:——董晓娟
董晓娟:——徐海燕工作任务分配:
董晓娟:徐海燕: