eecs 203: it’s the end of the class and i feel fine. graphs
TRANSCRIPT
EECS 203:It’s the end of the class and I feel fine.
Graphs
Admin stuffsLast homework due today
I’ll stick around after class for questions
I’ll have different office hours next week.Monday 1-2:30 (my office or as on door)Tuesday 10:30-12:00 (my office or as on door)Wed. 10:30-12:00 (classroom)Thursday 10:30-12:00 (classroom)
Aaron’s hours will be announced shortly.Discussion is still on for Friday.We’ll be posting a set of topics to know for the final on Piazza.Extra credit stuff posted tomorrow and due Wed.
Today
Dijkstra’s algorithmUsing slides from http://math.ucsd.edu/~fan/teach/202/
https://en.wikipedia.org/wiki/Fan_Chung
Dijkstra’s Algorithm animated
Let’s try an induction proof on a graph
First we’ll define what it means for a graph to be connected.
Then we’ll show that in any connected graph there are at least two vertices you can remove from the graph (along with its incident edges) that leave the graph still connected.
We’ll use strong induction.First let’s (re)define some terms
GraphsA graph G = (V,E) consists of
a non-empty set V of vertices (or nodes),and a set E of edges.Each edge is associated with two vertices (possibly
equal), which are its endpoints.
A path from u to v of length n is:a sequence of edges e1, e2, . . . en in E, such that
there is a sequence of vertices u=v0, v1, . . . vn=v
such that each ei has endpoints vi-1 and vi.
A path is a circuit when u=v.A graph is connected when there exists a path
from every vertex to every other vertex.
From: http://www.sfu.ca/~mdevos/notes/graph/induction.pdfThere are a few nice observations about the proof there aswell as a few nice induction examples.
GraphsA graph G = (V,E) consists of
a non-empty set V of vertices (or nodes),and a set E of edges.Each edge is associated with two vertices (possibly
equal), which are its endpoints.
A path from u to v of length n is:a sequence of edges e1, e2, . . . en in E, such that
there is a sequence of vertices u=v0, v1, . . . vn=v
such that each ei has endpoints vi-1 and vi.
A path is a circuit when u=v.A graph is connected when there exists a path
from every vertex to every other vertex.
Paths and Circuits
Given a graph G = (V,E):
Is there a path/circuit that crosses each edge in E exactly once?
If so, G is an Eulerian graph,and you have an Eulerian path, or an Eulerian circuit.
Is there a path/circuit that visits each vertex in V exactly once?
If so, G is a Hamiltonian graph,and you have a Hamiltonian path or circuit.
Leonhard Euler lived in KönigsbergHe liked to take walks. A famous local puzzle was whether you could take a walk that would cross each bridge exactly once.
Euler solved this problem (in 1736) and thus founded graph theory.
The Graph Abstraction
In the physical world:Each bridge connects exactly two land-masses.Each land-mass may have any number of bridges.
Suggests a graph abstraction:Represent a bridge by an edge in the graph.Represent a land-mass by a vertex.
Is there an Euler circuit/path?
CircuitPath
Not Traversable
C
A
E
C
B
A
E
C
B
A A A
BBBCCC
D DD
E EE
Does G have an Euler Path/Circuit?Theorem: A connected multigraph has an Euler path iff it has exactly zero or two vertices of odd degree.
Why?
What if it has only one?
When does it have an Euler circuit?
Examples
Do these graphs have Euler paths/circuits?
(A)Yes, it has a circuit.(B)Yes, it has a path (but no circuit).(C)No, it has neither path nor circuit.
Does this have an Euler path?
O
P
NM
(A) Yes (B) No
Applications of Euler Paths
Planning routes through graphs that provide efficient coverage of the edges in the graph, without multiple traversals.
Postal delivery routesSnowplowing routesTesting network connections
Utility transmission networkCommunication network
Hamiltonian Paths and CircuitsGiven a graph, is there a path that passes through each vertex in the graph exactly once? (aka a Hamiltonian path)
dodecahedron Isomorphic graph solution
Hamilton circuit
Do these graphs have Hamilton circuits?
G H
(A) Yes, both. (C ) G doesn’t, H does.
(B) G does, H doesn’t. (D) No, neither.
1 2
3 4
5
6
Computational Complexity
Deciding whether a graph is Eulerian is a simple examination of the degrees of the vertices.
Simple linear-time algorithms exist for finding the path or circuit.
Deciding whether a graph is Hamiltonian is, in general, much more difficult (“NP complete”).
Finding a Hamiltonian path or circuit is equally hard.
Weighted graphs
A weighted graph has numbers (weights) assigned to each edge.
The length of a path is the sum of the weights in the path.
5 3
3 4
64
Traveling Salesperson’s Problem
What is the shortest route in a given mapfor a salesperson to visit every city exactly onceand return home at the end?
Mathematically:Given an graph with weighted edges, what is the Hamiltonian circuit of least weight?
Applies to both directed and undirected graphs.
The Traveling Salesman Problem
Problem: Given a graph G, find the shortest possible length for a Hamilton circuit.
What is the solution to TSP for the following graph?
(A) 16 (B) 17 (C ) 18 (D) 19 (E) 20
2
3
5
4
7
6
Traveling Salesperson’s ProblemThe TSP is NP Complete: intractable in general.
Very large instances have been solved with heuristics.An instance with 13,509 cities, solved in 2003.
Applications
The Traveling Salesperson’s Problem and the Hamilton Path/Circuit Problem have many applications.
Planning and logistics (of course!)Manufacture of microchipsDNA sequencing
And finish up 203
We have covered a massive amount of material.
And believe it or not, it is mostly something you’ll use again if you are in CS.
Proofs in 376 (and a bit in 281, 477, 478, 492 and a few other places)Graphs in 281 and many programming tasksLogic and sets in programming Growth of functions in algorithm development (and 281)Recursion relations in 281 and 477.Etc.
The language of Computer Science
But IMO the largest benefit is the language.
You hopefully can talk about sets, growth of functions and whatever else without feeling lost.That is actually the biggest difference between someone with a CS degree and a programmer without one.
You have the language to discuss topics. You know what a proof looks likeYou can reason about things in a formal way when things need it.
Monty Hall problem for example.
Honestly, the details will fade. But the ideas should stick and will be useful.