THE UNIVERSITY OF BIRMINGHAM
School of Computer Science

Software Workshop Java
Route Finder

Mark Ryan

 

As explained on the main exercise sheet, RouteFinder3 involves using Dijkstra's algorithm. Here are two examples showing how the RouteTableau evolves.

From Oxford to Sheffield

java RouteFinder3 Oxford Sheffield 9 15 -d 

Tableau contents:
Can get to:   by:   from:         at:   shortest?
Oxford        9.0   null          0.0   false
1 entries
---
Tableau contents:
Can get to:   by:   from:         at:   shortest?
Birmingham    10.39 Oxford        9.33  false
London        10.11 Oxford        9.15  false
Oxford        9.0   null          0.0   true 
3 entries
---
Tableau contents:
Can get to:   by:   from:         at:   shortest?
Colchester    11.09 London        10.15 false
Manchester    13.36 London        10.55 false
Liverpool     13.55 London        11.0  false
Edinburgh     14.49 London        10.3  false
Birmingham    10.39 Oxford        9.33  false
York          12.26 London        10.3  false
London        10.11 Oxford        9.15  true 
Newcastle     13.21 London        10.3  false
Oxford        9.0   null          0.0   true 
9 entries
---
Tableau contents:
Can get to:   by:   from:         at:   shortest?
Colchester    11.09 London        10.15 false
Manchester    13.02 Birmingham    11.04 false
Warwick       11.53 Birmingham    11.18 false
Liverpool     12.28 Birmingham    10.48 false
Leicester     11.54 Birmingham    11.02 false
Edinburgh     14.49 London        10.3  false
Birmingham    10.39 Oxford        9.33  true 
York          12.26 London        10.3  false
London        10.11 Oxford        9.15  true 
Newcastle     13.21 London        10.3  false
Oxford        9.0   null          0.0   true 
11 entries
---
Tableau contents:
Can get to:   by:   from:         at:   shortest?
Colchester    11.09 London        10.15 true 
Manchester    13.02 Birmingham    11.04 false
Warwick       11.53 Birmingham    11.18 false
Liverpool     12.28 Birmingham    10.48 false
Leicester     11.54 Birmingham    11.02 false
Edinburgh     14.49 London        10.3  false
Birmingham    10.39 Oxford        9.33  true 
York          12.26 London        10.3  false
London        10.11 Oxford        9.15  true 
Newcastle     13.21 London        10.3  false
Oxford        9.0   null          0.0   true 
11 entries
---
Tableau contents:
Can get to:   by:   from:         at:   shortest?
Colchester    11.09 London        10.15 true 
Manchester    13.02 Birmingham    11.04 false
Warwick       11.53 Birmingham    11.18 true 
Liverpool     12.28 Birmingham    10.48 false
Leicester     11.54 Birmingham    11.02 false
Edinburgh     14.49 London        10.3  false
Birmingham    10.39 Oxford        9.33  true 
York          12.26 London        10.3  false
London        10.11 Oxford        9.15  true 
Newcastle     13.21 London        10.3  false
Oxford        9.0   null          0.0   true 
11 entries
---
Tableau contents:
Can get to:   by:   from:         at:   shortest?
Colchester    11.09 London        10.15 true 
Manchester    13.02 Birmingham    11.04 false
Warwick       11.53 Birmingham    11.18 true 
Liverpool     12.28 Birmingham    10.48 false
Leicester     11.54 Birmingham    11.02 true 
Edinburgh     14.49 London        10.3  false
Birmingham    10.39 Oxford        9.33  true 
York          12.26 London        10.3  false
London        10.11 Oxford        9.15  true 
Newcastle     13.21 London        10.3  false
Oxford        9.0   null          0.0   true 
11 entries
---
Tableau contents:
Can get to:   by:   from:         at:   shortest?
Colchester    11.09 London        10.15 true 
Manchester    13.02 Birmingham    11.04 false
Warwick       11.53 Birmingham    11.18 true 
Liverpool     12.28 Birmingham    10.48 false
Leicester     11.54 Birmingham    11.02 true 
Edinburgh     14.49 London        10.3  false
Birmingham    10.39 Oxford        9.33  true 
York          12.26 London        10.3  true 
London        10.11 Oxford        9.15  true 
Newcastle     13.21 London        10.3  false
Oxford        9.0   null          0.0   true 
11 entries
---
Tableau contents:
Can get to:   by:   from:         at:   shortest?
Colchester    11.09 London        10.15 true 
Manchester    13.02 Birmingham    11.04 false
Warwick       11.53 Birmingham    11.18 true 
Liverpool     12.28 Birmingham    10.48 true 
Leicester     11.54 Birmingham    11.02 true 
Edinburgh     14.49 London        10.3  false
Birmingham    10.39 Oxford        9.33  true 
York          12.26 London        10.3  true 
London        10.11 Oxford        9.15  true 
Newcastle     13.21 London        10.3  false
Oxford        9.0   null          0.0   true 
11 entries
---
Tableau contents:
Can get to:   by:   from:         at:   shortest?
Leeds         14.15 Manchester    13.13 false
Sheffield     14.08 Manchester    13.19 false
Colchester    11.09 London        10.15 true 
Manchester    13.02 Birmingham    11.04 true 
Warwick       11.53 Birmingham    11.18 true 
Liverpool     12.28 Birmingham    10.48 true 
Leicester     11.54 Birmingham    11.02 true 
Edinburgh     14.49 London        10.3  false
Birmingham    10.39 Oxford        9.33  true 
York          12.26 London        10.3  true 
London        10.11 Oxford        9.15  true 
Newcastle     13.21 London        10.3  false
Oxford        9.0   null          0.0   true 
13 entries
---
Tableau contents:
Can get to:   by:   from:         at:   shortest?
Leeds         14.15 Manchester    13.13 false
Sheffield     14.08 Manchester    13.19 false
Colchester    11.09 London        10.15 true 
Manchester    13.02 Birmingham    11.04 true 
Warwick       11.53 Birmingham    11.18 true 
Liverpool     12.28 Birmingham    10.48 true 
Leicester     11.54 Birmingham    11.02 true 
Edinburgh     14.49 London        10.3  false
Birmingham    10.39 Oxford        9.33  true 
York          12.26 London        10.3  true 
London        10.11 Oxford        9.15  true 
Newcastle     13.21 London        10.3  true 
Oxford        9.0   null          0.0   true 
13 entries
---
 


Now we extract the itinerary, starting from the destination and working backwards to the source:

Oxford (9.33) to Birmingham (10.39), Birmingham (11.04) to Manchester (13.02), Manchester (13.19) to Sheffield (14.08)

Number of database results extracted: 177

 

From Birmingham to Glasgow

java RouteFinder3 Birmingham Glasgow 10 19  

Tableau contents:
Can get to:   by:   from:         at:   shortest?
Birmingham    10.0  null          0.0   false
1 entries
---
Tableau contents:
Can get to:   by:   from:         at:   shortest?
Manchester    12.16 Birmingham    10.34 false
Glasgow       17.3  Birmingham    12.57 false
Warwick       10.53 Birmingham    10.18 false
Liverpool     12.28 Birmingham    10.48 false
Leicester     10.54 Birmingham    10.03 false
Edinburgh     15.33 Birmingham    11.0  false
Birmingham    10.0  null          0.0   true 
York          12.05 Birmingham    10.0  false
London        11.58 Birmingham    10.15 false
Oxford        11.23 Birmingham    10.03 false
Newcastle     13.09 Birmingham    10.0  false
11 entries
---
Tableau contents:
Can get to:   by:   from:         at:   shortest?
Manchester    12.16 Birmingham    10.34 false
Glasgow       17.3  Birmingham    12.57 false
Warwick       10.53 Birmingham    10.18 true 
Liverpool     12.28 Birmingham    10.48 false
Leicester     10.54 Birmingham    10.03 false
Edinburgh     15.33 Birmingham    11.0  false
Birmingham    10.0  null          0.0   true 
York          12.05 Birmingham    10.0  false
London        11.58 Birmingham    10.15 false
Oxford        11.23 Birmingham    10.03 false
Newcastle     13.09 Birmingham    10.0  false
11 entries
---
Tableau contents:
Can get to:   by:   from:         at:   shortest?
Manchester    12.16 Birmingham    10.34 false
Glasgow       17.3  Birmingham    12.57 false
Warwick       10.53 Birmingham    10.18 true 
Liverpool     12.28 Birmingham    10.48 false
Leicester     10.54 Birmingham    10.03 true 
Edinburgh     15.33 Birmingham    11.0  false
Birmingham    10.0  null          0.0   true 
York          12.05 Birmingham    10.0  false
London        11.58 Birmingham    10.15 false
Oxford        11.23 Birmingham    10.03 false
Newcastle     13.09 Birmingham    10.0  false
11 entries
---
Tableau contents:
Can get to:   by:   from:         at:   shortest?
Manchester    12.16 Birmingham    10.34 false
Glasgow       17.3  Birmingham    12.57 false
Warwick       10.53 Birmingham    10.18 true 
Liverpool     12.28 Birmingham    10.48 false
Leicester     10.54 Birmingham    10.03 true 
Edinburgh     15.33 Birmingham    11.0  false
Birmingham    10.0  null          0.0   true 
York          12.05 Birmingham    10.0  false
London        11.58 Birmingham    10.15 false
Oxford        11.23 Birmingham    10.03 true 
Newcastle     13.09 Birmingham    10.0  false
11 entries
---
Tableau contents:
Can get to:   by:   from:         at:   shortest?
Colchester    12.45 London        12.0  false
Manchester    12.16 Birmingham    10.34 false
Glasgow       17.3  Birmingham    12.57 false
Warwick       10.53 Birmingham    10.18 true 
Liverpool     12.28 Birmingham    10.48 false
Leicester     10.54 Birmingham    10.03 true 
Edinburgh     15.33 Birmingham    11.0  false
Birmingham    10.0  null          0.0   true 
York          12.05 Birmingham    10.0  false
London        11.58 Birmingham    10.15 true 
Oxford        11.23 Birmingham    10.03 true 
Newcastle     13.09 Birmingham    10.0  false
12 entries
---
Tableau contents:
Can get to:   by:   from:         at:   shortest?
Colchester    12.45 London        12.0  false
Manchester    12.16 Birmingham    10.34 false
Glasgow       16.27 York          12.54 false
Warwick       10.53 Birmingham    10.18 true 
Liverpool     12.28 Birmingham    10.48 false
Leicester     10.54 Birmingham    10.03 true 
Edinburgh     14.49 York          12.28 false
Birmingham    10.0  null          0.0   true 
York          12.05 Birmingham    10.0  true 
London        11.58 Birmingham    10.15 true 
Oxford        11.23 Birmingham    10.03 true 
Newcastle     13.09 Birmingham    10.0  false
12 entries
---
Tableau contents:
Can get to:   by:   from:         at:   shortest?
Leeds         13.34 Manchester    12.3  false
Sheffield     13.08 Manchester    12.19 false
Colchester    12.45 London        12.0  false
Manchester    12.16 Birmingham    10.34 true 
Glasgow       16.27 York          12.54 false
Warwick       10.53 Birmingham    10.18 true 
Liverpool     12.28 Birmingham    10.48 false
Leicester     10.54 Birmingham    10.03 true 
Edinburgh     14.49 York          12.28 false
Birmingham    10.0  null          0.0   true 
York          12.05 Birmingham    10.0  true 
London        11.58 Birmingham    10.15 true 
Oxford        11.23 Birmingham    10.03 true 
Newcastle     13.09 Birmingham    10.0  false
14 entries
---
Tableau contents:
Can get to:   by:   from:         at:   shortest?
Leeds         13.34 Manchester    12.3  false
Sheffield     13.08 Manchester    12.19 false
Colchester    12.45 London        12.0  false
Manchester    12.16 Birmingham    10.34 true 
Glasgow       16.27 York          12.54 false
Warwick       10.53 Birmingham    10.18 true 
Liverpool     12.28 Birmingham    10.48 true 
Leicester     10.54 Birmingham    10.03 true 
Edinburgh     14.49 York          12.28 false
Birmingham    10.0  null          0.0   true 
York          12.05 Birmingham    10.0  true 
London        11.58 Birmingham    10.15 true 
Oxford        11.23 Birmingham    10.03 true 
Newcastle     13.09 Birmingham    10.0  false
14 entries
---
Tableau contents:
Can get to:   by:   from:         at:   shortest?
Leeds         13.34 Manchester    12.3  false
Sheffield     13.08 Manchester    12.19 false
Colchester    12.45 London        12.0  true 
Manchester    12.16 Birmingham    10.34 true 
Glasgow       16.27 York          12.54 false
Warwick       10.53 Birmingham    10.18 true 
Liverpool     12.28 Birmingham    10.48 true 
Leicester     10.54 Birmingham    10.03 true 
Edinburgh     14.49 York          12.28 false
Birmingham    10.0  null          0.0   true 
York          12.05 Birmingham    10.0  true 
London        11.58 Birmingham    10.15 true 
Oxford        11.23 Birmingham    10.03 true 
Newcastle     13.09 Birmingham    10.0  false
14 entries
---
Tableau contents:
Can get to:   by:   from:         at:   shortest?
Leeds         13.34 Manchester    12.3  false
Sheffield     13.08 Manchester    12.19 true 
Colchester    12.45 London        12.0  true 
Manchester    12.16 Birmingham    10.34 true 
Glasgow       16.27 York          12.54 false
Warwick       10.53 Birmingham    10.18 true 
Liverpool     12.28 Birmingham    10.48 true 
Leicester     10.54 Birmingham    10.03 true 
Edinburgh     14.49 York          12.28 false
Birmingham    10.0  null          0.0   true 
York          12.05 Birmingham    10.0  true 
London        11.58 Birmingham    10.15 true 
Oxford        11.23 Birmingham    10.03 true 
Newcastle     13.09 Birmingham    10.0  false
14 entries
---
Tableau contents:
Can get to:   by:   from:         at:   shortest?
Leeds         13.34 Manchester    12.3  false
Sheffield     13.08 Manchester    12.19 true 
Colchester    12.45 London        12.0  true 
Manchester    12.16 Birmingham    10.34 true 
Glasgow       16.27 York          12.54 false
Warwick       10.53 Birmingham    10.18 true 
Liverpool     12.28 Birmingham    10.48 true 
Leicester     10.54 Birmingham    10.03 true 
Edinburgh     14.49 York          12.28 false
Birmingham    10.0  null          0.0   true 
York          12.05 Birmingham    10.0  true 
London        11.58 Birmingham    10.15 true 
Oxford        11.23 Birmingham    10.03 true 
Newcastle     13.09 Birmingham    10.0  true 
14 entries
---
Tableau contents:
Can get to:   by:   from:         at:   shortest?
Leeds         13.34 Manchester    12.3  true 
Sheffield     13.08 Manchester    12.19 true 
Colchester    12.45 London        12.0  true 
Manchester    12.16 Birmingham    10.34 true 
Glasgow       16.27 York          12.54 false
Warwick       10.53 Birmingham    10.18 true 
Liverpool     12.28 Birmingham    10.48 true 
Leicester     10.54 Birmingham    10.03 true 
Edinburgh     14.49 York          12.28 false
Birmingham    10.0  null          0.0   true 
York          12.05 Birmingham    10.0  true 
London        11.58 Birmingham    10.15 true 
Oxford        11.23 Birmingham    10.03 true 
Newcastle     13.09 Birmingham    10.0  true 
14 entries
---
Tableau contents:
Can get to:   by:   from:         at:   shortest?
Leeds         13.34 Manchester    12.3  true 
Sheffield     13.08 Manchester    12.19 true 
Colchester    12.45 London        12.0  true 
Manchester    12.16 Birmingham    10.34 true 
Glasgow       16.08 Edinburgh     15.15 false
Warwick       10.53 Birmingham    10.18 true 
Liverpool     12.28 Birmingham    10.48 true 
Leicester     10.54 Birmingham    10.03 true 
Edinburgh     14.49 York          12.28 true 
Birmingham    10.0  null          0.0   true 
York          12.05 Birmingham    10.0  true 
London        11.58 Birmingham    10.15 true 
Oxford        11.23 Birmingham    10.03 true 
Newcastle     13.09 Birmingham    10.0  true 
14 entries
---
Tableau contents:
Can get to:   by:   from:         at:   shortest?
Leeds         13.34 Manchester    12.3  true 
Sheffield     13.08 Manchester    12.19 true 
Colchester    12.45 London        12.0  true 
Manchester    12.16 Birmingham    10.34 true 
Glasgow       16.08 Edinburgh     15.15 true 
Warwick       10.53 Birmingham    10.18 true 
Liverpool     12.28 Birmingham    10.48 true 
Leicester     10.54 Birmingham    10.03 true 
Edinburgh     14.49 York          12.28 true 
Birmingham    10.0  null          0.0   true 
York          12.05 Birmingham    10.0  true 
London        11.58 Birmingham    10.15 true 
Oxford        11.23 Birmingham    10.03 true 
Newcastle     13.09 Birmingham    10.0  true 
14 entries
---
Birmingham (10.0) to York (12.05), York (12.28) to Edinburgh (14.49), Edinburgh (15.15) to Glasgow (16.08)

Number of database results extracted: 564