Shortest path to visit multiple points

Given a list of points, I would like to find the shortest path to visit all points and return back to the point that my agent started, kind of like a traveling salesman problem (TSP). I looked at MultiTargetPath but it seems like that just returns multiple paths from/to one point and doesn’t compute the path to visit all the points. On the fly, one could probably just use MultiTargetPath and keep visiting the nearest node (shortest path) and this may work for some simple cases but since it is a greedy algorithm it wouldn’t be the optimal path in many complex cases. I am including a diagram that shows a simple case of the points that I am trying to calculate a path through.


That is exactly TSP with a minor variation. This package does not have any algorithms for solving TSP I’m afraid.