0% found this document useful (0 votes)
4 views51 pages

Graphs

The document provides an overview of graph theory, defining various types of graphs such as simple graphs, multigraphs, pseudographs, directed graphs, and their applications in fields like networking and optimization. It also discusses graph terminology, representations, isomorphism, connectivity, and specific structures like complete graphs, cycles, and bipartite graphs. Key concepts such as paths, degrees, and special graph properties like Euler and Hamilton paths are also covered.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views51 pages

Graphs

The document provides an overview of graph theory, defining various types of graphs such as simple graphs, multigraphs, pseudographs, directed graphs, and their applications in fields like networking and optimization. It also discusses graph terminology, representations, isomorphism, connectivity, and specific structures like complete graphs, cycles, and bipartite graphs. Key concepts such as paths, degrees, and special graph properties like Euler and Hamilton paths are also covered.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 51

Graph Theory

What are Graphs? Not

• General meaning in everyday math:


A plot or chart of numerical data using a
coordinate system.
• Technical meaning in discrete mathematics:
A particular class of discrete structures (to
be defined) that is useful for representing
relations and has a convenient webby-
looking graphical representation.
Applications 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, …
Simple Graphs
• Correspond to symmetric,
irreflexive binary relations R.
• A simple graph G=(V,E)
Visual Representation
consists of: of a Simple Graph
– 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.
Example of a Simple Graph
• Let V be the set of states in the far-
southeastern U.S.:
–I.e., V={FL, GA, AL, MS, LA, SC, TN, NC}
• Let E={{u,v}|u adjoins v}
TN NC
={{FL,GA},{FL,AL},{FL,MS},
{FL,LA},{GA,AL},{AL,MS}, MS AL SC
{MS,LA},{GA,SC},{GA,TN},
GA
{SC,NC},{NC,TN},{MS,TN}, LA
FL
{MS,AL}}
Multigraphs
• 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 function Parallel
f:E{{u,v}|u,vV  uv}. edges

• E.g., nodes are cities, edges


are segments of major highways.
Pseudographs
• Like a multigraph, but edges connecting a node to
itself are allowed. (R may be reflexive.)
• A pseudograph G=(V, E, f ) where
f:E{{u,v}|u,vV}. Edge eE is a loop if
f(e)={u,u}={u}.
• E.g., nodes are campsites
in a state park, edges are
hiking trails through the
woods.
Directed 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}
Directed 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 f:EVV.
• E.g., V=web pages,
E=hyperlinks. The WWW is
a directed multigraph...
Types of Graphs: Summary
• Summary of the book’s definitions.
• Keep in mind this terminology is not fully
standardized across different authors...
Edge Multiple Self-
Term type edges ok? loops ok?
Simple graph Undir. No No
Multigraph Undir. Yes No
Pseudograph Undir. Yes Yes
Directed graph Directed No Yes
Directed multigraph Directed Yes Yes
§8.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.
Adjacency
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.
Degree 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.
Handshaking Theorem
• Let G be an undirected (simple, multi-, or
pseudo-) graph with vertex set V and edge
set E. Then

 deg(v) 2 E
vV
• Corollary: Any undirected graph has an
even number of vertices of odd degree.
Directed 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
Directed 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 v’s in-degree and out-degree.
Directed Handshaking Theorem
• Let G be a directed (possibly multi-) graph
with vertex set V and edge set E. Then:
1

vV
deg (v)  deg (v)   deg(v)  E

vV

2 vV
• Note that the degree of a node is unchanged
by whether we consider its edges to be
directed or undirected.
Special 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
Complete 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 K2 K3 K4
K5 K6
n 1
n(n  1)
Note that Kn has  i  2 edges.
i 1
Cycles
• For any n3, a cycle on n vertices, Cn, is a
simple graph where V={v1,v2,… ,vn} and
E={{v1,v2},{v2,v3},…,{vn1,vn},{vn,v1}}.

C3 C4 C5 C6 C8
C7
How many edges are there in Cn?
Wheels
• 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?
n-cubes (hypercubes)
• For any nN, the hypercube Qn is a simple
graph consisting of two copies of Q n-1
connected together at corresponding nodes.
Q0 has 1 node.
Q0
Q1 Q2 Q4
Q3
Number of vertices: 2n. Number of edges:Exercise to try!
n-cubes (hypercubes)
• For any nN, the hypercube Qn can be
defined recursively as follows:
– Q0={{v0},} (one node and no edges)
– For any nN, if Qn=(V,E), where V={v1,…,va}
and E={e1,…,eb}, then Qn+1=(V{v1´,…,va´},
E{e1´,…,eb´}{{v1,v1´},{v2,v2´},…,
{va,va´}}) where v1´,…,va´ are new vertices, and
where if ei={vj,vk} then ei´={vj´,vk´}.
Bipartite Graphs
• Def’n.: A graph G=(V,E) is bipartite (two-
part) iff V = V1∩V2 where V1V2= and
eE: v1V1,v2V2: e={v1,v2}.
• In English: The graph can
be divided into two parts
in such a way that all edges
go between the two parts. V1 V2
This definition can easily be adapted for the
case of multigraphs and directed graphs as well. Can represent with
zero-one matrices.
Complete Bipartite Graphs
• For m,nN, the complete bipartite graph
Km,n is a bipartite graph where |V1| = m,
|V2| = n, and E = {{v1,v2}|v1V1  v2V2}.
– That is, there are m nodes K4,3
in the left part, n nodes in
the right part, and every
node in the left part is
connected to every node Km,n has _____ nodes
in the right part. and _____ edges.
Subgraphs
• A subgraph of a graph G=(V,E) is a graph
H=(W,F) where WV and FE.

G H
Graph Unions
• The union G1G2 of two simple graphs
G1=(V1, E1) and G2=(V2,E2) is the simple
graph (V1V2, E1E2).
a


a b c b c

d e d f
§8.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.
Adjacency Lists
• A table with 1 row per vertex, listing its
adjacent vertices. Adjacent
a b Vertex Vertices
a b, c
c d b a, c, e, f
e
f c a, b, f
d
e b
f c, b
Directed Adjacency Lists
• 1 row per node, listing the terminal nodes of
each edge incident from that node.
Adjacency Matrices
• A way to represent simple graphs
– possibly with self-loops.
• Matrix A=[aij], 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 >1) between the nodes.
Graph Isomorphism
• Formal definition:
– Simple graphs G1=(V1, E1) and G2=(V2, E2) are
isomorphic iff  a bijection f:V1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.
Graph Invariants under Isomorphism

Necessary but not sufficient conditions for


G1=(V1, E1) to be isomorphic to G2=(V2, E2):
– We must have that |V1|=|V2|, and |E1|=|E2|.
– 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.
Isomorphism Example
• If isomorphic, label the 2nd graph to show
the isomorphism, else identify difference.
b d
a b a
d c
e
e c f
f
Are These Isomorphic?
• If isomorphic, label the 2nd graph to show
the isomorphism, else identify difference.
• Same # of
a vertices
b • Same # of
edges
• Different # of
d verts of
c e degree 2!
(1 vs 3)
§8.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 u=v.
• A path traverses the vertices along it.
• A path is simple if it contains no edge more
than once.
Paths in Directed Graphs
• Same as in undirected graphs, but the path
must go in the direction of the arrows.
Connectedness
• 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.
Directed 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.
Paths & Isomorphism
• Note that connectedness, and the existence
of a circuit or simple circuit of length k are
graph invariants with respect to
isomorphism.
Counting 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.
§8.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.
Bridges of Königsberg Problem
• Can we walk through town, crossing each
bridge exactly once, and return to start?
A

B D

C
Equivalent multigraph
The original problem
Euler 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.
Euler 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.
Round-the-World Puzzle
• Can we traverse all the vertices of a
dodecahedron, visiting each once?`

Dodecahedron puzzle Equivalent


Pegboard version
graph
Hamiltonian Path Theorems
• Dirac’s 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.
– Ore’s corollary: If G is connected, simple, has
n≥3 nodes, and deg(u)+deg(v)≥n for every pair
u,v of non-adjacent nodes, then G has a
Hamilton circuit.
HAM-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.
§8.6: Shortest-Path Problems
§8.7: Planar Graphs
§8.8: Graph Coloring

You might also like