Это цена, которую вы платите за алгоритм, подобный этому: полученные результаты вполне могут каждый раз отличаться. Алгоритм не «находит кратчайший путь», что является вычислительно неразрешимой проблемой («коммивояжер»). Вместо этого он пытается быстро найти решение, которое "достаточно короткое". Будет ли это на самом деле так, во многом зависит от данных ... и, в нетривиальной степени, от случайного случая.
И, поскольку алгоритм является сравнительно быстрым, иногда вы запускаете его несколько раз подряд, чтобы оценить изменчивость полученных решений. Если (скажем) три прогона в каждом случае дают результаты, которые «достаточно близки» друг к другу, есть хороший шанс, что результат будет надежным. Но если стандартное отклонение очень велико, алгоритм может не дать вам хорошего ответа. (Имейте в виду, что иногда решение будет неправильным.)
Так сказать: «вы получаете то, за что платите, но вы за это не платите много, и, конечно, вот в чем дело. "