You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@giraph.apache.org by akis <ko...@gmail.com> on 2014/02/12 15:40:27 UTC

giraph, completing calculating betweeness

Hi fellow developers,

In the past day, I am struggling on completing calculating Betweeness for a graph.
Browsing in some forums, some stated that this cannot be done.

This point of view is simply put WRONG!.

I have uploaded my work in https://github.com/koutras/gb
where everyone with an interest can browse and provide insight, as I have been developing
for about 12 straight hours and I have not the right experience yet.

The main algorithm is based on SimpleShortestPathsComputation  for the main algorithm (brande's algorithm) but I needed to store extra values in each node, and as an effect override
the message also.

The trick I've thought about for the algorithm to work is provide the input of nodes in ascending
value, starting from 1 to number of nodes, and as such, to complete a bfs each time I have to
wait for number of nodes supersteps each time. This can easily be done by 
 mod(superstep,nodes_num).

After the end of that phase I do some calculations in each node, and I clear the distance value,
in order to continue running the SimpleShortestPaths algorithm but with the next vertex
as a source in ascending order. 

 I was also based
on BrachaTouegDeadlockComputation for overriding message and vertex value,


(message is based on BrachaTouegDeadlockMessage and vertex value on  BrachaTouegDeadlockVertexValue located in utils 
on respect.)

The things I had found difficulty so far is not the algorithm by itself that is the brande's algorithm,
but integrating the following things.

 1) overriding the value of vertex with mine using myVertex.java
       Overriding the Serialization functions for my implementation according to
       BrachaTouegDeadlockVertexValue.



2) overriding the message that a node is passing to another with myMessage.java 
     I've added the accessors that I wanted but I dont now what to do with readFields, and write,
     that the BrachaTouegDeadlockMessage has, for my implementation


Any help on the above matters is very appreciated. Thank you all, and sorry for the long post
So this CAN be done! If this algorithm is effective is another topic of conversation.
Thanks for your time, and once again sorry for the long post