1. Как сгенерировать все перестановки чисел?
Есть разные алгоритмы - погуглите "генерация перестановок".
как посчитать полное расстояние, если где-то расстояние между двумя станками 30м, а где-то 40м?
Тут всё по-честному придется делать.
Т.е., если у нас порядок прохождения 123456, а текущая перестановка 07654321, то
1. Находим индекс (начиная с 0) первого станка в цепочке - 7
2. Находим индекс второго станка в цепочке - 6
3. Расстояние от 7-го места до 6-го - 250 м по часовой стрелке и 30 м - против часовой, поэтому берем 30.
4. Находим индекс 3-го станка в цепочке и считаем расстояние до него от 6-го места.
И т.д.
Лучше сначала построить матрицу расстояний
, такую, что
- расстояние между местами
и
.