Chriszblong / LSim

Our implementation of the paper "Efficient SimRank Computation Via Linearization"

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Requirement
===========
JAMA library needed.
We used jama-1.0.2.jar from http://math.nist.gov/javanumerics/jama/

How to Run
==========

We can run LinearizedSimRank in 2 steps:

Step 1: precompute D: baseline.exec -> OfflineStage.java

Step 2: online query processing:
single-pair: baseline.exec -> SinglePairOnline.java
single-source: baseline.exec -> SingleSourceOnline.java

Note that, all the parameters are specified in config.properties file.

More notes
==========

1. OfflineStage.java: offline pre computation
 corresponding to alg. 4 and alg. 5 in the paper.
             offline.algorithm4(L, graph, T, R, c, D); //alg. 4 in the paper, which will call alg. 5
 result5=algorithm5(T, k, R, c, D, G);

2.OnlineStage.java: Online processing-- including alg. 1, 2 and 3 in the paper.
 public double singlePairSimRank(int T,int i,int j,int n,double c,Matrix D,Matrix P) //single-pair algorithm 1
  public double[] singleSourceSimRank(int T,int i,int n,double c,Matrix D,Matrix P) //single-source algorithm 2

Note that, for these two methods, we also have the optimized version singlePairSimRankOptimized and singleSourceSimRankOptimized (which is our own optimization), but the experiments shows that such optimization doesn't improve the efficiency much. So we still use the original methods as described in the paper.

3. SinglePairOnline.jave and SingleSourceOnline.java: each handling one simrank mode

4. Config.java: parameters we used; you can find the description of each parameter in config.properties. Generally, we use the same notations as in the paper to name corresponding variables. 

About

Our implementation of the paper "Efficient SimRank Computation Via Linearization"

License:GNU Lesser General Public License v2.1


Languages

Language:Java 100.0%