2

В Microsoft Solver Foundation я хотел бы узнать, можно ли добавить параметр, значение которого зависит от значения решения.Параметр, который зависит от решения в MSF

I.e. Я хочу что-то сделать для модели TSP, но она также должна учитывать трафик с одной точки на другую. Обратите внимание: трафик зависит от времени, когда человек по продажам путешествует по этому маршруту.

Вот модель:

У меня есть матрица всех возможных комбинаций между городами.

Переменная принятия является Order маршрута продавца. 0 - первая, 1 секунда, ...

У меня есть свойство timeToTravel, которое привязано к собственности, которая рассчитывает время, когда маршрут будет проходить от значения Order, и возвращает время поездки, включая трафик для этого время суток.

Мне кажется, что значения параметров считываются один раз и кэшируются при вызове функции Solve, правильно ли? Если да, есть ли у кого-нибудь рекомендации по решению этой проблемы?

Первоначально я задал этот вопрос on the MSF forum, но я подумал, что это привлечет больше внимания к переполнению стека. Также я открыт для разных решателей, кроме MSF, но я бы предпочел остаться в среде .NET.

+0

Установлена ​​ли теория для этой конкретной задачи TSP? –

ответ

1

Существует хорошая статья о решении «статической» проблемы с продавцом с использованием Solver Foundation here. Если у вас еще нет своей собственной реализации, возможно, вы сможете основать свое решение на этом коде.

Это формулировка цели из указанной статьи:

// Goal: minimize the length of the tour. 
Goal goal = model.AddGoal("TourLength", GoalKind.Minimize, 
    Model.Sum(Model.ForEach(city, i => 
     Model.ForEachWhere(city, 
      j => dist[i, j] * assign[i, j], j => i != j)))); 

Если я правильно понимаю, в вашей задаче время передвижения между двумя городами зависит от времени-оф-день?

Я не считаю, что вы можете динамически обновлять массив dist[,]double во время оптимизации. Однако, используя строительные блоки класса Model, должно быть возможно переформулировать массив dist[,] как набор функций, которые зависят от общего пройденного расстояния/времени.

Для полноты, here - еще одна интересная статья о формулировке TSP с использованием OML.

Смежные вопросы