У меня есть проблема, которая была эффективно уменьшена до проблемы коммивояжера с несколькими продавцами. У меня есть список городов для посещения из исходного местоположения, и мне нужно посетить все города с ограниченным числом продавцов.
Я пытаюсь придумать эвристику, и мне было интересно, может ли кто-нибудь помочь. Например, если у меня есть 20 городов с двумя продавцами, подход, о котором я подумал, - это двухэтапный подход. Во-первых, разделите 20 городов случайным образом на 10 городов по 2 продавца в каждом, и я бы нашел тур для каждого, как если бы он был независимым в течение нескольких итераций. После этого я хотел бы либо поменять местами, либо назначить город другому продавцу и найти тур. По сути, это будет TSP, а затем проблема минимальной продолжительности. Проблема в том, что это было бы слишком медленно, и хорошее поколение соседей поменять местами или присвоить город сложно.
Может кто-нибудь дать совет, как мне улучшить вышеперечисленное?
EDIT:
Географическое положение каждого города известно, и продавцы начинают и заканчивают в одном и том же месте. Цель состоит в том, чтобы свести к минимуму максимальное время в пути, создавая проблему минимального рабочего времени. Например, если продавец1 занимает 10 часов, а продавец2 - 20 часов, максимальное время в пути составит 20 часов.