better documented version, reverts to more efficient single call (instead of n calls) to greedyTour()