Você está na página 1de 11

Instruções do Prouesse

O Prouesse é um software para a geração de quadros de horários de aulas em


escolas de ensino fundamental e médio. Com ele é possível gerar horários com
as seguintes características:

- Para cada professor, limitar o número de aulas por dia da semana.

- Limitar o número de dias de trabalho por semana, garantindo folgas.

- Determinar horários não disponíveis por dia da semana, por professor.

Não há garantias de que, para as restrições indicadas, o Prouesse


encontrará os horários, mas esteja certo de que ele buscará encontrar uma
solução. O Prouesse compõe-se de dois programas bastante distintos,
“pag_config_prouesse1.html" e "Prouesse2.jar". O primeiro é responsável
pela entrada e alteração de dados, pela escrita do arquivo de dados (exportar
um arquivo) e pela leitura de um arquivo de dados (importar um arquivo). O
segundo é responsável pela obtenção dos horários obedecendo às condições
(restrições) indicadas.

Assim, os dados (nomes de professores, códigos de turmas, lista de


turmas de cada professor etc.) são informados a partir do
pag_config_prouesse1.html" e o usuário executa o comando para exportar o
arquivo de dados, que será lido (importado) pelo "Prouesse2.jar" - programa que
obtém os horários e exporta o arquivo com os horários. Este arquivo de horários
pode ser visualizado pelo próprio "pag_config_prouesse1.html". O usuário
experiente transita várias vezes de um programa para o outro, procurando obter
um resultado de melhor qualidade.

PARTE I: Instruções de pag_config_prouesse1.html

No início deve-se clicar em "Gerar Configuração", que faz aparecerem as 3


opções: "Gerar Novos Dados", "Restaurar Dados" e "Exibir Horários do
Prouesse". Trataremos da primeira e deixaremos as outras duas para mais
adiante. A opção "Gerar Novos Dados" exibe um menu com as seguintes abas:

- Dados Iniciais: Para a declaração dos professores, respectivas matérias e a


declaração das turmas.

- Professores e Turmas: Para informar as turmas de cada professor, informar


se o professor tem preferência (ou se não tem preferência) por aulas
"geminadas" e informar a carga horária semanal da disciplina de cada
professor.
- Aulas por Dia da Semana: Permite limitar o número de aulas de cada
professor, em cada dia da semana.

- Horários Não Disponíveis: Para informar o número máximo de dias de


trabalho por semana, de cada professor, garantindo um mínimo de folgas, e
informar horários não disponíveis (horários em que não devem haver aulas do
professor)

Outras abas são:

- Verificação de Dados

- Resultados

- Salvar

Vejamos algumas instruções para o preenchimento destas abas:

- Dados Iniciais: Informe os nomes dos professores, suas matérias e os códigos


das turmas. Os nomes e códigos devem ter no máximo 10 caracteres.

- Professores e Turmas: Clique na seta "selecione as turmas". Aulas geminadas


são aulas que um professor tem em uma mesma turma, num mesmo dia (ou
seja, duas aulas, e não mais que duas); deve ser pressionada uma das opções
correspondentes para o professor: sim (o professor tem preferência por aulas
geminadas: Prefere ter um par de aulas geminadas em cada uma de suas
turmas), não (o professor prefere não ter aulas geminadas) ou indiferente.
Para cada professor deve ser marcada a resposta para a pergunta que aparece
na aba "Professores e Turmas": A carga horária é igual para todas as turmas?
Para informar a(s) carga(s) horária(s), clicar na seta "carga horária turmas".

- Aulas por Dia da Semana: Para cada professor, informe um número


representando o máximo de aulas, para cada dia. Há duas opções disponíveis,
para cada professor. Para preencher os 5 campos correspondentes a uma
opção, é preciso ativar a opção. A navegação de um campo para o campo
seguinte pode ser pela tecla "Tab" (situada na extremidade esquerda do
teclado). Podem ser preenchidas ambas as opções, e valerá a que permanecer
ativada.

- Horários Não Disponíveis: Para limitar o número de dias de trabalho de um


professor, preençha o campo correspondente com um número representando
o máximo pretendido. Para informar, para um professor, que um dos 25 horários
da semana é um horário não disponível, marque-o. Podem ser marcados tantos
horários não disponíveis quantos forem desejados. Se um professor não deve
ter nenhuma aula num certo dia, é recomendado que não se marque os horários
do dia como indisponíveis, sendo preferível indicar na aba "Aulas por Dia da
Semana", 0 (zero) aulas para o professor, no dia em que não deve haver aula.
Uma observação importante é que deve haver uma consistência no
preenchimento das abas "Aulas por Dia da Semana" e "Horários Não
Disponíveis". Por exemplo, se forem marcados dois horários não disponíveis
para um professor na Terça-Feira, então este professor não terá mais de 3 aulas
neste dia. Logo, o máximo de aulas informado para Terça-Feira poderá ser: 0, 1,
2 ou 3. Outro exemplo: Se um professor tiver um horário não disponível na
Quarta-Feira e for informado, para ele, o máximo de aulas neste dia como sendo
5, então, ao acionar o comando "Verificar Inconsistências nas Entradas de
Dados", na aba "Verificação de Dados", o programa exibirá uma mensagem de
acordo.

O comando "Verificar Inconsistências nas Entradas de Dados" deve ser


acionado sempre, após terminar o preenchimento dos dados ou alteração dos
mesmos, e tem a função de verificar os dados informados, para identificar
eventuais inconsistências ou contradições que podem inviabilizar a obtenção de
horários.

O comando "Salvar" permite criar (exportar) um arquivo com os dados,


para ser lido pelo "Prouesse2.jar", que é o responsável pela obtenção dos
horários. É possível também, existindo um arquivo já salvo, abri-lo (importá-lo)
pelo próprio "pag_config_prouesse1.html", para que alguns dados sejam
alterados. Muitas vezes, quando há muitos dados para preencher, é possível,
em qualquer ponto do preenchimento, salvar o que já foi preenchido (e até
mesmo, depois de salvar, sair do programa e, posteriormente, prosseguir a partir
de onde parou).

O "pag_config_prouesse1.html", por ser um arquivo de página (html),


salva somente na pasta "Downloads". O comando "Gerar Arquivo de
Configuração" na aba "Verificação de Dados" tem o mesmo efeito que "Salvar".

Não é possível alterar dado estando no Prouesse2.jar, o que pode ser


feito no "pag_config_prouesse1.html". A comunicação entre os programas se faz
sempre pelos comandos “importar” e “exportar” disponíveis.

No início da execução de "pag_config_prouesse1.html", ao clicar em


"Gerar Configuração", aparecem as 3 opções: "Gerar Novos Dados", "Restaurar
Dados" e "Exibir Horários do Prouesse". Já tratamos acima da primeira destas.
Vejamos as outras duas opções:

- Restaurar Dados: É utilizada para importar um arquivo de dados completo ou


semipreenchido, salvo anteriormente. Feito isto, é possível fazer alterações.

- Exibir Horários do Prouesse: É utilizada para importar um arquivo exportado


pelo Proueesse1.jar, contendo o resultado que foi obtido. Além de permitir a
visualização dos quadros de horários, possibilita também alterações, visando
obter um resultado mais satisfatório (por exemplo, a inclusão de horários não
disponíveis adicionais).

PARTE II: Instruções do Prouesse2.jar

SEÇÃO 1) INTRODUÇÃO

O Prouesse é um software para a obtenção de Horários Escolares com


as características de flexibilidade, ou seja, gera horários obedecendo à maioria
das condições desejadas. Uma vez entrados os dados, obtém soluções com
rapidez. Para utilizá-lo é preciso conhecer as instruções sobre a entrada de
dados e entender um pouco do processo de obtenção de resultados, sendo o
principal objetivo deste manual de instruções apresentar de maneira acessível
as informações e explicações que portanto se fazem necessárias.

O programa utiliza dados de entrada, como a relação das turmas de cada


prof., com a respectiva carga horária semanal (número de aulas por semana que
um prof. ministra em cada uma de suas turmas); para cada prof. e cada dia da
semana deve ser informado o correspondente máximo de aulas (número máximo
de aulas deste prof. que podem ser lançadas no dia considerado); para cada
prof., devem ser informados, dentre os 25 possíveis horários da semana, aqueles
horários em que o prof. em questão não pode lecionar aula (estes são os
chamados "horários não disponíveis (hnd)" do prof.); se por um lado o programa
tem a desvantagem de não colocar todos os dias de folga na forma como os
profs. gostariam (ou melhor, se a maioria dos profs. escolher os dias de folga,
não deixando a opção livre para o programa, então dificulta-se a obtenção dos
horários pelo programa), por outro lado, temos a possibilidade de limitar os dias
de trabalho dos profs., bastando para isto informar para cada prof. o número
máximo de dias com aulas (dias com obrigação de comparecer) durante a
semana, garantindo assim um mínimo de dias de folga.

Observe que deve ser informada ao programa a relação das turmas de


cada prof., ou seja, o programa recebe este tipo de informação fechada e não a
altera.

Todos esses dados de entrada são informados através do


pag_config_prouesse1.html, cuja utilização foi explicada na Parte I deste
manual.

Passamos a descrever as características dos horários gerados pelo


programa. O programa não lança 3 ou mais aulas de um prof. para uma mesma
turma, no mesmo dia, e quando lança duas aulas (para um prof., numa mesma
turma, num mesmo dia), estas aulas são sempre alocadas em horários
consecutivos (por exemplo, o segundo e o terceiro horários do dia) e são
denominadas aulas geminadas; quando um prof. ministra duas disciplinas para
uma mesma turma, as duas disciplinas devem ser consideradas como uma única
disciplina (ou seja, as cargas horárias semanais das duas disciplinas devem ser
somadas), permanecendo impossível lançar 3 ou mais aulas deste prof. para
esta turma no mesmo dia.
Se houver casos de profs. que não queiram aulas geminadas (duas aulas
num dia para a mesma turma), devem ser informados os profs. para os quais
isso acontece. Também podem ser informados os profs. que, ao contrário,
preferem que, para cada turma, haja pelo menos um par de aulas geminadas
(informação presente na aba “Professores e Turmas” de
pag_config_prouesse1.html).

O programa elabora horários para os dias de segunda-feira a sexta-feira,


portanto não pode ser utilizado numa escola com aulas aos Sábados. O
programa é aplicável somente em escolas nas quais o turno compõe-se de 5
horários de aulas por dia, para todas as turmas.

SEÇÃO 2) INSTRUÇÕES GERAIS DO PROGRAMA

Para executar o programa é necessário ter instalado na máquina o Java,


que pode ser obtido de: https://www.java.com/pt_BR/download/

Com o Java instalado, basta executar o arquivo binário Prouesse2.jar.

O botão PROCESSAR é utilizado para iniciar o processo de obtenção de


solução para o problema cujos dados foram informados: A informação dos dados
se faz através de um “browser” (navegador da internet), bastando acessar a
página pag_config_prouesse1.html (arquivo que deve ser fornecido juntamente
com o Prouesse2.jar).

SEÇÃO 3) AS FASES DO PROCESSO DE ELABORAÇÃO DE HORÁRIOS

Depois de inseridos os dados através do pag_config_prouesse1.html, é


possível fazer a verificação dos mesmos, que consiste numa série de
cruzamentos dos dados informados (são os chamados "testes de consistência"),
para verificar se há incompatibilidades entre os dados que impossibilitem a
existência de solução. Caso haja alguma incompatibilidade, é exibida uma lista
de erros de inconsistência. Vencida esta etapa, deve-se exportar os dados
através do pag_config_prouesse1.html, gerando um arquivo para ser lido pelo
Prouesse2.jar. A partir daí, o processo propriamente dito da elaboração de
horários deve ser realizado com Prouesse2.jar. Clicando no botão IMPORTAR,
pode-se selecionar o arquivo que foi salvo pelo primeiro programa, para ser lido.

A elaboração de horários se desenvolve em 3 etapas, desencadeadas


pelo acionamento do botão PROCESSAR, e que são descritas a seguir:

1ª Fase: Cada prof. tem uma lista de turmas. Denominaremos "curso" o


trabalho de um prof. em uma de suas turmas. Assim, para cada prof., e cada
uma das turmas deste prof., existe um "curso", que é a soma das aulas que o
prof. lecionará nesta turma, correspondendo à carga horária semanal da
disciplina que o prof. ministra para a turma. Esta palavra (curso) geralmente não
é empregada com este significado, mas, por não existir um termo, de uso
comum, para designar o que pretendemos, escolhemos esta.
Na 1ª Fase as aulas de cada curso, de cada prof., são distribuídas entre
os 5 dias úteis, ficando definida a quantidade de aulas de cada prof., de cada
turma deste prof., na segunda-feira, na terça-feira e assim sucessivamente.

Portanto, ao final da 1ª Fase, já se definiu, para cada dia, quais cursos


funcionarão e quantas aulas estariam previstas para os cursos. Este resultado
da 1ª Fase é denominado distribuição.

Na 2ª Fase, as aulas previstas para segunda-feira e terça-feira são


alocadas nos horários, finalizando a obtenção dos horários das aulas para estes
dois dias.

Na 3ª Fase, as aulas previstas para quarta, quinta e sexta-feira são


alocadas nos horários, finalizando a obtenção dos horários das aulas para estes
três dias.

Na 2ª Fase, para obtenção do resultado, o programa Prouesse1


geralmente precisa fazer a alteração da distribuição originalmente obtida na fase
anterior. Na 3ª Fase, também podem ser transferidas aulas de um dia para o
outro.

Conforme já dissemos, no caso de, num dia, serem duas aulas de um


curso, estas aulas são alocadas em horários consecutivos. Os quadros de
horários correspondentes ao resultado encontrado são exibidos na aba
RESULTADOS. Na aba DICAS, são apresentadas informações relevantes.

Nenhuma das 3 fases da elaboração dos horários tem garantia de


sucesso, e, para que se obtenha o resultado final, é preciso finalizar cada uma
com sucesso. Geralmente o programa interrompe a execução de uma fase se
ele ficou um tempo excessivo procurando finalizá-la, sem obter êxito. Neste caso,
o programa mostra na aba DICAS, uma indicação do que pode ser feito para que
se realize uma nova tentativa com mais chances de sucesso. Então, é preciso
retornar ao pag_config_prouesse1.html para modificar os dados, seguindo a
sugestão recebida (opção “Restaurar Dados” para as modificações).

As mesmas tabelas de resultados mostradas pelo Prouesse2.jar podem


ser examinadas no próprio pag_config_prouesse1.html (opção “Exibir Resultado
do Prouesse”).

SEÇÃO 4) GERENCIANDO HORÁRIOS NÃO DISPONÍVEIS

4.1) GRAVAÇÃO DE DISTRIBUIÇÃO

Ao final da 1ª Fase, obtém-se uma distribuição válida para toda a semana,


a qual é gravada automaticamente pelo programa, antes de prosseguir para a
próxima fase. Na próxima vez que o programa for usado para resolver um
problema, ou seja, quando o botão PROCESSAR for pressionado novamente, o
programa inicialmente faz uma verificação dos dados, para decidir se a
distribuição gravada pode ser aproveitada, eliminando a necessidade de
recomeçar pela 1ª Fase. Isto é útil numa situação em que o problema que é
passado ao programa tem poucas diferenças do problema da execução anterior.
Uma das verificações que mencionamos é testar se a distribuição disponível
respeita os máximos de aulas informados: A quantidade de aulas de cada prof.,
em cada dia, indicada pela distribuição, não deve ultrapassar o respectivo
máximo.

Quando, após pressionar o botão PROCESSAR e feita a verificação dos


dados de entrada, constata-se que a distribuição gravada pode ser aproveitada,
o programa entra diretamente na 2ª Fase, ao passo, que verificando-se que a
distribuição disponível não pode ser aproveitada, o programa emite uma
mensagem e recomeça pela 1ª Fase, para obter uma distribuição válida.

4.2) A TRIAGEM DOS HORÁRIOS NÃO DISPONÍVEIS NA 1ª FASE

A imposição de horários não disponíveis (hnd), por poucos que sejam,


tem um efeito dificultador considerável na elaboração de horários, dificultando a
obtenção de soluções, principalmente quando há vários horários não disponíveis
localizados num determinado horário de um determinado dia (ou seja, vários
profs. que não podem dar aula exatamente no mesmo horário). É uma boa
medida limitar os horários não disponíveis, isto é, evitar a imposição de todos os
horários não disponíveis desejáveis: infelizmente isto pode contrariar os anseios
dos profs., mas pode ser necessário, pelo efeito dificultador associado aos
horários não disponíveis já na 1ª Fase.

4.3) GERENCIANDO HORÁRIOS NÃO DISPONÍVEIS

Os máximos de aulas que são informados, sendo um valor para cada


prof., para cada dia, representando o máximo de aulas que este prof. pode ter
neste dia, têm um efeito muito grande na 1ª Fase (distribuição das aulas), devido
ao fato de que as aulas de cada prof. que estiverem sendo lançadas num dia,
por exemplo, 3ª-feira, devem ser somadas para que o total não ultrapasse o
máximo de aulas deste prof., neste dia. Já outro tipo de dados, os horários não
disponíveis (hnd), não interferem diretamente na 1ª Fase, porém cada horário
não disponível que é informado implica na redução do máximo de aulas do prof.
correspondente, no dia correspondente (por exemplo, se forem informados dois
horários não disponíveis do prof. 5 na terça-feira, então o máximo de aulas do
prof. 5 na terça-feira deve ser 3 ou menos de 3). Consequentemente, os horários
não disponíveis informados interferem indiretamente na 1ª Fase. A seguir
descrevemos a estratégia a ser seguida para que se obtenha um quadro de
horários respeitando a maioria dos horários não disponíveis desejáveis (Obs.: o
parágrafo a seguir destina-se especialmente ao usuário que já tem alguma
experiência com o programa e que quer aprender a fazer melhor uso do mesmo).

O primeiro passo é anotar em papel todos estes horários desejáveis, e


preencher a aba MÁXIMOS DE AULAS com as reduções provocadas por eles,
mas sem digitar os próprios horários não disponíveis (hnd), mantendo-os no
papel. A ideia é experimentar o programa, para verificar se ele obtém uma
distribuição. A seguir, passar pela 1ª Fase, como explicado anteriormente,
obtendo uma distribuição. Com certeza, a 2ª e 3ª Fases também serão bem
sucedidas, porque poucos (ou nenhum) horários não disponíveis foram
informados. A seguir, inserir uns poucos horários não disponíveis (daí a
necessidade de tê-los anotados) na página de configuração e executar
novamente a 2ª e 3ª Fases no Prouesse; se obtiver horários completos para
todos os dias, repetir a 2ª e 3ª Fases, inserindo mais alguns horários não
disponíveis para tentar nova solução. É claro que cada horário não disponível
que é inserido representa um acréscimo de dificuldade para a 2ª e 3ª Fases.
Observe também que, neste processo, somente a 2ª e 3ª Fases são repetidas,
não sendo preciso passar pela 1ª Fase, porque a distribuição que é utilizada nas
várias tentativas é a mesma e está gravada (ver Seção 4.1). Fica claro porque
foi importante anotar o conjunto de horários não disponíveis no início, antes da
1ª Fase. Este conjunto representa a meta a ser alcançada (ou aproximada). Se
na 2ª e 3ª Fases formos acrescentando horários não disponíveis gradativamente,
mas acrescentarmos somente a partir do conjunto que anotamos, a distribuição
que ficou registrada pelo programa poderá ser aproveitada, porque ela foi obtida
de modo a respeitar os máximos de aulas, que se procura manter inalterados.
Enfatizamos a necessidade de sempre retornar ao pag_config_prouesse1.html
para alterar os dados sempre que desejar iniciar uma nova execução (obtenção
de horários).

SEÇÃO 5) PROCURANDO ELIMINAR HORÁRIOS VAGOS

Frequentemente, examinando os horários de aulas prontos, verifica-se a


ocorrência de horários vagos para um ou outro prof., que são horários não
utilizados e que não se situam no início nem no término do turno, obrigando o
prof. a uma espera. Infelizmente, a inexistência completa de horários vagos é
impossível, mas algumas medidas podem ser tomadas para evitar a ocorrência
de 2 ou mais horários vagos no mesmo dia. Uma vez terminado o processo de
obtenção de horários, ao examinar-se os quadros de horários obtidos, se
verificarmos que houve muitos horários vagos para um prof. num determinado
dia, pode-se tentar uma outra solução, impondo-se horários não disponíveis
(hnd) no início ou término do turno. Ao entrar novamente no Prouesse2 e clicar
em PROCESSAR, somente a 2ª e 3ª Fases são executadas, já que
possivelmente a distribuição gravada (ver Seção 4.1) pode ser aproveitada. A
distribuição gravada não pode ser aproveitada se ela estiver fazendo com que
um prof. tenha um total de aulas num determinado dia maior que o
correspondente máximo de aulas informado; neste caso, ao clicar em
PROCESSAR, a elaboração de horários recomeça pela 1ª Fase. Para evitar isto,
ao inserir horários não disponíveis, deve-se observar o máximo destes que
podem ser inseridos, informado na aba “Horários não Disponíveis”.

SEÇÃO 6) SUMÁRIO
Para que o usuário do Prouesse possa obter resultados com o programa ou
melhorá-los, é preciso que ele esteja familiarizado com o programa e ciente de
como ele funciona, por isto faremos uma recapitulação das informações mais
importantes:

Ao final da 1ª Fase, as aulas de cada curso já estão distribuídas entre os


5 dias da semana, ou seja, já se definiu para cada dia quais cursos funcionarão
e quantas aulas estão previstas para os cursos. A distribuição que foi encontrada
é gravada pelo programa.

Na 2ª Fase, as aulas previstas para segunda-feira e terça-feira são


alocadas nos horários, finalizando a obtenção dos horários das aulas para estes
dias. Nesta fase a distribuição gravada é alterada, já que aulas podem ser
transferidas de um dia para o outro (entre segunda, terça e quarta-feira).

Na 3ª Fase, as aulas previstas para quarta, quinta e sexta-feira são


alocadas nos horários. Nesta fase a distribuição gravada é alterada, já que aulas
podem ser transferidas de um desses dias para o outro.

Somente os horários não disponíveis (hnd) de segunda-feira e terça-feira


podem afetar a 2ª Fase e somente os horários não disponíveis de quarta, quinta
e sexta-feira podem afetar a 3ª Fase.

As 3 fases são executadas pelo Prouesse2.jar, que é o programa


responsável pela solução do problema de horários. Quanto aos dados, eles são
informados através do pag_config_prouesse1.html. A comunicação entre os dois
programas se faz pela importação e exportação de arquivos, porém o usuário
deve acionar os comandos para salvar e abrir arquivos, tendo a liberdade de
escolher os nomes dos arquivos.

Uma boa estratégia é indicar os horários não disponíveis (hnd)


gradativamente, observando a sequência de prioridades, experimentando até
que ponto o Prouesse2 consegue solução para a maioria dos hnd desejáveis. É
possível fazer estas tentativas sem ter que passar pela 1ª Fase sempre. Para
isso, é preciso começar com máximos de aulas reduzidos. Para cada nova
tentativa, é preciso passar primeiro pelo pag_config_prouesse1.html, que
permite as alterações dos hnd informados.

Se, numa execução do Prouesse2.jar, o processamento não passou com


sucesso pela última fase, não obtendo o resultado esperado, não há nenhum
arquivo a ser exportado. O usuário não precisa clicar em EXPORTAR. O mesmo
se dá quando o usuário sai do Prouesse2 para retornar para
pag_config_prouesse1.html, sem, por algum motivo, precisar do resultado do
Prouesse2.

O que fazer quando o programa não obtém uma solução:


Importante estar ciente de que quanto mais restrições um problema tiver, maior
a dificuldade de se obter solução. Por exemplo, estabelecer que um professor
deverá ter 2 dias de folga, mas sem definir os dias de trabalho, restringe menos
do que estabelecer que os dias de trabalho serão terça, quarta e quinta-feira,
portanto diminui a dificuldade.

O programa pode falhar na 1ª, na 2ª ou na 3ª Fase do processo de obtenção de


horários. Quando a falha é na 1ª Fase, não foi obtida uma distribuição completa.
A probabilidade de se obter uma distribuição depende de alterações muito
pequenas nos dados, ou seja, se houve falha na obtenção de distribuição, umas
poucas alterações nos máximos de aulas por dias da semana de alguns
professores podem fazer com que a situação seja remediada. Podem ser feitas
várias tentativas, até que se obtenha sucesso na 1ª Fase. Estas alterações
devem ser feitas no programa pag_config_prouesse1.html. Se foram informadas
duas opções de máximos de aulas por dias da semana, podem ser feitas
tentativas alterando-se as opções selecionadas para alguns professores.

Se ocorreu falha na 2ª Fase, a saída é alterar as informações de horários não


disponíveis na segunda e/ou terça-feira, preferencialmente procurando evitar
muitos horários não disponíveis simultâneos (por exemplo, muitos no último
horário de terça-feira).

Se ocorreu falha na 3ª Fase, a solução pode ser alterar as informações de


horários não disponíveis na quarta, quinta e/ou sexta-feira, evitando muitos
horários não disponíveis simultâneos, ou simplesmente trocando horários não
disponíveis entre os professores (nem sempre é possível atender a todas as
solicitações de horários não disponíveis).

Se ocorreu falha na 2ª e na 3ª Fases, podem ser alteradas as informações de


horários não disponíveis em qualquer dia.

Horários para escolas com muitas turmas:

Um problema com muitas turmas é pesado para o programa. Uma estratégia que
pode ser tentada quando houver 14 turmas ou mais consiste em fazer uma
tentativa normal, considerando todas as turmas. Se não obtiver êxito, dividir as
turmas do turno em dois grupos; os horários de cada grupo são obtidos
separadamente. Para facilitar a solução do problema, procura-se evitar
professores que atuem em ambos os grupos, ou seja, o ideal seria que cada
professor ficasse num único grupo de turmas. Porém isso não é possível para
todos os professores, pois alguns devem ser designados para cobrir os quadros
nos dois grupos. Por exemplo, um professor de uma disciplina, com carga horária
semanal de uma aula, deverá atender a todas as turmas do turno. Para que seja
possível fazer o horário de cada grupo de turmas separadamente, primeiramente
deve-se definir os dias e horários nos quais esses professores (os que atuam
nos dois grupos) trabalharão em cada grupo. Depois, ao se fazer o horário de
aulas de um dos grupos de turmas, os horários nos quais esses professores não
podem estar presentes (por estarem alocados no outro grupo) são informados
como horários não disponíveis (se todos os horários de um dia estiverem
indisponíveis, é preferível estabelecer zero como sendo o máximo de aulas do
professor, no dia).

Você também pode gostar