Академический Документы
Профессиональный Документы
Культура Документы
ii
BANCA EXAMINADORA
ASS_____________________________________________________________________
Presidente: Prof M. SC Tiago Oliveira Motta
ASS_____________________________________________________________________
Membro I: Prof M. SC Tiago Palma Pagano
ASS_____________________________________________________________________
Membro II: Prof Dr Carlos Frederico Macdo Cortes
ASS_____________________________________________________________________
Membro III: Prof M. Sc. Anderson Leonardo Sanches
AGRADECIMENTOS
Agradeo primeiramente aos meus pais, pois devo a eles a minha educao e
meu sustento.
A Carlos Corts por me propor esse trabalho e se disponibilizar a me orientar
e a posterior passando minha orientao para Tiago Motta, que me ajudou diversas
vezes e sem ele, no teria conseguido concluir esse projeto.
No posso esquecer de agradecer aos meus colegas Gabriel, Deise e
Eduardo, amigos desde 2009, mas que com o passar dos semestre, pegamos cada
vez menos disciplinas juntos. A Alex, Ernando e Maiara, companheiros de estudo,
dores de cabea e de preocupaes. Batalhamos para passar em tantas disciplinas.
A Rafael Levi, amigo de longas datas, mais de 10 anos com certeza. Rapaz
bem atrapalhado, mas determinado. Desejo que muitos anos de sucesso estejam
pra vim.
Um agradecimento especial a Luana, o amor da minha vida. Mulher meiga,
carinhosa e amorosa, que com seu jeito cativante me conquistou e eu posso dizer
que sem ela, nada disso seria possvel.
Agradeo tambm aos membros da banca que se predispor a ler o meu
trabalho e a estarem presentes no dia da defesa para avaliar o mesmo.
Obrigado a todos aqueles que no mencionei, mas que sempre estiveram me
apoiando em todos os momentos
iv
RESUMO
A grade de horrios de notvel importncia para todo corpo docente e discente. Uma vez
que elaborada, ter validade por todo perodo letivo. Porm o escalonamento desses horrios
de soluo no-trivial devido a sua quantidade de variveis e de quantidade de informaes a
serem tratadas. Os Algoritmos Genticos um mtodo probabilstico de otimizao baseado
nas leis da evoluo, onde as solues mais aptas sobrevivem. O software condensa a soluo
do problema em uma cadeia binria, onde essa passara pelos processos evolutivos (seleo,
cruzamento e mutao) at encontrar uma boa soluo ou uma que satisfaa o critrio de
parada. Para saber se a soluo aceitvel, existe a funo objetivo que avalia a cadeia
binria, penalizando os erros existentes, fazendo com que os mais evoludos permaneam e
gerem filhos melhores a cada nova gerao. Com a sobrevivncia dos mais aptos, os melhores
indivduos prevalecero. possvel que uma gerao seja pior que a sua anterior, mas isso
pouco provvel. Para tal projeto, foi feito uma pesquisa bibliogrfica, a fim de compreender o
funcionamento dos algoritmos genticos e a construo de verses beta do software.
Palavras-chave: Escalonamento de horrio, Algoritmo gentico, Grade acadmica
ABSTRACT
The grid scheduling is of considerable importance to all faculty and students. Once
drafted, will be valid throughout the school year. But the escalation of these
schedules is non-trivial solution due to its number of variables and amount of
information to be handled. The Genetic Algorithm is a probabilistic optimization
method based on the laws of evolution, where the most suitable solutions survive.
The software condenses the solution of the problem in a binary string, where it
passed by evolutionary processes (selection, crossover and mutation) to find a good
solution or one that meets the stopping criterion. To determine whether the solution is
acceptable, there is the objective function that evaluates the binary string, penalizing
existing errors, making the stay more evolved and better manage children with each
new generation. With the survival of the fittest, the best individuals prevail. It is
possible that a generation is worse than his previous one, but this is unlikely. For this
project, a literature search was done in order to understand the functioning of genetic
algorithms and the construction of beta versions of software.
vi
ndice
1. Introduo ..................................................................................................... 1
1.1 Justificativa ..................................................................................................................... 2
1.2. Objetivo .......................................................................................................................... 3
1.3. Estrutura do trabalho ................................................................................................... 3
2. Algoritmos Genticos .................................................................................. 4
2.1. Introduo ..................................................................................................................... 4
2.2 Terminologia .................................................................................................................. 6
2.3. Operadores Genticos ................................................................................................ 7
2.3.1. Operador de seleo ............................................................................................ 7
2.3.2. Operadores de cruzamento ................................................................................ 8
2.3.3. Operadores de Mutao ...................................................................................... 9
2.4. Elitismo ........................................................................................................................ 10
2.5. Critrios de parada .................................................................................................... 10
2.6. Outras consideraes sobre AGs ........................................................................... 10
2.6.1. Reutilizao de cdigo ....................................................................................... 10
2.6.2. Os menos aptos tambm deve ter chance de se perpetuar ........................ 10
3. Estudo de caso ........................................................................................... 12
3.1 Abordagens iniciais ................................................................................................. 12
3.2 Complexidades algortmicas .................................................................................. 13
3.3 Tipos de restries .................................................................................................. 16
3.3.1 Leves .................................................................................................................. 16
3.3.2 Mdias ................................................................................................................ 16
3.3.3 Severas .............................................................................................................. 17
4. Implementao do sistema........................................................................ 18
4.1 Banco de dados........................................................................................................... 18
4.1.1 Tabela de disciplinas ........................................................................................... 18
4.1.1 Tabela de professores ........................................................................................ 20
4.1.1 Tabela de salas .................................................................................................... 21
4.2 Modelagem computacional ........................................................................................ 23
4.3 Inicializao da populao......................................................................................... 25
4.4. Funo de avaliao ................................................................................................. 26
4.4.1 Nmero de aulas .................................................................................................. 26
4.5. Operadores genticos ............................................................................................... 26
4.5.1 Operador de seleo Roleta ........................................................................... 26
4.5.2 Operador de cruzamento crossoverUmPonto ............................................. 27
4.5.3 Operador de mutao ......................................................................................... 27
4.6 Elitismo ......................................................................................................................... 27
4.7 Funo de ajuste ......................................................................................................... 28
5. Resultados e Concluses .......................................................................... 29
5.1 Plataformas de hardware e software ....................................................................... 29
5.2 Anlise dos resultados ............................................................................................... 30
6. Concluso ................................................................................................... 31
6. Trabalhos futuros ....................................................................................... 32
vii
Bibliografia...................................................................................................... 33
APENDICE A Diagrama de caso de uso .................................................... 34
APENDICE B Diagrama de sequencia ....................................................... 35
APENDICE C Diagrama de classes ............................................................ 43
viii
ndice de figuras
ix
ndice de tabelas
1. Introduo
1.1 Justificativa
Nesse trabalho ser analisado o problema do escalonamento de horrios de
disciplinas de graduao do CETEC, Centro de Cincias Exatas e Tecnolgicas, da
UFRB, Universidade Federal do Recncavo da Bahia. Esse tipo de problema de
difcil soluo manual, pois existe um grande nmero de professores e disciplinas
sendo ministradas no centro, tornando assim muito complicado a tabulao das
informaes. A grade de horrios de notvel importncia para todo corpo docente,
discente e funcionrios da instituio, j que uma vez elaborada, ela ter validade
por todo perodo letivo. O CETEC se encontra atualmente com cerca de 81
professores, sendo que parte do corpo docente atua como suporte a outro centro, o
CCAAB, Centro de Cincias Agrrias Ambientais e Biolgicas. Tomando-se uma
mdia de trs disciplinas por professor, totalizando 243 turmas para serem
distribudas.
Nesse sentido o escalonamento de horrios em questo se torna uma tarefa
no-trivial do ponto de vista computacional. Assim, a teoria da complexidade
computacional faz parte da teoria da computao que estuda os recursos
necessrios de um algoritmo para resolver um problema. Existem vrios tipos de
problemas, dentre os quais se podem citar: N, P e NP - completo. Um problema
pode ser considerado do tipo P se existir um algoritmo polinomial que resolva esse
problema, nesse caso eles so tratveis. Geralmente so problemas onde envolvem
equaes polinomiais simples, como por exemplo, equaes lineares. Segundo
Toscani (2001), os assim chamados problemas NP Completos so aqueles que
tm a questo da complexidade ou tratabilidade no resolvida, pois no se sabe se
existe ou no algoritmo polinomial que o resolva. Nesse tipo de problema se
encontram equaes exponenciais e fatoriais, que com um pequeno nmero de
entradas se alcanam nmeros muito grandes de clculos.
A pessoa responsvel por esse processo o Gestor de Ensino. A cada novo
semestre ele deve redefinir os horrios, levando em considerao a preferncia de
horrio dos professores, o tamanho da turma, o tamanho da sala, entre outros. Com
isso, segundo Linden 2012, fica claro que o espao de busca demasiadamente
grande, dando que o nmero de combinaes turma/sala/horrio proporcional ao
fatorial do nmero de turmas e salas, adquirindo assim o carter de NP - Completo.
2
1.2. Objetivo
O objetivo deste trabalho criar um software de fcil operao, do qual seja
possvel a extrao de informaes relevantes ao processo de formao da grade
horria, levando em considerao a limitao dos recursos humanos e de infraestrutura, utilizando Algoritmo Gentico para alcanar uma soluo vivel.
2. Algoritmos Genticos
2.1. Introduo
Segundo Corts(2010), a busca pela otimizao de um problema uma
grande escolha para o melhoramento de suas solues. A otimizao visa
determinar a melhor correlao entre as variveis para atender os parmetros e
condies do projeto sem a necessidade de testar todas as possibilidades e,
portanto sem onerar o processo. A otimizao vem sendo aplicada em diversos
campos da engenharia, como por exemplo, planejamento, logsticas, anlise de
estruturas e formao de horrios.
Vantagens:
- Reduo do tempo e custo devido elaborao do projeto, em um curto
prazo o problema otimizado;
-Possibilidade de manejo simultneo de uma grande quantidade de variveis
e restries de difcil visualizao grfica ou tabular
Desvantagens:
-Aumento do custo computacional, computadores que rodam esse tipo de
programa necessitam de uma grande quantidade de memria;
-Presena de muitos mnimos locais (o mnimo global dificilmente obtido);
Garantia de convergncia;
2.2 Terminologia
Os seres vivos so constitudos de clulas que por sua vez so compostos por
cromossomos. Cada indivduo est presente em sua gerao, podendo fazer com
que seus genes sejam passados para a prxima gerao. Abaixo temos uma lista
com os termos usado nos AGs.
2.4. Elitismo
Cromossomo
Valor representado
Avaliao f(x) = x
0010
1100
12
144
0110
36
0001
O indivduo 4(0001) tem uma pssima avaliao, porm ele tem um timo alelo, que
o 1 na ultima posio do cromossomo, caracterstica essa que no se encontra
nos dois melhores cromossomos. Logo se utilizar somente os melhores
cromossomos para a reproduo, esse alelo no ter a chance de se perpetuar e
para que ele aparea novamente, ficar-se-ia dependente apenas do processo de
mutao, processo esse com baixa possibilidade de acontecimento, como visto
anteriormente.
11
3. Estudo de caso
3.1 Abordagens iniciais
Neste trabalho, considera-se como base o curso de Bacharelado em Cincias
Exatas e Tecnolgicas e uma de suas terminalidades da UFRB. Ela formada por
um conjunto de disciplinas, distribudas ao longo de 10 semestres. Para concluir o
curso, o aluno deve concluir todas as disciplinas de sua matriz curricular.
A cada semestre, as disciplinas so oferecidas em um determinado dia da
semana, onde o aluno poder se matricular nas disciplinas oferecidas. Porm ele
ter que respeitar o choque de horrios e os pr-requisitos dos componentes
curriculares que deseja cursar. Abaixo tem uma figura que exemplifica o horrio
semanal de um estudante:
12
Fonte:http://www.ufrb.edu.br/cetec/index.php/documentos/diversos/84-ppcbcet/download
Onde:
Arranjo simples de "a" elementos separados em grupo de p elementos
a Numero total de elementos
p Numero de elementos escolhidos
Porm, esse tipo de raciocnio aplicado em situaes onde a ordem de
alocao importante, como por exemplo, senhas. Ento, nesse caso utiliza-se a
permutao. O conceito de permutao expressa idia de que objetos distintos
podem ser arranjados em inmeras ordens diferentes. Por exemplo, com os
nmeros de um a seis, cada ordem possvel produz uma lista dos nmeros, sem
repeties. Ele dado da seguinte forma:
Onde:
P Permutao simples de n elementos
n Numero total de elementos
Nesse caso tem-se 243 turmas para serem alocadas em salas de aula.
Supondo que todas as turmas tenham 2 aulas semanais, tem-se um total de 486
aulas distribudas na semana.
Para primeira alocao tem-se 486 possibilidades, aloca-se uma aula. Na
segunda tem-se 485, aloca-se outra aula, e assim sucessivamente obtendo uma
caracterstica fatorial, como mostra o esquema abaixo.
Onde:
TT Nmero total de possibilidades
14
Salas convencionais;
Salas de desenho;
Laboratorio de informtica.
Inicialmente no diferenciaremos essas salas. Como as aulas podem ser
NA nmero de alocaes
NS nmero de salas = 23
NADS nmero de aulas por dia por sala = 4
ND nmero de dias = 5
De acordo com Lemes Hamawaki, 2005, Frangouli 2002, props uma frmula
para determinar o tamanho mximo do espao de pesquisa. Essa frmula pode ser
expressa por:
Onde:
15
Como se pode ver, o nmero total de possibilidades foi reduzido, mas ainda
um nmero elevado.
Uma disciplina dever ter no mnimo um dia e no mximo dois dias entre suas
aulas;
Uma turma deve sempre estar na mesma sala e no mesmo horrio e todas as
suas aulas.
3.3.3 Severas
Esse tipo de restrio verifica a factibilidade do cromossomo, se ele pode ser
17
4. Implementao do sistema
Para poder implementar a proposta, o algoritmo foi escrito na linguagem Java,
utilizando o ambiente de desenvolvimento Eclipse. Como o Eclipse inicialmente no
possui um gerador de telas foi-se utilizada uma verso no-comecial do plug-in
Jigloo.
18
19
20
21
22
23
est sendo cadastrada, caso no exista, ser atribudo T01, caso j tenha ser
atribudo T02, T03, assim por diante.
Nmero
0
1
2
3
00
01
10
11
Nmero
0
1
2
3
4
5
1
2
24
Uma vez que todos as turmas j obtiveram uma codificao binria, mas
ainda restam cdigos binrios sem turma associada, inicia-se o processo de
repetio das primeiras turmas tendo em vista no permitir que cdigos fiquem sem
turma relacionada.
O cromossomo subdividido em slots, onde cada um deles a representao
do conjunto de dia/sala/horrio. A sua diviso feita de acordo com o numero de
bits necessrios para representar o total de turmas cadastradas. Como no primeiro
exemplo acima foi utilizado apenas 2 bits, no cromossomo a cada 2 bits um slot. A
figura 20 mostra um exemplo de cromossomo, com disciplina sendo representada
com 2 bits, e a tabela 4 mostra a sua codificao.
Figura 17- Representao de cromossomo com disciplina sendo representada por 2 bits
Sala 1
08 as 10
10 as 12
14 as 16
16 as 18
SEX
10
26
4.6 Elitismo
27
28
5. Resultados e Concluses
Este trabalho apresenta os aspectos da utilizao dos algoritmos genticos na
construo de uma grade horria de uma instituio de ensino superior. Procura-se
mostrar a complexidade dos problemas encontrados para a definio de uma boa
elaborao da grade horria, j que, existem mltiplos objetivos, restries e nmero
de variveis elevadas para ser considerado.
A fim de reduzir a complexidade do problema, apenas uma restrio foi
utilizada, o nmero de aulas durante a semana, assim como o nmero de variveis
tambm foi reduzido, apenas a varivel disciplina levada em conta. O horrio
gerado para 1 sala. Abaixo encontra-se uma descrio do algoritmo
Buscam-se todas as disciplinas cadastradas no banco de dados;
Calculam-se quantos bits sero necessrios para representar todas as
disciplinas;
Calcula-se o tamanho total do vetor binrio(cromossomo);
Cada representao, da faixa de contagem, associada a uma disciplina;
Gera-se a populao inicial
So aplicados os operadores genticos;
Exibe a melhor soluo
6. Concluso
O software foi desenvolvido para uma instituio de ensino superior que
possui problemas e restries a serem resolvidas com relao criao de grade de
horrios, que ate ento era executado pelo gestor, sem auxilio de uma ferramenta
adequada para a minimizao do tempo. Porm, foi implementada apenas a
restrio quanto ao nmero de aulas semanais.
Assim que a ferramenta for concluda, alm de diminuir o tempo requerido
para a confeco da grade horria, amenizaria o esforo por parte do gestor, j que
o mais necessrio a alimentao do banco de dados.
A partir da anlise dos resultados obtidos, pode-se concluir que as tcnicas
que foram implementadas possuem resultados satisfatrios, simplificando os
procedimentos, utilizando mtodos heursticos de evoluo.
Para a principal contribuio desse trabalho, pode-se mencionar o estudo de
tcnicas evolutivas, em conjunto com problema de restries, vindo com uma
soluo para o problema de alocao de salas.
31
6. Trabalhos futuros
Este trabalho contribuiu para o estudo da aplicao dos algoritmos genticos
na construo de grades de horrio acadmica. Porm as possibilidades de
pesquisa e desenvolvimento desse aplicativo no foram esgotadas. Sugerem-se
ento novos trabalhos para que possam ser realizados para ampliar o conhecimento
e na obteno de uma verso final do aplicativo. Dentre as possibilidades de
pesquisa, pode-se citar:
O acrscimo de novas restries, a fim de que a soluo seja de
agrado a um maior nmero de pessoas;
A utilizao de todas as variveis (disciplina, professor, sala);
O melhoramento do tempo de execuo.
32
Bibliografia
BARBOSA, H. J., & LEMONGE, A. C. (2003). A New Adaptive Penalty Scheme for Genetic
Algorithm. Information Sciences , 215-251.
CONCILIO, RICARDO (2002). Contribuies Soluo de Problemas de Escalonamento
pela Aplicao Conjunta de Computao Evolutiva e Otimizao com Restries . Campinas,
So Paulo, Brasil.
Corts, CARLOS FREDERICO, (Maro de 2010). OTIMIZAO DO PROJETO DA
SUPERESTRUTURA DE PONTES PR-FABRICADAS PELO MTODO DOS
ALGORITMOS GENTICOS . Rio de Janeiro, Rio de Janeiro, Brasil.
De JONG, KENNETH ALAN. (1975). An Analysis of the Behavior of a Genetic Adaptive
System . Arbor, USA.
Filho, GERALDO RIBEIRO (6 de dezembro de 2000). MELHORAMENTOS NO
ALGORITMO GENTICO CONSTRUTIVO E NOVAS APLICAES EM PROBLEMAS DE
AGRUPAMENTO . So Jos dos Campos, So Paulo, Brasil.
Hamawaki, CRISTINA DIVINA. (Novembro de 2005). Gerao automatica de grade
horaria usando algoritmo genetico: O caso da faculdade de engenharia eletrica da UFU .
Uberlandia, Minas Gerais, Brasil.
LACERDA, E. G., & CARVALHO, A. C. (1999). Introduo aos Algoritmos Genticos . Rio
de Janeiro, Brasil.
Linden, RICARDO. (2006). Algoritmos Geneticos. Rio de Janeiro: Ciencia Moderna.
Toscani, LAIRA VIEIRA (2002). Complexidade de Algoritmo. Porto Alegre: Sagra Luzzato.
33
34
35
36
37
38
39
40
41
42
43