Уважаемые, подскажите пожалуйста.

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

Ткните носом, что почитать, какие алгоритмы для решения подобных задач вообще применяются?

Большое спасибо за внимание.