Scheduling 2, 8, 16, Processor: A worker designed to carry out a task. ex. P1, P2 (our two work stations to repair the car) Task: An indivisible unit of work that is not broken up or shared. eg. : Names A (Body work), B (Enginer Repairs), C (Exterior Finish), D (Transmission Repair) Processing Time: For a task, the amount of time required by anyone processor to fully execute the task. eg. : A(4), B(5), C(7), D(7) Precedence Relation: A prerequisite indicating that a task cannot be started before another task is complete. eg. : Precedence is Transitive (e.g. Transitive property in Algebra: “a=b” AND “b=c” implies that “a=c”) That means if “A precedes B” AND “B precedes C” > “A precedes C. “ We say “A precedes C” is our implicit relation. But precedence cannot form cycle (this is all happening in time, and time is increasing) Independent Tasks: A pair of tasks not bound by any precedence relations. eg. “A independent of B”, “B independent of D”, “D independent of C”, etc. everything except “A independent of C” because that’s a precedence relation. Schedule: Ordering of tasks like this: Finishing Time: The total time elapsed between the start and the end of a project. eg. Any schedule can give Optimal Schedule : A schedule with the smallest possible finishing time. Optimal Finishing Time: The finishing time under an optimal schedule. This section is entirely about formally stating problems we encounter all the time. We have formally defined mathematical properties of a given problem, abstracting the problem into mathematical language. Having done that, we now take our wonderfully defined properties and are able to formulate the problem using graph theory. Directed Graphs: Asymmetric Relationship: A relationship between pairs of objects that need not be reciprocal. eg. Graphically it looks like a someone pointing at something then saying why. Digraph: A graph with directed edges (or arcs) used to describe an asymmetric relationship. Arcs: An arc “XY” , “(X, Y)”, “X>Y” indicates a relationship goes from X to Y. ArcSet: A list of all the arcs in a digraph. Incident to (from): Given an arc XY, X is “incident to Y”, Y is “incident from X”. Adjacent Arcs: Arc AB is adjacent to arc XY if and only if B=X. Path: From X to Z, a sequence of distinct adjacent arcs, starting at X and ending at Z. Cycle: A sequence of distinct adjacent arcs that starts and ends at the same vertex. Outdegree: For a vertex X, the number of arcs having X as their starting vertex. Indegree: For a vertex Y, the number of arcs having Y as their ending vertex. Project Digraph: A digraph having the tasks (including imaginary tasks START and END) as vertices and the precedence relations as arcs. The processing times are included with the tasks for convenience. PRIORITY LISTS SCHEDULING Last Time: We learned about: ● Scheduling, using Processors, Tasks, and Precedence Relations to make a priority schedule ● We learned about Directional Graphs (Arcs instead of Edges) and showed using the Precedence Relations to make a Project Digraph ● Using the Project Digraph, we can draw a schedule. Given a Project Digraph, any and all schedules can be found from a combination of a Project Digraph and a Priority List. Definition: Priority List: An ordered list (permutation) of tasks. eg. Five tasks: A,B,C,D,E Lists: ABCDE, ACDBE, EADCB, DACBE, CEABD, etc. There are N! priority lists. We’ve seen this before Priority List Scheduling Algorithm: 1) Assign all ready and priority tasks in the schedule to processors. If a task has priority but is not ready, skip it and come back next assignments. 2) The next processor to finish gets the next ready and priority task. If no such task exists at this time, label this time as IDLE until the next task finishes. Priority List Model: A model for scheduling where ready tasks are executed in the order given in the priority list, with ineligible tasks skipped over until they become ready. Optimal Priority List: A priority list that generates an optimal schedule. DECREASING TIME ALGORITHM Decreasing Time Priority List: A priority list where the tasks are listed in decreasing order of processing times ( longer first, shorter last). Decreasing Time Algorithm: Creates a schedule by choosing a decreasingtime priority list and applying the prioritylist model to it. Problems: 40 (41), 42 (43), 48 (49) Last Time: We are trying to schedule tasks to be completed. We have a bunch of “precedence relations”/ a “project digraph” / a “set of constraints” that keep us from doing anything we want. What we want is to follow our priority list. Every Scheduling Problem Requires Four Things: 1) Number of Processors 2) The Number of Tasks and their Processing Times (e.g. A(4) is task A and takes 4 hours) 3) Precedence Relations OR Project Digraph (our constraints) 4) Priority List Number (4) is what we are concerned with, because any schedule can be obtained by a choice of Priority List, which means the schedule we want (usually the shortest schedule) can be found by clever choice of Priority List. To Solve a Schedule: I will either 1) Give you a Priority List 2) Tell you to use the Decreasing Time Priority List 35 39 FINALLY: 3) Tell you to use Critical Path Priority List Critical Time (of a Vertex): From the Project Digraph: The Longest Time Path from Vertex to END. BackFlow Algorithm: 1) Start at vertex END(0). Its critical time is 0. Label it “solved”. 2) Find all vertices incident to END, their critical times are their Processing Time + Zero. Label it “solved” 3) For any arc incident to “solved” vertices, add the Processing time of the Tail and the Critical Time of Head of the arc to find the critical 4) Continue until START. Critical Path Priority List: Using the critical times, list the tasks from greatest to least. Compare this to Decreasing Time, which used the Processing Times and listed from greatest to least. Example: 49 55
© Copyright 2026 Paperzz