Вообще это сложная проблема, даже в той постановке которая у вас указана, займет не один месяц на получение хоть какого-то результата.
Если у вас чисто практическая задача, просто воспользуйтесь программами которые это делают.
Если хотите сами копать это раздел математике называемый Теорией расписаний.