通俗范畴论2 有向图与准范畴

2024-06-16 16:12
文章标签 范畴 有向图 与准 通俗

本文主要是介绍通俗范畴论2 有向图与准范畴,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

退一步海阔天空,在正式进入范畴论之前,我们可以重新审视一下我们是如何认识世界的,有了这个对人类认识世界过程的底层理解,可以帮助我们更好地理解范畴论。

对于人类认识世界,最神奇的一点就是这个世界居然是可以认识的,我们可以用自然语言描述它、我们可以用数学公式表示它,当然我们也可以用二维的图画描摹它,我们也可以把它看成三维的空间加一维的时间,也可以将三维空间和时间看成一体的,从而我们的世界是四维时空。

特指对象

现在我们做一个思想实验,在这个实验中,人类突然失去了语言能力,我们看到苹果,我们就本能地吃它,我们看到狮子,就本能地逃避,但是我们说不出,也认识不到苹果和狮子这两个符号。其实,我们的很多行为,都是这样的情况。比如,骑自行车,你需要练习和掌握,形成直觉和习惯,于是你就会骑自行车了,但是你可能对自行车运动的物理公式一无所知。同样,我们跑步、打篮球、游泳,也是一样,当我们做着这些行为时,我们并不是抽象思考和运算,而是依赖本能的直觉和习惯,并不依赖于语言。

现在,你要将这些直觉和习惯传递给另一个个体,怎么办呢?因为没有语言能力,其实没有什么特别好的办法,比如你想让同伴也会骑自行车,你只能不断骑,希望同伴能领会和模仿,但是同伴可能并不能会意,即使看到多次,也完全没有领会你是想让他学骑自行车。我们可以看到,个体间交流信息,必须有一个符号系统,这个符号系统双方要都能领会才行,在本能和直觉的世界,你的直觉驱使你向同伴展示骑车,而同伴的本能告诉他,你在骑车,没有别的意思,那么,你的意图就没法有效传递。

现在,让我们回到有语言的世界,我们突然发现,语言是如此重要,它是人与人沟通的桥梁和工具,而这个工具的核心是符号。比如,我们把经验中头顶最亮的部分叫做天,我们把脚踩的部分叫做地,我们把挡在前面的需要爬的土堆叫做山,把一种长者白色斑点有角的小型食草动物叫做梅花鹿,等等。于是,我们可以非常方便地描述世界,也能够愉快地和同伴交流了。

符号又是什么呢?符号就是事物的名字。我们反复观察到一个现象,给它取个名字,这就是符号。那取个名字是个什么意思呢?取个名字,就是一种映射,或者叫做对应,英文称为Mapping。比如,我说苹果这个名字,你想到了什么:

苹果 → 圆形的、红黄色的、甜的、带皮的、有果肉的…​.

在上述对应中:

  • 苹果是符号,如果没有右半部分的对应物,这个符号没有任何意义

  • 圆形的、红黄色的、甜的、带皮的、有果肉的…​.,这个右半部分,是符号的对应物,它的内涵很丰富,我们右半部分只写了一部分,他的全部内涵,一本书都写不完,如果我们需要把对苹果的描述精确到DNA特征,或分子级别的话

  • 对应是一种抽象:当我们给右半部分取一个名字时,我们浓缩或者说忽略了苹果的具体内涵,把它所有的内涵作为一个整体,以苹果这个名字代之

我们在日常生活中,因为有语境的关系,所以我们对苹果的具体含义不会造成混肴。具体说,自然语言的苹果有三个含义,泛指含义、小泛指含义和特指含义。

我们先看泛指含义,如果我们把苹果这个名字所指代的所有东西,都放到一起,那么就是世界上所有的苹果,把它们一个个地放到一起,比如放到一个很大很大的箩筐里,这个箩筐,就构成了苹果集合,苹果集合这个大箩筐,里面是世界上所有的苹果。

我们在日常生活中也使用小泛指含义,以下是一些例子:

  • 我想去买点苹果:大多数情况,指的是买某个数量/重量的一些苹果

  • 这些苹果要做成苹果派:指的是眼面前的多个苹果

最后让我们看看特指含义:

  • 把桌上的苹果递给我吃:指桌上的放着的一个具体苹果

  • 这是我吃到的最甜的苹果:指一个在我看来最甜的苹果

  • 我要吃一个苹果:指某个我未来要吃的苹果

因此,泛指含义指所有的,小泛指含义指在某个范围内的所有,特指含义指某个具体的。如果把泛指看成一个集合,那么小泛指就是泛指集合的某个子集,而特指则是泛指或小泛指中的一个具体元素。对于所有特指的东西,我们给它取个名字,叫做特指对象:

特指对象

名字对应的某个东西

下面我们取一个特指对象:苹果1,对于 苹果1 这个特指对象, 因为它是某个,因此我们可以用一个点表示它,于是我们有:

特指对象

Figure 1. 特指对象

在上图中,点和苹果1,都代表同一个特指对象。用点表示这个特指对象非常形象,它有下面三层含义:

  • 我们把特指对象画成一个点,表示它可以与世界的其他部分区分开来,即可以与其他的点(其他特指对象)和空白(世界中未取名字的部分)区分开来

  • 特指对象不同于元素,一个集合的元素之间彼此独立,我们不考虑元素间的关系,特指对象之间可以考虑关系

  • 如果名字不同,或者点不同,我们默认它们是不同的特指对象,除非特别说明多个名字或多个点是同一个特指对象的不同标记。

请看下图:

不同的特指对象

Figure 2. 不同的特指对象

在上图中,苹果1和苹果2是两个不同的特指对象,也就是说,是两个不同的苹果,除非在图中我们特别指明苹果1和苹果2是同一个苹果。

现在我们从上图反推特指对象,苹果1是一个名字,苹果2是一个名字,两个名字不同,我们没有特别说明苹果1和苹果2指同一个特指对象。因此就默认了这两个名字所代表的特指对象是可区分的(distinguishable),也就是说,是不同的。这两个特指对象哪里不同呢?也许大小不同、也许颜色不同,也许位置不同…​.,总之,苹果1指代的特指对象,和苹果2指代的特指对象,必然有某种属性,或者特征,使得我们可以断定,苹果1和苹果2不同。

特指对象间的关系

下面我们看看特指对象之间的关系,我们还是以苹果为例。止不住好奇心,我们观察了一下两个苹果的大小,发现苹果2比苹果1小,为了表示两个特指对象的这种关系,我们引入箭头,箭头的名字叫做“小于”,于是有:

Diagram

上面这个由点、箭头以及点和箭头的标记(名字)构成的图,叫做有向图。它是一种很有力的思维整理工具。这里的箭头有如下特征:

  • 箭头的首尾必须分别连接一个特指对象

  • 箭头将起点的对象映射(Mappping)到终点的对象,因此如果我们有一个箭头,那么就意味着必然有一个起点特指对象和一个终点特指对象

  • 你可以将起点特指对象看作输入,经过箭头的mapping,我们得到了终点特指对象

有向图

下面我们做下推广,把你当下想到的特指对象,放到一起,看看它们是什么关系。这是笔者得到的一幅图:

分苹果有向图

Figure 3. 分苹果有向图

这副图的含义是今天天气晴朗,我买了3个苹果,最大的给了爸爸,次大的给了妈妈,最小的给了我自己。可以看到,有向图可以较好地描述自然语言背后的结构,因此它是一种很好的整理思路的工具。在上图中:

  • 上图中的点,全部是特指对象

  • 3苹果是我买的三个苹果,一个整体,对应最大的一个、次大一个的和最小的一个苹果

  • 今天对应晴朗,今天的晴朗

  • 今天对应一个我,今天的我

  • 每个箭头都取了一个名字

  • 一个特指对象可以作为0条,1条,乃至于多条,甚至无限多条箭头的起点或终点

  • 连续的起点和终点以及它们之间的箭头,可以形成环路

有向图与MindMap

我们再看一个有向图的例子:

地球圈

Figure 4. 地球圈

请看上图的实线部分,地球包含了水圈、陆地圈和大气圈,大气圈包含了对流层和平流层,对流层里包含云。这些箭头构成了一个树型结构,因此树型结构是有向图的一种特殊形式,而我们常用的思维导图(MindMap)也是树型结构,因此MindMap是有向图的一种特殊形式。

有向图形成的网状结构,可以从多个方面反映一个系统的结构,在上图中,我们还可以看到水圈的水受太阳照耀,受热会蒸发形成某朵云,这朵云飘到陆地,受冷降雨落到了地面,在地面上汇入河流,最后河流里的水再次回归大海。因此,对于一个系统结构的全面描述,有向图要有力得多,而思维导图(MindMap)对于包含关系描述或分类描述,则是很好的分析工具。

特指对象下的有向图

如果仔细考虑分苹果有向图和地球圈有向图,您可能会有些疑问:

对于分苹果有向图,3个苹果不一定有一个最大,一个中等大,一个最小,所以挑苹果的三个箭头不一定能成立。请注意,我们这里的3个苹果是特指对象,它是特定的三个苹果,具体地说,就是我在天气晴朗的今天买的3个苹果,它们恰好一个最大,一个中等大,一个最小。

对于地球圈有向图,升起的云不一定移动到陆地,变成陆地云,因此移动箭头不一定成立。请注意,我们这里的云是特指对象,这朵云恰好就移动到了陆地。如果我们要考虑云直接在海面上受冷变成雨的情况,我们就需要再举一个特指云对象:

多个特指云对象

Figure 5. 多个特指云对象

如上图所示,我们有了云1和云2两个特指对象,分别表示两个特指云对象,一个飘向陆地,一个留在海面上。相应地,也有雨1和雨2,表示两个特指雨对象,一个落到大地上,一个落到海面上。

试想一下,如果要描述的系统有很多对象,那么我们就会有很多、很多相似的特指对象和箭头,例如上图中的云1、云2,和受热蒸发1,受热蒸发2等。一个更极端的例子是非负整数加操作,它的特指对象有无限多个,为简化起见,我们限定特指对象只有0,1,2,3,4:

整数1到4的加操作

Figure 6. 整数1到4的加操作

如果把上图扩展到所有非负整数,那么具体对象就会有无穷多个,而每一个具体对象,都有无穷多条箭头指向大于或等于它的其他非负整数,因此我们说非负整数加操作富含特指对象和箭头。

在上图中,我们还注意到,从一个特指对象出发,经过箭头,可以回到该特指对象,也就是说,特指对象可以自指。

此外,特指对象有向图表达方式比较“原始”。从上图中我们可以看到,它巨细无遗地显示了非负整数加法的结构,以至于我们无法把所有非负整数加法的特指对象有向图完整画出来。但是,相应地,这种原始性,也意味着这种表达方式的基本性。按照前述特指对象的定义,它是一个有名字的某个东西,所有特指对象的共同特征就只有两个:有一个名字,可以作为箭头的起点或终点。因为一个名字可以指代任意的某个东西,因此它可以被应用到几乎任何语境,从而箭头也可以应用到任何语境,从而得到一个有向图。而名字到底指的什么,箭头到底什么意思,则取决于该语境。

有向图与准范畴

我们用特指对象画出的有向图并不是范畴论中所说的范畴,它是范畴论中范畴的一种弱化形式,我们给它取个名字:准范畴。

准范畴

由特指对象和箭头构成的结构

一个准范畴里有若干东西,每个东西有个名字,东西之间可以用箭头连起来,箭头也有个名字,可以画成一个有向图,如此而已,仅此而已。

准范畴示例

Figure 7. 准范畴示例

上图是一个准范畴的示例,点可以用箭头相连,也可以不相连。抽象地看这个图,也就是不考虑特指对象的具体语境:

  • 我们不知道这些特指对象到底是什么,只知道它们是一些东西,并有个名字

  • 我们不知道这些箭头到底是什么,只知道它们将一个特指对象对应到了另一个特指对象,并有个名字

通过准范畴,我们距离范畴的定义,就更近了一步。

这篇关于通俗范畴论2 有向图与准范畴的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1066917

相关文章

通俗范畴论4 范畴的定义

注:由于CSDN无法显示本文章源文件的公式,因此部分下标、字母花体、箭头表示可能会不正常,请读者谅解 范畴的正式定义 上一节我们在没有引入范畴这个数学概念的情况下,直接体验了一个“苹果1”范畴,建立了一个对范畴的直观。本节我们正式学习范畴的定义和基本性质。 一个范畴(Category) C𝐶,由以下部分组成: 数据: 对象(Objects):包含若干个对象(Objects),这些

算法训练营第六十七天 | 卡码网110 字符串接龙、卡码网105 有向图的完全可达性、卡码网106 岛屿的周长

卡码网110 字符串接龙 这题一开始用的邻接表+dfs,不幸超时 #include <iostream>#include <list>#include <string>#include <vector>using namespace std;int minLen = 501;bool count(string a, string b) {int num = 0;for (int i

用通俗到业余水平的语言教你编译和打包

本文从零开始讲述编译的基本过程,希望菜鸟们能喜欢。毕竟Linux下的软件,源代码是多于二进制包的,学会了编译,再安装软件就不求别人了。所以,编译也是Linux菜鸟必修的一课。 1,安装编译工具。 $ sudo apt-get install dpkg-dev file gcc g++ libc6-dev make patch perl autoconf automake dh-ma

通俗解释resultType和resultMap的区别

【 1 对于单表而言: 注:以下都是摘抄过来的,做了让自己更能理解的版本 如果数据库返回结果的列名和要封装的实体的属性名完全一致的话用 resultType 属性 如果数据库返回结果的列名(起了别名)和要封装的实体的属性名有不一致的情况用 resultMap 属性 查询接口方法不需要改变,还是照样接收 List 作为查询的结果。 【 2 对于多表而言: 对于多表操作,无论是一

多网页登录Cookie免登通俗理解

背景,现在有A、B两个系统,其中B是乾坤框架的微前端,里面又有若干可以单独运行的系统C、D、E、F,现在的目标是,如果没有登录过其中任一系统,则需要跳转登录页登录,登录后,所有的A-F都不再需要登录,登录token有效期12h,每次访问都重新刷新12h,上面A-F的域名结尾都是abc.com如a.abc.com、b.abc.com 解决思路:利用浏览器的Cookie实现 登录页面登录后,登录前

如何通俗理解逻辑回归(Logistic Regression)

首先, 什么是逻辑回归呢? 我们先来看一下逻辑回归的公式: t = w T X + b y = s i g m o i d ( t ) s i g m o i d ( t ) = 1 1 + e − t t = w^TX+b\\ y = sigmoid(t)\\ sigmoid(t) = \frac1{1+e^{-t}} t=wTX+by=sigmoid(t)sigmoid(t)=1+e−t1​

数据和埋点的通俗解释

举一个生活的例子,让大家理解一下数据和埋点 从前,小镇里新开了一家游乐园,游乐园里有各种各样的游乐设施,过山车、激流勇进、大摆锤、主题餐厅。大家非常喜欢,刚开业不久就收获了很多游客的青睐。 运营了一段时间之后,游乐园为了让游客的游玩体验更好,决定对游乐园进行翻新装修。问题来了: 过山车的工作人员说:“过山车需要翻新,大家都更喜欢过山车。”但大摆锤的工作人员却不同意:“大摆锤需要翻新,大

意向锁通俗解释

意向锁概念 意向锁(Intention Lock)是一种数据库并发控制机制,用于协调和管理多个事务对数据库对象(如表、行等)的并发访问。它通过在数据库对象上加锁来避免事务间的冲突,确保数据的一致性和完整性。 意向锁分为三种类型: 意向共享锁(IS,Intent Shared Lock): 表示事务打算在对象上获取共享锁。意向排他锁(IX,Intent Exclusive Lock): 表示事

整理整理生产者消费者模式,用通俗的话描述

之前学习多线程问题遇到的最大的难度就是,很多;生产者消费者模式是比较经典的多线程问题,看似 不难,但实际上有很多地方值得注意的。 首先是几个问题 问题1 一共有哪些对象? 生产者与消费者是肯定有的,生产者与消费者之间还有一个缓冲区对象,用以保存生产与消费的目标,还有一个对象就是主线程对象,用来运行多个线程的。         追问:为什么要有一个缓冲区对象?         答:为

有向图的强连通算法 -- tarjan算法

(画图什么真辛苦) 强连通分量: 在有向图 G 中,若两个顶点相互可达,则称两个顶点强连通(strongly connected)。如果有向图G的每两个顶点都强连通,称G是一个强连通图。非强连通图有向图的极大强连通子图,称为强连通分量(strongly connected components)。比如上面这幅图( a, b, e ), ( d, c, h ), ( f, g ) 分