关系
关系一个结构是在<一个href="//www.parkandroid.com/wiki/sets/" class="wiki_link" title="集" target="_blank">集它对任意两个满足特定属性的对象。在这个上下文中熟悉关系的例子有7大于5,爱丽丝嫁给了鲍勃,3.<年代pan class="katex"> 比赛2<年代pan class="katex"> .对于这些语句中的每一个,集合的元素都由一条语句关联起来。
一个<一个href="//www.parkandroid.com/wiki/function-terminology/" class="wiki_link" title="函数" target="_blank">函数是一种特殊的关系,它的意义来源于关系语言。
定义
(二进制)<年代tr在g>关系 两组之间<年代pan class="katex"> 而且<年代pan class="katex"> 是笛卡尔积的子集吗<年代pan class="katex">
考虑这个定义的一种方法是把它想象成有序对对应于连接相关事物的图中的边。
这个图可以描绘成集合之间的关系<年代pan class="katex"> 和一组<年代pan class="katex"> .
一个集合的每个成员都与另一个集合的每个成员相关。从花名册的形式来看,我们的关系是
注意,像<年代pan class="katex"> 不是关系的一部分,因为我们定义的关系是来自<年代pan class="katex"> 来<年代pan class="katex">
另外,边本身连接起来也没有问题,因为一个对象总是有可能与它自己相关。考虑以下:
这个定义在描述笛卡尔平面上的实体时也非常有用,即在上的关系<年代pan class="katex">
注意:当我们有一个从一个集合到同一个集合的定义时,我们说这个关系是在这集。
上面的圆圈说明了这种关系
最后,我们添加了逻辑学家/计算机科学家对关系的定义。
一个<年代tr在g>关系 一个谓词是否具有(至少)两个任意类型的参数<年代pan class="katex"> 而且<年代pan class="katex">
虽然集合论的定义和逻辑学家的定义在抽象层面上是不同的,但实际上它们的意思是相同的。
描述圆的相同关系也可以解释为以下Haskell谓词:
1 2r::(全国矿工工会一个,情商一个)= >一个->一个->保龄球rxy=x^2+y^2= =4^2
的使用<年代pan class="katex"> 更常用来表示关系。通常,我们会说这样的话<年代pan class="katex"> 意味着<年代pan class="katex"> 有关<年代pan class="katex"> ,或者根据集合论的定义,<年代pan class="katex"> 属于<年代pan class="katex">
到目前为止,我们只讨论了两个对象之间的关系。这种关系被称为二元关系.正如您所看到的,将关系的概念扩展到
必要的关系,那里有n
涉及的对象。但是,除非另有说明,我们主要将关系的讨论限制为二元关系。
一个<一个href="//www.parkandroid.com/wiki/ideal-gas-law/" class="wiki_link" title="理想气体" target="_blank">理想气体遵循三元关系
这可以描述为下面的子集<年代pan class="katex"> 空间:
对称性,反身性和及物性
对称性、自反性和可传递性是定义在同一集合元素上的关系所具有的一些有趣的属性。
对称
一个关系<年代pan class="katex"> 在<年代pan class="katex"> 据说是<年代tr在g>对称的,如果
“is married to”是一个对称关系。爱丽丝和鲍勃结婚意味着鲍勃和爱丽丝结婚了。
“is older than”不是对称的。如果爱丽丝比鲍勃大,鲍勃就不会比爱丽丝大。
事实上,这个关系是反对称,这意味着<年代pan class="katex">
自反性
一个关系<年代pan class="katex"> 在<年代pan class="katex"> 是<年代tr在g>反射性的如果
平等是一种反身关系。一切都等于它自己。
Coprimeness不是反身性的。1是对自身的素反应。但其他整数不是。
传递性
一个关系<年代pan class="katex"> 在<年代pan class="katex"> 是<年代tr在g>传递如果
Divisiblity是传递。如果<年代pan class="katex"> 而且<年代pan class="katex"> ,然后<年代pan class="katex"> .
如果友谊是可传递的,你在Facebook上就不会有共同好友的概念。
爱丽丝和鲍勃是朋友。另外,鲍勃和卡罗尔是朋友。但爱丽丝和卡罗尔不一定是朋友。
你能想到对称但不传递的关系吗,传递但不对称的关系,对称但不反身的关系,反身和传递但不对称的关系,等等?
逆关系
让<年代pan class="katex"> 是一个二元关系。
逆关系<年代pan class="katex"> 被定义为
让<年代pan class="katex"> 是实数集上“小于”的关系,即。<年代pan class="katex">
然后<年代pan class="katex"> 是“大于”的关系。
这是因为<年代pan class="katex"> .
也称为双序<年代pan class="katex"> .
让<年代pan class="katex"> 是一个函数。
然后<年代pan class="katex"> 的逆函数是<年代pan class="katex"> .
这种表示法与逆函数表示法一致<年代pan class="katex"> .
等价关系
等价关系是那些同时具有反身、对称和传递的关系。
并行是一种等价关系。
- 对称:如果<年代pan class="katex"> ,然后<年代pan class="katex">
- 自反性:所有的线都与自身平行。
- 传递性:如果<年代pan class="katex"> 而且<年代pan class="katex"> ,然后<年代pan class="katex">
其他等价关系包括:
- 模块化的一致性
- 平等
- 在同一个房间里
- 全等的三角形。
我们定义等价类的概念如下:
的<年代tr在g>等价类的一个元素<年代pan class="katex"> 在等价关系下<年代pan class="katex"> 用<年代pan class="katex"> 是
左边的两个三角形是全等的,属于同一个等价类。另外两个三角形构成了另外两个不同的等价类。
这就是等价类的有用之处:
任何等价<年代pan class="katex"> 在一组<年代pan class="katex"> 分区<年代pan class="katex"> 转化为等价类,反过来,对应于的任意分区<年代pan class="katex"> ,存在等价关系<年代pan class="katex"> 在<年代pan class="katex">
划分的意思是把集合分解成不相交的子集,这些子集的并集就是集合本身。
考虑等价类<年代pan class="katex"> 由关系构成<年代pan class="katex"> 在<年代pan class="katex">
- 因为在自反性<年代pan class="katex"> ,所有等价类的并集为<年代pan class="katex">
- 它们是不相交的,因为<年代pan class="katex"> 而且<年代pan class="katex"> 然后<年代pan class="katex"> 根据定义和对称性,<年代pan class="katex"> .同时,<年代pan class="katex"> 通过定义。但后来<年代pan class="katex"> 传递性,所以<年代pan class="katex"> .每一个<年代pan class="katex"> 也在<年代pan class="katex"> 再通过传递性。这意味着<年代pan class="katex"> .交换<年代pan class="katex"> 而且<年代pan class="katex"> ,以同样的方式进行,我们得出结论<年代pan class="katex"> .<年代pan class="katex">
相反,对于任何划分方案,我们都可以定义<年代pan class="katex"> 作为<年代pan class="katex"> 当且仅当<年代pan class="katex"> 而且<年代pan class="katex"> 属于同一个集合。
- 反身性:所有元素都属于它们所属的集合。所以,<年代pan class="katex">
- 对称性:<年代pan class="katex"> 因为这意味着<年代pan class="katex"> 而且<年代pan class="katex"> 本质上是在同一个集合中。
- 传递性:<年代pan class="katex"> ,因为再一次<年代pan class="katex"> 都在同一个集合里。<年代pan class="katex">
排列
看到<一个href="//www.parkandroid.com/wiki/order-theory/" class="wiki_link" title="秩序理论" target="_blank">秩序理论
顺序不同于等价,因为它们(大多)是反对称的。
部分排序
(非严格)<年代tr在g>偏序是一个关系<年代pan class="katex"> 定义在一个集合上<年代pan class="katex"> 满足以下条件<年代pan class="katex"> :
- 自反性:<年代pan class="katex">
- 反对称性:<年代pan class="katex">
- 传递性:<年代pan class="katex">
在这里,我们说的非严格,因为我们允许反身性。
具有偏序的集合称为偏序集偏序集.
正整数的可除性形成偏序集。这是哈塞图,是偏序集的表示。如果你选择这个图上的任意一个数,每个数都能被它前面的数整除。
注意,并不是所有的元素对都是相关的。这就是为什么我们说顺序是偏的。
另一个不同的例子是按可达性排序的有向无环图的顶点。
为了说明这一点,<年代pan class="katex"> 而且<年代pan class="katex">
总序
我们将关系的总体概念定义如下:
一个关系<年代pan class="katex"> 定义在一个集合上<年代pan class="katex"> 是<年代tr在g>总计如果<年代pan class="katex"> ,要么<年代pan class="katex"> 或<年代pan class="katex">
总的秩序只是满足总体的部分秩序。
- 字典中按字典顺序排列的一组词
- 配备<年代pan class="katex">
- 人们站在队列中,装备着他们在队列中的位置
一套总共有多少订单<年代pan class="katex"> 元素?
关系一个结构是在<一个href="//www.parkandroid.com/wiki/sets/" class="wiki_link" title="集" target="_blank">集它对任意两个满足特定属性的对象。在这个上下文中熟悉关系的例子有7大于5,爱丽丝嫁给了鲍勃,3.<年代pan class="katex"> 比赛2<年代pan class="katex"> .对于这些语句中的每一个,集合的元素都由一条语句关联起来。
功能关系
看到<一个href="//www.parkandroid.com/wiki/function-terminology/" class="wiki_link" title="功能的术语" target="_blank">功能的术语
关系的一个特例是<一个href="//www.parkandroid.com/wiki/function-terminology/" class="wiki_link" title="功能" target="_blank">功能.
一个函数<年代pan class="katex"> 从 来 ,表示
是一种关系<年代pan class="katex"> 来<年代pan class="katex"> 这样对于每一个元素<年代pan class="katex"> (称为前置图像),则恰好存在一个<年代pan class="katex"> (称为图像),这与<年代pan class="katex"> .
而且<年代pan class="katex"> 的定义域和上域<年代pan class="katex"> 分别。
当我们说<年代pan class="katex"> ,我们的意思是<年代pan class="katex"> .一个函数的比喻描述可以是一个黑盒子或一台接受输入并返回相应输出的机器。
不是所有的关系都是函数。
例如,关系
不是一个函数,因为有多个值<年代pan class="katex"> 可能为每一个<年代pan class="katex"> .
函数的定义要求我们对每个预像都有一个图像。
这就是为什么函数的逆函数不一定是函数。例如,逆<年代pan class="katex"> 不是函数。
当一个学生第一次被介绍到函数的概念时,他倾向于认为函数是在图像上运行的算法。然而,事实并非如此。函数的概念没有可计算性的限制。
它们只是任意的映射。一个函数完全有可能是不可计算的。流行的例子包括一个函数,它可以判断程序是否停止(<一个href="//www.parkandroid.com/wiki/halting-problem/" class="wiki_link" title="停止的问题" target="_blank">停止的问题)或输出给定字符串的程序的最小长度(<一个href="//www.parkandroid.com/wiki/kolmogorov-complexity/" class="wiki_link" title="Kolmogorov复杂度" target="_blank">Kolmogorov复杂度).