-3

I'm programming some program which calculates the limit of markov chain.

if the markov matrix diverges, I should transform it into the form dA + (1-d)E, where both A and E are n * n matrix, and all of the elements of E are 1/n.

But if I apply that transformation when the input converges, the wrong value comes out.

Is there any easy way to check if the markov matrix converges?

glast
  • 383
  • 1
  • 4
  • 17

1 Answers1

2

I'm not going to go into detail, because it's an entire field unto itself. Although the general convergence theorem states that any finite Markov chain that is aperiodic and irreducible converges (to its stationary distribution). Irreducibility is simple to check (it's equivalent to connectedness in graphs), and periodicity is also easy to check (the definition of both is found in the first chapter of the book below, and the convergence theorem is proved in chapter 4 of the book).

It's worth noting that if there isn't irreducibility that can be easily solved in the symmetrical case by splitting the state space into "connected components", and considering each one separately. While periodicity can be patched by doing something similar to what you're suggesting. It's called creating the lazy Markov chain. If you want to understand the whole topic a little better (Mixing times for example will be very helpful in your convergence algorithm), this is an excellent book (available for free):

http://pages.uoregon.edu/dlevin/MARKOV/markovmixing.pdf

davin
  • 44,863
  • 9
  • 78
  • 78