Расписание автобусов - каждый день
У меня есть следующая проблема, и мне нужно несколько идей для ее решения:
У меня есть несколько автобусов (около 150), принадлежащих частным лицам. Каждый человек ездит на собственном автобусе (или отвечает за водителя автобуса). Поэтому мне не нужно заботиться о водителях автобусов, потому что автобусы и водители - это одно и то же.
Вышеуказанные автобусы должны "выполнять / выполнять" автобусные маршруты на ежедневной основе (около 200).
Автобус может делать ОДИН или несколько маршрутов в день
Автобус может работать нормально 5 дней в неделю и определенное количество часов в день (или месяц)
Я должен найти СПРАВЕДЛИВОЙ способ распределять ежедневные маршруты каждые 3 месяца. Справедливое означает, что в конце трехмесячного периода все автобусы должны были проехать одинаковое количество километров (каждому автобусному маршруту назначается фиксированное количество километров).
Я не могу планировать, в начале, на весь 3-месячный период, потому что "особые вещи" происходят каждый день. Как у автобуса есть проблема, у водителя есть проблема и так далее. Это означает, что я делаю СЕГОДНЯ Расписание следующего дня.
Есть идеи?
1 ответ
OptaPlanner (Java, с открытым исходным кодом) был успешно использован для таких проблем. Даже если вы не используете Java, идея, лежащая в ее основе, также может быть полезна на любом языке:
- 1-4: основные ограничения, ничего особенного
- 5: ограничение справедливости, смотрите это видео
- 6: Непрерывное планирование, смотрите это видео