受节点“值”约束的拓扑排序?

时间:2018-07-03 01:25:48

标签: algorithm graph

如果我有向无环图,其顶点表示任务,并且其边缘表示依赖关系,并且每个顶点可能包含24小时时间格式的“值” :(例如:1600、1700、1130),则该值表示该任务可以开始的最早时间。

例如:

Task C depends on Task B1's completion

Task C also depends on Task B2' completion

Task B1 depends on A's completion

Task B2 depends on A's completion, B2 also has a value of 1600(4pm), which means it can only start at or after 1600

Task A depends on nothing, A also has a value of 1500 (3pm), which means it can only start at or after 1500. 

这将是一个具有4个顶点(任务)的图形:A,B1,B2,C。作业B1或B2仅在A完成时才能运行,而作业C仅在B1和B2都完成时才能运行。 / p>

鉴于此图,我如何输出经过时间优化的正确的任务完成序列顺序。例如:在这种情况下,这两个都是正确的作业序列:

A->B1->B2->C
A->B2->B1->C

但是序列1的时间更优化,因为在序列2中,我们必须等到1600年才能运行B2,同时保持所有其他内容不变。在顺序1中,我们可以先运行B1,然后等到1600。虽然总完成时间可能没有变化,但优化意味着“尽早运行每个作业”。同样为了简单起见,我们不考虑作业时间:假设每个作业在运行后立即完成。

所以问题是,什么是用于输出这种时间优化序列的明智算法?我知道,不考虑时间优化,这只是一种拓扑排序,但是如何增强该算法以实现时间优化?

0 个答案:

没有答案