UNIVERSIDADE FEDERAL DO TRIÂNGULO MINEIRO
INSTITUTO DE CIÊNCIAS TECNOLÓGICAS E EXATAS
ENGENHARIA DE PRODUÇÃO
JOÃO LUCAS HANA FRADE
UM ALGORITMO GENÉTICO PARA O PROBLEMA DE
ALOCAÇÃO DE SALAS NA UNIVERSIDADE FEDERAL DO
TRIÂNGULO MINEIRO.
UBERABA
2016
JOÃO LUCAS HANA FRADE
UM ALGORITMO GENÉTICO PARA O PROBLEMA DE
ALOCAÇÃO DE SALAS NA UNIVERSIDADE FEDERAL DO
TRIÂNGULO MINEIRO.
Trabalho de Conclusão de Curso
apresentado à Universidade Federal
do Triângulo Mineiro como requisito
parcial para obtenção do título de
Graduação no Curso Superior de
Engenharia de Produção
Orientador: Prof. Dr. Victor Claudio
Bento de Camargo
UBERABA
2016
SUMÁRIO
Resumo ....................................................................................................... 4
Abstract ........................................................................................................ 4
1 INTRODUÇÃO ......................................................................................... 5
2 CARACTERIZAÇÃO DO PROBLEMA ..................................................... 8
3 ALGORITMOS GENÉTICOS ................................................................. 12
4 SOLUÇÃO PROPOSTA ........................................................................ 14
4.1 População inicial .................................................................................. 14
4.2 Mutação de salas ................................................................................. 16
4.3 Mutação de disciplinas ......................................................................... 18
4.4 Cruzamento ......................................................................................... 19
4.5 Mecanismo de avaliação do indivíduo ................................................. 21
4.6 Mecanismo de Seleção ........................................................................ 22
5 FUNCIONAMENTO DO SOFTWARE .................................................... 24
5.1 Entradas .............................................................................................. 24
5.1.1 Salas ................................................................................................. 24
5.1.2 Disciplinas ......................................................................................... 24
5.1.3 Configurações ................................................................................... 26
5.2 Saídas .................................................................................................. 27
6 RESULTADOS ...................................................................................... 30
7 CONCLUSÕES E TRABALHOS FUTUROS ......................................... 34
Referências Bibliográficas ......................................................................... 36
Anexos ....................................................................................................... 38
Resumo
Este trabalho apresenta um Algoritmo Genético para resolver o Problema
de Alocação de Salas em cursos universitários. O problema consiste em alocar
turmas de disciplinas, com horários já previamente definidos, à salas que
estejam disponíveis para isso, levando-se em conta restrições pré-
estabelecidas. O algoritmo foi implementado na linguagem VBA – Visual Basic
for Applications e testado com dados de uma instituição de ensino superior para
o primeiro semestre de 2016. A solução obtida pelo método proposto foi
comparada com a utilizada até o momento, verificando-se a presença de
melhores resultados em tempo de execução e, segundo indicadores
estabelecidos, em qualidade.
Palavras-chave: Algoritmo Genético, Problema de Alocação de Salas, VBA -
Visual Basic for Applications.
Abstract
This paper presents a Genetic Algorithm to solve the Classroom
Assignment Problem in university courses. The problem consists in allocating
classes, with schedules previously defined, to available classrooms, respecting
a set of constraints. This algorithm was implemented in the VBA – Visual Basic
for Applications computer language and tested with real data from the first
semester of 2016 of a university. The computacional solution was compared with
the manual solution, used until the moment. The results show improvements in
execution time and quality, following certain parameters.
Keywords: Genetic Algorithm, Classroom Assignment Problem, VBA - Visual
Basic for Applications.
5
1 INTRODUÇÃO
GERCHMAN (2016) explica a área de Pesquisa Operacional, dentro do
âmbito da Engenharia de Produção, como uma área que se preocupa
frequentemente com a otimização de sistemas complexos, buscando sua melhor
configuração. Explica ainda que esta abordagem modela problemas a partir de
uma ou múltiplas funções objetivos, as quais buscam-se maximizar ou minimizar,
considerando restrições que limitam o espaço das soluções possíveis.
PEREIRA, NETTO e LARACRUZ (2007) explicam que o problema de
programação de horários (PPH) é considerado um dos mais interessantes da
Pesquisa Operacional, sendo conhecido na literatura inglesa como timetabling.
Explicam ainda que a especificidade “programação de horário em instituições de
ensino” no Brasil mostra-se incipiente, realidade que vem sendo mudada graças
a trabalhos que vêm sendo realizados sobre o assunto.
Os problemas de timetabling consistem em problemas que visam alocar
e definir horários em diversos setores, seguindo restrições definidas.
SCHAERF (1999) afirma que as pesquisas relacionadas ao assunto
começaram com GOTLIEB (1963). Apesar disso, pode-se dizer que ainda não
se encontram muito amadurecidas, havendo-se muito a ser explorado.
Ainda segundo SCHAERF (1999), a resolução manual dos problemas de
timetabling normalmente exigem muito tempo e trabalho das pessoas
envolvidas, além da possibilidade da solução encontrada ser insatisfatória por
não atender determinadas restrições. Assim, torna-se extremamente importante
buscar métodos mais automatizados e que demandem menos esforço para a
resolução desses problemas.
Há diversos estudos do tipo para resolução de problemas enfrentados
pelas universidades, entre esses, SCHAERF (1999) destaca os do tipo Course
Timetabling Problem, que visam resolver problemas de programação dos
horários de disciplinas, do tipo Classroom Assignment Problem, que visam
resolver problemas de alocação de disciplinas a salas de aulas e do tipo
Examination Timetabling Problem, que visam organizar os horários de realização
de exames nas universidades; todos sempre seguindo determinadas restrições,
6
como, por exemplo: “Um professor não pode ministrar duas disciplinas ao
mesmo tempo” para o primeiro tipo, “duas disciplinas não podem ser ministradas
em uma mesma sala ao mesmo tempo” para o segundo tipo e “Um aplicador de
exames não pode estar presente em duas salas ao mesmo tempo” para o
terceiro tipo.
No Brasil, o assunto vem ganhando espaço e, em 2012, uma equipe de
professores e alunos da UFOP - Universidade Federal de Ouro Preto venceu a
International Timetabling Competition 2011-2012. (RIBEIRO, 2013).
Há uma ampla variedade de algoritmos utilizados para a resolução de
problemas do tipo: RIBEIRO (2013) e DE JESUS CAMPOS (2012) utilizaram o
Algoritmo Húngaro; SUBRAMANIAN (2006) utilizou o método de Busca Tabu;
PRADO e SOUZA (2014) utilizaram a metaheurística Simulated Annealing
(recozimento simulado); OLIVEIRA (2014) utilizou um Algoritmo Genético; assim
como há também casos da utilização de algoritmos híbridos, como feito por
SOUZA, COSTA E GUIMARÃES (2012).
Na UFTM – Universidade Federal do Triângulo Mineiro, a alocação de
salas ainda é realizada manualmente, o que demanda muito esforço e tempo por
parte dos encarregados, havendo ainda o risco da geração de uma solução
insatisfatória. A implementação de uma solução computacional pode gerar
benefícios em tempo e qualidade, além de possibilitar o aproveitamento desses
funcionários em outras atividades.
Este trabalho realizará um estudo do tipo classroom assignment problem
no campus Univerde da UFTM, com foco no ICTE – Instituto de Ciências
Tecnológicas e Exatas.
O algoritmo escolhido para resolução do problema em questão foi o
Algoritmo Genético, por ser de fácil implementação, e trabalhos como (DE
OLVEIRA, 2014) e (CIRINO, SANTOS, DELBEM, 2015) terem sido bem-
sucedidos, promovendo melhorias com seu uso.
Além disso, FRANCISCO (2011) explica que os algoritmos genéticos têm
se mostrado eficientes na busca de soluções ótimas ou satisfatórias em uma
7
vasta classe de problemas de otimização, já que não há a imposição de muitas
limitações, como ocorre nos métodos tradicionais.
DE CASTRO (2001) ainda cita as seguintes vantagens da utilização dos
algoritmos genéticos:
São robustos e aplicáveis a uma grande variedade de problemas;
Não requerem conhecimentos ou informações dos gradientes da
superfície definida pela função objetivo;
Descontinuidades ou complexidades presentes na superfície
acarretam pouco ou nenhum efeito no desempenho da busca;
São mais resistentes a se prenderem a ótimos locais;
Apresentam um bom desempenho para uma grande escala de
problemas;
São de fácil implementação e proporcionam maior flexibilidade no
tratamento do problema a ser resolvido.
Além disso, DE MIRANDA (2007) diz que uma das vantagens de um
algoritmo genético é a simplificação que eles permitem na formulação e solução
de problemas de otimização.
A linguagem escolhida para implementação de uma solução para o
problema foi a VBA -Visual Basic for Applications, já que, por essa linguagem
atuar no Microsoft Excel, a utilização do software será facilitada devido aos
funcionários encarregados de resolver esse tipo problema já utilizarem o
Microsoft Excel como auxílio à resolução.
Além disso, TAMAKI, WESTPHAL e PEREIRA informam que o VBA
apresenta linguagem que possui um ambiente de desenvolvimento integrado,
que facilita a construção da interface das aplicações.
8
2 CARACTERIZAÇÃO DO PROBLEMA
O problema abordado foi o do ICTE - Instituto de Ciências Tecnológicas e
Exatas do campus Univerde da UFTM – Universidade Federal do Triângulo
Mineiro. Este instituto aloca todos os cursos de engenharia da universidade,
sendo eles: Engenharia Ambiental, Engenharia Civil, Engenharia de Alimentos,
Engenharia de Produção, Engenharia Elétrica, Engenharia Mecânica e
Engenharia Química.
O instituto pode utilizar 57 salas diferentes do campus para alocar suas
disciplinas. Cada uma dessas salas possui variações, como algum detalhe
específico, capacidade e se está localizada ou não no andar térreo, podendo ou
não coincidir com as características de outras salas. As informações de todas as
salas estão disponíveis no Anexo A.
As aulas possuem duração de 50 minutos e acontecem de segunda a
sexta em 7 horários diferentes durante o período da manhã e 7 horários
diferentes no período da tarde, mostrados na Tabela 1.
Tabela 1 – Horários de aula.
Manhã Tarde
07:10 13:10
08:00 14:00
08:50 14:50
09:40 15:40
10:00 16:00
10:50 16:50
11:40 17:40
As disciplinas foram caracterizadas de modo que cada disciplina deve ser
contínua, ou seja, acontecer em horários que estejam em sequência. Caso uma
mesma disciplina aconteça em dois horários que não estejam em sequência, ela
será dividida em duas. Por exemplo, caso uma disciplina possuísse os horários
a seguir:
9
Disciplina: PESQUISA OPERACIONAL II
Horário: Quarta das 10h às 11:40
Quinta das 10h às 11:40
Ela teria sido modificada, ficando da seguinte maneira:
Disciplina: PESQUISA OPERACIONAL II A
Horário: Quarta das 10h às 11:40
Disciplina: PESQUISA OPERACIONAL II B
Horário: Quinta das 10h às 11:40
Essa alteração aumentou a facilidade de implementar um algoritmo para
a resolução do problema.
O estudo buscou alocar as 459 disciplinas do ICTE no primeiro semestre
letivo de 2016. Cada uma dessas disciplinas possuí as seguintes características:
Nome;
Curso e período
Dia;
Horário de início;
Horário de fim;
Detalhe;
Quantidade de alunos;
Presença de cadeirantes.
A diretoria do instituto considera 7 restrições necessárias para obter uma
boa solução para o problema:
i. Duas ou mais aulas não podem ocorrer simultaneamente na mesma sala;
ii. Uma aula não pode ser alocada em mais de uma sala em um mesmo
horário;
iii. Disciplinas que possuam alunos com dificuldade de locomoção devem ser
alocadas em salas do andar térreo;
10
iv. As disciplinas devem ser alocadas em salas do tipo próprio para às suas
necessidades;
v. As disciplinas não devem ser alocadas em salas com capacidade menor
que a quantidade de alunos da disciplina;
vi. As disciplinas não devem ser alocadas em salas com capacidade muito
maior que a quantidade de alunos da disciplina;
vii. Disciplinas de um mesmo período da grade curricular de um curso
deverão ser alocadas preferencialmente em uma mesma sala.
BURKE et al. (1997) classificam as restrições em dois tipos: hard
constraint, denominados requisitos essenciais, isto é, não satisfazer essas
restrições inviabiliza o problema, e soft constraint, denominados requisitos não
essenciais, isto é, não satisfazer essas restrições não inviabiliza o problema.
Sendo assim, o não cumprimento das restrições i e ii inviabilizam o problema,
sendo essas então consideradas restrições do tipo hard constraint e as restantes
do tipo soft constraint, já que o seu não cumprimento não inviabiliza o problema,
apenas diminui sua qualidade.
Atualmente, o problema é resolvido manualmente em planilhas do
Microsoft Excel compartilhadas via o aplicativo Google Drive por secretárias de
todas as engenharias, juntamente com a secretária da direção do ICTE. Ao todo,
são 8 secretárias envolvidas na resolução do problema.
Para a alocação, cada curso possui duas salas preferenciais, nas quais
deve tentar alocar o máximo possível de suas disciplinas. Após essa fase, as
disciplinas que as secretárias não conseguiram encaixar nas salas são
informadas à direção para que faça os últimos ajustes nas salas que ainda têm
capacidade ociosa. As disciplinas do ciclo básico para às engenharias são
alocadas pela direção do instituto, nas salas que não são preferenciais de
nenhum curso. Não há critério para a escolha das salas, havendo somente a
priorização de salas quando há alunos portadores de necessidades especiais,
que necessitem ficar nas salas do térreo.
Os alunos ingressantes de todas as engenharias são divididos em 6
turmas, de modo que cada turma tenha todas suas aulas em uma mesma sala
sempre.
11
A alocação de disciplinas para os laboratórios é feita em conjunto entre
as secretárias dos cursos que farão uso de determinado laboratório.
O tempo total para a realização de todo esse processo é de um mês.
12
3 ALGORITMOS GENÉTICOS
Algoritmo Genético é descrito por KONZEN (2003) da seguinte forma:
Algoritmo Genético (AG) é uma técnica de busca aleatória direcionada, desenvolvida por Holland (1975), capaz de obter a solução ótima global num espaço de busca complexo multi-dimensional. O AG é baseado na evolução das espécies, usando operadores inspirados no processo de evolução natural. Estes operadores, conhecidos como operadores genéticos de crossover e mutação, manipulam indivíduos de uma população, através de gerações, para melhorar (aperfeiçoar) a adaptação (fitness) gradativamente. Os indivíduos numa população, também denominados de cromossomos, são representados por cadeias (strings) de números binários. A função de avaliação (fitness) estabelece a relação entre o AG e o problema de otimização. (KONZEN, 2003, p. 189-207).
Paralelamente a KONZEN (2003), DE MIRANDA (2007) os descreve
como uma família de modelos computacionais inspirados na evolução, que
incorporam uma solução potencial para um problema específico numa estrutura
semelhante à de um cromossomo e aplicam operadores de seleção e "cross-
over" a essas estruturas de forma a preservar informações críticas relativas à
solução do problema. DE MIRANDA (2007) ainda menciona que normalmente
os AG's são vistos como otimizadores de funções, embora a quantidade de
problemas para o qual os AG's se aplicam seja bastante abrangente.
DE MIRANDA (2007) ainda descreve o processo de implementação de
um algoritmo genético, explicando que o início se dá com uma população
aleatória de cromossomos e que essas estruturas são, então, avaliadas e
associadas a uma probabilidade de reprodução de tal forma que as maiores
probabilidades são associadas aos cromossomos que representam uma melhor
solução para o problema de otimização do que àqueles que representam uma
solução pior.
O princípio e funcionamento dos AG's é baseado no processo evolutivo de seres vivos, seguindo o princípio básico de que as gerações derivadas serão mais "evoluídas" do que os seus precursores. Gerações melhores continuariam existindo, enquanto que gerações mais "frágeis", tenderiam a sucumbir. (KONZEN, 2003, p. 189-207).
KONZEN (2003) explica que a evolução da população é realizada através
de operadores genéticos: crossover e mutação. No crossover, a partir de um
determinado número de cruzamentos entre os cromossomos, selecionados
aleatoriamente a partir das melhores respostas experimentais, estes combinam-
se formando novos indivíduos. Na mutação, os componentes de uma população
podem sofrer perturbações em seus genes.
13
Como métodos de otimização, os AG's encontram-se em uma posição
intermediária entre os métodos de otimização classificados como "fracos" e
"fortes" – são considerados moderados. Os métodos de otimização "fracos"
fazem poucas suposições quanto às hipóteses do problema. Eles podem ser
amplamente empregados, porém levam um tempo relativamente grande para
encontrar uma solução aceitável. De outro lado, métodos de otimização "fortes",
se utilizam de várias suposições a respeito do problema, convergindo
rapidamente para um resultado, sendo limitados a uma pequena região de
problemas relativamente simples. Quando aplicados a um problema que excede
os limites dessa região, estes métodos tendem a encontrar resultados errôneos
ou entrar em colapso (LUCASIUS & KATEMAN, 1993 apud KONZEN, 2003).
14
4 SOLUÇÃO PROPOSTA
Para encontrar uma solução viável para o problema, foi feita a
implementação de um Algoritmo Genético na linguagem VBA – Visual Basic for
Applications. O Algoritmo 1 ilustra o funcionamento do programa, em que há 4
etapas consistentes com o conceito dos algoritmos genéticos: Geração da
população inicial, mutação de salas, mutação de disciplinas e cruzamentos.
Cada etapa também conta com uma avaliação e seleção para escolher os
indivíduos que melhor se adequam às condições pré-estabelecidas.
1. Gerar população inicial
2. De 0 até o número de gerações – 1
2.1. Realizar mutação de salas
2.2. Avaliar indivíduo mutado
2.3. Realizar mutação de disciplinas
2.4. Avaliar indivíduo mutado
2.5. Realizar cruzamento
2.6. Avaliar indivíduo cruzado
2.7. Selecionar os melhores indivíduos
3. Selecionar o melhor indivíduo da última geração
4. Gerar relatório
5. Gerar grade horária para todas as salas
6. Fim
Algoritmo 1 – Geração da solução.
4.1 População inicial
Para a criação da população inicial, cria-se uma matriz com a quantidade
de linhas igual à quantidade de salas disponíveis e com a quantidade de colunas
igual à quantidade de horários possíveis de aula na semana. Sendo assim, cada
matriz [quantidade de salas x quantidade de horários] representa um indivíduo da
população, conforme ilustra a Figura 1.
Figura 1 – Exemplo de matriz indivíduo.
15
Fonte: Elaborada pelo autor (2016).
Cada posição dessa matriz representa uma disciplina, sendo que essa
disciplina foi alocada na sala correspondente à sua linha, no horário
correspondente à sua coluna. Uma posição ainda não ocupada é representada
pelo número “-1”, enquanto as disciplinas são representadas por seus
respectivos números de identificação (id_materia). A Figura 2 ilustra uma matriz
após realizadas as alocações.
Figura 2 – Matriz após alocações.
Segunda 07:10:00
Segunda 08:00:00
Segunda 08:50:00
............... Sexta 16:00:00
Sexta 16:50:00
Sexta 17:40:00
0 -1 2 2 ............... 5 5 5
1 3 3 3 ............... 21 21 21
2 33 33 12 ............... 21 21 21
3 9 9 -1 ............... -1 -1 -1
: : : : ............... : : :
: : : : ............... : : :
: : : : ............... : : :
Última sala
5 5 7 ............... 56 56 31
Fonte: Elaborada pelo autor (2016).
Para realizar a alocação, para cada disciplina, busca-se aleatoriamente
uma sala que tenha seu detalhe igual ao detalhe da disciplina, e então, caso os
horários necessários para essa disciplina estejam livres na sala sorteada e a
capacidade da sala seja maior que a quantidade de alunos matriculados na
disciplina, a disciplina é alocada à essa sala nos seus devidos horários. Caso os
horários não estejam livres, novas salas são escolhidas aleatoriamente até que
seja encontrada uma que possua os horários necessários livres. O processo é
repetido para todas as disciplinas. O algoritmo 2 ilustra o processo.
16
1. De i = 0 até o total de matérias – 1
1.1. Fazer enquanto sala for inválida
1.1.1. Escolher sala aleatoriamente
1.1.2. Se detalhe da matéria <> detalhe da sala Sala inválida,
volte ao passo 1.1.1
1.1.3. Se quantidade de alunos da matéria > capacidade da sala
Sala inválida, volte ao passo 1.1.1
1.1.4. Se sala ocupada em algum dos horários entre o horário de
início e o de fim da matéria Sala inválida, volte ao passo 1.1.1
1.2. De h = horário de início até horário de fim
1.2.1. Indivíduo [sala, h] = i
2. Fim
Algoritmo 2 – Criação da população inicial.
Após ser gerada essa solução, ela é considerada um indivíduo e alocada
em uma matriz tridimensional, que comporta todos os indivíduos da geração
atual. O processo é repetido até que se possua o número desejado de indivíduos.
4.2 Mutação de salas
Para criar variedade na população gerada, realizam-se mutações nos
indivíduos gerados na população inicial.
Para isso, um indivíduo da população é escolhido aleatoriamente, assim
como duas de suas salas. Após isso, todas as disciplinas de uma sala são
trocadas pelas disciplinas alocadas em outra sala. As Figuras 3 e 4 ilustram um
indivíduo antes e depois dessa mutação.
17
Figura 3 – Indivíduo antes da mutação de salas.
Segunda 07:10:00
Segunda 08:00:00
Segunda 08:50:00
............... Sexta 16:00:00
Sexta 16:50:00
Sexta 17:40:00
0 -1 2 2 ............... 5 5 5
→ 1 3 3 3 ............... 21 21 21
: : : : ............... : : :
→ 7 9 9 -1 ............... -1 -1 -1
: : : : ............... : : :
: : : : ............... : : :
: : : : ............... : : :
Última sala
5 5 7 ............... 56 56 31
Fonte: Elaborada pelo autor (2016).
Figura 4 – Indivíduo após a mutação de salas.
Segunda 07:10:00
Segunda 08:00:00
Segunda 08:50:00
............... Sexta 16:00:00
Sexta 16:50:00
Sexta 17:40:00
0 -1 2 2 ............... 5 5 5
→ 1 9 9 -1 ............... -1 -1 -1
: : : : ............... : : :
→ 7 3 3 3 ............... 21 21 21
: : : : ............... : : :
: : : : ............... : : :
: : : : ............... : : :
Última sala
5 5 7 ............... 56 56 31
Fonte: Elaborada pelo autor (2016).
O algoritmo 3 exemplifica o processo.
1. Escolher aleatoriamente um indivíduo da população
2. Escolher aleatoriamente uma sala
3. Escolher aleatoriamente uma sala diferente da anterior
4. Transferir todas as disciplinas de uma sala para a outra
5. Fim
Algoritmo 3 – Processo de mutação de salas.
18
O processo é repetido até que se possua o número desejado de indivíduos
com essa mutação.
4.3 Mutação de disciplinas
Para obter uma diversidade de soluções maior, criou-se mais um tipo de
mutação, em que disciplinas teriam sua sala modificada.
Para isso, duas salas e um horário são selecionados aleatoriamente. Após
isso, verifica-se se as disciplinas alocadas em cada uma das salas no horário
sorteado podem ser trocadas, respeitando seus horários de início e fim. Caso
não seja possível, novas salas e novos horários são gerados até que um
conjunto de 2 salas e 1 horário viáveis sejam encontrados. As Figuras 5 e 6
ilustram um indivíduo antes e depois dessa mutação.
Figura 5 – Indivíduo antes da mutação de disciplinas.
Segunda 07:10:00
Segunda 08:00:00
Segunda 08:50:00
............... Sexta 16:00:00
Sexta 16:50:00
Sexta 17:40:00
0 -1 2 2 ............... 5 5 5
: : : : ............... : : :
5 33 33 12 ............... 21 21 21
: : : : ............... : : :
22 14 14 14 ............... 27 27 -1
: : : : ............... : : :
: : : : ............... : : :
Última sala
5 5 7 ............... 56 56 31
Fonte: Elaborada pelo autor (2016).
19
Figura 6 – Indivíduo após a mutação de disciplinas.
Segunda 07:10:00
Segunda 08:00:00
Segunda 08:50:00
............... Sexta 16:00:00
Sexta 16:50:00
Sexta 17:40:00
0 -1 2 2 ............... 5 5 5
: : : : ............... : : :
5 33 33 12 ............... 27 27 -1
: : : : ............... : : :
22 14 14 14 ............... 21 21 21
: : : : ............... : : :
: : : : ............... : : :
Última sala
5 5 7 ............... 56 56 31
Fonte: Elaborada pelo autor (2016).
O algoritmo 4 exemplifica o processo.
1. Escolher aleatoriamente um indivíduo da população
2. Fazer enquanto horários entre as disciplinas for diferente
2.1. Escolher aleatoriamente uma disciplina
2.2. Escolher aleatoriamente uma disciplina diferente da anterior
3. Colocar a primeira disciplina na sala da segunda e vice-versa
4. Fim
Algoritmo 4 – Processo de mutação de disciplinas.
O processo é repetido até que se possua o número desejado de indivíduos
com essa mutação.
4.4 Cruzamento
Para ser possível mesclar características de dois indivíduos da população,
criou-se um cruzamento entre eles.
Para isso, dois indivíduos são selecionados aleatoriamente, em que um
deles tem metade de sua solução copiada para o indivíduo cruzado, conforme
ilustra a Figura 7. Após isso, verifica-se quais disciplinas ainda não estão
presentes no indivíduo cruzado e, caso não haja sobreposição de horários, as
disciplinas restantes são alocadas para as mesmas salas do segundo indivíduo.
20
Caso, após isso, alguma disciplina ainda não tenha sido alocada, ela é alocada
de forma aleatória, desde que sejam respeitados os seus horários de início e fim
e não haja sobreposição de horários. Assim, ao final do cruzamento, temos uma
solução com partes de 2 soluções diferentes e partes aleatórias. O Algoritmo 5
ilustra o funcionamento.
Figura 7 – Cruzamento: Primeira parte.
Segunda 07:10:00
Segunda 08:00:00
Segunda 08:50:00
............... Sexta 16:00:00
Sexta 16:50:00
Sexta 17:40:00
0
Indivíduo 1 :
:
Metade
: -1 -1 -1 ............... -1 -1 -1
: -1 -1 -1 ............... -1 -1 -1
: -1 -1 -1 ............... -1 -1 -1
Última sala
-1 -1 -1 ............... -1 -1 -1
Fonte: Elaborada pelo autor (2016).
1. Escolher aleatoriamente um indivíduo da população
2. Escolher aleatoriamente um indivíduo da população
diferente do anterior
3. Criar um novo indivíduo com metade das salas igual ao
primeiro indivíduo
4. Alocar as disciplinas ainda não alocadas na mesma sala do
segundo indivíduo, desde que não haja sobreposição de
horários
5. Alocar aleatoriamente as disciplinas ainda não alocadas
6. Fim
Algoritmo 5 – Processo de cruzamento.
O processo é repetido até que se possua o número desejado de indivíduos
cruzados.
21
4.5 Mecanismo de avaliação do indivíduo
Os indivíduos são avaliados conforme a capacidade de sua solução de
atender aos requisitos estabelecidos pela diretoria do instituto. Para isso, criou-
se uma função chamada de “fitness”, com um sistema de punições, onde quanto
menor o seu valor, melhor a solução.
As punições foram estipuladas através de pesos, que variam entre 1 para
menor valor e 100 para maior valor, seguindo as orientações e preferências da
diretoria do instituto, podendo sempre ser alteradas através das configurações
do software.
Quando disciplinas são alocadas em salas que não oferecem o suporte
que elas necessitam, como determinados laboratórios ou com recursos
multimídia específicos, a qualidade da aula é extremamente prejudicada, quando
não inviabilizada. Sendo assim, cada vez que isso acontece, é atribuído a
punição máxima de 100 pontos.
A diretoria do instituto preza pela máxima diminuição possível das
dificuldades para alunos com limitações de locomoção. Sendo assim, é
extremamente desejável que esses tenham suas disciplinas ministradas em
salas do térreo, sendo atribuído a punição máxima de 100 pontos para cada vez
que isso não ocorrer.
Quando uma disciplina é alocada para uma sala com capacidade menor
que a quantidade de alunos matriculado na disciplina, a qualidade da aula é
extremamente prejudicada, mas nem sempre inviabilizada. Sendo assim, cada
vez que isso acontecer, é atribuído uma punição de 20 pontos, além de 5 pontos
para cada aluno acima da capacidade, já que quanto maior o número de alunos
acima da capacidade, pior a qualidade da aula.
Quando uma disciplina é alocada para uma sala com capacidade maior
que a quantidade de alunos matriculado na disciplina, há um desperdício de
espaço, porém não há prejuízo na qualidade da aula. Sendo assim, cada vez
que isso acontece, é atribuído a punição de 1 ponto para cada lugar vago na
sala.
22
Outro fator desejado pela diretoria do instituto é que turmas de um mesmo
período da grade curricular de um curso sejam alocadas para a mesma sala
todos os dias. Sendo assim, é atribuído a punição de 10 pontos para cada sala
utilizada por uma mesma turma de um mesmo curso. A punição é baixa, já que
um aumento do número de salas não diminui a qualidade da aula, aumentando
apenas o deslocamento dos alunos.
O Algoritmo 6 ilustra o processo de avaliação.
1. De i = 0 até o total de disciplinas – 1
1.1. Para cada sala diferente usada por um período de um curso Punição
= Punição + 10
1.2. Para cada disciplina com cadeirante alocada fora do térreo Punição =
Punição + 100
1.3. Para cada disciplina detalhe não atendido Punição = Punição + 100
1.4. Para cada disciplina alocada em sala com capacidade menor que o
necessário Punição = Punição + 20 + excesso
1.5. Para cada disciplina alocada em sala com capacidade maior que o
necessário Punição = Punição + capacidade ociosa
2. Salvar resultado
3. Fim
Algoritmo 6 – Processo de avaliação.
O processo é repetido para todos os indivíduos de todas as populações.
4.6 Mecanismo de Seleção
Após realizados todos os processos para o aumento da diversidade, há a
seleção dos indivíduos com a melhor função de fitness.
São selecionados um total de indivíduos igual ao tamanho da população
anterior, com a seleção dos melhores indivíduos da população anterior, dos que
sofreram mutação de salas, dos que sofreram mutação de disciplinas e dos
cruzados, desde que não seja ultrapassado o tamanho da população. Caso,
após a seleção, ainda não se tenha na nova população o mesmo número de
indivíduos de antes, novos indivíduos são gerados aleatoriamente, da mesma
23
que forma que na população inicial, até que a população seja completada. Feito
isso, uma nova população é formada.
Após a realização de todas as gerações desejadas, é selecionado o
melhor indivíduo da última população, sendo esse indivíduo, a melhor solução
encontrada.
.
24
5 FUNCIONAMENTO DO SOFTWARE
5.1 Entradas
Para o funcionamento do software implementado, são necessárias
algumas entradas, todas em planilhas do Microsoft Excel.
5.1.1 Salas
As salas devem ser colocadas na planilha chamada de “Dados”, de modo
que as colunas de S a W possuam todas as informações sobre as salas, sendo
elas, na sequência:
Coluna S: Id da Sala;
Coluna T: Nome da sala;
Coluna U: Detalhe;
Coluna V: Capacidade;
Coluna W: Sala no térreo ou não.
O preenchimento completo das salas está disponível no Anexo A.
5.1.2 Disciplinas
As disciplinas devem ser colocadas na planilha chamada de “Dados”, de
modo que as colunas de F a P possuam todas as informações sobre as
disciplinas, sendo elas, na sequência:
Coluna F: ID da Disciplina;
Coluna G: Disciplina;
Coluna H: Curso/período;
Coluna I: Dia;
Coluna J: Horário de início;
Coluna L: Horário de fim;
Coluna N: Detalhe;
Coluna O: Número de alunos matriculados;
Coluna P: Presença ou não de cadeirantes.
25
Após a inserção desses dados, as colunas K e M são preenchidas
automaticamente com o “Id horário início” e “Id horário fim” de cada disciplina,
respectivamente.
O campo “Curso/período” deve ser preenchido informando o curso e a
qual período pertence a disciplina, podendo o valor pertencer apenas à Tabela
2.
Tabela 2 – Opções de preenchimento para “Curso/período”.
Produção 1 Mecânica 1 Civil 1 Elétrica 1
Produção 3 Mecânica 3 Civil 3 Elétrica 3
Produção 5 Mecânica 5 Civil 5 Elétrica 5
Produção 7 Mecânica 7 Civil 7 Elétrica 7
Produção 9 Mecânica 9 Civil 9 Elétrica 9
Ambiental 1 Alimentos 1 T1 Química 1
Ambiental 3 Alimentos 3 T2 Química 3
Ambiental 5 Alimentos 5 T3 Química 5
Ambiental 7 Alimentos 7 T4 Química 7
Ambiental 9 Alimentos 9 T5 Química 9
CB T6
O campo “Dia” deve ser preenchida apenas com os valores: “Segunda”,
“Terça”, “Quarta”, “Quinta” e “Sexta”.
Os campos “Horário de início” e “Horário de fim” devem ser preenchidos
com valores presentes na Tabela 1.
O campo “Detalhe” deve ser preenchido apenas com dados presentes no
campo “Detalhe” nas informações sobre as salas.
A Tabela 3 ilustra um preenchimento completo das disciplinas.
Tabela 3 – Preenchimento das disciplinas.
ID Discip
lina
Disciplina
Curso/período
Dia Horário
Início
ID Horário
Início
Horário Fim
ID Horário
Fim
Detalhe
Alunos
Cadeirante?
0 QUÍMICA
ORGÂNICA I A
Química 3
Segunda
07:10
0 09:40 3 DATASHOW
72 Não
26
5.1.3 Configurações
No funcionamento do software, alguns parâmetros são escolhidos pelo
usuário, sendo eles apresentados na Tabela 4. O valor para o campo “Aleatórios”
é calculado automaticamente. A interface de configuração é mostrada na Figura
8.
Tabela 4 – Parâmetros escolhidos pelo usuário.
Quantidade Selecionados
População INSERIR VALOR INSERIR VALOR
Mutações Sala INSERIR VALOR INSERIR VALOR
Mutações Disciplina INSERIR VALOR INSERIR VALOR
Cruzamentos INSERIR VALOR INSERIR VALOR
Aleatórios CALCULADO AUT.
Gerações (Repetições) INSERIR VALOR
Disciplina com Deficientes fora do térreo
INSERIR VALOR Por disciplina
Não atender necessidades da disciplina INSERIR VALOR Por disciplina
Exceder capacidade INSERIR VALOR Por aluno excedido
Sobrar capacidade INSERIR VALOR Por vaga sobrando
Salas usadas por uma mesma turma INSERIR VALOR Por sala usada
Sala com mais aluno que capacidade INSERIR VALOR Por sala
1 QUÍMICA
ORGÂNICA I B
Química 3
Quarta 10:00
32 13:10 35 DATASHOW
72 Não
2 MATERIAIS DA
CONSTRUÇÃO CIVIL I
Civil 5 Sexta 07:10
56 13:10 63 DATASHOW
72 Não
3 CÁLCULO III T01
A
CB Terça 13:10
21 15:40 24 DATASHOW
72 Não
4 CÁLCULO III T01
B
CB Quinta 13:10
49 15:40 52 DATASHOW
72 Não
27
Figura 8 – Interface de configuração e relatório.
Fonte: Elaborada pelo autor (2016).
5.2 Saídas
Após a execução do software, algumas saídas são produzidas, todas em
planilhas do Microsoft Excel.
A primeira saída produzida é a informação de em qual sala cada disciplina
foi alocada, sendo informado na planilha “Dados”, na coluna R, conforme ilustram
a Figura 9.
28
Figura 9 – Sala alocada para cada disciplina.
Fonte: Elaborada pelo autor (2016).
Após isso, com as informações, é gerada a grade horária para cada sala,
conforme ilustra a Figura 10.
Figura 10 – Criação da grade horária para cada sala.
Fonte: Elaborada pelo autor (2016).
29
Por último, é apresentado um relatório mostrando a eficiência da solução
em atender aos requisitos da diretoria do instituto. As informações apresentadas
estão presentes na Tabela 5 e a interface de apresentação desses resultados foi
apresentada na Figura 8.
Tabela 5 – Relatório de eficiência.
Relatório Disciplina com Deficientes fora do térreo
SAÍDA Salas usadas por Química 7 SAÍDA
Disciplinas com necessidades não atendidas
SAÍDA Salas usadas por Química 9 SAÍDA
Salas com capacidade excedida SAÍDA Salas usadas por Mecânica 1 SAÍDA
Total de capacidade excedida SAÍDA Salas usadas por Mecânica 3 SAÍDA
Total de capacidade ociosa SAÍDA Salas usadas por Mecânica 5 SAÍDA
Salas usadas por Produção 1 SAÍDA Salas usadas por Mecânica 7 SAÍDA
Salas usadas por Produção 3 SAÍDA Salas usadas por Mecânica 9 SAÍDA
Salas usadas por Produção 5 SAÍDA Salas usadas por Alimentos 1 SAÍDA
Salas usadas por Produção 7 SAÍDA Salas usadas por Alimentos 3 SAÍDA
Salas usadas por Produção 9 SAÍDA Salas usadas por Alimentos 5 SAÍDA
Salas usadas por Elétrica 1 SAÍDA Salas usadas por Alimentos 7 SAÍDA
Salas usadas por Elétrica 3 SAÍDA Salas usadas por Alimentos 9 SAÍDA
Salas usadas por Elétrica 5 SAÍDA Salas usadas por Civil 1 SAÍDA
Salas usadas por Elétrica 7 SAÍDA Salas usadas por Civil 3 SAÍDA
Salas usadas por Elétrica 9 SAÍDA Salas usadas por Civil 5 SAÍDA
Salas usadas por Ambiental 1 SAÍDA Salas usadas por Civil 7 SAÍDA
Salas usadas por Ambiental 3 SAÍDA Salas usadas por Civil 9 SAÍDA
Salas usadas por Ambiental 5 SAÍDA Salas usadas por T01 SAÍDA
Salas usadas por Ambiental 7 SAÍDA Salas usadas por T02 SAÍDA
Salas usadas por Ambiental 9 SAÍDA Salas usadas por T03 SAÍDA
Salas usadas por Química 1 SAÍDA Salas usadas por T04 SAÍDA
Salas usadas por Química 3 SAÍDA Salas usadas por T05 SAÍDA
Salas usadas por Química 5 SAÍDA Salas usadas por T06 SAÍDA
30
6 RESULTADOS
Para gerar a solução para o problema, utilizou-se um microcomputador
com processador Intel CORE I7-4500U CPU 2,40GHz, com 8 GB de memória
RAM, sob o sistema operacional Windows 10 de 64 bits. Após testes, verificou-
se que a melhor solução encontrada foi utilizando a configuração apresentada
na Tabela 6. O resultado obtido é apresentado na Tabela 7.
Tabela 6 – Configuração utilizada.
Quantidade Selecionados
População 60 20
Mutações Sala 30 13
Mutações Disciplina 30 13
Cruzamentos 30 10
Aleatórios 4
Gerações (Repetições) 1500 60
Disciplina com Deficientes fora do térreo
100 por disciplina
Não atender necessidades da disciplina 100 por disciplina
Exceder capacidade 5 por aluno excedido
Sobrar capacidade 1 por vaga sobrando
Salas usadas por uma mesma turma 10 Por sala usada
Sala com mais aluno que capacidade 20 Por sala
Salas 57
Disciplinas 459
Horários 70
Tabela 7 – Relatório de Eficiência.
Relatório Disciplina com Deficientes fora do térreo
0 Salas usadas por Química 7 10
Disciplinas com necessidades não atendidas
0 Salas usadas por Química 9 13
Salas com capacidade excedida 2 Salas usadas por Mecânica 1 1
Total de capacidade excedida 7 Salas usadas por Mecânica 3 3
Total de capacidade ociosa 7515 Salas usadas por Mecânica 5 6
Salas usadas por Produção 1 1 Salas usadas por Mecânica 7 9
Salas usadas por Produção 3 5 Salas usadas por Mecânica 9 7
Salas usadas por Produção 5 7 Salas usadas por Alimentos 1 1
Salas usadas por Produção 7 6 Salas usadas por Alimentos 3 5
31
Salas usadas por Produção 9 9 Salas usadas por Alimentos 5 7
Salas usadas por Elétrica 1 1 Salas usadas por Alimentos 7 6
Salas usadas por Elétrica 3 3 Salas usadas por Alimentos 9 8
Salas usadas por Elétrica 5 9 Salas usadas por Civil 1 1
Salas usadas por Elétrica 7 11 Salas usadas por Civil 3 4
Salas usadas por Elétrica 9 7 Salas usadas por Civil 5 7
Salas usadas por Ambiental 1 1 Salas usadas por Civil 7 11
Salas usadas por Ambiental 3 3 Salas usadas por Civil 9 12
Salas usadas por Ambiental 5 10 Salas usadas por T01 5
Salas usadas por Ambiental 7 7 Salas usadas por T02 4
Salas usadas por Ambiental 9 6 Salas usadas por T03 5
Salas usadas por Química 1 1 Salas usadas por T04 5
Salas usadas por Química 3 5 Salas usadas por T05 4
Salas usadas por Química 5 7 Salas usadas por T06 5
A variação da média e do valor mínimo da função fitness a cada iteração
é mostrado na Gráfico 1 e no Gráfico 2, com a última média assumindo o valor
de 11077 e o menor valor obtido para a função fitness o de 9970.
Gráfico 1 – Variação do valor mínimo da função fitness.
9500
10000
10500
11000
11500
12000
0 200 400 600 800 1000 1200 1400 1600
Iteração
Evolução do valor minímo
32
Gráfico 2 – Variação da média da função fitness.
Em comparação ao método manual, o resultado foi promissor, já que
apresentou indicadores muitas vezes melhores, e um ganho considerável de
tempo, passando de um mês para 15 horas, 42 minutos e 57 segundos o tempo
para geração de uma solução. Além de retirar a necessidade de utilização de 8
funcionários para o processo.
Os resultados de desempenho através da solução manual são
apresentados na Tabela 8 e a comparação entre a solução manual e a
computacional para os parâmetros mais importantes é apresentada na Tabela 9.
A comparação completa entre a solução manual e a computacional está presente
no Anexo B.
Tabela 8 – Relatório da solução manual.
Relatório Disciplina com Deficientes fora do térreo 0 Salas usadas por Química 7 7
Disciplinas com necessidades não atendidas 20 Salas usadas por Química 9 8
Salas com capacidade excedida 5 Salas usadas por Mecânica 1 1
Total de capacidade excedida 22 Salas usadas por Mecânica 3 3
Total de capacidade ociosa 9373 Salas usadas por Mecânica 5 3
Salas usadas por Produção 1 1 Salas usadas por Mecânica 7 6
Salas usadas por Produção 3 4 Salas usadas por Mecânica 9 2
0
2000
4000
6000
8000
10000
12000
14000
16000
0 200 400 600 800 1000 1200 1400 1600
Fitn
ess
Iteração
Evolução da Média
33
Salas usadas por Produção 5 2 Salas usadas por Alimentos 1 1
Salas usadas por Produção 7 5 Salas usadas por Alimentos 3 2
Salas usadas por Produção 9 5 Salas usadas por Alimentos 5 5
Salas usadas por Elétrica 1 1 Salas usadas por Alimentos 7 4
Salas usadas por Elétrica 3 2 Salas usadas por Alimentos 9 7
Salas usadas por Elétrica 5 3 Salas usadas por Civil 1 1
Salas usadas por Elétrica 7 5 Salas usadas por Civil 3 3
Salas usadas por Elétrica 9 3 Salas usadas por Civil 5 8
Salas usadas por Ambiental 1 1 Salas usadas por Civil 7 5
Salas usadas por Ambiental 3 3 Salas usadas por Civil 9 8
Salas usadas por Ambiental 5 5 Salas usadas por T01 1
Salas usadas por Ambiental 7 3 Salas usadas por T02 1
Salas usadas por Ambiental 9 6 Salas usadas por T03 1
Salas usadas por Química 1 1 Salas usadas por T04 1
Salas usadas por Química 3 2 Salas usadas por T05 1
Salas usadas por Química 5 5 Salas usadas por T06 1
Tabela 9 – Comparação entre a solução manual e a computacional.
Computacional Manual Diferença Melhor
Disciplina com Deficientes fora do térreo
0 0 0 IGUAL
Disciplinas com necessidades não atendidas
0 20 -20 COMPUTACIONAL
Salas com capacidade excedida 2 5 -3 COMPUTACIONAL
Total de capacidade excedida 7 22 -15 COMPUTACIONAL
Total de capacidade ociosa 7515 9373 -1858 COMPUTACIONAL
Em comparação a outros trabalhos realizados sobre o assunto, o tempo
de execução foi maior, devido às limitações de velocidade na linguagem
utilizada, apesar da mesma promover ganhos em praticidade. A utilização da
linguagem C#, como fez PRADO e SOUZA (2014), ou Phyton como fez DE
JESUS CAMPOS (2012), provavelmente teria gerado uma solução mais
rapidamente, já que nesses estudos o tempo de execução foi de 98 minutos e
de 6 segundos, respectivamente.
34
7 CONCLUSÕES E TRABALHOS FUTUROS
O trabalho apresentou um Algoritmo Genético para a resolução do
problema de alocação de salas do Instituto de Ciências Tecnológicas e Exatas
da Universidade Federal do Triângulo Mineiro (ICTE-UFTM).
O estudo foi bem-sucedido, visto que a solução implementada atendeu
bem às restrições propostas pela diretoria do instituto, além de, em comparação
com a solução manual, ter apresentado qualidade superior nos requisitos mais
importantes e um tempo de execução bem menor, já que manualmente o
processo levava em torno de um mês e, computacionalmente, uma boa solução
foi gerada em 15 horas, 42 minutos e 57 segundos.
Ainda, a implementação de uma solução computacional possibilitou à
diretoria do instituto obter maior velocidade de resposta, visto que, através de
pequenas modificações nas configurações de entrada do software
implementado, se tornou possível verificar rapidamente as alterações geradas
por elas.
Trabalhos futuros sobre o tema são plausíveis de realização na UFTM, já
que nesse estudo foi abrangido apenas um instituto da universidade e
implementada apenas uma linguagem computacional, o que deixa um leque
muito grande de possibilidades na universidade. Além disso, há a possibilidade
de novos estudos na área de timetabling, como do tipo realizado por DA COSTA,
ACIOLI e SUBRAMANIAN (2012), em que há a criação de modelo matemático
que visa realizar a alocação de professores a turmas, de modo a maximizar seu
nível de preferência, sujeito a algumas restrições tais como limite máximo de
horas-aula semanal, conflito de aulas, entre outras.
Trabalhos abrangendo o próprio software implementado também são
plausíveis de realização, visto que análises minuciosas podem encontrar
maneiras de aumentar a velocidade de processamento do software ou torná-lo
capaz de gerar uma solução melhor.
A retirada da restrição vii (Disciplinas de um mesmo período da grade
curricular de um curso deverão ser alocadas preferencialmente em uma mesma
sala) faria com que uma boa solução fosse encontrada mais rapidamente, já que
35
essa restrição é a responsável pelo maior consumo de tempo e não altera a
qualidade das aulas. Com a sua retirada, seria também possível uma
implementação utilizando “critérios de parada” a serem definidos pelo usuário
como, por exemplo, “Parar quando não houver salas com a capacidade
excedida, nem cadeirantes fora do térreo”, o que faria com que testes sobre o
número de “gerações” ideal se tornassem desnecessários. A retirada dessa
restrição também faria com que a solução computacional encontrada nesse
trabalho fosse melhor que que a solução manual em todos os parâmetros.
Além disso, a utilização de um computador com maior capacidade de
processamento também poderia ajudar a obter uma boa solução mais
rapidamente.
36
Referências Bibliográficas
BURKE, Edmund et al. Automated university timetabling: The state of the art. The computer
journal, v. 40, n. 9, 1997, p. 565-571.
CARTER, M.V.; TOVEY, C.A. When Is the Classroom Assignment Problem Hard? Operations
Research, v. 40, n. 1-supplement-1, 1992, p. S28-S39.
CARTER, Michael W.; LAPORTE, Gilbert. Recent developments in practical course
timetabling. In: International Conference on the Practice and Theory of Automated Timetabling.
Springer Berlin Heidelberg, 1997, p. 3-19.
CIRINO, Rafael Bernardo Zanetti; SANTOS, Maristela Oliveira; DELBEM, Alexandre Cláudio
Botazzo. Aplicação da metaheurística agc para o problema de alocação de aulas a salas.
2015.
DA COSTA, Luciano Carlos Azevedo; ACIOLI, Luciano Fernandes; SUBRAMANIAN, Anand. Um
modelo de programação inteira para o problema de alocação de professores a turmas do
departamento de engenharia de produção de uma instituição de ensino superior. Simpósio
Brasileiro de Pesquisa Operacional, 2012, p. 1104- 1113.
DE CASTRO, Rodrigo Evangelista. Otimização de estruturas com multi-objetivos via
algoritmos genéticos. 2001. Tese de Doutorado. UNIVERSIDADE FEDERAL DO RIO DE
JANEIRO.
DE JESUS CAMPOS, Geovane Reges. Sobre o problema de designação de salas de aula
para a PUC Goiás: um estudo de caso para a área 3, campus I. 2012. Tese de Mestrado,
Pontifícia Universidade Católica de Goiás, 2012.
DE MIRANDA, Marcio Nunes. Algoritmos Genéticos: Fundamentos e Aplicações. 2007.
Disponível em < http://www.nce.ufrj.br/GINAPE/VIDA/alggenet.htm >. Acesso em 06/2016.
FRANCISCO, Daniela Oliveira; SILVA, I. N. Estratégia de otimização baseada em sistemas
inteligentes aplicada ao problema de geração de grades horárias. In: 10th Brazilian
Congress on Computational Intelligence–CBIC. 2011.
GERCHMAN, Marcos. Problemas de otimização na engenharia de produção e transportes.
2016. Tese de Mestrado, Universidade Federal do Rio Grande do Sul. 2016.
GOTLIEB, C. C. The construction of class-teacher timetable. Proc. IFIP Congress, 1963, p.
73-77
KONZEN, Pedro Henrique de Almeida et al. Otimização de métodos de controle de qualidade
de fármacos usando algoritmo genético e busca tabu. Pesquisa operacional, v. 23, n. 1, 2003,
p. 189-207.
LUCASIUS, Carlos B.; KATEMAN, Gerrit. Understanding and using genetic algorithms Part
2. Representation, configuration and hybridization. Chemometrics and Intelligent Laboratory
Systems, v. 25, n. 2, 1994, p. 99-145.
OLIVEIRA, A.C., Uso do Algoritmo Genético e Recozimento Simulado para o problema de
alocação de salas. Monografia, Universidade Federal de Lavras, Departamento de Ciência da
Computação, 2006.
PEREIRA, Renato Santos; NETTO, Paulo Oswaldo Boaventura; LARACRUZ, A. J. O Método
GRASP aplicado a um Problema de Coloração: Estudo de Caso em uma Instituição de
Ensino Fundamental e Médio. X Simpósio de Pesquisa Operacional e Logística da Marinha,
2007.
37
PRADO, Alan Souza; SOUZA, S. R. Problema de alocação de salas em cursos
universitários: um estudo de caso. Anais do XLVI Simpósio Brasileiro de Pesquisa
Operacional, 2014, p. 2054-2065.
RIBEIRO, Jeancarlo. O problema de designação de salas de aula da PUC Goiás. 2013. Tese
de Mestrado, Pontifícia Universidade Católica de Goiás, 2013.
SCHAERF, Andrea. A survey of automated timetabling. Artificial Intelligence Review, v. 13, n.
2, 1999, p. 87-127.
SOUZA, Marcone Jamilson Freitas; COSTA, F. P.; GUIMARÃES, I. F. Um algoritmo evolutivo
híbrido para o problema de programação de horários em escolas. XXII Encontro Nacional
de Engenharia de Produção-ENEGEP, 2002, p. 8.
SUBRAMANIAN, Anand; MEDEIROS, J. M. F.; CABRAL, L. D. A. F.; SOUZA, M. J. F. Aplicação
da metaheurística busca tabu na resolução do problema de alocação de salas do centro
de tecnologia da UFPB. Anais do XXVI Encontro Nacional de Engenharia de Produção, 2006,
p. 1.
TAMAKI, Rute NL; WESTPHAL, Talita M.; PEREIRA, Renato D. Simulação Estocástica
Aplicada às Reações Químicas. Disponível em < http://www.propesp.furg.br/anaismpu/cd2010/cic/897.pdf>. Acesso em 06/2016.
38
Anexos
Anexo A – Informações das salas.
ID Sala Detalhe Capacidade Térreo?
0 C201 DATASHOW 72 Não
1 C202 DATASHOW 65 Não
2 C203 DATASHOW 72 Não
3 C204 DATASHOW 72 Não
4 C205 DATASHOW 72 Não
5 C206 DATASHOW 72 Não
6 C207 DATASHOW 72 Não
7 C301 DATASHOW 72 Não
8 C302 DATASHOW 72 Não
9 C303 DATASHOW 72 Não
10 C304 DATASHOW 72 Não
11 C305 DATASHOW 72 Não
12 C306 DATASHOW 72 Não
13 C307 DATASHOW 72 Não
14 B101 DATASHOW 65 Sim
15 B102 DATASHOW 65 Sim
16 B103 DATASHOW 65 Sim
17 B201 DATASHOW 65 Não
18 B202 DATASHOW 65 Não
19 B203 DATASHOW 65 Não
20 B301 DATASHOW 65 Não
21 B302 DATASHOW 65 Não
22 B303 DATASHOW 65 Não
23 A201 Aeromobilismo 65 Não
24 A202 DATASHOW 65 Não
25 A203 DATASHOW 65 Não
26 F1 Microbiologia e Bioprocessos 40 Sim
27 F2 Central Analítica 30 Sim
28 F3 Laboratório Didático 70 Sim
29 F4 Laboratório Didático 70 Sim
30 F5 Laboratório Didático 70 Sim
39
31 F6 Controle e Automação 30 Sim
32 F7 Hidráulica e Hidrologia 70 Sim
33 F8 Saneamento Ambiental 40 Sim
34 D1 Laboratório de Física 30 Sim
35 D2 Laboratório de Física 30 Sim
36 D3
Vibrações, Acústica e Controle /
Instrumentação 30 Sim
37 D4 Metrologia 30 Sim
38 D5 Materiais Aplicados à Engenharia 30 Sim
39 D6 Ensaios Mecânicos 30 Sim
40 C1/C2 Laboratório C1 C2 60 Sim
41 C3 Conversão Eletromecânica 30 Sim
42 C4 Circuitos Elétricos / Eletrônicos 30 Sim
43 B1/B2 Laboratório B1/B2 60 Sim
44 C101 Topografia, Cartografia, Geoprocessamento 40 Sim
45 C102 Laboratório de Informática 50 Sim
46 C103 Laboratório de Informática 35 Sim
47 C104 Laboratório de Informática 50 Sim
48 C105 Laboratório de Apoio à Decisão 30 Sim
49 C106 Laboratório de Projetos e Ergonomia 30 Sim
50 C107 DATASHOW 72 Sim
51 N103 DATASHOW 40 Sim
52 N104 DATASHOW 40 Sim
53 N105 DATASHOW 40 Sim
54 N106 DATASHOW 40 Sim
55 N107 DATASHOW 40 Sim
56 N108 DATASHOW 40 Sim
Anexo B – Comparação completa entre a solução manual e a computacional.
Computacional Manual Diferença Melhor Disciplina com Deficientes fora do térreo 0 0 0 IGUAL Disciplinas com necessidades não atendidas 0 20 -20 COMPUTACIONAL
Salas com capacidade excedida 2 5 -3 COMPUTACIONAL
Total de capacidade excedida 7 22 -15 COMPUTACIONAL
40
Total de capacidade ociosa 7515 9373 -1858 COMPUTACIONAL
Salas usadas por Produção 1 1 1 0 IGUAL
Salas usadas por Produção 3 5 4 1 MANUAL
Salas usadas por Produção 5 7 2 5 MANUAL
Salas usadas por Produção 7 6 5 1 MANUAL
Salas usadas por Produção 9 9 5 4 MANUAL
Salas usadas por Elétrica 1 1 1 0 IGUAL
Salas usadas por Elétrica 3 3 2 1 MANUAL
Salas usadas por Elétrica 5 9 3 6 MANUAL
Salas usadas por Elétrica 7 11 5 6 MANUAL
Salas usadas por Elétrica 9 7 3 4 MANUAL
Salas usadas por Ambiental 1 1 1 0 IGUAL
Salas usadas por Ambiental 3 3 3 0 IGUAL
Salas usadas por Ambiental 5 10 5 5 MANUAL
Salas usadas por Ambiental 7 7 3 4 MANUAL
Salas usadas por Ambiental 9 6 6 0 IGUAL
Salas usadas por Química 1 1 1 0 IGUAL
Salas usadas por Química 3 5 2 3 MANUAL
Salas usadas por Química 5 7 5 2 MANUAL
Salas usadas por Química 7 10 7 3 MANUAL
Salas usadas por Química 9 13 8 5 MANUAL
Salas usadas por Mecânica 1 1 1 0 IGUAL
Salas usadas por Mecânica 3 3 3 0 IGUAL
Salas usadas por Mecânica 5 6 3 3 MANUAL
Salas usadas por Mecânica 7 9 6 3 MANUAL
Salas usadas por Mecânica 9 7 2 5 MANUAL
Salas usadas por Alimentos 1 1 1 0 IGUAL
Salas usadas por Alimentos 3 5 2 3 MANUAL
Salas usadas por Alimentos 5 7 5 2 MANUAL
Salas usadas por Alimentos 7 6 4 2 MANUAL
Salas usadas por Alimentos 9 8 7 1 MANUAL
Salas usadas por Civil 1 1 1 0 IGUAL
Salas usadas por Civil 3 4 3 1 MANUAL
Salas usadas por Civil 5 7 8 -1 COMPUTACIONAL
Salas usadas por Civil 7 11 5 6 MANUAL
Salas usadas por Civil 9 12 8 4 MANUAL
41
Salas usadas por T1 5 1 4 MANUAL
Salas usadas por T2 4 1 3 MANUAL
Salas usadas por T3 5 1 4 MANUAL
Salas usadas por T4 5 1 4 MANUAL
Salas usadas por T5 4 1 3 MANUAL
Salas usadas por T6 5 1 4 MANUAL
Top Related