Skip to content

The decision support system for calculating railway maximum flows when there is an event or incident that requires a large number of trains to be transferred from one origin to one destination.

License

Notifications You must be signed in to change notification settings

PoonAthitS/railway-decision-support-system

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 

Repository files navigation

Railway decision support system

  • Written by: Poon Athit S.
  • Technologies: VBA, User forms, Excel-Macros

1. Introduction

Since the COVID-19 pandemic-related travel restrictions were lifted, public transportation needs have returned to normal levels. Numerous surges in demand for travel, particularly during peak hours such as concerts and festivals, have caused train operating compananies some concerns about their route arrangement. This sparked my interest to develop this project which introduces the Railway Decision Support System (RDSS) to assist route managers in determining the best strategy for sending trains through each railway segment. It can provide details of railway segment planning by determining the maximum number of trains that can be sent from one origin to one destination using Ford-Fulkerson algorithm, represented in its user-friendly functions within an Excel.

2. Functions

All of the RDSS's functions are purposefully concentrated on the "Decision Support System" tab, which contains five commands which includes to the following userforms.

2.1 Set up sheets

The first 2 commands are 1. Setup “Stations” sheet and 2. Setup “Rail Segments” sheet which they are designed to activate by creating these 2 sheets if they have not been created. The “Stations” sheet aims to provide the table of the user-entered station names while the “Rail segments”, on the other hand, contains a table about each input railway segment which includes Station [from], Station [To] and capacity fields

2.2 Enter railway data

The third command is “3. Enter railway data”. The command automatically generates the setup form if both aforementioned sheets have been created. Its purpose is broken down into 2 parts. Firstly, a new station can be entered by the user in the upper section of the form to populate the specified list in the “Stations” sheet. Meanwhile, the second section focuses on creating a new railway segment in the “Rail segments” sheet by using the names of two of the stations entered in the first section. This input also requires the capacity of the segment or the maximum number of trains that could pass through it. Additionally, the system may notify the user by displaying a warning pop-up regarding railway network connectivity following a close button press. This is because RDDS runs the algorithm to determine whether or not the input network is correctly connected in this step.

2.3 Run the algorithm

After populating all stations and railway segments in the preceding functions, the user may run the algorithm by pressing the “4. Run the algorithm” command. The provided origin and destination stations are processed with all station and railway segment data in the Ford-Fulkerson algorithm to determine the maximum number possible of trains that can be sent from the origin to the destination.

3. Outcomes and examples

  • The outcomes are displayed in the "Optimal flows" sheet, with the maximum number of running trains displayed on the righthand side in red text and the entered origin and destination in blue. Each row contains information about the railway segment to which the algorithm decides to send the train, including its Station [From], Station [To], Number of running trains, Initial Capacity, Capacity left (remaining capacity after sending the train), and percentage capacity used. Moreover, if the railway section’s capacity is * fully utilised, the percentage cell will be automatically highlighted in green.

  • According to the photo, this is the example when we input the origin = Bristol Parkway station, destination = Eastleigh station. The result shows that the maximum running train that can be sent is 21 trains.

4. About the programming

Data

We use the mock-up simplified list of Great Western Railway major segments and stations as provided within the XLSM file

To learn more about Poon Athit S., visit his LinkedIn profile

All rights reserved 2022. All codes are developed and owned by Poon Athit S. or the metioned team member(s). If you use this code, please visit his LinkedIn and give him a skill endorsement in Data analytics and the aforementioned coding technologies.

About

The decision support system for calculating railway maximum flows when there is an event or incident that requires a large number of trains to be transferred from one origin to one destination.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published