Я вернулся!
Вотпрямщас сажусь, пишу, рисую всё, что у меня осталось по теме задачи коммивояжера, чтобы закрыть эту тему, надеюсь, навсегда.
Для начала, поскольку я уже забыл половину из того, о чем шла речь ранее в этой теме,
кратенько обрисую этапы большого пути, пройденные ранее.
Я начал с того, что взял для рассмотрения условия несложной учебной задачи
на 17 пунктов с вот этого сайта
Координаты пунктов:
План местности:
Воспользовавшись онлайн-калькулятором с того же сайта,
я нашел решение методом "ближайшего соседа" для начала маршрута из каждого из 17 пунктов.
Для этих условий задачи длины кратчайших маршрутов оказались в диапазоне от 457.504 до 567.480 км,
в зависимости от выбранного стартового пункта.
Вот самый короткий из найденных маршрутов:
Его длина L = 457.504 км.
Далее я оптимизировал маршруты,
исключив пересечения, которые я также называю "явными петлями".
Новый диапазон кратчайших маршрутов от 455.413 до 532.008 км.
Вот новый самый короткий кратчайший маршрут:
Его длина L = 455.412 км.
На следующем этапе я ввел новое понятие "скрытая петля".
Распутав скрытые петли я получил 10 различных кратчайших маршрутов в диапазоне длин маршрутов
от 453.182 до 509.714 км.
Абсолютным рекордсменом стал маршрут длиной
L = 453.182 км, вот он:
После того, как все возможности метода "ближайшего соседа" были исчерпаны,
я применил собственный, только что изобретенный, метод "объединения пунктов",
и нашел маршрут длиною L = 452.472 км., который стал новым рекордом для данных начальных условий.
Очевидным достоинством данного метода является то,
что он не зависит ни от выбора стартового пункта,
ни от порядка нумерации пунктов в целом.
Недостаток метода в том, что он не находит скрытые петли.
Распутывание скрытой петли на найденном маршруте дало новый рекордный результат с длиной маршрута L = 448.150 км.
С этой отправной точки мы и отправимся в дальнейший путь.
Мне осталось в этой теме напомнить о своем, опоздавшем на 33 года, открытии,
и, рассмотрев его под несколько более другим углом, изложить свой самый новый,
самый оригинальный метод решения задачи коммивояжера, полностью на этом открытии базирующийся.
Но, прежде чем расстаться с предыдущим методом "объединения пунктов", я хочу здесь рассмотреть то, для чего он был создан,
то-есть уменьшить, путем объединения, число пунктов с 17 до разумной величины,
с которой могут работать наиболее популярные онлайн-калькуляторы,
и сравнить, для этого уменьшенного количества точек, результаты работы моего метода
с результатами метода "ветвей и границ", который большинство онлайн-калькуляторов используют.
Отредактировано Лукомор (2019-09-09 09:20:30)