Etapa 7 — Geração automática

Uma vez criadas as aulas, você as posiciona na grade. Construir um horário é, na prática, um ciclo, não um gesto único:

  1. você posiciona algumas aulas manualmente — para ancorar elementos imutáveis ou bloquear restrições fortes (intervenções datadas, exames, ajustes);
  2. você gera (tudo ou parte) para que o algoritmo posicione o restante sob restrições;
  3. você ajusta nas margens — corrigir um caso particular, deslocar uma aula, mudar de ideia;
  4. e isso pode recomeçar: você regenera ao longo do processo (aulas adicionadas, ou — em modo calendário — por intervalos de datas, por lotes de turmas ou de campi).

Você também pode fazer tudo 100% manualmente, sem a geração automática. O posicionamento manual (posicionar, deslocar, bloquear, uma a uma ou em lote) tem sua página dedicada: Posicionamento manual. Para o fluxo de conjunto, veja Vista geral do módulo.

Esta página cobre a geração automática.

Disponibilidade

Disponível nos horários semanais, cíclicos e em calendário. Em modo calendário, as aulas são posicionadas em datas reais e as opções podem limitar a faixa de datas a gerar.

Preparação

Antes de clicar em Gerar um horário:

  • expanda a aba Geração (denominada Verificação em um horário em calendário) para verificar as estatísticas globais,
  • corrija os alertas críticos (vermelhos) — eles bloqueiam a geração,
  • releia os avisos (laranja) — eles não bloqueiam, mas sinalizam um risco (disponibilidades demasiado restritivas, capacidade no limite, etc.).

A tela também indica:

  • número de aulas criadas vs aulas posicionadas,
  • volumes horários inseridos vs horas de serviço dos professores,
  • grupos atribuídos a pelo menos uma aula (para identificar os grupos esquecidos ou não utilizados).

Lançamento

Clique em Gerar um horário. O Omniscol inicia um ambiente de cálculo dedicado e paralelizado. A duração depende do tamanho do horário, do número de restrições e das opções escolhidas. Não há fila de espera a gerenciar do lado da escola; a inicialização leva frequentemente cerca de uma dezena de segundos antes de o cálculo começar realmente.

O cálculo é limitado a vinte minutos, mas isso está, na prática, bem além do necessário: um horário de cerca de 200 aulas responde frequentemente em cerca de vinte segundos — o algoritmo é quase instantâneo, é sobretudo a inicialização da máquina que pesa — e ~600 aulas em cerca de um minuto. Para um estabelecimento muito grande que se aproximasse desse limite, a equipe Omniscol pode aumentar a potência da máquina de cálculo, mediante solicitação.

Opções de geração

Por padrão, a geração posiciona todas as aulas criadas e não posicionadas. Ela também pode deslocar aulas já posicionadas se isso melhorar o horário. As aulas bloqueadas mantêm sua posição.

O menu de opções permite, em particular:

  • gerenciar as salas com três escolhas: atribuição otimizada por padrão, verificação apenas, ou desconsideração completa das salas;
  • selecionar apenas certas turmas ou certas disciplinas;
  • restringir um horário em calendário a uma janela de datas alvo;
  • ignorar as salas já atribuídas ou os posicionamentos atuais;
  • atribuir apenas as salas sem recalcular todo o posicionamento;
  • lançar uma geração rápida sem otimização;
  • autorizar o posicionamento flexível nas subfaixas da grade horária quando o horário usa subfaixas.

Os parâmetros avançados de otimização permitem também reduzir as lacunas, evitar duas aulas da mesma disciplina no mesmo dia, distribuir as aulas, definir mínimos ou máximos de horas, ou escolher o número de dias de presença dos professores. Os usos variam conforme os países: na França, alguns estabelecimentos procuram reduzir o número de dias de presença dos professores; em outros contextos, pode-se, ao contrário, preferir distribuir esses dias, por exemplo para organizar outras missões no local.

Opções específicas do modo calendário

Em modo calendário, as opções avançadas podem limitar a geração a uma janela de datas alvo mais curta do que a faixa total do horário. Isso é útil para gerar apenas uma parte do ano: teste em um mês, construção progressiva de um semestre, ou retomada de um período já preparado.

A outra opção importante é a compactação dos dias para as turmas. Por padrão, a geração automática tende a buscar um equilíbrio nos dias disponíveis; se você gerar apenas uma parte das aulas do ano, esse comportamento pode espalhar artificialmente as aulas. A compactação permite solicitar um agrupamento:

  • no início da janela;
  • no fim da janela;
  • sem preferência de início ou fim, mas mantendo os dias tão compactos quanto possível.

Como a geração trabalha

Compreender a lógica da geração automática ajuda a antecipar o que ela posicionará, o que ela sacrificará e como orientá-la. Ela persegue dois objetivos, nesta ordem:

  1. Fazer tudo caber — a prioridade absoluta: posicionar todas as aulas respeitando as restrições rígidas.
  2. Otimizar a qualidade — uma vez que tudo cabe, reduzir as lacunas, suavizar os dias, honrar as preferências.

Ela parte de um estado limpo (as aulas bloqueadas mantêm seu lugar, as outras são reprocessadas) e posiciona da aula mais difícil à mais fácil. A dificuldade decorre sobretudo da estreiteza das restrições: uma aula cujo professor só está disponível uma tarde por semana, ou um bloco de quatro horas a encaixar de uma só vez, passa à frente. Em igualdade de dificuldade, ela alterna as disciplinas e trata as mais raras antes das mais comuns, para distribuir equitativamente as chances de cada uma.

Quando nem tudo cabe: o sacrifício

Se o horário está restrito demais para encaixar tudo, a geração automática não desiste: ela escolhe o menor conjunto de aulas a deixar de lado para que o restante caiba, e depois otimiza esse horário parcial. As aulas sacrificadas permanecem na barra dos post-its a posicionar. Como a triagem priorizou o mais difícil e o mais raro, são sobretudo aulas fáceis e numerosas que cedem: a 5ª hora de uma disciplina de grande volume antes da hora única de uma disciplina rara.

Você mantém o controle sobre essas decisões: bloqueie as aulas que nunca devem se mover — posicionadas com prioridade, elas não são sacrificadas — e relaxe a sobre-restrição (faixas horárias abertas, disponibilidades) onde for possível, para que o conjunto caiba.

Restrições rígidas e restrições flexíveis

Nem todas as restrições têm o mesmo peso:

  • Rígidas — nunca violadas: a ocupação (um professor, uma turma, um grupo, uma sala ou um recurso não é usado duas vezes no mesmo momento), as faixas marcadas Indisponível (em preto) em um professor, uma turma, uma sala, uma disciplina ou um grupo, a ausência de sala ou de recurso livre na faixa horária, os dias fechados, as posições bloqueadas e os alinhamentos.
  • Flexíveis — todo o restante, que a geração automática pode infringir ao preço de uma penalidade para conseguir encaixar tudo: as faixas marcadas Indesejado (em vermelho — a evitar, não proibidas) e as preferências de otimização (compacidade, distribuição, agrupamento por dia…). Uma restrição de prioridade alta pesa mais do que uma de prioridade baixa, mas nenhuma é bloqueante. A geração automática tenta também flexibilizações pontuais (posicionamento nas subfaixas da grade…) quando esse é o preço a pagar para não sacrificar nenhuma aula.

Verificar sem otimizar

A opção de geração rápida (sem otimização) lança uma passagem aligeirada que responde sobretudo a uma pergunta: tudo cabe? Útil para testar a viabilidade de uma configuração antes de investir o tempo de uma otimização completa.

Resultado

  • Faixa verde: geração bem-sucedida. As aulas do perímetro solicitado puderam ser posicionadas e o resultado pode ser inspecionado.
  • Faixa vermelha: nenhuma solução completa foi encontrada. O melhor horário calculado permanece visualizável e as aulas não posicionadas aparecem na barra dos post-its para diagnóstico.

Veja Diagnosticar uma geração que falha.

Consolidar ou copiar

Após uma geração bem-sucedida, o Omniscol propõe duas opções:

  • Consolidar no horário em curso (o posicionamento substitui o existente).
  • Criar uma cópia (o horário atual permanece intacto, o resultado otimizado torna-se um novo horário).

Se você prevê regenerar mais tarde (porque constrói incrementalmente, por exemplo), não consolide: senão as aulas já posicionadas seriam pontos de partida para a nova geração.

Bloquear uma aula antes de relançar uma geração

Em uma aula já posicionada, use o cadeado de posição para bloqueá-la. A próxima geração não a deslocará, mas ajustará as outras aulas ao seu redor. Prático para ancorar as aulas «imutáveis» (intervenções externas fixadas, exames datados, ajustes manuais…). Detalhes completos em Bloquear uma aula: bloqueio em massa, efeitos no diagnóstico (vermelho → laranja), comportamento do algoritmo.

Exportar um horário em JSON

O botão exporta apenas o horário atual em formato JSON. Não é a exportação completa da conta documentada em Importação e exportação.

Casos típicos:

  • conservar um registro de um rascunho ou de um cenário antes da exclusão;
  • arquivar um estado intermediário antes de uma reorganização importante;
  • transmitir esse horário preciso à equipe Omniscol no âmbito do suporte.

Como para a exportação completa da conta escolar em JSON, a reinjeção não é um uso padrão livremente acessível do lado da escola.

E depois

Etapa final: Publicar (ativar) um horário.

Procedimento

Lançar uma geração automática

  1. A geração automática posiciona as aulas na grade respeitando dezenas de restrições (disponibilidades, capacidades, alinhamentos, especializações, alternâncias). Disponível em horários semanal, cíclico e em calendário.

  2. Verifique a aba Geração. As estatísticas globais aparecem nela: aulas criadas vs posicionadas, volumes horários inseridos vs serviços dos professores, alertas críticos (vermelho — bloqueiam), avisos (laranja — previnem sem bloquear).

  3. Corrija os alertas vermelhos antes de lançar. Enquanto restarem, a geração não pode iniciar — salvo forçar via o menu «mais opções», mas isso não é recomendado. Os laranjas devem ser arbitrados, mas não impedem a geração.

  4. Ajuste as opções de geração se necessário: salas a atribuir, verificar apenas ou ignorar; turmas ou disciplinas alvo; geração rápida sem otimização; ignorar as salas já atribuídas ou posições atuais. Em modo calendário, as opções avançadas permitem também restringir a janela de datas gerada e compactar as aulas no início do período, no fim do período ou sem preferência.

  5. Clique em Gerar um horário. O processamento roda em segundo plano; a tela indica o estado da geração e permite inspecionar o resultado quando ele está disponível.

  6. Salve quando a nota lhe convier. O horário está posicionado. Etapa seguinte: passe em revista os eventuais conflitos, ajuste manualmente os casos particulares (veja Posicionamento manual), depois publique.

  7. E depois: Publicar (ativar) um horário.

Ver também