Начните с постановки задачи. Какие объекты существуют (преподаватели, группы студентов, аудитории) и сколько их, какие есть ограничения (например, нельзя вести две пары в одной аудитории в одно время), какие из ограничений обязательны, какие можно нарушить. Желательно это все оформить в виде набора переменных, равенств и неравенств между ними + ввести функцию, которую мы хотим оптимизировать.
Не беритесь за какое-то общее решение. Есть конкретный университет, для него и решайте. Вдруг, у вас есть какие-нибудь особенности, которые сильно упрощают задачу.
После того, как все соберете и поставите задачу математически, можно думать над методами.