Najkrótsza trasa między wieloma punktami

Muszę znaleźć najkrótszą trasę między punktami wielokrotnymi. Powiedzmy, że mam te cztery punkty:

var startPoint = new Point(1, 1);
var pointsToGoPast = new List<Point> { new Point(3,1); new Point(2,4); };
var endPoint = new Point(10, 10);

Chcę więc dowiedzieć się, które punkty należy przejść obok, aby uzyskać najkrótszą trasę, od startPoint do endPoint.

Czy ktoś może mi pomóc?

Aktualizacja: Musi minąć każdy z punktów na liście punktówToGoPast. Koszt jest nawet dla każdej trasy.

questionAnswers(4)

yourAnswerToTheQuestion