有向无环图DAG-理解及应用

目录

1、概念:

2、理解:

2.1 判断是否为DAG

 2.2 出度与入度

2.3 拓扑排序

3、应用:


1、概念:

有向无环图(DAG):在有向图中,如果存在从一个顶点出发,经过若干条边无法回到该点,则称该图为有向无环图。

2、理解:

2.1 判断是否为DAG

关键:判断有向图中是否存在有向环。 

1)进行拓扑排序,如果能完成排序,则无环,否则有环;

2)深度优先搜索算法DFS; 

 2.2 出度与入度

出度:由一个顶点出发的边的总数;

入度:指向一个顶点的边的总数;

2.3 拓扑排序

定义:就是一个有向无环图的所有定点的线性序列。

方法:

  • 先找一个顶点,如果没有其他节点指向它;
  • 则删除该节点及其指向的边,记录该节点;
  • 重复上面两个步骤,直到所有节点都被删除掉;
  • 如果某节点存在有边指向其自己,则该图不属于有向无环图。

3、应用:

1)区块链技术中应用DAG技术。dag中不同节点可自己生成区块,然后选择下一个或多个区块作为子节点,可极大的加快出块速度,提高交易速度;另外,dag每个节点只存储某一时间点的交易数据,而不需要同步所有全量数据,存储更灵活,可避免无效网络消耗和数据同步造成的大量时间浪费。

2)spark中使用DAG技术。RDD(弹性分布式数据集)是spark中最基本的计算单元,原始的RDD经过一系列转换(算子)就形成了有向无环图dag,spark根据RDD间的依赖关系分为窄依赖和宽依赖,并划分成不同的stage,spark就是通过优化和调度这些stage形成的DAG来使得计算效率最大化。

养成好的习惯,动手写一遍,加深理解。 

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值