预备篇 I :范畴与函子
拓扑是研究几何图形或空间在连续改变形状后还能保持不变的一些性质的一个学科。它只考虑物体间的位置关系而不考虑它们的形状和大小。
拓扑是集合上的一种结构。
拓扑英文名是Topology,直译是地志学,最早指研究地形、地貌相类似的有关学科。几何拓扑学是十九世纪形成的一门数学分支,它属于几何学的范畴。
“代数拓扑的基本观点:几何对象的代数照相。这种照相是用范畴与函子的语言来表达的。”
——姜伯驹
范畴和函子(尤其是函子)主要是由代数拓扑引出的概念,主要目的是用一种更抽象统一的语言来描述关于拓扑空间的不变量,也就是如果能用函子把两个范畴(例如拓扑空间范畴和群范畴)联系起来,那么一个范畴中的对象(拓扑空间)在函子作用下所对应的另一个范畴中的对象(基本群)就是这个对象(拓扑空间)的不变量。(因为我们拓扑学中知道,两个拓扑空间同胚,那么它们的基本群同构)
注:初学者可先看本文第三部分,再看一、二。
【一】范畴
【范畴】什么是范畴?简单来说,一个范畴由两个集合组成:
(1)一些对象构成的一个类;
(2)中附加上每个对象之间的所有态射
构成的族。
并且满足:态射间的复合律(为
到
的态射,
为
到
的态射,那么
为
到
的态射,且运算“
”是结合的);以及存在每个对象
到自己的恒同态射
(
,
)。
举几个例子:
1. 所有群以及群之间的同态映射构成一个范畴(其中,每个对象是群,两个对象之间的所有态射就是这两个群之间的所有同态映射),称为群范畴;
2. 所有线性空间以及线性空间的线性映射构成一个范畴(其中,每个对象是线性空间,两个对象减的所有态射就是这两个线性空间的所有线性映射),称为线性空间范畴;
3. 所有拓扑空间以及拓扑空间的连续映射构成一个拓扑空间范畴;
4. 所有微分流形以及微分流形之间的光滑映射构成一个微分流形范畴;
......
【同构】如何描述范畴中两个对象是“一样”的?引入同构的概念:范畴中的两个对象
、
间如果存在一个态射
以及另一个态射
,满足
(恒同态射)且
(恒同态射),则称这两个对象同构,称
、
为同构态射。
【积与余积】如何由一个范畴中几个对象生成一个更大的对象呢?我们引入积与余积的概念:可以简单理解成,范畴中任意多个空间的积(Product)就是通常所说的直积(笛卡尔积)的推广,记为;而任意多个空间的余积(Coproduct)是直和的推广,记为
或
。
(注意:在一个范畴中,积与余积不一定存在!但若存在,则积(余积)在同构意义下唯一,此时称该范畴为积范畴(余积范畴))
例如:
1. 集合范畴里的积就是通常意义下的笛卡尔积,余积是不交并;
2. 群范畴和环范畴里面的积就是直积,余积是自由积;
3. 模范畴里面的积就是笛卡尔积,余积是有限多对象做笛卡尔积;
4. 线性空间范畴里面的积就是笛卡尔积,余积是有限多对象做笛卡尔积;
5. 拓扑空间范畴里面的积就是笛卡尔积,余积是拓扑和。
积与余积的严格定义可以参考下图:

【二】函子
【引入】 先来做个填空题:
两个____空间存在同态 ,那么它们对应的两个____空间存在同态。
我们可以填写如下:
两个拓扑空间存在连续映射(同胚),那么它们对应的基本群同态(同构);
两个拓扑空间存在连续映射(同胚),那么它们对应的奇异同调群同态(同构);
两个微分流形存在光滑映射(微分同胚),那么它们对应的deRham上同调群同态(同构);
两个李群同态(同构),那么它们对应的李代数同态(同构);
......
我们把这些关系抽象成一个更一般的形式,也就是所谓的“函子”。
【函子的定义】函子是两个范畴之间的一种映射(关系)。 它把对象映射到对象,态射映射到态射。函子分为协变函子与反变函子,先给出协变函子的具体定义:
给定范畴和
,如果它们之间存在一个映射
,满足:
1. 对象到对象:把
中对象
映射到
;
2. 态射到态射:把
中态射
映射到
中态射
,且满足:
(1)(恒等律)恒等态射映到恒等态射:;
(2)(复合律)。
则称映射为范畴
到范畴
的一个协变函子。

至于反变函子,只是把定义第2条中“”改为
,其它类似。
【函子的性质】函子最主要有两条性质,也就是:
1. 函子把同构态射到同构态射;
2. 和
存在一个函子
,
和
存在一个函子
,则
是
到
的一个函子。
这样,我们再重新看一下“引入”中的例子,把前者和后者分别当成一个范畴,那么它们之间存在一个函子。
例如,拓扑空间范畴到Abel群范畴
有一个函子
,把
中两个拓扑空间
、
(对象)分别映射到它们的奇异同调群
和
(
中两个对象),且把
到
的任一连续映射
(态射)映射到
为
到
的同态
(态射)。
【三】关于代数拓扑
- 先提个基本问题,什么是拓扑空间以及为什么研究拓扑空间?
可以说拓扑空间是几何学(广义所指,包含拓扑学)的基础。现代几何学研究的东西都是在某个特定的拓扑空间上展开的,或者说:几何学的基本对象就是拓扑空间。
比如流形,其就是局部同胚于欧式空间的拓扑空间(又称Hausdorff空间);再比如前两篇我们谈的微分流形,其实质就是赋有微分结构的流形;再比如微分几何,其研究的也是赋有某种特定结构(比如黎曼度量,联络,张量场等等)的微分流形。
那么,什么是拓扑空间呢?拓扑空间有如下严格定义:设是一个非空集合,它的一个子集族
满足:(1)
、
在
中;(2)对任意并封闭;(3)对任意交封闭。则称集合
为一个赋有拓扑结构
的拓扑空间,记为
。
- 什么又是代数拓扑?
拓扑学(尤其是代数拓扑)是几何学的一个分支,其最终目的是为了找一些拓扑不变量对拓扑空间进行分类。因为点集拓扑中的不变量,诸如连通性、紧致性等等这些不变量实在不够用,所以我们想通过找一些和拓扑空间有关的代数空间(有代数结构的拓扑不变量,即在拓扑空间同胚下同构),通过认识代数空间的结构来认识原来拓扑空间的性质,并在此基础上将拓扑空间进行分类。
用范畴和函子的语言来描述就是,找到一个代数空间范畴,使得拓扑空间范畴到这个代数空间范畴之间有一个函子(因为函子把拓扑空间的连续映到代数空间的同态,且把拓扑空间的同胚映到代数空间的同构)。
而我们更大的梦想是找到一个代数空间范畴,使得这个范畴到拓扑空间范畴之间有一个函子!但是找了几十年还是没有找到这样的范畴。(但在一些特定的拓扑空间中,我们确实做到了)
https://zhuanlan.zhihu.com/p/23206745
预备篇 I :范畴与函子的更多相关文章
- 在线最优化求解(Online Optimization)之一:预备篇
在线最优化求解(Online Optimization)之一:预备篇 动机与目的 在实际工作中,无论是工程师.项目经理.产品同学都会经常讨论一类话题:“从线上对比的效果来看,某某特征或因素对xx产品的 ...
- 微信小程序教学第二章:小程序中级实战教程之预备篇 - 项目结构设计 |基于最新版1.0开发者工具
iKcamp官网:http://www.ikcamp.com 访问官网更快阅读全部免费分享课程:<iKcamp出品|全网最新|微信小程序|基于最新版1.0开发者工具之初中级培训教程分享>. ...
- 【Spring源码分析】预备篇
前言 最新想学习一下Spring源码,开篇博客记录下学习过程,欢迎一块交流学习. 作为预备篇,主要演示搭建一个最简单的Spring项目样例,对Spring进行最基本梳理. 构建一个最简单的spring ...
- 添物零基础到大型全栈架构师 不花钱学计算机及编程(预备篇)— C语言编程基础
C语言介绍 C语言基本是每个编程人员必学的一面语言,很好掌握,是理解编程的关键.很多编程语言基于其编写或者基于此语言的衍生品编写. C语言是人机交互的一个基础语言之一,虽然是之一,单一般其实就是唯一 ...
- 你必须知道的指针基础-1.预备篇:搭建GCC开发环境
一.关于GCC编译器 GCC(GNU Compiler Collection)是一套功能强大.性能优越的编程语言编译器,它是GNU计划的代表作品之一.GCC是Linux平台下最常用的编译器,GCC原名 ...
- 微信小程序教学第二章(含视频):小程序中级实战教程之预备篇 - 封装网络请求及 mock 数据
§ 封装网络请求及 mock 数据 本文配套视频地址: https://v.qq.com/x/page/i05544fogcm.html 开始前请把 ch2-3 分支中的 code/ 目录导入微信开发 ...
- VPS环境配置预备篇
VPS买到手了,在配置环境前要做哪些操作呢?老谢说一下自己的习惯,希望对和老谢一样的菜鸟有帮助更新系统内核和rpm包#安装yum-fastestmirror插件yum -y install yum-f ...
- Spring源码分析(一)预备篇=》基本知识储备
一.Spring框架整体,各个部分 .Spring Core Container Core 和 Beans 模块是框架的基础部分,提供 IoC (控制反转)和依赖注入特性. 这里的基础 概念是 Bea ...
- C# 函数式编程:LINQ
一直以来,我以为 LINQ 是专门用来对不同数据源进行查询的工具,直到我看了这篇十多年前的文章,才发现 LINQ 的功能远不止 Query.这篇文章的内容比较高级,主要写了用 C# 3.0 推出的 L ...
随机推荐
- 【Codeforces 1B】Spreadsheets
[链接] 我是链接,点我呀:) [题意] A~Z分别对应了1~26 AA是27依次类推 让你完成双向的转换 [题解] 转换方法说实话特别恶心>_< int转string 得像数位DP一样一 ...
- How to change java version in Linux
How to change default Java version on Linux Posted on November 1, 2015 by Dan Nanni Leave a comment ...
- Linux 下rm+grep删除除去指定文件的剩余所有文件
例如: 删除当前文件夹下 .c和 .h 文件以外的文件 rm -f `ls ./ | egrep -v "(.c$|.h$)"` 1. ls 列出所有文件; 2. ...
- mapreduce v1.0学习笔记
它是什么? 一个用于处理大数据开源的分布式计算框架,它由java实现,原生提供java编程交互接口,其它语言通过hadoop streaming方式和mapreduce框架交互. 可以做什么? 利用框 ...
- HDU 4544
贪心算法+优先队列. 很明显是应当先消灭blood值大的,那么注意到,对于少blood值的,能灭大blood值的箭必定能消灭小blood值的,所以,可以先排序,在消灭一个blood值的时候,选择一个小 ...
- 翻翻git之---自己定义邮件发送buttonSendButton(流程分析,实现思路能够学习下)
转载请注明出处:王亟亟的大牛之路 距离过春节还有1天.继续这一系列的git翻料之旅. 昨天的工具类真的非常棒,这里再推崇一下 传送门:http://blog.csdn.net/ddwhan0123/a ...
- 替换文件里的相关单词(一)之文件类型为txt
首先说一下详细的实现思路: 第一步:我们须要获取要改动文件的信息,我们能够通过文件的路径来获取文件的FileInputStream,即文件的输入流,然后调用InputStreamReader读取文件输 ...
- Lucene 4.0 TieredMergePolicy
默认的merge policy. findMerges: 先将全部段依照扣除删除文档之后的字节数(bytesize * (1.0 - delRatio))降序排,对当中size() > 2.5G ...
- 超简洁代码实现CircleImageView
效果图: 页面代码: public class CircleView extends ImageView { private Paint mPaint = new Paint(); public Ci ...
- 洛谷⑨月月赛Round2 官方比赛 OI
自评: (完成时间3.5时) 第一题 模拟 虽然A了,代码敲得有点慢 第二题 最短路 第一次敲对了,又考虑数据范围和答案范围,改错了,100分改成42分.QAQ. 第三题 乱搞 80分 还可以(因为没 ...