Wednesday, 23 November 2011

No Update == Progress? maybe?

I havnt given an update here recently, and this could be for many reasons: I've been so overwhelmed with work that I've had no chance? I've been so excited about work that I couldnt leave it for long enough to write here? Im lazy? Writing up my work has left be mentally decapitated?

While there is a thread of truth to each of these, it's mostly me having forgot about it. I have been concentrating on paper writing and preparing my results for publication. With this I have been re-reading a lot of the papers (which, admittedly, i havnt touched in a while) and finding ever more things to change with my implementations.

Even though there are changes, my previous results are still applicable due to the controlled environment - it just means they do not the full functionality of the original algorithms theyve been implemented to copy (which might eb frowned upon but as it is a comparison, the controlled environment should be beneficial).

In addition, I have been working to improve my own algorithm to retrieve the best results I can (including an implementation of multi-matching [grouped coarsening] to help combat star-type graphs).

I have also discovered/realised that Yifan Hu previously implemented a feature similar to the "scaling parameter" for repulsive forces to combat the peripheral effect - a parameter, p, he uses as the power in his force calculation. Why I didn't pick up on this before I do not know and worries me... but its not the end of the world.



With this recounted knowledge, I will look to publish my results as a refinement of this based on purely measurable output with the focus being to find a "good default value" for the CA algorithm (not an entire waste).

I have also failed to mention I differ from the original method for calculating the "k" value. Walshaw and Hu use a method where each graph uses the value of  k' = sqrt(4/7)*k where k is the value of k from the previous graph and k' is the new value. I have been using the approach by Frutcherman and Reingold where the value is proportional to the number of vertices, and the size of the output.

This has been chosen as I dislike the method of calculating the initial graphs k value (using the average edge which is generated randomly) - so instead, each abstract graph has a value of k' = sqrt( Area/ |V| ). Comparing the sizes between graphs I get a value of ~0.72, in comparison to the value of 0.75 given from sqrt(4/7).  There is a difference between output which I will look in to (and hopefully measure) but the difference is very small, bordering insignificant.

Some issues remain with algorithm (for both of these approaches) in that coarser graphs don't appear to be drawn well (for example, a line of edges will be bent instead of straight). This has been investigated and is down to the value of k (the size of the output), which requires further experimentation.

Moving on from the "everything is wrong" outlook, I have set the last day of this working year as my deadline to finish the work on static graphs. This should give me plenty of time to finish my investigations and implement improved functionality for better results in the end. I have already collected enough evidence of the contraction algorithms usability in contrast to the Barnes Hut octree approximation, so any further work is purely to find better and better results.

I will update again next week, most likely with "I implemented this.." or "I fixed this..." but I better not jinx it.

No comments:

Post a Comment