Resumos
A programação da grade de horários em escolas de ensino fundamental e médio, também conhecido como problema turma-professor (PTP), consiste em fixar uma seqüência de agendamentos de aulas envolvendo professores e grupos de estudantes (que possuem um mesmo currículo de disciplinas) em um período pré-determinado (tipicamente uma semana), sujeito a requisitos didáticos, físicos e organizacionais. É um problema combinatorial NP-completo e é geralmente resolvido através da aplicação de procedimentos heurísticos. Neste trabalho, apresentamos um procedimento de Busca Tabu associado a uma Busca Local Aleatória e duas formulações matemáticas. O procedimento proposto foi experimentado com sucesso em escolas públicas brasileiras.
agendamento em escolas; meta-heurísticas; otimização combinatória
The school timetabling problem (STP) consists in fixing a sequence of meetings between teachers and students in a prefixed period of time (typically a week), satisfying organizational, pedagogical and personal constraints. STP is a NP-complete problem and is usually tackled using heuristic methods. In this work we considered typical characteristics of Brazilian public schools. We presented a Tabu Search procedure associated with a Randomized Local Search to solve this problem and two mathematical formulations. The implementation of the procedure has been successfully experimented in some Brazilian public schools.
school timetabling; meta-heuristics; combinatorial optimization
Programação da grade de horário em escolas de ensino fundamental e médio
Vânia Nobre de SousaI; Antônio Carlos MorettiII,* * Corresponding author / autor para quem as correspondências devem ser encaminhadas ; Valéria Abrão de PodestáIII
IUniSoma Computação Ltda., Campinas - SP, vania@unisoma.com.br
IIIMECC, Universidade Estadual de Campinas (UNICAMP), Campinas - SP - Brasil, moretti@ime.unicamp.br
IIIIMECC, Universidade Estadual de Campinas (UNICAMP), Campinas - SP - Brasil, valeria@ime.unicamp.br
RESUMO
A programação da grade de horários em escolas de ensino fundamental e médio, também conhecido como problema turma-professor (PTP), consiste em fixar uma seqüência de agendamentos de aulas envolvendo professores e grupos de estudantes (que possuem um mesmo currículo de disciplinas) em um período pré-determinado (tipicamente uma semana), sujeito a requisitos didáticos, físicos e organizacionais. É um problema combinatorial NP-completo e é geralmente resolvido através da aplicação de procedimentos heurísticos. Neste trabalho, apresentamos um procedimento de Busca Tabu associado a uma Busca Local Aleatória e duas formulações matemáticas. O procedimento proposto foi experimentado com sucesso em escolas públicas brasileiras.
Palavras-chave: agendamento em escolas; meta-heurísticas; otimização combinatória.
ABSTRACT
The school timetabling problem (STP) consists in fixing a sequence of meetings between teachers and students in a prefixed period of time (typically a week), satisfying organizational, pedagogical and personal constraints. STP is a NP-complete problem and is usually tackled using heuristic methods. In this work we considered typical characteristics of Brazilian public schools. We presented a Tabu Search procedure associated with a Randomized Local Search to solve this problem and two mathematical formulations. The implementation of the procedure has been successfully experimented in some Brazilian public schools.
Keywords: school timetabling; meta-heuristics; combinatorial optimization.
1. Introdução
A programação da grade de horários em escolas de ensino fundamental e médio, também conhecido como problema turma-professor (PTP), consiste em fixar uma seqüência de agendamentos de aulas envolvendo professores e grupos de estudantes (que possuem um mesmo currículo de disciplinas) em um período pré-determinado (tipicamente uma semana). Esta seqüência de agendamentos deve satisfazer um conjunto de requisitos didáticos, físicos e organizacionais.
Há uma infinidade de variações do PTP. Isto se deve ao fato de que em países, regiões de um país, ou até mesmo, instituições de ensino de uma mesma região adotam critérios educacionais diferenciados entre si. Devido a esta característica, o PTP é um problema de difícil generalização. Resolvê-lo manualmente é uma tarefa difícil e que pode durar dias ou até semanas para sua conclusão, podendo gerar resultados insatisfatórios com relação a diversos requisitos. Muitas vezes, professores reclamam por um mínimo de aulas duplas para algumas disciplinas e, principalmente, por uma grade de horário com menos períodos vagos entre uma aula e outra. Além disso, dependendo do número de grupos de estudantes e professores envolvidos no problema, ele se torna manualmente intratável. Por estes motivos, uma atenção considerável tem sido devotada à solução automática do PTP ao longo dos últimos anos. Começando com o trabalho de Gotlieb (1963), muitos trabalhos para a resolução do PTP já foram realizados, por exemplo, Shaerf (1996), Colorni et al. (1998), etc.
Por ser um problema NP-completo, isto é, não se conhece algoritmos polinomiais para resolvê-lo na maioria das situações em que se apresenta (Even et al., 1976), a tratabilidade do PTP por técnicas exatas de otimização demanda muito tempo e esforço computacional. Então, muitos procedimentos heurísticos têm sido considerados para se obter uma solução viável satisfatória em um tempo computacional razoável. Além disso, outra vantagem das técnicas de busca local é que elas iniciam a busca de uma grade de horário inicial, permitindo a manutenção de uma grade de horário. Por exemplo, se um professor é substituído por outro, requisitos relacionados com a satisfação dos professores devem ser atualizados. Utilizando técnicas de busca local, a grade de horário anterior pode ser utilizada como solução inicial para a obtenção de uma nova solução. Tal processo geralmente obtém uma boa solução para o novo problema em um tempo menor.
Dentre as abordagens e técnicas de solução de um PTP, podem ser destacadas: heurísticas diretas (Junginger, 1986), redução ao problema de coloração de um grafo (Neufeld & Tartar, 1974; de Werra, 1997), fluxo em redes (Ostermann & de Werra, 1983) e as meta-heurísticas Busca Tabu (Costa, 1994; Schaerf, 1996), Simulated Annealing (Abramson, 1991), Algoritmos Genéticos (Colorni et al., 1998; Filho et al., 2001), entre outras.
Observando as vantagens mencionadas ao se utilizar técnicas de busca local para resolver o PTP, desenvolvemos o procedimento heurístico BLA+BT envolvendo uma Busca Local e uma Busca Tabu. Também apresentamos duas formulações matemáticas para o problema PTP encontrado em escolas públicas estaduais de ensino fundamental e médio e comparamos as soluções obtidas através dos métodos propostos.
Descrevemos na Seção 2 as características do problema abordado. Na Seção 3 apresentamos dois modelos matemáticos. Já a metodologia aplicada na resolução do problema encontra-se detalhada na Seção 4. Os resultados computacionais e comparações entre os métodos aplicados para duas escolas estaduais de Campinas (São Paulo) estão descritos na Seção 5. E, finalmente, na Seção 6 apresentamos nossas conclusões e perspectivas de trabalhos futuros.
2. Descrição do Problema
O problema turma-professor (PTP) abordado trata do agendamento semanal do encontro entre professores e turmas. Chamamos este encontro de aula. A grade de horário de um turno (manhã, tarde ou noite) destas instituições é constituída por ND dias de aula por semana (geralmente de segunda à sexta-feira) e cada dia d possuindo NHd horários de aula, o que define um total de horários de aula por semana em um turno. Chamamos de um horário de aula h a unidade de tempo de uma aula. Há um conjunto P de professores que lecionam para um conjunto T de turmas, onde uma turma constitui um conjunto disjunto de alunos que possuem um mesmo currículo de disciplinas. As aulas para uma turma t ocorrem em uma única sala. Desta forma, estas salas são pré-determinadas no início de cada ano pela coordenadoria e, portanto, a associação turma-sala não precisa ser considerada no problema de agendamento das aulas. A associação dos professores às turmas e a carga didática do professor também são pré-definidos pela coordenadoria e são informados pela matriz de requerimentos RP×T , onde cada entrada Rpt indica o número de aulas que o professor p tem que lecionar para turma t.
As turmas estão sempre disponíveis em seus turnos de aula - uma turma possui suas aulas em somente um turno - e precisam ter suas grades de horário completamente preenchidas, enquanto que os professores precisam indicar os horários nos quais eles podem ou não lecionar (estão disponíveis ou não).
Os professores podem lecionar mais de uma disciplina por turno. Contudo, uma turma t tem todas as aulas de uma determinada disciplina ministradas por um único professor p. Por exemplo, não pode haver mais de um professor lecionando Matemática para uma mesma turma t.
As aulas de Educação Física (EF) devem ocorrer em quadras de esporte. As escolas possuem um número limitado NQ de quadras de esporte e, quando há mais de NQ aulas desta disciplina em um determinado horário de aula, estas aulas excedentes são ministradas em sala de aula como aulas teóricas.
Deste modo, este problema deve satisfazer as seguintes restrições essenciais:
1. Cada professor deve dar o número correto de aulas que lhe é requerido;
2. A cada turma deve ser associado somente um professor por horário de aula;
3. A cada professor deve ser associada, no máximo, uma turma por horário de aula, respeitando-se a disponibilidade deste professor;
4. Por motivos pedagógicos, deve haver no máximo duas aulas de um mesmo professor para uma mesma turma no período de um dia.
Também se deseja que a grade de horários apresente as seguintes características não-essenciais:
5. Os dias de aulas do professor p para turma t devem ser alternados, ou seja, se no dia d a turma t tem aula do professor p então o próximo dia não deve ter;
6. Evitar "janelas" (horários de aula sem atividade entre uma aula e outra) na grade horária dos professores, no período de um dia;
7. Ter no máximo NQ professores de Educação Física por horário de aula, onde NQ é o número de quadras de esporte que a escola possui;
8. Evitar que duas aulas de uma mesma disciplina para uma turma t no dia d sejam separadas por aulas de outras disciplinas;
9. Atender um número mínimo de aulas duplas requeridas pelo professor p para turma t.
10. Tornar a grade do professor a mais compacta possível, ou seja, fazer com que o professor tenha que comparecer na escola o menor número de dias possível.
3. Formulação Matemática
Nesta seção apresentamos duas modelagens matemáticas que consideram o agendamento das aulas de um único turno. Uma é baseada em variáveis binárias cujos valores determinam o agendamento de uma aula unitária e a outra formulação, no agendamento de aulas duplas.
Temos um agendamento de aula dupla de um professor p para uma turma t quando há duas aulas agendadas em horários de aula consecutivos em um mesmo dia da semana e, um agendamento de aula unitária, quando há somente uma. A seguir apresentamos os parâmetros utilizados nos dois modelos:
P: conjunto com NP = |P| professores.
EF: conjunto de todos os professores de Educação Física.
T: conjunto com NT = |T| turmas.
Htot : conjunto de todos os horários de aula da semana.
Hd : conjunto de todos os horários de aula de um dia d da semana.
NHd : número de horários de aula em um dia d.
D: conjunto de todos os dias de aula por semana.
ND: número de dias de aula por semana.
NQ: número de quadras de esporte.
Wpdh: não-preferência do professor p por horário de aula h do dia d.
Rpt: número de aulas para a turma t que o professor p tem que atender.
DISPpdh: disponibilidade do professor p no horário de aula h do dia d, onde DISPpdh = 1 se o professor está disponível para lecionar e DISPpdh = 0 caso contrário.
Dpt: número mínimo de aulas duplas do professor p para turma t.
3.1 Modelo Matemático (1)
O modelo matemático apresentado nesta seção é baseado no agendamento de aulas unitárias, dado pela variável binária x, onde xptdh = 1 quando um professor p leciona para uma turma t no horário de aula h do dia da semana d e xptdh = 0 caso contrário.
Considere as seguintes variáveis:
zptd: 1 se o professor p dá aula para turma t no dia da semana d, 0 caso contrário;
wptdh(h+1) : 1 se o professor p dá aula para a turma t nos horários de aula h e h+1 do dia d, 0 caso contrário;
ypd: 1 se o professor p tem aula agendada no dia d, 0 caso contrário;
b2ptd : 1 se houver mais de uma aula (p,t) no dia da semana d e que não são consecutivas, 0 caso contrário;
upd : h se h for o último horário de aula agendado para o professor p no dia d, 0 caso contrário;
vpd : h se h for o horário de aula da primeira aula agendada para o professor p no dia d, 0 caso contrário;
b1pd : n se n < NHd - 2 for o número de aulas vagas entre duas aulas lecionadas por p em d e 0 se não houver aulas vagas;
D1dh >0 : número de vezes em que mais de NQ aulas de Educação Física são agendados para o mesmo horário de aula h do dia d;
D2ptd >0 : número de vezes em que o requerimento de aulas em dias alternados para o par (p,t) não é satisfeito;
D3pt >0 : número de vezes em que o requerimento de aulas duplas para um par (p,t) não é atendido.
3.1.1 Restrições
A seguir descrevemos como modelamos cada um dos requisitos apresentados na Seção 2.
1. Cada professor
p
deve ministrar um dado número de aulas semanais para uma dada turma
t
:
2. Devemos ter em cada horário
h
do dia da semana
d
um único professor
p
associado a uma turma
t
:
3. Devemos ter em cada horário de aula
h
do dia da semana
d
uma única turma
t
associada a um professor
p
, se este professor estiver disponível:
4. Devem ser agendadas no máximo duas aulas de um mesmo professor
p
para uma mesma turma
t
em um dia da semana
d
:
5. Para introduzirmos a preferência de se ter no máximo
NQ
professores de Educação Física (EF) por horário de aula, permitindo que todas as aulas de EF sejam ministradas na quadra de esportes, avaliamos as restrições:
6. Para verificarmos se a turma
t
tem aula do professor
p
no dia
d
avaliamos:
7. Avaliamos as seguintes restrições para verificarmos quando os dias de ocorrência das aulas (
p,t
) não são alternados:
8. Para avaliarmos o número de vezes em que a restrição de se obter um determinado número de aulas duplas para o par (
p,t
) é violada, verificamos a seguinte restrição não-linear (Souza, 2000):
Porém, esta restrição pode ser linearizada pelo conjunto de restrições:
9. Avaliamos o último horário de aula de um professor
p
no dia
d
por:
10. Verificamos se um professor
p
leciona em um dia
d
por:
11. O número de aulas vagas entre duas aulas na grade de um professor
p
é dado por (Souza, 2000):
12. Avaliamos o primeiro horário de aula de um professor
p
no dia
d
por:
13. Podemos verificar se existe duas ou mais aulas para o par (
p,t
) em
d
que são separadas por aulas de outros professores pela restrição não-linear:
Mas, como já visto anteriormente, pode ser linearizada por restrições do tipo (10), (11) e (12) em conjunto com:
3.1.2 Função Objetivo
Seja Q uma dada grade de horários cujas características obedecem às restrições descritas na Seção 3.1.1. A função objetivo pode ser descrita de uma forma hierarquizada como,
onde αi é o peso que indica a importância de cada parcela As parcelas são explicadas a seguir:
1. Consideramos a não-preferência dos professores pelos horários de aula disponíveis através da parcela:
2. O número de vezes que as preferências expressas em (5) são violadas é dado por:
3. O número de vezes em que o professor
p
leciona
t
em dias consecutivos é verificado por:
4. O número de dias que o professor
p
deve comparecer na escola para lecionar é dado por:
5. A diferença entre o número mínimo de aulas duplas requisitadas e as que realmente foram agendadas é dado por:
6. O número de aulas vagas entre duas aulas nas grades de cada professor
p
é dado por:
7. O número de dias em que há mais de uma aula (
p,t
) agendada em
d
e não são consecutivas:
3.2 Modelo Matemático (2)
O modelo matemático apresentado nesta seção é baseado no agendamento de aulas unitárias e duplas (duas aulas para um par (p,t) que ocorrem em horários de aula consecutivos, em um mesmo dia). Várias restrições são diretamente satisfeitas admitindo-se somente um agendamento unitário ou um agendamento duplo por dia, como a de se obter um número mínimo de aulas duplas, e a modelagem de outras pode ser verificada com maior facilidade, diminuindo o número de variáveis auxiliares.
Considere as seguintes variáveis:
xptdh : 1 se o professor p dá aula dupla para a turma t iniciando no horário de aula h do dia d, 0 caso contrário;
yptdh : 1 se o professor p dá aula simples (unitária) para turma t no horário de aula h do dia d, 0 caso contrário;
upd: h se h for o último horário de aula do professor p no dia d e 0 caso contrário;
vpd: h se h for o horário de aula da primeira aula agendada para o professor p no dia d,0 caso contrário;
zpd : 1 se o professor p tem aula agendada no dia d, 0 caso contrário;
bpd: n se n < NHd - 2 for o número de horários de aula sem aula agendada entre duas aulas lecionadas por p em d, 0 se não houver aulas vagas;
D1dh> 0 : número de vezes em que mais de NQ aulas de Educação Física são agendadas para o mesmo horário de aula h do dia d;
D2ptd > 0 : número de vezes em que o requerimento de aulas em dias alternados para o par (p,t) não é satisfeito.
Na próxima seção mostramos a modelagem matemática.
3.2.1 Restrições
Considere o parâmetro abaixo:
Spt = Rpt - 2Dpt : número de aulas simples (unitárias).
Mostramos a seguir como modelamos cada uma das características consideradas:
1. Cada professor
p
deve ministrar um dado número de aulas semanais para uma dada turma
t
:
2. Devemos ter em cada horário de aula
h
do dia da semana
d
um único professor
p
associado a uma turma
t
:
3. Devemos ter em cada horário de aula
h
do dia da semana
d
uma única turma
t
associada a um professor
p
:
4. Devem ser agendadas no máximo duas aulas de um mesmo professor
p
para uma mesma turma
t
em um dia da semana
d
;
5. Para introduzirmos a preferência de se ter no máximo
NQ
professores de Educação Física (EF) por horário de aula, permitindo que todas as aulas de EF sejam ministradas na quadra de esportes, avaliamos as restrições:
6. Para satisfazer, o máximo possível, a preferência de se alternar os dias de aula de um mesmo professor
p
para uma determinada turma
t
, consideramos:
7. Avaliamos
zpd
através das restrições:
onde M é um número maior ou igual que NHd.
8. Avaliamos upd através das restrições:
9. Avaliamos
vpd
através das restrições:
10. O número de aulas vagas entre duas aulas lecionadas para um professor
p
no dia
d
é dado por:
3.2.2 Função Objetivo
Seja Q uma dada grade de horários cujas características obedecem às restrições descritas na Seção 3.2.1. A função objetivo pode ser descrita de uma forma hierarquizada como,
onde βi é o peso que indica a importância de cada parcela As parcelas são explicadas a seguir:
1. Consideramos a não-preferência dos professores pelos horários de aula disponíveis através da parcela:
2. O número de vezes que as preferências expressadas em (38), (39) e (40) são violadas é dado por:
3. O número de vezes que as preferências expressadas em (41) são violadas é dado por:
4. O número total de janelas nas grades de horário dos professores é dado por:
5. A soma do número de dias que cada professor trabalha na instituição é dada por:
4. Metodologia usada na resolução do problema
A utilização de técnicas heurísticas para tratar problemas de geração de grades de horário é justificada considerando-se que este é um problema NP-completo, o qual seria resolvido por métodos exatos de otimização em um tempo de processamento computacional razoável somente para problemas pequenos, ou seja com um número pequeno de professores, turmas e horários de aula (por exemplo, 3 turmas, 14 professores e 4 horários de aula por dia). Além disso, as técnicas de busca local iniciam o processo de busca de uma grade de horário inicial, permitindo a manutenção de uma grade de horário.
Assim sendo, apresentamos nesta seção os procedimentos heurísticos que foram aplicados para resolver o problema turma-professor com as características citadas na Seção 2.
4.1 Busca Local Aleatória e Busca Tabu
As técnicas de Busca Local são baseadas na noção de vizinhança. Considere um problema de otimização, onde S é seu espaço de busca e f sua função objetivo a ser minimizada. A função N, que depende da estrutura do problema, associa a cada solução factível s S sua vizinhança . Cada solução s'N(s) é chamada de vizinha de s e é alcançada de s através de um movimento.
De forma geral, uma técnica de busca local parte de uma solução inicial s0 e pesquisa o espaço de busca, avaliando soluções vizinhas.
Dentre as técnicas de busca local, temos o Método de Descida. Neste método, a cada iteração, analisa-se toda a vizinhança N(s) de uma solução s e escolhe-se a melhor solução s'N(s) como candidata para a próxima iteração. A solução s' tem a sua vizinhança pesquisada na próxima iteração se . Assim sendo, o método pára ao ser encontrado um mínimo local s * , ou seja para todo sN(s*). Por outro lado, no procedimento Busca Local Aleatória (BLA), analisa-se uma vizinhança gerada aleatoriamente. Se em não for encontrada nenhuma solução candidata s ' , gera-se uma outra vizinhança de s. O procedimento pára após um determinado número de iterações sem melhora do valor da função objetivo.
No método de Busca Tabu, por sua vez, analisa-se uma vizinhança e escolhe-se a solução s'V(s) que possui menor valor de função objetivo para ter sua vizinhança explorada na próxima iteração, mesmo que este valor seja pior que o melhor encontrado até o momento. Para a prevenção da ocorrência de ciclos, movimentos feitos recentemente são proibidos por um número determinado de iterações. Estes movimentos proibidos compõem a chamada lista tabu. Se em alguma iteração for analisado um movimento que está proibido (for tabu) e que fornece melhoria no valor de função objetivo, ele pode ser realizado se satisfazer um critério de aspiração. Ou seja, considerando s' a solução obtida de s através do movimento tabu m , se então s' pode ser aceita mesmo que m esteja na lista tabu. Maiores detalhes do método de Busca Tabu podem ser encontrados em Glover et al. (1997).
4.2 Representação de uma grade de horário
Uma grade de horário de professores é representada como uma matriz , onde NP (número de professores) e NHtot (número total de horários de aula em um turno). Cada linha p desta matriz representa o agendamento semanal do professor p . Cada elemento qph = {- 1,0,1,2,..., NT } indica a atividade do professor p no horário de aula h , de forma que qph igual a:
-1: se o professor p não pode ter aula agendada no horário de aula h ;
0: se o horário de aula estiver disponível para agendamento;
t {1,..., NT } : se o professor p foi agendado para dar aula para a turma t no horário de aula h.
Os horários de aula são representados pela seqüência . Considere NHd como sendo constante para todos os dias d da semana, sem perda de generalidade. Se tivermos NHd horários de aula por dia da semana, então representamos a seqüência de horários de aula no primeiro dia por , no segundo por , e assim até o último dia da semana. Então, a seqüência de horários de um dia d da semana é representada por
4.3 Estrutura e exploração da vizinhança
Um movimento simples consiste na troca de dois valores distintos e não negativos de uma dada linha de Q. Tal movimento é identificado por m =(p,hi, hj) , onde hi e hj representam os horários de aula nos quais as atividades e do professor p serão trocadas, sendo Consideramos i < j, para facilitar a aplicação da lista tabu.
Seja a aplicação de um movimento simples m à matriz . Desta forma, a vizinhança N() é composta de todas as grades de horário , factíveis ou não, tal que A cardinalidade de N() é majorada por
Considere as seguintes definições:
Definição 4.1. Um horário de aula h possui sobreposição de professores com relação a uma aula (p,t) quando existir um ou mais professores agendados para ensinar a turma t neste mesmo horário.
Definição 4.2. Um movimento simples consiste na troca de dois valores distintos e não negativos de uma dada linha p da matriz , sendo identificado por ms=(p, hi, hj) , i < j.
Definição 4.3. Seja hi um horário de aula que possui sobreposição de professores com relação a uma aula (p,t). Um movimento simples para i < k é um movimento reparador-1 se a turma t não estiver envolvida em nenhuma aula agendada em hk.
Definição 4.4. Seja hi um horário de aula que possui sobreposição de professores com relação a uma aula (p,t). Seja o conjunto que contém estes professores. Um movimento simples para é considerado um movimento reparador-2 se e a turma t não está envolvida em nenhuma aula agendada em hk.
Devido à representação utilizada temos que, ao realizarmos um movimento simples, podemos estar alocando mais de um professor para uma mesma turma em um mesmo horário de aula, violando a restrição essencial 2 (ver Seção 2). Então, com o objetivo de reparar estas infactibilidades, realizamos os movimentos reparadores. A aplicação destes movimentos nos procedimentos utilizados está descrita com mais detalhes nas seções seguintes.
4.4 Função objetivo
A função objetivo de uma grade de horário é calculada pela soma de componentes que calculam a diferença entre esta grade e a grade de horário que satisfaz todos os requisitos (1) até (10), como visto na Seção 2. Cada componente i é multiplicada por um peso Assim, a função objetivo de uma grade de horário é da forma:
Estes pesos refletem a importância de cada uma das componentes de . Como é um problema de minimização, quanto maior for o valor de γi , maior a importância do requisito medido pela componente i . Desta forma, possui uma estrutura hierarquizada, onde para as componentes que avaliam as restrições essenciais o peso é muito maior do que para as demais.
A seguir, descrevemos como cada uma das componentes consideradas foi avaliada:
: número de vezes que dois ou mais professores ensinam uma mesma turma em um mesmo horário de aula somado ao número de vezes que não foi associado nenhum professor a uma turma;
número de aulas vagas entre uma aula lecionada e outra na grade de horário de um dia dos professores (ver Figura 2, aulas vagas em horários h2 e h3 );
excedente de aulas de um professor p para uma turma t em um dia da semana, para todos os professores (em nosso caso, quando excede Nmax = 2, conforme Figura 3);
diferença entre o número de aulas duplas requisitadas dos professores para as turmas e as que realmente foram agendadas;
número de aulas de Educação Física que superam o número de quadras de esporte NQ para cada horário de aula;
soma das preferências dos professores pelos horários de aula que possuem aula agendada;
número de vezes em que o requerimento didático de alternar os dias de aula para o par (p,t) não é obedecido;
número de vezes que há mais de uma aula do professor p para a turma t em um mesmo dia da semana e não são consecutivas, ou seja, há aulas de outras disciplinas separando-as (ver Figura 4);
número de dias nos quais o professor tem pelo menos uma aula agendada.
Geralmente, consideramos os pesos relacionados com infactibilidades sendo maiores que os demais. Assim sendo Observe que, para uma solução viável temos A componente γ2 é a mais importante das restrições nãoessenciais. Os professores ficam insatisfeitos com horários sem atividade entre uma aula e outra porque, geralmente, eles têm que permanecer na escola e não ganham financeiramente por esse tempo inativo.
4.5 Solução inicial
A solução inicial foi gerada através de um método de agendamento construtivo parcialmente guloso. Primeiramente, determinamos o grau de urgência θp de agendamento para cada professor p considerando o número de aulas de sua carga didática pelo número de horários de aula em que este professor e as turmas que devem ser ensinadas por ele estão disponíveis para agendamento. Assim sendo, temos que:
onde Rp×t é o número de aulas de um professor p para uma turma t e Ndisp é o número total de alocações (p,h) nas quais as aulas podem ser agendadas sem violar a restrição essencial 2. Desta forma, escolhemos o professor p que possui θp com maior valor para ter suas aulas agendadas. A cada passo todas as aulas (p,t) envolvendo o professor p escolhido são agendadas e o valor de Ndisp é atualizado para todos os professores que ainda não foram agendados. Após a escolha do professor, escolhemos aleatoriamente as aulas (p,t) para serem alocadas. Para alocarmos uma aula (p,t), escolhemos um horário de aula de forma que não haja, a princípio, nenhuma violação às restrições essenciais 2 e 4. Caso tal horário não seja encontrado, admitimos violação à restrição 4. Se mesmo assim não conseguirmos alocar esta aula, admitimos violação à restrição 2. Neste último caso, com o objetivo de diminuir a infactibilidade com relação à restrição 2, realizamos o movimento reparador-1 ou onde hi é um horário de aula ao qual a turma t ainda não foi associada. Se a turma ti que estava agendada em hi antes do movimento já estiver associada a alguma aula em h, realizamos o movimento reparador-2 com relação a esta aula, , ou
4.6 Aplicação da metodologia proposta
O procedimento Busca Local Aleatória (BLA) parte de uma solução inicial , utilizando a representação detalhada na Seção 4.2, guiando a busca pela função objetivo como na Seção 4.4. A cada iteração, uma vizinhança construída aleatoriamente - onde é a melhor grade de horário encontrada até o momento - é explorada e, se a melhor solução encontrada nesta vizinhança possuir um valor de função , esta passará a ser a nova solução a ter sua vizinhança pesquisada. Senão, construímos uma nova vizinhança aleatória e procedemos da mesma forma. O método pára após um determinado número de iterações sem melhora do valor da função objetivo.
Um vizinho de é obtido da seguinte forma:
1. Para um professor escolhemos aleatoriamente um horário de aula e um horário de aula , onde e
2. se o movimento simples m 1 = (p,h i, hj) estiver definido, realizamos este movimento;
3. se ao realizarmos esse movimento encontramos sobreposição de professores com relação à aula (p,tj) em hi, executamos o movimento reparador-2 tal que não está agendada em hi;
4. se encontramos sobreposição de professores com relação à aula (p,ti) em hj, executamos o movimento reparador-2 tal que não está agendada em hj.
Ao realizarmos esses quatro passos para todos os professores , obtemos uma vizinhança constituída de, no máximo, |P| vizinhos.
Para a aplicação da Busca Tabu, utilizamos a representação detalhada na Seção 4.2 e a função objetivo como na Seção 4.4. A vizinhança explorada a cada iteração é toda a vizinhança , a qual é composta de todos os vizinhos de gerados através de movimentos simples, como definido na Seção 4.3.
Foi utilizada uma lista tabu sistematicamente dinâmica, ou seja, o número de iterações que um movimento m deve permanecer tabu, Itabu (m), é variável e escolhido de forma sistemática. Seja Tmin e Tmax os valores mínimo e máximo de Itabu (m), para todo movimento m. Construímos uma seqüência decrescente de números inteiros entre Tmin e Tmax, A seqüência s é utilizada para determinarmos o valor do número de iterações tabu do movimento atual m, sendo repetida ao longo do processo de busca. Se na iteração k for escolhido o elemento si , então na iteração k +1 será escolhido si+1, se este não for o último elemento da seqüência; se si+1 for o último elemento, então a seqüência será repetida novamente e será selecionado o elemento s1 . Desse modo, os valores menores de permitem a exploração da vizinhança da solução atual próximo de um ótimo local, intensificando a busca. Por outro lado, os valores maiores podem ajudar a superar ótimos locais, permitindo uma diversificação na busca.
Como a lista tabu pode ser muito restritiva, utilizamos um critério de aspiração que é acionado quando obtemos uma solução melhor do que a melhor solução obtida até o momento . Assim sendo, mesmo que o movimento m que gerou seja tabu, poderá ser executado se satisfazer este critério. Obtida uma solução inicial gerada de forma construtiva ou de grades anteriores, a Busca Local Aleatória (BLA) inicia-se e continua até alcançar um número de iterações sem melhora ou até alcançar um número máximo de iterações. A partir de então, a Busca Tabu (BT) inicia-se com a melhor solução obtida pelo BLA e continua até que alcance um número máximo de iterações sem melhora ou até alcançar um número máximo de iterações.
O processo BLA+BT é repetido iniciando sempre da melhor solução obtida pelo ciclo anterior e pára quando esta solução não é melhorada por um número máximo de ciclos sem melhora.
Caso a solução encontrada não seja viável, as componentes f1 e f3 da função objetivo indicarão a quantidade de infactibilidades presentes nela. Dessa forma, identificam-se quais os professores, turmas e horários de aula que estão em conflito, para uma possível negociação.
A BLA foi usada por dois objetivos diferentes. O primeiro objetivo consiste em gerar uma solução inicial para a BT. A BLA é um procedimento rápido para melhoria da solução inicial construtiva, gerando uma solução inicial para a BT com poucas ou nenhuma violação às restrições essenciais. Quando a BT parte da solução inicial construtiva consome um tempo computacional maior para alcançar uma solução factível (que não contenha violações das restrições (2) e (4)). O segundo objetivo é o de direcionar a busca para regiões ainda não pesquisadas. Após a BT não conseguir melhorar o valor da função objetivo por um determinado número de iterações, iniciamos a BLA com a melhor solução obtida pela BT. Dessa forma, como a BLA utiliza movimentos reparadores, a solução pode ser melhorada e pode ter sua estrutura modificada de tal modo que a BT reinicie em uma direção diferente.
5. Testes computacionais
Nesta seção estão descritos testes computacionais que foram realizados com a aplicação da metodologia apresentada na Seção 4 utilizando dados dos três turnos de duas escolas estaduais em Campinas, São Paulo. Também apresentamos resultados obtidos através das formulações matemáticas apresentadas na Seção 3. E, finalmente, na Seção 5.3 comparamos os procedimentos aplicados.
5.1 Escola Estadual Barão Geraldo de Rezende
Situada no distrito de Barão Geraldo, em Campinas-SP, a Escola Estadual Barão Geraldo de Rezende, ou simplesmente Escola Rezende, possuía no ano de 2005 um número total de 45 professores e 27 turmas distribuídas em 3 turnos, e, no ano de 2006, 41 professores e 25 turmas conforme mostra a Tabela 1.
Havia professores que lecionavam em mais de um turno, porém todas as turmas possuíam suas aulas em um único turno. Nos turnos da manhã e da tarde, as turmas tinham seis aulas por dia e à noite quatro. As aulas aconteciam de segunda à sexta-feira, somando um total de 30 aulas por semana para os turnos da manhã e da tarde e 20 para o turno da noite.
5.2 Escola Estadual Professor Hilton Federici
Situada no distrito de Barão Geraldo, em Campinas-SP, a Escola Estadual Professor Hilton Federici, ou simplesmente Escola Hilton Federici, possuía no ano de 2005 turmas distribuídas em 3 turnos, conforme mostra a Tabela 2.
Também havia professores que lecionavam em mais de um turno, porém, todas as turmas possuíam suas aulas em um único turno. Nos turnos da manhã e da tarde, as turmas tinham seis aulas por dia e quatro de noite. As aulas eram de segunda à sexta-feira, somando um total de 30 aulas por semana para os turnos da manhã e da tarde e 20 para o turno da noite.
Essa escola possui turmas do 2º Ciclo do Ensino Fundamental (de quinta à oitava série), Ensino Médio (de 1ª à 3ª série) e Supletivo. O agendamento é feito no início de cada semestre.
5.3 Comparação entre as soluções obtidas por programação matemática, procedimento heurístico e manualmente
Com a finalidade de compararmos a solução das duas modelagens e do Procedimento BLA+BT, observamos a seguinte relação entre os pesos considerados:
Para obtermos resultados através das formulações matemáticas propostas na Seção 3 utilizamos o modelador e otimizador XPRESS-MP versão 1.6 com as funções de préprocessamento e estratégia de corte ativadas.
Todos os resultados presentes neste trabalho foram obtidos utilizando um microcomputador Pentium 4, 1.9 GHz, de 384 MB de RAM e com sistema operacional Microsoft Windows XP.
As Tabelas 3, 4 e 5 apresentam os resultados obtidos em seis horas de processamento (sendo interrompido neste período) para cada um dos turnos da manhã, tarde e noite das escolas Rezende e Hilton Federici. O gap apresentado é dado pelo melhor valor de função encontrado (f. obj.) sobre o limitante inferior definido pelo otimizador XPRESS, indicando a qualidade da solução obtida. Para soluções ótimas, temos gap de 0%.
Para os problemas das duas escolas, como não dispúnhamos do número mínimo de aulas duplas requerido por cada professor em 2005, supomos que as disciplinas compostas de 6 aulas teriam 3 aulas duplas, as compostas de 5 e 4 aulas teriam 2 aulas duplas e as compostas de 2 aulas teriam uma única aula dupla.
Foram encontradas soluções factíveis para todos os turnos das duas escolas e, para o turno da noite da escola Rezende, foi encontrada a solução ótima utilizando o modelo (2).
Com o modelo (2) o número de variáveis e restrições é menor do que o número obtido através do modelo (1). Também podemos verificar que o gap das soluções obtidas pelo modelo (2) é sempre menor que o das soluções obtidas através do modelo (1), ou seja, no período de seis horas, através do modelo (2), a distância entre a solução encontrada e a ótima é menor que no modelo (1).
Na Tabela 6 verifica-se as melhores soluções finais obtidas para os problemas das escolas Rezende e Hilton Federici através dos modelos de programação matemática (1) e (2) (na Tabela 6, PM1 e PM2 respectivamente) e BLA+BT. Os valores obtidos para o procedimento BLA+BT são resultado de uma média de 5 execuções.
Também apresentamos a solução manual para a escola Rezende 2005. Como não dispúnhamos da preferência dos professores pelos horários de aula para os outros casos, não pudemos comparar sua solução manual com as demais. Para o método BLA+BT temos a média de 5 execuções e o critério de parada adotado como sendo 50 iterações sem melhora da solução ou 100 iterações no máximo para a Busca Tabu, 100 iterações sem melhora da solução ou 150 iterações no máximo para a Busca Local Aleatória e no máximo um ciclo (BLA+BT) sem melhora da solução.
Os valores médios arredondados para obtenção das soluções através do procedimento BLA+BT foram: (R05m) 571s, (R05t) 600s, (R05n) 97s, (R06m) 619s, (R06t) 518s, (R06n) 97s, (HFm) 422s, (HFt) 374s, (HFn) 234s.
Os resultados obtidos pelo procedimento BLA+BT foram em torno de 50% melhores que os manuais. Já com relação à PM(2), temos melhores soluções de BLA+BT para problemas maiores e, para os problemas menores (R05n, R06n e HFn) temos soluções com menores valores de função, porém próximas. Mas, devemos verificar que as soluções obtidas por BLA+BT demandaram um tempo menor que por PM(2).
Para todos os cenários testados consideramos a não-preferência dos professores como sendo os valores 0 (bom), 1 (razoável) e 2 (péssimo).
6. Conclusões e trabalhos futuros
Descrevemos um problema típico das EEFM públicas do Estado de São Paulo. Apresentamos duas formulações matemáticas para tratar este problema, desenvolvendo, como contribuição, uma formulação matemática baseada no agendamento de blocos de aulas duplas e unitárias e desenvolvendo a modelagem de diversas restrições encontradas nestas escolas que não são tratadas na literatura. Também apresentamos um procedimento de Busca Tabu composto de uma lista tabu sistematicamente dinâmica e utilizando movimentos simples como em Shaerf (1996). Desenvolvemos um procedimento de Busca Local Aleatória baseada em movimentos reparadores que foi utilizado para acelerar o processo de busca junto à Busca Tabu (procedimento BLA+BT). O procedimento (BLA+BT) mostrou resultados satisfatórios, tanto com relação ao tempo computacional como com relação à qualidade das soluções obtidas. Além disso, mostramos como tratar variações que podem ser encontradas nas EEFM paulistas.
Como contribuição deste trabalho, foi desenvolvida uma heurística que trata os turnos da manhã, tarde e noite de uma instituição considerando as restrições que existem entre eles. Esta heurística foi aplicada para resolver um problema encontrado na grade de horário da Escola Estadual Barão Geraldo de Rezende, em Campinas, no ano de 2006, gerando uma solução aceita pelos funcionários.
Futuramente, pretendemos aumentar o número de restrições abordadas para abranger um número maior de instituições de ensino. Por exemplo, restrições que dizem respeito às instituições que possuem mais de uma unidade de ensino e que possuem professores que trabalham em várias destas unidades.
Agradecimentos
Agradecemos ao Conselho Nacional de Desenvolvimento Científico e Tecnológico - CNPq pelo financiamento deste trabalho (bolsa de pesquisa do professor Dr. Antônio Carlos Moretti - processo nº 307907/2007-4).
Recebido em 04/2007; aceito em 09/2008 após 1 revisão
Received April 2007; accepted September 2008 after one revision
- (1) Abramson, D. (1991). Constructing schools timetables using simulated annealing: sequential and parallel algorithms. Management Science, 37(1),98-113.
- (2) Colorni, A.; Dorigo, M. & Maniezzo, V. (1998). Metaheuristics for high school timetabling. Computational Optimization Applications, 9,275-298.
- (3) Costa, D. (1994). A tabu search algorithm for computing an operational timetable. European Journal of Operational Research, 76,98-110.
- (4) de Werra, D. (1997). The combinatorics of timetabling. European Journal of Operational Research, 96,504-513.
- (5) Even, S.; Itai, A. & Shamir, A. (1976). On the complexity of timetabling and multicommodity flow problems. SIAM Journal of Computation, 5,691-703.
- (6) Filho, G.R. & Lorena, L.A.N. (2001). A constructive evolutionary approach to school timetabling. In: Applications of Evolutionary Computing [edited by E.J.W. Boers, J. Gottlieb, P.L. Lanzi, R.E. Smith, S. Cagnoni, E. Hart, G.R. Raidl and H. Tijink], volume 2037, 130-139. Springer Lecture Notes in Computer Science.
- (7) Glover, F. & Laguna, M. (1997). Tabu Search Kluver Academic Publishers, Boston Dordrecht London.
- (8) Gotlieb, C.C. (1963). The construction of a class-teacher timetables. In: IFIP Congress [edited by C.M. Poplewell], volume 62,73-77, North-Holland. Springer Lecture Notesin Computer Science.
- (9) Junginger, W. (1986). Timetabling in Germany - a survey. Interfaces, 16,66-74.
- (10) Neufeld, G.A. & Tartar, J. (1974). Graph coloring conditions of the existence of solutions to the timetable problem. Communications of the ACM, 17(8),450-433.
- (11) Ostermann, R. & de Werra, D. (1983). Some experiments with a timetabling system. OR Spektrum, 3,199-204.
- (12) Shaerf, A. (1996). Tabu search techniques for large high-school timetabling problems. In: 13th National Conference of the American Association for Artificial Intelligence (AAAI-96).
- (13) Sousa, V.N. (2006). Programação da grade de horário em escolas de ensino fundamental e médio. Dissertação de Mestrado, Instituto de Matemática Estatística e Computação Científica, Universidade Estadual de Campinas, Brasil.
- (14) Souza, M.J.F. (2000). School Timetabling: an approximation by metaheuristcs PhD. Dissertation, Computing and Systems Engineering Program, Federal University of Rio de Janeiro, Brazil.
Datas de Publicação
-
Publicação nesta coleção
27 Jan 2009 -
Data do Fascículo
Dez 2008
Histórico
-
Aceito
Set 2008 -
Recebido
Abr 2007