powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Задача к коммивояжеров
10 сообщений из 10, страница 1 из 1
Задача к коммивояжеров
    #37987340
rus_bug
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Задача к коммивояжеров

Условия
На множестве из n + 1 города строится к замкнутых маршрутов по следующим правилам

1. Один из городов называемых базой, входит во все маршруты
2. каждый из городов, исключая базу, входит ровно в один маршрут
3. суммарная длина всех маршрутов минимальна

Методы решения
1. Сначала решается ЗК для всех городов, а потом подбирается наилучшее разделение результата для k коммивояжёров.
2. Сначала множество городов разбивается на k групп, а затем ЗК решается для каждой из них

Подробно методы излагаются здесь http://www.marigostra.ru/materials/ktsp-tsu-2008.pdf

Вопрос, как адаптировать предлагаемые решения при условии Ограниченного Времени работы коммивояжеров

Собственные соображения :

В первом из предложенных вариантов можно делить маршрут исходя не из равномерного распределения количества городов между к коммивояжерами, а из времени работы каждого коммивояжера, НО данный вариант возможен только при условии, что общее время работы меньше суммарного времени работы к коммивояжеров, т.е. все города будут пройдены за выделенное время, а это далеко не факт

Во втором варианте действуем по предложенному варианту, затем накладываем временное ограничение на к - ый полученный маршрут и отрезаем города, не вошедшие в маршрут по времени. Затем города, не вошедшие маршрут, перераспределяем между остальными группами маршрутов по предложенным выше вариантам . - Собственно вызывает вопрос вообще правильность предложенного варианта, смущает обрывание маршрута просто повремени и в целом предложенный вариант почему включать в маршрут первые n городов, а не последние и т.д.

Буду благодарен за любые идеи и ссылки. Спасибо
...
Рейтинг: 0 / 0
Задача к коммивояжеров
    #37987365
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1 База должны иметь к*2 дорог к сосденим городам.
Для каждого комивояжера разный маршрут приезда и возврата.

2. Считать рекурсивно,
одни ход считать от точки отъезда , следующий от точки возврата, пока маршрут
не замкнется.

3 Расчет для всех комивояжеров должен производиться паралельно( по очереди).


4. Внутри цикла ходов , первым должен ходить( выбирать вариант куда поехать) , тот комивояжер у которого меньше вариантов для выбора.

5. В случае наступания на занятый город, откатывать последний ход ( возможно даже несколько ходов до хода в котором был занят этот город) у всех комивояжеров и искать алтернативные маршруты , начиная с того кто наступил на чужой город.

приблизительно так.
...
Рейтинг: 0 / 0
Задача к коммивояжеров
    #37987378
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
6. Может возникнуть необходимость менять между комивояжерами вторую половину маршрутов( замыкать маршрут на соседа , а соседский на себя).
Для быстрого разрешения пересечения маршрутов 2 комивояжеров,
на последних ходах работы алгоритма.
...
Рейтинг: 0 / 0
Задача к коммивояжеров
    #37987391
rus_bug
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДохтаР,

Вы хотя бы сами поняли, что написали ...
...
Рейтинг: 0 / 0
Задача к коммивояжеров
    #37987724
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rus_bug,

Если бы не понимал , не писал бы .

Просчитывается к *2 маршрутов от базы к краям по критерию сумарной длины.
Потом маршруты попарно замыкаются ( п 6) друг на друга.
...
Рейтинг: 0 / 0
Задача к коммивояжеров
    #37987796
Abstraction
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rus_bug,

Я бы не пытался так жёстко сводить задачу к задаче коммивояжёра (по сути, к случаю k=1). И что значит - "ограниченное время работы"? Что длина каждого из путей не должна превышать некий max?

Некоторые мысли вслух:
Пусть у нас есть некоторое решение.
1) База - вершина степени не меньше k, иначе задача не решается.
2) Каждый город может быть достигнут из базы по пути не длиннее max/2.
3) Вообще, может оказаться полезно приписать каждой вершине минимальное расстояние до базы.
4) Если у нас маршрут, то на подграфе, образованном входящими в него вершинами, его можно модифицировать как и в случае обычной задачи коммивояжёра.
5) Дугой маршрута назовём его фрагмент от базы до базы, не включающий базу кроме как в конечных точках.
6) Если у нас есть две дуги, принадлежащие разным маршрутам, то, если у некоторой пары рёбер перекрёстно соединены концы, при некоторых условиях их возможно "перемкнуть": получить две других дуги.
7) Предположительно, операции 4) и 6) позволяют достаточно сильно модифицировать решение, чтобы можно было применить метод имитации отжига. Однако для этого желательно, чтобы степень вершины базы была не меньше 2k.
8) Поскольку частный случай k=1, max=100500 есть NP-полная задача, без дополнительных предположений о значениях k и max не стоит надеяться решить задачу аналитически, в любом случае.
9) В принципе, вместо имитации отжига можно попробовать модифицировать муравьиный алгоритм . В этом случае, по идее, легко сформулировать ограничение по длине пути (пройдя max, муравей дохнет), но над тем, как потребовать k непересекающихся маршрутов, надо думать.
...
Рейтинг: 0 / 0
Задача к коммивояжеров
    #37988014
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Abstraction муравьиный алгоритм .



Спасибо, очень интересная ссылка .
...
Рейтинг: 0 / 0
Задача к коммивояжеров
    #37988066
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Abstraction,

Я когда вчера вечером размышлял о возможных вариантах решения,
думал о некотором угасающем весовом коэфициенте для маршрута в каждой вершине графа.

автор Чем выше концентрация феромона на тропе, тем
больше муравьев будет по ней двигаться. Со вре
менем феромон испаряется, что позволяет мура
вьям адаптировать свое поведение под изменения
внешней среды. Распределение феромона по про
странству передвижения муравьев является свое
го рода динамически изменяемой глобальной па
мятью муравейника


Для временного отсечения псевдо-тупиковых маршрутов методом имитации отжига.
Для предотвращения попадания комивояжоров на маршрут ,
где недавно произошло наступание на грабли ( в тупик ).
По мере уменьшения весовго коэфицента конфигурация других маршрутов должна
достаточно сильно поменяется ,
И этот ранее тупиковый маршрут можно попробовать использовать повторно.
...
Рейтинг: 0 / 0
Задача к коммивояжеров
    #37988103
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rus_bugДохтаР,

Вы хотя бы сами поняли, что написали ...
Вы находитесь в позиции просящего. Вам специалисты
помогают бесплатно. Поэтому менторский тон здесь
совершенно неуместен. Не забывайте об этом.
...
Рейтинг: 0 / 0
Задача к коммивояжеров
    #37990043
Valer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если это развозка товара,то надо учитывать грузоподъемность
+ если планирование на 1 день , то 1 водитель не сможет обслужить более 8-10 точек( разгрузка + оформление документов)
+ иногда надо учитывать время работы точки
+ если развозка по области, то через некоторые населенные пункты проезжать придется многократно ( из А в Б,Д,Е только через С)
+ иногда лучше проехать лишнего по хорошей дороге, чем сэкономить км и ехать по плохой
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Задача к коммивояжеров
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]