Traveling Salesman Problem Solver
KML file:

Upload a KML file (NOT KMZ) containing placemarks. Only the first nine placemarks encountered will be used in the calculation of the shortest route connecting all of them. More info here.

Click here for the source code.