“写笔记”支持四种格式——Word 文档、Excel 表格、Markdown、纯文本,起稿或二次编辑时都能随时切换,同一篇笔记想用哪种形态来记,都由你说了算。
md、txt、csv、json 这类纯文本则原样载入,不做多余加工。拿一张现成的表倒进来、改几笔、再导出去,等于白用一台免费的格式转换器。
要带走就在右上角点“下载”,可导出 PDF、Word、Markdown、Excel、TXT 等格式;列表卡片“⋯”菜单里,也有同样的下载入口。
在“工具”页点“+ 上传工具”即可发布:填好名称与链接,再用 Markdown 把使用方法写清楚——能解决什么问题、怎么装、怎么用,比堆介绍实在。
要分发安装包就一并上传压缩包(ZIP、RAR、7Z、TAR.GZ,最大 35MB),别人在详情页一键下载;只放链接不带附件也可以。
工具按大家的收藏热度排序,好用的自然会被顶上来。发布后可在详情页或卡片菜单里编辑、下架。
写笔记时勾上“隐藏”,这篇就只存在于你自己的账号里:不进列表、不进搜索、不上首页精选,也不会出现在任何公开的页面,链接发给别人同样打不开。
适合放密码、草稿、日记这类只给自己看的内容;想公开,去“发布”打开它,把“隐藏”的勾去掉再保存,之后编辑会默认保持原状态,不会悄悄变回公开。
你的内容会同时保存在多个副本上,系统定期做备份与完整性校验,再配合异地容灾机制:就算某台机器出问题,数据也不会丢,可以长期放心存放;特别重要的资料,仍建议你另外再留一份备份。
全站跑在容器化、模块化的现代架构上,更新、部署、回滚都很快,扩展性和稳定性都按长期运营的标准来设计(Built for reliability, designed to scale)。
这个网站最早只是一个人的笔记仓库,后来慢慢长成现在的知识中枢。设计上很克制——没有广告、没有追踪、没有推荐算法,只是干干净净地存放一些东西;既然做好了,就公开出来,万一有人用得上呢。
不做大而全,不做平台梦,保持简单、保持克制、保持好奇。所有内容都由用户贡献、由用户维护:不会突然冒出付费墙,不会在角落塞广告位,也不会把你的数据卖给第三方。
产品会持续迭代,站内日志页记录着每一次改动,改了什么都有迹可循;想了解这个站是怎么一步步走到今天的,翻翻日志就能看到来龙去脉。
如果在这里看到涉嫌违规的内容,点对应卡片右侧的“举报”按钮就能提交,我们会尽快核实处理;也谢谢你花一点时间,一起把这里维护干净。
应用范畴论课程:从偏序集到协作设计的形式化建模
基于Fong和Spivak的《组合性七草图》,系统讲解如何用范畴论为现实世界中的资源理论、数据库和协作设计建立形式化模型。
应用范畴论课程笔记:从偏序集到协作设计
课程概述
本课程由John Baez讲授,基于Brendan Fong和David Spivak的著作《Seven Sketches in Compositionality: An Invitation to Applied Category Theory》(《组合性七草图:应用范畴论邀请》)。课程由Simon Burton整理为精美的网页形式。其核心思想是:范畴论不仅仅是纯数学的抽象玩具,它可以为现实世界中的复杂系统提供精确的建模语言——尤其是那些涉及组合性(compositionality)的系统,即整体行为可以由部分行为组合而成。
课程分为四个章节,共77讲,从最基础的偏序集开始,逐步深入到资源理论、数据库理论和协作设计。
第一章:有序集(Ordered Sets)
偏序与预序(Preorders)
课程从预序(preorder)概念开始。一个预序是一个集合配上一种二元关系≤,满足:
- 自反性:a ≤ a
- 传递性:若a ≤ b且b ≤ c,则a ≤ c
偏序(poset)则额外要求反对称性:若a ≤ b且b ≤ a,则a = b。
为什么从预序开始?因为预序是范畴论中最简单的范畴结构:每个预序对应一个小范畴,其中对象是元素,态射是a ≤ b的关系。这种视角将“比较”转化为“映射”,为后续的范畴化铺平道路。
Galois连接
Galois连接是偏序集之间的重要结构。给定两个偏序集P和Q,一对单调函数f: P→Q和g: Q→P构成Galois连接,当且仅当:
f(p) ≤ q ⇔ p ≤ g(q)
这实际上是一种伴随(adjunction)关系。Baez用多讲篇幅深入探讨了如何计算伴随、Galois连接与逻辑的关系。
子集与划分的逻辑
课程详细讨论了子集的逻辑和划分的逻辑。子集逻辑对应经典的布尔代数,而划分的逻辑则更微妙——它对应的是等价关系的格(lattice)。这一部分引入了生成效应(generative effects)的概念:当两个系统的组合行为不能简单由各自行为叠加得到时,就出现了生成效应。这是范畴论在复杂系统中应用的关键概念。
偏序集的伴随函子定理
对于偏序集,伴随函子定理有一个简洁的形式:如果P是一个完备格(所有子集都有上确界和下确界),那么一个保上确界的单调函数必然有一个右伴随。这是范畴论中一般伴随函子定理在偏序集上的特例,但更容易理解和计算。
第二章:资源理论(Resource Theories)
资源理论的动机
资源理论研究如何形式化地描述和管理资源。经典例子:
- 化学反应:2H₂ + O₂ → 2H₂O
- 生产调度:用原材料制造产品
- 定价:用货币衡量资源价值
这些场景的共同特点是:资源可以组合(combine)和转换(transform),且组合满足某种交换律或结合律。
幺半预序(Monoidal Preorders)
幺半预序是一个预序集加上一个幺半运算(通常记作⊗),满足:
- 单调性:若a ≤ a'且b ≤ b',则a⊗b ≤ a'⊗b'
- 结合律与单位元
对称幺半预序额外要求a⊗b ≅ b⊗a(交换性)。这恰好对应了化学反应中反应物可以任意排列、资源可以并行处理的情况。
定价与幺半单调映射
一个幺半单调映射(monoidal monotone)是从一个幺半预序到另一个的单调函数,且保持幺半结构(f(a⊗b) = f(a)⊗f(b))。在资源理论中,定价函数就是一个幺半单调映射:从资源集(带组合运算)到实数(带加法),且满足线性:price(A⊗B) = price(A) + price(B)。
反应网络与外溢效应
课程讨论了反应网络(reaction networks)的范畴论建模。一个反应网络由一组资源类型和一组反应组成,每个反应将一些资源转化为另一些资源。
外溢效应(externalities)的概念特别有趣:当两个反应网络组合时,可能会产生原本不存在的交互(例如一个反应的产物正好是另一个反应的原料)。这类似于经济学中的外部性,范畴论提供了精确描述这种“组合产生新行为”的框架。
丰富范畴(Enriched Categories)
课程将预序重新解释为丰富范畴(enriched categories)。具体来说,一个预序可以看作一个在布尔代数(取值{true, false})上丰富的小范畴:hom(a,b) = true当且仅当a ≤ b。
Lawvere度量空间是这一思想的推广:将布尔代数替换为扩展实数(包括∞),hom(a,b) = d(a,b)(距离)。这揭示了度量空间与预序之间的深层联系——两者都是某种“比较结构”。
第三章:数据库(Databases)
范畴的基础
本章正式引入范畴的定义:
- 一组对象
- 一组态射(每个态射有源和目标)
- 态射的复合(满足结合律)
- 每个对象的恒等态射
与预序相比,范畴允许一个对象到另一个对象存在多个态射,而预序最多只有一个。这使得范畴能表达更丰富的结构。
图生成的范畴
任何有向图都可以通过添加恒等态射和强制复合封闭,生成一个自由范畴。这类似于用生成元和关系定义代数结构。
函子与数据库
函子(functor)是范畴之间的结构保持映射。数据库可以看作一个从模式范畴(schema category)到集合范畴的函子。具体来说:
- 模式范畴中的对象对应数据库中的表
- 态射对应表之间的外键关系
- 函子将每个对象映射到一个集合(表的行),将每个态射映射到一个函数(外键查找)
自然变换与数据库转换
自然变换(natural transformation)是函子之间的映射。在数据库语境中,一个自然变换对应一个数据库迁移(database migration):将一个模式下的数据转换为另一个模式下的数据,同时保持结构一致性。
伴随函子与Kan扩展
课程深入讨论了伴随函子(adjoint functors)和Kan扩展(Kan extensions)。Kan扩展是范畴论中一种高度抽象的构造,但在数据库理论中有具体应用:
- 左Kan扩展对应数据库的“插入”操作
- 右Kan扩展对应数据库的“查询”操作
自由函子与遗忘函子(free-forgetful adjunctions)是伴随的典型例子:自由范畴函子从图生成范畴,遗忘函子则删除态射结构。
第四章:协作设计(Collaborative Design)
丰富预层与可行性关系
丰富预层(enriched profunctor)是范畴之间的一种“关系”,它推广了函子的概念。在协作设计语境中,一个丰富预层表示两个系统之间的可行性关系:给定系统A的状态和系统B的状态,是否存在一种方式将两者连接起来?
成本丰富预层
成本丰富预层(cost-enriched profunctor)将可行性关系量化:不是简单地回答“是/否”,而是给出一个成本(可以是时间、金钱、资源消耗等)。这对应了经济学中的交易成本概念。
闭幺半预序
闭幺半预序(closed monoidal preorder)是一种具有“内部hom”结构的幺半预序。对于任意两个元素a和b,存在一个元素a ⊸ b(称为“蕴涵”或“函数空间”),满足:
a ⊗ b ≤ c ⇔ a ≤ (b ⊸ c)
这类似于逻辑中的柯里化(currying)或范畴论中的指数对象。
丰富预层的复合
丰富预层可以复合,类似于关系的复合。复合操作是结合的,且具有恒等预层。因此,所有丰富预层构成一个范畴(称为Prof)。
协作设计的范畴论模型
协作设计的核心思想是:
- 每个设计主体(agent)有一个资源状态空间(resource state space),这是一个幺半预序
- 主体之间的交互由丰富预层描述,表示一个主体的输出如何成为另一个主体的输入
- 整个协作系统通过丰富预层的复合构建,体现了组合性
反馈与循环
课程特别讨论了反馈(feedback)机制。在协作设计中,反馈意味着一个主体的输出会循环影响其自身输入。这需要用紧致闭范畴(compact closed categories)中的杯和帽(caps and cups)结构来建模。
弦图与严格化
弦图(string diagrams)是范畴论中一种强大的可视化工具,特别适合表示幺半范畴中的态射复合。课程介绍了如何通过严格化(strictification)将任意幺半范畴转化为等价但更易处理的严格幺半范畴。
紧致闭范畴
紧致闭范畴(compact closed categories)是具有对偶对象的幺半范畴。在协作设计中,对偶对象表示“反向”的资源流,使得反馈成为可能。
总结与展望
课程以“The End? No, the Beginning!”(结束?不,这只是开始!)作为结尾,强调应用范畴论仍是一个快速发展的领域。从偏序集的简单比较,到资源理论的组合结构,再到数据库的函子模型,最后到协作设计的丰富预层框架,我们看到了范畴论如何为真实世界系统提供统一的形式化语言。
核心收获:
- 组合性是范畴论应用于现实世界的关键思想
- 伴随函子(尤其是Galois连接)贯穿始终,是理解系统间关系的基本工具
- 丰富范畴提供了从定性(布尔值)到定量(成本)的自然推广
- 弦图等可视化工具使得抽象概念变得直观可操作
对于希望进一步学习的读者,建议阅读原书《Seven Sketches in Compositionality》,并尝试将范畴论思想应用到自己的领域——无论是计算机科学、物理学、经济学还是生物学。