On Mon, Feb 22, 2016 at 5:59 AM, Sisyphuss <[email protected]> wrote:
> I have the following PageRank code:
> n = 5
> adj = Float64[0 0 1 1 0;
> 0 0 1 0 0;
> 0 1 0 0 0;
> 1 0 1 0 1;
> 0 1 1 0 0]
> adj ./= sum(adj,2)
>
> pageRank = ones(Float64,n)
> N = 1
> for t = 1:N
> temp = zeros(n)
> for j = 1:n
> temp[j] = 0.15 + 0.85 * vecdot(pageRank,adj[:,j])
> pageRank = copy(temp) # this line should have been put below, but isn't
> harmful here either
I'm not sure about the algorithm but putting this line here vs below
are obviously difference since it is used one line above in the loop.
> end
> # pageRank = copy(temp)
> end
>
> pageRank
>
> 5-element Array{Float64,1}:
> 0.433333
> 0.15
> 0.461667
> 0.334167
> 0.244681
>
>
> However, the correct result should be
>
> 5-element Array{Float64,1}:
> 0.433333
> 1.425
> 2.13333
> 0.575
> 0.433333
>
> if the `pageRank = copy(temp)` is placed in the right place.
>
> This makes the 2nd and 3rd item do not converge when N is large enough.
>
> Is it a bug? Or am I missing something?
>