Sequential Logic Circuits CS E6831  04f

NOTES ON STRONG CONNECTIVITY

A flow table (or state diagram) is strongly connected if, for every pair of states i. j, there exists some input sequence that takes the system from i to j.

An  efficient algorithm for determining if a given table or graph has this property is based on the idea of choosing any state, say 1 (usually most convenient), determining if every other state is reachable from state-1, and then determining if state-1 is reachable from every other state.

The first part is accomplished by constructing a list, starting with state-1, then adding to this list all states reachable directly from state-1, and then, in sequence, adding all states reachable directly from each state already on the list.  If the process terminates with some states not on the list, then clearly the table or graph is not strongly connected.  If all states are on the list, we move on to the second step.

A second list is constructed, starting with the same initial state (say 1).  We add to the list each state that directly reaches a state already on the list.  If, eventually all states get on the list, then the table or graph is strongly connected.  If the process terminates with one or more states not on the list, then the table or graph is not strongly connected.

Example 1.

X

0   1

-----

1   3   4

2   2   4

3   2   2

4   1   3

-----

For the first part of the process, we obtain the list, FROM 1/1, 3, 4, 2  (complete)

For the second part of the process, we obtain the list, TO 1/1, 4, 2, 3  (complete)

So this table is strongly connected.

Example 2.

X

0   1

-----

1   3   4

2   2   3

3   2   2

4   1   3

For the first part of the process, we obtain the list, FROM 1/1, 3, 4, 2  (complete)

For the second part of the process, we obtain the list, TO 1/1, 4 (incomplete)

So this table is not strongly connected.