"I am building a dependency based scheduler where my tasks/nodes form a directed acyclic graph. I have the following constraints and am trying to decide on the most appropriate algorithm:
1. 新任务可以随时添加(具有或不具有依赖关系) 2. 一些任务可以并行运行
有关拓扑排序,经常提到两种算法:深度优先搜索和Kahn算法。
以下是这两种算法的优缺点: - 深度优先搜索:实现简单,但可能会导致栈溢出。 - Kahn算法:稳定且无栈溢出的风险,但需要使用额外数据结构。
对于我的情况,是否有一种算法更加适合? 是否有其他算法更适合我的情况?
我还有一个词汇问题。给定依赖关系如下: "
这是否被视为一个有向无环图,2个有向无环图(因为e和d不依赖于其他任务),还是一个包含子有向无环图的有向无环图?
1. 新任务可以随时添加(具有或不具有依赖关系) 2. 一些任务可以并行运行
有关拓扑排序,经常提到两种算法:深度优先搜索和Kahn算法。
以下是这两种算法的优缺点: - 深度优先搜索:实现简单,但可能会导致栈溢出。 - Kahn算法:稳定且无栈溢出的风险,但需要使用额外数据结构。
对于我的情况,是否有一种算法更加适合? 是否有其他算法更适合我的情况?
我还有一个词汇问题。给定依赖关系如下: "
c->b
b->a
e->d
这是否被视为一个有向无环图,2个有向无环图(因为e和d不依赖于其他任务),还是一个包含子有向无环图的有向无环图?