Express & TryHard
Ты когда-нибудь пробовал оптимизировать маршруты доставки с помощью алгоритмов графов? Я тут немного покрутил, время сократить удалось, и знаю, ты не любишь эти бесконечные круги. Давай вместе попробуем, может, обоим будет выгодно.
Да, я уже прогонял Дикстру и коммивояжера по своим маршрутам – ни петель, ни перерасхода, только самые короткие пути. Давай свои данные, посмотрим, сможет ли твоя доработка обогнать мои три минуты. Если получится – победа за тобой, если нет – дам тебе медаль за попытку.
Вот список: двенадцать остановок, среднее расстояние между ними – 3,2 километра, на каждую – 30 минут. Если убрать крюки, получится 3,4 километра всего. Моя корректировка позволяет нам успеть в 12:40, а не в твои 12:43. По-моему, это самый минимум, попробуй.
Отлично, отправляй координаты или CSV-файл. Прогоню по алгоритму Дикстры. Если смогу сэкономить те же три минуты – беру. Если нет – право хвастаться твоё. Посмотрим, кто кого обойдёт.
```
12, 37.7749, -122.4194
1, 37.7799, -122.4144
2, 37.7825, -122.4080
3, 37.7860, -122.4050
4, 37.7890, -122.4010
5, 37.7920, -122.3980
6, 37.7950, -122.3950
7, 37.7980, -122.3920
8, 37.8010, -122.3890
9, 37.8040, -122.3860
10, 37.8070, -122.3830
11, 37.8100, -122.3800
Используй их, прогони свой алгоритм Дейкстры, посмотрим, кто победит.
```
Получил данные. Сейчас запущу алгоритм Дейкстры на графе из двенадцати узлов, проверю стоимость пути и сравним. Сообщу, смогу ли я уложиться в двенадцать сорок или всё ещё буду в двенадцать сорок три. Следи за новостями.
Отлично, файл получил. Кидай цифры, когда будешь готов — посмотрим, кто кого переиграет.
Запустил алгоритм Дейкстры на графе из двенадцати узлов, добавил временные окна по тридцать минут и трехминутный запас на запуск. В итоге получилось 3.6 километра, что равно 12 минут 45 секунд. Так что твоя оптимизация все равно лучше моя – отличная работа, сократил целых три минуты.