——解读鲁学星《Petri-net Category: Petri-nets are String Diagrams》
一、引子:什么是 Petri 网?想象一个工厂车间:
有工作台(库所,places),每个台上堆着若干零件
有机器(转移,transitions),机器运转时,消耗某些工作台上的零件,同时在另一些工作台上产出新零件
工作台和机器之间有输送带(有向弧)连接
这就是 Petri 网 的直观画面。它由德国计算机科学家卡尔·亚当·佩特里(Carl Adam Petri)在1962年博士论文中提出,最初是为了描述化学反应中的物质流,后来成为并发系统建模的万能工具——从分布式计算、通信协议,到生物化学反应网络、供应链物流,无处不在。
但几十年来,Petri 网理论有个尴尬:大家会画网、会模拟网的运转,却很少严谨地讨论"两个 Petri 网之间是什么关系"。就好比你有了无数个工厂的设计图,却没有一套规则来说明"工厂 A 和工厂 B 如何对应、如何合并、如何简化"。
2024年12月15日,枣庄大学数学学院的鲁学星老师在一场报告中给出了答案:他用范畴论的语言,为 Petri 网建立了严格的态射定义,并证明所有 Petri 网构成一个范畴。更惊人的是,他指出:Petri 网其实就是弦图(string diagrams)——范畴论中描述计算过程的一种图形语言。
二、Petri 网的严格定义:从图画到代数传统教材里,Petri 网被画成二分图:圆圈是库所,方框是转移,有向弧连接它们。但鲁学星采用了更代数的定义:
定义:一个 Petri 网 N 由以下数据组成:
两个集合 P(库所)和 T(转移)
两个映射 s,t:T→M(P)
其中 M(P) 是 P 上有限多重集构成的自由交换幺半群;s 叫源映射,t 叫目标映射。
这是什么意思?举个文档里的例子:
P={v1,v2,v3,v4}(4个库所)
T={w1,w2,w3}(3个转移)
s(w1)=2v1+v3 表示:转移 w1 触发前,需要从库所 v1 取2个资源,从 v3 取1个资源
t(w1)=v2 表示:触发后,在库所 v2 产生1个资源
关键洞见:把"库所的多重集"看作一个代数对象(M(P)),Petri 网就不再是一幅图,而是一个代数结构——转移就是从这个代数结构中的一个元素"映射"到另一个元素。
三、核心创新:Petri 网之间的态射💡 这一步抽象至关重要:它让 Petri 网脱离了"画图"的直观层面,进入了代数的严谨世界。
现在来到本文最有分量的部分——如何定义两个 Petri 网之间的态射?
直觉上,如果我们想说"网 N1 可以映射到网 N2",需要:
把 N1 的每个库所,对应到 N2 的某个库所(或"消失")
把 N1 的每个转移,对应到 N2 的某个转移
保持结构兼容:在 N1 中,若转移 w 消耗库所 v1 的2份资源、产出到 v2,那么在 N2 中,对应的转移必须消耗对应库所的相应资源
鲁学星的精妙构造如下:
态射 ϕ:N1→N2 由两个映射组成:
位置映射 ϕp:P1⊔{∅}→P2⊔{∅}
转移映射 ϕt:T1→T2
注意那个 ∅!这是本文的神来之笔——允许把某些库所映射到"空集",意思是"这个库所在映射过程中被忽略/合并掉了"。
但问题来了:位置映射作用在单个库所上,而源/目标映射 s,t 作用在多重集上。怎么把 ϕp 提升为 ϕp:M(P1)→M(P2)?
鲁学星利用了自由交换幺半群的泛性质:
ϕp(i=1∑ncixi)=i=1∑nciϕp(xi)也就是说,把每个库所 xi 替换成 ϕp(xi),系数(资源数量)ci 保持不变;如果 ϕp(xi)=∅,那这一项就消失了。
兼容性条件:要求以下图表交换
ϕp∘s1=s2∘ϕt,ϕp∘t1=t2∘ϕt这保证了:在 N1 中转移 w 消耗的 resources,映射到 N2 后,恰好是 ϕt(w) 消耗的 resources。结构被完美保持。
四、函子性与复合:为什么这构成一个范畴?定义了态射还不够,还需要验证:
1. 帽构造是函子性的
对于任意两个可复合的映射 f1,f2,有
f2∘f1=f2∘f1证明很直接:对多重集 ∑cixi,
f2∘f1(∑cixi)=∑cif2(f1(xi))=f2(∑cif1(xi))=f2∘f1(∑cixi)2. 态射可以复合
给定 ϕ:N1→N2 和 ψ:N2→N3,定义
γp=ψp∘ϕp,γt=ψt∘ϕt利用函子性可证 γ 仍是合法态射,且复合满足结合律。
3. 恒等态射存在
取 ϕp=idP⊔{∅},ϕt=idT,即为 N 上的恒等态射。
由此,鲁学星得出本文的核心定理:
五、满态射与单态射的代数特征📌 定理:所有 Petri 网及其态射构成一个范畴,记作 Petri.net。
范畴建成后,自然要问:什么样的态射是满的?什么样的态射是单的?
鲁学星给出了清晰的刻画:
满态射 ⇔ 位置映射和转移映射都是满射
单态射 ⇔ 位置映射和转移映射都是单射
这意味着:
满态射对应"目标网中的每个库所和转移,都被源网中的某个东西映射到"——可以理解为目标网是源网的映像
单态射对应"源网中的每个库所和转移,都唯一对应到目标网中的元素"——可以理解为源网是目标网的子结构
这两个结果为后续研究 Petri 网的范畴性质(如商网、嵌入网等)提供了直接的理论工具。
六、为什么说"Petri 网即弦图"?报告的标题是 "Petri-nets are string diagrams"。这句话的含义是:
在范畴论中,弦图(string diagram) 是一种图形化表示幺半范畴中态射复合的工具。弦图像电路图:电线(字符串)代表对象,盒子代表态射,盒子之间的连接代表复合。
Petri 网与弦图惊人地相似:
库所 P ↔ 弦图中的"电线"(对象)
转移 T ↔ 弦图中的"盒子"(态射)
源映射 s:T→M(P) ↔ 盒子的输入电线(可能有分支,对应多重集)
目标映射 t:T→M(P) ↔ 盒子的输出电线
更精确地,M(P) 是自由交换幺半群,这正是对称幺半范畴中"对象的张量积"(满足交换律)的代数对应。因此,Petri 网可以视为对称幺半范畴中的一种特殊弦图——其中每个态射(转移)有明确的输入多重集和输出多重集。
七、这项工作的意义💡 这一对应意义重大:它意味着 Petri 网理论可以借用范畴论中弦图演算的全部工具——包括幺半范畴的代数操作、弦图的等价变换、以及更高阶的范畴结构(如双范畴、双幺半范畴等)。
鲁学星这篇报告的价值,可以从三个层面理解:
理论层面:
首次为 Petri 网给出了范畴论意义上的态射定义,填补了 Petri 网理论在代数基础方面的空白
通过引入允许坍缩到空集的位置映射和自由交换幺半群的帽构造,巧妙地解决了"库所可能消失"的技术难题
建立的 Petri.net 范畴,为 Petri 网研究提供了现代代数的严格框架
方法层面:
借鉴了"张量概型(tensor schemes)"的思想——这是范畴论中描述高维代数的工具
利用自由交换幺半群的泛性质,确保了构造的函子性
满/单态射的刻画为后续研究 Petri 网的范畴性质提供了基础
应用层面:
为并发系统、反应网络等的范畴化建模开辟了新路
使得 Petri 网可以无缝接入弦图、幺半范畴的理论体系
未来可能催生新的分析工具:比如用范畴论的伴随、极限、余极限等概念,来研究 Petri 网的化简、合成、商结构等
Petri 网诞生于1962年,初衷是描述化学反应。六十多年后,鲁学星的工作让它登上了范畴论的殿堂。这不仅仅是数学上的优雅,更是一次视角的跃迁:
过去,我们看 Petri 网:是图、是并发系统、是计算模型
现在,我们看 Petri 网:是范畴 Petri.net 中的对象,是对称幺半范畴中的弦图,是自由交换幺半群上的代数结构
正如报告标题所言——Petri nets are string diagrams。当工厂的车间被翻译成范畴论的弦图,当两个 Petri 网之间的映射被严格定义为范畴中的态射,我们拥有的不再只是一张张孤立的设计图,而是一个完整的代数宇宙。在这个宇宙里,Petri 网可以复合、可以商化、可以嵌入、可以对偶。
鲁学星在同期还发布了《Copula Operad and Copula Entropy》等工作,展现出他将概率论、范畴论、信息论统一在同一个代数框架下的宏大企图。而这篇《Petri-net category》,正是这一企图中关于并发系统的一块基石。
未来,当计算机科学家、范畴论学者、系统生物学家共同面对复杂的并发系统时,他们或许会在一个共同的数学语言下对话——而这个语言的字典里,必有 Petri.net 这一页。
(本文基于鲁学星《Petri-net category: Petri-nets are string diagrams》报告撰写,旨在通俗传播范畴论思想,细节请参考原文献。)
转载本文请联系原作者获取授权,同时请注明本文来自鲁学星科学网博客。
链接地址:https://wap.sciencenet.cn/blog-3582667-1550966.html?mobile=1
收藏