1
4
除非你有无限多的代理,这样一个兼容的代理在一个任务的所有前置任务完成后就可以使用,否则这是一个NP难问题。 < 我的书中也有类似的问题” Algorithms For Interviews " </无耻插头> 以下是本书中的问题和解决方案: 我们需要在M个教室安排N个讲座。有些讲座是其他讲座的先决条件。为了尽快完成所有的讲座,你将如何选择何时何地举行讲座? 解决方案: 我们有一套N个单元的课程和M个教室。只要不需要在同一教室同时进行两次讲课,并且满足所有优先约束条件,就可以同时进行讲课。 安排这些讲座以使完成时间最小化的问题被称为NP完全问题。 这个问题自然是用图来建模的。我们将讲座建模为顶点,从顶点u到顶点v有一条边,如果u是v的先决条件,那么图必须是非循环的,才能满足优先约束。 如果只有一个教室,我们可以简单地按拓扑顺序举办讲座,并在N个时间内完成N个讲座(假设每个讲座的持续时间为单位)。 我们可以通过观察以下情况来发展启发式:在任何时候,都有一组讲课的优先级约束得到满足。如果这个集合小于M,我们可以调度所有的集合;否则,我们需要选择要调度的子集。 子集选择可以基于几个度量:
我们也可以使用这些标准的组合来排序当前可调度的讲座。 如果候选集小于M,我们将安排所有的讲座;否则,我们将选择M个最关键的讲座,并安排那些讲座。我们的想法是,由于它们处于较长的依赖链的起点,因此应该提前安排。 该准则是启发式的,可能不会导致最优调度这是预期的,因为问题是NP完全的。也可以使用其他的启发式方法,例如,我们可以使用依赖于L课的讲课次数作为L课的临界性或标准的某种组合。 |
2
2
维基百科关于 PERT |
Rosie Lomas · 在ggplot中设置数字刻度 1 年前 |
nedlaback · 在O(V+E)图中寻找瓶颈边 6 年前 |
Skampak · R visNetwork:创建新类型的边 6 年前 |
Anuja · 长度l在R中的最短路径 6 年前 |
Cbhihe · 优化Neo4j查询,有条件地创建新关系 6 年前 |
fghjk · 绘制轨迹(python) 6 年前 |
LBerger · 计算图形图像中的名称使用(TensorBoard) 6 年前 |