SlideShare uma empresa Scribd logo
1 de 41
Baixar para ler offline
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
Disciplin
a
Curso/p
eríodo
Dia Hor
ári
o
Iníc
io
ID
Hor
ári
o
Iníc
io
Horá
rio
Fim
ID
Hor
ári
o
Fim
Detalh
e
Alu
nos
Cadeir
ante?
0 QUÍMIC
A
ORGÂNI
CA I A
Química
3
Segun
da
07:
10
0 09:40 3 DATAS
HOW
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ÍMIC
A
ORGÂNI
CA I B
Química
3
Quarta 10:
00
32 13:10 35 DATAS
HOW
72 Não
2 MATERI
AIS DA
CONSTR
UÇÃO
CIVIL I
Civil 5 Sexta 07:
10
56 13:10 63 DATAS
HOW
72 Não
3 CÁLCUL
O III T01
A
CB Terça 13:
10
21 15:40 24 DATAS
HOW
72 Não
4 CÁLCUL
O III T01
B
CB Quinta 13:
10
49 15:40 52 DATAS
HOW
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
Fitness
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

Mais conteúdo relacionado

Último

apresentação de Bancos de Capacitores aula
apresentação de Bancos de Capacitores aulaapresentação de Bancos de Capacitores aula
apresentação de Bancos de Capacitores aulaWilliamCruz402522
 
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docxTRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docxFlvioDadinhoNNhamizi
 
Apresentação Manutenção Total Produtiva - TPM
Apresentação Manutenção Total Produtiva - TPMApresentação Manutenção Total Produtiva - TPM
Apresentação Manutenção Total Produtiva - TPMdiminutcasamentos
 
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptxVagner Soares da Costa
 
Lista de presença treinamento de EPI NR-06
Lista de presença treinamento de EPI NR-06Lista de presença treinamento de EPI NR-06
Lista de presença treinamento de EPI NR-06AndressaTenreiro
 
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptxVagner Soares da Costa
 
NR10 - Treinamento LOTO - 2023.pp tx
NR10 - Treinamento LOTO - 2023.pp     txNR10 - Treinamento LOTO - 2023.pp     tx
NR10 - Treinamento LOTO - 2023.pp txrafaelacushman21
 

Último (7)

apresentação de Bancos de Capacitores aula
apresentação de Bancos de Capacitores aulaapresentação de Bancos de Capacitores aula
apresentação de Bancos de Capacitores aula
 
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docxTRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
 
Apresentação Manutenção Total Produtiva - TPM
Apresentação Manutenção Total Produtiva - TPMApresentação Manutenção Total Produtiva - TPM
Apresentação Manutenção Total Produtiva - TPM
 
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
 
Lista de presença treinamento de EPI NR-06
Lista de presença treinamento de EPI NR-06Lista de presença treinamento de EPI NR-06
Lista de presença treinamento de EPI NR-06
 
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
 
NR10 - Treinamento LOTO - 2023.pp tx
NR10 - Treinamento LOTO - 2023.pp     txNR10 - Treinamento LOTO - 2023.pp     tx
NR10 - Treinamento LOTO - 2023.pp tx
 

Destaque

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by HubspotMarius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 

Destaque (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

AG UFTM Salas

  • 1. 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
  • 2. 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
  • 3. 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
  • 4. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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 Disciplin a Curso/p eríodo Dia Hor ári o Iníc io ID Hor ári o Iníc io Horá rio Fim ID Hor ári o Fim Detalh e Alu nos Cadeir ante? 0 QUÍMIC A ORGÂNI CA I A Química 3 Segun da 07: 10 0 09:40 3 DATAS HOW 72 Não
  • 26. 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ÍMIC A ORGÂNI CA I B Química 3 Quarta 10: 00 32 13:10 35 DATAS HOW 72 Não 2 MATERI AIS DA CONSTR UÇÃO CIVIL I Civil 5 Sexta 07: 10 56 13:10 63 DATAS HOW 72 Não 3 CÁLCUL O III T01 A CB Terça 13: 10 21 15:40 24 DATAS HOW 72 Não 4 CÁLCUL O III T01 B CB Quinta 13: 10 49 15:40 52 DATAS HOW 72 Não
  • 27. 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. 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. 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. 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. 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. 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 Fitness Iteração Evolução da Média
  • 33. 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. 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. 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. 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. 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. 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. 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. 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. 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