Problem: I have a large collection of points. Each of these points has a list with references to other points with the distance between them already calculated and stored. I
In generally you should to strict bad variants...
I think you should use some variations of Branch_and_bound method
http://en.wikipedia.org/wiki/Branch_and_bound