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

news2024/11/23 15:51:54

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

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

特指对象

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

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

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

符号又是什么呢?符号就是事物的名字。我们反复观察到一个现象,给它取个名字,这就是符号。那取个名字是个什么意思呢?取个名字,就是一种映射,或者叫做对应,英文称为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. 准范畴示例

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

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1828344.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【SpringBoot】SpringBoot:实现文件上传和下载功能

文章目录 引言项目初始化添加依赖 配置文件存储位置实现文件上传功能创建文件上传控制器创建上传页面 实现文件下载功能创建文件下载控制器 安全性和最佳实践文件大小限制文件类型验证文件名和路径验证文件下载时的安全性 测试与部署示例:编写单元测试 部署结论 引言…

C++的异常捕获

目录 C语言的异常处理方式 C的异常处理方式 异常的抛出与捕获 抛出与捕获原则 自定义异常体系 异常安全 异常规范 异常的优缺点 优点 缺点 C语言的异常处理方式 1、终止程序 常见形式:assert 缺陷:太过强硬,如果发生内存错误&#…

文心一言 VS 讯飞星火 VS chatgpt (282)-- 算法导论20.4 3题

三、在 CONNECTED-COMPONENTS 作用于一个有 k 个连通分量的无向图 G(V,E) 的过程中,FIND-SET 需要调用多少次? UNION 需要调用多少次?用 |V| 、 |E| 和 k 来表示你的答案。如果要写代码,请用go语言。 文心一言&#x…

【Java】过滤器/拦截器

文章目录 两者区别request链路全过程 在实际开发中,过滤器和拦截器都是经常使用的技术,但一被提及到其区别时,整个人就愣住了,好像没有认真地对两者进行区别和总结,这两者之间也确实很容易混淆,因此结合了很…

C++ 54 之 继承中同名的静态成员处理

#include <iostream> using namespace std;// 父类 class Base07{ public:static int m_a; // 静态成员&#xff0c;类内定义static void fun(){cout << "Base中的fun"<< endl;}static void fun(int a){cout << "Base中的fun(int a)&qu…

53. QT插件开发--插件(动态库so)的调用与加载

1. 说明 在使用QT进行插件库的开发之后,还需要将这个插件库程序生成的so动态链接库加载到主程序框架中进行使用,才能达到主程序的模块化开发的效果。在前一篇文章插件创建中介绍了如何在QT中开发插件库,并提供外部接口调用。本篇博客的主要作用是模拟在主程序框架中加载动态…

EasyRecovery2024数据恢复神器#电脑必备良品

EasyRecovery数据恢复软件&#xff0c;让你的数据重见天日&#xff01; 大家好&#xff01;今天我要给大家种草一个非常实用的软件——EasyRecovery数据恢复软件&#xff01;你是不是也曾经遇到过不小心删除了重要的文件&#xff0c;或者电脑突然崩溃导致数据丢失的尴尬情况呢&…

element-ui input输入框和多行文字输入框字体不一样

页面中未作样式修改&#xff0c;但是在项目中使用element-ui input输入框和多行文字输入框字体不一样&#xff0c;如下图所示&#xff1a; 这是因为字体不一致引起的&#xff0c;如果想要为Element UI的输入框设置特定的字体&#xff0c;你可以在你的样式表中添加以下CSS代码…

快速UDP网络连接之QUIC协议介绍

文章目录 一、QUIC协议历史1.1 问题&#xff1a;QUIC为什么在应用层实现1.2 QUIC协议相关术语1.3 QUIC和TCP对比1.4 QUIC报文格式1.4.1 QUIC报文格式-Stream帧11.4.2 QUIC报文格式-Stream帧2 二、QUIC的特点2.1 连接建立低时延&#xff0c;2.2 多路复用流复用-HTTP1.1流复用-HT…

SpringBoot整合H2数据库并将其打包成jar包、转换成exe文件二(补充)

SpringBoot整合H2数据库并将其打包成jar包、转换成exe文件二&#xff08;补充&#xff09; 如果你想在cmd命令窗口内看到程序运行&#xff0c;即点开弹出运行窗口&#xff0c;关闭时exe自动关闭。 需要再launch4j上进行如下操作&#xff1a; 这样转换好的exe就可以有控制台了…

springboot + Vue前后端项目(第十六记)

项目实战第十六记 写在前面1 第一个bug1.1 完整的Role.vue 2 第二个bug2.1 修改路由router下面的index.js 总结写在最后 写在前面 发现bug&#xff0c;修复bug 1 第一个bug 分配菜单时未加入父id&#xff0c;导致分配菜单失效 <!-- :check-strictly"true" 默…

人工智能对零售业的影响

机器人、人工智能相关领域 news/events &#xff08;专栏目录&#xff09; 本文目录 一、人工智能如何改变零售格局二、利用人工智能实现购物体验自动化三、利用人工智能改善库存管理四、通过人工智能解决方案增强客户服务五、利用人工智能分析消费者行为六、利用 AI 打造个性化…

C++前期概念(重)

目录 命名空间 命名空间定义 1. 正常的命名空间定义 2. 命名空间可以嵌套 3.头文件中的合并 命名空间使用 命名空间的使用有三种方式&#xff1a; 1:加命名空间名称及作用域限定符&#xff08;::&#xff09; 2:用using将命名空间中某个成员引入 3:使用using namespa…

TCP协议报头详解

目录 前言 TCP特点 TCP报头 1.源端口和目的端口 2.序号 3.确认号 4.数据偏移 5.保留 6.控制位 ① 紧急URG&#xff08;URGent&#xff09; ② 确认ACK&#xff08;ACKnowledgment&#xff09; ③ 推送PSH&#xff08;PuSH&#xff09; ④复位RST&#xff08;ReSeT&…

【数据结构】初识集合深入剖析顺序表(Arraylist)

【数据结构】初识集合&深入剖析顺序表&#xff08;Arraylist&#xff09; 集合体系结构集合的遍历迭代器增强for遍历lambda表达式 List接口中的增删查改List的5种遍历ArrayList详解ArrayList的创建ArrayList的增删查改ArrayList的遍历ArrayList的底层原理 &#x1f680;所属…

UnityAPI学习之 播放游戏音频的类(AudioSource)

播放游戏音频的类&#xff08;AudioSource&#xff09; using System.Collections; using System.Collections.Generic; using UnityEngine;public class NO17AudioSource : MonoBehaviour {private AudioSource audioSource;//音频组件public AudioClip clip;//音频文件public…

预编译、函数变量提升

函数声明会覆盖变量的声明&#xff0c;也就是会提升到最前面。 形参传进来相当于变量声明&#xff0c;所以当有函数声明时&#xff0c;会被覆盖。

情绪管理:大我则定,小我则乱(王阳明)

学了很多知识&#xff0c;却还是感物易动&#xff1f;如何让心回归中正&#xff1f;王阳明一言以蔽之&#xff1a; —— 大我&#xff0c;大我则定&#xff0c;小我则乱 保持心静的方法&#xff1a;有大爱&#xff0c;为大局着想

Spark-Shuffle阶段优化-Bypass机制详解

Spark概述 Spark-Shuffle阶段优化-Bypass机制详解 Spark的Bypass机制是一种特定情况下的优化策略&#xff0c;目的是减少Shuffle过程中不必要的排序开销&#xff0c;从而提升性能。当Shuffle分区数较少且数据量不大时&#xff0c;Bypass机制可以显著加快Shuffle速度。 1.什么…

使用 Nginx 和 SSL 访问 Python Flask 应用的教程

在本教程中&#xff0c;我们将介绍如何使用 Nginx 和 SSL 来访问 Python Flask 应用。通过这种方式&#xff0c;你可以在提高安全性的同时&#xff0c;也能利用 Nginx 的反向代理功能来优化应用的性能和稳定性。 环境准备 在开始之前&#xff0c;请确保你的系统已经安装了以…