Initial distribution of a Markov Chain (Power Model)

471 Views Asked by At

So, I was trying to model the PageRank algorithm based on the information of an article, and it said that in order to implement the power method, I needed the distribution of the process given by $$\pi^{(k)^{T}}= \pi^{(k-1)^{T}}G$$ with $ G $ being the transition matrix in this case (The Google matrix as they call it in the paper) Given by $$G=\left[\begin{array}{1}1/40&9/20&1/40&1/40&9/20&1/40\\ 1/40&1/40&9/20&9/20&1/40&1/40\\1/40&1/40&1/40&77/250&77/250&77/250\\7/8&1/40&1/40&1/40&1/40&1/40\\7/8&1/40&1/40&1/40&1/40&1/40\\83/500&83/500&83/500&83/500&83/500&83/500\end{array}\right]$$ The next thing the paper says that the inicial vector is given by $\pi^{(0)^T}=\frac{e^T}{N}$ and $\pi^{(19)^T}=(0.32, 0.17, 0.107, 0.137, 0.2, 0.064)$ but I can't find the way to obtain the resulting vector in the 19th step, even by eigenvalues and I'm not sure if the initial distribution I got is correct $\pi^{(0)^T}=(\frac{1}{6},\frac{1}{6},\frac{1}{6},\frac{1}{6},\frac{1}{6},\frac{1}{6}) $Thats what I got.

I'm quite lost in this, If anyone could help me i would be very grateful.

1

There are 1 best solutions below

8
On

Since we are given $$\pi^{(k)^{T}}= \pi^{(k-1)^{T}}G$$

and $\pi^0$.

$$\pi^{(1)^{T}}= \pi^{(0)^{T}}G$$

$$\pi^{(2)^{T}}= \pi^{(1)^{T}}G$$

$$\vdots$$

$$\pi^{(19)^{T}}= \pi^{(18)^{T}}G$$

That is from $\pi^{(0)}$, we can obtain $\pi^{(1)}$ and other values of $\pi^{(i)}$. $19$ matrix vector multiplication of a $5\times 5$ matrix is actually quite easy to compute on a computer.

Remark: Alternatively, also, we have $$\pi^{{(19)}^T}=\pi^{(0)^T}G^{19}$$

Hence you can also compute $G^{19}$ perhaps by diagonalization if possible and then multiply it by $\pi^{(0)^T}$

Edit: Matlab code

A = [1/40, 9/20, 1/40, 1/40, 9/20, 1/40 ;  
1/40, 1/40, 9/20, 9/20, 1/40, 1/40;
1/40, 1/40, 1/40, 77/250, 77/250, 77/250;
7/8, 1/40, 1/40, 1/40, 1/40, 1/40; 
7/8, 1/40, 1/40, 1/40, 1/40, 1/40;
83/500, 83/500, 83/500, 83/500, 83/500, 83/500];
x = 1/6 * ones(1,6);
for i = 1:19
    x = x*A
end