EECS 203: It’s the end of the class and I feel fine. Graphs.
-
Upload
paula-mccarthy -
Category
Documents
-
view
226 -
download
7
Transcript of EECS 203: It’s the end of the class and I feel fine. Graphs.
![Page 1: EECS 203: It’s the end of the class and I feel fine. Graphs.](https://reader035.fdocuments.net/reader035/viewer/2022081519/56649e4b5503460f94b3feca/html5/thumbnails/1.jpg)
EECS 203:It’s the end of the class and I feel fine.
Graphs
![Page 2: EECS 203: It’s the end of the class and I feel fine. Graphs.](https://reader035.fdocuments.net/reader035/viewer/2022081519/56649e4b5503460f94b3feca/html5/thumbnails/2.jpg)
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.
![Page 3: EECS 203: It’s the end of the class and I feel fine. Graphs.](https://reader035.fdocuments.net/reader035/viewer/2022081519/56649e4b5503460f94b3feca/html5/thumbnails/3.jpg)
Today
Dijkstra’s algorithmUsing slides from http://math.ucsd.edu/~fan/teach/202/
https://en.wikipedia.org/wiki/Fan_Chung
![Page 4: EECS 203: It’s the end of the class and I feel fine. Graphs.](https://reader035.fdocuments.net/reader035/viewer/2022081519/56649e4b5503460f94b3feca/html5/thumbnails/4.jpg)
![Page 5: EECS 203: It’s the end of the class and I feel fine. Graphs.](https://reader035.fdocuments.net/reader035/viewer/2022081519/56649e4b5503460f94b3feca/html5/thumbnails/5.jpg)
![Page 6: EECS 203: It’s the end of the class and I feel fine. Graphs.](https://reader035.fdocuments.net/reader035/viewer/2022081519/56649e4b5503460f94b3feca/html5/thumbnails/6.jpg)
![Page 7: EECS 203: It’s the end of the class and I feel fine. Graphs.](https://reader035.fdocuments.net/reader035/viewer/2022081519/56649e4b5503460f94b3feca/html5/thumbnails/7.jpg)
![Page 8: EECS 203: It’s the end of the class and I feel fine. Graphs.](https://reader035.fdocuments.net/reader035/viewer/2022081519/56649e4b5503460f94b3feca/html5/thumbnails/8.jpg)
![Page 9: EECS 203: It’s the end of the class and I feel fine. Graphs.](https://reader035.fdocuments.net/reader035/viewer/2022081519/56649e4b5503460f94b3feca/html5/thumbnails/9.jpg)
![Page 10: EECS 203: It’s the end of the class and I feel fine. Graphs.](https://reader035.fdocuments.net/reader035/viewer/2022081519/56649e4b5503460f94b3feca/html5/thumbnails/10.jpg)
![Page 11: EECS 203: It’s the end of the class and I feel fine. Graphs.](https://reader035.fdocuments.net/reader035/viewer/2022081519/56649e4b5503460f94b3feca/html5/thumbnails/11.jpg)
![Page 12: EECS 203: It’s the end of the class and I feel fine. Graphs.](https://reader035.fdocuments.net/reader035/viewer/2022081519/56649e4b5503460f94b3feca/html5/thumbnails/12.jpg)
![Page 13: EECS 203: It’s the end of the class and I feel fine. Graphs.](https://reader035.fdocuments.net/reader035/viewer/2022081519/56649e4b5503460f94b3feca/html5/thumbnails/13.jpg)
![Page 14: EECS 203: It’s the end of the class and I feel fine. Graphs.](https://reader035.fdocuments.net/reader035/viewer/2022081519/56649e4b5503460f94b3feca/html5/thumbnails/14.jpg)
![Page 15: EECS 203: It’s the end of the class and I feel fine. Graphs.](https://reader035.fdocuments.net/reader035/viewer/2022081519/56649e4b5503460f94b3feca/html5/thumbnails/15.jpg)
![Page 16: EECS 203: It’s the end of the class and I feel fine. Graphs.](https://reader035.fdocuments.net/reader035/viewer/2022081519/56649e4b5503460f94b3feca/html5/thumbnails/16.jpg)
![Page 17: EECS 203: It’s the end of the class and I feel fine. Graphs.](https://reader035.fdocuments.net/reader035/viewer/2022081519/56649e4b5503460f94b3feca/html5/thumbnails/17.jpg)
![Page 18: EECS 203: It’s the end of the class and I feel fine. Graphs.](https://reader035.fdocuments.net/reader035/viewer/2022081519/56649e4b5503460f94b3feca/html5/thumbnails/18.jpg)
![Page 19: EECS 203: It’s the end of the class and I feel fine. Graphs.](https://reader035.fdocuments.net/reader035/viewer/2022081519/56649e4b5503460f94b3feca/html5/thumbnails/19.jpg)
![Page 20: EECS 203: It’s the end of the class and I feel fine. Graphs.](https://reader035.fdocuments.net/reader035/viewer/2022081519/56649e4b5503460f94b3feca/html5/thumbnails/20.jpg)
![Page 21: EECS 203: It’s the end of the class and I feel fine. Graphs.](https://reader035.fdocuments.net/reader035/viewer/2022081519/56649e4b5503460f94b3feca/html5/thumbnails/21.jpg)
![Page 22: EECS 203: It’s the end of the class and I feel fine. Graphs.](https://reader035.fdocuments.net/reader035/viewer/2022081519/56649e4b5503460f94b3feca/html5/thumbnails/22.jpg)
![Page 23: EECS 203: It’s the end of the class and I feel fine. Graphs.](https://reader035.fdocuments.net/reader035/viewer/2022081519/56649e4b5503460f94b3feca/html5/thumbnails/23.jpg)
![Page 24: EECS 203: It’s the end of the class and I feel fine. Graphs.](https://reader035.fdocuments.net/reader035/viewer/2022081519/56649e4b5503460f94b3feca/html5/thumbnails/24.jpg)
![Page 25: EECS 203: It’s the end of the class and I feel fine. Graphs.](https://reader035.fdocuments.net/reader035/viewer/2022081519/56649e4b5503460f94b3feca/html5/thumbnails/25.jpg)
![Page 26: EECS 203: It’s the end of the class and I feel fine. Graphs.](https://reader035.fdocuments.net/reader035/viewer/2022081519/56649e4b5503460f94b3feca/html5/thumbnails/26.jpg)
Dijkstra’s Algorithm animated
![Page 27: EECS 203: It’s the end of the class and I feel fine. Graphs.](https://reader035.fdocuments.net/reader035/viewer/2022081519/56649e4b5503460f94b3feca/html5/thumbnails/27.jpg)
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
![Page 28: EECS 203: It’s the end of the class and I feel fine. Graphs.](https://reader035.fdocuments.net/reader035/viewer/2022081519/56649e4b5503460f94b3feca/html5/thumbnails/28.jpg)
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.
![Page 29: EECS 203: It’s the end of the class and I feel fine. Graphs.](https://reader035.fdocuments.net/reader035/viewer/2022081519/56649e4b5503460f94b3feca/html5/thumbnails/29.jpg)
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.
![Page 30: EECS 203: It’s the end of the class and I feel fine. Graphs.](https://reader035.fdocuments.net/reader035/viewer/2022081519/56649e4b5503460f94b3feca/html5/thumbnails/30.jpg)
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.
![Page 31: EECS 203: It’s the end of the class and I feel fine. Graphs.](https://reader035.fdocuments.net/reader035/viewer/2022081519/56649e4b5503460f94b3feca/html5/thumbnails/31.jpg)
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.
![Page 32: EECS 203: It’s the end of the class and I feel fine. Graphs.](https://reader035.fdocuments.net/reader035/viewer/2022081519/56649e4b5503460f94b3feca/html5/thumbnails/32.jpg)
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.
![Page 33: EECS 203: It’s the end of the class and I feel fine. Graphs.](https://reader035.fdocuments.net/reader035/viewer/2022081519/56649e4b5503460f94b3feca/html5/thumbnails/33.jpg)
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.
![Page 34: EECS 203: It’s the end of the class and I feel fine. Graphs.](https://reader035.fdocuments.net/reader035/viewer/2022081519/56649e4b5503460f94b3feca/html5/thumbnails/34.jpg)
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
![Page 35: EECS 203: It’s the end of the class and I feel fine. Graphs.](https://reader035.fdocuments.net/reader035/viewer/2022081519/56649e4b5503460f94b3feca/html5/thumbnails/35.jpg)
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?
![Page 36: EECS 203: It’s the end of the class and I feel fine. Graphs.](https://reader035.fdocuments.net/reader035/viewer/2022081519/56649e4b5503460f94b3feca/html5/thumbnails/36.jpg)
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.
![Page 37: EECS 203: It’s the end of the class and I feel fine. Graphs.](https://reader035.fdocuments.net/reader035/viewer/2022081519/56649e4b5503460f94b3feca/html5/thumbnails/37.jpg)
Does this have an Euler path?
O
P
NM
(A) Yes (B) No
![Page 38: EECS 203: It’s the end of the class and I feel fine. Graphs.](https://reader035.fdocuments.net/reader035/viewer/2022081519/56649e4b5503460f94b3feca/html5/thumbnails/38.jpg)
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
![Page 39: EECS 203: It’s the end of the class and I feel fine. Graphs.](https://reader035.fdocuments.net/reader035/viewer/2022081519/56649e4b5503460f94b3feca/html5/thumbnails/39.jpg)
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
![Page 40: EECS 203: It’s the end of the class and I feel fine. Graphs.](https://reader035.fdocuments.net/reader035/viewer/2022081519/56649e4b5503460f94b3feca/html5/thumbnails/40.jpg)
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
![Page 41: EECS 203: It’s the end of the class and I feel fine. Graphs.](https://reader035.fdocuments.net/reader035/viewer/2022081519/56649e4b5503460f94b3feca/html5/thumbnails/41.jpg)
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.
![Page 42: EECS 203: It’s the end of the class and I feel fine. Graphs.](https://reader035.fdocuments.net/reader035/viewer/2022081519/56649e4b5503460f94b3feca/html5/thumbnails/42.jpg)
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
![Page 43: EECS 203: It’s the end of the class and I feel fine. Graphs.](https://reader035.fdocuments.net/reader035/viewer/2022081519/56649e4b5503460f94b3feca/html5/thumbnails/43.jpg)
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.
![Page 44: EECS 203: It’s the end of the class and I feel fine. Graphs.](https://reader035.fdocuments.net/reader035/viewer/2022081519/56649e4b5503460f94b3feca/html5/thumbnails/44.jpg)
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
![Page 45: EECS 203: It’s the end of the class and I feel fine. Graphs.](https://reader035.fdocuments.net/reader035/viewer/2022081519/56649e4b5503460f94b3feca/html5/thumbnails/45.jpg)
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.
![Page 46: EECS 203: It’s the end of the class and I feel fine. Graphs.](https://reader035.fdocuments.net/reader035/viewer/2022081519/56649e4b5503460f94b3feca/html5/thumbnails/46.jpg)
Applications
The Traveling Salesperson’s Problem and the Hamilton Path/Circuit Problem have many applications.
Planning and logistics (of course!)Manufacture of microchipsDNA sequencing
![Page 47: EECS 203: It’s the end of the class and I feel fine. Graphs.](https://reader035.fdocuments.net/reader035/viewer/2022081519/56649e4b5503460f94b3feca/html5/thumbnails/47.jpg)
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.
![Page 48: EECS 203: It’s the end of the class and I feel fine. Graphs.](https://reader035.fdocuments.net/reader035/viewer/2022081519/56649e4b5503460f94b3feca/html5/thumbnails/48.jpg)
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.