University of Florida Dept. of Computer - PowerPoint PPT Presentation

About This Presentation
Title:

University of Florida Dept. of Computer

Description:

Slides developed at the University of Florida for course COT3100, Applications of Discrete Structures, Spring 2001 & 2003. – PowerPoint PPT presentation

Number of Views:208
Avg rating:3.0/5.0
Slides: 80
Provided by: Mich1164
Learn more at: http://web.cs.wpi.edu
Category:

less

Transcript and Presenter's Notes

Title: University of Florida Dept. of Computer


1
University 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

2
Module 22Graph Theory
  • Rosen 5th ed., chs. 8-9
  • 44 slides (more later), 3 lectures

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

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

5
Simple 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
6
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
7
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
8
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.

9
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

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

11
Types of Graphs Summary
  • Summary of the books definitions.
  • Keep in mind this terminology is not fully
    standardized across different authors...

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

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

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

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

16
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

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

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

19
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

20
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.
21
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?
22
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?
23
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!
24
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.

25
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.
26
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.
27
Subgraphs
  • A subgraph of a graph G(V,E) is a graph H(W,F)
    where W?V and F?E.

G
H
28
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).

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

30
Adjacency Lists
  • A table with 1 row per vertex, listing its
    adjacent vertices.

b
a
d
c
e
f
31
Directed Adjacency Lists
  • 1 row per node, listing the terminal nodes of
    each edge incident from that node.

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

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

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

35
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
36
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
37
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.

38
Paths in Directed Graphs
  • Same as in undirected graphs, but the path must
    go in the direction of the arrows.

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

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

41
Paths Isomorphism
  • Note that connectedness, and the existence of a
    circuit or simple circuit of length k are graph
    invariants with respect to isomorphism.

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

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

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

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

47
Round-the-World Puzzle
  • Can we traverse all the vertices of a
    dodecahedron, visiting each once?

Equivalentgraph
Dodecahedron puzzle
Pegboard version
48
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.

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

50
8.6 Shortest-Path Problems
  • Not covering this semester.

51
8.7 Planar Graphs
  • Not covering this semester.

52
8.8 Graph Coloring
  • Not covering this semester.

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

54
Tree and Forest Examples
Leaves in green, internal nodes in brown.
  • A Tree
  • A Forest

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

56
Rooted Tree Examples
  • Note that a given unrooted tree with n nodes
    yields n different rooted trees.

Same tree exceptfor choiceof root
root
root
57
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
58
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.

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

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

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

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

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

64
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

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

66
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
67
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)

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

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

?
70
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.
71
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

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

73
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.
74
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
75
Prefix Codes Huffman Coding
  • pp. 649-651

76
Game Trees
  • pp. 651-656

77
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

78
9.4 Spanning Trees
  • Not covering this semester.

79
9.5 Minimum Spanning Trees
  • Not covering this semester.
Write a Comment
User Comments (0)
About PowerShow.com