2 BASIC SYSTEM
The problem of railway plan generation includes sev-
eral subproblems. Typically these have been solved
in order with feedback taking place if a subsequent
subproblem cannot be solved. This is due to the size
of the problem and not to any intrinsic property of
it. Figure 1 illustrates this, the three subproblems de-
noted are not exhaustive.
2.1 Subproblems
There are several subsystems. In order to test the
interdependency mechanisms and to allow a single
Genome to control the details of any plan produced.
The three illustrated involve:
• Timetable delivers the times of arrival and de-
parture, which parts of the track are to be used
and which platforms each train on each journey
at each station shall use. The tracks and platforms
used are determined by the relevant Chromosome.
• Stock Allocation delivers the particular arrange-
ment of rolling stock that make up a particular
train.
• Platform subsystem checks that there are no plat-
form clashes and that each platform used is able to
service the trains that arrive to it and depart from
it. The platform subsystem takes some of its input
from the Timetable subsystem.
Each subproblem has its own requirements either
from the specified requirements of the plan or be-
cause of the output from another subproblem further
specifies the problem. For example, it is not possi-
ble to evaluate whether a platform clash exists until
the arrival and departure times of the various trains
have been determined. All the journeys required are
known at the outset so it is possible to determine a
stock allocation before timetabling, however it is not
possible to determine a good stock allocation with-
out knowledge of the train sequences and times. The
modules are connected in 2 main ways, they depend
on one another for some of their parameters; typically
a timetable will be formed, followed by allocation of
Rolling Stock and then a Crew will be allocated to
the train. However, a change in the Timetable will af-
fect which Rolling Stock are available, and also which
Crews are available.
Early work on our timetabling problem tackled
platform allocation in a major station using real ar-
rival times and a specified platform resource (Clarke
et al., 2009). Glasgow Central has nearly 1000 trains
a day and the system resolved the allocation problem
in under 30 seconds on a fairly modest PC.
This work was encouragingand similar exploratory
work on timetabling after attending a course on rail
timetabling was also encouraging. This resulted in
modules that could address single problems such as
the timetabling and platform allocation separately but
not together. The attraction of being able to build the
plan segments using modules which could be sepa-
rately included, omitted, extended or modified was
powerful. At this stage it was decided to separate the
modules so that this was possible.
Having produced a timetabling module that did
not encompass any Artificial Intelligence but which
just loaded the trains into a schedule, plus a platform
allocation module that applied a Genetic Algorithm
to the problem, the next step was to develop an over-
all architecture which would support the whole prob-
lem. The idea is that the problem specific modules
would have little or no intelligence but would be pa-
rameterised by the requirements file and a parame-
ters file generated by the AI module. The require-
ments file would specify such things as “Train 1F01
leaves Sheffield at 10.00”, which would be part of the
fixed requirements. The parameters would specify
that “Train 1F01 leaves Sheffield from platform 1”;
and would not be part of the fixed requirements but
would be decided by the AI module.
At this point an optimisation framework exists,
based currently on a GA that mixes fixed require-
ments with choices based on a Genome so the plan
generation software responsible for allocating times,
platforms and rolling stock would become deter-
mined. All that would then be required would be to
feedback a utility measure so the AI module can im-
prove its decisions, Figure 2.
There are several difficulties with this, while many
of the decisions about the timetable are fixed and so
may not be changed by the AI system, there are deci-
sions that are known a priori such as which platform a
train is to arrive on. It is relatively straightforward to
determine which decisions are required at this level.
However, it is possible that a train may leave at a time
that results in it catching up an earlier slower train and
as such violates the restrictions that determine howfar
apart trains on the same line must be; this is known as
Headway. A problem arises where a train that can
leave at any time, tries to leave at a time that results in
a headway clash. There are two choices, either change
the time the following train leaves, or change the time
the followed train leaves. So decisions are required
from the AI system that are not known a priori. The
modules therefore have to feed back a list of options
for the AI module to resolve, see Figure 2.
A simple example of this feedback is shown in
Figure 3, which is the initial choices file, with Fig-
TRAIN TIMETABLE GENERATION USING GENETIC ALGORITHMS
171