Modelling Approach
4.3 Modelling Approach
The problem asks for the selection of the best k trains so that the total profit of the transported wagons is maximized. As already mentioned, the number of feasible trains can be very large (given graph G , there is an exponential number of paths in G , and given the set of wagons T , there are exponentially many subsets S ⊆ T ), so we use column generation techniques in order to generate only the trains that are needed in an optimal solution, without considering explicitly all the exponentially many trains. Thus, according to an approach that is widely used in real-world applications, we have a Master Problem (MP) used for train selection and a Slave Problem (SP) used for train generation.
4.3.1 Master Problem
The MP considers binary variables x q , having value 1 if train q ∈ Q is selected in the
solution and 0 otherwise. Let π q
be the profit associated with train q =(,) p S , and defined by:
π q = π (,) pS = ∑ π t , ∀∈ q Q (2)
tS ∈
The MP is the following Integer Linear Program:
Organization Code:
UMD and UOB
European Commission
Classification:
Unclassidied
Sixth Framework Programme
( MP ) max ∑ π q x q
∑ x q ≤ 1, ∀∈ t T (5)
q =( , ) pS ∈ QtS : ∈
x q ∈ {0,1},
∀∈ q Q (6)
Objective function (3) maximizes the profit associated with selected trains. Constraint (4) imposes that no more than k trains are selected, while constraints (5) impose that, for every wagon t , at most one train containing t is selected. Finally, (6) require the variables to
be binary.
The continuous relaxation C(MP) of the MP, which is the Linear Program in which constraints (6) are replaced by
x q ≥ 0,
∀∈ q Q (7)
(noting that the condition x q ≤ 1 is ensured by the presence of constraints (5)), is solved by standard column generation techniques. The associated dual problem is:
min k σ + ∑ τ t (8)
tT ∈
σ + ∑ τ t ≥ π q , ∀ q =(,) pS ∈ Q (9)
tS ∈
τ t ≥ 0,
∀∈ t T
European Commission UMD and UOB Sixth Framework Programme
Organization Code:
We consider only a subset ʹ′ Q ⊂ Q of the exponentially many trains in MP. Of course, if ʹ′ Q is defined a priori, it may happen that not all the trains appearing in a optimal solution of the overall problem appear in Q . Let ʹ′ x *
be the optimal solution of C(MP) on variable set Q, ʹ′ and *
σ * and τ t , t ∈ T be the corresponding optimal dual solution. The SP, defined in the next section, aims at determining if there exists any violated constraint (9) in the dual of problem
C(MP), i.e. if there exists any train to be added to Q. ʹ′
4.3.2 Slave Problem
of C(MS), the SP is aimed at finding a violated dual constraint (9), so that the corresponding variable can be added to the MP. This
Given the optimal dual solution * σ and τ
means checking if it exists a feasible train q =(,)∈ pS Q such that:
q − σ − ∑ τ t >0 (12)
tS ∈
In particular, we look for the most violated constraint, i.e. for the feasible train q =(,) pS which maximizes:
t − τ t ) (13)
tS ∈
and check if this value is greater than * σ . In this case path q must be added as a variable to set Q . Otherwise, ʹ′ ʹ′ Q contains all the trains of the optimal solution of C(MP) computed on
Q , and then * x is optimal also for the whole set Q .
To build this feasible train q =(,) p S we use another Mixed-Integer Linear Program containing the following binary variables:
Organization Code:
UMD and UOB
European Commission
Classification:
Unclassidied
Sixth Framework Programme
• y t , having value 1 if wagon t is carried by the train (i.e. if t ∈ S ) and 0
otherwise;
• z a , having value 1 if the arc a =(,)∈ ij
A is included in the train ( a ∈ p ) and 0
otherwise;
• u i , having value 1 if node i (corresponding to a station or a junction of the
network) is visited by path p and 0 otherwise.
Moreover, there is a continuous variable l t , representing the delay of wagon t and being equal to 0 if t is not in delay or not carried by the train. Additional variables are needed to
model the delays and their costs and will be discussed later. Let cost l () t
be the cost for a delay l t of wagon t , as defined in Section 4.2.3. Thus the SP maximizes:
* ( SP ) max ∑ ( e
t − τ t ) y t − cost l () t (14)
tS ∈
i.e. it maximizes the sum of the reduced profits e − τ t * t of the carried wagons, where the term cost l () t considers the reduction of profit due to (possible) delays of carried wagons.
Path constraints
The first set of constraints that we consider are the classical path constraints,(15) imposing that the path starts from the origin node 0 (which is an artificial node having an arc directed towards each node of the network) and (16) imposing that the exactly one arc entering and exiting a visited node is part of the path:
European Commission UMD and UOB Sixth Framework Programme
Organization Code:
∑ z a =1 (15)
a ∈ δ + (0)
∀∈ i V \ {0, n + 1} (16)
() i
a ∈ δ + () i
where, as customary, − δ () i and δ () i denote the set of arcs in A exiting and entering each node i ∈ V .
Visiting constraints
Visiting constraints are used to impose that, if the train is carrying a wagon t , it must visit the node o t corresponding to the origin terminal (or shunting yard) of the wagon (17) and the
node d t corresponding to the destination terminal (or shunting yard) of the wagon (18).
Technical constraints
This set of constraints is used to make sure that a train does not violate the technical limitations of the line stretches (arcs of the graph) where it is travelling, with respect to weight and length. Note that the set of wagons S ʹ′ ⊆ S carried by a train (,) p S out of a node
i visited by p is given by the wagons t ∈ S with origin o t ≤ i and destination d t > i . Constraints (19) and (20) ensure that the total weight and length of the wagons
simultaneously carried do not exceed the limits W and L , respectively. Finally, constraints (21) impose that a wagon t cannot travel on a line segment a if its axial load exceeds the line segment limit.
Organization Code:
UMD and UOB
European Commission
Classification:
Unclassidied
Sixth Framework Programme
∑ wy s s ≤ W , ∀∈ t T (19)
sTo ∈ : s ≤ od t , s > o t
∑ l s y s ≤ L , ∀∈ t T (20)
sTo ∈ : s ≤ od t , s > o t
y t + z (,) ij ≤ 1,
∀∈ t Tij ,(,) ∈ Ac : t > co a , t ≤ id , t > i (21)
Delay constraints
This set of constraints is used to set the value of the variable l t describing the delay of a
transported wagon t with respect to the requested transit time D t :
∑ fz aa + pr d () t − D t − M t (1 − y t ), ∀∈ t T (22)
a =( , ): ijio ≥ t , jd ≤ t
When wagon t is carried ( y t =1 ), its (positive) delay is constrained by (22) to be at least equal to the travel time on the arcs along which it is transported, plus the processing time at
the destination terminal pr d (see below), minus the requested transit time () t D t . When wagon t is not carried ( y t =0 ), (22) is satisfied by l t =0 if the parameter M t is large enough, i.e., since the nodes of the network are topologically ordered, if
M t ≥ f max (, od t t ) − D t + pr max () t d , where f max (, o d is the maximum length of a path from a t t ) node v to a node w , with ≥ v o t and w ≤ d t , according to the topological order of the
vertices, and
⎡ |{ s ∈ Td :
s = d t }| ⎤
pr max ()= d t P d t ⎢
European Commission UMD and UOB Sixth Framework Programme
Organization Code:
is the maximum processing time at terminal d t , where { s ∈ Td : s = d t } is the set of wagons that, if transported, must be processed in that terminal (again, see below, noting that stronger,
i.e. smaller, estimates on pr max can be computed).
Processing time constraints
When a train stops in a terminal and unloads a wagon t , the wagon is processed in the terminal before exiting the rail system and moving on a different mode. In order to take into
account the processing time at the destination terminal (= i d t ) , as already mentioned, we model the terminal as C i parallel processing lines with constant processing time P i . Each wagon is processed during a time slot of length P i in one of the C i parallel lines. For simplicity, we assume that, if two ore more trains visit terminal i , these trains arrive
sufficiently distant in time so that the processing of the wagons of one train does not interfere with the processing of the wagons of the other trains. Moreover, we consider the order in which wagons of each train are processed in the terminal as an output of our problem, using additional binary variables t e
m , having value 1 if wagon t is processed during the time slot m at its destination terminal d t , and 0 otherwise. If a wagon is processed at terminal i during the first time slot, its total processing time is P i , while if it is processed during the m -th time slot, its total processing time (including the waiting time) is mP i . Since the set of wagons in a train that are shipped to terminal i is contained in { s ∈ Td : s =} i , assuming there are no idle times in the processing the correctness of the upper bound (23) follows.
We use constraints to impose that each wagon t , if transported, is processed during a time slot at its destination terminal (24), and that the number of wagons processed during a
Organization Code:
UMD and UOB
European Commission
Classification:
Unclassidied
Sixth Framework Programme
time slot m in a given terminal i does not exceed the parallel capacity (i.e. the number of parallel lines) C i of the terminal (25):
∀∈ t T (24)
e m s ≤ ∑ C d t , ∀∈ t Tm , ≥ 1 (25)
sTd ∈ : s = d t
thus the processing time of wagon t at its destination terminal d t is given by:
t pr d ()=
∑ m e mP d t , ∀∈ t T (26)
and (22) can be stated as linear constraints as: t l
∑ fz a a + ∑ m e mP d t − D t − M (1 − y t ), ∀∈ t T (27)
a =( , ): ijio ≥ , jd ≤
Delay costs
In order to represent the cost of a delay l t for a wagon t in the objective function (14), according to the piecewise linear function (composed of R pieces) described in section 4.2.3,
we use an additional continuous variable b t for each wagon t , and we impose the following constraints:
t ≥ µ t lD t / t + η t ,
∀∈ t Tr , = 1, … , R (28)
so that the nonlinear objective function (14) can be stated as a linear one as:
( SP ) max ∑ ( e t − τ t ) y t − be tt (29)
tS ∈
European Commission UMD and UOB Sixth Framework Programme
Organization Code:
Overall Mixed-Integer Linear Programming model
According to the above discussion, our overall (mixed) Mixed-Integer Linear Programming model for SP is given by the objective function (29) subject to constraints (15), (16), (17), (18), (19), (20), (21), (24), (25), (27), and to the further requirement that variables yzue ,,,
be binary and variables , l t be nonnegative:
y t ∈ {0,1},
∀∈ t T
z a ∈ {0,1},
∀∈ a A (31)
u i ∈ {0,1},
∀∈ i V (32)
m ∈ {0,1},
∀∈ t Tm , ≥ 1 (33)