При заданном наборе точек в евклидовой плоскости 2D: P = {V 1 , V 2 , .., V n }, и мыПредположим, что существует K различных типов точек: T 1 , T 2 , .., T K , каждая точка V i в P принадлежит ровно одному из K типов.
Определение маршрута KTSP:
Учитывая произвольную точку местоположения V 0 в той же 2D евклидовой плоскости (V 0 не имеет типа), путь V* 0 * тысяча двадцать два * * один тысяча двадцать три -> V 1 -> V 2 * * тысяча тридцать один -> V * * тысяча тридцать-дв '* тысяча тридцать-три* 3 -> ....-> V ' K -> V 0 называется тур KTSP, если V ' i относится к типу I.
Тур KTSP - это просто обычный тур, начинающийся и заканчивающийся в той же заданной произвольной точке, но с двумя дополнительными ограничениями: (1)Он проходит каждый тип точки один и только один раз.(2) Тип точки, которую проходит путь, имеет порядок.То есть сначала он начинается с точки V 0 , затем сначала проходит точку типа T1, затем тип точки T2, затем тип точки T3 и т. Д., Пока не пройдет точку типа T K ., после чего он возвращается на V 0 .
. Вот мой вопрос:
когда указывается точка V 0 , найдите кратчайший тур KTSP.
Например, на следующем рисунке каждый цвет представляет один тип точки, есть 3 различных типа точек, мы предполагаем, что точки синего цвета - это тип 1, красный тип 2, черный тип 3,
и маленький треугольник с желтым цветом - это заданное местоположение V 0 , тогда кратчайший тур TSKP, соответствующий этому конкретному V 0 , показан четырьмя синими стрелками.
Мне кажется, это вариант классической проблемы TSP, но я не могу придумать алгоритм, нужна помощь!