Estudo de Coloração Aplicado ao Problema de Alocação de
Horário de Professores
Fernanda Navarro1, Frederico Coelho (Orientador)1
1
Departamento de Ciência da Computação – Universidade Presidente Antônio Carlos
(UNIPAC)
Campus Magnus – Barbacena – MG – Brasil
[email protected], [email protected]
Resumo: Dado o grande problema de gerar a grade horária de docentes o
trabalho tem como objetivo geral o desenvolvimento de uma ferramenta capaz
de solucionar o problema de alocação de horários acadêmicos utilizando Teoria
dos Grafos, mais especificamente a parte de coloração. Apesar do problema se
mostrar ser da classe NP-difícil, a heurística permitiu a realização dos testes para
alocação de professores chegando a um resultado próximo ao ideal.
Palavras-chave: Alocação de horário; Coloração;
1. Introdução
As instituições educacionais se deparam com um grande problema que requer tempo e
paciência para resolver, a alocação de professores na grade horária. Esse problema é
sempre encontrado a cada período letivo e na maioria das instituições é resolvido
manualmente, o que torna a obtenção da melhor solução uma tarefa demorada.
Essa demora para obter o melhor resultado é devido a vários motivos, como a
disponibilidade dos professores, redução dos dias em que o professor estará na
instituição, e cada professor não pode estar alocado em duas turmas ao mesmo tempo,
entre outras. Estes motivos sempre geram conflitos e que tem que ser solucionados, nem
sempre agradando a todos, mas chegando a melhor forma possível.
O objetivo do desenvolvimento desse trabalho é diminuir o trabalho manual e o
tempo gasto pelos coordenadores, diretores e funcionários da secretaria de instituições
que sempre se deparam com os problemas no início do semestre de se conseguir alocar
todos os professores, atendendo as restrições que cada um possui, pois um professor
nem sempre é exclusivo da instituição, portanto não está disponível a todo o tempo para
atendê-la.
Este caso pode ser modelado e resolvido matematicamente como um problema
de otimização combinatória, na qual a complexidade aumenta exponencialmente em
função do número de disciplinas e de professores envolvidos. Existem várias técnicas
utilizadas para resolver a otimização combinatória, dentre elas, a teoria dos grafos, mais
especificamente a parte de coloração, que será abordado para a realização deste trabalho
de conclusão de curso.
A seguir, uma breve descrição das seções que compõem este trabalho.
A subseção um apresenta o problema de alocação do quadro de horários
descrevendo suas principais características. Na seção dois é feita uma revisão
bibliográfica onde são apresentadas algumas técnicas que podem ser utilizadas para
resolver problemas de otimização combinatória e também alguns trabalhos que já foram
realizados baseados no problema de alocação de horário. Já a seção três aborda a
solução proposta, com os conceitos de coloração de grafos e sua possível aplicação no
problema, também apresenta o sistema desenvolvido e descreve o processo de
realização de testes que tem por finalidade a formulação de considerações em relação à
aplicação desenvolvida. Por fim, a última seção tem como objetivo apresentar as
conclusões obtidas durante a realização deste trabalho de conclusão de curso, e
principalmente o de relatar as análises dos resultados obtidos através da realização de
testes.
1.2. O problema do School Timetabling
Problemas de alocação de horário também são conhecidos como School Timetabling,
são considerados uma aplicação da otimização combinatória da classe NP difícil, sendo
mais fácil analisar se o resultado está correto do que obter analiticamente tal solução em
tempo polinomial, não existindo um modelo solução universal. (Preis, 2007)
O tipo de restrições envolvidas no problema pode envolver a disponibilidade dos
recursos, preferências pessoais, cumprimento da grade curricular, conflito de horários,
janelas, a existência de mais de um professor designado para lecionar uma mesma
disciplina; e diversas outras restrições que dependem da instituição em questão.
A combinação dessas restrições, que podem ser cada vez maiores, torna o
problema cada vez mais complexo, mostrando que a utilização de algoritmos ótimos
normalmente torna-se inviável quando o tamanho da entrada para o problema é muito
grande ou quando as restrições são complicadas. Ao observar a bibliografia, a maioria
das abordagens é feita através de algoritmos heurísticos, que são métodos que
encontram uma solução aproximada com tempo computacional reduzido.
2. Revisão Bibliográfica
Será feita uma revisão bibliográfica de algumas técnicas e trabalhos relacionados ao
tema.
2.1. Técnicas
Várias técnicas podem ser utilizadas para resolver os problemas de otimização
combinatória, a seguir serão descritas algumas dessas técnicas que serão subdivididas
em algoritmos heurísticos, meta-heurísticas, algoritmos aproximados, teoria dos grafos,
programação por restrições, programação linear e programação inteira.
2.1.1. Algoritmos Heurísticos
São algoritmos que não garantem encontrar a solução ótima de um problema, mas são
capazes de retornar uma solução de qualidade em um tempo adequado para as
necessidades da aplicação. (Constantino, 2003)
Os métodos heurísticos procuram um grau tão grande quanto possível de uma
ação a uma situação. Assim ele engloba estratégias, procedimentos, métodos de
aproximação tentativa/erro, sempre na procura da melhor forma de chegar a um
determinado fim. Os processos heurísticos exigem muitas vezes menos tempo que os
processos algorítmicos, aproximando-se mais da forma como o ser humano raciocina e
chega às decisões acertadamente e garantem soluções eficientes. (Rodrigues, 2004)
2.1.2. Meta-heurísticas
“Uma meta-heurística é um conjunto de conceitos que podem ser utilizados para definir
métodos heurísticos aplicáveis a um extenso conjunto de problemas”. (Sucupira, 2004)
2.1.2.1. Algoritmos Genéticos, Scatter Search e Algoritmos Meméticos
Família de modelos computacionais, inspirados na evolução natural dos seres vivos.
(Constantino, 2003)
Os Algoritmos Genéticos (AG’s) proporcionam métodos de buscar todas as
combinações de dígitos para identificar uma série que represente a melhor solução para
o problema, simulando processos naturais de sobrevivência e reprodução das
populações, essenciais na evolução. (Maciel, 2004)
O Scatter Search opera sobre uma população de soluções, ao invés de uma única
solução em cada iteração, e emprega procedimentos para combinar essas soluções com
o intuito de gerar novas soluções. Por outro lado, diferentemente desses mesmos
métodos, viola a premissa de que as abordagens evolucionárias devam ser baseadas em
escolhas aleatórias, limitando o uso da randomização a procedimentos de diversificação.
(Oliveira, 2007)
Algoritmos Meméticos são os algoritmos genéticos que realizam otimização
local. (Sucupira, 2004)
2.1.2.2. Simulated Annealing
Baseada originalmente em conceitos de Mecânica Estatística considerando a analogia
entre o processo físico annealing de sólidos e a resolução de problemas de otimização
combinatorial. A Simulated Annealing (SA) simula um método natural, fundamentado
numa analogia com a termodinâmica ao simular o resfriamento de um conjunto de
átomos aquecidos, operação conhecida como Recozimento (annealing). (Silva, 2005)
2.1.3. Algoritmos Aproximados
Nos Métodos Heurísticos não há garantia alguma a respeito da solução encontrada. Isto
é, não há como saber se a solução obtida está "perto" ou "longe" da melhor solução
possível em termos de qualidade. Contudo, há ocasiões em que essa noção de
proximidade faz-se necessária. Por exemplo, eu posso estar interessado em uma solução
que não precisa ser a melhor, mas deve ser, no máximo, 10% pior que a melhor solução
possível. Nesses casos, entram em ação os Algoritmos Aproximados. (Constantino,
2003)
2.1.4. Teoria dos Grafos
Modelos baseados em grafos são imensamente utilizados em muitos problemas de
otimização combinatória. Grafo é uma forma de representar de um conjunto de
elementos e suas relações. Esse recurso é muito utilizado para modelar os problemas por
ser uma forma bastante intuitiva para representá-los. Além disso, na literatura podem ser
encontrados algoritmos para resolver diversos problemas em grafos. (Constantino,
2003)
2.1.5. Programação por Restrições
Esta técnica teve suas origens no campo da Inteligência Artificial, mais especificamente
no ramo da Programação Lógica. Simplificando, consiste em um mecanismo de
inferência lógica auxiliado por um resolvedor de restrições que são impostas sobre as
variáveis do problema em questão. A modelagem dos problemas é facilitada por se
tratar de uma linguagem declarativa baseada em implicações lógicas. Restrições
complexas podem ser escritas de forma clara e concisa. Tem obtido bastante sucesso em
problemas de porte industrial. (Constantino, 2003)
É uma tecnologia de programação cuja principal característica é permitir ao
programador uma dedicação total à modelagem, tornando oculto o processo de efetiva
resolução dos problemas. Como conseqüência, a programação de restrições tem a
capacidade de reduzir o esforço de programação e tornar mais natural a programação
modular. (Sucupira, 2003)
2.1.6. Programação Linear e Programação Inteira
A Programação Linear utiliza modelos matemáticos para expressar um problema em
termos de variáveis contínuas e um conjunto de restrições lineares sobre essas variáveis.
Dada uma função objetivo que descreve basicamente como é calculado o "custo" a ser
minimizado, aplica-se um algoritmo que resolve o problema de forma eficiente.
Entretanto, na vida real é muito comum que as variáveis precisem assumir valores
inteiros e não contínuos. Por incrível que pareça, quando se impõe a restrição de que as
variáveis assumam valores inteiros o problema pode ficar muito mais difícil. E a idéia
natural de simplesmente arredondar os valores nem sempre traz bons resultados. É, aí
que entra a Programação Inteira. (Constantino, 2003)
2.2. Trabalhos relacionados
Nesta seção são descritos os trabalho relacionados a alocação de horário, os trabalhos
escritos, como monografias, artigos, publicações e também alguns sites que se
relacionam com o tema.
2.2.1. Trabalhos teóricos
Como exemplo de trabalho teórico será citado o trabalho de conclusão de curso
apresentado por Daniela Fernanda da Silva Costa ao Departamento de Ciência da
Computação, com o tema Estudo e Implementação de Algoritmos Genéticos Aplicados
ao Problema de Alocação de Horário, onde foi apresentada a compreensão de definição,
funcionamento e implementação de Algoritmos Genéticos para solucionar o problema
de quadro de horários, o que proporcionou o armazenamento de dados de entrada e
saída, gerados durante a execução da aplicação. (Costa, 2004)
2.2.2. Trabalhos práticos
Foram encontrados dois sites como trabalhos relacionados ao tema alocação de horário,
utilizando dois sistemas distintos para gerar automaticamente a grade de horário.
O site www.horarioescolar.com utiliza o SACHE – Sistema Automatizado de
Criação de Horários Escolares, um programa de computador que monta
automaticamente a grade horária da escola em poucos minutos, e possibilita o reajuste
manual através de uma ferramenta “inteligente” para auxiliá-lo. (Technique)
O site www.horario.com.br utiliza o Urânia que é um sofisticado software
disponibilizado para compra que também gera automaticamente a grade horária escolar.
(Geha)
3. Solução Proposta
A solução proposta é utilizar a coloração de grafos, realizar a atribuição de cores aos
vértices, de modo que vértices adjacentes tenham cores distintas. Se G é um grafo
simples, então uma coloração para G é uma atribuição de cores para cada vértice de
forma que vértices adjacentes tenham diferentes cores. O problema de coloração de
grafos é NP-completo.
A aplicação nesse problema seria resolver: N disciplinas que devem ter seus
exames escalonados de forma a não haver conflitos entre eles, e usando-se o menor
número de períodos possível, associando à coloração de grafos onde cada disciplina será
representada por um vértice e se houver conflito entre duas disciplinas, como serem
lecionadas no mesmo horário e pelo mesmo professor, existirá uma aresta entre os dois
vértices. A solução seria obtida atribuindo o menor número possível de cores. Uma cor
seria associada a um vértice, representando uma célula de horário, onde os vértices de
mesma cor e sem aresta podem ser realizados no mesmo horário.
3.1. O Sistema
Para o desenvolvimento do sistema foi utilizado o Sistema Gerenciador de Banco de
Dados MySql Server 5.1 e a implementação feita na linguagem Java com a ferramenta
NetBeans IDE 6.1.
3.2. Aplicação desenvolvida
A aplicação desenvolvida será abordada através da exploração dos dados de entrada e
saída, com o objetivo de aplicar as características citadas sobre a coloração de grafos
para tratar as restrições.
A interface da aplicação visa a simplicidade, para facilitar a utilização da
aplicação, de modo que não sejam encontrados problemas na aprendizagem do
funcionamento da mesma, deve, portanto ser útil e prática.
Na aplicação desenvolvida foram utilizados os dados do Departamento de
Ciência da Computação da Universidade Presidente Antônio Carlos (DCC-UNIPAC)
como problema real para comparações futuras.
As restrições podem variar de acordo com as normas de funcionamento de cada
instituição, nesse caso foram consideradas as seguintes restrições:
 A confecção de um quadro de horários atende somente a um determinado
semestre;
 O quadro de horário deve satisfazer uma combinação possível entre
professores, número de aulas e disciplinas para atender a determinada
turma. Não é possível ocorrer a existência de uma disciplina que não seja
lecionada por um professor ou que não seja assistida por uma turma.
Assim como também é inaceitável que a disciplina não tenha um tempo
máximo definido.
 Nenhum professor pode lecionar em duas turmas diferentes ao mesmo
tempo;
 Nenhuma turma pode assistir a duas disciplinas diferentes ao mesmo
tempo;
 Existe um limite determinado de número de aulas para que sejam
atendidos pelas disciplinas;
Os dados de entrada são fornecidos pelo usuário e são extremamente necessários
para que a aplicação funcione de maneira correta.
A Figura 1 apresenta a janela principal onde se tem acesso a professor, posteriormente a
disciplina e a grade horária.
Figura 1: Janela Principal
A figura 2 exibe o formulário Professor que disponibiliza as funções de cadastro,
consulta, alteração e exclusão. Os dados necessários para o cadastro dos professores são
matrícula, nome, disponibilidade, e o peso dessa restrição. A consulta, as alterações e
exclusões são realizadas pelo nome informado.
Figura 2: Formulário Professor
A figura 3 exibe o formulário Disciplina que disponibiliza as funções de
cadastro, consulta, alteração e exclusão. Os dados necessários para o cadastro das
disciplinas são código, nome, período em que é lecionada, a carga horária e o professor
que leciona essa disciplina. A consulta, as alterações e exclusões são realizadas pelo
nome informado.
Figura 3: Formulário Disciplina
O sistema permite também como entrada de dados o número de períodos que o
curso mantém atualmente, esse número é multiplicado por 10 (dez) que corresponde ao
número de aulas ministradas semanalmente, conseqüentemente ao número de cores. O
resultado gera o número de vértices, onde, logo após havendo igualdade na coloração é
feita uma comparação para verificação das restrições, onde houver restrição é gerada
uma aresta onde automaticamente serão feitas as modificações necessárias para gerar a
melhor opção da grade horária.
Na execução do programa, a entrada foi a situação real do DCC em que existem
4 períodos distintos, o resultado satisfatório seria alocar 40 aulas. Foram realizados
testes e modificações foram feitas no código, dos resultados, o mais próximo foi com 29
alocações e o mais distante com 17 alocações. Abaixo pode ser visualizado um dos
testes realizados, onde é exibida a posição, local de alocação no vetor, matéria, código
da disciplina lecionada, professor, matrícula do professor e qual horário é lecionada a
disciplina.
Posição: 0
Matéria: 10
Professor: 5
1ºSeg
Posição: 1
Matéria: 13
Professor: 5
1ºQua
Posição: 2
Matéria: 13
Professor: 5
1ºSeg
Posição: 3
Matéria: 17
Professor: 5
1ºQua
Posição: 4
Matéria: 17
Professor: 5
1ºSeg
Posição: 5
Matéria: 19
Professor: 6
1ºTer
Posição: 6
Matéria: 20
Professor: 6
1ºTer
Posição: 7
Matéria: 21
Professor: 12
1ºSex
Posição: 8
Matéria: 6
Professor: 9
2ºSeg
Posição: 9
Matéria: 16
Professor: 9
2ºSeg
Posição: 10
Matéria: 18
Professor: 9
2ºSeg
Posição: 11
Matéria: 15
Professor: 8
2ºQua
Posição: 12
Matéria: 7
Professor: 4
1ºTer
Posição: 13
Matéria: 8
Professor: 4
1ºTer
Posição: 14
Matéria: 9
Professor: 2
1ºTer
Posição: 15
Matéria: 12
Professor: 2
1ºTer
Posição: 16
Matéria: 14
Professor: 10
1ºTer
Posição: 17
Matéria: 22
Professor: 10
1ºTer
Posição: 18
Matéria: 11
Professor: 3
1ºTer
Após serem inseridos os dados de entrada descritos anteriormente é possível a
visualização do grafo que corresponde a resolução do problema.
6. Conclusão
O resultado do trabalho pode ser considerado satisfatório tendo em vista que o que foi
inicialmente proposto foi concretizado através da abordagem feita de coloração de
grafos.
Podemos comprovar através dos grafos que quanto maior o número de restrições
maior a dificuldade de encontrar uma melhor solução.
A aplicação desenvolvida neste trabalho possibilita as modificações para que
possa ser utilizada em outros departamentos e cursos.
Apesar da junção do problema de alocação de horários e a coloração de grafos
por serem um problema exponencial não mostraram viável a utilização deste método, o
mesmo poderá ser utilizado para possíveis modificações em trabalhos futuros.
7. Bibliografia
CONSTANTINO, A. A. Otimização combinatória. Maringá, 2003. Disponível em:
<http://www.din.uem.br/~ademir/pg/otimizacao.html>. Acesso em: 17 de junho de
2009.
COSTA, Daniela Fernanda da Silva. Estudo e implementação de algoritmos
genéticos aplicados ao problema de alocação de horário. Barbacena: 2004. Trabalho
de Conclusão de Curso (Graduação em Ciência da Computação) – Universidade
Presidente Antônio Carlos.
COSTA, Felippe Pereira da; GUIMARÃES, Irce Fernandes Gomes. Um algoritmo
evolutivo híbrido para o problema de programação de horários em escolas.
Disponível em: <http://www.decom.ufop.br/prof/marcone/Publicacoes/ENEGEP-2002PHE.pdf> Acesso em: 14 de junho de 2009;
COSTA, Felippe Pereira da. Programação de horários em escolas via Grasp e Busca
Tabu. 2003. Disponível em:
<http://www.decom.ufop.br/prof/marcone/Orientacoes/PHEviaGRASPeBuscaTabu.pdf
> Acesso em: 14 de junho de 2009;
GEHA, Sistemas Especialistas, www.horario.com.br, disponível em:
<http://www.horario.com.br/> Acesso em: 17 de junho de 2009;
HAMAWAKI, Cristiane Divina Lemes. Geração automática de grade horária
usando algoritmos genéticos: o caso da faculdade de engenharia elétrica da UFU.
Disponível em: <http://www.bdtd.ufu.br//tde_busca/arquivo.php?codArquivo=230>
Acesso em: 14 de junho de 2009;
MACIEL, Emanuella da Silva. Aplicações de algoritmos genéticos para otimização
da logística dos correios na zona da mata mineira, utilizando o problema do
caixeiro viajante. Barbacena: 2004. Trabalho de Conclusão de Curso (Graduação em
Ciência da Computação) – Universidade Presidente Antônio Carlos.
OLIVEIRA, Eduardo Fonseca de; PAGOTO, Fábio Bozzi; SILVA, Flávia Torezani;
LORENZONI, Luciano Lessi. Scatter Search aplicado ao problema de otimização
da alocação de sondas de produção em poços de petróleo. Foz do Iguaçu: 2007.
Disponível em:
<http://www.abepro.org.br/biblioteca/ENEGEP2007_TR620461_9846.pdf> Acesso em:
31/10/2010;
PREIS, Thomás Augusto. Protótipo Gerador de Grades Horárias para Instituições
de Ensino. 2007. Disponível em: <
http://www.inf.furb.br/tcc/index.php?cd=6&tcc=1068> Acesso em: 17 de junho de
2009.
RODRIGUES, Gardênio Puiatti. Otimização de rotas através da aplicação de
algoritmos exatos e heurísticos. Barbacena: 2004. Trabalho de Conclusão de Curso
(Graduação em Ciência da Computação) – Universidade Presidente Antônio Carlos.
SILVA, Amanda Sávio Nascimento e; SAMPAIO, Rudini Menezes; ALVARENGA,
Guilherme Bastos. Uma Aplicação de Simulated Annealing para o Problema de
Alocação de Salas. 2005. Disponível em: <
http://www.dcc.ufla.br/infocomp/artigos/v4.3/art08.pdf> Acesso em: 01/11/2009.
SUCUPIRA, Igor Ribeiro. Programação por Propagação de Restrições: Teoria e
Aplicações. 2003. Disponível em:
<http://www.ime.usp.br/~igorrs/ic/relatorio/relatorio.pdf> Acesso em: 02/11/09.
SUCUPIRA, Igor Ribeiro. Métodos Heurísticos genéricos: Meta-heurísticas e Hiperheurísticas.
2004.
Disponível
em:
<
http://www.ime.usp.br/~igorrs/seminarios/metahiper.ppt> Acesso em: 15 de outubro de
2009.
TECHNIQUE. horárioescolar.com. Disponível em: <
http://www.horarioescolar.com/servlet/com.technique.hesc.Controller> Acesso em 17
de junho de 2009.
Download

Estudo de Coloração Aplicado ao Problema de Alocação