为了更好地理解什么是有向无环图,让我们先对其构成进行分解:
节点:节点又称顶点,表示图形上的实体、对象或变量。它们通常用点或圆圈表示。
边缘:边缘表示实体之间的连接。它们用线条表示。
定向边缘:定向边缘表示只能从一个方向遍历的连接。这些边缘上的箭头指示它们的方向。
有向图:指的是完全由有向边缘组成的图。相反,没有有向边缘的图就是无向图。
碰撞器:碰撞器是有 2 条有向边缘指向它们的节点。
路径:路径是将一个给定节点连接到另一个节点的一系列边缘。完全由定向边缘组成的路径称为定向路径。表示因果关系的有向路径称为因果路径。
树:在计算机科学中,树是一种有向无环图,其中除了起始节点(“根”节点)外,每个节点都只有 1 条指向它的有向边缘。虽然边缘从根节点延伸,但没有边缘指向根节点。
除了了解 DAG 的各个部分之外,认识到它缺少的一个组件也很重要:循环。有向无环图中的“无环”是指这些图中没有循环或闭环。换言之,当从 DAG 中的 1 个节点开始并遍历后续节点和边缘时,则不可能返回到起始节点。
在图论(对图的研究)中,处理有向无环图时通常会应用多个概念或流程。其中包括:
拓扑排序(又称“拓扑序列”),是将DAG 节点按线性排列的方法,确保被指向的节点优先出现,且后继节点绝不先于其前驱节点出现。拓扑排序算法可以生成基于 DAG 的序列。 1
在复杂图形中,要识别哪些节点可以通过其他节点的有向路径“可达”,可能会比较困难。在传递闭包中,节点之间的这种间接连接被识别并以图表形式呈现。
例如,如果图中有一个连接节点 A 和节点 B 的有向边缘,还有一个连接节点 B 和节点 C 的有向边缘,则表示 A 和 C 是间接连接的。除了 A 和 B 以及 B 和 C 之间原有的有向边缘之外,传递闭包还会产生一条连接 A 和 C 的全新有向边缘,即这两个节点之间的最短路径。与拓扑排序一样,可以使用算法进行传递闭包计算。
传递归约可以说是传递闭包的反义词。在有向图的上下文中,图形的传递归约具有与原始图形相同的节点数,并且可访问的节点对相同。但是,图形的传递归约中的边缘数量会被减至最小。
例如,设想一个原始图,其中包括连接节点 A 到节点 C 的有向边缘,以及连接节点 A 到节点 B 和节点 B 到节点 C 的有向边缘序列。该图的传递归约将排除 A 和 C 之间的边缘,同时保留更大的变量集:A 和 B 以及 B 和 C 之间的边缘。
换句话说,原图中 A 和 C 之间的最长路径包含在新图中,而只有 1 条边缘的路径被消除。
有向无环图在计算机科学中占有重要地位,它有很多用例:
DAG 可帮助数据工程师定义数据结构并实现数据流优化。例如,Apache Airflow 等数据编排平台使用 DAG(在 Python 脚本中定义)来定义数据处理任务并指定其在数据管道和工作流中的执行顺序。
在多个 DAG 相互依赖的情况下,编排工具可以创建依赖关系图来阐明这些关系。2数据可观察性平台可以与数据编排平台结合使用,以识别和解决数据管道问题。
依赖于数据访问的生成式 AI 应用的加速采用,增加了数据管道和 DAG 在现代技术领域的重要性。
DAG 可以在“指导”AI 模型通过因果推理识别因果关系的过程中发挥作用。因果推理是一种确定因果效应的范例,通常采用 DAG。例如,DAG 可以帮助检测“混杂因素”,即扭曲或掩盖真正因果关系的变量。通过因果推理增强的 AI 技术正在成为流行病学领域的一种工具,特别是有可能帮助研究人员调查疾病决定因素。3
研究人员提议使用基于 DAG 和大型语言模型的结构规划方法来提高双臂机器人的性能。在所提出的框架中,LLM 会生成一个 DAG,将复杂任务划分为子任务,并通过边缘表示其依赖关系。在该框架中,这些信息可用于确定运动规划和协调机器人的双臂,以执行任务。4
DAG 可用于优化编译器的设计,编译器是将编程语言(源代码)转换为计算机指令(机器代码)的程序。例如,DAG 有助于识别可删除的常见子表达式,以提高效率。
研究人员表示,基于 DAG 的区块链表现出比传统区块链更好的性能。基于 DAG 的区块链可以允许并行处理事务,从而提高一定时期内事务的处理速度,并实现更大的灵活性和可扩展性。此类改进可应用于供应链管理和物联网网络的访问控制等领域。5,6
发现 IBM Databand,用于数据管道的可观测性软件。该软件会自动收集元数据来构建历史基线、检测异常并创建工作流程,以修复数据质量问题。
利用 IBM 数据集成解决方案,创建弹性、高性能和成本优化的数据管道,以满足您的生成式 AI 计划、实时分析、仓库现代化和运营需求。
通过 IBM Consulting 发掘企业数据的价值,建立以洞察分析为导向的组织,实现业务优势。
1 “Chapter 4 – Fundamentals of algorithms”。《Electronic Design Automation》。2009 年。
2 “DAGs.” Apache Airflow.于 2025 年 2 月 28 日访问。
3 “Machine learning in causal inference for epidemiology." 《欧洲流行病学杂志》。2024 年 11 月 13 日。
4 “DAG-Plan: Generating Directed Acyclic Dependency Graphs for Dual-Arm Cooperative Planning”。arXiv.org。2024 年 6 月 30 日。
5 “RT-DAG: DAG-Based Blockchain Supporting Real-Time Transactions.” IEEE. 2024 年 6 月 24 日。
6 “DAG blockchain-based lightweight authentication and authorization scheme for IoT devices." Journal of Information Security and Applications. 2022 年 5 月。