• No se han encontrado resultados

The artificial soft violation S* has been introduced so that the search considers an estimation of total soft constraint violation, while some hard constraints are still to be fully satisfied. The artificial soft violation is regarded as if it were a hard violation until the capacity, consistency, and covering constraints have all been satisfied, then the artificial violation is set to zero. The algorithm assigns a violation penalty st* if a timeslot t is selected as a train departure time. This can be written as:

t

In contrast to (4.1) – (4.3) which imply a fixed violation penalty for each member of the associated set of constraints, a violation penalty for the artificial soft violation st* varies from timeslot to timeslot. The artificial soft violation penalty depends on the possibility of assigning a particular timeslot on a train schedule with a minimum generalised cost.

An attempt to derive the artificial soft violation in monetary units by trading off between the business criteria is not possible. This is because a train schedule is not a single timeslot, but is a set of the timeslots. Therefore, considering only a single timeslot separately from the others cannot represent a total cost for the rail carrier. However, as in practice, some business criteria play more an important role than others, the relative weights for the criteria could be applied.

A rail carrier may assign a relative weight to the violation costs of number of trains Nt, customer satisfaction Qt, and timeslot-operating cost Et constraints in a selected timeslot

t . With equal violation costs for N , t Q , and t Et the violation cost with the lower weight

will give a smaller artificial soft violation s*t .

In practice, given the relative weights 0.2, 0.5 and 0.3 by the Royal State Railway of

We first assume that the higher the number of potential customers in timeslot t, the more likely it is that assigning a train to that timeslot would lead to the minimum number of trains used. However, it is also necessary to consider the distribution of customer shipment size.

Although there are a large number of potential customers in a timeslot, each customer shipment may be large. Therefore, such a timeslot could allow only a few customers to be served on a train so giving a high violation cost (or a priority) to this timeslot is no longer reasonable. Nt is defined by:

where: n(max) =max{nt :t=1,2,3,...,T),

µ

t is the mean of customer shipment size in timeslot t,

σ

t is the standard deviation of the customer shipment size in timeslot t, Ct is the number of customers in timeslot t.

The rationale of the formula for Nt is that it aims to tackle the variation of customer shipment size in the potential booking timeslot and then to provide the estimated chance for that timeslot to be used. The variation of customer shipment size is simply handled using the sum of

µ

t and

σ

t (4.7) as a demand threshold for the shipment size. The remaining concepts are just to reflect that the higher the number of potential customers in timeslot t, the more likely it is that assigning a train to that timeslot would lead to the minimum number of trains used. The calculation of Nt is illustrated as in Table 4.1.

Timeslot Customer shipment size (containers) Mean STD at nt Nt (t)

C1 C2 C3 C4 C5

µ

t

σ

t

1 20 5 12.50 10.61 11.55 0.24 100

2 10 20 15 8 5 11.60 5.94 3.51 0.07 30

3 20 15 8 14.33 6.03 6.79 0.14 59

4 10 5 7.50 3.54 5.52 0.12 48

5 20 15 17.50 3.54 10.52 0.22 91

6 20 15 8 5 12.00 6.78 4.70 0.10 41

7 10 15 5 10.00 5.00 5.00 0.11 43

Sum 47.58

Table 4.1: An example for the calculation of violation cost Nt

Table 4.1 shows that when timeslot 1 is selected (x1 = 1), the algorithm assigns the highest violation cost for that timeslot = 100. The more customers in a timeslot, the lower the violation cost in general. When timeslots serve an equal number of customers (e.g. timeslot 3 and 7). the lower violation cost is assigned to the timeslot with a more even spread of demand, here timeslot 7.

4.3.2.2 The violation cost Qt

Although the virtual loss of future revenue in the generalised cost function could represent customer satisfaction in terms of cost, it is an indirect cost. In practice, the indirect cost is not obvious for rail expenditure as it affects the long-term financial plan. Therefore, in a competitive transport market, a direct cost that affects the short-term cash flow is regarded as more important. The satisfaction of customer j in timeslot t is wtj (0≤wtj ≤1), and

( )

q t

Qt = qt ×100 ;∀

max

(4.12)

where: q(max) =max{qt :t =1,2,3,...,T). The calculation of Qt is illustrated as follows:

From Table 4.2, Qt is not only affected by the customer satisfaction score but also is implicitly dependent on the number of potential customers using the timeslot, i.e. the more customers in the timeslot, the lower would be the violation cost Qt. When timeslots have the same number of customers (e.g. timeslot 3 and 7), the algorithm assigns a lower violation cost to timeslot 3 because it has a higher value of Wt.

Timeslot Satisfaction score Wt bt qt Qt

(t) C1 C2 C3 C4 C5

1 90 70 160 9.76 0.18 81

2 95 90 76 85 70 416 3.75 0.07 31

3 90 76 85 251 6.22 0.11 52

4 95 70 165 9.47 0.17 79

5 70 60 130 12.02 0.22 100

6 70 60 60 50 240 6.51 0.12 54

7 90 60 50 200 7.81 0.14 65

Sum 1562 55.54

Table 4.2: An example for the calculation of violation cost Qt

4.3.2.3 The violation cost Et

A rail carrier may have different operating costs for different timeslots. The operating costs comprise train congestion cost and staff cost. Although a train schedule is a set of timeslots, we could consider Et for the operating costs of each timeslot directly. This is because the operating cost is a cost unit and does not affect the number of timeslots in the optimal train schedule. Et is defined by:

In (4.13), et is derived from the proportion of the operating costs in timeslot t to the total timeslot operating cost. Et in (4.14) reflects that the lower the operating costs for the timeslot, the higher the estimated chance that the timeslot would lead to a schedule with the minimum generalised cost, and the value of Et is shown in a percentage scale. The calculation of the violation cost Et is illustrated as follows:

Timeslot

Ut et Et

(t) (×103Baht)

1 4.46 0.16 92

2 2.71 0.10 56

3 2.71 0.10 56

4 3.36 0.12 69

5 4.85 0.17 100

6 4.85 0.17 100

7 4.85 0.17 100

Sum 27.79

Table 4.3: An example for the calculation of the violation cost Et

Table 4.3 shows that a rail carrier incurs operating costs that vary from timeslot to timeslot.

Choosing a timeslot that has high operating costs would be penalised with high violation Et.

From (4.4) and (4.5), the total constraint violation h is the sum of total hard violation (Hm,

Hc, Hs) and the weighted total artificial soft violation S*:

(

+ +

)

+

(

×

α )

= H H H S*

h m c s (4.15)

The parameter α represents the violation penalty of one unit of artificial soft violation. This parameter can be adjusted empirically in order to balance the trade-off between the artificial

soft violation S* and the hard violations (Hm, Hc, Hs), i.e. when α is increased, the search algorithm treats S* more importantly relative to Hm, Hc, and Hs.

Now, CLS uses this total constraint violation h to evaluate local moves. The modified procedure of CLS for the container rail scheduling problem is given as:

proc CLS

A ← initial random assignment h ← initial total constraint violation

if (H , m H , c H ) s = 0 then S*← 0, output A, exit CLS terminate ← false

try ← 0

while not terminate do





the same as the basic CLS in Figure 4.1

if (H , m H , c H )s = 0 then S* ← 0, output A, terminate ← true if try = Zthen terminate true

end while end proc

Figure 4.2: The modified CLS procedure

There are two differences between the basic CLS (Figure 4.1) and the modified CLS for the container rail scheduling problem (Figure 4.2): the quantified measure of local moves and the stopping criterion. In Figure 4.2, h is the sum of (Hm, Hc, Hs) and S*; the algorithm stops when (Hm+Hc+Hs) = 0 (i.e. a feasible solution A is found) or when no improvement to the best total constraint violation found has been achieved for Z iterations.

At this time, S* is discarded and is no longer used. The algorithm continues with the same procedure as described in Section 4.2.1.