4
Question Can we discover anything by restricting to subproblems with more structured precedence constraints? Are any approaches we know optimal for these subproblems?

5
Motivation If a subproblem is found to be easy: More information about boundary between easy and hard problems Can easily schedule such instances in real world If a subproblem is found to be hard: General case is also hard, resolving open problem Easier to reason about a problem with more structure

8
Heuristics Critical path: prioritize nodes at the head of the longest path of jobs that still need to run Largest number of successors: prioritize nodes which are a predecessor (direct or indirect) of the most nodes

9
Generalization Can we find other precedence structures for which these heuristics are optimal?

10
Generalization In-tree: each node has one successor Out-tree: each node has one predecessor Both are planar In-tree Out-tree

12
Method Generate many instance with the K-predecessor structure Solve each instance with each algorithm, several times

13
Method Generate many instance with the K-predecessor structure Solve each instance with each algorithm, several times If algorithm performs worse than another algorithm on an instance, cannot be optimal If algorithm’s schedule differs in makespan across trials, algorithm cannot be optimal

14
Instance Generation Add K root nodes to the graph Iteratively add nodes, randomly choosing K predecessors each time Any valid instance has a chance to be generated using this algorithm

15
Results: CP and LNS Neither CP nor LNS is optimal for the K-predecessor problem On some instances, both result in inconsistent C max

18
Results: Planar Graphs Even if we restrict to planar 2-predecessor graphs, there are instances for which both CP and LNS have inconsistent C max Time12345 Machine Machine Machine Time Machine Machine Machine Each schedule satisfies both the CP and LNS heuristics

20
HLF Heuristic A restriction of CP schedules 1.Process nodes from highest to lowest level 2.When finishing a level, if a machine remains available, “jump” a runnable job from the highest possible level 3.If there are multiple candidates, choose the one that allows future jumps to be to as high level as possible

21
Jumps With 2 machines, 16 is processed and a machine is free Node 15 or 10 can be “jumped” to run on the free machine Choose 15, since higher level Image: [Gabow 1982]

22
Generalizing to M >= 3 Not obvious how to generalize Gabow’s algorithm, since it assumes only one job is jumped each time For M = 3, can jump either 1 or 2 jobs each time Can still generate HLF schedules, though less efficiently, and observe performance Assumption: given a choice, we want to jump as many nodes as possible, minimizing idle time