Introduction to Graph - PowerPoint PPT Presentation

About This Presentation
Title:

Introduction to Graph

Description:

Introduction to Graph theory Why do we care about graph theory in testing and quality analysis? The flow (both control and data) of a design, within a ... – PowerPoint PPT presentation

Number of Views:853
Avg rating:3.0/5.0
Slides: 49
Provided by: HPAuthor582
Category:

less

Transcript and Presenter's Notes

Title: Introduction to Graph


1
Introduction to Graph theory
  • Why do we care about graph theory in testing and
    quality analysis?
  • The flow (both control and data) of a design,
    within a program or among programs may be
    depicted with a graphical representation.
  • Graph gives us the tool to formally study these
    graphical representations of flow and design test
    cases from the flow.

2
What is a graph ?
  • A branch of topologyfocus on connections
  • (undirected) Graphs
  • nodes, edges, matrices
  • degree of a node
  • Paths
  • Components
  • Directed graphs
  • nodes, edges
  • indegree, outdegree
  • paths and semi-paths
  • n-connectedness
  • cyclomatic number
  • strong and weak components
  • Program Graphs

3
What is a graph ?
n1
e1
e2
n7
n3
e4
n2
n5
e3
e5
n4
n6
A graph, G V, E , is composed of
i) a set of nodes, N, and ii) a set of
edges, E, which connects the nodes.
For the above example, V n1, n2, n3, n4, n5,
n6, n7 and
E e1, e2, e3, e4, e5
4
Degree of a node
  • Note that in the previous graph, not every node
    is immediately connected to another node and
    some node is immediately connected to more than
    one other node.
  • For example
  • N7 is not connected to any other node
  • N3 is connected to three other nodes n1, n4 and
    n5.
  • Formally, the degree of a node x, nx, is
    defined as the number of edges, es, that have
    node nx as the immediate end point.
  • This is the same as the number of other nodes
    that nx is immediately connected to
  • Degree (n7) 0
  • Degree (n3) 3

For clarity, the definition uses edges, rather
than immediately connect nodes.
5
Degree of a Node
deg(n1) 2deg(n2) 2deg(n3) 1deg(n4)
3deg(n5) 1deg(n6) 1deg(n7) 0
6
Draw this on the borad!
n1
e1
e2
n7
n3
e4
n2
n5
e3
e5
n4
n6
A graph, G V, E , is composed of
i) a set of nodes, N, and ii) a set of
edges, E, which connects the nodes.
For the above example, V n1, n2, n3, n4, n5,
n6, n7 and
E e1, e2, e3, e4, e5
7
Using Incidence matrix to represent graph
An incidence matrix of a graph composed of J
nodes and K edges is a J x K cross-product
relation, where the rows are the nodes and the
columns are the edges. The relation, in this
case, is immediately connected.
e1
e2
e3
e4
e5
n1
1
1
n2
1
n3
1
1
1
For this example, the incidence matrix
represents a 7 x 5 cross-product relation. The 1
in a cell, (x,y) represents that node, nx, is the
end point of edge, ey. The empty cells may be
filled with 0s. 1)The sum of 1s for any row,
which represents a node, is the degree of that
node. - e.g. sum of 1s for node , n5, is
2 therefore degree(n5) 2
2)Each column shows the edge, ex, and the 1s
in that column shows the nodes that edge, ex,
connects (note each column always adds up to
2.)
n4
1
n5
1
1
n6
1
n7
8
Sample Incidence Matrix(What must be true about
columns in an incidence matrix?)
e1 e2 e3 e4 e5
n1 1 1 0 0 0
n2 1 0 0 1 0
n3 0 0 1 0 0
n4 0 1 1 0 1
n5 0 0 0 1 0
n6 0 0 0 0 1
n7 0 0 0 0 0
9
Using Adjacency matrix to represent graph
An adjacency matrix of a graph composed of Z
number of nodes is a Z x Z relation where the
rows are nodes and the columns are also
nodes. Again the relation is immediately
connected.
n1
n2
n3
n4
n5
n6
n7
n1
1
1
n2
1
n3
1
1
1
For this example, the adjacency matrix represents
a 7 x 7 cross-product relation. The 1 in a cell,
(x,y) represents that node, nx, is immediately
connected to another node, ny. The empty cells
may be filled with 0s. 1)The sum of 1s for
any row or any column is the degree of that
node. - e.g. sum of 1s for node , n3, is
3 thus degree(n3) 3 2)Note
that the matrix is symmetric across the diagonal.

n4
1
n5
1
1
n6
1
n7
10
Sample Adjacency Matrix
n1 n2 n3 n4 n5 n6 n7
n1 0 1 0 1 0 0 0
n2 1 0 0 0 1 0 0
n3 0 0 0 1 0 0 0
n4 1 0 1 0 0 1 0
n5 0 1 0 0 0 0 0
n6 0 0 0 1 0 0 0
n7 0 0 0 0 0 0 0
11
Path
  • Note that we used the term, immediately
    connected for degree of a node.
  • A path in a graph is a sequence of immediately
    connected nodes e.g. nj, -- - , njz in the
    graph where nj is immediately connected to nj1,
    and node nj1 is immediately connected to nj2,
    and so on to node njz.
  • A path in a graph may also be defined as a
    sequence of edges, such that for any pair of
    edges, ei and ej, in the sequence, the edges
    share a common node.

12
Paths
n1
e1
e2
n7
n3
e4
n2
n5
e3
e5
n4
n6
There are several paths in the example graph.
node sequence to depict a path
edge sequence to depict a path Path1
n2, n1, n3, n5
e1, e2, e4 Path2 n1, n3, n4

e2, e3
You may use either approach I may mix and use
both
13
Some Paths
  • path between
  • n1 and n5 n1, n2, n5 e1, e4
  • n6 and n5 n6, n4, n1, n2, n5 e5, e2, e1, e4
  • n3 and n2 n3, n4, n1, n2 e3, e2, e1

14
Connected nodes (Connectedness)
  • Earlier two nodes are said to be immediately
    connected if there is an edge that connect the
    two nodes. The degree of a node was determined by
    the number of its immediately connected nodes.
  • Now a more general notion of connectedness of two
    nodes may be given.
  • Node nx is connected to node ny if there is a
    path from nx to ny

15
Properties of Connectedness
  • Connected nodes on a path have some interesting
    relational properties
  • It is reflexive because every node is connected
    to itself and thus is on the same path.
  • It is symmetric because nodes ni and nj on a path
    implies that nodes nj and ni are also on the same
    path.
  • It is transitive for nodes ni and nj on a path
    and nodes nj and nk on the same path implies that
    ni and nk are on the same path also.

Note This relation of connected satisfies the
definition of equivalence relation.
16
Component and condensation graph
  • A component of a graph is defined as the maximal
    set of connected nodes.
  • From our graph example
  • n1, n2, n3, n4, n5, n6 form a component
  • n7 also forms a component
  • A condensation graph is formed by replacing each
    component in the original graph by a condensed
    single node. There are no edges.
  • Condensation graph of a graph gives us a view of
    the complexity through the number of components.

17
Condensed Graph
n1
e1
e2
n7
n3
e4
n2
n5
e3
e5
n4
n6
N1
N2
From design/coding/testing perspective, this says
we have two major chunks or components that we
need to worry about.
18
Cyclomatic Number of a Graph
  • The cyclomatic number of a graph G is given by
    V(G) e n p, where
  • e is the number of edges in G
  • n is the number of nodes in G
  • p is the number of components in G
  • Cyclomatic complexity pertains to both
    ordinary and directed graphs (next topic).
  • The graph must be strongly connected.
  • not very useful on our running example because
    it is not strongly connected. We will see this
    part in the future chapters.

19
Cyclomatic Complexity Example
V(G) e n p 5 7 2 0
20
Directed Graph
n1
e1
e2
n7
n3
e4
n2
n5
e3
e5
n4
n6
A directed graph, DG V, E , is composed of
i) a set of nodes, V, and ii)
a set of edges, E, which connects the nodes in
order (the set of edges have
directions)
For example e1 does not only connect nodes n2
and n1, but shows that the order is n1 to
n2. Thus e1 may viewed as an ordered tuple,
ltn1, n2gt, which is different from ltn2, n1gt.
However, (n1, n2) is an unordered pair.
21
Directed Graph (another example)
V n1, n2, n3, n4, n5, n6, n7E e1, e2, e3,
e4, e5 ltn1, n2gt, ltn1, n4gt, ltn3, n4gt, ltn2,
n5gt, ltn4, n6gt
22
Degrees of Directed Graph
  • With directed graph, one can utilize the
    directional concept.
  • e.g. the flow of a program, the control flow in
    imperative programming language, can be
    represented by directed graph.
  • Each edge not only connects nodes but shows a
    direction (like a vector).
  • For each node, n, in the graph, there may be
    defined
  • Indegree (n) the number of distinct edges
    immediately directed in and towards n.
  • Outdegree (n) number of distinct edges
    immediately directed out and away from n.

Note that for any node, n degree (n)
indegree (n) outdegree (n)
23
Indegrees and Outdegrees
indeg(n1) 0 outdeg(n1) 2indeg(n2) 1
outdeg(n2) 1indeg(n3) 0 outdeg(n3)
1indeg(n4) 2 outdeg(n4) 1indeg(n5) 1
outdeg(n5) 0indeg(n6) 1 outdeg(n6)
0indeg(n7) 0 outdeg(n7) 0
24
Some types of node for directed graph
  • Source node is a node with indegree 0.
  • Sink node is a node with outdegree 0.
  • Transfer node is node with indegree ? 0 and
    outdegree ? 0.

n1
n4 is a source node. n1 and n2 are transfer
nodes. n3 is a sink node.
n2
n4
n3
25
Adjacency Matrix for Directed Graph
to nodes
n1
n2
n3
n4
n1
1
n2
1
from nodes
n1
n3
n4
1
n2
n4
1) There is a directed edge from n4 to n1. Thus
there is a 1 in cell (4,1). 2) There is a 1 in
cell (1,2) to indicate that there is a directed
edge from n1 to n2. 3) And finally, the 1 in
cell (2,3) represents the directed edge from n2
to n3
n3
26
Path and semi-path
  • With directed graph, the notion of a path is not
    just connection, but there is a directional
    connection.
  • 1. A directed path is a sequence of edges such
    that for any adjacent pair of edges, e1 and e2,
    the terminal node for e1 is the starting node for
    e2.
  • 2. A cycle is a directed path that begins and
    ends at the same node
  • 3. A chain is a sequence of nodes in which every
    interior node has indegree outdegree 1
  • 4. A directed semi-path is a sequence of edges
    such that, for at least one adjacent pair of
    edges, ei and ej, in the sequence, the initial
    node of the first edge is the same initial node
    of the second edge or the terminating node of the
    first edge is the same as the terminating node of
    the second edge.

27
Path, cycle, and semi-path
  1. There is a directed path from n1 to n3.
  2. There is cycle among n1, n2, and n4.
  3. There is a directed semi-path between n3 and n4

n1
n2
n4
n3
Note that we linked n2 to n4 to create a cycle
28
Directed Graph (new example)
V n1, n2, n3, n4, n5, n6, n7E e1, e2, e3,
e4, e5 (n1, n2), (n1, n4), (n3, n4),
(n2, n5), (n4, n6) There is a path from n1
to n6, and there are semipaths between nodes n1
and n3, n2 and n4, and between nodes n5 and n6.
29
Reachability with Adjacent Matrix Operations
  • Adjacent matrix for a directed graph indicates
    the directional connection of the nodes, not a
    two way connection. Note that an edge that
    connects nodes, nx and ny does not mean it
    connects ny and nx in the reverse way. So for
    directed graph the connect operation is
    non-symmetric.
  • We can use matrix operation on Adjacent matrix of
    the directed graph to view the paths in the
    directed graph.

30
An example of operating on Adjacent matrixfor
directed graph
n1
n2
n3
n4
n1
1
A1
1
n2
n1
n3
n4
1
n2
0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0
0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0
n4
0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0
n3
A2
X

Note that A1 gives connections length 1, and A2
gives the connections of length 2 in the
directed graph.
31
More on Adjacent Matrix operation of
0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0
0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0
0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
A3

X
X
A3 shows only one path, from n4 to n3, that is
length 3 in the directed graph
0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0
0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0
0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0
0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
X
X
A4

X
A4 shows that there is no length 4 path in the
directed graph
32
Reachability of directed graph using Adjacent
matrices
  • - Assuming that every node can reach itself, we
    will
  • not indicate the reachability of a node to
    itself.
  • Reachability, R, of a directed graph may be
    derived from the
  • adjacency matrix, A, of that directed graph as
    follows
  • R A1 A2 - - - - Ak, where Ak is
    non-zero, but Ak1 is zero

n1
A1 A2 A3
R
1
2
3
4
n2
0 1 1 0 0 0 1 0 0 0 0 0 1 1 1 0
1
0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0
0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
n4
2
R



n3
3
4
If you were interested in a variable or a
constant that is defined in one node and where it
could possibly be used ---- this may help
33
Reachability Matrix
n1 n2 n3 n4 n5 n6 n7
n1 1 1 0 1 1 1 0
n2 0 1 0 0 1 0 0
n3 0 0 1 1 0 1 0
n4 0 0 0 1 0 1 0
n5 0 0 0 0 1 0 0
n6 0 0 0 0 0 1 0
n7 0 0 0 0 0 0 1
34
Compute A2
n1 n2 n3 n4 n5 n6 n7
n1 0 1 0 1 0 0 0
n2 0 0 0 0 1 0 0
n3 0 0 0 1 0 0 0
n4 0 0 0 0 0 1 0
n5 0 0 0 0 0 0 0
n6 0 0 0 0 0 0 0
n7 0 0 0 0 0 0 0
n1 n2 n3 n4 n5 n6 n7
n1 0 1 0 1 0 0 0
n2 0 0 0 0 1 0 0
n3 0 0 0 1 0 0 0
n4 0 0 0 0 0 1 0
n5 0 0 0 0 0 0 0
n6 0 0 0 0 0 0 0
n7 0 0 0 0 0 0 0
n1 n2 n3 n4 n5 n6 n7
n1
n2
n3
n4
n5
n6
n7
35
n-Connectedness
  • Nodes nj and nk in a directed graph are
  • 0-connected iff no path (or semipath) exists
    between nj and nk
  • 1-connected iff a semi-path but no path exists
    between nj and nk
  • 2-connected iff a path exists from nj and nk
  • 3-connected iff a path goes from nj to nk and a
    path goes from nk to nj
  • No other degrees of n-connectedness exist
  • A new edge, e6, is added to our continuing
    example.
  • n-connectedness has very useful expressive
    power.

36
Directed Graph (third version)
37
Directed Graph (third version)
Find examples of a chain, a cycle, a set of
3-connected nodes
38
Strong Components of a Directed Graph
  • A strong component of a directed graph is a
    maximal set of 3-connected nodes.
  • Strong components...
  • identify loops and isolated nodes.
  • lead to another form of condensation graph
  • support an excellent view of testing programs
    with loops

39
Directed Graph (third version)
Strong components S1 n3, n4, n6, S2 n7
40
Condensation Graph of a Directed Graph
  • Given a directed graph D (V, E), its
    condensation graph is formed by replacing
    strongly connected nodes by their corresponding
    strong components.
  • A condensation graph of a directed graph...
  • contains no loops, and is therefore
  • a Directed Acyclic Graph (DAG)
  • support an excellent view of testing programs
    with loops

41
Condensation Graph of Directed Graph (third
version)
Strong components S1 n3, n4, n6, S2 n7
42
Program Graphs
  • The program graph of a program written in an
    imperative programming language is a directed
    graph in which nodes are either entire statements
    or statement fragments. There is an edge from
    node i to node j if and only if node j can be
    executed immediately after node i).
  • (The early (1970s) definitions referred to
    nodes as entire statements, but this doesnt fit
    well with modern programming languages.)
  • We shall use statement fragment to refer
    either to full statements or to statement
    fragments.

43
Program Graphs
44
Program Graphs
  • When drawing a program graph, it is usually
    simpler to number the statement fragments.
  • This Figure

45
Four Graph-Based Models
  • Finite State Machines
  • Petri Nets
  • Event-Driven Petri Nets
  • StateCharts
  • These are all executable models, i.e., it is
    possible to build a program (an engine) to
    execute the model.

46
Finite State Machines (FSMs)
  • Finite State Machines are directed graphs in
    which nodes are states, and edges are transitions
    from one state to a successor state.
  • Transitions are caused by
  • events
  • date conditions
  • passage of time (an event)
  • Constraints
  • states are mutually exclusive
  • only one transition can occur at a time
  • FSMs are ideally suited for menu-driven
    applications

47
Garage Door Controller FSM
48
Graph Representations
  • Will need these later
  • Program Control Flows sequential, if-then-else,
    loop, etc.
  • State Transition Diagram (Finite State Machines)
    states and stimuli
  • Will not use
  • Petri Net a complex set of events and
    transitions
  • State Charts A complicated (embedding of states)
    form of State Transition Diagram
Write a Comment
User Comments (0)
About PowerShow.com