Скажем, я хочу, чтобы построить функцию, которая будет правильно планировать три водителей автобусов ездить в неделю со следующими ограничениями:Существующий алгоритм для задач планирования?
- Каждый водитель не должен управлять более чем в пять раз в неделю
- Там должны быть два водителя за рулем каждый день
- Они будут отдыхать один день каждую неделю (не будет конфликтовать с днем других водителей отдыха)
Какой алгоритм будет использоваться, чтобы решить проблему, как это?
Я просмотрел несколько сайтов, и я нашел это:
1) Backtracking algorithm (brute force)
2) Genetic algorithm
3) Constraint programming
Честно говоря, все это «культурный шок» для меня, как я никогда не узнал, какой-либо линейного программирования в прошлом. Есть две вещи, которые я хочу знать:
1) Какой алгоритм лучше всего подходит для сценария выше?
2) Какой будет самый простой алгоритм для решения этой проблемы?
3) Пожалуйста, предложите любые другие алгоритмы, которые я могу изучить для решения вышеуказанной проблемы.
Я немного запутался в третьем ограничении. Разве тот факт, что каждый водитель не ездит более пяти дней, подразумевает, что они отдыхают не менее двух дней в неделю? Тот факт, что каждый день должен быть два водителя, подразумевает, что максимум один может отдыхать в определенный день. Третье ограничение кажется излишним здесь. –
иногда требуются избыточные ограничения для более быстрого уменьшения возможного решения. – faisal
Вы хотите решить проблему оптимальности или достаточно оптимальное (эвристически настроенное решение) достаточно? – Kalle