Upload
bruno-reeves
View
218
Download
3
Tags:
Embed Size (px)
Citation preview
Spring 2015Mathematics in
Management Science
Critical Path Analysis
Scheduling Problems
Directed Graphs
Critical Paths
Earliest Completion Time
Scheduling Problems
Very different from Routing Problems.
But, can be represented by a weighted, directed graph.
Here the weights are on the vertices instead of the edges.
Problem Minimize time required to complete a list of tasks.
This part of Scheduling Problem.
Critical Path Analysis
For now, assume have unlimited supply of qualified help.But, have restrictions on the order in which some tasks can be completed.
Think about building a house.
Example
You have responsibility to prepare Thanksgiving dinner.
Menu:
turkey, stuffing, potatoes, gravy, pie
The dinner will require completing a number of tasks.
ExampleThe dinner will require completing a number of tasks. E.g.,• making the stuffing• stuffing the turkey• preheating the oven• peeling the potatoes• making the pie crust, etc., etc.
Each task requires certain time to finish
ExampleWith unlimited help, can assign each task to different person.
But, not all tasks can be worked on at the same time!
Some tasks cannot be started until one or more other tasks are finished. E.g.,crust made before pie is filled, before baked
turkey cleaned, & stuff made, before stuffed
Order-Requirement DigraphCan represent restrictions on task order via weighted digraph called order-requirement digraph.
Abbreviated example (without weights yet):Thaw
Turkey
Clean Turkey
Make Stuffing
Stuff Turkey
Bake Turkey
Cook Potatoes
Mash Potatoes
Make Gravy
Carve
Serve
Vertices represent tasks and the directed edges show the restrictions on when a task can “run”.
Order-Requirement Digraph
Thaw Turkey
Clean Turkey
Make Stuffing
Stuff Turkey
Bake Turkey
Cook Potatoes
Mash Potatoes
Make Gravy
Carve
Serve
work “flows” from left to right, following the arrows.
A task can be started only after everything “upstream” from it has been completed.
Order-Requirement Digraph
Also need to know task time; amount of time required to complete a task.
These are wts added to the vertices.
Example order-requirement digraphs:
Order-Requirement Digraphs
Tasks and order requirement info given via directed graphs (digraphs).
A digraph (directed graph) is a graph with arrows on edges that correspond to order requirements.
Vertices correspond to tasks; label with weights (numbers) which give the processing times for task.
All together order-requirement digraph represents a “job”.
A path in order-requirement digraph is sequence of tasks that can be done in order (if other tasks completed).
The length of a path is the sum of the task times along the path; this is the minimum amount of time required to complete the sequence of tasks.
Easiest question: What is shortest amount of time it takes to complete a job (so, all tasks done) given unlimited amount of help?
Answer: the length of the longest path. (Why?)
A critical path in an order-requirement digraph is a longest path.
(There could be more than one.)
Critical Paths
Look at all paths; each has an assoc completion time (sum of all processing times for tasks along the path).
A path with the longest processing time is called a critical path.
Can find these via backflow algorithm; we use eyeball approach.
Earliest Completion Time
The shortest possible time it takes to complete the overall project.
You cannot do better than this.
A major factor in the overall cost.
Just the length of a critical path:
ECT=length of critical path
Example
Paths & their times:
A-B-C 55
D-C 52
D-E 47
A-B-C is critical path
ECT = length of A-B-C = 55
Shortening ECT
Problem: How to shorten ECT?• Which task times should we decrease?• By how much will this decrease the ECT?
• Must shorten tasks on critical path.• May introduce a new critical path.
ExamplePaths & their times:
A-B-C 55
D-C 52
D-E 47
A-B-C is critical pathECT = length of A-B-C = 55
Shortening task D has no effect on ECT.
Suppose shorten task A by 5 (so now takes 8).
By how much is ECT decreased? new ECT=52
Machine Scheduling Problem
How to schedule tasks on identical processors (machines, humans, robots, etc.) to finish a project in as short a time as possible.
Attack via List Processing Algorithm.