Golden Ratio Scheduling Policy

Problem Statement

The Ajax Bus Company operates only a single route -- the Clockwise Circle.
They have many buses they can send out, but to save fuel they send only as many
as they need. They might have a dozen buses running on a busy day, but just two
or even one on a quiet day.

Each circuit takes exactly 60 minutes; a bus can do 24 complete circuits
in a 24-hour period. A bus that leaves North Station at 3:00 will arrive
at East Park at 3:15,
South Lake at 3:30 and Westtown at 3:45. Similarly, a bus that leaves
North Station at 3:19 will arrive at the other three stops at 3:34, 3:49,
and 4:04.

When only one bus is running, a passenger will need to wait 30 minutes
on average, and almost 60 minutes worst-case.
As more buses are added, the company wants to reduce the average wait times as
best it can but as we now see, it is subject to a severe constraint.
Each bus, if it's running at all, sticks to its own specific schedule.
For example, bus #2 will leave North station at 1:37, 2:37, 3:37, 4:37, 5:37
and so on, and will always follow that exact same schedule
(if it's in service at all) every day of the week.

As a further constraint, when the company runs N buses, those buses must
be #1, #2, #3, #4, ..., #N. This is the key constraint which dictates the
nature of the problem.
For example, suppose buses #1, #2, #3, #4 are scheduled at 3:00, 3:30, 3:20, 3:40.
When two buses are running the times 3:00 and 3:30 give optimal coverage; average
wait is 15 minutes and maximum wait is 30 minutes.
If the company decides to run a third bus,
it would be best to take #2 out of service and substitute the two scheduled for
3:20 and 3:40 to get 10-minute average and 20-minute maximum wait.
But that is not permitted: With three buses, they must be specifically
#1, #2 and #3, and with the stated schedule this gives 11.7-minute average wait
and 30-minute maximum wait.

(We've presented this problem as a bus scheduling problem but it has real-world
application in scheduling usage of asynchronous-transfer computer networks.)

Solution based on Golden Ratio

Denoting φ = (√5 - 1)/2, and noting that φ * 60 minutes = 37.1 minutes,
the Golden Ratio Policy is to schedule buses every 37.1 minutes in order.
Bus #1 leaves North station at 3:00, Bus #2 at 3:37.1, Bus #3 at 3:14.2 (remember that
all times are modulo 60 minutes), Bus #4 at 3:51.3 (3:14.2 + 37.1), Bus #5 at 3:28.4,
and so on.
You don't get perfect coverage. (Perfect coverage with five buses would be 3:00,
3:12, 3:24, 3:36, 3:48.)
But you get the ability to add buses and keep the coverage nearly perfect.
Buses #6 and #7, for example, would be added at 3:05.5 and 3:42.6 -- filling
the biggest gaps.

Why Did I Write this Page?

So why did I write this page? I didn't invent the Golden Ratio Scheduling Policy and,
elegant as it may be, its real-world importance may not be overwhelming.
But there is a special reason why I think the Golden Ratio Policy is serendipitous.
It depends on the Ratio's special properties.
The Golden Ratio is irrational, of course, but first let's speak a little about rational numbers.

Numbers -- Rational versus Irrational

Practical engineers have a different understanding of rational numbers than mathematicians do.
The number 18/101 = 0.178217821782... is rational by definition, but the number 0.199999999762...
might not be. Yet it is the second number, not the first, which is more likely to cause the
resonance problems that plague some engineering designs.
For such practical purposes, the digits far to the right of the decimal point are irrelevant,
let alone the arbitrarily far-away digits necessary for the mathematical definition of
rationality.

Thus, for practical problems it is 0.199999999762..., a close approximation to
the simple fraction 1/5, that may lead to the behavior associated with simple rational
numbers, and not 0.178217821782..., even though it's the latter
number that's technically rational.

Continued fractions are a technique that may shed light on this matter. Here are the two numbers
we're discussing now, in continued fraction (C.F.) notation.
18/101 = [0; 5, 1, 1, 1, 1, 2, 1]
0.199999999762 = [0; 5, 168067226, 1, 2, 4, 3, ...]
Google or Wikipedia to learn more about
continued fractions. For our purpose it's enough to know that the C.F. form of a number shows
how well it can be approximated by rational numbers. We depict this in the following table.
By convention we'll call the floor integer the 1st approximant and the next largest
Egyptian fraction the second approximant. For our two numbers, these are the same: 0, then 1/5.
But glance at the rest of the table as well.

18/101

almost 1/5

0.178217822

0.19999999976

approximants

1st

0

0

2nd

.200000000 = 1/5

.200000000000

3rd

.166666667 = 1/6

.199999999762

4th

.181818182 = 2/11

.199999999762

5th

.176470588 = 3/17

.199999999762

6th

.178571429 = 5/28

.199999999762

7th

.178082192 = 13/73

.199999999762

8th

.178217822 = 18/101

.199999999762

9th

.178217822 = 18/101

.199999999762

For the first number, watch the continued fraction expansion process struggle to find good rational
approximations. (Since the number is rational it eventually converges
to the exact value, but 13/73 was the only particularly good rational
approximation that it found along the way.)
On the other hand, for the number that was extremely close to 1/5, the second approximant
was quite good and, to the precision shown, we never get better than the
third approximant.

I'm spoiling the suspense slightly ( :-) ), but look at the C.F. form of this hard-to-approximate
number: 18/101 = [0; 5, 1, 1, 1, 1, 2, 1]. I deliberately chose a number with an
early string of 1's in its C.F. -- this is the tip-off that the approximants won't be very good.

Ah heck! Having spoiled the suspense, I'll cut straight to the punchline:
The Golden Ratio (φ) is the most irrational number of all!

The Golden Ratio

The Golden Ratio (approx. 0.618034) can be observed in nature, and in the paintings
of Leonardo da Vinci, but we are concerned here with its applications in computer algorithms.

One application is the Golden Section Search Algorithm. Binary search, in which you narrow
in on a value by splitting residues into equal halves (0.50, 0.50), is the well-known optimal
way to locate a value in a monotone list.
But the Golden
Section search, in which the residue is split (0.618, 0.382), is optimal when it
is the derivative that is monotone in the list. Read more about it at the
Wikipedia link.
It may be a fun exercise for you to prove the optimality of Golden Section search.
You will see that the efficacy derives from the quadratic equation
φ2 + φ = 1This particular equation is so very simple, it should be no surprise that φ is the
solution to a wide variety of problems.

But there are some applications of the Golden Ratio in computer algorithms which
have nothing to do with any quadratic equation. For example, some hashing algorithms
depend on a prime number and a modulus, and the ratio of prime to modulus should not
be approximately a small rational number, or an aliasing "beat" may occur. So a prime
is chosen that's approximately 0.618034 times the modulus.

With the C.F [3; 7, 15, 1, 292, ...] it is no surprise that π has the excellent
rational approximations shown. But with the C.F. [0; 1, 1, 1, 1, 1, 1, ...],
φ is the "most irrational" number of all -- observe how slowly its approximants converge.
(Observe also that these fractions come directly from the Fibonacci series!)

So Why is the Golden Ratio Policy so "Special"?

Does the efficacy of Golden Ratio Scheduling Policy depend on the first key property
of φ: that it is the solution of the simplest non-trivial quadratic equation?
Or on the second key property of φ: that it is the "most irrational" of numbers?

Answer: Both properties are relevant!
The first key property makes the Policy efficacious when the number of buses is small.
The second key property makes the Policy efficacious when the number of buses is large.

If you use 0.6000 (36 minutes) instead of 0.6180 (37.1 minutes) you'd have an approximation
to the quadratic root and would get good behavior for up to five buses. With six
or more buses, however, all buses would use one of the first five schedules.

On the other hand, the ratio (5 - √5)/10 = 0.2764 (13.8 minutes) would get off
to a poor start: schedules with 2, 4, 5, or 6 buses would seem quite poor.
But this ratio is not too close to any small rational numbers (its
C.F. form is [3, 1, 1, 1, 1, 1, 1, 1,...]) and, like φ, works
well when the number of buses is large.