минимизация затрат на поездки между городами

Привет, у меня есть проблема оптимизации, когда у меня есть n дней, чтобы поехать в k городов, и я должен спланировать свое путешествие так, чтобы моя общая стоимость поездки была минимизирована.

Стоимость проезда между любыми двумя городами u и v зависит от дня, когда я решил поехать (поэтому стоимость проезда между u и v есть функция f(u,v,n), где n — день, когда я путешествую), и я могу путешествовать только один раз в день. Я также могу остаться в том же городе.

Есть ли способ решить эту проблему с помощью алгоритма кратчайшего пути?


person Kshitij    schedule 04.05.2016    source источник
comment
Is there a way to solve this through a shortest path algorithm? да   -  person Iłya Bursov    schedule 04.05.2016
comment
Это похоже на задачу о коммивояжере, печально известную своей сложностью вычисления.   -  person Natecat    schedule 04.05.2016
comment
Если количество городов не слишком велико (k‹12), то можно переборщить, перепробовав все возможные маршруты (k!).   -  person JerryM    schedule 05.05.2016
comment
Алгоритмы поиска кратчайшего пути обычно полезны для поиска кратчайшего пути ровно между двумя точками. Как правило, это бесполезно для этого модифицированного TSP. Также кратчайший путь актуален только в том случае, если стоимость пропорциональна длине пути.   -  person JerryM    schedule 05.05.2016


Ответы (1)


Это NP-полная задача (поскольку она сводится к гамильтонову пути). Единственное существенное отличие этой задачи от стандартной задачи коммивояжера состоит в том, что веса ребер являются динамическими. Это означает, что вы сталкиваетесь с одноразовыми затратами на предварительную обработку сложности O(VVE!) и что весь цикл может быть решен за время O(V^3) в худшем случае.

Мне удалось найти некоторые подробности похожей проблемы в этом документ, опубликованный в IEEE, в котором описывается проблема Intelligent Transportation-TSP.

person WilliamComputerScience    schedule 04.05.2016