Problem Solving with Networks
description
Transcript of Problem Solving with Networks
Problem Solving with Networks18/08/2012
Jamie [email protected]
Networks, graphs A graph is collection of points with
lines between them
A network is a graph with positive numbers assigned to its edges as weights
point linevertex (vertices) edge
node arc
Distances in miles between some US cities
Detroit MI
Columbus OH
Washington DC
PittsburghPA
Philadelphia PA
New YorkNY
Rochester NYBuffalo NY
Cleveland OH
ToledoOH
Scranton PA
Harrisburg PA
Distances in miles between some US cities
Detroit MI
Columbus OH
Washington DC
PittsburghPA
Philadelphia PA
New YorkNY
Rochester NYBuffalo NY
Cleveland OH
ToledoOH
Scranton PA
Harrisburg PA
Distances in miles between NE state US cities
Detroit MI
Columbus OH
Washington DC
PittsburghPA
Philadelphia PA
New YorkNY
Rochester NYBuffalo NY
Cleveland OH
ToledoOH
Scranton PA
Harrisburg PA
Distances in miles between NE state US cities
61
144
117
25573
190
134142
185
246141
204
112
217
121
95125
121
Distances in miles between NE state US cities
107
Detroit MI
Columbus OH
Washington DC
PittsburghPA
Philadelphia PA
New YorkNY
Rochester NYBuffalo NY
Cleveland OH
ToledoOH
Scranton PA
61
144
117
25573
190
134142
185
246141
Harrisburg PA204
112
217
121
95125
121
Distances in miles between NE state US cities
107
61
144
117
25573
190
134142
185
246141
204
112
217
121
95125
121
Distances in miles between NE state US cities
107
T
DB R
H
S
N
Ph
W
PiCl
Co
61
144
117
25573
190
134142
185
246141
204
112
217
121
95125
121
Spanning Tree with edge deletion
107
T
DB R
H
S
N
Ph
W
PiCl
Co
61
144
117
25573
190
134142
185
246141
204
112
217
121
95125
121
Spanning Tree with edge inclusion (1)
107
T
DB R
H
S
N
Ph
W
PiCl
Co
61
144
117
25573
190
134142
185
246141
204
112
217
121
95125
121
Spanning Tree with edge inclusion (2)
107
T
DB R
H
S
N
Ph
W
PiCl
Co
Total weight = 1356 miles
Problems in networks (0) Are all the nodes connected? (1) What is the lowest weight
(smallest) tree which connects all the nodes?
(2) What is the shortest distance from A to B?
(3) Can every edge be used exactly once?
(4) Can every node be visited exactly once?
(5) What is the shortest way to visit every node exactly once?
(0) Connectedness It’s usually easy to tell if a real-world
network is connected or not. Starting at an arbitrary node, if we list that node’s neighbours, then their neighbours, then theirs, we might eventually visit all the nodes.
[ACTIVITY] If we don’t, it’s not c0nnected.
(1) Spanning Tree A minimum weight spanning tree is a
sub-graph without cycles which connects all the nodes.
A tree with n nodes has n-1 edges.
Sometimes it’s easier to add edges, sometimes remove them.
(2) Shortest Path Starting at a particular node A, what
is the shortest path to another vertex B (or to all other vertices).
[ACTIVITY 2]
(3) Traversability Is it possible to start at a node A and
follow a route through the network which uses every edge exactly once?
If so, does the path return to A, or end elsewhere?
Easily characterised with node parity (even/odd)
(4) Visiting nodes Is it possible to start at a node A and
follow a route through the network visits every NODE exactly once?
If so, does the path return to A, or end elsewhere?
Called Hamiltonian: no characterisation, and hard to find
(5) Travelling Salesman What is the shortest Hamiltonian
cycle/path? This is harder still!
TSP (Travelling Salesman Problem) is the definitive “hard” problem of computational mathematics
Real World / Mathematical World
Networks don’t always model the real world perfectly – what could go wrong?
One way edges Different weight directions on edges Variable data (time of day, day of
week) Roads branching outside towns
Questions beyond the procedural
Why did you use this algorithm? Compare two algorithms
edge inclusion vs edge deletion How could the network be changed
to give (or remove) a property What does this mean in relation to
the given problem
How doesadding / deletingnodes / edgeschange the
shortest paths / spanning trees?
Where to add connections? Where in the network should edges
be added/removed so that it is traversable?
Optional nodes What if we want to allow the
possibility of a node outside a town?
Construct two spanning trees: with/without
4
5
5
32.5
2.5
2
1
5
3
For more: Wikipedia! Prim’s Algorithm (connected sub-
tree) Kruskal’s Algorithm (partial trees) Reverse-Delete Algorithm (remove
edges) Dijkstra’s Algorithm Euler Path – Fleury’s Algorithm
Jamie Sneddon [email protected]