Title: University of Florida Dept. of Computer
1University of FloridaDept. of Computer
Information Science EngineeringCOT
3100Applications of Discrete StructuresDr.
Michael P. Frank
- Slides for a Course Based on the TextDiscrete
Mathematics Its Applications (5th Edition)by
Kenneth H. Rosen
2Module 22Graph Theory
- Rosen 5th ed., chs. 8-9
- 44 slides (more later), 3 lectures
3What are Graphs?
Not
- General meaning in everyday math A plot or
chart of numerical data using a coordinate
system. - Technical meaning in discrete mathematicsA
particular class of discrete structures (to be
defined) that is useful for representing
relations and has a convenient webby-looking
graphical representation.
4Applications of Graphs
- Potentially anything (graphs can represent
relations, relations can describe the extension
of any predicate). - Apps in networking, scheduling, flow
optimization, circuit design, path planning. - More apps Geneology analysis, computer
game-playing, program compilation,
object-oriented design,
5Simple Graphs
- Correspond to symmetric,irreflexive binary
relations R. - A simple graph G(V,E)consists of
- a set V of vertices or nodes (V corresponds to
the universe of the relation R), - a set E of edges / arcs / links unordered pairs
of distinct elements u,v ? V, such that uRv.
Visual Representationof a Simple Graph
6Example of a Simple Graph
- Let V be the set of states in the
far-southeastern U.S. - I.e., VFL, GA, AL, MS, LA, SC, TN, NC
- Let Eu,vu adjoins v
- FL,GA,FL,AL,FL,MS, FL,LA,GA,AL,AL,
MS, MS,LA,GA,SC,GA,TN,
SC,NC,NC,TN,MS,TN, MS,AL
NC
TN
SC
MS
AL
GA
LA
FL
7Multigraphs
- Like simple graphs, but there may be more than
one edge connecting two given nodes. - A multigraph G(V, E, f ) consists of a set V of
vertices, a set E of edges (as primitive
objects), and a functionfE?u,vu,v?V ? u?v. - E.g., nodes are cities, edgesare segments of
major highways.
Paralleledges
8Pseudographs
- Like a multigraph, but edges connecting a node to
itself are allowed. (R may be reflexive.) - A pseudograph G(V, E, f ) wherefE?u,vu,v?V
. Edge e?E is a loop if f(e)u,uu. - E.g., nodes are campsitesin a state park, edges
arehiking trails through the woods.
9Directed Graphs
- Correspond to arbitrary binary relations R, which
need not be symmetric. - A directed graph (V,E) consists of a set of
vertices V and a binary relation E on V. - E.g. V set of People,E(x,y) x loves y
10Directed Multigraphs
- Like directed graphs, but there may be more than
one arc from a node to another. - A directed multigraph G(V, E, f ) consists of a
set V of vertices, a set E of edges, and a
function fE?V?V. - E.g., Vweb pages,Ehyperlinks. The WWW isa
directed multigraph...
11Types of Graphs Summary
- Summary of the books definitions.
- Keep in mind this terminology is not fully
standardized across different authors...
128.2 Graph Terminology
- You need to learn the following terms
- Adjacent, connects, endpoints, degree, initial,
terminal, in-degree, out-degree, complete,
cycles, wheels, n-cubes, bipartite, subgraph,
union.
13Adjacency
- Let G be an undirected graph with edge set E.
Let e?E be (or map to) the pair u,v. Then we
say - u, v are adjacent / neighbors / connected.
- Edge e is incident with vertices u and v.
- Edge e connects u and v.
- Vertices u and v are endpoints of edge e.
14Degree of a Vertex
- Let G be an undirected graph, v?V a vertex.
- The degree of v, deg(v), is its number of
incident edges. (Except that any self-loops are
counted twice.) - A vertex with degree 0 is called isolated.
- A vertex of degree 1 is called pendant.
15Handshaking Theorem
- Let G be an undirected (simple, multi-, or
pseudo-) graph with vertex set V and edge set E.
Then - Corollary Any undirected graph has an even
number of vertices of odd degree.
16Directed Adjacency
- Let G be a directed (possibly multi-) graph, and
let e be an edge of G that is (or maps to) (u,v).
Then we say - u is adjacent to v, v is adjacent from u
- e comes from u, e goes to v.
- e connects u to v, e goes from u to v
- the initial vertex of e is u
- the terminal vertex of e is v
17Directed Degree
- Let G be a directed graph, v a vertex of G.
- The in-degree of v, deg?(v), is the number of
edges going to v. - The out-degree of v, deg?(v), is the number of
edges coming from v. - The degree of v, deg(v)?deg?(v)deg?(v), is the
sum of vs in-degree and out-degree.
18Directed Handshaking Theorem
- Let G be a directed (possibly multi-) graph with
vertex set V and edge set E. Then - Note that the degree of a node is unchanged by
whether we consider its edges to be directed or
undirected.
19Special Graph Structures
- Special cases of undirected graph structures
- Complete graphs Kn
- Cycles Cn
- Wheels Wn
- n-Cubes Qn
- Bipartite graphs
- Complete bipartite graphs Km,n
20Complete Graphs
- For any n?N, a complete graph on n vertices, Kn,
is a simple graph with n nodes in which every
node is adjacent to every other node ?u,v?V
u?v?u,v?E.
K1
K4
K3
K2
K5
K6
Note that Kn has edges.
21Cycles
- For any n?3, a cycle on n vertices, Cn, is a
simple graph where Vv1,v2, ,vn and
Ev1,v2,v2,v3,,vn?1,vn,vn,v1.
C3
C4
C5
C6
C8
C7
How many edges are there in Cn?
22Wheels
- For any n?3, a wheel Wn, is a simple graph
obtained by taking the cycle Cn and adding one
extra vertex vhub and n extra edges vhub,v1,
vhub,v2,,vhub,vn.
W3
W4
W5
W6
W8
W7
How many edges are there in Wn?
23n-cubes (hypercubes)
- For any n?N, the hypercube Qn is a simple graph
consisting of two copies of Qn-1 connected
together at corresponding nodes. Q0 has 1 node.
Q0
Q1
Q2
Q4
Q3
Number of vertices 2n. Number of edgesExercise
to try!
24n-cubes (hypercubes)
- For any n?N, the hypercube Qn can be defined
recursively as follows - Q0v0,? (one node and no edges)
- For any n?N, if Qn(V,E), where Vv1,,va and
Ee1,,eb, then Qn1(V?v1,,va,
E?e1,,eb?v1,v1,v2,v2,,va,va)
where v1,,va are new vertices, and where if
eivj,vk then eivj,vk.
25Bipartite Graphs
- Defn. A graph G(V,E) is bipartite (two-part)
iff V V1nV2 where V1?V2? and ?e?E
?v1?V1,v2?V2 ev1,v2. - In English The graph canbe divided into two
partsin such a way that all edges go between
the two parts.
V2
V1
This definition can easily be adapted for the
case of multigraphs and directed graphs as well.
Can represent withzero-one matrices.
26Complete Bipartite Graphs
- For m,n?N, the complete bipartite graph Km,n is a
bipartite graph where V1 m, V2 n, and E
v1,v2v1?V1 ? v2?V2. - That is, there are m nodes in the left part, n
nodes in the right part, and every node in the
left part is connected to every node in the
right part.
K4,3
Km,n has _____ nodesand _____ edges.
27Subgraphs
- A subgraph of a graph G(V,E) is a graph H(W,F)
where W?V and F?E.
G
H
28Graph Unions
- The union G1?G2 of two simple graphs G1(V1, E1)
and G2(V2,E2) is the simple graph (V1?V2, E1?E2).
?
298.3 Graph Representations Isomorphism
- Graph representations
- Adjacency lists.
- Adjacency matrices.
- Incidence matrices.
- Graph isomorphism
- Two graphs are isomorphic iff they are identical
except for their node names.
30Adjacency Lists
- A table with 1 row per vertex, listing its
adjacent vertices.
b
a
d
c
e
f
31Directed Adjacency Lists
- 1 row per node, listing the terminal nodes of
each edge incident from that node.
32Adjacency Matrices
- A way to represent simple graphs
- possibly with self-loops.
- Matrix Aaij, where aij is 1 if vi, vj is an
edge of G, and is 0 otherwise. - Can extend to pseudographs by letting each matrix
elements be the number of links (possibly gt1)
between the nodes.
33Graph Isomorphism
- Formal definition
- Simple graphs G1(V1, E1) and G2(V2, E2) are
isomorphic iff ? a bijection fV1?V2 such that ?
a,b?V1, a and b are adjacent in G1 iff f(a) and
f(b) are adjacent in G2. - f is the renaming function between the two node
sets that makes the two graphs identical. - This definition can easily be extended to other
types of graphs.
34Graph Invariants under Isomorphism
- Necessary but not sufficient conditions for
G1(V1, E1) to be isomorphic to G2(V2, E2) - We must have that V1V2, and E1E2.
- The number of vertices with degree n is the same
in both graphs. - For every proper subgraph g of one graph, there
is a proper subgraph of the other graph that is
isomorphic to g.
35Isomorphism Example
- If isomorphic, label the 2nd graph to show the
isomorphism, else identify difference.
d
b
b
a
a
d
c
e
f
e
c
f
36Are These Isomorphic?
- If isomorphic, label the 2nd graph to show the
isomorphism, else identify difference.
a
b
- Different of verts of degree 2! (1 vs 3)
d
e
c
378.4 Connectivity
- In an undirected graph, a path of length n from u
to v is a sequence of adjacent edges going from
vertex u to vertex v. - A path is a circuit if uv.
- A path traverses the vertices along it.
- A path is simple if it contains no edge more than
once.
38Paths in Directed Graphs
- Same as in undirected graphs, but the path must
go in the direction of the arrows.
39Connectedness
- An undirected graph is connected iff there is a
path between every pair of distinct vertices in
the graph. - Theorem There is a simple path between any pair
of vertices in a connected undirected graph. - Connected component connected subgraph
- A cut vertex or cut edge separates 1 connected
component into 2 if removed.
40Directed Connectedness
- A directed graph is strongly connected iff there
is a directed path from a to b for any two verts
a and b. - It is weakly connected iff the underlying
undirected graph (i.e., with edge directions
removed) is connected. - Note strongly implies weakly but not vice-versa.
41Paths Isomorphism
- Note that connectedness, and the existence of a
circuit or simple circuit of length k are graph
invariants with respect to isomorphism.
42Counting Paths w Adjacency Matrices
- Let A be the adjacency matrix of graph G.
- The number of paths of length k from vi to vj is
equal to (Ak)i,j. - The notation (M)i,j denotes mi,j where mi,j
M.
438.5 Euler Hamilton Paths
- An Euler circuit in a graph G is a simple circuit
containing every edge of G. - An Euler path in G is a simple path containing
every edge of G. - A Hamilton circuit is a circuit that traverses
each vertex in G exactly once. - A Hamilton path is a path that traverses each
vertex in G exactly once.
44Bridges of Königsberg Problem
- Can we walk through town, crossing each bridge
exactly once, and return to start?
A
D
B
C
Equivalent multigraph
The original problem
45Euler Path Theorems
- Theorem A connected multigraph has an Euler
circuit iff each vertex has even degree. - Proof
- (?) The circuit contributes 2 to degree of each
node. - (?) By construction using algorithm on p. 580-581
- Theorem A connected multigraph has an Euler
path (but not an Euler circuit) iff it has
exactly 2 vertices of odd degree. - One is the start, the other is the end.
46Euler Circuit Algorithm
- Begin with any arbitrary node.
- Construct a simple path from it till you get back
to start. - Repeat for each remaining subgraph, splicing
results back into original cycle.
47Round-the-World Puzzle
- Can we traverse all the vertices of a
dodecahedron, visiting each once?
Equivalentgraph
Dodecahedron puzzle
Pegboard version
48Hamiltonian Path Theorems
- Diracs theorem If (but not only if) G is
connected, simple, has n?3 vertices, and ?v
deg(v)?n/2, then G has a Hamilton circuit. - Ores corollary If G is connected, simple, has
n3 nodes, and deg(u)deg(v)n for every pair u,v
of non-adjacent nodes, then G has a Hamilton
circuit.
49HAM-CIRCUIT is NP-complete
- Let HAM-CIRCUIT be the problem
- Given a simple graph G, does G contain a
Hamiltonian circuit? - This problem has been proven to be NP-complete!
- This means, if an algorithm for solving it in
polynomial time were found, it could be used to
solve all NP problems in polynomial time.
508.6 Shortest-Path Problems
- Not covering this semester.
518.7 Planar Graphs
- Not covering this semester.
528.8 Graph Coloring
- Not covering this semester.
539.1 Introduction to Trees
- A tree is a connected undirected graph that
contains no circuits. - Theorem There is a unique simple path between
any two of its nodes. - A (not-necessarily-connected) undirected graph
without simple circuits is called a forest. - You can think of it as a set of trees having
disjoint sets of nodes. - A leaf node in a tree or forest is any pendant or
isolated vertex. An internal node is any
non-leaf vertex (thus it has degree ___ ).
54Tree and Forest Examples
Leaves in green, internal nodes in brown.
55Rooted Trees
- A rooted tree is a tree in which one node has
been designated the root. - Every edge is (implicitly or explicitly) directed
away from the root. - You should know the following terms about rooted
trees - Parent, child, siblings, ancestors, descendents,
leaf, internal node, subtree.
56Rooted Tree Examples
- Note that a given unrooted tree with n nodes
yields n different rooted trees.
Same tree exceptfor choiceof root
root
root
57Rooted-Tree Terminology Exercise
- Find the parent,children, siblings,ancestors,
descendants of node f.
o
n
h
r
d
m
b
root
a
c
g
e
q
i
f
l
j
k
p
58n-ary trees
- A rooted tree is called n-ary if every vertex has
no more than n children. - It is called full if every internal (non-leaf)
vertex has exactly n children. - A 2-ary tree is called a binary tree.
- These are handy for describing sequences of
yes-no decisions. - Example Comparisons in binary search algorithm.
59Which Tree is Binary?
- Theorem A given rooted tree is a binary tree iff
every node other than the root has degree ___,
and the root has degree ___.
60Ordered Rooted Tree
- This is just a rooted tree in which the children
of each internal node are ordered. - In ordered binary trees, we can define
- left child, right child
- left subtree, right subtree
- For n-ary trees with ngt2, can use terms like
leftmost, rightmost, etc.
61Trees as Models
- Can use trees to model the following
- Saturated hydrocarbons
- Organizational structures
- Computer file systems
- In each case, would you use a rooted or a
non-rooted tree?
62Some Tree Theorems
- Any tree with n nodes has e n-1 edges.
- Proof Consider removing leaves.
- A full m-ary tree with i internal nodes has
nmi1 nodes, and ?(m-1)i1 leaves. - Proof There are mi children of internal nodes,
plus the root. And, ? n-i (m-1)i1. ? - Thus, when m is known and the tree is full, we
can compute all four of the values e, i, n, and
?, given any one of them.
63Some More Tree Theorems
- Definition The level of a node is the length of
the simple path from the root to the node. - The height of a tree is maximum node level.
- A rooted m-ary tree with height h is called
balanced if all leaves are at levels h or h-1. - Theorem There are at most mh leaves in an m-ary
tree of height h. - Corollary An m-ary tree with ? leaves has
height h?logm?? . If m is full and balanced
then h?logm??.
649.2 Applications of Trees
- Binary search trees
- A simple data structure for sorted lists
- Decision trees
- Minimum comparisons in sorting algorithms
- Prefix codes
- Huffman coding
- Game trees
65Binary Search Trees
- A representation for sorted sets of items.
- Supports the following operations in T(log n)
average-case time - Searching for an existing item.
- Inserting a new item, if not already present.
- Supports printing out all items in T(n) time.
- Note that inserting into a plain sequence ai
would instead take T(n) worst-case time.
66Binary Search Tree Format
- Items are stored at individual tree nodes.
- We arrange for the tree to always obey this
invariant - For every item x,
- Every node in xs left subtree is less than x.
- Every node in xs right subtree is greater than x.
Example
7
3
12
1
5
9
15
0
2
8
11
67Recursive Binary Tree Insert
- procedure insert(T binary tree, x item)v
rootTif v null then begin rootT x
return Done endelse if v x return Already
presentelse if x lt v then return
insert(leftSubtreeT, x)else must be x gt
v return insert(rightSubtreeT, x)
68Decision Trees (pp. 646-649)
- A decision tree represents a decision-making
process. - Each possible decision point or situation is
represented by a node. - Each possible choice that could be made at that
decision point is represented by an edge to a
child node. - In the extended decision trees used in decision
analysis, we also include nodes that represent
random events and their outcomes.
69Coin-Weighing Problem
- Imagine you have 8 coins, oneof which is a
lighter counterfeit, and a free-beam balance. - No scale of weight markings is required for this
problem! - How many weighings are needed to guarantee that
the counterfeit coin will be found?
?
70As a Decision-Tree Problem
- In each situation, we pick two disjoint and
equal-size subsets of coins to put on the scale.
A given sequence ofweighings thus yieldsa
decision tree withbranching factor 3.
The balance thendecides whether to tip left,
tip right, or stay balanced.
71Applying the Tree Height Theorem
- The decision tree must have at least 8 leaf
nodes, since there are 8 possible outcomes. - In terms of which coin is the counterfeit one.
- Recall the tree-height theorem, h?logm??.
- Thus the decision tree must have heighth
?log38? ?1.893? 2. - Lets see if we solve the problem with only 2
weighings
72General Solution Strategy
- The problem is an example of searching for 1
unique particular item, from among a list of n
otherwise identical items. - Somewhat analogous to the adage of searching for
a needle in haystack. - Armed with our balance, we can attack the problem
using a divide-and-conquer strategy, like whats
done in binary search. - We want to narrow down the set of possible
locations where the desired item (coin) could be
found down from n to just 1, in a logarithmic
fashion. - Each weighing has 3 possible outcomes.
- Thus, we should use it to partition the search
space into 3 pieces that are as close to
equal-sized as possible. - This strategy will lead to the minimum possible
worst-case number of weighings required.
73General Balance Strategy
- On each step, put ?n/3? of the n coins to be
searched on each side of the scale. - If the scale tips to the left, then
- The lightweight fake is in the right set of ?n/3?
n/3 coins. - If the scale tips to the right, then
- The lightweight fake is in the left set of ?n/3?
n/3 coins. - If the scale stays balanced, then
- The fake is in the remaining set of n - 2?n/3?
n/3 coins that were not weighed! - Except if n mod 3 1 then we can do a little
better by weighing ?n/3? of the coins on each
side.
You can prove that this strategy always leads to
a balanced 3-ary tree.
74Coin Balancing Decision Tree
- Heres what the tree looks like in our case
123 vs 456
left 123
balanced78
right 456
4 vs. 5
1 vs. 2
7 vs. 8
L1
L4
L7
R2
B3
R5
B6
R8
75Prefix Codes Huffman Coding
76Game Trees
779.3 Tree Traversal
- Universal address systems
- Traversal algorithms
- Depth-first traversal
- Preorder traversal
- Inorder traversal
- Postorder traversal
- Breadth-first traversal
- Infix/prefix/postfix notation
789.4 Spanning Trees
- Not covering this semester.
799.5 Minimum Spanning Trees
- Not covering this semester.