Python_DAG-有向无环图-igraph

DAG-有向无环图-igraph

安装

pip install python-igraph
pip install pycairo

pip list发现Python安装的有igraph包有两个:igraph、python-igraph

有向图
  有向图(Digraph) 是图论中的一种图结构,其中的边(弧)具有方向性,表明从一个节点(顶点)到另一个节点的单向关系。与无向图不同,无向图中的边不区分方向,而有向图则强调了某些关系的单向特性。
在某些情况下,单向关系可能是理解复杂网络结构的关键,使得有向图成为信息科学、社会科学以及工程学等领域的基础工具  cyclic  acyclic
  acyclic 没有环的图,‌即图中没有回路


g.is_acyclic() 方法 是否是无环图

def is_dag(self, *args, **kwargs)
Checks whether the graph is a DAG (directed acyclic graph)

使用

使用 Python 构建 DAG(有向无环图,Directed Acyclic Graph) 任务 Directed Acyclic Graph
由一组节点和有向边组成,其中每个节点表示一个任务或操作,有向边表示任务之间的依赖关系

构造依赖关系树和计算链
 从任务编排和数据等的角度来看,DAG 的术语是叫工作流(Workflow)
跟踪计算状态以及它们之间的依赖关系,允许完全和部分重新计算

Graph
  __init__(n=0, edges=None, directed=False, graph_attrs=None,
        vertex_attrs=None, edge_attrs=None)

ig.Graph.Ring(n=nodes, circular=True)


通过继承Graph类并在子类中添加额外的方法和属性来实现
 Graph.__init__(self, directed=True, graph_attrs={"name": name}, **kwargs)

DAGFlow继承了Graph类,并在其初始化方法中调用了父类的初始化方法 directed=True 指明了是有向图

实现

常规 DAG 到函数式 DAG
基于注解与条件的 DAG 函数

Apache Airflow 的 DAG 实现本着 “工作流即代码” 的思想设计


spec 是规约,规格的意思

基础包

Python itertools模块combinations(iterable, r)方法可以创建一个迭代器,
  返回iterable中所有长度为r的子序列,返回的子序列中的项按输入iterable中的顺序排序
  combinations  组合
  permutations 排列

 undirected graph with a fixed number of edges, without loops.   g.to_directed(mode="acyclic")
as_directed  as_undirected 




mode:值可为IN,OUT,ALL,分别表示入度核值,出度核值,以及无向核值

计划

  增量计算(Incremental computing) 
如何设计增量 DAG 计算
异步函数 和可变函数
Memoization(记忆化)是函数式语言的一种特性,
   使用一组参数初次调用函数时,缓存参数和计算结果,当再次使用相同的参数调用该函数时,直接返回相应的缓存结果
  采用分布式键值存储来对结果进行缓存就是更好的选择

其他包

MessagePack (简称 msgPack)是一种高效的二进制序列化格式,可以将各种数据类型(如整数、字符串、数组等)转换为二进制格式,以便于在网络传输或存储时使用

BSON是一种计算机数据交换格式,主要被用作MongoDB数据库中的数据存储和网络传输格式

美国

国家能源研究科学计算中心NERSC(National Energy Research Scientific Computing Center)是

参考

https://python.igraph.org/en/stable/
https://python.igraph.org/en/stable/tutorials/quickstart.html
igraph 上手教程——使用 Python 开展社会网络分析和可视化 https://zhuanlan.zhihu.com/p/426397948
自动增量计算:构建高性能数据分析系统的任务编排 https://zhuanlan.zhihu.com/p/580966356
posted @ 2024-08-04 22:25  辰令  阅读(12)  评论(0编辑  收藏  举报