rolling stock rostering - uni konstanzalgo.uni-konstanz.de/lehre/ss02/rails/mergner.pdf · rolling...

21
Rolling Stock Rostering Seminar on Algorithms and Models for Railway Optimization University of Constance Matthias Mergner SS 2002 1

Upload: vuonganh

Post on 06-Mar-2018

214 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Rolling Stock Rostering - Uni Konstanzalgo.uni-konstanz.de/lehre/ss02/rails/mergner.pdf · Rolling Stock Rostering Seminar on Algorithms and Models for Railway Optimization University

Rolling Stock Rostering

Seminar on Algorithms and Models for Railway Optimization

University of Constance

Matthias Mergner

SS 2002

1

Page 2: Rolling Stock Rostering - Uni Konstanzalgo.uni-konstanz.de/lehre/ss02/rails/mergner.pdf · Rolling Stock Rostering Seminar on Algorithms and Models for Railway Optimization University

Contents

1.Introduction

2. Basic Rolling Stock Rostering2.1 First Model2.2 The “Minimum perfect bipartite matching algorithm” to solve RSR2.3 The “Fast rostering algorithm” to solve RSR2.4 RSR – E 2.5 About general forms of solutions2.6 The complexity of the RSR-M and the RSR-ME problem

3. Minimum circulation of railway stock3.1 The problem Amsterdam - Vlissingen3.2 A model to the problem Amsterdam – Vlissingen with one type of train3.3 A model to the problem Amsterdam – Vlissingen with more types of

trains3.4 Integer Programming Trick

4. Conclusion5. References

2

Page 3: Rolling Stock Rostering - Uni Konstanzalgo.uni-konstanz.de/lehre/ss02/rails/mergner.pdf · Rolling Stock Rostering Seminar on Algorithms and Models for Railway Optimization University

1. Introduction

To a given schedule the train companies have to figure out how many trains they need and how toassign the trains, so that the schedule is satisfied. Of course the train companies want to use as lesstrains as possible, in order to minimize their costs. More precisely: to a given train schedule wehave to find the minimum number of trains such that we meet the schedule. This problem is calledthe basic rostering problem. We refer to it as the RSR problem.

Here is an example for a schedule:

Also the train companies have more things to take into account than just the information that iscontained in the schedule. This additional information are the constraints of the basic rosteringproblem.Constraints for example are:

� Trains have to be maintained regularly� All passengers should have a seat� Very few empty rides� Trains need a place to rest before they take over the next ride� etc.

So a solution for a rolling stock rostering problem to a given schedule is a train assignment with aminimum number of trains, subject to various constraints.The train assignment is still done by hand. This is not an easy task and needs lot of humanexpertise. The Swiss Federal Railways SBB for example needs several man years of labor tomodify the train assignment from one year to the other. Getting the train assignment is a very slowprocess and we have no measure of how good they are.In this report mainly two different ways of modeling this problem are introduced, so that we cansolve it with already existing algorithms. We will not care too much about the constraints, becausethey would make the modeling process too difficult: we will look at the basic rolling stock rosteringproblem (RSR). But even these not perfect models can be useful as an initial assignment to traincompanies.

3

Page 4: Rolling Stock Rostering - Uni Konstanzalgo.uni-konstanz.de/lehre/ss02/rails/mergner.pdf · Rolling Stock Rostering Seminar on Algorithms and Models for Railway Optimization University

2. Basic Rolling Stock Rostering

2.1 First Model

To build our first model we take the Basic Rolling Stock Rostering problem (RSR) and make somesimplifying assumptions.

1. The number of arrival events equals the number of departure events at each station.2. All trains are identical.3. All routes are periodic (for example: each route in the input runs every day)

Under these assumptions, the problem we are going to look at is the following: given a trainschedule, find the minimum number of trains such that Before we look at the model in detail I would like to introduce it with the help of two easyexamples.

1. Schedule

Dep. Time ArrivalTime

Station A to Station B 08:00 14:00

Station B to Station A 16:00 22:00

2. Schedule

Dep. Time ArrivalTime

Station A to Station B 08:00 14:00

Station B to Station A 10:00 16:00

In our first model we will represent these schedules with the following diagrams:

In this model each station and arrival event (departure event) is represented by a vertex. The routesare symbolized by the arcs between the vertices. To the diagram we will add the waiting and

4

Page 5: Rolling Stock Rostering - Uni Konstanzalgo.uni-konstanz.de/lehre/ss02/rails/mergner.pdf · Rolling Stock Rostering Seminar on Algorithms and Models for Railway Optimization University

overnight waiting arcs until each vertex is connected to exactly two arcs.

In these completed diagrams we now can find cycles. In our two simple examples we have only onecycle at the time. For the first example we have

[(A;8:00 to B;14:00), wait, (B;16:00 to A;22:00, overnight-wait]

as a cycle and in the second example we get the following cycle:

[(A;8:00 to B;14:00), overnight-wait, (B;10:00 to A;16:00); overnight-wait].

The next example is a little more complex, but is to be treated in the same way as the previousexamples:

In general we have a graph G=(V,A) where V is the vertex set and A is the arc set. Every vertex vrepresents an event, where departure time/station characterizes an departure event and arrivaltime/station characterizes an arrival event respectively. Every arc represents a route or a wait. In thegraph we find cycles. To each cycle we can relate a time measured in days. This time is composedof the traveling time and the waiting time. To answer the question how many trains we need tosatisfy the schedule we just have to look a the length of the cycle. If a cycle is k days long, than kdifferent trains are needed. If we have more than one cycle, we just have to add up the amount of

5

Page 6: Rolling Stock Rostering - Uni Konstanzalgo.uni-konstanz.de/lehre/ss02/rails/mergner.pdf · Rolling Stock Rostering Seminar on Algorithms and Models for Railway Optimization University

trains we need for each of the cycles. Determining the amount of trains as describe above, we willhave enough trains to serve our schedule, because for a cycle that is k days long, one train needs kdays to serve all the routes that are on it. So k trains would just need one day to serve all the routes.That is exactly what we want.There are different algorithms that can be used to implement our model on a computer. You can usethe

� Minimum perfect bipartite matching algorithm� Min-cost circulation algorithm� Linear programming� Fast basic rostering algorithm� etc.

I would like to introduce the “Minimum perfect bipartite matching algorithm” and the “Fastrostering algorithm”.

2.2 The “Minimum perfect bipartite matching algorithm” to solve RSR

For the “Minimum perfect bipartite matching algorithm” we consider two sets of vertices, one setwith all the arrival events and the other set with all the departure events. For each arrival event wemake an arc to all the departure events of the same station. The cost of the arcs is the waiting timebetween arrival and departure.

We consider then the directed graph G = (V,A), with c: A → R, where

v = (Station, Time) is an element of the vertex set V,

a = [(Station X, Arrival-Time), (Station X, Departure-Time)] is an element of the arc set A

and c(a) = waiting -time between arrival and departure, for every a ∈ A

Let's look at an easy example for the model

The algorithm now finds a perfect matching with minimized waiting time. Since the traveling timeof the routes is fixed, we can now easily calculated what is the minimum length of a cycle in ourproblem and therefore we have found at the same time the minimum number of trains needed forour problem.

6

Page 7: Rolling Stock Rostering - Uni Konstanzalgo.uni-konstanz.de/lehre/ss02/rails/mergner.pdf · Rolling Stock Rostering Seminar on Algorithms and Models for Railway Optimization University

2.3 The “Fast rostering algorithm” to solve RSR

Another way of implementing our model on a computer uses the “Fast basic rostering algorithm”.In this algorithm the idea is to figure out how many trains each station needs at the beginning of theday, so that the station will notrun out of trains during the day. Therefore we have to create a time-sorted lists of all routes into or out of each station. To calculate the stock we need at the beginningof the day we replace in the lists a departure-route with a “-1” and an arrival-route with a “+1”. Thesmallest number we get by adding up these numbers successively, starting with the number relatedto the earliest event, gives us the amount of trains we need at the beginning of the day at a station.Since the station begins each day with enough trains so that it will not have a negative number dueto departures during the day. In the last step we have to assign our trains to the routes.

Fast rostering algorithm:

1. For each station create a list of all routes arriving or departing at that station.

2. For all lists sort departures and arrivals by time.

3. For each station give each departure-route the value -1 and an arrival-route the value +1.

4. For each station add up the values of the departures and the arrivals, the lowest negative numberyou get during this adding process is the number of trains you need for that station.

5. Assign the trains to the routes

Let's look at an example from before to understand the “Fast basic rostering algorithm”.

1. First the algorithm creates the lists:

Station A (C10,A22); (A6,B12)

Station B (B14,C22); (A6,B12)

Station C (E10,C24);(C6,D10);(B14,C22); (C10,A22)

Station D (D12,E18); (C6,D10)

Station E (D12,E18); (E10,C24);

7

Page 8: Rolling Stock Rostering - Uni Konstanzalgo.uni-konstanz.de/lehre/ss02/rails/mergner.pdf · Rolling Stock Rostering Seminar on Algorithms and Models for Railway Optimization University

2. Now we time-sort the list:

Station A (A6,B12);(C10,A22)

Station B (A6,B12);(B14,C22)

Station C (C6,D10);(C10,A22);(B14,C22); (E10,C24)

Station D (C6,D10);(D12,E18)

Station E (E10,C24);(D12,E18)

3. Now we replace the routes in the list with “+1” and “-1” respectively.

Station A -1;+1

Station B +1;-1

Station C -1;-1;+1;+1

Station D +1;-1

Station E -1;+1

4. Adding up the 1's successively:

Station A: -1, -1+1 = 0 1 train at AStation B: +1, +1+(-1) = 0 No train at BStation C: -1,-1+(-1) = -2, -2+ 1= -1,-1+1 = 0 2 trains at CStation D: +1,+1+(-1) = 0 No train at DStation E: -1,-1+1 = 0, 1 train at E

So altogether we need 4 trains for that schedule. Like we found out before, since the cycle is fourdays long

5. In last step we have to assign the four trains to the routes.

(A6, B12)→(B14,C22)-O->(C6, D10)→(D12, E18)-O->(E10, C24)train 1 train 2 train 3

-O->(C10,A22)-O-F->(A6, B12)...train 4

2.4 RSR – E

In a next step we take the RSR-problem and allow empty train movements, we consider it the socalled RSR – E problem: doing that we do not need to have the same number of departure andarrival events at each station to get a feasible problem and our model will be less restrictive. To a given schedule we will get part of the diagrams like we did before and in addition we have toput in the “empty rides” – arcs until every vertex is connected to exactly two arcs.Now we are in the same situation as were before and we can use the same algorithms to implement

8

Page 9: Rolling Stock Rostering - Uni Konstanzalgo.uni-konstanz.de/lehre/ss02/rails/mergner.pdf · Rolling Stock Rostering Seminar on Algorithms and Models for Railway Optimization University

the problem on a computer.I just want to show this with the help of the “Minimum perfect bipartite algorithm”.

The input for the “Minimum perfect bipartite matching algorithm” to solve basic RSR-E is:

Directed graph G = (V,A), with c: A →R, where

v = (Station, Time) is an element out of the vertex set V,

a = [(Station X, Arrival-Time), (Station X, Departure-Time)] and b = [(Station X, Arrival-Time), (Station Y, Departure-Time)] are elements out of the arc

set A

c(a) = waiting-time between arrival and departure for every a ∈ Ac(b) = driving-time from X to Y + waiting time before departure for every a ∈ A

2.5 About general forms of solutions

We restricted ourselves in the first model to a periodic situation (e.g. one day train assignment) anddeveloped tools to solve this problem. To find an algorithm for a more general problems is not aseasy and I do not want to do it here. But the following theorem at least tells us, that in a nonperiodic situation you need as much trains as in a periodic situation, that we studied above. So thistheorem can be useful if you have found a solution for a non periodic situation and want to know itis optimal.

Theorem:For RSR (RSR-E, RSR-M) the solution found to a one day train assignment is an optimal solutionof the problem.

Note: The theorem doesn't hold for the RSR – ME problem. RSR – M stands for RSR withmaintenance and RSR – ME stands for RSR with maintenance and empty rides.

I don' t want to proof the theorem here. Refer to [1] for the proof. I want to show instead, why thetheorem doesn't hold for the RSR – ME problem. We therefore look at following example:In this example we have six stations, and at two of them, M1 and M2 trains can be maintained. We

need at least two trains in this problem, because two train-routes are simultaneously scheduled. In atwo day train assignment we would not need more than two trains. Train 1 services station A and B

9

Page 10: Rolling Stock Rostering - Uni Konstanzalgo.uni-konstanz.de/lehre/ss02/rails/mergner.pdf · Rolling Stock Rostering Seminar on Algorithms and Models for Railway Optimization University

and train 2 services station C and D. In addition on one day train 1 will take over the mid-day routesand train 2 will get serviced. On the next day it is the other way around.But if we want to have a one day train assignment we can not do it this way. We would need a thirdtrain to service the mid-day routes. We assumed that all empty rides not shown are to lengthy tohelp. So for example train 1 can not go to M1 and then go back to station A to take over the mid-day routes.So this example show us that a one day train assignment is not optimal in a more general situation.

2.6 The complexity of the RSR-M and the RSR-ME problem

As soon as you take maintenance into account the rostering problem becomes hard. This fact isexpressed in the following theorem:

1.Theorem: The RSR–M and RSR–ME problem are APX–hard.

APX-hard means that there exists a constant r>1 for which even approximating the problem withina factor r is NP-hard.

Refer to [1] for the proof.

We have now learnt that the try of approximating the RSR-M and RSR-ME better and better willalways lead to an algorithm with a non-polynomial run-time. But there exits polynomialapproximation algorithms and I will show how they work, while I am proofing the next theorems.

2.Theorem:The RSR–M problem admits a polynomial 2-approximation algorithm.

3.Theorem:The RSR-ME problem, restricted to empty movements with symmetric cost, admits a polynomial-time 5–approximation algorithm.

Proof of theorem 1:

To find the solution of the basic RSR problem we can use the “Fast Rostering Algorithm”. Its run-time is polynomial, with a cost of Ctriv. The solution is a set of cycles, but not on every cycle there isnecessarily a maintenance station. The basic idea is to melt the cycles together, until on every cycleis a maintenance station. If there is a cycle that can not be melted together with a cycle having amaintenance station, than the problem is not feasible.

Let k be the number of cycles in the initial solution of the “Fast Rostering Algorithm”. Than wehave that

k ≤ Ctriv

because each cycle of the initial solution is at least one day long. If we have k cycles at thebeginning we can at most melt k-1 times cycles together. So for the cost C of our solution for theRSR-M problem we have:

C ≤ Ctriv + (k-1).

10

Page 11: Rolling Stock Rostering - Uni Konstanzalgo.uni-konstanz.de/lehre/ss02/rails/mergner.pdf · Rolling Stock Rostering Seminar on Algorithms and Models for Railway Optimization University

since the time of one day is sufficient to combine two cycles. In addition we know that

Ctriv ≤ OPT

because care for maintenance can the problem just make harder. So altogether we have

C ≤ Ctriv + (k-1) ≤ 2 * Ctriv ≤ 2*OPT

⇒ C ≤ 2*OPT.Therefore the RSR–M problem admits a polynomial 2-approximation algorithm.

This diagram illustrates the process of melting the cycles together:

Proof of theorem 2:

11

Page 12: Rolling Stock Rostering - Uni Konstanzalgo.uni-konstanz.de/lehre/ss02/rails/mergner.pdf · Rolling Stock Rostering Seminar on Algorithms and Models for Railway Optimization University

The only difference to the proof of theorem 1 is the fact that we now can melt cycles together thatdo not have a station in common. For this melting process we need empty train rides. We willassume that an empty movement from a station S1 to a station S2 is the same as the cost the otherway around. For such a melting process we have to add two routs (the empty movements) they willhave a cost of a maximum of 2 days and we have to connect these extra routes to our initial cycles.That also costs at most 2 more days.

Example for this process:

So altogether we have

C ≤ Ctriv + 4 * (k-1) ≤ 5*OPT

⇒ C ≤ 5*OPT.

Therefore the RSR-ME admits a polynomial-time 5–approximation algorithm.

12

Page 13: Rolling Stock Rostering - Uni Konstanzalgo.uni-konstanz.de/lehre/ss02/rails/mergner.pdf · Rolling Stock Rostering Seminar on Algorithms and Models for Railway Optimization University

3. Minimum circulation of railway stock

3.1 The problem Amsterdam - Vlissingen

Again we are looking for a train assignment to a given schedule.

Schedule:

But this time we want to take some constraints into account. The characteristics of our problem are:

� We have two-way train units each consisting of 3 carriages.� The number of seats in any unit is:

First class 38

Second Class 163

� They can be coupled or decoupled together at the stations to maximum of 5 units = 15carriages.

� The number of train units staying overnight at a station should be constant during theweek.

In this problem we can change the length of the trains by coupling or decoupling them together. Themaximum number of trains that can be coupled together follows from the length of the stationplatforms, the curvature of bends, the required acceleration speed, etc. Since the trains need a place

13

Page 14: Rolling Stock Rostering - Uni Konstanzalgo.uni-konstanz.de/lehre/ss02/rails/mergner.pdf · Rolling Stock Rostering Seminar on Algorithms and Models for Railway Optimization University

to rest overnight and will be cleaned in the evening it makes sense to demand the same number oftrains at each station every night.Since we want to take the number of passengers using the trains into consideration we need someinformation about the expected number of passengers. This information is given in the followingpassenger list.

Passenger List:

We do not want to consider the regular maintenance of the stock. Train companies usually handlethis problem by adding up a fixed percentage of trains on top of the calculated stock.

3.2 A model to the problem Amsterdam – Vlissingen with one type of train

We will model this problem as a network, so that we can use an already existing network algorithmto solve this problem.The construction of this directed graph G = (V,A) is very similar to that of the graph from section 2.Again every event (Station,Time) will be related to a vertex. The routes are symbolized as the arcsbetween the vertices, but this time they are directed. Now we have to add all the waiting arcs again.In this model waiting arcs will be only between events on the same station with successive times.To complete our directed graph we add the overnight waiting arcs. The time determines thedirection of the arcs. The trains will be described as a function f : A → N0 on the arcs. On the route-arcs the functiondenotes the number of units deployed on the routes and on the waiting-arcs it describes the numberof units resting at that station. In order to satisfy the passenger constraints and the maximum number of units per train,thefollowing condition must hold:

(passengers on route)/(passengers per unit) ≤ f(a) ≤ 5

The last condition in our model does not distinguish between first and second class passengers. Thatis no problem because we will use this model for first class passenger and second class separatelyand than take maximum of the two results at the end. Our model meets automatically the constraint that the number of train units staying overnight at astation should be constant during the week. the above defined function f is a circulation, because all vertices are transshipment vertices. Thetask is now to minimize the total number of train units in the system. Therefore we only have tominimize the train units on all the overnight arcs, since the total number of trains on the overnightarcs, is the total number of trains in the system.So we have to minimize:

14

Page 15: Rolling Stock Rostering - Uni Konstanzalgo.uni-konstanz.de/lehre/ss02/rails/mergner.pdf · Rolling Stock Rostering Seminar on Algorithms and Models for Railway Optimization University

a A °

f a where A° denotes the set of overnight arcs.

So we get the model:

Directed graph G = (V,A) whereV is the Vertex set and every V ∈ v = (Station, Time)

A is the Arc set and every a ∈ A represents a route or a wait (day and night)

f :A→N0

f(route) = number of units on the routef(waits) = number of units waiting at the station

(passengers on route)/(passengers per unit) ≤ f(a) ≤ 5

Minimize �

a A °

f a

Applying this model to our problem Amsterdam – Vlissingen we will get the following graph.

To implement this model on a computer we use the “min – cost circulation algorithm”. The min-cost circulation problem is a special case of the min-cost flow problem. The min-cost flow problemis the most fundamental of all network flow problems. It is formulated as follows:

Given a directed network G = (N,A) with a cost-function (cost per unit flow), the maximum uij andminimum lij flow on the arcs, an integer number b(i) that tells us if a vertex i is a demand, supply ortransshipment vertex, we want to

find a flow xij, that

15

Page 16: Rolling Stock Rostering - Uni Konstanzalgo.uni-konstanz.de/lehre/ss02/rails/mergner.pdf · Rolling Stock Rostering Seminar on Algorithms and Models for Railway Optimization University

minimizes �i , j A

ci j

xi j

subject to �j : i , j A

xi j � �

i : j , i A

xj i � b i for al l i � N

and lij ≤ xij ≤ uij for all (i,j) ∈ Α, where �i 1

n

b i � 0

where cij denotes the cost on the arcs, xij the flow on the arcs, lij the minimum flow, uij the maximumflow and b(i) the demand, the supply or transshipment index.

In the min-cost circulation problem all the vertices are transshipment vertices, that means b(i) = 0for all i ∈ N. We get the problem:

Minimize �i , j A

ci j

xi j

subject to �j : i , j A

xi j � �

i : j , i A

xj i � 0 for al l i � N

and lij ≤ xij ≤ uij for all (i,j) ∈ Α.

Then our model is a min-cost circulation problem. But there is one important thing to mention: Weneed an integer flow. But fortunately this constraint is satiesfied, because of the following theorem:

Theorem: If the capacities of all the arcs and supplies/demands of all the nodes are integer the minimum costflow problem always has an integer optimal flow.

The proof of this theorem can be found in [4].

In order to apply the min-cost circulation algorithm we have only to introduce a cost-function. Inthis case the cost function will be very simple: it will be c(a) = 1 if a is an overnight arc and c(a) =

0 for all the other arcs, because in our model we just wanted to minimize �a A °

f a where A°

denotes the set of overnight arcs.Apply the min-cost circulation algorithm to our problem Amsterdam – Vlissingen leads to thefollowing results:

Required Stock:

16

Page 17: Rolling Stock Rostering - Uni Konstanzalgo.uni-konstanz.de/lehre/ss02/rails/mergner.pdf · Rolling Stock Rostering Seminar on Algorithms and Models for Railway Optimization University

Minimum circulation:

Instead of using the min-cost circulation algorithm we could have used the tools of linearprogramming. We do not need integer programming, because of the integrality of the input data andthe total unimodularity of the underlying matrix the solution will have integer values only.

3.3 A model to the problem Amsterdam – Vlissingen with more types of trains

In our above model we just had one type of units consisting of 3 carriages. The units could becoupled together to a maximum of 15 carriages. In a next step we want to model the problem byusing two different type of units. The one type of unit (Type III) consists of 3 carriages and theother type of unit (Type IV) consists of four carriages.The capacities are given in the following table:

type III IV

Firstclass 38 65

Secondclass 163 218

With two types of units we are more flexible. We can have trains with 3,4,6,7,8,9,10,11,12,13,14,15carriages, whereas with one type of unit we can only have trains with 3,6,9,12,15 carriages. Sincewe are more flexible we can adjust our trains better to the expected amount of passenger and wewould expect to need less units as we did before. And this is true, we will find out that we just need17 carriages instead of 22.The following inequation holds for the costs of two different train units:

costIII ≤ costIV ≤ 4/3 costIII

17

Page 18: Rolling Stock Rostering - Uni Konstanzalgo.uni-konstanz.de/lehre/ss02/rails/mergner.pdf · Rolling Stock Rostering Seminar on Algorithms and Models for Railway Optimization University

The right hand side of the inequation shows that the type IV units are cheaper per carriage. This isdue to the fact that engineer cabins are more expensive than the normal carriages. We can modelthis problem in the same way as we have modeled the problem with just one type of unit.

We have a directed graph G = (V,A) again and want to minimize:

a A °

costIII

f a � costIV

g a, f(a) is number of units of type III and g(a) is number of units of

type IV.The following inequations take care of the constraints in our problem:

� 3*f(a) + 4*g(a) ≤ 15� 38*f(a) + 65*g(a) ≥ p1(a) and 163*f(a) + 218*g(a) ≥ p2(a)

p1(a) and p2(a) is number of first and second class passengers, respectively.

But since this problem has two dimensions we can not use our min-cost circulation algorithm. Also,the technique of linear programming will not help us here because we will not obtain an integersolution. So we have to use integer programming. Solving the problem with an integer program, forexample with CPLEX 2.1 will lead to the following results:

Minimum Circulation:

Required Stock:

18

Page 19: Rolling Stock Rostering - Uni Konstanzalgo.uni-konstanz.de/lehre/ss02/rails/mergner.pdf · Rolling Stock Rostering Seminar on Algorithms and Models for Railway Optimization University

3.4 Integer Programming Trick

But to get results with an integer program is very time consuming, for example to solve the problemAmsterdam – Vlissingen with CPLEX 2.1 would need several hours. This is to long if one wants tocompare different problem data. But fortunately there exists different techniques to accelerate thecalculation. For most of these methods you need a profound knowledge of CPLEX, so I do not wantto introduce them here. The method I want to focus on is of very general interest if one deals withinteger programming problems.The general idea is to reduce the possibilities an integer program has to go through while solvingthe problem. To do this we will express the above inequations in another way. Instead of havingtwo inequations to express the constraints of f(a) and g(a), we can say [f(a),g(a)] is a two-dimensional integer vector in the polygon:

Pa := {(x,y) | x ≥ 0, y ≥ 0, 3x + 4y ≤ 15, 38x + 65y ≥ p1(a)163*x + 218*y ≥ p2(a)}

For example the polygon for route Rotterdam 7:00 – Amsterdam 8:00:

Pa := {(x,y) | x ≥ 0, y ≥ 0, 3x + 4y ≤ 15, 38x + 65y ≥ 47163*x + 218*y ≥ 344}

In a picture:

There are areas in this polygon we can cut off, because the points in these areas have no integercoordinates anyway. We just have to take the convex hull of the integer vectors (integer hull) in thepolygon Pa. So we get the sharper polygon:

P'a:= {(x,y)|x ≥ 0, y ≥ 0, x + y ≥ 2, x + 2y ≥ 3, y ≤ 3, 3x + 4y ≤ 15}

19

Page 20: Rolling Stock Rostering - Uni Konstanzalgo.uni-konstanz.de/lehre/ss02/rails/mergner.pdf · Rolling Stock Rostering Seminar on Algorithms and Models for Railway Optimization University

In a picture:

Doing this for all routes in preliminary calculation will accelerate the solving process with CPLEX.

4. Conclusion

Even nowadays train companies still need human expertise to do there train assignments. Buthumans are slow and expensive and in addition train companies would like to have a measure ofhow efficient the manual solutions are. Therefore train companies are really interested in modelingthis problems so that a computer could be involved in the solution finding process or even find thesolution by himself.Some efficient models for easy situations, the basic rolling stock rostering have been introducedand some more complex examples have been shown: constraints like maintenance make theproblem difficult to handle.

20

Page 21: Rolling Stock Rostering - Uni Konstanzalgo.uni-konstanz.de/lehre/ss02/rails/mergner.pdf · Rolling Stock Rostering Seminar on Algorithms and Models for Railway Optimization University

6. References

[1] T. Erlebach, M. Gantenbein, D. Huerlimann, G. Neyer, A. Pagourtzis, P. Penna, K. Schlude, K. Steinhoefel, D.S. Taylor, P. Widmayer. On the complexity of train assignment problems. In Proc. of ISAAC'01, International Symposium on Algorithms and Computation, LNCS 2223, pag. 390-402, 2001.

[2] Alexander Schrijver, Minimum Circulation of Railway Stock, CWI Quarterly, 6(3): 205 – 217,1993

[3] Thomas Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein, Introduction to Algorithms, 2001 (Second Edition)

[4] Ravindra K. Ahyja, Thomas L. Magnanti, James B. Orlin,Network Flows.Prentice Hall, 1993

21