ArticleslgStudy

computer science

List scheduling

List scheduling is a computer science topic covered in the lgStudy science library. This page brings together a partial reference excerpt, illustrations, worked examples, real-world applications and a short study plan, so you can understand List scheduling rather than just read about it. In short: List scheduling is a greedy algorithm for Identical-machines scheduling. The input to this algorithm is a list of jobs that should be executed on a set of m machines.

Key takeaways

  • List scheduling belongs to computer science; place it in that map before memorising details.
  • Learn the definition first, then one example that makes the definition concrete.
  • Connect List scheduling to a quantity you can measure, compute or draw — that is where exam questions come from.
  • Reproduce the core statement of List scheduling from memory before moving on to harder problems.

Reference excerpt

List scheduling is a greedy algorithm for Identical-machines scheduling. The input to this algorithm is a list of jobs that should be executed on a set of m machines. The list is ordered in a fixed order, which can be determined e.g. by the priority of executing the jobs, or by their order of arrival. The algorithm repeatedly executes the following steps until a valid schedule is obtained:

Take the first job in the list (the one with the highest priority). Find a machine that is available for executing this job. If a machine is found, schedule this job on that machine. Otherwise (no suitable machine is available), select the next job in the list.

Example Suppose there are five jobs with processing-times {4,5,6,7,8}, and m=2 processors. Then, the resulting schedule is {4,6,8}, {5,7}, and the makespan is max(18,12)=18; if m=3, then the resulting schedule is {4,7}, {5,8}, {6}, and the makespan is max(11,13,6)=13.

Performance guarantee The algorithm runs in time O ( n ) {\displaystyle O(n)} , where n is the number of jobs. The algorithm always returns a partition of the jobs whose makespan is at most 2 − 1 / m {\displaystyle 2-1/m} times the optimal makespan. This is due to the fact that both the length of the longest job and the average length of all jobs are lower bounds for the optimal makespan. The algorithm can be used as an online algorithm, when the order in which the items arrive cannot be controlled.

Ordering strategies Instead of using an arbitrary order, one can pre-order the jobs in order to attain better guarantees. Some known list scheduling strategies are:

Highest level first algorithm, or HLF; Longest path algorithm or LP; Longest-processing-time-first scheduling, or LPT; this variant decreases the approximation ratio to 4 3 − 1 3 k {\displaystyle {\frac {4}{3}}-{\frac {1}{3k}}} . Critical path method. Heterogeneous Earliest Finish Time or HEFT. For the case heterogeneous workers.

Anomalies The list scheduling algorithm has several anomalies. Suppose there are m=3 machines, and the job lengths are: 3, 2, 2, 2, 4, 4, 4, 4, 9Further, suppose that all the "4" jobs must be executed after the fourth "2" job. Then, list scheduling returns the following schedule: 3, 9 2, 2, 4, 4 2, [2 idle], 4, 4 and the makespan is 12. Anomaly 1. If the "4" jobs do not depend on previous jobs anymore, then the list schedule is:

3, 4, 9 2, 2, 4 2, 4, 4 and the makespan is 16. Removing dependencies has enlarged the makespan. Anomaly 2. Suppose the job lengths decrease by 1, to 2, 1, 1, 1, 3, 3, 3, 3, 8 (with the original dependencies). Then, the list schedule is:

2, 3, 3 1, 1, 3, 8 1, [1 idle], 3 and the makespan is 13. Shortening all jobs has enlarged the makespan. Anomaly 3. Suppose there is one more machine (with the original lengths, with or without dependencies). Then, the list schedule is:

3, 4 2, 4, 9 2, 4 2, 4 and the makespan is 15. Adding a machine has enlarged the makespan.

The anomalies are bounded as follows. Suppose initially we had m1 machines and the makespan was t1. Now, we have m2 machines, the dependencies are the same or relaxed, the job lengths are the same or shorter, the list is the same or different, and the makespan is t2. Then: t 2 t 1 ≤ 1 + m 1 − 1 m 2 {\displaystyle {\frac {t_{2}}{t_{1}}}\leq 1+{\frac {m_{1}-1}{m_{2}}}} .In particular, with the same number of machines, the ratio is 2 − 1 m {\displaystyle 2-{\frac {1}{m}}} . A special case is when the original schedule is optimal; this yields the bound 2 − 1 m {\displaystyle 2-{\frac {1}{m}}} on the approximation ratio.

References

Worked examples

Example 1 — a first encounter with List scheduling

Start with the simplest possible case. Write down what List scheduling claims or describes in one sentence, then invent the smallest concrete situation in which that sentence is true. In computer science, the smallest case is usually a single object, a single equation or a single measurement. Check that every symbol or term in your sentence has a meaning in that case.

Example 2 — changing one variable

Take the situation from Example 1 and change exactly one quantity: double it, halve it, or set it to zero. Predict what should happen to List scheduling before you calculate. Comparing your prediction with the result is the fastest way to find out whether you understand the idea or only the words.

Example 3 — an exam-style question

Typical questions about List scheduling ask you to (a) state it precisely, (b) apply it to given data, and (c) explain a limitation. Practise writing all three answers in under five minutes; the third part is what separates a full-mark answer from an average one.

Applications of List scheduling

In research
List scheduling appears in computer science research whenever the underlying quantities have to be modelled precisely. Papers usually cite it as a starting assumption and then explore where it breaks down.
In technology and industry
Engineering practice reuses List scheduling in design rules, simulations and safety margins. Knowing the idea lets you read a specification sheet and understand why the numbers look the way they do.
In the classroom
List scheduling is common in secondary-school and first-year university syllabi. It links to neighbouring topics Scheduling algorithms, so understanding it makes those chapters shorter.
In everyday life
Look for List scheduling outside the textbook — in sport, cooking, traffic, electronics or the sky above you. An example you found yourself is remembered far longer than one you were given.

Affiliate

Preply — study more efficiently by working with a personal tutor. 50% off.

How to study List scheduling in 20 minutes

  1. Read the reference excerpt below once, without taking notes.
  2. Close the page and write down what List scheduling means in your own words.
  3. Compare your version with the excerpt and mark what you missed.
  4. Work through the three examples above with pen and paper.
  5. Explain List scheduling out loud to somebody else — or to Teacher Smith in the lgStudy chat.

Frequently asked questions

What is List scheduling in simple terms?

List scheduling is a greedy algorithm for Identical-machines scheduling. The input to this algorithm is a list of jobs that should be executed on a set of m machines.

Why does List scheduling matter?

Because it connects several computer science ideas at once: it gives you a definition you can apply, a quantity you can calculate, and a way to check whether a result is plausible.

How should I study List scheduling?

Read the excerpt, restate it from memory, then work through the examples and applications listed on this page. The five-step study plan above takes about twenty minutes.

What does this page cover?

It gives you a compact reference excerpt plus original lgStudy explanations, examples, applications and study material on List scheduling.

Tags

  • Scheduling algorithms

Keep exploring