我将参考文献分为以下几个类别,方便您按需查找:

- 经典教材与基础理论:学习DAG概念的权威起点。
- 拓扑排序算法:DAG最核心的算法之一。
- 关键路径法:项目管理中的经典DAG应用。
- 动态规划与DAG:DP状态压缩与优化的核心思想。
- 现代应用领域:DAG在新兴技术中的关键作用。
- 图神经网络:利用DAG结构进行学习。
- 数据库与查询优化:查询计划的DAG表示。
经典教材与基础理论
这些是计算机科学领域,特别是图论和算法方面的“圣经”,其中详细介绍了DAG的定义、性质和相关算法。
-
[1] Cormen, T. H., Leiserson, C. E., Rivest, R. L., & Stein, C. (2009). Introduction to Algorithms (3rd ed.). MIT Press.
- 中文版:《算法导论》
- 简介:这是计算机科学领域最权威的算法教科书,第22章“图的基本算法”中,明确地定义了有向无环图,并深入讲解了拓扑排序、单源最短路径(适用于DAG)等核心算法,这是学习DAG概念和基础算法的必读之作。
-
[2] Sedgewick, R., & Wayne, K. (2011). Algorithms (4th ed.). Addison-Wesley Professional.
- 中文版:《算法(第4版)》
- 简介:另一本经典的算法教材,以其清晰的讲解和丰富的Java代码示例著称,第4章“有向图”专门讨论了DAG,并提供了拓扑排序的实现,这本书更侧重于实践和代码实现。
-
[3] Diestel, R. (2025). Graph Theory (5th ed.). Springer.
(图片来源网络,侵删)- 中文版:《图论》
- 简介:这是一本更偏向理论数学的图论教材,它从图论的角度严格定义了DAG,并讨论了其与偏序集、传递闭包等概念的深刻联系,适合希望深入理解DAG数学本质的研究者。
拓扑排序算法
拓扑排序是处理DAG最核心的操作,相关论文奠定了其理论基础。
-
[4] Kahn, A. B. (1962). Topological sorting of large networks. Communications of the ACM, 5(11), 558-562.
- 简介:提出了Kahn算法,这是最著名和常用的拓扑排序算法之一,该算法基于“不断寻找并移除图中所有入度为0的节点”的思想,时间复杂度为O(V+E),这篇论文是该领域的开创性工作。
-
[5] Tarjan, R. E. (1974). A note on PPF algorithms. Information Processing Letters, 3(7), 194-195.
- 简介:提出了基于深度优先搜索的拓扑排序算法,该算法通过DFS的后序遍历和逆序来得到拓扑排序,Tarjan的这篇论文虽然简短,但提出的DFS方法非常优雅和高效,也是实现拓扑排序的标准方法之一。
关键路径法
这是DAG在工业界最早和最重要的应用之一,用于项目管理。

- [6] Kelly, J. E., & Walker, M. R. (1959). Critical-Path Planning and Scheduling: An Evaluation. Oral History Project, The Rand Corporation.
- 简介:关键路径法由杜邦公司和雷德公司于1957年独立开发,这篇报告和相关文献是CPM方法的原始资料,它详细阐述了如何将一个项目计划建模为一个DAG,通过计算“最早开始时间”和“最晚开始时间”来确定关键路径,从而优化项目调度。
动态规划与DAG
DAG是动态规划问题建模和优化的利器,能够将指数级复杂度降低到多项式级别。
-
[7] Bellman, R. (1957). Dynamic Programming. Princeton University Press.
- 简介:动态规划的创始人Richard Bellman的经典著作,书中虽然没有直接以“DAG”为标题,但全书充满了利用“最优子结构”和“无后效性”(即DAG特性)来解决问题的思想,许多经典的DP问题,如最长公共子序列、编辑距离等,其本质上都是在求解一个隐式DAG上的最长路径。
-
[8] Skiena, S. S. (2025). The Algorithm Design Manual (3rd ed.). Springer.
- 中文版:《算法设计手册》
- 简介:这本书的第8章“动态规划”是学习如何用DAG思想解决DP问题的绝佳材料,作者清晰地阐述了“当问题可以被建模为DAG时,DP就是寻找图中的最长(或最短)路径”这一核心思想,并提供了大量实例。
现代应用领域
区块链与分布式账本技术
- [9] Baird, L. (2025). The Holochain Model of Distributed Hash Tables. Holo White Paper.
- 简介:虽然这是一份白皮书而非传统论文,但它提出了有向无环图作为区块链的一种替代方案,DAG避免了区块链的串行验证,允许交易并行确认,理论上可以实现更高的吞吐量和更低的延迟,IOTA的Tangle是另一个著名的基于DAG的加密货币项目。
版本控制系统
- [10] Cheney, J. (2005). The Semantics of Git. University of Cambridge, Computer Laboratory, Tech. Rep. UCAM-CL-TR-689.
- 简介:Git的底层数据结构是一个由多个DAG组成的森林,这篇技术报告(以及后续许多关于Git的论文)深入分析了Git如何利用DAG来高效地管理文件版本、分支和合并,理解DAG是理解Git工作原理的关键。
图神经网络
许多图神经网络架构天然地处理非欧几里得数据,其中DAG是一种重要的结构。
- [11] Gilmer, J., Schoenholz, S. S., Riley, P. F., Vinyals, O., & Dahl, G. E. (2025). Neural Message Passing for Quantum Chemistry. Proceedings of the 34th International Conference on Machine Learning (ICML), 1263-1272.
- 简介:这篇论文提出的消息 passing神经网络框架,其核心操作可以在图结构上进行,包括DAG,它展示了如何将分子(通常表示为DAG)等复杂结构作为输入,通过在图上传递信息来进行学习,为后续的GNN研究奠定了基础。
数据库与查询优化
- [12] Graefe, G. (1993). The Cascades Framework for Query Optimization. IEEE Data Engineering Bulletin, 16(2), 199-206.
- 简介:现代数据库查询优化器(如SQL Server, PostgreSQL)的核心思想是基于规则的查询优化,这个过程通常将一个SQL查询逻辑地表示为一个DAG(称为逻辑查询计划),然后通过一系列等价变换规则,在DAG上搜索成本最低的物理执行计划,这篇论文是理解现代数据库优化器工作原理的经典文献。
总结与建议
- 初学者:从 [1]《算法导论》 或 [2]《算法(第4版)》 开始,建立对DAG的基本概念和算法(拓扑排序)的扎实理解。
- 算法工程师:深入研读 [4] Kahn 和 [5] Tarjan 的原始论文,并参考 [8]《算法设计手册》 学习DP与DAG的结合。
- 特定领域研究者:
- 区块链:研究 [9] Holochain白皮书 和 IOTA Tangle 的相关资料。
- 数据库:阅读 [12] Graefe 的论文,了解DAG在查询优化中的核心作用。
- 版本控制:学习Git的底层实现,其核心就是DAG。
希望这份详细的参考文献列表对您的研究或学习有所帮助!
