I'm not sure if this is something new or if I'm just not getting previous efforts. TSP can be thought of as a list of weighted links and nodes. If one takes the Nearest Neighbor (NN) of every node and adds them all up, that is a theoretical minimum. It's not a solution, but any solution can't be less than that. It will produce n/2 pairs of unconnected cycles. Label all of the nodes in the cycle with the cycle's label. Next, connect the nearest adjacent cycle. Relabel the cycles. When the cycle count reaches 1, you have a solution. It's probably not optimal, but it might be better than NN. Just thought I'd ask. Any help is appreciated. I did try to look it up, but all the solutions looked top down to me, so hopefully, I haven't wasted everyone's time.
Thanks for the responses, they've been very helpful. This truly is a question and not a proposal masquerading as one, so the answer to many of your questions is, I don't know.
Your example struck me as odd for something on a plane, but a simple circle with r=1 radian demonstrates it. It comes down to 1r vs 1.23 approx.
My thinking was using something like a parallel merge sort. I think of NN more like a sequential bubble sort. So the goal is to create small cycles and then merge them into larger ones. In cases of ties, instead of going to the runner, they go to the node with the fewest good options. Each node could be represented as a table with all it's links sorted by weight. Each link would also have a cycle ID associated with it. This was more like a component labeling problem from imagine processing. Once a link is in the same cycle, they would be deactivated. The goal here is to try to decrease the run time to log2(n) but more likely log2(n)*log2(n). It's the type of problem that should, in theory, run well on SIMD grid of processors, although I suspect they will need local memory decode. It would also require some sort of higher level routing, in days gone by a hypercube or butterfly switch was used. Decades ago I did some research on a pyramid topology system for component labeling and saw some improvement. A single spiral was the worse case, which was < log2(n)*log2(n) if memory serves.