Вы находитесь на странице: 1из 53

UNIVERSIDADE FEDERAL DO RECNCAVO DA BAHIA

CENTRO DE CINCIAS EXATAS E TECNOLGICAS


BACHARELADO EM CINCIAS EXATAS E TECNOLGICAS

SOFTWARE DE ESCALONAMENTO DE HORRIO


ACADEMICO: UMA APLICAO DOS
ALGORITMOS GENTICOS

MARCOS VINICIUS BIO CERQUEIRA

CRUZ DAS ALMAS, 2012

UNIVERSIDADE FEDERAL DO RECNCAVO DA BAHIA


CENTRO DE CINCIAS EXATAS E TECNOLGICAS
BACHARELADO EM CINCIAS EXATAS E TECNOLGICAS

SOFTWARE DE ESCALONAMENTO DE HORRIO


ACADEMICO: UMA APLICAO DOS
ALGORITMOS GENTICOS

Trabalho de concluso de curso apresentado


Universidade Federal do Recncavo da Bahia como
parte dos requisitos para obteno do ttulo de
bacharel em cincias exatas e tecnolgicas

Orientador : Prof.: Tiago Oliveira Motta


Co-orientador: Prof.: Carlos Frederico Macedo Corts
MARCOS VINICIUS BIO CERQUEIRA

CRUZ DAS ALMAS, 2012

ii

UNIVERSIDADE FEDERAL DO RECNCAVO DA BAHIA


CENTRO DE CINCIAS EXATAS E TECNOLGICAS
BACHARELADO EM CINCIAS EXATAS E TECNOLGICAS

SOFTWARE DE ESCALONAMENTO DE HORRIO


ACADEMICO: UMA APLICAO DOS
ALGORITMOS GENTICOS

Aprovada em: 12/12/2012

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

Orientador: Prof M. SC Tiago Oliveira Motta


Graduando: Sr. Marcos Vinicius Bio Cerqueira

CRUZ DAS ALMAS, 2012


iii

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

UNIVERSIDADE FEDERAL DO RECNCAVO DA BAHIA


CENTRO DE CINCIAS EXATAS E TECNOLGICAS
BACHARELADO EM CINCIAS EXATAS E TECNOLGICAS
SOFTWARE DE ESCALONAMENTO DE HORRIO ACADEMICO: UMA
APLICAO DOS ALGORITMOS GENTICOS

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

UNIVERSIDADE FEDERAL DO RECNCAVO DA BAHIA


CENTRO DE CINCIAS EXATAS E TECNOLGICAS
BACHARELADO EM CINCIAS EXATAS E TECNOLGICAS
SOFTWARE DE ESCALONAMENTO DE HORRIO ACADEMICO: UMA
APLICAO DOS ALGORITMOS GENTICOS

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.

Keywords: Scheduling time, Genetic Algorithm, academic Grade

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

Figura 1- Algoritmo gentico bsico .......................................................................................... 4


Figura 2- Descrio grfica dos elementos genticos com codificao binria ......................... 7
Figura 3-- Exemplo de operador de crossover de um ponto....................................................... 9
Figura 4- Exemplo de operador de mutao ............................................................................... 9
Figura 5- Horrio semanal de um estudante ............................................................................. 12
Figura 6- Exemplo de matriz curricular ................................................................................... 13
Figura 7- Tela de cadastro de disciplinas ................................................................................. 19
Figura 8- Tela de atualizao de disciplinas ............................................................................. 19
Figura 9 Telas de excluso de disciplinas .............................................................................. 20
Figura 10- Tela de cadastro de professor.................................................................................. 20
Figura 11- Tela de atualizao de professor ............................................................................. 21
Figura 12 Tela de excluso de professores ............................................................................. 21
Figura 13- Tela de cadastro de sala .......................................................................................... 22
Figura 14- Tela de atualizao de sala...................................................................................... 22
Figura 15 Tela de excluso de salas ....................................................................................... 23
Figura 16- Tela de cadastro de turma ....................................................................................... 24
Figura 17- Representao de cromossomo com disciplina sendo representada por 2 bits ....... 25
Figura 18- Apresentao dos resultados ................................................................................... 30
Figura 19- Apresentao dos resultados ................................................................................... 30
Figura 20 Diagrama de caso de uso ........................................................................................ 34
Figura 21 Diagrama atualiza disciplina .................................................................................. 35
Figura 22 Diagrama atualiza professor ................................................................................... 36
Figura 23 Diagrama Atualiza sala .......................................................................................... 37
Figura 24 Diagrama cadastra disciplina ................................................................................. 37
Figura 25 Diagrama cadastra professor .................................................................................. 38
Figura 26 Diagrama cadastra sala ........................................................................................... 38
Figura 27 Diagrama exclui disciplina..................................................................................... 39
Figura 28 Diagrama exclui professor ..................................................................................... 40
Figura 29 Diagrama exclui sala .............................................................................................. 41
Figura 30 Diagrama forma horrio ......................................................................................... 42
Figura 31 Diagrama de classe................................................................................................. 43

ix

ndice de tabelas

Tabela 1- Possvel soluo para maximizar f(x)=x ................................................................. 11


Tabela 2- Representao de 3 turmas ....................................................................................... 24
Tabela 3- Representao de 5 turmas ....................................................................................... 24
Tabela 4- Representao dos slots ............................................................................................ 25

1. Introduo

bastante desejvel que a resoluo de um problema seja obtida de forma


rpida e robusta. No inicio dos tempos a busca pela soluo era feita de forma
intuitiva, mas medida que os problemas foram tornado-se complexos, a intuio
deixou de ser uma ferramenta utilizvel, tendo assim a necessidade de criao de
mtodos que indicassem o melhor caminho a seguir.
Atualmente, mtodos computacionais so bastante utilizados na resoluo
de problemas nas diversas reas da cincia. Dentre esses mtodos computacionais
existe a otimizao combinatria. Segundo Ribeiro Filho(2000), a otimizao
combinatria se caracteriza pelo tratamento de problemas cujo conjunto de
possibilidades soluo finito e enumervel. Outro mtodo que pode ser utilizado
a Rede Neural que inspirado na estrutura neural dos organismos inteligentes que
tem a habilidade de aprender com o ambiente, melhorando assim o seu
desempenho atravs de processos interativos de ajustes. Uma grande rede neural
pode apresentar centenas de unidades de processamento, uma vez que um crebro
de um mamfero pode ter bilhes de neurnios. Outra forma a utilizao da Lgica
Fuzzy, apesar desse mtodo no precisar de uma boa aproximao inicial, ela
uma proposta de dois extremos, ou esta tudo verdadeiro ou tudo falso.
De acordo com Linden (2012), os algoritmos evolutivos dependem de fatores
estocsticos (probabilsticos), tanto em sua fase de inicializao, quanto em sua
evoluo. Com isso, quase impossvel que seus resultados sejam perfeitamente
reproduzidos, ou seja, muito provvel fazer a execuo do cdigo diversas vezes e
encontrar resultados diferentes. Caso o tempo de execuo do algoritmo seja
pequeno, no existe a necessidade de se utilizar algoritmos evolutivos, os mtodos
matemticos so mais eficientes para esse tipo de problema. Entretanto quando
trabalhamos com algoritmos extremamente lentos, onde o espao de busca muito
grande, as classes evolutivas so uma excelente ferramenta para a busca de
solues.

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.

1.3. Estrutura do trabalho


No captulo 2 so apresentados e discutidos os fundamentos dos algoritmos
genticos. No tpico seguinte, mostra-se a dificuldade de se criar uma grade de
horrios, mostrando a sua complexidade e as restries encontradas nesse tipo de
problema. O captulo 4 apresenta a implementao do sistema, desde sua
modelagem at os mtodos utilizados. O captulo 5 expe os resultados e a
concluso obtida por sua anlise. Por ltimo e no menos importante, no captulo 6
feito sugestes para trabalhos futuros.

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.

Os Algoritmos Genticos(AG) so uma classe de algoritmo que visa a


otimizao dos problemas com base nos preceitos da gentica. Para a evoluo da
cadeia de solues, so usados os operadores genticos, esses por sua vez, so
divididos em 3 grupos: mutao, seleo e cruzamento. Abaixo se encontra um
pseudocdigo de AG bsico:

Figura 1- Algoritmo gentico bsico

Fonte: Adaptado de Linden,2006


De acordo com Linden (2012), importante ressaltar que a evoluo natural
no um processo para a obteno de uma soluo tima. O processo
simplesmente consiste em fazer vrios indivduos competirem entre si pelo processo
de sobrevivncia do mais apto, onde os melhores indivduos tendem a sobreviver.
possvel que uma gerao seja pior que a sua anterior, mas isso pouco
provvel.
4

Com a aplicao dos operadores genticos, novos cromossomos so criados.


Faz-se necessrio a utilizao de um mtodo de avaliao que faa a seleo. Temse ento a funo objetivo que penaliza o individuo que se encontra em
contradio com a resoluo do problema.
Devido necessidade de implementaes mais precisas, problemas mais
complexos so criados para poder suprir a grande demanda imposta pelo mercado e
apesar dos avanos das ferramentas computacionais, no era mais possvel contar
com os processos de tentativa e erro.
Percebe-se, ento, que a otimizao uma ferramenta importante para a
resoluo dos problemas da engenharia. Abaixo se encontra algumas de suas
vantagens e desvantagem:

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

Na maioria das vezes as solues encontradas so prximas ao mnimo global


onde satisfazem o mtodo de parada. Alm disso, so aplicados a vrios tipos de
problemas, j que no impem limitaes encontradas geralmente em outros
mtodos de buscas. Algumas vantagens do AG:

So relativamente fceis de serem implementados;

So flexveis, possvel utilizar parte do cdigo em outros problemas;

possvel utilizar varias funes-objetivo, mesmo que conflitantes;

Trabalham sobre um conjunto de solues do espao de busca em vez de


uma nica soluo;

Trabalham com mltiplos candidatos soluo ao mesmo tempo, na mesma


gerao;

Usam regras probabilsticas de transio;

Pode ser hibridizada com outras tcnicas heursticas.


5

Devido a essas caractersticas, os AG mostram ser mais eficientes do que os


mtodos tradicionais. Contudo, quando se existe uma boa aproximao inicial, os
mtodos matemticos se mostram mais eficientes devido ao baixo custo
computacional. Da surgiu novas formas de manejo, onde primeiramente utilizam-se
os mtodos probabilsticos e com o refinamento dos resultados, utilizam-se tcnicas
matemticas para redefinir o resultado garantindo um timo resultado. (BARBOSA &
LEMONGE 2003).
Segundo Concilio (2000), trs condies devem ser consideradas em torno do
processo interativo:

Garantia de convergncia;

Tempo de convergncia compatvel com as necessidades de cada


aplicao;

Convergncia para uma soluo de boa qualidade.

Quanto mais complexo o problema de otimizao e quanto maior o nmero de


variveis, menores so as chances das trs condies serem atendidas,
principalmente quando o mtodo de otimizao aplicado no for poderoso o
suficiente na execuo do processo de busca.
A tratabilidade de problemas com alto grau de complexidade, por muitas
vezes, conseguida abrindo mo de uma soluo tima em prol de uma boa
soluo. Como em muitos casos se desconhece a soluo tima, a qualidade
dessas solues medida de acordo com as solues obtidas em outros testes.

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.

Cromossomo: Ele a representao das solues do problema, como esse


trabalho utiliza a representao binria, o cromossomo nada mais do que
uma cadeia de 0 e 1;

Gene: Um elemento que indica o cromossomo;


6

Individuo: Juno do cromossomo com sua aptido;

Aptido: O quo prximo o cromossomo esta para chegar melhor soluo


do problema;

Gentipo: Informao contida no cromossomo;

Fentipo: o cromossomo codificado, em nosso caso, seria a informao de


qual professor estaria em qual sala lecionanda determinada disciplina;

Alelo: Devido representao binria, seria propriamente o 0 ou o 1;

Epistasia: Interao entre os genes de um cromossomo, ou seja, quando um


gene interferiu em outro;

Gerao: Nmero de ciclos que o algoritmo faz.


Figura 2- Descrio grfica dos elementos genticos com codificao binria

Fonte: Adaptado de Corts, 2010

2.3. Operadores Genticos

Os operadores genticos j existentes tm como objetivo gerar novos


indivduos, mantendo a diversidade cromossomial, permitindo assim que o algoritmo
explore varias regies do espao de busca.

2.3.1. Operador de seleo

O operador de seleo tem como objetivo escolher aleatoriamente os


indivduos que passaro para a prxima gerao e quais sofrero as aes dos
operadores. O fator levado em conta para esse tipo de operador o ndice de
aptido. Seu objetivo fazer com que os mais aptos permaneam na populao,
gerando descendentes com ndice de aptido ainda melhores, enquanto os outros
indivduos tendem a desaparecer.
O operador de seleo a ser usado, vai depender muito do problema
analisado. Quanto mais rigoroso for o operador, mais rpido os indivduos tendem
aos mnimos das funes, em contrapartida sua diversidade reduzida, dificultando
explorao de outras regies do espao que poderiam ser favorveis a soluo do
problema.
O ndice de aptido est associado probabilidade de reproduo de um
indivduo. Logo, este indicador depende do valor da funo-objetivo para cada
indivduo que compe a populao. (LACERDA e CARVALHO, 1999)

2.3.2. Operadores de cruzamento

O cruzamento um processo onde a partir de dois cromossomos gerado


um novo, garantindo a diversidade da populao.
Para controle de sua ocorrncia existe uma taxa de cruzamento pc(ponto de
cruzamento), que limita a possibilidade do cromossomo sofrer o processo. Uma taxa
alta permite uma maior explorao do espao, porm o tempo computacional
elevado devido explorao de reas no favorveis.
O cruzamento funciona da seguinte forma: gera-se um nmero real e
aleatrio(entre 0 e 1) para cada indivduo. Aqueles que tiverem o nmero menor que
a taxa de cruzamento, sero aplicados os processos de cruzamento adotados no
cdigo, eles so chamados de progenitores. Os resultados dos cruzamentos so
chamados de descendentes.
Segundo Cristina Hamawaki(2005), vale lembrar que o cruzamento de
indivduos iguais, resultar em um indivduo igual aos seus progenitores, atrasando
o processo de convergncia do algoritmo. Por isso, o mtodo de cruzamento no
deve ser realizado com cromossomos iguais.

Figura 3-- Exemplo de operador de crossover de um ponto

Fonte: Adaptado de Corts,2010


2.3.3. Operadores de Mutao

A mutao obtida pela mudana aleatria de um gene em um cromossomo


especifico, que tambm escolhido aleatoriamente dentre os descendentes da
gerao.
Para existir um controle desse operador, existe um limitador chamado de
pm(ponto de mutao). Uma baixa taxa de mutao tende a obter resultados mais
rpidos devido diminuio da diversidade. Contudo, uma taxa maior acarretaria
uma explorao maior de outras regies.
Para o funcionamento desse operador, gerado aleatoriamente um nmero
entre 0 e 1 para cada alelo. Aqueles que tiverem um nmero menor que pm sofreram
as aes dos operadores de mutao.
Geralmente se utiliza valores pequenos entre 0,1% a 10%.
Figura 4- Exemplo de operador de mutao

Fonte: Adaptado de Corts, 2010

2.4. Elitismo

Na gentica, o filho gerado a partir da combinao dos cromossomos de


seus pais, fazendo com que aparea um novo indivduo, porm com isso perdem-se
os indivduos originais. No AG, o desaparecimento de bons indivduos ruim para
atingimos a melhor soluo do problema. Portanto De Jong (1975) props um
mtodo chamado de elitismo, onde os melhores indivduos so mantidos nas
geraes seguintes. Alguns pesquisadores da rea tambm chamam esse mtodo
de clonagem.

2.5. Critrios de parada

Em vrios casos, demora-se muito a atingir um mnimo global. Em outros


casos ele nem atingido, faz-se necessrio a utilizao de um mtodo de parada.
Normalmente os mtodos mais utilizados so o nmero mximo de geraes e o
tempo limite de processamento.

2.6. Outras consideraes sobre AGs

2.6.1. Reutilizao de cdigo


Os algoritmos genticos tm a caracterstica de poderem ser reutilizados de
um problema para o outro, simplesmente alterando sua funo de avaliao e
buscando novamente a soluo. Alguns resultados podem ate ser interessantes,
mas a lgica sugere que no a melhor abordagem. De acordo com Linden (2012)
quanto mais informaes do problema o algoritmo tiver, mais eficiente ele ser. A
utilizao do algoritmo gentico no pode ser uma desculpa para ignorar as
caracteristicas do problema e para a no model-lo computacionalmente.

2.6.2. Os menos aptos tambm deve ter chance de se perpetuar


Charles Darwin no estava errado em dizer que apenas os indivduos mais
aptos sobrevivero, no entanto isso no exclui a possibilidade tentativa de
10

reproduo de indivduos menos aptos. Nos algoritmos genticos no pode ser


diferente, pois existem casos em que um indivduo com uma baixa aptido possui
um alelo de vital importncia para a otimizao do problema. O exemplo melhor
visualizado na tabela abaixo, onde se utiliza os AGs para maximizar a funo f(x) =
x dentro do intervalo [0,15]. Este um exemplo puramente explicativo, pois se sabe
de antemo que onde a funo maximizada 15(1111),

Cromossomo

Valor representado

Avaliao f(x) = x

0010

1100

12

144

0110

36

0001

Tabela 1- Possvel soluo para maximizar f(x)=x

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:

Figura 5- Horrio semanal de um estudante

Fonte: Dados da pesquisa


Para uma melhor administrao por conta do corpo discente, o curso oferece um
diagrama do fluxo curricular, como ilustra a figura abaixo. Nessa grade j previsto
o cumprimento de pr-requisitos afim de no comprometer o tempo de concluso do
curso pelo aluno.

12

Figura 6- Exemplo de matriz curricular

Fonte:http://www.ufrb.edu.br/cetec/index.php/documentos/diversos/84-ppcbcet/download

O nmero de disciplinas por semestre pode varia de acordo com o curso


analisado. Como existe a possibilidade de adiantamento ou atraso de disciplinas por
parte do aluno, existe uma quantidade mnima e mxima de semestre a serem
cursadas.
Segundo Cristina Hamawaki (2005), a criao de uma grade horria em uma
instituio de ensino uma atividade muito importante, j que depois de elaborada,
ela ser utilizada por todo o perodo letivo. Isto faz com que todos, inclusive o corpo
docente, tenham que se adaptar a esses horrios.

3.2 Complexidades algortmicas


Algo que no fica explicito aos olhos dos usurios a complexidade que existe
para se montar uma grade de horrios em uma universidade. Para poder definir o
13

tamanho total do nosso espao, poderia-se aplicar o arranjo simples. O arranjo


simples de n elementos tomado p a p, onde p < n, so diferentes agrupamentos
ordenados que se possam formar com p dos n elementos dados. Eles so
calculados assim:

Equao 1- Formula de arranjo simples

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:

Equao 2- Formula para permutao simples

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.

Equao 3 Exemplo do numero total de possibilidades

Onde:
TT Nmero total de possibilidades

14

A no existncia de um mtodo polinomial torna esse problema de difcil


resoluo computacional. O fato de ter uma equao fatorial faz com que uma
pequena quantidade de entrada se torne uma quantidade absurda de clculos a
serem analisados, fazendo com que se gaste um tempo muito grande para
atingirmos uma soluo. Por isso esse problema pode ser caracterizado por NP Completo.
Olhando agora a parte estrutural, tem-se 23 salas, dentre elas encontram-se 3
tipos diferentes:

Salas convencionais;

Salas de desenho;

Laboratorio de informtica.
Inicialmente no diferenciaremos essas salas. Como as aulas podem ser

ministradas no turno da manha e da tarde, tendo 2 aulas em cada turno, tem-se


ento um espao total de 460 alocaes para poder serem distribudas as aulas,
como se pode ver a seguir:

Equao 4- Equao para o numero total de alocaes na semana

NA nmero de alocaes
NS nmero de salas = 23
NADS nmero de aulas por dia por sala = 4
ND nmero de dias = 5

Equao 5- Exemplo do caso analisado

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:

Equao 6- Equao proposta por Frangouli, 2002

Onde:

15

TEP tamanho do espao de pesquisa


NDS nmeros de dias letivos na semana
NAD nmero de aulas por dia
NSA nmero de salas de aula
ND nmero de turmas
NAP nmero de aulas por turma

No caso analisado, tm-se os seguintes valores:

Equao 7- Exemplo do caso, segundo a equao de Fragouli, 2002

Como se pode ver, o nmero total de possibilidades foi reduzido, mas ainda
um nmero elevado.

3.3 Tipos de restries


O problema de alocao de aulas multiobjetivo e sujeito a vrios tipos de
restries, restries essas que podem ser classificadas em:
3.3.1 Leves
Geralmente ligadas preferncia do professor. Ele poder preencher uma
ficha informando quais os horrios ele prefere ministrar suas aulas, deixando
horrios reservados para suas pesquisas e extenso. As penalidades associadas a
esse tipo de advertncia so baixas, j que o professor pode facilmente adequar o
seu horrio.
3.3.2 Mdias
So situaes de maior complexidade, geralmente ligadas a distribuio
uniforme das aulas. As penalizaes envolvidas so de peso mdio ou alto, a
depender do caso. Exemplos de restries mdias:

Evitar o professor ministrar aulas todos os dias;

Professores e alunos tm o dia inteiro de aulas;


16

Disciplinas de semestre impar em um turno e de semestres pares em outro


turno;

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

aplicado ou no. As penalizaes so elevadas, a fim de fazer o cromossomo ser


descartado ao decorrer da evoluo, em alguns casos, ele inviabiliza imediatamente
o cromossomo. As restries abaixo descritas devem ser atendidas em qualquer
sistema de elaborao de grade horria:

Cada turma deve estar presente na grade horria em um nmero pr-definido


de horas;

No podem existir dois professores na mesma sala em um mesmo horrio;

Nenhum professor pode estar em duas ou mais salas ao no mesmo dia e no


mesmo horrio;

Disciplinas de mesmo semestre no devem estar no mesmo dia e horrio;

S pode haver uma disciplina na mesma sala e mesmo horrio;

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.

4.1 Banco de dados


A aplicao trabalha com uma base de dados previamente elaborada com
base em dados reais. Esses dados se encontram ordenados em tabelas criadas pelo
PostgreSQL. Nestas tabelas temos todos os dados necessrios sobre as disciplinas,
professores e salas para o processamento do algoritmo.

4.1.1 Tabela de disciplinas

A tabela de disciplinas se encontra com quatro colunas: nome, cdigo,


semestre e carga horria. As figuras abaixo mostram as telas de cadastro, de
atualizao e de excluso de disciplinas:

18

Figura 7- Tela de cadastro de disciplinas

Fonte: Dados da Pesquisa


Figura 8- Tela de atualizao de disciplinas

Fonte: Dados da Pesquisa

19

Figura 9 Telas de excluso de disciplinas

Fonte: Dados da pesquisa


4.1.1 Tabela de professores

A tabela de Professores dividida em duas colunas: nome e SIAPE. As


figuras 10, 11 e 12 mostram, respectivamente, as telas de cadastro, de atualizao e
de excluso de professores:

Figura 10- Tela de cadastro de professor

Fonte: Dados da pesquisa

20

Figura 11- Tela de atualizao de professor

Fonte: Dados da pesquisa


Figura 12 Tela de excluso de professores

Fonte: Dados da pesquisa


4.1.1 Tabela de salas

A diviso da tabela de salas feita em duas colunas: nmero e tipo. As


figuras abaixo mostram as telas de cadastro, de atualizao e de excluso de sala:

21

Figura 13- Tela de cadastro de sala

Fonte: Dados da pesquisa


Figura 14- Tela de atualizao de sala

Fonte: Dados da pesquisa

22

Figura 15 Tela de excluso de salas

Fonte: Dados da pesquisa

4.2 Modelagem computacional


A modelagem computacional base dos algoritmos genticos. Ele deve ser
o primeiro aspecto a ser definido. Uma modelagem ruim detectada tardiamente pode
apresentar dificuldades em possveis alteraes futuras ou ate obrigar o
programador a refazer o trabalho.
O cromossomo a representao da possvel soluo do problema, logo este
deve conter todas as informaes necessrias para compor o horrio acadmico.
Em alguns casos, uma disciplina pode ter mais de uma turma, pode existir
mais de um professor responsvel para a mesma disciplina.
Assim, a modelagem inicialmente pensada contm as seguintes informaes:

Turma, conjunto de professor, disciplina e turma ex: professor A, disciplina


Clculo diferencial e integral I, T02;

Slots, conjunto da sala, dia e horrio.


Depois de fazer o cadastro das disciplinas, professores e das salas, feito o
cadastro das turmas. Na tela de cadastro das turmas, so exibidas duas tabelas,
a dos professores e das disciplinas que foram cadastrados anteriormente. Ento
basta selecionar quem ser o professor e qual disciplina ele lecionar que ao
criar a turma ele verificar se j existe alguma turma que possua a disciplina que

23

est sendo cadastrada, caso no exista, ser atribudo T01, caso j tenha ser
atribudo T02, T03, assim por diante.

Figura 16- Tela de cadastro de turma

Fonte: Dados da pesquisa


Ao iniciar a formao dos horrios, o algoritmo busca todas as turmas
cadastradas e calcula quantos bits sero necessrios para representar todas
elas. Abaixo encontra-se uma tabela onde ilustra a situao.

Nmero
0
1
2
3

Tabela 2- Representao de 3 turmas


Professor Disciplina
Turma
Representao
--------------- ------------------------A
Clculo I
T01
B
Clculo I
T02
A
Clculo II
T01

00
01
10
11

Analisando outro caso. Se houver 5 turmas para serem representadas, sero


necessrios 3 bits, porm com 3 bits pode-se representar at 7 turmas. A tabela
abaixo mostra como feita a representao.

Nmero
0
1
2
3
4
5
1
2

Tabela 3- Representao de 5 turmas


Professor Disciplina
Turma
Representao
--------------- ------------------------000
A
Clculo I
T01
001
B
Clculo I
T02
010
A
Clculo II
T01
011
C
Clculo II
T02
100
D
Clculo III
T01
101
A
Clculo I
T01
110
B
Clculo I
T02
111

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

Tabela 4- Representao dos slots


SEG
TER
QUA
QUI
01
01
11
11
10

SEX

10

Em um caso real, o nmero de salas sero maiores, ento novas matrizes


sero criadas respeitando essa lgica.
Contudo, nesse trabalho no foi utilizada a representao das turmas, devido
necessidade de estudo do comportamento dos Algoritmos Genticos em situaes
pouco complexas, para ento englobar todas as variveis do problema em questo,
j que a utilizao da varivel Professor encarretaria no aumento do nmero de
restries a serem respeitadas. Em vez disso, o algoritmo busca todas as disciplinas
cadastradas e cria as suas representaes binrias. O comportamento dos slots
permanece inalterado.

4.3 Inicializao da populao

Para dar incio ao processo evolutivo, necessrio inicializar a populao


criando vrios cromossomos. A quantidade ideal desses cromossomos parmetro
bem especfico de cada problema, sendo definido melhor atravs de alguns testes.
25

Ao iniciar o algoritmo, o mtodo inicializaPopulacao() chamado. A partir dele


dois outros mtodos so iniciados tamanhoRepresentacaoDisciplinas(), esse mtodo
calcula a quantidade de disciplinas cadastradas no banco de dados e verifica
quantos bits sero necessrios para representar todos eles, e tamanhoVetor(), esse
mtodo ira calcular o tamanho total do vetor binrio e o seu retorno ser passado
para o construtor do cromossomo.
Os cromossomos so criados de forma aleatria, os bits so gerados de
forma aleatria pelo mtodo Math.random(), j existente na biblioteca do Java. Isso
uma forma de obter uma boa diversidade, podendo assim, analisar vrios pontos
do espao de busca. Apesar de a inicializao ser aleatria, ela no vai gerar
solues invalidas (disciplinas que no existem), o que comprometeria toda a
evoluo. Isso s foi possvel porque para cada representao existente, tem uma
disciplina associada a ele (tabela 3).

4.4. Funo de avaliao

Para avaliar o cromossomo, necessrio um conjunto de restries que


verificam factibilidade do mesmo. Quando uma dessas restries violada, o
cromossomo penalizado com o valor associado a ela. Limitaes leves tm baixo
valor de penalizao, j restries severas possuem o peso mais elevado.

4.4.1 Nmero de aulas


Nessa restrio analisado se o nmero de aulas de cada disciplina condiz
com a sua carga horria cadastrada. Como foi suposto, nesse trabalho, que cada
disciplina teria apenas duas aulas semanais, se no vetor binrio ela aparecer duas
vezes, a avaliao do cromossomo acrescida com o valor 100, caso contrario, no
h acrscimo.

4.5. Operadores genticos

4.5.1 Operador de seleo Roleta

26

O operador de seleo escolhido foi o mtodo roleta(). Nesse mtodo a


chance de um cromossomo ser escolhido diretamente proporcional ao valor da sua
aptido. Pode-se imaginar o seguinte, cada individuo representa uma frao de uma
roleta, roleta essa que se encontra dentro do intervalo [0,1]. gerado um nmero
aleatrio. O cromossomo que estiver na faixa onde pertence o nmero sorteado,
ser selecionado. Os indivduos mais aptos conseguiro maiores fraes da roleta,
consequentemente, uma maior probabilidade de serem escolhidos e os indivduos
menos aptos, ainda que seja pequena, ter sua chance de reproduo.
4.5.2 Operador de cruzamento crossoverUmPonto

O operador de seleo escolhido foi o crossoverUmPonto(). Inicialmente so


selecionados dois pais pelo operador de seleo (pai1, pai2). Logo aps escolhido
aleatoriamente onde ser o ponto de corte. Ento os dois pais tm sua cadeia de
bits cortada gerando duas cabeas e duas caldas. Este mtodo no ir gerar dois
filhos, apenas um, pois segundo Linden (2012), isso poderia ocasionar um efeito
colateral na hora de preencher um Vector, fazendo com que o retorno do mtodo
seja incompreensvel. Nesse caso, o filho gerado pode vir com a cauda do primeiro
pai e a cabea do segundo ou com a esquerda parte do primeiro pai e a direita do
segundo. Essa escolha feita de forma aleatria, com 50% de chances para cada
um dos filhos.

4.5.3 Operador de mutao

A diversidade da populao necessria para que novas regies do espao


de busca possam ser analisadas, podendo assim encontrar reas promissoras. Esse
operador origina aleatoriamente um nmero para cada bit do cromossomo, caso
esse valor seja menor do que a taxa de mutao definida previamente, o bit ser
trocado. A taxa de mutao pode ser escolhida pelo usurio, mas foi utilizada uma
taxa de 0.05% nos teste feitos.

4.6 Elitismo

27

O mtodo do elitismo, nesse software, vai selecionar os 10 cromossomos que


tiverem a maior avaliao para serem clonados para a prxima gerao. Para a
populao no crescer sem controle, os operadores genticos vo funcionar para
gerarem 10 filhos a menos que o nmero total da populao, quando o elitismo
atuar, a nova populao apresentar o mesmo nmero de cromossomos do que a
sua gerao anterior, mantendo assim, o nmero de indivduos constantes por toda
a evoluo.

4.7 Funo de ajuste


Como os algoritmos genticos no buscam uma soluo tima, ento foi
preciso certificar que o horrio fornecido no final da execuo fosse factvel. Para
isso, foi criada uma funo de ajuste, onde so verificadas quais disciplinas tem
mais de 2 aulas na semana, as aulas excedentes so tiradas do horrio. Logo aps,
verificado as disciplinas que tem o numero de aulas menor que o exigido, e ento
so acrescentado s aulas que esto em falta.

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

5.1 Plataformas de hardware e software


Com o intuito de manter uma homogeneidade na apresentao dos
resultados, foram mantidos os recursos de hardware e software empregados para
essa fase do programa.
A plataforma de hardware empregada para a experimentao da aplicao
constituiu de um notebook com as seguintes caractersticas:
Processador Intel core i5-460M (2.53GHz, 3M L3 cache);
Memria principal de 4GB(utilizvel 3,68GB) DDR3
Disco rgido, tecnologia SATAII de 500GB
29

E a plataforma de software foi a seguinte:


Sistema operacional: Microsoft Windows Seven;
Ambiente de desenvolvimento: Eclipse verso Indigo
Banco de dados: PostgreSQL

5.2 Anlise dos resultados


A fim de compreender a funcionalidade do aplicativo, foram feitos uma srie
de testes desde a implantao das primeiras classes e mtodos.
Para a gerao da grade horria, foram utilizados dados fictcios, porm
baseados na situao do curso Bacharelado em Cincias Exatas e Tecnolgicas da
Universidade federal do Recncavo da Bahia. Com posso desses dados, o aplicativo
foi executado varias vezes, e a cada execuo o resultado era analisado para
verificar a sua convergncia.
Para uma melhor exemplificao, as figuras 21 e 22, mostram os resultados
obtidos para uma entrada de 7 disciplinas:
Figura 18- Apresentao dos resultados

Fonte: Dados da pesquisa


Figura 19- Apresentao dos resultados

Fonte: Dados da pesquisa


30

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

APENDICE A Diagrama de caso de uso


Figura 20 Diagrama de caso de uso

Fonte: Dados da pesquisa

34

APENDICE B Diagrama de sequencia


Figura 21 Diagrama atualiza disciplina

Fonte: Dados da pesquisa

35

Figura 22 Diagrama atualiza professor

Fonte: Dados da pesquisa

36

Figura 23 Diagrama Atualiza sala

Fonte: Dados da pesquisa


Figura 24 Diagrama cadastra disciplina

Fonte: Dados da pesquisa

37

Figura 25 Diagrama cadastra professor

Fonte: Dados da pesquisa


Figura 26 Diagrama cadastra sala

Fonte: Dados da pesquisa

38

Figura 27 Diagrama exclui disciplina

Fonte: Dados da pesquisa

39

Figura 28 Diagrama exclui professor

Fonte: Dados da pesquisa

40

Figura 29 Diagrama exclui sala

Fonte: Dados da pesquisa

41

Figura 30 Diagrama forma horrio

Fonte: Dados da pesquisa

42

APENDICE C Diagrama de classes


Figura 31 Diagrama de classe

Fonte: Dados da pesquisa

43

Вам также может понравиться