Networks Powerpoint - Auckland Mathematical Association

advertisement
Problem Solving with Networks
18/08/2012
Jamie Sneddon
j.sneddon@auckland.ac.nz
Networks, graphs
 A graph is collection of points with lines
between them
point
line
vertex (vertices)
edge
node
arc
 A network is a graph with positive numbers
assigned to its edges as weights
Distances in miles between some US cities
Distances in miles between some US cities
Buffalo NY
Rochester NY
Detroit MI
Toledo
OH
Cleveland OH
Scranton PA
New York
NY
Harrisburg PA
Columbus OH
Pittsburgh
PA
Philadelphia PA
Washington DC
Distances in miles between NE state US cities
Buffalo NY
Rochester NY
Detroit MI
Toledo
OH
Cleveland OH
Scranton PA
New York
NY
Harrisburg PA
Columbus OH
Pittsburgh
PA
Philadelphia PA
Washington DC
Distances in miles between NE state US cities
Buffalo NY
Rochester NY
Detroit MI
Toledo
OH
Cleveland OH
Scranton PA
New York
NY
Harrisburg PA
Columbus OH
Pittsburgh
PA
Philadelphia PA
Washington DC
Distances in miles between NE state US cities
73
255
217
190
61
117
144
134
112
142
185
204
246
107
121
141
121
125
95
Distances in miles between NE state US cities
Buffalo NY
Detroit MI
Toledo
OH 61
73
255
217
190
117
144
Rochester NY
Cleveland OH
Scranton PA
134
142
185
Columbus OH
Harrisburg PA
204
Pittsburgh
PA
246
112
107
New York
NY
121
125
95
Philadelphia PA
121
141
Washington DC
Distances in miles between NE state US cities
R
B
D
T
73
255
217
190
61
117
144
Cl
134
142
185
Co
S
Pi
204
246
H
112
107
121
141
W
121
125
95
Ph
N
Spanning Tree with edge deletion
R
B
D
T
73
255
217
190
61
117
144
Cl
134
142
185
Co
S
Pi
204
246
H
112
107
121
141
W
121
125
95
Ph
N
Spanning Tree with edge inclusion (1)
R
B
D
T
73
255
217
190
61
117
144
Cl
134
142
185
Co
S
Pi
204
246
H
112
107
121
141
W
121
125
95
Ph
N
Spanning Tree with edge inclusion (2)
R
B
D
T
73
255
217
190
61
117
144
S
Cl
134
142
Pi
185
Co
204
246
H
112
107
121
141
Total weight = 1356 miles
W
121
125
95
Ph
N
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 subgraph 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 does
adding / deleting
nodes / edges
change 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
5
2.5
4
1
3
3
2.5
2
5
5
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 j.sneddon@auckland.ac.nz
Download