Boa! Acho q eh um problema bem válido, mas q foge do escopo do projeto (educação superior).
No entanto, tem um problema semelhante q vou precisar resolver: todo semestre é preciso definir quais turmas serão abertas, em quais salas, dias e horários as aulas irão ocorrer, quem serão os professores... No final é um problema de alocar recursos com base em restrições mutuamente excludentes, então daria pra extender a mesma solução para o problema que você trouxe acima.
Obrigado pelo feedback!
sim, no caso, esse problema se chama, atribuição de docente. isso ocorre na esfera municipal,onde os professores passam por um concurso e recebem uma pontuação, e através dessa pontuação eles fazem uma ordem de preferência, onde os professores podem escolher as escolas, e horários. isso acaba com o esquema de privilégio. quanto as turmas, tem um processo chamado de pre matricula, onde ele faz uma analise previa, para ver quantas vagas serão necessárias para atender a demanada.
Tenho o código de um sistema que fiz com algoritmos genéticos para resolver exatamente esse problema se estiver interessado, só está uma droga pq é da época da faculdade