Ask Question, Ask an Expert

+61-413 786 465

info@mywordsolution.com

Ask Programming Language Expert

1. Introduction

The Tube Challenge is a Guinness World Records challenge that tests both the physical and mental abilities of the person trying to break it. The main components needed in order to break this record are planning, physical stamina but also luck.

1.1 Project Aims and Objectives

In this project I am required to primarily choose a programming language and use it to create a program that will find the most efficient route to pass through all of the underground stations while following specific rules. Secondly once I have achieved in finding this route I must then test my result by attempting the tube challenge practically. The objective of this project is not only to test the theoretical and practical differences there are but mainly to be able to find a way to translate my way of thinking of solving this challenge into programming.

2. Background

2.1 Challenge Rules 6 In order to explain the objective of the project, the rules of the tube challenge must first be made clear. In order to complete the challenge I must visit all of the 270 stations of the London underground service in the shortest period of time. It is not required to pass through all of the lines connecting the stations as long as every station has been visited at least once. In addition it is not required to visit the Docklands Light Railway & National Railway stations. The following rules must apply in order for the challenge to be valid.

a. Arrive and/or leave an underground station by normal service underground train. If a train line is shared by a National Rail train line then it is allowed to use National rail trains. The only available means other than the underground trains permitted is public transport such as buses, trams and walking as long as I arrive or leave the station by an underground train. All other transportation such as taxis, private car and bicycle etc. are not permitted.

b. Attempts are only allowed during week days due to station closures on the weekends. A train must stop at the station in order for the station to count but it is not necessary to get out. Stations temporarily closed or have closed because of an emergency must not be counted.

c. Stations that are not under one location such as Hammersmith for example, both sides must be visited. Therefore it is obligatory to change at that station in order to visit the other part of it as well. This is true for all stations like Hammersmith.

d. The arrival and departure times must be recorded in a logbook for proof at the end of the challenge. Also a stopwatch must be carried by another person in order to record the starting and finishing time for both personal and public reference. In the course of the challenge more proof must be assembled such as signatures from witnesses, photographic material, tickets from public transportation etc.

2.2 Tube Challenge history

The Tube Challenge was first initiated in 1959 and since then the record has been broken many times. Even if stations have been added or removed through all this years the record has been broken in numerous occasions. The current record holders are Martin Hazel, Andi James and Steve Wilson with record time of 16 hours, 44 minutes and 16 seconds in December 2009.

2.3 Research

This project is an optimisation problem. In order to find the optimal route an algorithm that will provide me with a suitable way to get an answer must be found. The first algorithm that I researched to see its feasibility on the challenge was the travelling salesman problem. The travelling salesman problem (TSP) is not applicable in the challenge because it states that it finds the fastest route between the given states, in this case stations starting from one station and passing only once from each other station and resulting back to the initial station. The reason the TSP cannot be used is because the way the underground network is there will be a case where a station may be revisited due to closed loops inside zone 1 and the extended zone 6 underground lines. In addition the mathematics of the TSP removes the possibility of having a solution with closed loops or moving back to the station u arrived. Finally the TSP applies if the desired answer returns you to the initial station making it a totally different challenge if applied. 1, 2 Secondly I researched the genetic algorithm. The genetic algorithm (GA) uses random progression and each route is given a fitness value. This allows for the progression to be more efficient when a new route is chosen. It also adds a series of 0's and 1's in order to create chromosomes that will show the path that was chosen in order to appoint it its fitness level. Due to the fact that there are so many constrains in the Tube Challenge this algorithm cannot be used in its original form. It is though a very good starting place and I have used a similar algorithm inspired by the GA. 3

2.4 Programming language

I will be making my project in Matlab. The reason I have chosen Matlab is because all of the ideas for implementing my algorithm can be done in Matlab and I will be able to translate my thinking to programming. Matlab will help me make my program more efficient due to my background knowledge of its uses from years 2 and

3. Specification

Algorithm structure

The algorithm I will use was inspired by genetic algorithms. I have chosen to apply this algorithm because it will lead me to find the optimal solution but also solve the challenge in my own way of thinking. In order for the program to work the following steps and functions must be followed.

1. Collect data for all of the stations and the time it takes between them. This will be done using the transport for London website. Also collect opening and closing times of stations.

2. Remove any station that does not have 2 lines intersecting with it because this means it can only travel on one line. Stations are reduced to only the ones intersecting and time between them is calculated.

3. In the central London do not include bus time because it takes too long compared with the underground trains.

4. Store this data in a 2 dimensional matrix in Matlab which will show the time between stations.

5. Each station of the matrix will have an id. This id will show which lines pass through it and also have a specific station number in order to note when the program has passed through that station. The lines are included in order to add delays when changing from one line to another due to the walking distance.

6. I will then enforce a random progression from one station to the next by brute force.

7. Each time the program goes to the next station it will add the time taken to go there to the total time until then, store the id of the station it has visited in order to know it has passed through it and finally test for line changing in order to add or not a delay.

8. When all the ids of the matrix have been visited then the random progression will stop.

9. In order for the solution to be valid it must satisfy a lot of restrictions. All of them are tested. The solution must contain all lines that have stations between them from step 2, change at the specific stations that are geographically different. Finally test if the first station and last station have enough time between their opening and closing time. If all of the restrictions are satisfied then the route and final answer is stored or else it is not accepted as a solution.

10. Then it will randomly progress again. The same process is carried out but in order to make it more efficient when the route chosen has exceeded the total time of the valid route until that time then it will not continue further and start again.

11. When a new valid route is found it replaces the previous route and time if it is faster.

12. After a number of generations that no other more efficient route can be found the stored route is our optimal solution. Its route and time are displayed.

13. In order to make the program more realistic an option will be added to change the time between the stations to simulate a delay of failure in order for a new route to be found.

14. Create a friendly user interface.

Programming Language, Programming

  • Category:- Programming Language
  • Reference No.:- M9525757

Have any Question?


Related Questions in Programming Language

1 write a function named check that has three parameters

1. Write a function named check () that has three parameters. The first parameter should accept an integer number, andthe second and third parameters should accept a double-precision number. The function body should just ...

Assignment - horse race meetingthe assignment will assess

Assignment - Horse Race Meeting The Assignment will assess competencies for ICTPRG524 Develop high level object-oriented class specifications. Summary The assignment is to design the classes that are necessary for the ad ...

Assignment - horse race meetingthe assignment will assess

Assignment - Horse Race Meeting The Assignment will assess competencies for ICTPRG524 Develop high level object-oriented class specifications. Summary The assignment is to design the classes that are necessary for the ad ...

Assignment task -q1 a the fibonacci numbers are the numbers

Assignment Task - Q1. (a) The Fibonacci numbers are the numbers in the following integer sequence, called the Fibonacci sequence, and are characterised by the fact that every number after the first two is the sum of the ...

Question 1 what is a computer program what is structured

Question: 1. What is a Computer program? What is structured programming? 2. What is modular programming? Why we use it? 3. Please evaluate Sin (x) by infinite series. Then write an algorithm to implement it with up to th ...

Structs and enumsoverviewin this task you will create a

Structs and Enums Overview In this task you will create a knight database to help Camelot keep track of all of their knights. Instructions Lets get started. 1. What the topic 5 videos, these will guide you through buildi ...

Task working with arraysoverviewin this task you will

Task: Working with Arrays Overview In this task you will create a simple program which will create and work with an array of strings. This array will then be populated with values, printed out to the console, and then, w ...

Assignment - haskell program for regular expression

Assignment - Haskell Program for Regular Expression Matching Your assignment is to modify the slowgrep.hs Haskell program presented in class and the online notes, according to the instructions below. You may carry out th ...

Overviewthis tasks provides you an opportunity to get

Overview This tasks provides you an opportunity to get feedback on your Learning Summary Report. The Learning Summary Report outlines how the work you have completed demonstrates that you have met all of the unit's learn ...

Assignment - proposal literature review research method1

Assignment - Proposal, Literature Review, Research Method 1. Abstract - Summary of the knowledge gap: problems of the existing research - Aim of the research, summary of what this project is to achieve - Summary of the a ...

  • 4,153,160 Questions Asked
  • 13,132 Experts
  • 2,558,936 Questions Answered

Ask Experts for help!!

Looking for Assignment Help?

Start excelling in your Courses, Get help with Assignment

Write us your full requirement for evaluation and you will receive response within 20 minutes turnaround time.

Ask Now Help with Problems, Get a Best Answer

Why might a bank avoid the use of interest rate swaps even

Why might a bank avoid the use of interest rate swaps, even when the institution is exposed to significant interest rate

Describe the difference between zero coupon bonds and

Describe the difference between zero coupon bonds and coupon bonds. Under what conditions will a coupon bond sell at a p

Compute the present value of an annuity of 880 per year

Compute the present value of an annuity of $ 880 per year for 16 years, given a discount rate of 6 percent per annum. As

Compute the present value of an 1150 payment made in ten

Compute the present value of an $1,150 payment made in ten years when the discount rate is 12 percent. (Do not round int

Compute the present value of an annuity of 699 per year

Compute the present value of an annuity of $ 699 per year for 19 years, given a discount rate of 6 percent per annum. As