Técnicas de Alocação de sala

41
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

Transcript of Técnicas de Alocação de sala

Page 1: Técnicas de Alocação de sala

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

Page 2: Técnicas de Alocação de sala

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

Page 3: Técnicas de Alocação de sala

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

Page 4: Técnicas de Alocação de sala

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.

Page 5: Técnicas de Alocação de sala

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,

Page 6: Técnicas de Alocação de sala

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

Page 7: Técnicas de Alocação de sala

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.

Page 8: Técnicas de Alocação de sala

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:

Page 9: Técnicas de Alocação de sala

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;

Page 10: Técnicas de Alocação de sala

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.

Page 11: Técnicas de Alocação de sala

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.

Page 12: Técnicas de Alocação de sala

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.

Page 13: Técnicas de Alocação de sala

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).

Page 14: Técnicas de Alocação de sala

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.

Page 15: Técnicas de Alocação de sala

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.

Page 16: Técnicas de Alocação de sala

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.

Page 17: Técnicas de Alocação de sala

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.

Page 18: Técnicas de Alocação de sala

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).

Page 19: Técnicas de Alocação de sala

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.

Page 20: Técnicas de Alocação de sala

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.

Page 21: Técnicas de Alocação de sala

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.

Page 22: Técnicas de Alocação de 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

Page 23: Técnicas de Alocação de sala

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.

.

Page 24: Técnicas de Alocação de sala

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.

Page 25: Técnicas de Alocação de sala

25

Após a inserção desses dados, as colunas K e M são preenchidas

automaticamente com o “Id horário início” e “Id horário fim” de cada disciplina,

respectivamente.

O campo “Curso/período” deve ser preenchido informando o curso e a

qual período pertence a disciplina, podendo o valor pertencer apenas à Tabela

2.

Tabela 2 – Opções de preenchimento para “Curso/período”.

Produção 1 Mecânica 1 Civil 1 Elétrica 1

Produção 3 Mecânica 3 Civil 3 Elétrica 3

Produção 5 Mecânica 5 Civil 5 Elétrica 5

Produção 7 Mecânica 7 Civil 7 Elétrica 7

Produção 9 Mecânica 9 Civil 9 Elétrica 9

Ambiental 1 Alimentos 1 T1 Química 1

Ambiental 3 Alimentos 3 T2 Química 3

Ambiental 5 Alimentos 5 T3 Química 5

Ambiental 7 Alimentos 7 T4 Química 7

Ambiental 9 Alimentos 9 T5 Química 9

CB T6

O campo “Dia” deve ser preenchida apenas com os valores: “Segunda”,

“Terça”, “Quarta”, “Quinta” e “Sexta”.

Os campos “Horário de início” e “Horário de fim” devem ser preenchidos

com valores presentes na Tabela 1.

O campo “Detalhe” deve ser preenchido apenas com dados presentes no

campo “Detalhe” nas informações sobre as salas.

A Tabela 3 ilustra um preenchimento completo das disciplinas.

Tabela 3 – Preenchimento das disciplinas.

ID Discip

lina

Disciplina

Curso/período

Dia Horário

Início

ID Horário

Início

Horário Fim

ID Horário

Fim

Detalhe

Alunos

Cadeirante?

0 QUÍMICA

ORGÂNICA I A

Química 3

Segunda

07:10

0 09:40 3 DATASHOW

72 Não

Page 26: Técnicas de Alocação de sala

26

5.1.3 Configurações

No funcionamento do software, alguns parâmetros são escolhidos pelo

usuário, sendo eles apresentados na Tabela 4. O valor para o campo “Aleatórios”

é calculado automaticamente. A interface de configuração é mostrada na Figura

8.

Tabela 4 – Parâmetros escolhidos pelo usuário.

Quantidade Selecionados

População INSERIR VALOR INSERIR VALOR

Mutações Sala INSERIR VALOR INSERIR VALOR

Mutações Disciplina INSERIR VALOR INSERIR VALOR

Cruzamentos INSERIR VALOR INSERIR VALOR

Aleatórios CALCULADO AUT.

Gerações (Repetições) INSERIR VALOR

Disciplina com Deficientes fora do térreo

INSERIR VALOR Por disciplina

Não atender necessidades da disciplina INSERIR VALOR Por disciplina

Exceder capacidade INSERIR VALOR Por aluno excedido

Sobrar capacidade INSERIR VALOR Por vaga sobrando

Salas usadas por uma mesma turma INSERIR VALOR Por sala usada

Sala com mais aluno que capacidade INSERIR VALOR Por sala

1 QUÍMICA

ORGÂNICA I B

Química 3

Quarta 10:00

32 13:10 35 DATASHOW

72 Não

2 MATERIAIS DA

CONSTRUÇÃO CIVIL I

Civil 5 Sexta 07:10

56 13:10 63 DATASHOW

72 Não

3 CÁLCULO III T01

A

CB Terça 13:10

21 15:40 24 DATASHOW

72 Não

4 CÁLCULO III T01

B

CB Quinta 13:10

49 15:40 52 DATASHOW

72 Não

Page 27: Técnicas de Alocação de sala

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.

Page 28: Técnicas de Alocação de sala

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).

Page 29: Técnicas de Alocação de sala

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

Page 30: Técnicas de Alocação de sala

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

Page 31: Técnicas de Alocação de sala

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

Page 32: Técnicas de Alocação de sala

32

Gráfico 2 – Variação da média da função fitness.

Em comparação ao método manual, o resultado foi promissor, já que

apresentou indicadores muitas vezes melhores, e um ganho considerável de

tempo, passando de um mês para 15 horas, 42 minutos e 57 segundos o tempo

para geração de uma solução. Além de retirar a necessidade de utilização de 8

funcionários para o processo.

Os resultados de desempenho através da solução manual são

apresentados na Tabela 8 e a comparação entre a solução manual e a

computacional para os parâmetros mais importantes é apresentada na Tabela 9.

A comparação completa entre a solução manual e a computacional está presente

no Anexo B.

Tabela 8 – Relatório da solução manual.

Relatório Disciplina com Deficientes fora do térreo 0 Salas usadas por Química 7 7

Disciplinas com necessidades não atendidas 20 Salas usadas por Química 9 8

Salas com capacidade excedida 5 Salas usadas por Mecânica 1 1

Total de capacidade excedida 22 Salas usadas por Mecânica 3 3

Total de capacidade ociosa 9373 Salas usadas por Mecânica 5 3

Salas usadas por Produção 1 1 Salas usadas por Mecânica 7 6

Salas usadas por Produção 3 4 Salas usadas por Mecânica 9 2

0

2000

4000

6000

8000

10000

12000

14000

16000

0 200 400 600 800 1000 1200 1400 1600

Fitn

ess

Iteração

Evolução da Média

Page 33: Técnicas de Alocação de sala

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.

Page 34: Técnicas de Alocação de sala

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

Page 35: Técnicas de Alocação de sala

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.

Page 36: Técnicas de Alocação de sala

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.

Page 37: Técnicas de Alocação de sala

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.

Page 38: Técnicas de Alocação de sala

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

Page 39: Técnicas de Alocação de sala

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

Page 40: Técnicas de Alocação de sala

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

Page 41: Técnicas de Alocação de sala

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