Zub*_*air 96 directed-acyclic-graphs
有人能用简单的语言向我解释一个有向无环图是什么?我看过维基百科,但它并没有真正让我看到它在编程中的用途.
Rol*_*man 165
graph =由节点组成的结构,它们通过边缘相互连接
directed =节点(边)之间的连接有一个方向:A - > B与B - > A不同
acyclic ="non-circular"=通过跟随边缘从节点移动到节点,第二次永远不会遇到相同的节点.
有向无环图的一个很好的例子是树.但请注意,并非所有有向无环图都是树.
sma*_*man 76
hum*_*.js 47
我看到许多答案表明DAG(有向无环图)的含义,但没有答案的应用程序.这是一个非常简单的 -
先决条件图 - 在工程课程中,每个学生都面临着选择遵循诸如先决条件等要求的科目的任务.现在很明显,如果没有算法[A]的必修课程,就不能参加人工智能课程[B].因此B依赖于A或者更好地表示A具有指向B的边缘.因此,为了到达节点B,您必须访问节点A.很快就会清楚地将所有具有其先决条件的主题添加到图形中,它将变成一个有向无环图.
如果有一个循环,那么你永远不会完成一个课程:p
大学中允许学生注册课程的软件系统可以将主题建模为节点,以确保学生在注册当前课程之前已经参加了必修课程.
我的教授给出了这个类比,它最好帮助我理解DAG,而不是使用一些复杂的概念!
另一个实时示例 - > 实时示例DAG如何在版本系统中使用
Jon*_*ust 14
几个答案给出了使用图形的例子(例如网络建模),你已经问过"这与编程有什么关系?".
该子问题的答案是它与编程没有多大关系.它与解决问题有关.
就像链表是用于某些类问题的数据结构一样,图表对于表示某些关系很有用.链接列表,树,图和其他抽象结构只与编程有关,因为您可以在代码中实现它们.它们存在于更高的抽象层次.它不是关于编程,而是关于在问题解决方案中应用数据结构.
Arn*_*shn 13
有向无环图(DAG)具有以下属性,可将它们与其他图区分开来:
好吧,我现在可以想到一个用途--DAG(称为Wait-For-Graphs - 更多技术细节)在检测死锁时非常方便,因为它们说明了一组进程和资源(都是DAG中的节点)之间的依赖关系.检测到循环时会发生死锁.
我希望这有帮助.
干杯