This greatly helps optimize Step 2, because the vector comparison functions are now much faster. The randomly initialized map becomes somewhat smoothly ordered after only a few iterations through the algorithm. The costly part of Step 4 is due to the vector update computation that needs to be done for the neighboring neurons of each winning neuron. Statistically, each neuron's reference vector is updated many more times than it is actually used in a winning node search computation. We are still in the process of completing the update compression optimizations, as well as the parallelizing the final, optimized serial algorithm.
Preliminary results look very promising.
By examining the final values of the reference vectors contained in the neurons of the map, we can create a landscape representation of the clusters computed by the map. Another important aspect of the visualization is that the heights of the mountains represent the degree of dissimilarity between neighboring clusters. There are three main objectives for the future - finish the optimizations and parallelization, figure out a way to intelligently label the map, and improve our visualization interface. Initial progress into all of these areas has been made.