FAQ — Comportamento do algoritmo de geração
Perguntas frequentes sobre o comportamento do motor de geração automática. Para a descrição da própria geração automática, ver Geração automática; para o detalhe operacional, ver Geração automática.
Em que tipos de horário funciona a geração automática?
Nos horários semanais, cíclicos e calendário. No modo calendário, as aulas são colocadas em datas reais e as opções de geração incluem limites de datas.
Como funciona o algoritmo?
A Omniscol lança um processamento de resolução em segundo plano. A geração automática avalia as aulas a colocar, as restrições declaradas e as preferências de geração. O resultado depende sobretudo da qualidade dos dados: volumes horários, professores, salas, grupos, disponibilidades, incompatibilidades e restrições intersítios.
Cada geração inicia um ambiente de cálculo dedicado e paralelizado. Não há qualquer fila de espera a gerir do lado da escola; a inicialização demora frequentemente cerca de uma dezena de segundos antes de o cálculo efetivo começar. No módulo Gestão de horários letivos, o botão Gerar um horário lança o cálculo, acompanha o seu estado e permite inspecionar o resultado.
O motor é uma IA de otimização metaheurística Monte-Carlo neurossimbólica: pesquisa estocástica, restrições simbólicas e otimização progressiva das pontuações. Não é uma promessa de êxito num conjunto de restrições impossível; nesse caso, a Omniscol devolve um diagnóstico.
Quanto tempo demora uma geração?
A duração depende do tamanho do horário, do número de aulas, do número de restrições e das opções escolhidas. A título de ordem de grandeza, uma escola de cerca de 550 alunos, 45 professores e 16 turmas, com muitas disponibilidades, pode obter em menos de um minuto um horário completo, com muito poucos ou nenhuns intervalos vazios, quando os dados são coerentes. Um caso mais denso, muito restringido ou com otimizações dispendiosas pode demorar bastante mais tempo.
A geração automática respeita todas as restrições?
As restrições duras são respeitadas estritamente:
- um professor num único lugar ao mesmo tempo;
- uma turma sem duplo posicionamento, exceto grupos em divisão;
- disponibilidades e faixas horárias marcadas como indisponíveis;
- sala padrão ocupada por uma única aula de cada vez;
- sala grande utilizada apenas dentro dos seus limites de capacidade e de número de turmas;
- salas especializadas, capacidades, recursos materiais e deslocações intersítios compatíveis;
- aulas bloqueadas conservadas no seu lugar.
As restrições flexíveis (disponibilidades indesejáveis, preferências, ponderação pedagógica, equilíbrio dos dias, número de dias de presença, intervalos vazios nos horários) são otimizadas o melhor possível. Criam penalizações: a geração automática procura a solução que acumula o menor número delas, mas pode conservar algumas se for o melhor compromisso compatível com as restrições duras.
O que fazer se a geração falhar?
Quando nenhuma solução completa é encontrada, a Omniscol devolve o melhor horário calculado e deixa as aulas não posicionadas na barra dos post-its. O horário parcial permanece consultável para compreender o que foi colocado e, em seguida, corrigir as restrições ou reposicionar manualmente algumas aulas. As causas mais frequentes estão descritas na página Diagnosticar uma geração que falha.
É possível forçar manualmente a posição de uma aula?
Sim, através do bloqueio de uma aula após o posicionamento manual. A geração automática não desloca uma aula bloqueada numa nova geração, mas ajusta as outras à sua volta. Útil para fixar as aulas imutáveis (intervenções externas com data fixa, exames datados).
Porque é que a geração automática não propõe várias soluções?
A geração automática otimiza segundo as restrições e preferências declaradas e devolve a melhor solução encontrada. Para obter várias soluções a comparar, duplique o horário antes de cada geração e ajuste ligeiramente as restrições ou ponderações entre duas passagens.
A geração automática tem em conta as ausências declaradas?
A geração automática aplica-se ao horário estrutural, independentemente das ausências. As ausências são geridas a posteriori no módulo Gestão de ausências (ver Visão geral do módulo Gestão de ausências), com impacto na exibição do horário publicado e nas estatísticas do Painel (não na estrutura subjacente).
Conflito voluntário e conflito bloqueante
Nem todos os conflitos são equivalentes:
- Conflitos não bloqueantes — podem ser deixados como estão se for uma escolha deliberada (por exemplo, uma sala cujo efetivo exibido excede a capacidade porque se sabe que nem todos os inscritos comparecerão). O alerta permanece visível mas não bloqueia.
- Conflitos bloqueantes — impedem a geração automática de ser bem-sucedida (nenhuma sala compatível, alinhamento incoerente, etc.). O botão Gerar um horário permanece desativado enquanto estes conflitos subsistirem.
Ver Conflito.