Title: Introduction to Graph theory
1Introduction 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 theory gives us the tool to formally study
these graphical representations of flow and
design test cases from the flow.
2What is a graph ?
n1
e1
e2
n7
n3
e4
n2
n5
e3
e5
n4
n6
A graph, G N, 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, N n1, n2, n3, n4, n5,
n6, n7 and
E e1, e2, e3, e4, e5
3Degree 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 end point. - This is the same as the number of other nodes
that nx is connected to - Degree (n7) 0
- Degree (n3) 3
For clarity, the definition uses edges, rather
than immediately connect nodes.
4Using 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
5Using 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
6Path
- 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. ni, -- - , 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.
7Paths
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
8Connected nodes
- 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
9Properties of Connectedness
- Connected nodes on a path have some interesting
relation 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.
10Component 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.
11Condensed 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.
12Directed Graph
n1
e1
e2
n7
n3
e4
n2
n5
e3
e5
n4
n6
A directed graph, DG N, E , is composed of
i) a set of nodes, N, 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.
13Degrees 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)
14Some 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
15Adjacency 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
16Path 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 staring node for
e2. - 2. a cycle is a directed path that begins and
ends at the same node - 3. 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.
17Path, cycle, and semi-path
- There is a directed path from n1 to n3.
- There is cycle among n1, n2, and n4.
- 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
18Reachability 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.
19An 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.
20More 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
21Reachability 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
22Graph 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