Destroy the graph in minimum number of steps
有一个有向无环图,有N个顶点和M个边。其目的是通过以最少的步数删除图的所有顶点来破坏图。
一步删除规则:
约束条件:n,m<=10^6,图形没有自循环和循环。
哈罗德·N·加布的"双处理器调度的近似线性算法"给出了一种算法。此处为PDF。
其基本思想是将顶点排序为最小级别数(如果忽略约束1,则每个级别都是可以同时删除的所有顶点),然后首先从最高级别删除顶点。
本文给出了更详细的信息和最优性的证明。
编辑
要了解调度与给定问题的关系,请考虑调度一组作业。每个作业对应一个顶点。作业的依赖项对应于定向边。
约束2/3对应于这样的说法:一个作业只能在所有依赖项都已计划好之后才能计划。
约束1表示一次只能调度两个作业(即双处理器调度系统)。