Я не уверен, какой подход нужен, но позвольте мне описать проблему:
- При заданном произвольном количестве рабочих (2 и более) планируется работа в любом заданном месяце (включая выходные).
- В назначенный день может работать только один работник. 2а. Этот работник может не работать ни накануне, ни после.
- Рабочие также работают по выходным и по возможности поровну распределяются по числу рабочих. 3а. Суббота и воскресенье оцениваются одинаково.
- Выделять на возможные отпуска, взятые 4a. Без ограничений по последовательным дням 4b. Нельзя брать отпуск так долго, чтобы это мешало правилу № 2 и № 3.
Каков наиболее гибкий способ сортировки этих критериев. Как называется этот тип проблемы?
Может ли кто-нибудь указать мне правильное направление, чтобы я мог прочитать и узнать об этом. Очевидно, если это что-то, что уже было решено с помощью алгоритма, укажите мне нужную статью или книгу, чтобы я мог прочитать и понять ее.
Пояснение: я не ищу, сколько [всего] дней и выходных будет работать каждый рабочий, а способ [равномерно] распределить отработанные дни в этом месяце.
Например. Рабочие A B C; Запрошенный отпуск с 17 до 20
Очевидно, что есть и другие перестановки, кроме примера, который я перечислил ниже.
M T W Th F Sa Su
====================
October 1 2 3 4 5 6 7
2012 A B C A B C A
8 9 10 11 12 13 14
B C A B C A B
15 16 17 18 19 20 21
C A B C B C A
22 23 24 25 26 27 28
B A C A C B C
29 30 31
A B A