Summary: (Blank Abstract)
When creating a Markov chain model of a system (or, to be more precise, implementing a model of a system as a Markov chain), we have to define an appropriate set of states. Whether we are using a discrete-time or continuous-time Markov chain, the states must satisfy two criteria:
The information contained in the definition of each state must be sufficient to allow you to determine the required result. Occasionally, you may also need to use the state transition probabilities. That is, any performance metric you want to know must be computable from the steady state probabilities for the chain and the state transition probabilities.
The states must contain enough information to allow you to
construct the single step transition probability matrix
The states should not contain too much information, because this is likely to result in more states than you actually need. This won't prevent you from getting the right answer(s); it just may end up costing more (a lot more!) than it should.
An example of a system abstraction that illustrates this last
point is the shared memory multiprocessor model.
One definition of state that satisfies criteria 1 and 2
specifies, for each of the
We can reduce the number of states required by noting that all
processor behave similarly; keeping track of specific processors
is unnecessary. Instead, define the state as an
It is possible to do much better. Just as it is not necessary to keep track of the individual processors, we do not need to identify specific memory modules. All that is necessary is to know how many modules have 0 requests at the beginning of a memory cycle, how many have 1 request, and so forth. Returning to the example with two processors and two modules, the states are
Often, adopting an implementation that reduces the number of states is done at the cost of increasing the complexity of determining the state transition probabilities, since each transition may represent several or many transitions in a model with more states. This is certainly the case with the shared memory multiprocessor model (although if you want to verify this for yourself, you probably should not use 8 processors and 8 memory modules).