Comments 2
Есть немного искусственное требование на невозможность движения из города в тот же город. Требование очевидно для человека, но машине нужно объяснять дополнительно
А если в матрицу расстояний ввести штраф за такое движение, ну условно 10000,решение изменится, вообще решит?
Да, верно, можно заменить диагональные элементы матрицы расстояний чем то большим: сделать что-то вроде `diag(dist_mtrx) <- 1e6` и потом убрать строчку из постановки MIP: `set_bounds(x[i, i], ub = 0, i = 1:n_cities)`. Должен получится точно такой же результат.
Собственно, такой способ моделирования даже предпочтительнее для тензорных вычислений. Идея формирования маски (mask), то есть запрета повторного выбора вершины приблизительно так и работает. Ну или, если формулировать в контексте задачи перевода текстов то маска, наложенная на токен ограничивает выбор такого токена при формирования текста перевода нейронной сетью.
Когда ИИ может в оптимизацию…