This paper defines bus timetables setting problem during each time period divided in terms of passenger flow intensity; it is supposed that passengers evenly arrive and bus runs are set evenly; the problem is to determine bus runs assignment in each time period to minimize the total waiting time of passengers on platforms if the number of the total runs is known. For such a multistage decision problem, this paper designed a dynamic programming algorithm to solve it. Global optimization procedures using dynamic programming are developed. A numerical example about bus runs assignment optimization of a single line is given to demonstrate the efficiency of the proposed methodology, showing that optimizing buses’ departure time using dynamic programming can save computational time and find the global optimal solution.
The transit planning process includes four basic components which are usually performed in sequence: (1) network route design, (2) setting frequencies and timetables, (3) scheduling vehicles to trips, and (4) assignment of drivers. This paper focuses on “setting frequencies and timetable.” Trip frequency scheduling is the determination of trip frequencies for an operation period, normally a daily operation. The operation period is divided into several subperiods for which a specific number of trips are determined. Trip frequency scheduling is more or less identical to headway determination and hence to the socalled timetable construction problem. The timetable problem, however, requires the specification of precise arrival and departure times at terminals and major stops.
Friedman (1976) [
Some literatures (Wan and Lo, 2003 [
Ceder (1984) [
The majority of previous solution methods for transit frequencies and timetable setting problems relied on problembased heuristics or design guidelines, which could not guarantee the best solution in mathematics. This paper aims to optimize arrangement of bus runs on a single line, regards the objective problem as a multistage decision problem, and tries to look for the global optimal solution through dynamic programming to obtain the best scheme of bus runs arrangement. The remainder of the paper is organized as follows. Section
A bus line has up and down going directions; this paper only studies the case of one direction (
A single bus line.
Here, it is supposed that
stop 1
stop 2
stop 3
…
stop
stop
…
stop
Bus service time of a day is divided into some small time periods
It is supposed that, taking passenger flow intensity, available resources, and economy conditions into account, the number of the total bus runs that is at most
The bus timetable setting problem is to determine bus runs assignment in each time period (then the frequency and departure time of bus runs can also be obtained) to minimize the total waiting time of passengers on platforms if the number of the total runs is known.
A supposition is made that bus runs are set evenly in each time period. This is because, on one hand, we have supposed that passengers evenly arrive at the stop in each time period, and bus runs being set evenly accord with this; on the other hand, the solution will become easy and simple if bus runs are evenly set. There are many time points in each time period; the solution will become very complex if these timepoints are all included into the solution set, while if bus runs are set evenly in each time period, the departure time of each run can be easily obtained if the number of bus runs in each time period is known. For example, if 3 runs are arranged for an hour, then 20 min, 40 min, and 60 min are the departure times.
In Figure
Time period division at each stop and bus runs arrangement.
The number of arriving passengers at stop
Traffic distribution on one direction.


 

1  2  3 


 

1  0 



 

2  0 


 

3  0 

 




0 
 


0 
Bus runs arrangement.
It is supposed that no passengers are detained at the stop; that is, all passengers at the stop can get on the current bus run; otherwise, more bus runs are needed.
This paper applies dynamic programming to optimize the bus timetable setting problem based on reasons as follows. (1) The problem is to determine bus runs assignment in each time period, belonging to a timecontinuous multistage decision problem; the dynamic programming method is appropriate to solve it. (2) The work using exhaustive search algorithm to solve this discrete optimization problem will be very huge; the dynamic programming method can greatly reduce the calculation work. (3) Dynamic programming algorithm in nature is a global optimization algorithm and can find a global optimal solution of the problem.
For a bus line, its operation time of a day is divided into some continuous time periods
If
Recurrence formulae of dynamic programming are
Calculating each stage using recurrence formulae,
Traffic demands of each time period, the number (
(1.1) Let
(1.2) Traffic demands
(1.3) Calculate the waiting time of passengers for bus run
(1.3.1) Let
(1.3.2) Calculate the number (
(i) If
The number (
(ii) If
(1.3.3) Let
(1.4) Let
(1.5) Let
(2.1) Let
(2.2) The upper bound
(2.3) The upper bound of
(2.4) If
(2.5) Traffic demands
(2.6) Calculate the waiting time of passengers for bus run
(2.6.1) Let
(2.6.2) Calculate the number (
(i) If
The number (
(ii) If
(2.6.3) Let
(2.7) Let
(2.8) Let
(2.9) Since
(2.10) Let
(2.11) Let
A bus line is illustrated in Figure
A bus line with 16 stops.
The target is to minimize the total waiting time of passengers at the stops. The problem is to determine the number of bus runs arranged for each time period and the departure timetable of bus runs at the origin stop.
If the number (
Optimization results when




Departure time of bus runs at stop 1 


10  10  2166  7:06, 7:12, 7:18, 7:24, 7:30, 7:36, 7:42, 7:48, 7:54, 8:00 

7  17  4185  8:09, 8:19, 8:27, 8:36, 8:44, 8:52, 9:00 

5  22  5661  9:12, 9:24, 9:36, 9:48, 10:00 

4  26  6831  10:15, 10:30, 10:45, 11:00 

5  31  7935  11:12, 11:24, 11:36, 11:48, 12:00 

9  40  9895  12:07, 12:14, 12:21, 12:28, 12:35, 12:42, 12:48, 12:54, 13:00 
If
Optimization results under different values of

( 
Total waiting time 

40  (10, 7, 5, 4, 5, 9)  9895 
39  (10, 7, 5, 4, 4, 9)  10171 
38  (10, 7, 4, 4, 4, 9)  10540 
37  (10, 7, 4, 3, 4, 9)  10930 
36  (10, 7, 4, 3, 3, 9)  11390 
35  No feasible solutions 
Traffic distribution between stops in time period


 

1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  
7:00~8:00  1  0  3  4  5  5  7  7  11  10  10  13  10  10  8  7  8 
7:00 + 
2  0  0  2  4  5  5  6  7  9  10  10  11  8  6  7  
7:00 + 
3  0  0  0  4  5  6  7  8  7  7  11  9  10  9  
7:00 + 
4  0  0  2  4  5  10  7  6  7  10  10  9  8  
7:00 + 
5  0  2  5  4  4  5  10  9  10  8  11  6  
7:00 + 
6  0  2  3  4  5  7  7  9  8  8  5  
7:00 + 
7  0  0  2  4  5  7  7  5  8  7  
7:00 + 
8  0  0  2  3  4  8  6  7  4  
7:00 + 
9  0  0  0  4  4  8  10  8  
7:00 + 
10  0  0  2  6  10  7  8  
7:00 + 
11  0  0  8  7  7  10  
7:00 + 
12  0  0  8  7  8  
7:00 + 
13  0  2  4  7  
7:00 + 
14  0  0  5  
7:00 + 
15  0  2  
7:00 + 
16  0 
Traffic distribution between stops in time period


 

1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  
8:00~9:00  1  0  0  2  3  4  5  4  5  8  6  4  5  8  5  8  6 
8:00 + 
2  0  0  2  3  2  5  4  4  5  6  5  6  5  8  3  
8:00 + 
3  0  0  2  3  8  6  6  5  4  4  5  5  5  8  
8:00 + 
4  0  0  3  4  5  2  4  8  6  5  8  6  5  
8:00 + 
5  0  2  2  2  5  3  4  10  6  6  7  5  
8:00 + 
6  0  0  2  2  2  4  2  5  5  6  6  
8:00 + 
7  0  0  0  2  2  6  4  3  9  2  
8:00 + 
8  0  0  0  2  3  4  3  4  6  
8:00 + 
9  0  0  4  5  4  2  8  5  
8:00 + 
10  0  0  2  3  2  8  5  
8:00 + 
11  0  0  2  4  6  5  
8:00 + 
12  0  0  2  4  5  
8:00 + 
13  0  0  4  2  
8:00 + 
14  0  0  4  
8:00 + 
15  0  1  
8:00 + 
16  0 
Traffic distribution between stops in time period


 

1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  
9:00~10:00  1  0  0  1  1  3  1  4  3  2  4  3  4  4  5  4  3 
9:00 + 
2  0  0  0  0  1  2  4  5  4  4  3  4  2  3  3  
9:00 + 
3  0  0  0  1  3  3  3  1  6  2  4  3  4  4  
9:00 + 
4  0  0  0  1  1  2  2  4  4  1  3  4  6  
9:00 + 
5  0  0  0  0  1  2  1  2  1  4  4  3  
9:00 + 
6  0  0  0  0  2  2  5  1  4  1  3  
9:00 + 
7  0  0  0  1  2  2  2  2  2  4  
9:00 + 
8  0  0  0  1  2  2  2  2  1  
9:00 + 
9  0  0  0  3  5  2  7  5  
9:00 + 
10  0  0  0  1  2  2  1  
9:00 + 
11  0  0  0  2  2  5  
9:00 + 
12  0  0  2  2  2  
9:00 + 
13  0  0  0  2  
9:00 + 
14  0  0  1  
9:00 + 
15  0  0  
9:00 + 
16  0 
Traffic distribution between stops in time period


 

1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  
10:00~11:00  1  0  0  0  1  1  1  1  2  4  2  4  3  3  1  1  2 
10:00 + 
2  0  0  0  1  2  2  2  2  4  2  2  2  1  1  2  
10:00 + 
3  0  0  0  0  3  1  1  3  2  2  2  2  3  1  
10:00 + 
4  0  0  0  1  1  2  3  1  1  2  2  2  3  
10:00 + 
5  0  0  0  1  1  1  4  2  2  2  2  3  
10:00 + 
6  0  0  0  0  1  1  2  1  3  3  3  
10:00 + 
7  0  0  0  0  1  1  1  1  1  2  
10:00 + 
8  0  0  0  0  0  1  1  2  2  
10:00 + 
9  0  0  0  0  1  2  2  2  
10:00 + 
10  0  0  0  0  1  2  1  
10:00 + 
11  0  0  0  1  2  2  
10:00 + 
12  0  2  0  2  1  
10:00 + 
13  0  0  0  1  
10:00 + 
14  0  0  1  
10:00 + 
15  0  1  
10:00 + 
16  0 
Traffic distribution between stops in time period


 

1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  
11:00~12:00  1  0  0  1  1  1  1  2  2  4  1  3  2  3  5  3  2 
11:00 + 
2  0  0  1  1  1  1  1  3  4  1  2  3  0  3  4  
11:00 + 
3  0  0  1  1  3  2  1  2  4  4  1  2  2  2  
11:00 + 
4  0  0  1  1  1  2  2  4  2  2  1  2  3  
11:00 + 
5  0  0  1  1  3  1  2  1  2  4  2  2  
11:00 + 
6  0  0  1  1  2  1  2  2  1  3  3  
11:00 + 
7  0  0  0  1  1  1  1  0  1  2  
11:00 + 
8  0  0  2  1  2  1  2  2  4  
11:00 + 
9  0  0  1  2  2  2  1  1  
11:00 + 
10  0  0  1  4  0  1  2  
11:00 + 
11  0  0  1  0  1  2  
11:00 + 
12  0  0  1  1  1  
11:00 + 
13  0  0  1  0  
11:00 + 
14  0  0  1  
11:00 + 
15  0  0  
11:00 + 
16  0 
Traffic distribution between stops in time period


 

1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  
12:00~13:00  1  0  2  2  3  4  8  6  8  9  8  10  8  9  7  7  6 
12:00 + 
2  0  0  2  4  3  4  8  7  6  9  10  10  8  9  8  
12:00 + 
3  0  0  2  4  4  4  6  5  9  8  10  10  7  7  
12:00 + 
4  0  0  3  4  4  6  8  7  10  8  9  9  8  
12:00 + 
5  0  0  0  4  4  5  6  7  10  6  8  8  
12:00 + 
6  0  0  0  3  4  4  5  5  6  9  4  
12:00 + 
7  0  0  0  4  4  5  5  6  4  6  
12:00 + 
8  0  0  0  4  5  4  8  7  7  
12:00 + 
9  0  0  0  3  4  5  8  7  
12:00 + 
10  0  0  0  4  5  7  5  
12:00 + 
11  0  0  3  4  5  6  
12:00 + 
12  0  0  3  4  4  
12:00 + 
13  0  0  2  2  
12:00 + 
14  0  0  2  
12:00 + 
15  0  1  
12:00 + 
16  0 
This paper studied bus runs arrangement of a bus line and defined the bus timetable setting problem which is to determine bus runs assignment in each time period so as to minimize the total waiting time of passengers on platforms if the number of the total bus runs is known. On the basis of this definition, the global optimization algorithm using dynamic programming was proposed to solve the problem. A numerical example about bus runs assignment optimization of a single bus line demonstrated the efficiency of the proposed method.
Although only the case of one direction of a single bus line was discussed in this paper, the similar analysis can be made for the case of both directions only if traffic demands on the reverse direction are also known. By the same way the scheme of bus runs arrangement on the reverse direction can also be obtained. However, if the restriction of the number of vehicles and the optimal deployment of resources are taken into account, then the problem involves scheduling of vehicles and needs more researches in the future.
See Tables
The author declares that there is no conflict of interests regarding the publication of this paper.
This research is supported by the Hunan Province Social Science Fund (Grant no. 12YBB274).