Loading...

PPT – Bogazici University Department of Computer Engineering CmpE 220 Discrete Mathematics 22. Graph Theory Haluk Bing PowerPoint presentation | free to view - id: 7c5a67-MGUwZ

The Adobe Flash plugin is needed to view this content

Bogazici UniversityDepartment of Computer

EngineeringCmpE 220 Discrete Mathematics22.

Graph Theory Haluk Bingöl

Module 22Graph Theory

- Rosen 5th ed., chs. 8-9
- 44 slides (more later), 3 lectures

What 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.

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. - Def. 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

Example 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

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 functionfE?u,vu,v?V ? u?v. - E.g., nodes are cities, edgesare segments of

major highways.

Paralleledges

Pseudographs

- 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.

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 fE?V?V. - E.g., Vweb pages,Ehyperlinks. The WWW isa

directed multigraph...

Types of Graphs Summary

- Summary of the books definitions.
- Keep in mind this terminology is not fully

standardized across different authors...

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 - 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 vs 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 - 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

K4

K3

K2

K5

K6

Note that Kn has edges.

Cycles

- 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?

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 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!

n-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.

Bipartite 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.

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,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.

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).

?

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.

b

a

d

c

e

f

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 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.

Graph 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.

Graph 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.

Isomorphism 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

Are These Isomorphic?

- If isomorphic, label the 2nd graph to show the

isomorphism, else identify difference.

- Same of vertices

a

b

- Same of edges

- Different of verts of degree 2! (1 vs 3)

d

e

c

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 uv.
- 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

D

B

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?

Equivalentgraph

Dodecahedron puzzle

Pegboard version

Hamiltonian 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.

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

- Not covering this semester.

8.7 Planar Graphs

- Not covering this semester.

8.8 Graph Coloring

- Not covering this semester.

9.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 ___ ).

Tree and Forest Examples

Leaves in green, internal nodes in brown.

- A Tree

- A Forest

Rooted 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.

Rooted Tree Examples

- Note that a given unrooted tree with n nodes

yields n different rooted trees.

Same tree exceptfor choiceof root

root

root

Rooted-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

n-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.

Which 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 ___.

Ordered 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.

Trees 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?

Some 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.

Some 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??.

9.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

Binary 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.

Binary 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

Recursive 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)

Decision 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.

Coin-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?

?

As 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.

Applying 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

General 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.

General 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.

Coin 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

Prefix Codes Huffman Coding

- pp. 649-651

Game Trees

- pp. 651-656

9.3 Tree Traversal

- Universal address systems
- Traversal algorithms
- Depth-first traversal
- Preorder traversal
- Inorder traversal
- Postorder traversal
- Breadth-first traversal
- Infix/prefix/postfix notation

9.4 Spanning Trees

- Not covering this semester.

9.5 Minimum Spanning Trees

- Not covering this semester.