60 likes | 442 Views
Topological Sort Example. This job consists of 10 tasks with the following precedence rules: Must start with 7, 5, 4 or 9. Task 1 must follow 7. Tasks 3 & 6 must follow both 7 & 5. 8 must follow 6 & 4. 2 must follow 4. 10 must follow 2.
E N D
Topological Sort Example This job consists of 10 tasks with the following precedence rules: Must start with 7, 5, 4 or 9. Task 1 must follow 7. Tasks 3 & 6 must follow both 7 & 5. 8 must follow 6 & 4. 2 must follow 4. 10 must follow 2. Make a directed graph and then a list of ordered pairs that represent these relationships.
9 Tasks shown as a directed graph. 1 7 3 8 5 6 4 10 2 Tasks listed as ordered pairs: 7,1 7,3 7,6 5,3 5,6 6,8 4,8 4,2 2,10
1 1 10 2 0 8 2 0 3 6 2 0 2 0 1 Predecessor Counts Successors 1 1 2 2 3 3 4 4 5 5 6 6 8 7 7 1 3 6 8 8 9 9 10 10
4 BAG 5 9 Place all tasks that have zero predecessors in a “bag”. 4 7 BAG 5 9 Step 1. Remove any task from the bag and place in sorted list. Sorted List: 7, Step 2. Update Predecessor and Successor arrays as needed.
10 8 2 3 6 1 3 6 Predecessor Counts Successors 1 0 1 2 1 2 3 1 3 4 0 4 0 5 5 6 1 6 8 7 -1 7 8 2 8 9 0 9 10 1 10
Step 3. Add to bag any tasks that now have zero predecessors. 4 1 BAG 5 9 Step. 4. Repeat steps 1, 2, and 3 until all predecessor counts are -1. (We are performing a “loop” or repetition.)