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
