algoritmos heurÍsticos construtivos para … · alunos em turmas em uma universidade ... a partir...

12
ALGORITMOS HEURÍSTICOS CONSTRUTIVOS PARA AGRUPAMENTO DE ALUNOS EM TURMAS Ademir Aparecido Constantino Departamento de Informática Universidade Estadual de Maringá Maringá-PR [email protected] Cândido Ferreira Xavier de Mendonça Neto Universidade de São Paulo - Escola de Artes, Ciências e Humanidades São Paulo-SP [email protected] Marcio Ricardo Martelozzi Núcleo de Processamento de Dados Universidade Estadual de Maringá Maringá-PR [email protected] RESUMO Este trabalho apresentada três algoritmos aplicados a um problema real de agrupamento de alunos em turmas em uma universidade pública com 13 mil estudantes de graduação. O principal objetivo é permitir que cada aluno assista o máximo de disciplinas possíveis dentre todas as disciplinas que lhe foram atribuídas previamente, obedecendo alguns critérios de prioridades. Este artigo apresenta a proposta de três algoritmos heurísticos construtivos, sendo dois baseados em programação linear inteira e um baseado no algoritmo para encontrar clique de peso máximo em grafo. Os algoritmos são comparados e testados com dados reais. PALAVRAS CHAVE: agrupamento de alunos em turmas, algoritmo heurístico, programação matemática, Aplicações à Educação. ABSTRACT The present paper shows the applying of optimization techniques to a real-world problem of assignment students to courses section in a public university with 13 thousand undergraduate students. The main objective is allowing each student watch the maximum of course among all courses assigned previously. Furthermore, another priority requirements also are considered. This paper presents tree constructive heuristic algorithms, which are based on linear programming and Maximum weight clique. The algorithms are compared and tested on the real-world data. KEYWORDS : students sectioning, heuristic algorithm, mathematic programming, Applications to Education. XLI SBPO 2009 - Pesquisa Operacional na Gestão do Conhecimento Pág. 310

Upload: vuongtu

Post on 17-Dec-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

ALGORITMOS HEURÍSTICOS CONSTRUTIVOS PARA AGRUPAMENTO DE ALUNOS EM TURMAS

Ademir Aparecido ConstantinoDepartamento de Informática

Universidade Estadual de Maringá Maringá-PR

[email protected]

Cândido Ferreira Xavier de Mendonça Neto Universidade de São Paulo - Escola de Artes, Ciências e Humanidades

São [email protected]

Marcio Ricardo MartelozziNúcleo de Processamento de DadosUniversidade Estadual de Maringá

Maringá[email protected]

RESUMOEste trabalho apresentada três algoritmos aplicados a um problema real de agrupamento de alunos em turmas em uma universidade pública com 13 mil estudantes de graduação. O principal objetivo é permitir que cada aluno assista o máximo de disciplinas possíveis dentre todas as disciplinas que lhe foram atribuídas previamente, obedecendo alguns critérios de prioridades. Este artigo apresenta a proposta de três algoritmos heurísticos construtivos, sendo dois baseados em programação linear inteira e um baseado no algoritmo para encontrar clique de peso máximo em grafo. Os algoritmos são comparados e testados com dados reais.

PALAVRAS CHAVE: agrupamento de alunos em turmas, algoritmo heurístico, programação matemática, Aplicações à Educação.

ABSTRACT

The present paper shows the applying of optimization techniques to a real-world problem of assignment students to courses section in a public university with 13 thousand undergraduate students. The main objective is allowing each student watch the maximum of course among all courses assigned previously. Furthermore, another priority requirements also are considered. This paper presents tree constructive heuristic algorithms, which are based on linear programming and Maximum weight clique. The algorithms are compared and tested on the real-world data.

KEYWORDS : students sectioning, heuristic algorithm, mathematic programming, Applications to Education.

XLI SBPO 2009 - Pesquisa Operacional na Gestão do Conhecimento Pág. 310

1. IntroduçãoO problema tratado neste artigo pode ser incluído dentro de uma classe mais geral dos Problemas de Programação de Horários (timetabling problem). Esta área tem sido tema de uma série de conferências científicas internacionais, tais como o Practice and Theory of Automated Timetabling (PATAT). Neste trabalho o problema abordado consiste em designar todos os alunos de uma universidade em turmas da melhor maneira possível obedecendo a um conjunto de critérios. Muito embora existam diferentes problemas correlacionados, não foi encontrado na literatura referência de problema equivalente ao tratado neste artigo. O problema aqui tratado é denominado de problema de agrupamento de alunos em turmas (AAT) que surge em cursos de graduação em regime seriado oriundos de uma universidade. De posse do conjunto de alunos de uma instituição, o objetivo deste problema é agrupar os alunos em turmas, atendendo algumas restrições e otimizando uma função objetivo relacionada com número de alunos por turma e a possibilidade do aluno assistir o máximo de disciplinas de seu curso. Além disso, devem ser atendidas algumas relações de prioridades entre disciplinas e entre alunos. Com a solução deste problema, tem-se a composição das turmas para cada disciplina e, conseqüentemente, a definição da turma que o aluno foi designado para cada disciplina que ele está matriculado. Portanto, este problema surge após a definição do conjunto de disciplinas que o aluno deve cursar e a definição dos horários de cada turma e, também, antecede ao problema de alocação de espaço físico (salas de aulas).

O artigo está organizado da seguinte forma: a seção 2 apresenta a descrição detalhada do problema. A seção 3 apresenta uma revisão da literatura. Na seção 4 são apresentados os modelos baseados em programação matemática e grafos que deram origem aos algoritmos construtivos. A seção 5 são apresentas algumas informações sobre a implementação dos algoritmos e os dados utilizados nos testes. Finalmente, os resultados são apresentados na seção 6.

2. Descrição do ProblemaO presente problema foi baseado no estudo de caso de uma universidade pública brasileira com aproximadamente 13 mil alunos somente na graduação, sendo estes cursos concebidos pelo regime seriado. Nesse regime, o aluno é automaticamente matriculado em todas as disciplinas designadas para a sua série. Cada disciplina pode ter mais de uma turma em mesmo horário ou em horários diferentes. Portanto, para cada disciplina da sua série o aluno deverá ser designado a um única turma. Os horários de aulas de todas as disciplinas/turmas de uma série são definidos pelo coordenador de cada curso, antes do início do ano letivo, de tal forma que os alunos da série possam assistir todas as disciplinas sem conflitos de horários. Portanto, o aluno que não possuir reprovação em disciplina da série anterior, não haverá conflito de horários entre as suas disciplinas correntes. Para alguns casos em que o aluno não obteve a aprovação, detalhados ainda nesta seção, o aluno pode matricular-se na série seguinte, porém, os conflitos de horários podem surgir entre as disciplinas de séries diferentes. Em resumo, a resolução do problema AAT consiste em definir em quais turmas o aluno deverá ser designado de maneira que ele possa ter aulas com o número máximo de disciplinas atendendo algumas restrições descritas mais adiante nesta seção. A partir do estudo de caso realizado, foi constatado um elevado número de reprovações, resultando, na prática, um alto custo operacional para a resolução do problema de agrupamento de alunos.

Neste regime seriado são considerados dois tipos de disciplinas: a regular e a dependente. A disciplina regular é a disciplina programada na grade curricular vinculada à série que o aluno for se matricular. A disciplina em dependência é uma disciplina em que o aluno não obteve aprovação em séries anteriores. O aluno só é promovido para série seguinte de seu curso se no fim do último ano letivo cursado ele ficou em dependência em no máximo duas disciplinas, caso contrário, ele fica retido na série do curso com a opção de matricular-se em até duas disciplinas fora de sua série. Quando o aluno é promovido para uma série, automaticamente todas as

XLI SBPO 2009 - Pesquisa Operacional na Gestão do Conhecimento Pág. 311

disciplinas previstas para esta série lhe são atribuídas. Para cada disciplina regular da série, o aluno será designado a uma turma de tal maneira que não haja conflito de horários entre as disciplinas. Já para as disciplinas em dependência o aluno está desobrigado de assistir as aulas caso haja conflito de horário com as disciplinas regulares. Quando isso ocorre, o aluno apenas segue um plano de estudo que o professor da disciplina em dependência lhe atribui. Este plano de estudo envolve atividades extra classe com acompanhamento do referido professor.

O aluno é obrigado cursar todas as disciplinas de sua série, porém, o aluno também tem a opção de cursar algumas disciplinas que não estão em sua grade curricular.

Além dos aspectos já citados, a designação de uma turma ao aluno deve seguir dois tipos de prioridades: baseada no desempenho e baseada no grupo. Estas prioridades, detalhadas a seguir, definem o nível de importância no momento de agrupar o aluno a uma turma.

A prioridade de desempenho é baseada no desempenho acadêmico do aluno, ou seja, na média global das notas em disciplinas já cursadas. Isso significa que o aluno com média global mais alta terá maior prioridade sobre um aluno com média mais baixa, no caso de matrícula em uma mesma turma/disciplina.

A prioridade de grupo consiste em priorizar a matrícula do aluno em turmas destinadas previamente para seu grupo. A instituição adota uma estratégia de dividir o conjunto de alunos de um curso em grupos. Com essa estratégia de vincular cada aluno a um grupo, permite que o aluno crie vínculos mais fortes de amizades com seus colegas de curso. Esta prioridade de grupo está relacionada basicamente com a vida social dos alunos. No momento em que o aluno ingressa na instituição ele é associado a um grupo. Cada grupo recebe uma identificação e o aluno carregará essa identificação de grupo durante toda a sua vida acadêmica dentro da instituição. O número de grupos em um curso varia de acordo com as suas características. Além disso, poderão, ainda, existir subgrupos. A razão de se criar subgrupos também depende das características de cada curso. Por exemplo, um curso que possui disciplinas com aulas teóricas e práticas, onde o grupo de alunos de aulas teóricas é dividido em grupos menores para as aulas práticas em laboratório.

O aluno deverá assistir todas as disciplinas de sua série sem conflitos de horário, porém, isto não lhe é garantido em relação às disciplinas fora de sua série. Portanto, o fato de um aluno cursar uma disciplina em dependência, não significa que ele conseguirá estar presente em todas as aulas. Uma vez designadas as disciplinas que o aluno irá cursar, o problema AAT tem como objetivo encontrar uma turma para cada disciplina. Lembrando que cada disciplina pode ter várias turmas disponíveis e cada turma com um horário e local pré-determinados. A resolução do problema visa minimizar os conflitos de horários (ou maximizar a oportunidade do aluno assistir aulas em disciplinas de dependência), balancear o número de alunos por turma e maximizar as prioridades dos alunos.

É comum a instituição se deparar com este problema operacional uma vez ao ano, sendo que a sua resolução ocorre poucos dias antes do início do ano letivo. A resolução do problema é centralizada em um órgão ligado a administração central da instituição. Apesar disso, eventuais inconsistências nos dados, conflitos de horários, confirmação de resultados, etc. requer que outros setores da instituição sejam consultados.

A resolução desse problema tem como objetivo designar todos os aluno em turmas de tal maneira que cada aluno tenha condições de assistir aulas de todas as disciplinas regulares e assistir o máximo possível de aulas das disciplinas em dependência de acordo com os seguintes critérios:• turma de disciplina regular tem prioridade sobre turma de disciplina em dependência;• as prioridades de desempenho e de grupo devem ser seguidas;

XLI SBPO 2009 - Pesquisa Operacional na Gestão do Conhecimento Pág. 312

• balancear o número de alunos dentro das turmas de uma mesma disciplina;• proibir o conflito de horários entre turmas de disciplinas regulares;• minimizar o conflito de horários entre turmas de disciplinas em dependência.

3. Revisão da LiteraturaDentro desse contexto têm surgido muitos problemas de otimização correlacionados, dentre eles podem ser citados: Alocação de Salas (Steiner, et al., 2000, Souza, et al., 2002) que visa o melhor aproveitamento do espaço físico disponível, atendendo critérios de preferência; Associação de Aulas (Cesco e Aguirre, 1998) e Alocação de Disciplinas a professores (Garcia et al., 1996) que tem o objetivo de alocar as disciplinas a um conjunto de professores, levando em consideração as restrições operacionais, preferências dos professores e alguns critérios de cunho pedagógico; Problema de Horários em Escolas (Souza, et al., 2000), que visa a construção/definição dos horários para cada disciplina atendendo um conjunto de restrições. Além disso, podem ser citados ainda os trabalhos de Pinheiro e Oliveira (2001), Lopes e Schoeffel (2002), Burk et al. (1997), Cooper e Kingston (1996), McClure e Wells (1984), Selim (1983), Soares (2002). Outras variantes dos problemas também são apresentadas por Breslaw (1976), Dinkel et al. (1989) Schaerf (1999).

Embora o problema abordado por este artigo seja enquadrado dentro de uma área mais geral conhecida como Problemas de Programação de Horários (Timetabling Problems), são raros os trabalhos que abordam o problema em questão. Dentre os trabalhos existentes na literatura, podemos citar Laporte e Desrocheshes (1986) e Alvares-Valdes, Crespo e Tamarit (2000). Ambos apresentam métodos diferentes, mas seus problemas possuem bastante similaridades. Enquanto que Laporte e Desroches (1986) apresenta um método baseado em branch and bound, com possibilidade de modificar as soluções de forma iterativa, Alvares-Valdes, Crespo e Tamarit (2000) apresenta um algoritmo heurístico baseado em Busca Tabu. Ambos focam no balanceamento do tamanho das turmas. Um método bastante diferente é proposto por Graves, Shrage e Sankaran (1993) que utiliza as preferências dos alunos em um procedimento baseado em leilão para a matrícula no curso. Existem casos em que o AAT é integrado a outros problemas relacionados, como Aubin e Ferland (1989) e Hertz e Robert (1998) que resolve o problema juntamente com a definição do quadro de horário. Müller e Murray (2008) também considera um caso integrado com definição de quadro horário concomitante com a otimização das preferências dos alunos. Beyrouthy et al. (2006) também trata sobre o problema de agrupamento de alunos integrado ao problema de alocação de espaço físico. Além desses casos, encontramos outras referências, tais como Busam (1967), Colijn (1973), Macon e Walker (1966), Winters (1971). Todos os casos encontrados na literatura utilizam critérios distintos dos tratados neste artigo. Principalmente o fato de trabalhar com dois tipos de disciplinas (regular e dependência) com níveis de prioridades diferentes, além da prioridade de grupo e maximização no número de disciplinas assistidas.

Geralmente, a resolução desses problemas é uma tarefa complexa e árdua. Na literatura existem algumas tentativas de se categorizar alguns desses problemas, associando-os com modelos teóricos da classe NP-difícil (Schmidt e Ströhlein, 1979; Welsh e Powell, 1967; Karp, 1972).

4. Modelos PropostosNesta seção são propostos três modelos para o problema, denominados de AATC, AATA AAGraph. Os dois primeiro baseiam-se em programação matemática, enquanto que AAGraph é baseado no problema de clique de peso máximo em grafo. As variáveis e notações utilizadas são apresentadas a seguir.

XLI SBPO 2009 - Pesquisa Operacional na Gestão do Conhecimento Pág. 313

4.1 Notação MatemáticaConsidere K o número de cursos da instituição, nk o número de alunos de um curso k, k=1,...,K. Sejam Da(i) o conjunto de disciplinas que o aluno i deve cursar, i=1,...,nk , e Dc(k) o conjunto de disciplinas de um curso k. ( )aT i Considere, ainda, ( )aT i = { }( ) : ( )d aT l l D i∀ ∈ o conjunto de todas as turmas que podem ser associadas ao aluno i, ( )dT l o conjunto de turmas associadas a uma disciplina l∈Dc(k) e ( )cT k = { }( ) : 1,...,a kT i i n= = { }( ) : ( )d cT l l D k∀ ∈ o conjunto de todas as turmas de um curso k. Dadas duas turmas a e b de disciplinas diferentes de um aluno i, então, duas turmas a e b são ditas conflitantes se houver algum dia da semana em que as duas turmas compartilham de um mesmo horário. Seja ( )ht i o conjunto de turmas que são conflitantes para o aluno i, h= 1,...,ηi, onde ηi é o número de conjuntos de turmas conflitantes para o aluno i.

4.2 AATC - Modelo Baseado no CursoEste primeiro modelo foi desenvolvido para realizar o agrupamento de alunos em turmas tomando um curso por vez. Em outras palavras, este modelo visa resolver o problema AAT para cada curso separadamente. Para cada curso k, k=1,...,K, o modelo AATC(k) é aplicado. O modelo é apresentado a seguir.

AATC(k):

1 21 ( ) ( )

( )

( )

1

s.a. (a) 1; 1,..., ; 1,..., ;

(b) 1; ( ); 1,..., ;

(c) ; (

k

a c

h

d

k

n

ij ij li j T i l D k

ij i kj t i

ij a kj T l

n

j ij ci

Minimizar p c x p g

x h i n

x l D i i n

s x j T

η

= ∈ ∈

=

+

≤ = =

= ∀ ∈ =

= ∀ ∈

∑ ∑ ∑

∑ );

(d) ( ); ( );

1 se a turma for selecionada para o aluno ; (e)

0 caso contrário.

j l d c

ij

k

s g j T l l D k

j ix

≤ ∀ ∈ ∀ ∈

=

A restrição (a) garante que, no máximo, uma turma será selecionada do conjunto de turmas conflitantes, enquanto que a restrição (b) garante que uma única turma será selecionada para cada disciplina l. A fim de garantir a viabilidade da restrição (b), são introduzidas turmas fictícias para cada disciplina l com um custo muito alto para penalizar a sua possível designação. Por convenção, essas turmas fictícias não são conflitantes com qualquer outra turma. Se ocorrer na solução do problema xj=1 para alguma turma fictícia j, então, conclui-se que não foi possível efetivar a matrícula na disciplina associada à turma j.

A restrição (c) define a variável sj que representa o número de alunos na turma j.

A restrição (d) define um gargalo gl para o tamanho de todas as turmas de uma disciplina l. A adição da variável gl na função objetivo tem o propósito de equilibrar o tamanho das turmas.

XLI SBPO 2009 - Pesquisa Operacional na Gestão do Conhecimento Pág. 314

Com base na média de desempenho do aluno i, denotada por Nota(i), foi definidow i=10 /Nota i como o peso associado ao aluno i para estabelecer a prioridade de

desempenho definido na seção 2. Para tentar aplicar a prioridade de grupo foi definido pij que assume um valor inteiro maior ou igual a 1, sendo que pij=1 se o aluno i possuir prioridade máxima para a turma j. Considere, também, α, β e δ como pesos associados a cada parcela de custo. Assim, o custo cij de alocar um aluno i a uma turma j é definido como:

se a turma corresponde a uma para o aluno ;

se a turma corresponde a uma para o aluno ;

se a turma for uma .

ij i

ij ij i

p w j ic p w j i

j

αβδ

=

disciplina regular disciplina em dependência

turma fictícia

Tem-se, portanto, um problema de programação linear inteira binária, cuja função objetivo é a agregação de dois objetivos: minimizar a soma dos custos de associações de aluno a turmas e minimizar o gargalo associado a cada disciplina. Este último objetivo visa equilibrar o tamanho das turmas por disciplina. Os pesos p1 e p2 definem o nível de importância de cada objetivo.

4.3 AATA - Modelo Baseado no AlunoEste segundo modelo foi desenvolvido considerando que o agrupamento de alunos em turmas é realizado a partir do conjunto de alunos de um curso, aplicando o modelo para cada aluno individualmente, segundo a ordem de prioridade de desempenho. Portanto, a primeira designação de turmas ocorre com o aluno com maior desempenho no curso e, posteriormente, os demais seguindo essa ordem. O modelo apresentado a seguir tem como objetivo associar cada aluno i a uma turma j para cada disciplina l que o aluno deve cursar, minimizando o valor de uma função objetivo.

AATA(i):

( )

( )

( )

s.a. (a) 1; 1,..., ;

(b) 1; ( )

1 se a turma for selecionada (c)

0 caso contrário.

a

h

d

j jj T i

j ij t i

j aj T l

j

Minimizar c x

x h

x l D i

jx

η

≤ =

= ∀ ∈

=

As restrições têm as mesmas interpretações das restrições (a) e (b) do modelo anterior. Diferente do modelo anterior, neste caso o valor de sj é conhecido com base nas alocações de alunos anteriores. Assim, para cada turma j que pode ser alocada ao aluno i é associado um custo cj

definido como: se a turma corresponde a uma ;

se a turma corresponde a uma ;

se a turma for uma .

ij j

j ij j

p s jc p s j

j

α λβ λδ

+= +

disciplina regulardisciplina em dependência

turma fictícia

Empiricamente, o tamanho da turma recebe um peso λ na tentativa de equilibrar o número de alunos por turma. Porém, esse peso não é (e nem deve ser) maior que os pesos α e β. Além disso, caso o número de alunos já associados à turma tenha alcançado o limite máximo desejado, então, o custo é penalizado novamente por um fator multiplicativo igual a 10.

XLI SBPO 2009 - Pesquisa Operacional na Gestão do Conhecimento Pág. 315

4.4 AAGraph - Modelo Baseado no Aluno usando GrafoEste modelo foi inspirado no problema de conjunto estável de peso máximo em grafos. O grafo Gi=(Vi , Ai) é definido da seguinte forma:

Vi é o conjunto de vértices representando as possíveis turmas que um aluno i possa ser designado;Ai é o conjunto de arestas representado conflito de horário entre turmas e/ou turmas de uma mesma disciplina.

O conjunto estável de um grafo é um subgrafo induzido Gi sobre os vértices que representa um subconjunto de vértices de tal maneira que não existam arestas entre eles. Assim, um conjunto estável para Gi representa um conjunto de turmas sem conflitos de horário entre elas e turmas de disciplinas diferentes. É conhecido da literatura que encontrar um conjunto estável de um grafo é equivalente a encontrar um clique no grafo complementar. Portanto, encontrar um algoritmo para clique é equivalente a encontrar um algoritmo para conjunto estável em grafo.

Porém, encontrar um conjunto estável, ou clique, não é suficiente para resolver o problema de agrupamento de alunos em turma porque só garante a cardinalidade de turmas. Para o problema em estudo é um problema de otimização, logo, o objetivo deste modelo baseado em grafo é encontrar um conjunto estável (ou clique) de peso máximo. Para isso, é necessário considerar os pesos nos vértices que define o nível de importância de designação de uma turma j (vértice) em relação ao outra para o aluno i. Neste caso, o peso de um vértice j foi definido como (MaxCi – cj), sendo MaxC i=max {c j ,i=1,... ,∣V i∣} e cj como definido no modelo AATA.

5.Os algoritmosOs algoritmos são baseados nos modelos propostos, inspirados no paradigma do algoritmo construtivo guloso (greedy), portanto, a estrutura de cada algoritmo é simples como podem ser observada a seguir.

Alg_AATCFor k:= 1 to K do Resolver modelo AATC(k);

Alg_AATA For k:= 1 to K do

For i:= 1 to nk do Resolver modelo AATA(i);

Alg_AAGraphFor k:= 1 to K do

For i:= 1 to nk do Construir o Grafo Gi; Encontrar o Clique de Peso Máximo em Gi;

Nos algoritmos Alg_AATA e Alg_AAGraph é considerada a ordem de prioridade de cada aluno em relação aos demais alunos do curso, ou seja, o aluno i tem prioridade em relação ao aluno i+1.

6. Implementação e TestesOs pesos que compõem os custos da função objetivo foram definidos e ajustados empiricamente com base em vários experimentos. Os modelos apresentados foram implementados e experimentados com os pesos conforme a Tabela 1.

XLI SBPO 2009 - Pesquisa Operacional na Gestão do Conhecimento Pág. 316

Tabela 1. Pesos da função objetivoModelo α β δ λ p1 p2

AATC 5 2,5.102 1.105 - 1 10AATA 5.103 2,5.105 1.108 10 - -

AAGraph 5.103 2,5.105 1.108 10 - -

O modelo AATC foi experimentado para algumas instâncias (cursos), porém, seu desempenho foi muito oneroso. Para várias instâncias o modelo ultrapassou a quantidade 10.000 variáveis e o tempo de processamento foi superior a 2 dias para um único curso.

Já o modelo AATA apresentou um desempenho muito superior em relação ao modelo AATC, atingindo a ordem de 3.103 vezes mais rápido e com resultados muito semelhantes. Considerando esse resultado, o modelo AATC foi descartado e o resultados apresentados da próxima seção foram alcançados com o AATA e o AAGraph.

Apesar do AATA ser um modelo de programação matemática, o qual fornece uma solução exata, a sua utilização pelo Alg_AATA é heurística. O processo heurístico está caracterizado por dois aspectos: primeiro pela ordem seqüencial de resolução baseada na prioridade de desempenho do aluno, segundo, os custos da função objetivo foram definidos e ajustados empiricamente com base em algumas simulações com dados reais da instituição.

Com base no algoritmo Alg_AATA foi implementado um sistema denominado de S_AATA que resolve o modelo AATA. Já o algoritmo Alg_AAGraph gerou o sistema S_AAGraph. Na implementação foram utilizados a linguagem C e um computador servidor IBM RISC System/6000, modelo R50, com um processador PowerPC 604e. Para resolver os problemas de programação matemática, foi utilizado o lp-solve que é um programa de código aberto baseado na licença Lesser GPL (Lesser General Public License) encontrado em http://groups.yahoo.com/group/lp_solve e para encontrar clique de peso máximo foi utilizado o algoritmo de Kumlander (2002).

Os experimentos com o S_AATA foram realizados com dados referentes aos anos letivos de 2003 e 2004. Os resultados alcançados foram comparados com os resultados do sistema denominado S_OLD, em referência ao sistema computacional utilizado nos últimos anos pela instituição. O S_OLD foi desenvolvido e mantido pelo pessoal técnico da própria instituição usando apenas conhecimentos de algoritmos, estrutura de dados e linguagem de programação, ou seja, não foi utilizando qualquer técnica de modelagem do problema.

O algoritmo implementado no S_OLD foi baseado essencialmente num processo de busca exaustiva de difícil descrição. Uma vez constatado o alto consumo de recursos computacionais, o pessoal técnico optou por utilizar o sistema apenas no período noturno para não comprometer o trabalho de outros setores que compartilhavam o mesmo recurso computacional. Isso significa que toda correção e alterações nos dados de entrada feitas durante o dia só poderiam ser testadas na noite seguinte. Em virtude desse cenário, o processo de agrupamento de alunos em turmas consumia um período superior a 15 dias de trabalho.

7. ResultadosA instituição conta com mais de 45 cursos de graduação, porém, foram considerados apenas 31 cursos com mais de 100 alunos matriculados, pois, o restante dos cursos consome pouco tempo computacional até mesmo com o S_OLD. A Tabela 2 mostra o conjunto de dados de dois anos letivos distintos, AL1 e AL2, utilizados nos testes.

XLI SBPO 2009 - Pesquisa Operacional na Gestão do Conhecimento Pág. 317

Tabela 2. Dados utilizados no testeDescrição AL1 AL2Nº de cursos 31 31Nº total de alunos 7.898 8.160Nº total de disciplinas envolvidas 53.012 54.923Nº médio de alunos por curso 254,77 263,23Nº médio de disciplinas regulares por aluno 6,34 6,34Nº médio de disciplinas em dependência por aluno 0,36 0,39

Os resultados a seguir são utilizados para comparar os sistemas S_OLD e S_AATA. Os dados são utilizados pelo S_OLD, permitindo, assim, a comparação com o S_AATA. Os valores Máximo, Mínimo e Médio apresentados a seguir correspondem às estatísticas coletadas com dados de cada curso experimentado.

Os tempos de processamento dos sistemas S_AATA e S_OLD estão resumidos na Tabela 3. Como pode ser observado, o tempo total do S_AATA consumiu menos de 10% do tempo gasto pelo S_OLD.

Tabela 3. Tempo de processamento (em segundos)

TempoAL1 AL2

S_OLD S_AATA S_OLD S_AATAMáximo 9.655 226 11.293 290Mínimo 53 64 62 54Médio 1.202,06 113,03 1.258,50 122,91Total 37.262 3.504 39.014 3.810

Em virtude de algumas limitações do sistema S_OLD e de conflitos de horários entre turmas, muitos alunos matriculados nas disciplinas regulares ficavam sem turmas alocadas. Essa falha era corrigida manualmente. Com o novo sistema S_AATA esse trabalho foi reduzido sensivelmente como mostra a Tabela 4. Em AL1 o número de alunos não designados foi reduzido de 437 para 106, sendo que em AL2 foi reduzido de 254 para 18.

Tabela 4. Número de alunos não designados a turmas

Nº AlunosAL1 AL2

S_OLD S_AATA S_OLD S_AATAMáximo 58 23 58 6Mínimo 0 0 0 0Médio 14,10 3,42 8,19 0,58Total 437 106 254 18

O fato de um aluno estar matriculado em uma disciplina em dependência não significa que ele conseguirá assistir às aulas caso ocorra conflito de horário com outras disciplinas. A Tabela 5 mostra que o sistema S_AATA reduziu o número de conflitos permitindo que mais alunos em dependência pudessem assistir aulas.

Tabela 5. Número de alunos com conflito de horário em dependência

Nº alunosAL1 AL2

S_OLD S_AATA S_OLD S_AATAMáximo 167 160 193 185Mínimo 1 1 2 0Médio 48,42 40,35 58,87 46,32Total 1.501 1.251 1.825 1.436

XLI SBPO 2009 - Pesquisa Operacional na Gestão do Conhecimento Pág. 318

De acordo com a Tabela 5, em AL1 um total 250 alunos a mais poderiam ter assistido as aulas das disciplinas em dependência se S_AATA tivesse sido utilizado. Em AL2 essa diferença aumentou para 389.

Uma vez realizados os testes com o AATA, numa segunda etapa foi utilizado o AAGraph. Do ponto de vista da qualidade das solução, o AAGraph conseguiu as mesmas soluções, porém, com um desempenho superior ao modelo AATA. Em média, o desempenho do algoritmo Alg_AAGraph foi 30% mais rápido que o algoritmo Alg_AATA.

8. Conclusões

Os aspectos que motivaram o estudo descrito neste artigo foram a importância prática da solução do problema, a dificuldade operacional e computacional de resolução do problema. Este trabalho alcançou excelentes soluções para um caso real de agrupamento de alunos em turmas em universidade com significativa redução do uso de recursos computacionais e humanos. Do ponto de vista operacional para a instituição, houve um ganho considerável no uso racional de recursos humanos e computacionais relacionados com a redução do tempo total de processamento, que atingiu aproximadamente 90% de redução. Do ponto de vista dos alunos, também houve melhorias, pois o novo sistema contribuiu para a melhoria da qualidade das soluções em relação aos alunos em dependência. Muitos alunos em regime de dependência passaram a ter a oportunidade de participar em aulas com seus demais colegas.

O ganho de produtividade do setor responsável por fazer as tais agrupamentos é outro aspecto a ser destacado. Os resultados mostram uma redução média de mais de 80% do trabalho manual realizado pelo pessoal do setor responsável.

Um aspecto bastante importante do S_AATA e do S_ AAGraph que eles podem ser processado, ao contrário do S_OLD, em horário de expediente, sem comprometer o compartilhamento dos recursos computacionais com outros setores da instituição como vinha ocorrendo. Isso torna o trabalho de conferência, correção das informações e a tomada de decisão mais ágil e eficiente, uma vez que as alterações na base de dados podem ser testadas a qualquer momento, sem a necessidade de aguardar o período noturno para realizar o processamento.

O estudo comparativo entre as diferentes abordagens de resolução possibilitou a escolha da melhor opção. Ambos os modelos AATA e AAGraph utilizam algoritmo com complexidade assintótica exponencial para o pior caso. Porém, os experimentos com o segundo modelo apresentou uma desempenho superior. Isso pode ser atribuído ao fato de que o MAAGaph ser resolvido por um algoritmo específico, enquanto que o AATA utiliza um algoritmo geral para resolver programação linear inteira.

Considerando o expressivo ganho em todo processo operacional envolvendo o problema de agrupamento de alunos em turmas, o novo sistema proposto foi efetivamente adotado pela instituição, em substituição do sistema do anterior. Do ponto de vista prático, os resultados foram bastante satisfatórios em relação a qualidade das soluções bem como no tempo computacional, porém, do ponto de vista científico, ainda surge algumas indagações. Entre elas, a dúvida sobre a possibilidade de melhoria das soluções aplicando algum algoritmo melhorativo a partir das soluções construídas. O uso de meta-heurísticas nessa segunda fase pode ser um foco de investigação, porém, é comum um algoritmo construtivo ser mais rápido que um algoritmo melhorativo. Portanto, o acréscimo no tempo computacional, decorrente do uso de um algoritmo melhorativo, pode ser um fator decisório quanto a utilização dessa segunda fase na prática deste caso estudado.

XLI SBPO 2009 - Pesquisa Operacional na Gestão do Conhecimento Pág. 319

Agradecimento: Ao apoio financeiro do Conselho Nacional de Desenvolvimento Científico e Tencológico (CNPq).

Referência Bibliográfica

Alvarez-Valdés, R., Crespo, E. e Tamarit, J.M. (2000). Assigning students to course sections using Tabu Search. Annals of Operations Research, 96, 1-16.Aubin, J. e Ferland, J. A. (1989). A large scale timetabling problem. Computers and Operations Research, 16(1), 67-77. Beyrouthy, C., Burke, E. K., Landa-Silva, D., McCollum, B., McMullan, P., e Parkes, A. J. (2006). The Teaching Space Allocation Problem with Splitting. Proceedings of The 6th International Conference on the Practice and Theory of Automated Timetabling,. 103-122.Breslaw, J. A. (1976). A Linear Programming Solution to the Faculty Assignment Problem. Socio-Economic Planning Sciences, 10, 227-230.Burke, E., Jackson, K., Kingston, J. H. e Weare, R. (1997). Automated University Timetabling: The State of the Art. The Computer Journal, 9, 565-571. Cesco, J. C. e Aguirre, N. (1998). Una Nota sobre Unicidad en un Modelo de Asignación de Aulas. IX Congresso Latino-Iberoamericano de Investigación y Sistemas - CD-ROMCooper, T. B. e Kingston, J. H. (1996). The Complexity of Timetable Construction Problems. IN: The Practice and Theory of Automated Timetabling [edited by Burke, E.K., Ross, P. ] Springer Lecture Notes in Computer Science, 1153, 283-95.Dinkel, J. J., Mote, J. e Venkataramanan, M. A. (1989). An Efficient Decision Support System for Academic Course Scheduling. Operations Research, 6 , 853-864.Garcia, B. B., Machado, F., Boeres, M. C. S. e Rangel, M. C. (1995). Aplicação de algoritmos genéticos no problema de alocação de disciplinas a professores de um departamento. Anais do XXVI Simpósio Brasileiro de Pesquisa Operacional. 138-142.Hertz, A. e Robert, V. (1998). Constructing a course schedule by solving a series of assignment type problems. European Journal of Operational Research, 108(3), 585-603.Karp, R. M. (1972) Reducibility among combinatorial problems. IN: Complexity of Computer Computations. [edited by Miller, R.E., Tatcher, J.W.]. Plenum Press, New York, 85-103. Kumlander, Deniss (2002). A new exact algorithm for the maximum-weight clique problem based on a heuristic vertex-coloring and a backtrack search”, Technical Report. Tallin Technical University, Estonia, 1-8.Laporte, G., Desroches, S. (1986). The problem of assigning students to course sections in a large engineering school. Computers and Operations Research , 13 (4), 387 - 394. Lopes, M. C. e Schoeffel, P. (2002). Um método de alocação para o problema de reservas de sala de aula. II Congresso Brasileiro de Computação – CBComp, 1-10. McClure, R. H. e Wells, C. E. (1984). A Mathematical Programming Model for Faculty Course Assignments. Decision Sciences, 3, 409-420.Muller, T. e Murray, K. (2008). Comprehensive Approach to Student Sectioning. Proceedings of the 7th International Conference on the Practice and Theory of Automated Timetabling. 1-22.Pinheiro P. R. e Oliveira, J. A. (2001). Um ambiente de apoio á construção de horário escolar na web: modelagem, implementação e aplicação nas escolas de ensino médio, Anais do XXXIII Simpósio Brasileiro de Pesquisa Operacional. CD-ROM.Schaerf, A. (1999) A Survey of Automated Timetabling. Artificial Intelligence Review, 13 (2), 87 – 127. Schmidt, G. e Ströhlein, T. (1980). Timetable construction -- an annotated bibliography. The Computer Journal, 4 , 307-316. Selim, S. M. (1983). An Algorithm for Producing Course and Lecture Timetables. Computers and Education, 7, 101-108.Soares, J. A. (2002). A Maquina de Boltzmann na solução do problema de timetabling. Monografia de Qualificação ao Doutorado. Universidade Federal do Rio de Janeiro.

XLI SBPO 2009 - Pesquisa Operacional na Gestão do Conhecimento Pág. 320

Souza, M. J. F., Maculan, N. e Ochi, L. S. (2000). Uma Heurística para o Problema do Horário de Escolas. X Congresso Latino-Iberoamericano de Investigación y Sistemas (CLAIO). CD-ROM.Souza, M. J. F., Xavier, A. X. e Araújo, C. R. (2002). Experiências com a utilização de Simulated Annealing e Busca Tabu na resolução do Problema de Alocação de Salas. Anais do XXXIV Simpósio Brasileiro de Pesquisa Operacional. CD-ROM.Steiner, M. T. A., Siqueira, P.H., Carnieri, C., Neto, P. J. S. e Zamboni, L.V.S. (2000). Desenvolvimento de software para alocação de salas de aula. Anais do X Congresso Latino-Iberoamericano de Investigación y Sistemas (CLAIO). CD-ROM.Welsh, D. A. e Powell, M. B. (1967). An upper bound for the chromatic number of a graph and its application to timetabling problems. The Computer Journal, 10, 85-86.

XLI SBPO 2009 - Pesquisa Operacional na Gestão do Conhecimento Pág. 321