Образовательный форум по искусственному интеллекту, математике и физике 2025

Задача 3:
Оптимизация порожнего пробега локомотивов
Задача предоставлена ОАО «РЖД»

Описание задачи

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

После выполнения рейса с составом (груженым или пассажирским) локомотив часто оказывается на станции, где для него нет немедленной "обратной" работы. Его нужно либо перегнать на другую станцию, где он требуется, либо оставить в ожидании. Такой "холостой" перегон называется порожним пробегом. Он не приносит дохода, но несет затраты (топливо, износ, занятость бригады, использование инфраструктуры).

Суть задачи:
Разработать алгоритм, который минимизирует суммарный порожний пробег локомотивов (или связанные с ним затраты) на заданной сети железнодорожных станций и набора заявок на перевозку в течение определенного планового периода.

Описание данных

В качестве исходных данных будут предоставлен датасет, содержащий следующие элементы:

1. Карта станций и расстояний:
○      Список станций (ID, название).
○      Матрица или список ребер с расстояниями (в км) и/или временем перегона между связанными станциями. (Можно задать условную стоимость 1 км порожнего пробега).

2. Парк локомотивов:
○      Список локомотивов (ID, тип - если важно для разных видов поездов, текущее местоположение на начало планового периода, плановое время освобождения).
○      (Опционально) Стоимость часа простоя локомотива.

3. План поездов (заявки на перевозку):
○      Список поездов (ID, станция отправления, станция назначения, плановое время отправления, плановое время прибытия, требуемый тип локомотива - если есть).

4. (Опционально) Ограничения:
○      Время на техническое обслуживание локомотива после определенного пробега.
○      Ограничения по работе локомотивных бригад (можно упростить).
○      Пропускная способность участков (для продвинутых команд).

Целевая функция

В ходе решения задачи необходимо минимизировать сумму:

(общий порожний пробег в км * стоимость 1 км порожнего пробега) + (общее время простоя локомотивов * стоимость часа простоя).

Что должны сделать команды

  1. Разработать модель представления данных.
  2. Предложить и реализовать алгоритм (предпочтительно с использованием генетических алгоритмов или других методов дискретной оптимизации), который строит расписание движения локомотивов (какой локомотив какой поезд везет, и какие порожние рейсы совершает).
  3. Оценить эффективность своего решения по целевой функции.
  4. (Желательно) Визуализировать предложенное решение (например, на карте или в виде временной диаграммы Ганта для локомотивов).

Критерии оценки

  1. Значение целевой функции (основной критерий).
  2. Полнота учета ограничений (если они введены).
  3. Скорость работы алгоритма (особенно для больших наборов данных).
  4. Качество презентации и объяснения решения.
  5. Новизна и оригинальность подхода.
Контакты с организатором хакатона
Ссылка на Telegram для информации и вопросов:
https://t.me/+c1E_FURVeJ9iNzEy

Здесь будем выкладывать данные, отвечать на вопросы.

Место проведения: (сообщим позднее)
Организации-партнеры кейса