Escolar Documentos
Profissional Documentos
Cultura Documentos
Joyce Ribeiro
PASSOS, MG
2019
Joyce Ribeiro
PASSOS, MG
2019
Ficha catalográfica elaborada pelo Sistema de Geração de Ficha Catalográfica do
Instituto Federal do Sul de Minas Gerais - Campus Passos
CDD: 006.32
Dedico este trabalho a minha família e amigos que
me apoiaram neste momento.
AGRADECIMENTOS
A geração da grade horária de uma instituição de ensino pode ser considerada uma
tarefa árdua de se realizar manualmente e tal tarefa é nomeada na literatura de
timetabling. Este trabalho buscou solucioná-lo de forma que a mesma aplicação
possa ser reaplicada em diversas instituições, otimizando seu tempo de execução.
Devido a sua complexidade, há autores que buscam tratá-lo através do
desenvolvimento para apenas uma instituição. Para torná-lo flexível, será realizado
um levantamento das possíveis restrições que instituições de ensino podem utilizar.
Assim, ao se realizar a implementação, o usuário poderá montar as restrições que
lhe forem úteis. Através do estudo teórico do problema timetabling e a compreensão
do funcionamento de metaheurísticas, estabeleceu-se a utilização de Algoritmos
Genéticos (AGs) para a obtenção da solução. Devido a sua forma estrutural e a sua
atuação, os AGs agem por meio de evoluções do indivíduo para se obter uma
solução satisfatível ao problema. Uma grade horária satisfatória é obtida através da
satisfabilidade de todas as restrições fortes vinculadas à solução, considerando que
as mesmas devem ser obrigatoriamente satisfeitas como descrito pelo problema
timetabling. A fim de validar o projeto realizado, utilizou-se a grade horária
desenvolvida no IFSULDEMINAS - Campus Passos, no ano de 2019. Neste
trabalho, ao inserir as restrições utilizadas, as disciplinas, os cursos e os professores
da instituição, a implementação não foi capaz de gerar uma grade satisfazendo
todas as restrições fortes para a solução. Porém, foi possível gerar indivíduos
contendo soluções próximas às ótimas, de modo que tornou-se possível avaliar a
qualidade da solução obtida e o tempo de execução dos algorítimos propostos para
seleção e cruzamento. Dentre as abordagens avaliadas, a utilização do algoritmo de
seleção por torneiro junto do algoritmo de cruzamento de um ponto, apresentaram
os melhores tempos de execução.
1 INTRODUÇÃO...................................................................................................11
1.1 Objetivo Geral....................................................................................................13
1.2 Objetivos Específicos.........................................................................................13
2 REFERENCIAL TEÓRICO................................................................................14
2.1 Timetabling.........................................................................................................14
2.1.1 Restrições..........................................................................................................15
2.1.2 Complexidade....................................................................................................17
2.2 Metaheurísticas..................................................................................................18
2.2.1 Categorias e Aplicações.....................................................................................18
2.3 Algoritmos Genéticos.........................................................................................20
2.3.1 Representação do indivíduo, População Inicial e Avaliação.............................22
2.3.2 Seleção..............................................................................................................23
2.3.3 Cruzamento........................................................................................................23
2.3.4 Mutação..............................................................................................................25
2.3.5 Pseudocódigo, Condições de Parada e Aplicações..........................................26
3 MATERIAL E MÉTODOS..................................................................................27
3.1 Metodologia de Pesquisa e Materiais................................................................27
3.2 Detalhes da implementação..............................................................................28
3.2.1 Representação e validação do indivíduo...........................................................29
3.2.2 Criação do individuo...........................................................................................31
3.2.1 Restrições pertinentes à implementação...........................................................32
3.2.2 Algoritmos de seleção, cruzamento e mutação.................................................34
4 RESULTADOS E DISCUSSÕES.......................................................................35
5 CONCLUSÃO....................................................................................................44
5.1 Trabalhos Futuros..............................................................................................44
REFERÊNCIAS BIBLIOGRÁFICAS.................................................................46
ANEXO A...........................................................................................................49
11
1 INTRODUÇÃO
satisfatíveis mas não ótimas para o problema tratado. Assim, deve-se avaliar a real
necessidade de realizar tais mudanças.
O problema timetabling pertencente à classe NP-Completo (SCHAERF, 1999).
Nessa classe de problemas, é possível gerar a solução para apenas uma instância
do problema em tempo polinomial, não sendo possível garantir que o mesmo tenha
uma solução para todas as suas instâncias, o que torna necessário um tempo não
polinomial para resolvê-lo em toda sua completude.
O presente trabalho far-se-á uso de metaheurísticas para se obter uma
solução em menor tempo possível. Como descrito por Arroyo (2002),
metaheurísticas são métodos inteligentes e flexíveis, pois possuem uma estrutura
com componentes genéricos capazes de se adaptar ao problema a que pretende-se
resolver. Dessa maneira, o emprego de uma metaheurística apresenta uma resposta
a um problema da classe NP-Completo em tempo eficiente, mas não há garantias
sobre sua otimalidade.
Pela sua capacidade de adaptabilidade, metaheurísticas são comumente
utilizadas em problemas de geração de grades de horários, como observado em
Machado (2009). Nesse trabalho, o autor utiliza a metaheurística Busca Tabu como
base para o desenvolvimento do algoritmo de coloração de grafos, problema
conhecidamente NP-Completo. Após sua solução, o autor realizou uma extensão da
solução para o problema da geração da grade horária, gerando uma resposta
equivalente para esse problema.
Andrade (2014) utilizou as metaheurísticas Busca Local e Pesquisa local
iterada (Iterated Local Search) para desenvolver uma ferramenta capaz de gerar a
grade horária para instituições públicas de ensino fundamental. No trabalho de
Ciscon e Alvarenga (2005), foi empregada a metaheurística algoritmos genéticos
para solucionar o problema de timetabling. Os autores apresentaram um método
cuja finalidade era o de eliminar os horários em branco entre duas aulas de um
mesmo turno e aulas isoladas no horário dos professores.
O presente trabalho fará uso da metaheurística evolutiva conhecida na
literatura como Algoritmo Genético (AG) para resolver o timetabling. Esse algoritmo
matemático é inspirado no mecanismo de evolução natural e recombinação
genética. Como explica Bucior (2018), AGs fornecem mecanismos que propõe
modelar computacionalmente as regras básicas da teoria da evolução natural, de
13
forma que em um ciclo evolutivo busca-se alcançar uma solução ideal entre os
candidatos, melhorando-os gradativamente.
2 REFERENCIAL TEÓRICO
2.1 Timetabling
2.1.1 Restrições
2.1.2 Complexidade
Schaerf (1999) ressalta que é possível obter a solução exata para o problema
de timetabling apenas em casos pequenos, contendo no máximo 10 disciplinas.
Desse modo, neste trabalho, não foi implementada a abordagem ingênua neste
trabalho. Através da proposta apresentada por Frangouli et al. (1995) para o
timetabling universitário, obtém-se a Equação 1, resultando no campo de busca para
se encontrar esta solução exata.
onde:
CBTU campo de busca para o problema timetabling universitário;
DS a quantidade de dias da semana letiva;
AD número máximo de aulas diárias;
SD número de salas disponíveis da instituição;
D número de disciplinas, para o semestre atual;
NA número de aulas a serem ministradas durante a semana.
18
2.2 Metaheurísticas
Genótipo Estrutura
Indivíduo Solução
Fonte: adaptado de Izquierdo (2013).
21
2.3.2 Seleção
2.3.3 Cruzamento
seguintes. Para efetuar este cruzamento existem diversas técnicas, com base no
trabalho de Ribeiro Filho (2000) tem-se as seguintes técnicas de cruzamento: com
corte em um ponto, com corte em dois pontos, com múltiplos pontos e segmentado.
Para a técnica de cruzamento com corte em um ponto, considerada padrão
para um AG, seu funcionamento se inicia com o sorteio aleatoriamente um ponto,
chamado de ponto de corte e a partir dele será efetuada a troca genética entre os
indivíduos como podemos observar na Figura 3. Possuindo o mesmo funcionamento
que a técnica anterior, o cruzamento com corte em dois pontos se difere por utilizar
dois pontos onde serão efetuados os cortes, como pode ser observado na Figura 4.
casos essa técnica não funciona de maneira eficiente. Por fim, tem-se o cruzamento
segmentado, que se apresenta como uma variação da técnica anterior, onde não se
mantém fixo o valor dos pontos obtidos anteriormente, sendo assim a cada geração
serão gerados novos pontos.
2.3.4 Mutação
Recurso que oferece meios para se introduzir novos elementos nos indivíduos
criados, promovendo a diversidade e a variabilidade extra da população, sem
interromper o progresso já alcançado pelo algoritmo genético (BUCIOR, 2018).
Permite que o algoritmo trabalhe sobre um campo de busca maior, não dependendo
somente dos indivíduos obtidos pelo cruzamento genético (TIMÓTEO, 2002).
Em Almeida (2015), são descritas das técnicas de mutação tradicional,
dirigida e com base em ordem. Sendo que a primeira acontece na representação
binária, de forma que se é sorteado um valor que representará o gene escolhido
para ser alterado, como pode ser observado na Figura 5.
3 MATERIAL E MÉTODOS
horária e para turmas do ensino médio serão geradas duas grades seguindo o
formato de primeiro bimestre e segundo bimestre.
Cada intervalo da tabela contém dois valores como observado na Figura 10,
sendo eles a posição da disciplina e do professor que a ministrará, ambos valores
correspondem a posição de um ArrayList (vetor dinâmico) para disciplinas e um para
professores. A seleção de professores para as disciplinas passa por uma avaliação
primária para verificar se a disciplina já possui um professor responsável, ou se o
possível professor possui alguma restrição que o impossibilite de ministrá-la.
A avaliação de um indivíduo foi realizada a partir da somatória de restrições
fortes e fracas satisfeitas, subtraída do valor do maior individuo. Dessa forma, foi
possível obter os melhores indivíduos para a geração de novas gerações. Para
validar um indivíduo como satisfatório para o problema, foram analisadas suas
restrições fortes, considerando-se que quanto mais restrições ele quebrar, mais
inaceitável ele se torna.
foram definidas, sendo que as restrições fracas que dizem respeito aos professores
e disciplinas ficaram a cargo do usuário inseri-las.
Para armazenamento das restrições, foram desenvolvidas listas referenciando
professores e disciplinas. Às restrições fortes, foi associado peso 0, que
corresponde à necessidade de serem satisfeitas. Já às restrições fracas, foram
associados pesos no intervalo de 1 a 5, sendo que o peso 1 representa a restrição
com maior relevância e a de peso 5 menor relevância.
Ao se utilizar a grade horária desenvolvida em 2019 no IFSULDEMINAS –
Campus Passos para a validação do estudo, têm-se restrições fracas e fortes
voltadas aos professores. Para as fracas, foram estabelecidas preferências de dias
durante a semana para se ministrar as disciplinas. Já as fortes estão relacionadas à
necessidade de cumprir a preferência de dias, para aqueles que possuírem
afastamento para qualificação (mestrado ou doutorado).
Para auxiliar o usuário no tratamento e escolha das restrições que farão parte
da solução, durante o cadastro de disciplinas e de professores, são ofertadas
possíveis restrições que poderão fazer parte da solução final caso necessário.
Desse modo, o usuário escolherá as que melhor correspondem ao problema a que
se pretende resolver. pode-se observar as restrições na Figura 12.
4 RESULTADOS E DISCUSSÕES
Para que seja aceita uma solução para o problema, é necessário que a
mesma possua todas as restrições fortes satisfeitas. Neste trabalho, não foi possível
obter uma solução satisfatória que atenda a restrição forte que está sendo tratada
por meio da aleatoriedade, para a base de dados do IFSULDEMINAS – campus
Passos. Isso ocorre pois, a solução estagna conforme os valores se aproximam da
solução desejada. Foram realizados 4 testes para uma população de 50, 100 e 200
indivíduos, empregando os algoritmos de seleção e cruzamento implementados.
Foram utilizados os valores de 200, 500 e 1000 gerações.
Na primeira simulação foi utilizado o algoritmo de seleção por roleta e o
cruzamento em um ponto, para gerações de tamanho 200, 500 e 1000 e
empregando 50, 100 e 200 indivíduos. Os resultados contendo a qualidade das
soluções obtidas nas simulações podem ser observados nas Figuras 13, 14 e 15.
Ainda, o tempo de execução obtido nesses mesmos testes pode ser observado na
Tabela 3.
Figura 13: qualidade das soluções obtidas empregando seleção por roleta, cruzamento em um ponto
e 50, 100 e 200 indivíduos e um valor máximo de 200 gerações.
Figura 14: qualidade das soluções obtidas empregando seleção por roleta, cruzamento em um ponto
e 50, 100 e 200 indivíduos e um valor máximo de 500 gerações.
Figura 15: qualidade das soluções obtidas empregando seleção por roleta, cruzamento em um ponto
e 50, 100 e 200 indivíduos e um valor máximo de 1000 gerações.
População
Gerações
50 100 200
200 29s 58s 123s
500 72s 141s 285s
1000 112s 212s 394s
Fonte: autoria própria.
37
Figura 16: qualidade das soluções obtidas empregando seleção por roleta, cruzamento em dois
pontos e 50, 100 e 200 indivíduos e um valor máximo de 200 gerações.
Figura 17: qualidade das soluções obtidas empregando seleção por roleta, cruzamento em dois
pontos e 50, 100 e 200 indivíduos e um valor máximo de 500 gerações.
Figura 18: qualidade das soluções obtidas empregando seleção por roleta, cruzamento em dois
pontos e 50, 100 e 200 indivíduos e um valor máximo de 1000 gerações.
Tabela 4: Tempo de execução obtido empregando seleção por roleta e cruzamento em dois pontos.
População
Gerações
50 100 200
200 22s 42s 85s
500 55s 103s 200s
1000 113s 221s 407s
Fonte: autoria própria.
Figura 19: qualidade das soluções obtidas empregando seleção por torneio, cruzamento em um ponto
e 50, 100 e 200 indivíduos e um valor máximo de 200 gerações.
Figura 20: qualidade das soluções obtidas empregando seleção por torneio, cruzamento em um ponto
e 50, 100 e 200 indivíduos e um valor máximo de 500 gerações.
Figura 21: qualidade das soluções obtidas empregando seleção por torneio, cruzamento em um ponto
e 50, 100 e 200 indivíduos e um valor máximo de 1000 gerações.
Tabela 5: Tempo de execução obtido nas simulações empregando seleção por torneio e cruzamento
em um ponto.
População
Gerações
50 100 200
200 32s 42s 86s
500 51s 100s 195s
1000 103s 199s 389s
Fonte: autoria própria.
Figura 22: qualidade das soluções obtidas empregando seleção por torneio, cruzamento em dois
pontos e 50, 100 e 200 indivíduos e um valor máximo de 200 gerações.
Figura 23: qualidade das soluções obtidas empregando seleção por torneio, cruzamento em dois
pontos e 50, 100 e 200 indivíduos e um valor máximo de 500 gerações.
Figura 24: qualidade das soluções obtidas empregando seleção por torneio, cruzamento em dois
pontos e 50, 100 e 200 indivíduos e um valor máximo de 1000 gerações.
Tabela 6: Tempo de execução obtido nas simulações empregando seleção por torneio e cruzamento
em dois pontos.
População
Gerações
50 100 200
200 35s 42s 125s
500 54s 103s 206s
1000 111s 214s 402s
Fonte: autoria própria.
De acordo com os resultados obtidos, pode-se afirmar que quanto maior for o
tamanho da população, maior será o tempo gasto pelo algoritmo para coletar
respostas, independente da quantidade de gerações utilizadas como paramento. Ao
analisar o resultado apresentado pelos algoritmos, observou-se que o tempo
necessário para se obter modificações no indivíduos que possuem as maiores
populações é superior aos demais.
A qualidade de um individuo é definida a partir da quantidade de restrições
fortes que o mesmo não satisfaz. Deve-se levar em conta que a única restrição forte
definida para este trabalho a ser calculada é a correspondente a ocorrência do
mesmo professor ser escalado para aulas de disciplinas distintas em mesmo horário,
as demais restrições foram tratadas ao decorrer da implementação.
Considerando o que foi dito, ao se analisar as figuras anteriores aquelas que
possuírem o valor de qualidade próximo a 0, são consideradas as melhores
43
5 CONCLUSÃO
REFERÊNCIAS BIBLIOGRÁFICAS
SILVEIRA, Jhonathan Alberto dos Santos et al. Uso de abordagem heurística para o
problema do quadro de horários e alocação de salas de aula. 2018.
ANEXO A
Na Figura 25, pode-se observar um exemplo de solução obtida ao utilizar o algoritmo
proposto neste trabalho. Nessa Figura: i) H1 (07h-07h50), H2 (07h50-08h40), H3
(08h40-09h30), H4 (10h-10h50), H5 (10h50-11h40), H6 (13h-13h50), H7 (13h50-
14h40), H8 (15h-15h50) e H9 (15h50-16h40) referem-se aos horários de início e
término das aulas; ii) T1 (Bacharelado em Ciência da Computação (BCC) – 2°
Período), T2 (BCC – 4° Período), T3 (BCC – 6° Período), T4 (BCC – 8° Período), T5
(Técnico em Informática Integrado ao Ensino Médio (TI) – 1° ano), T6 (TI – 2°ano),
T7 (TI – 3° ano), T8 (Técnico em Produção de Moda Integrado ao Ensino Médio
(PM) – 1° ano), T9 (PM – 2° ano), T10 (PM – 3° ano), T11 (Técnico em Comunicação
Visual Integrado ao Ensino Médio (CV) – 1° ano), T12 (CV – 2° ano) e T13 (CV – 3°
ano) referem-se às turmas utilizadas para teste; iii) em cada uma das colunas, são
descritos, respectivamente, o número do código relativo à disciplina, seguido do
número de identificação do professor que deve ser lecionar nesse horário. Os
horários vagos são representados por “0 - 0”.
49