| Literature DB >> 27930659 |
Kah Huo Leong1, Hamzah Abdul-Rahman1, Chen Wang2, Chiu Chuen Onn3, Siaw-Chuing Loo3.
Abstract
Railway and metro transport systems (RS) are becoming one of the popular choices of transportation among people, especially those who live in urban cities. Urbanization and increasing population due to rapid development of economy in many cities are leading to a bigger demand for urban rail transit. Despite being a popular variant of Traveling Salesman Problem (TSP), it appears that the universal formula or techniques to solve the problem are yet to be found. This paper aims to develop an optimization algorithm for optimum route selection to multiple destinations in RS before returning to the starting point. Bee foraging behaviour is examined to generate a reliable algorithm in railway TSP. The algorithm is then verified by comparing the results with the exact solutions in 10 test cases, and a numerical case study is designed to demonstrate the application with large size sample. It is tested to be efficient and effective in railway route planning as the tour can be completed within a certain period of time by using minimal resources. The findings further support the reliability of the algorithm and capability to solve the problems with different complexity. This algorithm can be used as a method to assist business practitioners making better decision in route planning.Entities:
Mesh:
Year: 2016 PMID: 27930659 PMCID: PMC5145153 DOI: 10.1371/journal.pone.0166064
Source DB: PubMed Journal: PLoS One ISSN: 1932-6203 Impact factor: 3.240
Fig 1Malaysia railway system map (for illustrative purposes only).
Types of foragers in bee systems.
| Types of foragers | Description |
|---|---|
| The bee initializes its search as an unemployed forager if those bees have zero knowledge about the food sources in the search field. The unemployed forager can be divided into two groups which are: | |
| Employed forager memorizes the location of the food source is raised from the new recruit bee that finds and exploits the food source. After a portion of nectar from the food source was loaded from the employed foraging bee, the nectar will be unloaded to the food area in the hive after the bee return to the hive. The residual amount of nectar for the foraging bee is depending on three possible actions: | |
| • Foraging bee abandons the food source and become an unemployed if the nectar amount decreased to a low level or exhausted. | |
| • Employed foragers can continue to forage without sharing the food source information with the nest mates if sufficient amount of nectar in the food source. | |
| • Inform other nest mates about the food source by going to the dance area to perform waggle dance. | |
| Experienced foragers use their historical memories for the location and quality of food sources. They also exhibit these special traits which are: | |
| • They can control the recent status of food sources discovered. | |
| • It can be a reactivated forager by using the information from waggle dance. If other bees confirm the quality of same food source, the same discovered food source will be explored. | |
| • If the food source is decreasing, scout bees will search new patches. | |
| • It can be a recruit bee, which is searching a new food source declared in dancing area by another employed bee. |
Source: Adapted from Baykasoglu, Ozbakir and Tapkan [21] and Teodorovic, Davidovic and Selmic [22]
Bee Colony Optimization algorithm.
| Step | BCO Algorithm |
|---|---|
| 1 | Initialization: An empty solution is assigned to every bee |
| 2 | For every bee // the forward pass: |
| Set k = 1 // counter for constructive moves in the forward pass | |
| Evaluate all possible constructive moves | |
| According to evaluation, choose one move in using the roulette wheel | |
| 3 | All bees are back to the hive // backward pass starts |
| 4 | Evaluate (partial) objective function value for each bee |
| 5 | Every bee decides randomly to continue its own exploration and become a recruiter or become a follower |
| 6 | For every follower, choose a new solution from recruiter by the roulette wheel |
| 7 | If solutions are not completed, Go to Step 2 |
| 8 | Evaluate all solutions and find the best one |
| 9 | If the stopping condition is not met, Go to Step 2 |
| 10 | Output the best solution found |
Source: Teodorovic, Davidovic and Selmic [22]
Brute force processes to solve TSP.
| Step | Brute force processes |
|---|---|
| 1 | Calculate total possible number of tours by (n-1)! / 2, n represent city |
| 2 | List and draw all the possible tours |
| 3 | Calculate the distance of each tour |
| 4 | Optimal solution is the shortest tour |
Source: Sahalot and Shrimali [24]
Test cases created to verify the algorithm.
| Case | Route | Complexity (stations) |
|---|---|---|
| Kajang → Serdang → Mid Valley → KL Sentral → Kajang | 4 | |
| Taman Jaya → KLCC → Bandaraya → Bank Negara → Taman Jaya | 4 | |
| Mid Valley → Bandar Tun Razak → Chow Sow Lin → Serdang → Mid Valley | 4 | |
| Jalan Templer → Petaling → Pasar Seni → Salak Selatan → Jalan Templer | 4 | |
| Abdullah Hukum → Bangsar → Mid Valley → Plaza Rakyat → PWTC → KLCC → Abdullah Hukum | 4 | |
| Sungai Buloh → Kepong → Mid Valley → Serdang → Bukit Jalil → Sungai Buloh | 5 | |
| Segambut → Bank Negara → Mid Valley → Cheras → UKM → Segambut | 5 | |
| Plaza Rakyat → Dang Wangi → Kampung Baru → Pasar Seni → Kuala Lumpur → PWTC → Plaza Rakyat | 6 | |
| Raja Chulan → Plaza Rakyat → Bandaraya → Wangsa Maju → Kuala Lumpur → Angkasapuri → Taman Jaya → Raja Chulan | 6 | |
| Ampang Park → Wangsa Maju → Dang Wangi → Bandaraya → Kuala Lumpur → Kerinchi → Ampang Park | 6 |
Fig 2Bee foraging concept used in the algorithm (Table 4) (Source: Adapted from Teodorovic, Davidovic and Selmic [22]).
Proposed bee algorithm to solve RTSP.
| S as starting point, |
| G as desired destinations, |
| T[] as total travelling time, |
| G[] as temporary storage of G found and analysed, |
| n as number of possible route from S or IC, |
| m as number of possible route to identified G, |
| Z as number of G in the tour, |
| r as possible route to G from S or IC |
| |
| The following steps will be repeated for Z times (i = 0; i≤Z) |
| |
| Check line and station type of S |
| If (IC) Check number of possible route, n |
| If(n>6){Explore partial available routes for G} else {Explore all r} |
| |
| If(G found from r){check how many G found and how many r identified that can reach any G, m -> CA1} else {transit to nearest IC and set IC as S} |
| Check G in the r connecting S |
| if (G located) {Return to S and check any nearer G via IC in between -> M1} else {Store travelling time, T[], set G as new S and store in G[]} |
| End |
| Comparison and analysis 1 (CA1), Calculate time difference to G, T via different routes, Ts |
| Calculate difference number of station passed before reaching G via 2 different routes, Ns |
| If Ns>Ts Add 1 minute per station passed as stopping time to T as new temporary time for comparison, t |
| Select the r with the shortest t, Store travelling time, T[], set G as new S and store in G[] |
| Else Select r with the shortest T from S to IC to G, denote as T, Store travelling time, T[], set G as new S and store in G[] |
| End |
| |
| if(Z times (i> = Z-1){Display G[]}else{Keep exploring till located all G -> B1} |
Note: The indicators [1], [2] and [3] are based on the Fig 2. Bee foraging concept used in the algorithm.
Overview of the mathematical model with 5 constraints.
| m: total number of station | ||
| n: number of routes | ||
| S: starting point or end station | ||
| G: temporary stop or destination | ||
| TSG: travel time from node S to node G | ||
| XSG: identified optimum route set value to 1 | ||
| Pi: Number of possible route to destination | ||
| L: set of total number routes, L = N | ||
| L’: set of number of possible routes that had been analysed based on probability, Pi result | ||
| L′k: Optimum path identified | ||
| k: iteration number of collection station name | ||
| i: number of possible routes in the set L’ | ||
| N: total number of routes | ||
| Min | ||
| Subject to | ||
| L′ = min{(X1,X2,….,Xn)|Xi ∈ L, ∀ 1 ≤ i ≤ n} | ||
| L′k = Xi = TSG | ||
Fig 3Map of case 2 desired stations in the network.
Steps to identify the optimum route by using the algorithm.
| Overview of the tour in the test case | ■ Starting point, S1 = Taman Jaya, |
| ■ Desired destinations, G = {Bank Negara, Bandaraya, KLCC}, | |
| ■ T [] as travel time, | |
| ■ [] represents as an array, | |
| ■ G [] as temporary storage of G found and analyse | |
| Starting point, S1 = Taman Jaya | ■ S1 is not interchange. 2 possible routes identified, r, from Taman Jaya. |
| ■ Desired destination (G1), KLCC, is found on the same line, | |
| ■ | |
| ■ Travel time from S1 to G1 is stored T[], T1 = 1036 seconds | |
| ■ Interchange KL Sentral (IC1) is found before G1. Expand the search to locate possible G from other connected lines to IC1. | |
| There are 5 alternative routes identified, m | ■ 5 bees are sent to explore all routes since the possible route count is less than 6. |
| from KL Sentral (IC1) | ■ G2 is found on |
| ■ G2 is located, Bank Negara | |
| ■ Number of station from IC1 to G2 is N | |
| ■ Number of station from IC1 to G1, is N | |
| ■ Analyze whether station count will affect the results. | |
| ■ Temporary travel time from IC1 to G2 is T | |
| ■ Temporary travel time from IC1 to G1 is T | |
| ■ Difference travel time for | |
| ■ Difference for | |
| ■ Ns is larger than Ts, hence station count is not considered. | |
| ■ Total travel time from Taman Jaya to KL Sentral then Bank Negara via | |
| ■ Compare T1 and T2 | |
| ■ T1 has lower travel time. Select previous solution., | |
| ■ KLCC station is stored in G [] and set as new starting point, S2. | |
| Iteration 2 to location 2nd station | ■ Starting point, S2 = KLCC |
| (S2 = KLCC) | ■ KLCC is not interchange. 2 routes from stations identified, r from KLCC. |
| ■ No desired destination found on both routes. | |
| ■ Locate nearest interchange to transit to other line. Interchange (IC2) Masjid Jamek is the nearest IC found in | |
| ■ Abandon | |
| ■ Set nearest IC2 as temporary S | |
| ■ Find alternative routes to any G from Masjid Jamek (IC2). | |
| 3 routes identified from IC2 | ■ Desired destination, Bandaraya, G3, is found in route |
| ■ Alternative route | |
| ■ Total travel time from KLCC to Masjid Jamek followed by Bandaraya), T2 = 332 seconds | |
| ■ Bandaraya is stored in G [] and set as a new starting point, S3. | |
| Iteration 2 to locate 3rd station | ■ Starting point, S3 = Bandaraya |
| (S3 = Bandaraya) | ■ S3 is not interchange. 2 new possible routes from S3 identified |
| ■ No G is found on all possible routes. Locate nearest interchange to transit to other lines. | |
| ■ Set nearest Interchanges Masjid Jamek (IC2) as temporary S. Titiwangsa (IC3) is NOT considered because IC2 is nearer to the S. | |
| No desired destination found from interchange Masjid Jamek, IC2. | ■ Proceed to locate next nearest interchange from IC2. Interchange KL Sentral, IC1 is found. |
| ■ 5 routes identified from KL Sentral. | |
| ■ G2, Bank Negara is found on | |
| ■ Travel time from IC to G2 is 480 seconds. | |
| ■ Analyze whether station count in between stations will affect the results. | |
| ■ Both lines are having the same temporary travel time from IC1 to G2 Ts = 4 minutes and number of station count, Ns = 1. | |
| ■ Ns and Ts = 0. Hence, station count can be ignored. | |
| ■ Time travel from Bandaraya–KL Sentral–Bank Negara via | |
| ■ Time travel from Bandaraya–KL Sentral–Bank Negara via | |
| ■ Both travel time and number of station in between are the same. A route will be randomly chosen. | |
| ■ Bank Negara is stored in G [] and set as new S, S4 | |
| Returning to starting point S1 | ■ Starting point, S4 = Bank Negara |
| ■ Locate any connected lines that can transit directly to Taman Jay, S1. | |
| ■ None direct route found from Bank Negara to Taman Jaya. | |
| ■ Locate the nearest interchange, KL Sentral, IC1. | |
| ■ There are 6 new possible routes, r, from KL Sentral, IC1. | |
| ■ Search all possible routes that can connect to Taman Jaya line. | |
| ■ S1 found and can be reached via | |
| ■ Abandon | |
| ■ Time travel from Bank Negara to KL Sentral then Taman Jaya, T4 = 1049 seconds | |
| G[] = Taman Jaya–> KLCC–> Bandaraya–> Bank Negara–> Taman Jaya | |
| T[] = T1 + T2 + T3 + T4 = 1036 + 332 + 795 + 1049 = 3212 | |
Comparison of solutions between the proposed algorithm and exact method.
| Proposed Algorithm | Exact method 1 | Exact method 2 | Exact method 3 | Exact method 4 | |
|---|---|---|---|---|---|
| Taman Jaya | Taman Jaya | Taman Jaya | Taman Jaya | Taman Jaya | |
| → KLCC | → KLCC | → Bandaraya | → KLCC | → KLCC | |
| → Bandaraya | → Bandaraya | → | → Bank Negara | → Bandaraya | |
| → Bank Negara | → Bank Negara | → | → Bandaraya | → | |
| → Taman Jaya | → Taman Jaya | → | → Taman Jaya | → | |
| → Bank Negara | → | ||||
| → KLCC | → | ||||
| →Taman Jaya | → Taman Jaya | ||||
| 3212 | 3212 | 4625 | 3662 | 4175 | |
| 26 | 26 | 40 | 30 | 36 | |
| 4 | 4 | 4 | 4 | 4 |
Comparison of 10 test cases solutions generated by using exact and proposed algorithm.
| Case | Route | Remarks |
|---|---|---|
| Kajang → Serdang → Mid Valley → KL Sentral → Kajang | Similar to exact solution | |
| Taman Jaya → KLCC → Bandaraya → Bank Negara → Taman Jaya | Similar to exact solution | |
| Segambut → Bank Negara → Mid Valley → Cheras → UKM → Segambut | Similar to exact solution | |
| Jalan Templer → Petaling → Pasar Seni → Salak Selatan → Jalan Templer | Similar to exact solution | |
| Abdullah Hukum → Bangsar → Mid Valley → Plaza Rakyat → PWTC → KLCC → Abdullah Hukum | Similar to exact solution | |
| Sungai Buloh → Kepong → Mid Valley → Serdang → Bukit Jalil → Sungai Buloh | Similar to exact solution | |
| Mid Valley → Bandar Tun Razak → Chow Sow Lin → Serdang → Mid Valley | Different optimum route | |
| Plaza Rakyat → Dang Wangi → Kampung Baru → Pasar Seni → Kuala Lumpur → PWTC → Plaza Rakyat | Similar to exact solution | |
| Raja Chulan → Plaza Rakyat → Bandaraya → Wangsa Maju → Kuala Lumpur → Angkasapuri → Taman Jaya → Raja Chulan | Similar to exact solution | |
| Ampang Park → Wangsa Maju → Dang Wangi → Bandaraya → Kuala Lumpur → Kerinchi → Ampang Park | Similar to exact solution |
Fig 4Case 1- Graph with 9 vertices in TSP solver.
Fig 5TSP solver solution for case 1 using greedy algorithm (Heuristics methods).
Fig 6TSP solver solution for case 1 using Brute-Force algorithm (Exact methods).
Fig 7Case 1 routes (redrawn).
Proposed bee algorithm to solve case 1.
| Starting Point, S1 = a |
| Desired destinations, G = b, c, d, e, f, h, i, j |
| T[] as total travel distance where[] represents as an array |
| G[] as temporary storage of G found and analyzed. |
| n as number of route from S or IC |
| p as number of possible route to identified G |
| Z as number of G in the tour |
| r as m as number of possible route to G from S or IC |
| Case 1 consists of 8 desired destinations, G with s as starting and ending point. |
| Initialization of the looping process is needed to ensure all destinations are reached before going back to the starting point. |
| Number of G in the tour is 8, thus Z = 8 |
| Since i = 0, is less than Z = 8, this condition is true. |
| Referring to the diagram bee can move to the entire route, thus the number of possible route, n, is 8 |
| n > 6, hence pick randomly possible routes |
| i. Travel time from a to b = 204 |
| ii. Travel time from a to e = 224 |
| iii. Travel time from a to f = 220 |
| iv. Travel time from a to h = 114 |
| v. Travel time from a to i = 137 |
| vi. Travel time from a to j = 110 |
| Choose the shortest travel distance and set as new starting point S |
| j is set as new starting point, S2 with 110 |
| Number of G in the tour is 8, thus Z = 8 |
| i = 0+1 = 1 is less than Z = 8 |
| Condition will return true. |
| Referring to the diagram, bee can move to 7 possible routes. Hence n = 7 |
| n > 6, thus pick randomly possible routes. |
| Calculate travel distance |
| i. Travel time from j to b = 125 |
| ii. Travel time from j to c = 138 |
| iii. Travel time from j to h = 180 |
| iv. Travel time from j to f = 175 |
| Choose the shortest total distance and set as new starting point |
| b is set as new starting point, S3 with 125 |
| Number of G in the tour is 8, thus Z = 8 |
| i = 1+1 = 2 and it is less than Z = 8 |
| Condition will return true. |
| Referring to the diagram, bee can move to 6 possible routes. Hence n = 6 |
| n> 6, thus pick randomly the possible routes. |
| Calculate travel distance |
| i. Travel time from b to c = 70 |
| ii. Travel time from b to d = 104 |
| iii. Travel time from b to e = 191 |
| iv. Travel time from b to f = 285 |
| Choose the shortest distance and set as new starting point |
| c is set as new starting point, S4 with 70 |
| Number of G in the tour is 8, thus Z = 8 |
| i = 2+1 = 3 and it is less than Z = 8 |
| Condition will return true. |
| Referring to the diagram, bee can move to 5 possible routes. Hence n = 5 |
| n < 6, thus calculate all the possible routes. |
| Calculate travel distance |
| i. Travel time from c to d = 67 |
| ii. Travel time from c to e = 183 |
| iii. Travel time from c to f = 297 |
| Choose the shortest distance and set as new starting point |
| d is set as new starting point, S5 with 67 |
| Number of G in the tour is 8, thus Z = 8 |
| i = 3+1 = 4 and it is less than Z = 8 |
| Condition will return true. |
| Referring to the diagram, bee can move to 4 possible routes. Hence n = 4 |
| n < 4, thus calculate all the possible routes. |
| Calculate travel distance |
| i. Travel time from d to e = 117 |
| ii. Travel time from d to f = 235 |
| iii. Travel time from d to h = 161 |
| iv. Travel time from d to i = 288 |
| Choose the shortest distance and set as new starting point |
| e is set as new starting point, S6 with 117 |
| Number of G in the tour is 8, thus Z = 8 |
| i = 4+1 = 5 and it is less than Z = 8 |
| Condition will return true. |
| Referring to the diagram, bee can move to 3 possible routes. Hence n = 3 |
| n < 6, thus calculate all possible routes. |
| Calculate travel distance |
| i. Travel time from e to f = 122 |
| ii. Travel time from e to h = 215 |
| iii. Travel time from e to i = 126 |
| Choose the shortest distance and set as new starting point |
| f is set as new starting point, S7 with 122 |
| Number of G in the tour is 8, thus Z = 8 |
| i = 5+1 = 6 and it is less than Z = 8 |
| Condition will return true. |
| Referring to the diagram, bee can move to 2 possible routes. Hence n = 2 |
| N< 6, thus calculate all possible routes. |
| Calculate travel distance |
| i. Travel time from f to h = 148 |
| ii. Travel time from f to i = 92 |
| Choose the shortest distance and set as new starting point |
| i is set as new starting point, S8 with 92 |
| Number of G in the tour is 8, thus Z = 8 |
| i = 6+1 = 7 and it is less than Z = 8 |
| Condition will return true. |
| Referring to the diagram, bee can move to 1 possible route. Hence n = 1 |
| n < 6, thus calculate all possible routes. |
| Calculate travel distance |
| Travel time from i to h = 113 |
| Choose the shortest distance and set as new starting point |
| h is set as new starting point, S9 with 113 |
| Number of G in the tour is 8, thus Z = 8 |
| i = 7+1 = 8 and it is equal as Z = 8 |
| Condition will return false. Thus it will go to process return trip, [3.B] |
| Display list of T and calculate travel distance. |
| List = a→j→b→c→d→e→f→i→h→a |
| Total distance = 110+125+70+67+117+122+92+113+114 = 930 |
Fig 8Solution using proposed algorithm.
Comparison of case 1 results generated by exact, greedy and proposed algorithm.
| Method | Proposed Algorithm | Exact Method | Heuristic Method |
|---|---|---|---|
| a | a | a | |
| → j | → j | → j | |
| → b | → b | → i | |
| → c | → c | → f | |
| → d | → d | → e | |
| → e | → e | → d | |
| → f | → f | → c | |
| → i | → i | → b | |
| → h | → h | → h | |
| → a | → a | → a | |
| 930 | 930 | 1061 |
Fig 9Comparison of proposed algorithm with exact solutions.