jingsam.github.io - jingsam

Description: GIS, mapping

Example domain paragraphs

最近在开发一个流程化建模的功能,即用户将多个算子的输入输出连接起来构成流程图,完成建模并执行。其中涉及到一个重要的技术过程,是将算子按照输入输出的依赖关系进行排序,对于任意一个算子,其依赖的前驱算子都排在前面,保证算子执行的时候输入条件已准备好。

实际上,上面构建的流程化模型是一个有向无环图(Directed Acyclic Graph, DAG)。顾名思义,DAG有三大特点:“有向”、“无环”、“图”。DAG首先是一种“图”,这种“图”是有方向性的,并且没有环路。

DAG是一个专业术语,虽然对于一般人比较陌生,但它实际上隐藏在生活中的方方面面。例如,一个工程项目有多个子项目组成,子项目之间有先后关系,一个子项目的开展必须保证前面的项目完成;工厂里面生产的产品,产品由若干部件组成,每个部件再由多个零件组成,组装时必须保证一定的先后顺序。在软件领域,我们也会不知不觉地碰到DAG,例如程序模块之间的依赖关系、makefile脚本、区块链、git分支等。

Links to jingsam.github.io (2)