Você está na página 1de 14

Desenvolvimento de um Modelo Matemático para Apoio à Decisão na Programação de

Grades Horárias de Escolas de Excelência Pedagógica


Autoria: Camilo José Bornia Poulsen, Denise Lindstrom Bandeira

Resumo
Este artigo tem por objetivo propor um modelo matemático para o problema de
programação de horários em escolas de excelência pedagógica, isto é, que consideram
critérios que fortaleçam o processo de ensino-aprendizagem para justificar suas decisões de
alocação. Conhecido na literatura como School Timetabling Problem (STP), é considerado um
típico problema de otimização combinatória, reconhecidamente complexo por conta do seu
elevado número de variáveis e restrições, que toma muito tempo e preocupa gestores de
escolas. Por esta razão, este trabalho visa oferecer um instrumento que apoie de forma
eficiente o processo de tomada de decisão de administradores escolares.

1. Introdução
As alocações de horários de professores e locais de aula para atender as turmas de
alunos constituem um conjunto importante de decisões que devem ser tomadas por gestores
de instituições de ensino, principalmente no início de cada ano letivo. As consequências
dessas decisões podem impactar na estrutura de custos da escola e, principalmente, na
qualidade dos serviços educacionais prestados.
Conhecido na literatura como school timetabling problem, de acordo com Cooper e
Kingston (1993), seu problema básico consiste em atribuir horários, professores e alunos para
uma coleção de turmas, de tal forma que nenhum participante é obrigado a comparecer a duas
aulas simultaneamente.
Segundo Bardadym (1996), a construção manual de uma grade horária escolar é uma
tarefa complicada e normalmente requer vários dias de trabalho. Essa tarefa árdua acaba se
transformando num grande quebra-cabeça, num pesado processo de tentativa e erro que, na
primeira combinação encontrada, dá-se por solucionado, mesmo que a qualidade da solução
seja péssima. Uma solução péssima implica alunos e professores prejudicados: uma
distribuição de carga horária dissonante dos interesses pedagógicos e maçante para
professores e alunos, aulas em dias ou horários indesejados, existência de horários vagos entre
aulas e poucos dias livres para professores, dentre outras tantas situações que geram
inconformidade (Bornia Poulsen & Bandeira, 2012).
O STP tem sido objeto de estudo há bastante tempo pela comunidade acadêmica. Os
primeiros trabalhos iniciaram nos anos 60 do século passado. Uma das primeiras referências
foi apresentada por Appleby, Black e Newman (1961), que descreveram métodos para a
construção de soluções para o problema, mediante o uso de computadores. Gotlieb (1962)
apresentou a primeira formulação completa para o STP, declarando que o problema consistia
em fixar um conjunto de aulas num determinado período de tempo, atendendo exigências
acadêmicas, isto é, o cumprimento da grade curricular. Em cada aula era necessário atender
um único grupo de estudantes (turma), exigindo-se o comparecimento de um único professor.
Esta versão clássica do STP mostrou-se NP-Complete por Even, Itai e Shamir (1976). Para
Elmohamed, Coddigton e Fox (1997), o timetabling (TT) é um problema combinatório de
otimização multidimensional, não-euclidiano, multirrestrito e, consequentemente, muito
difícil de ser resolvido. Há dois fatores determinantes que remetem um problema de TT a essa
condição: o número de entidades e de restrições. Alvarez-Valdes, Crespo e Tamarit (2002)
apontam que a grande variedade e a quantidade de entidades envolvidas nesse processo
(turmas, professores, salas etc.) resultam num enorme número de variáveis e restrições.
Em Alvarez-Valdes, Martin e Tamarit (1996), os autores comentam que o STP varia
de país para país, pois cada sistema educacional tem suas características e regras próprias.
1
Isso fica evidente ao se constatar a quantidade de trabalhos que apresentam modelos
desenvolvidos especialmente para seus países, como por exemplo: Grécia (Birbas, Daskalaki,
& Housos, 1997; Valouxis & Housos, 2003; Beligiannis, Moschopoulos, & Likothanassis,
2009), Espanha (Alvarez-Valdes et al., 1996), Itália (Colorni, Dorigo, & Maniezzo, 1998;
Avella, D’Auria, Salerno, & Vasil’ev, 2007), Holanda (Gans, 1981), Austrália (Abramson,
1991), Reino Unido (Wright, 1996), Alemanha (Jacobsen, Bortfeldt, & Gehring, 2006),
Portugal (Carrasco & Pato, 2004) e Brasil (Moura, Scaraficci, Silveira, & Santos, 2004;
Santos, Uchoa, Ochi, & Maculan, 2012; Bornia Poulsen & Bandeira, 2012).
Além das particularidades do país, modelos de STP podem ser orientados de acordo
com especificidades que dependem da escola. No nosso trabalho anterior (Bornia Poulsen &
Bandeira, 2012), apresentamos um modelo orientado a atender fundamentalmente escolas que
desejam reduzir seus custos financeiros decorrentes da grade horária construída. Escolas que
dispõem de professores que trabalham sob a condição de “horistas”, naturalmente, desejam
minimizar o número de horários vagos (janelas) e de dias de trabalho de cada professor, pois
isso diminui seus custos financeiros. Há, entretanto, escolas que colocam os interesses
pedagógicos acima desses: (i) escolas que contam com professores que trabalham sob o
regime de 20 ou 40 horas, isto é, que ficam à disposição durante um ou dois turnos em todos
os dias úteis da semana (escolas públicas e algumas privadas); (ii) escolas em que seus
professores trabalham como horistas, mas que, por conta da sua proposta pedagógica e da sua
capacidade financeira, se dispõem a pagar pela incidência de horários vagos ou dias
excedentes de trabalho.
Neste sentido, pretendemos, neste artigo, oferecer uma ferramenta de apoio à decisão,
através de um modelo matemático de programação linear mista (Mixed Integer Programming
- MIP), para escolas que desejarem construir grades horárias visando privilegiar critérios
pedagógicos.

2. Descrição do Problema
O modelo proposto visa alocar professores e locais de aula (salas de aula, laboratórios,
quadras de esporte, sala de música...) para cada disciplina pertencente à grade curricular de
uma turma. Para tanto, o modelo pressupõe que a escola já tenha indicado o professor e o
local de aula para cada disciplina. Caso uma disciplina possua mais de um local de aula, a
disciplina deverá ser subdividida. Por exemplo: a disciplina de “Biologia” que tem três aulas,
sendo duas na sala de aula e uma no laboratório, deverá ser dividida em “Biologia – Teórica”
e “Biologia – Laboratório”, com duas e uma aulas, respectivamente.
As restrições normalmente encontradas num STP são categorizadas em três tipos,
dependendo da escola e do sistema de ensino que está sendo modelado (Santos & Souza,
2007; Santos et al., 2012):
 Institucional – este conjunto de restrições trata da gestão de recursos e cumprimento legal,
tais como: (i) a capacidade da sala de aula, (ii) especificação de locais especiais, (iii) carga
semanal de trabalho, e (iv) o número de intervalos de tempo dos professores.
 Pedagógica – este conjunto de restrições lida com o funcionamento adequado das turmas,
tais como: (i) atendimento a aulas duplas requeridas por uma determinada disciplina, (ii)
limite de aulas diárias de uma disciplina numa turma, e (iii) distribuição das aulas de uma
disciplina ao longo da semana.
 Pessoal – este conjunto de restrições atende pedidos específicos associados às preferências
dos professores ou necessidades especiais, tais como: (i) indisponibilidade para trabalhar
em determinados dias da semana, e (ii) a preferência para trabalhar em um determinado
dia da semana.
Restrições também podem ser classificadas como restrições fortes e fracas (Kahar &
Kendall, 2010; Zhang, Liu, M’Hallah, & Leung, 2010). Restrições fortes são condições que
2
devem ser atendidas a qualquer custo, como, por exemplo, o atendimento ao número de aulas
de uma determinada disciplina numa turma. Se a grade horária resultante do processamento
de um modelo não atender às demandas de carga horária de cada disciplina, o resultado é
caracterizado como inviável. Restrições fracas, por outro lado, são condições que não são
essenciais para a produção de uma solução possível, mas são características desejáveis para
uma boa grade horária. Elas devem ser satisfeitas, tanto quanto possível, e ser utilizadas como
uma forma de avaliar a qualidade da solução do modelo, que impõe uma penalidade sobre
cada não-conformidade.
Uma grade horária é viável se todas as aulas estão programadas de forma que
nenhuma das restrições fortes (H) é violada:

H1 : Grade curricular – o número exato de aulas previsto em cada disciplina deve ser
alocado para uma respectiva turma;
H2 : Grade horária da turma – as disciplinas de uma turma devem ser alocadas nos seus
respectivos horários;
H3 : Disponibilidade do professor – professores não podem ser alocados em horários em que
não estão disponíveis;
H4 : Disponibilidade do local de aula – locais de aula não podem ser utilizados para aulas
em dias e períodos em que não estão disponíveis;
H5 : Exclusividade da turma – turmas de alunos não podem ser programadas para ter duas
aulas diferentes ao mesmo tempo;
H6 : Exclusividade do professor – os professores não podem ser escalados para ministrar
duas aulas diferentes ao mesmo tempo;
H7 : Exclusividade do local de aula – locais de aula não podem ser atribuídos a duas aulas ao
mesmo tempo;
H8 : Limite diário de aulas da disciplina – uma disciplina não pode ter o seu limite diário de
aulas ultrapassado.

A qualidade de uma solução viável deste modelo depende da satisfação de duas


restrições fracas. Se esse tipo de restrição não é satisfeita, uma penalidade (um inteiro
positivo) é induzida. Tais restrições fracas (S) são as seguintes:

S1 : Esparsamento da disciplina – as aulas de uma disciplina não devem ser ministradas em


dias consecutivos;
S2 : Atendimento a aulas duplas – disciplinas que requerem aulas duplas devem ser
atendidas;
S3 : Limite de aulas de um mesmo grupo – disciplinas que pertencem a um mesmo grupo
não devem exceder o limite diário.

As restrições H1, H2, H3, H4, H5, H7 são do tipo institucional, pois tratam,
essencialmente, de questões de ordem legal. A restrição H6 é do tipo pessoal, pois diz respeito
à disponibilidade individual de cada professor. Cabe à escola aceitar ou não uma restrição
pessoal, enquanto cabe ao modelo tratar este tipo de condição. Finalmente, as restrições H8,
S1, S2 e S3 são do tipo pedagógico, que permitem à escola definir condições que melhorem o
processo de ensino-aprendizagem dos seus alunos.
A restrição H8, que impõe um limite diário rígido de aulas, é importante para não
sobrecarregar alunos com uma mesma disciplina num único dia. Como o excesso de aulas

3
diárias de uma mesma disciplina atenta contra o aproveitamento dos alunos, coordenações
pedagógicas de escolas naturalmente impõem tal limite.
Da mesma forma, não é interessante sob o ponto de vista pedagógico que aulas de uma
mesma disciplina sejam ministradas em dias consecutivos. Uma disciplina de seis aulas
semanais, por exemplo, provavelmente ofereça maior aproveitamento aos seus alunos se for
ministrada em dias alternados, como segunda, quarta e sexta-feira. A restrição S1, portanto,
induz o modelo a esparsar as aulas de uma mesma disciplina, penalizando as disciplinas que
têm aulas ministradas em dias consecutivos.
Se o excesso de aulas diárias pode prejudicar o processo de ensino-aprendizagem,
poucas aulas de uma determinada disciplina também pode oferecer prejuízo. Por essa razão,
este modelo permite que a escola indique que disciplinas devem ter aulas ministradas
consecutivamente. Para essas disciplinas, a restrição S2 penaliza justamente aquelas que não
têm suas requisições de aulas duplas atendidas.
Também é considerado contraproducente uma turma ter num mesmo dia de aula,
apenas as disciplinas de matemática, química e física, por exemplo. O interessante, sob o
ponto de vista pedagógico, é conjugar disciplinas de grupos diferentes, como, por exemplo,
matemática, língua inglesa e filosofia. Para atender esta recomendação, a restrição S3 permite
penalizar aulas de um determinado grupo de disciplinas que excedam um limite sugerido pela
própria escola.

3. Modelo matemático
Segundo Arenales, Armentano, Morabito e Yanasse (2007), um modelo matemático é
a tradução da definição do problema em relações matemáticas ou lógicas de simulação, ou
uma combinação delas.
O modelo proposto de STP tem os seguintes parâmetros e conjuntos de dados:

: conjunto de turmas de alunos


: conjunto de professores
: conjunto de locais de aula (seja sala de aula ou outro local
especial: laboratório, quadra esportiva, sala de música etc.)
: conjunto de disciplinas da turma ∈
: conjunto de disciplinas do professor ∈
: conjunto de disciplinas do local de aula ∈
: conjunto de disciplinas ( ⋃∈ )
: conjunto de grupos de disciplinas
: conjunto de disciplinas do grupo ∈
: conjunto de dias da semana
: conjunto de períodos de aula
| | | | | | : matriz da grade horária das turmas, onde:
1 indica se a turma deve ter aulas no dia e no
período de aula
0 caso contrário
| | | | | | : matriz de disponibilidade dos professores, onde:
1 indica se cada professor está disponível para
lecionar no dia e período de aula
0 caso contrário
| | | | | | : matriz de disponibilidade dos locais de aula, onde:
1 indica se o local de aula está disponível no dia
e no período de aula

4
0 caso contrário
| | : vetor de aulas semanais das disciplinas das turmas , onde
indica o número de aulas semanais da disciplina ,
conforme currículo da turma
| | : vetor de número máximo de aulas diárias de uma disciplina,
onde indica o número máximo de aulas diárias aceitável
para uma disciplina de uma turma
| | : vetor de requisições de aulas duplas de uma disciplina, onde
indica o número de aulas duplas solicitadas para uma
disciplina de uma turma
| | : vetor de tipos de períodos de aula, onde:
1 indica que o período de aula é o primeiro dentro
de um bloco
2 indica que é o segundo período de aula e que há
um terceiro que o sucede dentro do bloco
3 caso contrário
| | : vetor de limites de aulas do grupo de disciplinas, onde
indica o limite recomendável de aula diárias de um grupo de
disciplinas
: penalidade relacionada à incidência de disciplinas que têm aulas
em dias consecutivos
: penalidade relacionada à quantidade de requisições de aulas
duplas não atendidas
: penalidade relacionada à quantidade de aulas de um grupo de
disciplinas que excedem o limite recomendável

Como nosso modelo de STP é um problema de programação linear mista (MIP),


necessitamos de variáveis de decisão do tipo binário. Assim podemos definir as seguintes
variáveis de decisão:

1 se a disciplina ∈ é ministrada no dia ∈ e período de aula


= ∈
0 caso contrário

Qualquer solução viável deve satisfazer todas as restrições fortes (H1...H8), modelada
pelas seguintes equações:

  ∀ ∈ (H1)
∈ ∈

∀ ∈ ,∀ ∈ ,∀ ∈ ,∀ ∈ (H2)
∀ ∈ ,∀ ∈ ,∀ ∈ ,∀ ∈ (H3)
∀ ∈ ,∀ ∈ ,∀ ∈ ,∀ ∈ (H4)

1  ∀ ∈ ,∀ ∈ ,∀ ∈ (H5)

1  ∀ ∈ ,∀ ∈ ,∀ ∈ (H6)

5
1  ∀ ∈ ,∀ ∈ ,∀ ∈ (H7)

  ∀ ∈ (H8)
∈ ∈

A função objetivo de minimização é dada como a soma dos desejos expressos como
restrições fracas S1, S2 e S3, ponderada por suas respectivas penalidades, indicando sua
importância relativa. Para expressar de função objetivo do nosso modelo, é necessário
introduzir as seguintes variáveis auxiliares:

1se a disciplina ∈ tem aula dupla no dia ∈ começando no


= período de aula ∈
0 caso contrário
= número de requisições de aulas duplas não atendidas da disciplina ∈
1 se a disciplina ∈ tem aula no dia ∈
=
0 caso contrário
1 se a disciplina ∈ tem aulas nos dias ∈ e 1 ∈
=
0 caso contrário
= número de aulas de um grupo de disciplinas ∈ , ∈ da turma ∈
no dia ∈

As relações entre as variáveis de decisão e auxiliares são dadas pelas seguintes


equações:

  ∀ ∈ , 7, ∀ ∈ , ∀ ∈ (S1a)
1  ∀ ∈ , 7, ∀ ∈ 0, 1, … , | | 1 (S1b)
∀ ∈ , 1, ∀ ∈ , ∀ ∈ ; ⊂ 1, 2 (S2a)
  ∀ ∈ , 1, ∀ ∈ , ∀ ∈ ; 1 (S2b)
1   ∀ ∈ , 1, ∀ ∈ , ∀ ∈ ; 2 (S2c)
  ∀ ∈ , 1, ∀ ∈ , ∀ ∈ ; 2 (S2d)
0  ∀ ∈ , 1, ∀ ∈ , ∀ ∈ ; 3 (S2e)
0  ∀ ∈ , 0, ∀ ∈ , ∀ ∈ (S2f)

  ∀ ∈ , 1 (S2g)
∈ ∈

0  ∀ ∈ , 0 (S2h)

  ∀ ∈ ,∀ ∈ ,∀ ∈ (S3a)
∈ ∩ ∈

As equações (S1a) e (S1b) permitem calcular as variáveis auxiliares e , que são


imprescindíveis para penalizar possíveis soluções que não atendam à restrição fraca S1. No
entanto, o esparsamento de disciplinas exigido pelo modelo não faz sentido em disciplinas
com elevado número de aulas semanais. Por esta razão, as duas equações têm no seu escopo a
exigência mínima de sete aulas semanais ( 7). Escolhemos este valor, pois supondo
6
uma disciplina de 6 aulas semanais com exigência de aulas duplas, o ideal seria oferecê-la na
segunda, quarta e na sexta-feira. Já numa disciplina com sete aulas semanais, qualquer
combinação que colocasse um máximo de duas aulas diárias, naturalmente a distribuição de
aulas seria, no mínimo, em quatro dias da semana. Usando um caso extremo, como uma
disciplina de 16 aulas semanais por exemplo (que é normal nos anos iniciais do ensino
fundamental), o cômputo de S1 torna-se irrelevante, já que o esparsamento ocorreria sem
qualquer esforço do modelo.
Para penalizar o não atendimento do desejo expresso na restrição S2, faz-se necessário
um conjunto de equações que permitam tratar cada tipo de período. Nas escolas brasileiras,
um turno de aula tem, normalmente, de quatro a seis períodos divididos por um intervalo.
Logo, cada bloco de aula tem dois ou três períodos. Num bloco qualquer, o 1º período de aula
é considerado um período em que se inicia uma aula dupla se neste e no próximo período (2º)
houver aulas de uma determinada disciplina. Portanto, as equações (S2a) e (S2b) dão suporte
aos primeiros períodos, pois consideram 1. O 2º período de um bloco, no entanto, deve
receber tratamentos diferenciados segundo a existência ou não de períodos subsequentes. Se
não houver período subsequente, naturalmente este 2º período não é candidato a iniciar aulas
duplas. Portanto, nestes casos temos o 3 e o modelo oferece a equação (S2e). Caso um
2º período tiver um período subsequente, o seu tipo é definido como 2 e são
suportadas pelas equações (S2a), (S2c) e (S2d). A diferença entre um 2º período candidato a
receber uma aula dupla em relação a um 1º período está na obrigação que um 2º período tem
de ter aula com uma disciplina diferente no período imediatamente anterior, conforme
expresso em (S2c). Já um 3º período, automaticamente, é do tipo 3, pois há uma
impossibilidade natural de iniciar uma aula dupla, pois não há período subsequente.
Todas essas restrições (S2a...S2e), que permitem determinar se cada variável auxiliar
tem aula dupla da disciplina ∈ , no dia ∈ e iniciando no período de aula ∈ ,
apenas fazem sentido se, e somente se, a disciplina ∈ requerer aulas duplas segundo
desejo da escola, devidamente expressa na instância de dados fornecida. Por essa razão, todas
essas restrições possuem no seu escopo a exigência de aulas duplas por parte de cada
disciplina ( 1). Consequentemente, todas as disciplinas que não têm exigência de
aulas duplas caem na equação (S2f), pois 0.
Tomando-se o número de requisições de aulas duplas e decrescendo-se o
somatório das aulas de uma disciplina que representam o início de aulas duplas (S2g), temos o
valor de , que é o valor que expressa o número de requisições de aulas duplas não atendidas
de uma disciplina ∈ e que finalmente se deseja minimizar. A equação (S2h) apenas zera as
variáveis auxiliares das disciplinas que não exigem aulas duplas ( 0).
A equação (S3a) permite calcular as variáveis auxiliares , mediante a subtração do
somatório de aulas do grupo ∈ da turma ∈ no dia ∈ pelo limite recomendável de
aulas deste mesmo grupo | | . Como é uma variável inteira e positiva, eventuais
valores negativos serão automaticamente zerados. Isso garante que apenas as aulas excedentes
ao limite recomendável serão contabilizadas para posteriormente serem penalizadas na função
objetivo.
Agora, a função objetivo é facilmente demonstrada:

  (OBJ)
∈ ∈ ∈ ∈ ∈ ∈

O primeiro componente da função objetivo (OBJ) penaliza a incidência de disciplinas


que possuem aulas em dias consecutivos (S1). O segundo componente penaliza a quantidade

7
de requisições de aulas duplas não atendidas pela solução gerada pelo modelo (S2). O terceiro
componente, por sua vez, penaliza cada aula excedente a um limite recomendável de aulas de
um grupo de disciplina (S3).
Para ilustrar o objetivo do nosso modelo, tomemos como exemplo a grade curricular
de uma turma de 8º ano do ensino fundamental de uma escola (ver Tabela 1). Consideremos,
ainda, conforme ilustrado na Tabela 2, os seguintes grupos de disciplinas com seus
respectivos limites diários.

Tabela 1:
Grade curricular de uma turma de exemplo
Aulas Máximo de Requisições de
Código Nome
semanais aulas diárias aulas duplas
ART Artes 1 1 0
CIE Ciências 3 2 1
EF Ed. Física 2 2 0
ESP Espanhol 1 1 0
FIL Filosofia 1 1 0
GEO Geografia 2 2 1
HIS História 3 2 1
ING Inglês 2 2 1
LEI Leitura 1 1 0
LP Português 4 3 2
MAT Matemática 5 3 2

Tabela 2:
Grupos de disciplinas
Limite diário recomendável
Grupo 1 Ciências e Matemática 2
Grupo 2 Espanhol, Inglês, Português e Leitura 2
Grupo 3 Arte, Filosofia, Geografia e História 2
Grupo 4 Educação Física 1

Na Figura 1, temos duas hipotéticas possíveis soluções: na subfigura (a), a solução


considerou apenas a satisfação das restrições fortes, enquanto na subfigura (b), as restrições
fracas também foram consideradas.

SEG TER QUA QUI SEX SEG TER QUA QUI SEX
1º período CIE MAT ING HIS GEO 1º período MAT ESP ING LP EF
2º período MAT CIE ESP GEO EF 2º período MAT CIE ING LP LEI
3º período CIE MAT ING HIS FIL 3º período EF CIE FIL HIS MAT
Intervalo Intervalo
4º período MAT LP LP ART EF 4º período LP HIS MAT ART GEO
5º período LP MAT LEI LP HIS 5º período LP HIS MAT CIE GEO

(a) Apenas restrições fortes (b) Restrições fortes e fracas

Figura 1: Exemplos de soluções de grades horárias


Sob o ponto de vista pedagógico, a solução (a) é péssima: nenhuma requisição de
aulas duplas foi atendida, conforme indicação da Tabela 1; as disciplinas com grande número
de aulas ficaram em dias consecutivos; o número de aulas diárias de um mesmo grupo de
disciplinas excede o recomendável, segundo a Tabela 2. Ao considerar as restrições fracas, o
modelo está orientado a buscar uma grade horária muito próxima à da solução (b), pois todas
8
as requisições de aulas duplas foram atendidas, as aulas de uma mesma disciplina ficaram
esparsadas e nenhum grupo de disciplinas teve seu limite de aulas diárias excedido.
Evidentemente que o exemplo tem caráter meramente ilustrativo, pois com instâncias
reais de dados é praticamente impossível atender plenamente todas as restrições fracas, pois
muito provavelmente uma solução ideal para uma turma gerará uma péssima solução para
outra. Logo, cabe ao modelo balancear este trade-off, de modo a gerar uma boa solução
global.

4. Resultados computacionais
Testes computacionais foram realizados para avaliar o modelo proposto. Para tanto,
foi implementado um software na linguagem C++ a partir do ambiente de programação do
Microsoft© Visual Studio 2010 Professional combinado com o resolvedor IBM ILOG
CPLEX Optimization Studio V12.4 com suas configurações default. O equipamento utilizado
foi um notebook Dell Vostro 3300 com processador Intel© Core i5™ M520 2.4GHz, 4GB de
memória RAM e sistema operacional Microsoft© Windows 7 Enterprise 64 bits.

4.1. Instâncias de dados e parâmetros


Nossos experimentos avaliaram dados de sete escolas de educação fundamental e
médio, esparsas geograficamente pelo Brasil. Os dados são reais e representam com
fidedignidade todo o conjunto de informações que as escolas consultadas tinham à disposição
para construírem as grades horárias do ano de 2012. A Tabela 3 apresenta a origem e as
dimensões das instâncias, que estão disponíveis em https://dl.dropbox.com/u/84981398/
STP/BR12PED.zip.

Tabela 3:
Origens e dimensões das instâncias
Instâncias Estado | | | | | | | | | | | | Nº de Variáveis 
BRRJ12 Rio de Janeiro 12 24 140 18 5 7 2.321  
BRCE12 Ceará 28 35 346 28 5 12 6.621  
BRPI12 Piauí 28 46 391 20 6 12 7.454  
BRRS12 Rio Grande do Sul 29 42 236 25 5 9 3.599  
BRPR12 Paraná 35 47 395 32 5 11 9.364  
BRMG12 Minas Gerais 36 68 476 29 5 11 11.613  
BRSC12 Santa Catarina 45 61 410 30 5 11 8.553  

Para que haja uma noção exata da dimensão de cada instância de dados, calculamos o
número de variáveis que deverão ser consideradas no processamento de cada uma delas. A
coluna “Nº de Variáveis” da Tabela 3 representa esse valor, que vai além de uma simples
contagem de variáveis de decisão. Para chegarmos a esses valores, consideramos a interseção
dos conjuntos que representam uma verdadeira possibilidade de alocação. Logo, a coluna “Nº
de Variáveis” indica a quantidade de que realmente são candidatas a receber o valor “1”,
já que muitas delas são automaticamente zeradas por não representarem uma possibilidade
viável de alocação. Logo, o “Nº de Variáveis” de um conjunto de dados é expresso pela
seguinte fórmula:

∀ ∈ , 1, ∀ ∈ , ∀ ∈ , ∀ ∈ ,
º á | || || | 
∀ ∈ , 1

Para testar o modelo proposto, foi necessário definir os valores das três penalidades

9
das respectivas restrições fracas não satisfeitas (S1, S2 e S3). Logo, de forma arbitrária,
definimos uma unidade de penalidade para cada incidência de aulas de uma disciplina
ministrada em dias consecutivos ( 1), uma unidade para cada requisição não atendida de
aulas duplas ( 1) e uma unidade para aula diária de um grupo de disciplinas de uma turma
que exceda ao limite recomendável ( 1).

4.2. Discussão dos resultados


Cada uma das sete instâncias foi submetida a um processamento com tempo limite de
uma hora. A Tabela 4 mostra os resultados com a função objetivo (OBJ) pormenorizada, isto
é, com cada componente devidamente apresentado:

Tabela 4:
Resultados do processamento das instâncias, limitado em 1 hora

Tempo
Instâncias Gap
∈ ∈ ∈ ∈ ∈ ∈ (segundos)
     
BRRJ12 25 0 7   18 15,90% 3.600
BRCE12 81 0 42   39 9,88% 3.598
BRPI12 28 0 2   26 0,00% 759
BRRS12 51 40 3   8 0,00% 156
BRPR12 437 12 297   128 80,09% 3.600
BRMG12 134 4 44   86 49,25% 3.597
BRSC12 154 64 27   63 25,32% 3.596

Os resultados demonstram que foi possível atingir a otimalidade (Gap = 0%) em


apenas duas instâncias (BRPI12 e BRRS12). Nas demais, o tempo limite de uma hora não se
demonstrou suficiente para tal. Cabe ressaltar que o gap é calculado a partir de uma
estimativa de best lower bound, isto é, o menor valor de função objetivo projetado, feita pelo
próprio resolvedor IBM CPLEX, o que não é garantia que seja efetivamente o valor ótimo.
Para verificar se o resolvedor IBM CPLEX consegue melhorar a solução, submetemos
todas as instâncias que não atingiram a otimalidade (BRRJ12, BRCE12, BRPR12, BRMG12 e
BRSC12) a um novo processamento, porém com um limite de três horas, conforme
apresentado na Tabela 5.

Tabela 5:
Resultados do processamento das instâncias, limitado em 3 horas

Tempo
Instâncias Gap
∈ ∈ ∈ ∈ ∈ ∈ (segundos)
     
BRRJ12 25 0 7   18 12,90% 10.799
BRCE12 75 0 38   37 2,67% 10.798
BRPR12 119 8 52   59 26,05% 10.796
BRMG12 78 0 12   66 0,00% 10.365
BRSC12 128 64 15   49 10,16% 10.796

Após nova rodada de processamento das instâncias, obtivemos confirmação que as


estimativas de lower bound não podem ser assumidas como valores peremptórios. A Tabela 6

10
mostra o valor de best lower bound estimado pelo resolvedor CPLEX após uma e três horas,
respectivamente.

Tabela 6:
Estimativas de best lower bound
Best lower bound
Instâncias
Após 1 hora Após 3 horas
BRRJ12 21 22
BRCE12 73 73
BRPR12 87 88
BRMG12 68 78
BRSC12 115 115

À exceção das instâncias BRCE12 e BRSC12, que mantiveram suas estimativas de


best lower bound, todas as demais tiveram um aumento de valor, o que demonstra que os
respectivos gaps apresentados na Tabela 4 são menores dos que originalmente foram
calculados.
A Tabela 5 demonstra ainda que, das cinco instâncias, apenas uma atingiu a
otimalidade: BRMG em 10.365 segundos, respectivamente. A instância BRCE12 não atingiu
a otimalidade, mas um gap de 2,67% nos permite afirmar que a solução foi praticamente
ótima. A maior instância, a BRSC12, apesar de não ter atingido, obteve um gap de 10,16%,
que é excelente. A instância BRPR12 manteve um gap relativamente alto em comparação
com as demais, porém melhorou bastante em relação a ela mesma, se comparado ao
processamento limitado em uma hora. Já a instância BRRJ12 não apresentou melhoria após
duas horas a mais de processamento. A Figura 2, que apresenta a evolução do gap da
instância BRPR12 ao longo do tempo, demonstra que o gap melhorou significativamente após
6.500 , chegando ao valor final obtido por volta de 7.500 e mantendo-se estável
até o tempo final de processamento ( 10.800 3 .

90%
80%
70%
60%
50%
Gap

40%
30%
20%
10%
0%
10.062
10.663
10.796
1.797
1.984
2.067
3.578
3.779
4.062
4.346
4.717
5.152
5.617
6.108
6.449
6.803
7.201
7.545
7.871
8.273
8.577
8.796
9.086
9.387
9.786

Tempo (segundos)

Figura 2: Evolução do Gap da instância BRPR12 ao longo do tempo

Os resultados obtidos demonstram que o modelo proposto pode ser resolvido através
de programação linear inteira (PLI). Porém, o uso de outra técnica, combinada ou não, talvez
possibilite resultados melhores, principalmente em termos de performance (velocidade para
obtenção da solução). Apesar deste estudo ainda não ter avançado em relação à utilização de
11
outras técnicas, acreditamos que o uso do resolvedor IBM CPLEX, com limite de tempo, pode
resolver rapidamente várias instâncias, conforme demonstrado nos processamentos das
instâncias BRPI12 e BRRS12, que alcançaram a otimalidade em 12,65 e 2,6 minutos,
respectivamente (ver Tabela 4). Para as instâncias mais críticas (não necessariamente maiores,
mas, sim, com um conjunto de restrições mais rígido), o uso de uma técnica heurística, como
local search, tabu search ou simulated annealing pode ser uma boa alternativa para melhorar
a solução inicialmente obtida pelo resolvedor IBM CPLEX.
Há, ainda, um fator que devemos considerar: as instâncias utilizadas são de escolas
que contam com professores que trabalham como horistas. Se analisarmos detalhadamente
cada instância de dados, pode-se constatar que muitos professores apresentam severas
restrições de disponibilidade horária. Na maioria das escolas públicas, os professores
trabalham sob o regime de “20h” ou “40h”, que presumem disponibilidade plena do professor
durante ao menos um turno de trabalho. Para tanto, processamos as mesmas sete instâncias
pressupondo seus professores disponíveis durante todo o turno de aula das turmas em que
lecionam, a fim de verificar se esta condição confere melhor desempenho de processamento
para instâncias através do resolvedor IBM CPLEX. Isso significa que o modelo foi
processado sem a restrição forte H3, pois ela é a responsável por limitar a disponibilidade dos
professores. Os resultados, exibidos na Tabela 7, confirmam: todas atingiram a otimalidade,
sendo quatro instâncias com excelente performance, uma razoável e duas com baixa.

Tabela 7:
Resultados do processamento com total disponibilidade dos professores

Tempo
Instâncias Gap
∈ ∈ ∈ ∈ ∈ ∈ (segundos)
     
BRRJ12 12 2 0   10 0% 101
BRCE12 67 0 32   35 0% 816
BRPI12 26 0 0   26 0% 40
BRRS12 46 40 2   4 0% 21
BRPR12 72 8 20   44 0% 7.590
BRMG12 78 0 12   66 0% 10.365
BRSC12 109 64 2   42 0% 1.902

5. Conclusões e considerações finais


Considerando a quantidade de variáveis e restrições, a programação de grade horária
em escolas é um problema extremamente complexo. Até pouco tempo atrás, a comunidade
científica afirmava que este tipo de problema, em virtude da sua natureza combinatória,
associada ao grande número de conjuntos, era insolúvel através de programação linear inteira
(PLI), salvo instâncias muito pequenas ou se empregados artifícios que visassem simplificar o
modelo.
Nos últimos anos, dadas as inovações tecnológicas que oferecem equipamentos com
cada vez mais velocidade de processamento e, principalmente, a grande evolução apresentada
pelo resolvedor IBM CPLEX, o uso de PLI passou a ser uma possibilidade a ser seriamente
considerada para produzir boas soluções. Das sete instâncias testadas, a otimalidade foi
atingida em apenas duas quando limitamos o processamento em uma hora. Num primeiro
momento, os resultados poderiam sugerir o uso de algum método heurístico, porém tais
métodos também não garantem a obtenção de soluções ótimas. Isso pode representar um
indicativo de que os resultados obtidos (valor da função objetivo e tempo de execução) pelo
uso puro de programação linear inteira, via IBM CPLEX, sejam satisfatórios principalmente

12
se considerarmos instâncias sem restrições de disponibilidade horária por parte do recurso
“professor”. No entanto, essa constatação merece um estudo formal confirmatório para que
não fiquemos no campo das especulações. Logo, estudos futuros podem, a partir do modelo
proposto, testar o uso de outras técnicas, sejam heurísticas, meta-heurísticas ou de inteligência
artificial.
Acreditamos, portanto, que este estudo oferece um modelo matemático robusto que
permite apoiar a decisão de alocação de professores, disciplinas e locais de aula de escolas
que objetivam maximizar critérios que contribuam significativamente para o processo de
ensino-aprendizagem.

Referências
Abramson, D. (1991). Constructing school timetables using simulated annealing: sequencial
and parallel algorithms. Management Science, 37, 98-113.
Alvarez-Valdes, R., Crespo, E., & Tamarit, J. M. (2002). Design and implementation of a
course scheduling system using tabu search. Journal of the Operational Research Society,
137, 512-523.
Alvarez-Valdes, R., Martin, G., & Tamarit, J. M. (1996). Constructing good solutions for the
Spanish school timetabling problem. Journal of the Operational Research Society, 47, 1203-
1215.
Appleby, J. S., Black, D. V., & Newman, E. A. (1961). Techniques for producing school
timetabling on a computer and their application to other scheduling problems. The Computer
Journal, 3, 237-245.
Arenales, M. N., Armentano, V., Morabito, R., & Yanasse, H. (2007). Pesquisa operacional
para cursos de engenharia. Rio de Janeiro: Elsevier.
Avella, P., D’Auria, B., Salerno, S., & Vasil’ev, I. (2007). A computational study of local
search algorithms for Italian high-school timetabling. Journal of Heuristics, 13, 543-556.
Bardadym, V. A. (1996). Computer-aided school and university timetabling: The new wave.
Practice and theory of automated timetabling. In: Burke, E.; Ross, P. (Ed.) Lectures Notes in
Computer Science, 1408, 22-45.
Beligiannis, G. N., Moschopoulos, C., & Likothanassis, S. D. (2009). A genetic algorithm
approach to school timetabling. Journal of the Operational Research Society, 60, 23-45.
Birbas, T., Daskalaki, S., & Housos, E. (1997). Timetabling for Greek high schools. Journal
of Operational Research Society, 48, 1191-1200.
Bornia Poulsen, C. J., & Bandeira, D. L. (2012). Aplicação de um modelo para a construção
de grades horárias escolares baseado na meta-heurística simulated annealing. In: Simpósio
Brasileiro de Pesquisa Operacional, 2012, Rio de Janeiro. Anais do XVI CLAIO/XLIV SBPO.
Carrasco, M. P., & Pato, M. V. (2004). A comparison of discrete and continuous neural
network approaches to solve the class/teacher timetabling problem. European Journal or
Operational Research, 153, 65-79.
Colorni, A., Dorigo, M., & Maniezzo, V. (1998). Metaheuristics for high school timetabling.
Computation Optimization and Applications, 9, 275-298.
Cooper, T., & Kingston, J. (1993). The solution of real instances of the timetabling problems.
The Computer Journal, 36, 645-653.
Elmohamed, M. A. S., Coddigton, P., & Fox, G. (1997). A comparison of annealing
techniques for academic course scheduling. Practice and Theory of Automated Timetabling
(PATAT 1996), 92-114.
Even, S., Itai, A., & Shamir, A. (1976). On the complexity of timetable and multicommodity
flow problems. SIAM Journal of Computing, 5(4), 691-703.
Gans, O. B. (1981). A computer timetabling system for secondary schools in the Netherlands.
European Journal of Operational Research, 7(1), 175-182.

13
Gotlieb, C. (1962). The construction of class-teacher timetabling. Proceeding of the IFIP
Congress, 73-77.
Jacobsen, F., Bortfeldt, A., & Gehring, H. (2006). Timetabling at German secondary schools:
Tabu search versus constraint programming. E. K. Burke, H. Rudová (Eds.): PATAT 2006,
439-442.
Kahar, M. N. M., & Kendall, G. (2010). The examination timetabling problem at Universiti
Malaysia Pahang: Comparison of a constructive heuristic with an existing software solution.
European Journal of Operational Research, 207(2), 557-565.
Moura, A., Scaraficci, R.; Silveira, R., & Santos, V. (2004). Técnicas meta-heurísticas
aplicadas à construção de grades horárias escolares. In: Simpósio Brasileiro de Pesquisa
Operacional, 2004, São João Del Rey, MG, Brasil. Anais do XXXVI SBPO, 1, 1-20.
Santos, H., & Souza, M. J. F. (2007). Programação de horários em instituições educacionais:
formulações e algoritmos. In: Simpósio Brasileiro de Pesquisa Operacional, 2007, Fortaleza,
CE, Brasil. Anais do XXXIX SBPO, 1, 2827-2882.
Santos, H. G., Uchoa, E., Ochi, L. S., & Maculan, N. (2012). Strong bounds with cut and
column generation for class-teacher timetabling. Annals of Operational Research, 194, 399-
412. doi: 10.1007/s10479-010-0709-y
Valouxis, C., & Housos, E. (2003). Constraint programming approach for school timetabling.
Computer & Operational Research, 30, 1555-1572.
Wright, M. (1996). School timetabling using heuristic search. Journal of the Operational
Research Society, 47, 347-357.
Zhang, D., Liu, Y., M’Hallah, R., & Leung, S. C. H. (2010). A simulated annealing with a
new neighborhood structure based algorithm for a high school timetabling problems.
European Journal of Operational Research, 203, 550-558.

14

Você também pode gostar