How to compute a product machine from two finite state machine transition tables

state-machines

I have been asked to show 2 Finite State Machines are equivalent by computing the product machine of both. Below is an image of 2 transition tables corresponding to 2 Finite State Machines.

How do I construct the product machine of both of them?

2 FSMs

Both FSMs have an initial state of A. So my understanding is you start at A and feed an input of 0 and see where both machines take you. In this case, starting at A with input of 0 takes you to D for the left transition table and outputs 0. Starting at A with input of 0 takes you to B for the right transition table and outputs 0. Isn't this a counter-example immediately (i.e. both of these FSMs are not equivalent)?

But for some reason the problem is stated in such a way that I need to prove they are equivalent. So I"m a little confused, is the problem stated incorrectly or are these two machines really equivalent?

Best Answer

The easiest way to prove that two FSM's are equivalent is to minimize both and see if the results are the same.

To do this, you can use the partitioning minimization procedure as explained in section 8.6.1 of Fundamentals of Digital Logic.

Without going into too much detail, I will illustrate this procedure for your left state machine. The idea is to partition all states in such a way that states in the same partition are equivalent.

We start by assuming that all states may be equivalent by partitioning the states into one partition. Before doing this, note that states B and F are unreachable and can be deleted from the FSM. Therefore, the first partition is as follows:

$$P_1 = (ACDE)$$

The next step is to create groups of states with the same output value. This gives the following partition:

$$P_2 = (ACE)(D)$$

Next, we have to make sure that all the 0-successors of the states in a group are contained in one group (the same holds for the 1-successors). For example, the 0-successors of (ACE) are (DAA) which are not contained in a single group. Therefore, the group (ACE) needs to be split:

$$P_3 = (A)(CE)(D)$$

Since both the 0-successors (AA) and the 1-successors (EC) of (CE) are contained within one group, this partition does not need to be split anymore. This final partition learns us that states C and E are equivalent and we need three states in the minimal FSM.

Now we can introduce names for the new states: S1 = (A), S2 = (CE) and S3 = (D) and construct a new state table:

-------------------------
Current Next state Output
State     0    1
-------------------------
S1        S3   S2     0
S2        S1   S2     0
S3        S2   S1     1
-------------------------

Doing the same for your right state machine gives the following partition: $$P = (ACE)(D)(BF)$$

Using the state assignment S1 = (ACE), S2 = (D) and S3 = (BF) gives exactly the same state table as above. Hence, the two state machines are equivalent.

$$\blacksquare$$