确定依赖“事物”的顺序;防爆。订购上班所需的流程

时间:2014-02-09 22:32:47

标签: algorithm

我正在尝试确定我遇到的问题的名称,以便找到解决方案。

一个示例问题。在你早上出门之前,你必须做一些事情。如淋浴,穿衣,吃饭。在别人面前做一些事情是有道理的。比如淋浴后换衣服。给出一系列事物,以及必须在它们之前完成的相应事项,您如何确定这些事物的顺序?

我只是想不出这个问题的名称/用来解决这个问题的算法。我认为可以通过在图表中表示事物并找到通过它的最长路径来解决它?

1 个答案:

答案 0 :(得分:1)

您尝试解决的问题称为依赖关系解析。通常使用topological sorting解决此问题。

基本思路是,如果您必须在任务X之前执行任务Y,则应构建一个边缘指向X到{{}的有向图1}},并对彼此相互依赖的所有其他任务执行相同的操作。然后,对图形执行拓扑排序(如果图中没有循环,则可以执行此操作)以生成对任务的排序,从而确保所有给定任务的依赖关系都在任务之前。