Upload
fafit
View
1
Download
0
Embed Size (px)
Citation preview
FACULDADES INTEGRADAS DE ITARARE - FAFIT
VINICIUS M FERAZ
IA: ORGANIZANDO QUADROS DE HORARIOS ESCOLARES
TRABALHO DE CONCLUSAO DE CURSO
ITARARE
2016
VINICIUS M FERAZ
IA: ORGANIZANDO QUADROS DE HORARIOS ESCOLARES
Trabalho de conclusao de curso apresentado aFaculdades Integradas de Itarare - FAFIT para aobtencao do tıtulo de Bacharelado em Sistemas deInformacao.
Orientador: Prof. Me. Jose Ricardo Hoffmann
ITARARE
2016
Dedico este trabalho a Deus pelo tempo, paciencia e dedicacao que megarantiu para conclusao do mesmo.
AGRADECIMENTOS
Gostaria de agradecer primeiramente aos meus pais pelas condicoes que me garantiram
para a realizacao deste trabalho. Em segundo lugar meus mestres e professores que me
permitiram adquirir o conhecimento necessario para elaboracao deste trabalho. Tambem
gostaria de agradecer aos meus colegas por me suportarem e por me ajudarem ao longo destes
4 anos.
They shall not hurt nor destroy in all my holy mountain: for the earthshall be full of the knowledge of the LORD, as the waters cover the sea.
Isaiah 11:9 – King James Bible
RESUMO
FERRAZ, Vinicius. IA: ORGANIZANDO QUADROS DE HORARIOS ESCOLARES. 49 f.Trabalho de conclusao de curso – , Faculdades Integradas de Itarare - FAFIT. Itarare, 2016.
O presente trabalho e estudo e implementacao de Inteligencia Artifical. Inicialmente seraoapresentadas algumas definicoes sobre Inteligencia Artificial e Algoritmo Genetico. Emseguida, sera discutido o problema e suas partes visando a melhor forma de encaixa-lo aoalgoritmo para que o software consiga chegar com facilidade e rapidez ao objetivo que e omelhor quadro de horario com todas as restricoes satifeitas. Entao serao feitos varios testespara avaliar as possıveis configuracoes do AG com o problema proposto visando identificar amelhor configuracao. Por fim, serao apresentados graficos comentados que provam que paraeste problema os metodos de cruzamento simples sao bem mais eficientes que os permutativos.
Palavras-chave: Inteligencia Artificial. Algorıtmo Genetico. Quadros de Horarios.Automatizacao.
ABSTRACT
FERRAZ, Vinicius. TITLE IN ENGLISH. 49 f. Trabalho de conclusao de curso – , FaculdadesIntegradas de Itarare - FAFIT. Itarare, 2016.
The present work is study and implementation of Artificial Intelligence. Initially will beshown some definitions of Artificial Intelligence and Genetic Algorithm. So, will be discussedthe problem and its parts aiming the best way to join it together with the algorithm for thesoftware to achieve the best answer faster and easier. Then some tests are going to evaluate thepossible configurations of the Genetic Algorithm with the proposed problem aiming the bestconfigurations. At the end, comented graphics will be shown proving that for this problem thesimple crossover methods are much more efficient than the permutatives ones.
Keywords: Artificial Intelligence. Genetic Algorithm. Schedules. Automation.
LISTA DE FIGURAS
–FIGURA 1 Ciclo de Vida AG. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18–FIGURA 2 Cruzamento de 1 ponto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21–FIGURA 3 Cruzamento de 2 pontos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22–FIGURA 4 Cruzamento Order 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22–FIGURA 5 Cruzamento PMX. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23–FIGURA 6 Prototipo Gene. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29–FIGURA 7 Prototipo Cromossomo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30–FIGURA 8 Diagrama de Classes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31–FIGURA 9 Cenario 1 - 1P Steady State. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35–FIGURA 10 Cenario 1 - 1P Generational. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36–FIGURA 11 Cenario 1 - 2P Steady State. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36–FIGURA 12 Cenario 1 - 2P Generational. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37–FIGURA 13 Cenario 1 - O1C Steady State. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38–FIGURA 14 Cenario 1 - O1C Generational. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38–FIGURA 15 Cenario 1 - PMX Steady State. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39–FIGURA 16 Cenario 1 - PMX Generational. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39–FIGURA 17 Cenario 2 - 1P Steady State. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40–FIGURA 18 Cenario 2 - 1P Generational. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41–FIGURA 19 Cenario 2 - 2P Steady State. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41–FIGURA 20 Cenario 2 - 2P Generational. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42–FIGURA 21 Cenario 2 - O1C Steady State. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42–FIGURA 22 Cenario 2 - O1C Generational. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43–FIGURA 23 Cenario 2 - PMX Steady State. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43–FIGURA 24 Cenario 2 - PMX Generational. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
LISTA DE TABELAS
–TABELA 1 Exemplo de solucao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17–TABELA 2 Exemplo de Tabela de Regras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20–TABELA 3 Resultados de Tempo Cenario 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44–TABELA 4 Resultados de Tempo Cenario 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45–TABELA 5 Resultados de fitness Cenario 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45–TABELA 6 Resultados de fitness Cenario 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
LISTA DE SIGLAS
IA Inteligencia Artifical
AG Algorıtmo Genetico
O1C Order 1 Crossover
PMX Permutation Crossover
1P Cruzamento de 1 Ponto
2P Cruzamento de 2 Pontos
SUMARIO
1 INTRODUCAO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131.1 OBJETIVO GERAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131.2 OBJETIVOS ESPECIFICOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141.3 JUSTIFICATIVA DO TRABALHO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141.4 ESTRUTURA DO TRABALHO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 INTELIGENCIA ARTIFICIAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.1 O QUE E IA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.2 HISTORIA E RUMO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162.3 O QUE E ALGORITMO GENETICO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162.4 IMPLEMENTACAO DE AG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172.4.1 Inıcio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182.4.2 Populacao Inıcial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192.4.3 Selecao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202.4.4 Cruzamento e Mutacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212.4.5 Substituicao, Nova Populacao e Loop Condicional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 JAVA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263.1 O QUE E JAVA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263.2 FERRAMENTAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263.3 JAVA E AG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274 METODOLOGIA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285 DESENVOLVIMENTO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295.1 PROJETO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295.2 CLASSES E CONFIGURACOES DE USO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305.3 SELECAO NATURAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315.3.1 Controle do Ciclo de Vida do AG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325.3.2 Crossover . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326 RESULTADOS(ANALISE E DISCUSSAO) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346.1 CENARIO 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346.1.1 1P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356.1.2 2P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366.1.3 O1C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376.1.4 PMX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386.2 CENARIO 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406.2.1 1P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406.2.2 2P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406.2.3 O1C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426.2.4 PMX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436.3 CONSIDERACOES FINAIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447 CONCLUSAO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47REFERENCIAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
13
1 INTRODUCAO
A IA e um assunto de certa relevancia dentro da programacao, pois um sistema
que registra e manipula diversas informacoes, mas nao organiza tais informacoes de forma
estrategica com a finalidade de serem analisadas, dificilmente tera capacidade de identificar
situacoes comuns ou incomuns e podera deixar as decisoes a serem tomadas pelo usuario sem
fundamentos, por fim se tornara apenas um sistema que registra informacoes.
Neste trabalho o tema de IA sera abordado como ferramenta para solucionar o
problema que e organizar quadros de horarios de uma escola. Para solucionar este problema sera
utilizada uma implementacao do Algoritmo Genetico, neste algoritmo a solucao do problema e
vista como um cromossomo, que neste caso sera o conjunto de quadros de horarios que juntos
sao cada quadro de horario de cada serie/turma da instituicao educacional de teste.
Dentro deste problema existem diversas dificuldades tais como: grande quantidade
de salas/turmas, grande quantidade de disciplinas a serem ministradas, grande quantidade de
professores com horarios indisponıveis, quantidade de professores escassos para determinadas
disciplinas, quantidade de aulas por dia para diferentes escolas, aulas que devem ficar seguidas e
o esforco exaustivo para organizar o quadro deixando cada professor ministrando as disciplinas
corretas dentro de horarios disponıveis para todas as series/turmas da escola. Apesar do
Algoritmo Genetico nao poder solucionar a escassez de professores de algumas disciplinas,
ele podera propor uma solucao para o problema dos quadros de horarios e a contratacao de
mais professores em escassez, caso nao haja outra solucao viavel atraves da troca de horarios.
1.1 OBJETIVO GERAL
Agilizar o processo de elaboracao dos quadros de horarios de uma instituicao de ensino
por meio do software desenvolvido que usa inteligencia artificial para tal finalidade.
14
1.2 OBJETIVOS ESPECIFICOS
• Atraves da Inteligencia Artificial, usar tecnicas de Algoritmo Geneticos para construir um
software que organize um conjunto de quadros de horarios.
• Analisar e implantar metodos de Algortimos Geneticos que favorecam solucoes
otimizadas.
• Estudar e analisar como combinar o problema dos quadros de horarios com os metodos
dos Algorıtmos Geneticos.
• Analisar e implantar um metodo para geracao aleatoria de quadros de horarios.
• Analisar e implantar o melhor metodo de organizacao, reorganizacao e recombinacao dos
quadros de horarios.
1.3 JUSTIFICATIVA DO TRABALHO
A dificuldade do trabalho de se montar quadros de horarios manualmente cresce
exponencialmente de acordo com o numero das variaveis envolvidas: quantidade series,
quantidade turmas, quantidade professores, quantidade disciplinas e quantidade horarios.
Diantes destas dificuldades ter uma opcao de software para esta tarefa pode ser uma
solucao melhor do que as disponıveis no mercado.
1.4 ESTRUTURA DO TRABALHO
Este trabalho esta organizado da seguinte forma. O capıtulo 2 faz uma breve
introducao a Inteligencia Artificial e explica sobre o Algorıtmo Genetico. O capıtulo 3 faz uma
breve introducao a linguagem de programacao Java. O capıtulo 4 fala sobre a metodologia
deste experimento. O capıtulo 5 fala como foi feita a programacao na implementacao do
Algorıtmo Genetico para elaboracao do software. O capıtulo 6 fala dos resultados obtidos
nos experimentos com o software desenvolvido. O capıtulo 7 traz a conclusao dos resultados
obtidos.
15
2 INTELIGENCIA ARTIFICIAL
Neste capıtulo sera discutido o que e inteligencia artificial, um pouco da historia
e rumo. Tambem sera visto um algoritmo particularmente interessante que e o Algoritmo
Genetico, deste algoritmo serao discutidos seus metodos e tecnicas de Implementacao: Fitness,
metodos de selecao, metodos de substituicao e Operadores de Crossover.
2.1 O QUE E IA
E uma acao para fazer computadores pensarem, computadores programados para
simularem o pensamento humano para a automatizacao de tarefas intelectuais exercidas por
humanos. Estas tarefas geralmente sao tomadas de decisoes, resolucoes de problemas reais,
escolhas que o computador faz tentando simular comportamentos humanos para que as escolhas
parecam ter sido feitas por humanos, dentro deste contexto a IA esta presente no software que ao
receber o prontuario de um paciente, consegue determinar o diagnotstico e receitar o remedio
ideal, tambem esta presente no software que analisa o estado atual de uma empresa atraves
dos historicos de contas e faz o planejamento anual contabilizando investimentos e receitas.
(HAUGELAND, 1989).
E o estudo das faculdades mentais atraves do uso de modelos computacionais onde
softwares simulam o processo de aprendizagem humano de tal forma que todo o funcionamento
do cerebro possa ser simulado atraves de algorıtmos. Para alcancar este objetivo e necessario
que o cerebro virtual simule o controle de orgaos (olhos, bracos, pernas, pele, etc) como
humanos. Este e o estudo das computacoes que tornam possıvel fazer com que maquinas
possam perceber a realidade e o contexto no qual elas se encontram, raciocinem para que
tomem decisoes baseadas nas situacoes que se encontram e nas funcionalidades e facam acoes
de acordo com as decisoes computadas. (CHARNIAK; MCDERMOTT, 1985) (WINSTON,
1992)
E a arte de criar maquinas que executem tarefas humanas que requerem inteligencia,
estas maquinas sao providas de softwares que simulam a inteligencia humana para que elas
16
possam captar fatos da realidade, tais como onde a maquina se encontra, em que situacao ela se
encontra, se ela possuı materia-prima para exercer sua atividade, em geral, todo o contexto em
que ela se situa para que possa funcionar da maneira esperada pelo engenheiro. Neste contexto,
a inteligencia artificil esta no software do robo que monta um veiculo, no software do robo que
pinta um veiculo e no software do robo que consegue seguir um trajeto, identificar um alvo e
executar uma acao para alcancar um objetivo. (KURZWEIL, 1990)
2.2 HISTORIA E RUMO
Em 1943 Warren McCulloch e Walter Pitts realizaram um trabalho que foi reconhecido
historicamente como o primeiro trabalho de IA. Baseados no conhecimento da fisiologia basica
e da funcao dos neuronios no cerebro, uma analise formal da logica proposicional criada por
Russel e Whitehead e a teoria da computacao de Turing. Esses dois pesquisadores propuseram
um modelo de neuronios artificiais no qual cada neuronio se caracteriza por estar “ligado” ou
“desligado”, com a troca para “ligado” ocorrendo em resposta a estimulacao por um numero
suficiente de neuronios vizinhos.
A IA abrange uma vasta variedade de subcampos desde areas de uso geral, como
aprendizado e percepcao ate tarefas especıficas como jogos, onde o adversario e um computador
que consegue analisar situacoes passadas aprendendo e desenvolvendo estrategias melhores
para tentar vencer o jogador. (RUSSEL; NORVIG, 2004)
Em resumo, a IA e um caminho enorme para ser explorado e com varias ramificacoes
e divisoes, pois, para cada atividade humana e possıvel criar um algoritmo que preveja padroes
e/ou auxilie na gestao de informacoes ou na execucao de atividades.
2.3 O QUE E ALGORITMO GENETICO
Dentro da IA existe um algoritmo especıfico que sera implementado neste trabalho
e se chama Algoritmo Genetico. Este algoritmo e uma abstracao da teoria evolucionista de
Darwin que foi desenvolvida em A Origem das Especies e que diz que durante a reproducao
dos seres vivos pode ocorrer mutacoes que podem ser preservadas nas geracoes sucessivas.
Numa reproducao sexuada e necessario um organismo macho e outro femea, que sao chamados
de estados pais, eles geram um novo indivıduo que resulta numa mistura genetica dos estados
pais com a possıvel mutacao. (RUSSEL; NORVIG, 2004) (DARWIN, 1859)
De um ponto de vista mais tecnico e uma variante de busca em feixe estocastica,
17
onde sao geradas solucoes aleatorias e a partir destas solucoes sao geradas recombinacoes,
recombinacoes das recombinacoes e assim sucessivamente ate ser achada uma solucao valida.
A analogia em relacao a selecao natural ocorre no momento em que as solucoes ruins vao
sendo descartadas e as solucoes boas vao sendo preservadas, igual ocorre na natureza selvagem
onde apenas o ser mais apto sobrevive. A recombinacao simboliza reproducao sexuada. Estes
algoritmos codificam uma solucao em potencial para um problema especıfico em uma simples
estrutura de dados, parecida com um cromossomo, entao a matriz de solucoes vai recombinando
os cromossomos na tentativa de evolui-los. (WHITLEY, 1994) (RUSSEL; NORVIG, 2004)
Em resumo, o algoritmo genetico e definido assim por ter a habilidade de gerar novas
solucoes, a partir da populacao inicial (conjunto de possıveis solucoes aleatorias), atraves de
cruzamentos e mutacoes. Contudo, nao basta apenas gerar novas solucoes se nao for possıvel
avalia-las, afinal uma nova solucao pode ser melhor ou pior, porem o foco deve ser sempre uma
solucao que resolva melhor o problema em questao, assim o algoritmo genetico vai avaliando e
filtrando a nova populacao que vai sendo gerada ate chegar na melhor solucao possıvel.
2.4 IMPLEMENTACAO DE AG
Durante o processo de implementacao do algoritmo genetico o primeiro passo e
projetar a solucao do problema a ser resolvido como um cromossomo. O cromossomo e
composto de varios genes que sao representacoes das variaveis envolvidas na solucao do
problema, ele deve ser codificado numa String simples para simplificar o tratamento e melhorar
o desempenho do algoritmo. (WHITLEY, 1994)
Na tabela 1 e possıvel observar uma possıvel solucao para o problema de uma escola
com 1 serie para ter o horario montado.
Tabela 1: Exemplo de solucaoSerie 1SEG TER QUA QUI SEX
Mat - Dan Port - Ma Ed.F - Net Port - Ze Bio - LuMat - Dan Port - Ma Ing - Ma Port - Ze Bio - LuGeo - Eli Hist - Fa Quim - Ca Mat - Dan Fıs - TomGeo - Eli Hist - Fa Quim - Ca Mat - Dan Fıs - Tom
Fonte: Autoria propria.
Esta solucao deve ser montada numa String e pode ficar assim:
s1(SEG(mat-dan;mat-dan;geo-eli;geo-eli);TER(port-ma;port-ma;hist-fa;hist-
18
fa);QUA(ed.f-net;ing-ma;quim-ca;quim-ca); QUI(port-ze;port-ze;mat-dan;mat-dan); SEX(bio-
lu;bio-lu;fis-tom;fis-tom))
A estrutura seria isso: uma matriz de 3 dimensoes onde a primeira dimensao e de
series, a segunda de dias, a terceira de aulas com as informacoes da disciplina e professor. Esta
matriz resulta numa matriz multidimensional de disciplina e professor.
A partir do momento que o cromossomo esta projetado e importante conhecer o ciclo
de vida do Algoritmo Genetico.
O AG tem basicamente 7 passos.
INÍCIO
POPULAÇÃO INÍCIAL
SELEÇÃO
CROSSOVER& MUTAÇÃO
NOVAPOPULAÇÃO
LOOP
CONDICIONAL
FIM
Figura 1: Ciclo de Vida AG.
Fonte: Adaptado de (LARGET, 2012)
2.4.1 INICIO
No inicio e importante levar em consideracao algumas variaveis que podem ser usadas
no controle do algoritmo:
• Geracao: Valor limitador de execucao do algortimo, este valor define quantas geracoes
serao criadas apos a populacao inicial.
19
• Populacao: Vetor que geralmente e limitado para uma possıvel populacao maxima que
impede o algoritmo de criar cromossomos alem deste valor.
• Populacao Intermediaria: Populacao dos cromossomos selecionados para reproducao e
geracao da nova populacao. Os cromossomos selecionados podem ser repetidos de acordo
com o metodo de selecao.
• Porcentagem de Mutacao: Esta porcentagem define a probabilidade de um cromossomo
ser alvo de uma mutacao genetica, durante a concepcao apos o crossover, e ter o valor de
um determinado gene alterado aleatoriamente.
• Pontos de Corte: Sao pontos pre-definidos no cromossomo onde ocorrerao as divisoes
dos cromossomos para a reconstrucao dos novos cromossomos mesclando partes dos
cromossomos pais. Em um crossover simples e definido apenas um ponto de corte, porem
pode haver mais pontos como sera visto adiante. (LARGET, 2012)
2.4.2 POPULACAO INICIAL
Durante esta etapa o algorıtmo normalmente gera uma populacao inicial aleatoria, o
tamanho desta populacao e definido pelo tamanho do vetor populacao. Uma populacao inicial
grande pode trazer resultados melhores mais rapido porem retardara o processo do ciclo de vida.
(LARGET, 2012)
Em seguida sera avaliado e atribuıdo um valor a cada cromossomo da populacao, este
valor e calculado a partir da sua composicao genetica, ou seja, cada cromossomo tera todos
os seus genes avaliados por uma funcao conhecida como funcao objetivo que definira o quao
boa e determinada composicao de genes usando de regras, este valor e chamado avaliacao ou
fitness, este calculo tambem e feito para os novos cromossomos gerados na nova populacao.
(LARGET, 2012)
Os termos fitness e avaliacao podem ser vistos e usados como sinonimos, porem e bom
fazer distincao entre eles. No AG canonico, fitness e definido por f (x) =fi
fonde fi e a avaliacao
relacionada a string i e f e a media da avaliacao de todas as strings na populacao, primeiro os
cromossomos sao avaliados, e somente apos toda a populacao ser avaliada e que sera calculado
o fitness, deste modo, o fitness cresce na medida que a populacao se desenvolve, o que pode
retardar o processo evolutivo, porem garantindo uma populacao com fitness mais equilibrado
gerando melhores chances de reproducao. (WHITLEY, 1994)
Para estimar o fitness e proposto o uso de regras e para tal a criacao de uma tabela que
20
deve conter dois tipos de regras, para cada regra violada uma subtracao do fitness e para cada
regra satisfeita uma adicao ao fitness: (LARGET, 2012)
1. Soft: Uma regra que pode ser quebrada sem comprometer a solucao, a custo de uma
pequena subtracao do fitness, e que ao ser obedecida soma-se uma pequena quantidade
de fitness.
2. Hard: Uma regra que ao ser quebrada compromete toda a solucao zerando o fitness.
O fitness deve variar entre 0 e 1, sendo 0 uma solucao inaceitavel, que quebrou pelo
menos uma regra hard, ate 1, uma solucao que talvez o software nao chegue, a solucao perfeita.
(LARGET, 2012)
Tabela 2: Exemplo de Tabela de RegrasTipo Gene Regra Satifeita InsatisfeitaSoft xxx >= 1000 +0,1 -0,1Hard xxx >2000 0 +0,1Soft yyy <500 +0,1 -0,1Hard yyy <0 0 +0,1Soft zzz >= xxx +0,1 -0,1Hard zzz >2000 0 +0,1
Fonte: Autoria propria.
2.4.3 SELECAO
Nesta etapa todo cromossomo da populacao estara com o seu fitness calculado
permitindo com grande facilidade identificar os melhores cromossomos para o cruzamento.
(HOFFMANN, 2013)
Para selecionar cromossomos existem varios metodos, entre eles:
• Roleta: Neste metodo a populacao e vista como um grafico pizza onde a porcao
preenchida por cada cromossomo corresponde ao valor do seu fitness, ou seja, quanto
maior o fitness maior a porcao do pedaco e maiores sao as chances do cromossomo ser
selecionado, a selecao da populacao intermediaria ocorre de forma estocastica girando
um valor ao redor da pizza como naquele jogo de roleta de cassinos. (WHITLEY, 1994)
• Resto de Amostra Estocastica: Este e o metodo que mais se aproximara do valor do
fitness esperado. Ele utiliza do fitness calculado com base na avaliacao do cromossomo
21
e da populacao, ou seja o fitness usa da formulafi
fe tera valor proximo a 1. Este valor
representa em porcentagem a chance do cromossomo entrar na populacao intermediaria,
ou seja, 0,8 representa 80% de chance e 1,2 representa 120% que e uma copia mais 20%
de chance para uma segunda copia.(WHITLEY, 1994)
• Amostra Estocastica Universal: Este metodo e parecido com a roleta, porem seleciona
toda a populacao intermediaria de uma so vez. (WHITLEY, 1994)
• Torneio estocastico: Neste metodo primeiro e configurado o numero n de participantes
do torneio. De acordo com o numero de paticipantes, sao selecionados n cromossomos
para o torneio que selecionara o cromossomo com o maior fitness. E criado um torneio
para selecionar cada um dos pais. (HOFFMANN, 2013)
2.4.4 CRUZAMENTO E MUTACAO
O cruzamento e o metodo responsavel por retirar uma parte da informacao genetica do
cromossomo pai e outra parta da mae e criar um novo cromossomo cruzando estas informacoes.
Os metodos de cruzamento podem ser divididos em 2 categorias:
• Simples: Que cruzam as informacoes indiscriminadamente.
• Permutativos: Que tentam manter as regras que existem entre os genes.
Existem diversos metodos de cruzamento que criam 1 ou mais novos cromossomos de
uma vez, entre os metodos veremos:
1 Ponto: E gerado aleatoriamente 1 ponto de corte e feita uma recombinacao pegando
a 1a parte do pai e a 2a parte da mae.
Figura 2: Cruzamento de 1 ponto.
Fonte: Autoria Propria
22
2 Pontos: Sao gerados aleatoriamente 2 pontos de cortes para os dois cromossomos e
feito recombinacoes a partir dos cortes, do pai e herdado a 1a e a 3a parte e da mae a parte do
meio.
Figura 3: Cruzamento de 2 pontos.
Fonte: Autoria Propria
Order 1 Crossover: Este e um metodo de permutacao. Basicamente, uma parte de
alelos consecutivos sao herdados do pai, o restante dos valores sao colocados como aparecem
na mae. Genes com valores repetidos podem ser evitados, assim nao ocorre o risco do filho
nascer com genes comprometidos que quebram alguma regra. (STARKWEATHER et al., 2011)
0 1 2 3 4 5 6 7 8 9
0 4 7 3 6 2 5 1 8 9
8 4 7 3 6 2 5 1 9 0 0 1 2 3 4 5 6 7 8 9
3 6 2 5 1
x
Figura 4: Cruzamento Order 1.
Fonte: Autoria Propria
Explicando a figura 4:
1. Foi selecionada a parte x do pai, genes no retangulo: 3,6,2,5,1.
2. E iniciada uma busca e marcacao dos genes presentes na parte x na mae.
3. Os genes da parte x do pai sao herdados diretamente pelo filho.
23
4. Em seguida o O1C comeca a copiar sequencialmente os genes sublinhados da mae a partir
da posicao final da parte x, seguindo esta logica copiou os genes 8,9,0, 4 e 7.
PMX Crossover: Este operador funciona parecido com o Order 1, e uma permutacao
que ignora genes repetidos, porem dispoe de um metodo diferente para evitar genes repetidos
que ja foram acomodados no corte inicial que veio do pai. (STARKWEATHER et al., 2011).
8 4 7 3 6 2 5 1 9 0 0 1 2 3 4 5 6 7 8 9
3 6 2 5 1
8 4 7 3 6 2 5 1 9 0
0 1 2 3 4 5 6 7 8 9
4 3 6 2 5 1
Acomodando gene 4
8 4 7 3 6 2 5 1 9 0
0 1 2 3 4 5 6 7 8 9
7 4 3 6 2 5 1
Acomodando gene 7
Acomodando os demais
0 1 2 3 4 5 6 7 8 9
0 7 4 3 6 2 5 1 8 9
Figura 5: Cruzamento PMX.
Fonte: Autoria Propria
Explicando a figura 5:
1. E recortado a parte x do pai que e herdado diretamente pelo filho .
2. Dentro da area de corte correspondente da mae, o algorıtmo procura por genes que ainda
nao foram herdados e devido a isso marca o 4 e o 7 e inicia um processo para que estes
genes sejam acomodados no filho.
3. O processo para localizar o espaco e assim:
a) Ao identificar que o gene n que esta de fora, o algorıtmo verifica o valor que o gene
n ocupa no pai.
b) Localiza o mesmo valor na mae.
24
c) Se o ındice do valor na mae estiver dentro da area de corte, entao voltar ao passo a)
usando o valor.
d) Se a posicao nao estiver na area de corte, entao inserir o gene n nesta posicao do
filho.
4. Copiar os demais valores da mae para o filho.
E tendencia natural durante as iteracoes do ciclo de vida do algorıtmo, que a populacao
se torne cada vez mais homogenea, porem o ideal e manter uma pequena fracao da populacao
com genes diferenciados. Para criar genes diferenciados e necessario usar de funcoes de
mutacoes que durante o cruzamento, se a porcentagem de mutacao for alcancada, o novo
cromossomo sofrera uma mutacao onde os genes indicados aleatoriamente terao seu valores
alterados conforme definido pela funcao. A mutacao pode ocorrer de varias formas, entre
elas: Inversao de genes, deslizamento de genes e alteracao aleatoria do valor de genes.
(HOFFMANN, 2013)
2.4.5 SUBSTITUICAO, NOVA POPULACAO E LOOP CONDICIONAL
Apos a finalizacao do processo de cruzamento e o momento da substituicao da
populacao, momento em que o algorıtmo decide quais dos cromossomos gerados anteriormente
e dos novos serao levados para a nova populacao. (HOFFMANN, 2013)
Existem 2 tecnicas distintas de substituicao que sao:
• Steady State: Nesta tecnica o numero de filhos que sao passados a nova populacao e
limitado. Para que sejam incluıdos filhos, o algorıtmo deve selecionar pais para serem
descartados com a finalidade de liberar vagas. Esta tecnica tenta reproduzir o modo que
ocorre nas geracoes de algumas especies de animais que mesmo um avo ainda pode ter
bons filhos e concorrer com os netos e seus filhos. (HOFFMANN, 2013)(BEASLEY et
al., 1993)
• Generational: Nesta tecnica toda a geracao predecessora e descartada sendo substituıda
pela geracao sucessora. Assim como ocorre em algumas especies de insetos que morrem
ao procriar. (HOFFMANN, 2013)
Para apoio da tecnica de selecao utilizada existe outro metodo que pode ser usado em
conjunto chamado Elitismo. O Elitismo fara com que certos indivıduos da populacao sejam
eleitos para a nova populacao independente das condicoes da execucao. (HOFFMANN, 2013)
25
Apos a finalizacao do processo de cruzamento e selecao a nova populacao estara pronta
para ser avaliada, ter seu fitness calculado e iterar pelo ciclo de vida do algorıtmo ate o fim que
ocorre no loop condicional quando o limite de geracao e alcancado. (HOFFMANN, 2013)
26
3 JAVA
3.1 O QUE E JAVA
Java e uma linguagem de programacao utilizada para criacao de softwares portaveis
entre sistemas operacionas, gracas a JRE qualquer aplicativo desenvolvido em Java pode rodar
tranquilamente em sistemas Unix, Windows, Mac, entre outros. Java opera com objetos, um
obejto e uma composicao de variaveis que podem ser manipuladas ao ser chamado algum
de seus metodos. Um metodo e uma sequencia de instrucoes que podem acessar e alterar as
informacoes internas do objeto. Quando um metodo e chamado, nao se sabe exatamente todo
o procedimento ocorrido internamente, porem o resultado deve ser claro o suficiente para que o
metodo seja utilizavel e e isto que importa. (HORSTMANN; CORNELL, 1993)
Java e uma linguagem orientada a objetos e isso torna Java uma linguagem muito
produtiva e reutilizavel, por exemplo se e criado um objeto base com atributos e metodos
genericos, e possıvel criar um objeto mais complexo e especıfico que herde todos os atributos e
metodos, e caso algum metodo precise ser alterado e possıvel fazer uma revisao deste metodo na
especializacao do objeto usando o comando @Override1. (HORSTMANN; CORNELL, 1993)
Java possuı uma enorme variedade de bibliotecas que auxiliam na producao
de softwares, sao bibliotecas para graficos, interfaces, design, criptografia, redes, som,
armazenamento em banco de dados e muitos outros propositos. (HORSTMANN; CORNELL,
1993)
3.2 FERRAMENTAS
Para o desenvolvimento em java e primordialmente necessario um editor de codigo
fonte, para este caso existem diversas ferramentas que podem ser usadas desde ferramentas
de edicao de texto simples, estas consomem pouquıssima memoria, porem nao contribuem
1Comando/Palavra reservada que deve ser escrito antes da declaracao do metodo a ser revisado. Pode serinterpretado como revisar.
27
para a eficacia da tarefa de programar, pois uma verdadeira ferramenta de edicao de
codigo faz necessario uma composicao de ferramentas, tais como: funcao de autocompletar
codigos, localizacao e substituicao de palavras, navegador de arquivos do projeto, verificador
ortografico, debug, compilacao do codigo fonte, macros auxiliares, etc. Todas essas ferramentas
juntas formam o que e chamado de IDE, Integrated Development Enviroment (Ambiente de
Desenvolvimento Integrado). A IDE que sera usada para a codificacao do projeto e o Netbeans.
3.3 JAVA E AG
Java possuı algumas biblioteca para o desenvolvimento de algoritmos geneticos,
entre elas: JGAP, JAGA, Jenes. Porem para este trabalho sera desenvolvido o algorıtmo
personalizado focado na melhora da performance.
28
4 METODOLOGIA
O experimento representa o melhor exemplo de pesquisa cientıfica e e composto de 3
etapas: (GIL, 2002)
1. Apontar um objeto de estudo.
2. Identificar e selecionar as variaveis capazes de alterar o objeto de estudo.
3. Identificar as formas de controle e de influencia de cada variavel sobre o objeto de estudo.
O objeto de estudo deste experimento e aplicar a otimizacao utilizando de Algorıtmos
Geneticos para resolver o problema de criacao e organizacao de horarios envolvendo os
relacionamentos entre Serie/Turma, Disciplina e Professor.
As tecnicas de reproducao (Crossover, Mutacao), metodos de selecao (Roleta e
Torneio) e metodos de substituicao (Generational e Steady State) sao as variaveis e sub
experimentos que fazem parte do Algorıtmo Genetico no momento da adaptacao do problema.
Para identificar as formas de controle e influencias das variaveis serao criados 2
cenarios que seguirao um padrao e servirao para medir o desempenho e performance do
Algorıtmo Genetico para o problema proposto:
• Cenario pequeno com poucas salas e turmas, facil de ser solucionado.
• Cenario grande com uma quantidade significativa de turmas e disciplinas, exigira um
esforco consideravel para ser solucionado.
Para a avaliacao de desempenho serao gerados resultados numericos, mas serao
representados por graficos que demonstrarao a evolucao e desempenho do algorıtmo.
29
5 DESENVOLVIMENTO
Neste capıtulo sera comentado como foi elaborado o software em questao.
5.1 PROJETO
Para a solucao do problema de organizar um quadro de horarios foi escolhido o uso
do algoritmo genetico para encontrar a melhor solucao possıvel, para tal finalidade foi criado
um prototipo da solucao que sera usado pelo AG para criar solucoes aleatorias e criar novas
solucoes a partir das solucoes criadas. Todas as solucoes serao avaliadas e o AG continuara a
busca ate encontrar uma solucao otima.
O prototipo da solucao sera referenciado como cromossomo que e composto por genes,
a estrutura basica do gene foi projetada no software para conter apenas as informacoes da
disciplina e do professor.
Disciplina Professor
Figura 6: Prototipo Gene.
Fonte: Autoria Propria
Pensando na ligacao direta que ha entre disciplina e professor, o gene foi projetado
para conter apenas essas duas informacoes que sao dependentes, a disciplina deve ser
obrigatoriamente ministrada por um professor capacitado nela.
Tendo em mente que os dias, aulas e series sao dados constantes e invariaveis, entao
serao declarados como vetores, percorridos e preenchidos de forma sequencial.
O cromossomo sera uma matriz tridimensional composta de N genes.
N = dias∗aulas∗ turmas (1)
Explicando a equacao 1, dias sao os dias de aulas (padrao = 5, segunda a sexta), aulas
30
e a quantidade de aulas por dia (padrao = 4), series e o total de series cadastradas.
Dia 1
Dia 2
Dia n
Dia 1
Dia 2
Dia n
Série 1 Série 2 Disciplina Professor
Aula 1
Aula 2
Aula 3Aula 4Aula 5
Aula n
Dia 1
Dia 2
Dia n
Série n
Figura 7: Prototipo Cromossomo.
Fonte: Autoria Propria
5.2 CLASSES E CONFIGURACOES DE USO
Neste momento foi comprovada a necessidade de criar interface, controladores e
classes para fazer a pre-configuracao das informacoes, tais como:
Cadastro de Disciplinas: Uma lista contendo todas as disciplinas que serao ensinadas.
Cadastro de Professores: Uma lista dos professores, que contenha a lista de
disciplinas ministradas por ele e uma tabela de disponibilidade onde para cada aula do dia
possa ser definido se o professor pode ou nao pegar aula.
Cadastro de Series: Uma lista das series cadastradas, neste cadastro tambem deve
conter a grade curricular, lista de disciplinas ensinadas para a serie.
Escola: Entidade responsavel por gerenciar os cadastros. Contera a lista de
Disciplinas, lista de Series e lista de Professores, alem de outros metodos que serao usados
para gestao.
Cromossomo: Classe que fara uso da classe escola para definir o modelo do
cromossomo e contera metodos de crossover, calculo de fitness, entre outros metodos comuns
ao AG.
Gene: Cada gene corresponde a uma determinada aula que e composta por uma
disciplina e um professor.
31
Figura 8: Diagrama de Classes.
Fonte: Autoria Propria
5.3 SELECAO NATURAL
Com o basico definido, sera preciso aprofundar no algorıtmo genetico e implementar
os metodos de selecao, os metodos de cruzamento, os metodos de substituicao e os metodos de
mutacao.
32
Como sao varias opcoes de cada etapa, a classe Selecao Natural possuı todos os
metodos implantados.
Esta e a classe principal do projeto que faz todo o gerenciamento do AG e suas
configuracoes e criacao dos relatorios de desempenho.
5.3.1 CONTROLE DO CICLO DE VIDA DO AG
Aqui sera comentado a implementacao de alguns metodos que necessitam de
implementacoes especıficas e controlam o ciclo de vida do AG:
• evolucao: E responsavel por cuidar do ciclo de vida do AG, neste metodo sera iterado de
0 ate o valor da variavel POPULACAO o metodo geraFilhos. Ao final registra o tempo
de duracao do ciclo de vida do AG e exibe a melhor solucao encontrada.
• geraFilhos: Metodo que executa os seguintes procedimentos:
1. Seleciona os pais, de acordo com o metodo de selecao escolhido pela variavel
METODO SELECAO.
2. Cruza os pais, de acordo com o metodo de crossover definido pela variavel
METODO CRUZAMENTO. A mutacao ocorre no construtor do Chromossomo e
foi programada da seguinte forma, ao localizar uma aula, com professor com horario
indisponıvel ou com outra aula no mesmo horario, tera um novo professor, que
ensine a disciplina da aula, escolhido de forma aleatoria.
3. Faz a substituicao da populacao de acordo com o metodo de substituicao selecionado
pela variavel METODO SUBSTITUICAO.
4. Aplica o Elistimo se a opcao ELITISMO for verdadeira e o valor da variavel
ELITISMO TAMANHO for maior que 0.
5. Cria o output para a elaboracao do grafico de desempenho do algorıtmo.
5.3.2 CROSSOVER
Como ha diferenca nos metodos de cruzamento, foi usado 2 metodos simples e 2
permutativos, o cruzamento ocorre de forma diferente dependendo do metodo.
Cruzamento Simples: Para os metodos de 1 ponto e 2 pontos foi definido que o corte
ocorre na matriz de series, ou seja, se um cromossomo possuı 7 series cadastradas, entao uma
33
possıvel reproducao pegara as 3 primeiras series do pai e as demais da mae, isso sem alterar
nenhum quadro de horario destas series.
Cruzamento Permutativo: Para os metodos O1C e PMX foi definido que cortes
ocorrem 1 vez por serie cadastrada, ou seja, um cromossomo que possuı 7 series cadastradas
tera 7 cortes alterando todos os quadros de horarios da seguinte forma: herdara uma parte das
aulas diretamente do pai e herdara outra parte da mae, porem os genes tomarao cuidado para
respeitarem a grade curricular da serie, ou seja, caso a nova solucao herde 2 aulas de ingles do
pai, a grade curricular possua apenas 2 aulas de ingles, a nova solucao esteja prestes a herdar
mais uma aula de ingles da mae, entao o algorıtmo evitara esta aula de ingles e procurara
completar corretamente a grade curricular.
34
6 RESULTADOS(ANALISE E DISCUSSAO)
Neste capıtulo serao apresentados os resultados obtidos atraves das simulacoes feitas
no programa com base na evolucao do fitness para cada operador de cruzamento.
Para os testes foram planejados dois cenarios um pequeno e outro grande. Para os dois
cenarios foi definida uma grade fixa de disciplinas definida como: 4x Portugues, 4x Matematica,
2x Historia, 2x Geografia, 2 Biologia, 2x Quımica, 2x Fısica, 1x Educacao Fısica, 1x Ingles.
Para os dois cenarios tambem serao realizados varios testes para encontrar a melhor
combinacao de metodo de selecao, metodo de cruzamento e metodo de substituicao.
Para todos os testes foram definidas algumas configuracoes, por exemplo:
• Todos os testes terao mutacao de 20%.
• Elistimo so sera usado com o metodo de selecao Generational configurado com tamanho
para apenas uma solucao.
• Para o metodo de selecao Steady State, o numero de eliminados sera de 1/3 da populacao.
• O tamanho do torneio estocastico sera 2.
• Para os dois cenarios serao executados varios testes para avaliar os metodos de selecao e
substituicao.
6.1 CENARIO 1
Este, que foi definido como o mais simples de ser solucionado, possuira 5 series
e professores em abundancia para que seja possıvel chegar numa solucao rapidamente.
Professores: 4x Portugues, 4x Matematica, 2x Geografia e Historia, 2x Quımica e Biologia,
1x Fısica, 1x Educacao Fısica e 1x Ingles.
Para os testes a seguir foi usada uma populacao de 300 cromossomos por 20 geracoes.
35
6.1.1 1P
O primeiro teste consiste na seguinte configuracao: Metodo de substituicao Steady
State e metodos de selecao roleta e torneio, figura 9. O algorıtmo consegue criar uma solucao
perfeita rapidamente e evoluı toda a populacao em ate 20 geracoes.
Como pode ser observado na figura 9, o metodo de selecao Steady State, por so trocar
os piores 1/3 da populacao sobrevivente por 1/3 da dos filhos gerados, as vezes gera solucoes
piores no 1/3 que entra do que no 1/3 que saı, isso pode ser bem observado na figura 9 com
metodo de selecao roleta, que nao conseguiu que a pior solucao chegasse a perfeicao.
970
975
980
985
990
995
1000
0 2 4 6 8 10 12 14 16 18 20
Roleta - Duração 454ms
Max.Med.Min.
965970975980985990995
1000
0 2 4 6 8 10 12 14 16 18 20
Torneio Estocástico - Duração 466ms
Geração
Max.Med.Min.
Figura 9: Cenario 1 - 1P Steady State.
Fonte: Autoria Propria
E possıvel observar pela figura 9 que a roleta parece demorar um pouco mais que o
torneio para deixar a populacao homogenea.
Na figura 10 e possıvel observar a principal caracterıstica da Generational, que e trocar
toda a populacao pelos filhos de uma vez, as linhas med. e min. mostram quedas que ocorrem
devido a indivıduos de baixo fitness que entraram na populacao, isso so nao ocorre na max.
porque para a execucao do Generational foi ativado o Elistismo que segura o cromossomo do
topo na populacao.
Se compararmos a figura 9 com a figura 10 podemos observar que apesar dos 4 testes
terem chego extremamente rapidos em uma solucao perfeita, em media 485 milisegundos, caso
nao tivessem chego, o metodo de substituicao Generational teria chances muito maiores de
evoluir a populacao do que pelo Steady State que praticamente deixou a populacao homogenea.
Tambem e possivel observar que a selecao Generational parece consumir um pouco mais de
tempo e processamento, tempo medio dos testes Generational = 511 milisegundos, tempo
36
950955960965970975980985990995
1000
0 2 4 6 8 10 12 14 16 18 20
Roleta - Duração 510ms
Max.Med.Min.
955960965970975980985990995
1000
0 2 4 6 8 10 12 14 16 18 20
Torneio Estocástico - Duração 512ms
Geração
Max.Med.Min.
Figura 10: Cenario 1 - 1P Generational.
Fonte: Autoria Propria
medio dos testes Steady State = 460 milisegundos.
O tempo medio dos testes com o metodo de cruzamento 1P foi 485,5 milisegundos.
6.1.2 2P
970
975
980
985
990
995
1000
0 2 4 6 8 10 12 14 16 18 20
Roleta - Duração 539ms
Max.Med.Min.
965970975980985990995
1000
0 2 4 6 8 10 12 14 16 18 20
Torneio Estocástico - Duração 416ms
Geração
Max.Med.Min.
Figura 11: Cenario 1 - 2P Steady State.
Fonte: Autoria Propria
Diferente dos testes da figura 9, que demoraram um pouco mais para chegar numa
populacao homogenea, os testes da figura 11 foram mais rapidos e os ındices min, med e max
convergiram rapidamente, o que demonstra que o metodo 2P tem uma tendencia maior para
evoluir mais rapido a populacao do que o metodo 1P.
O 2P em conjunto com o metodo de substituicao Generational apresentou resultados
37
955960965970975980985990995
1000
0 2 4 6 8 10 12 14 16 18 20
Roleta - Duração 515ms
Max.Med.Min.
960965970975980985990995
1000
0 2 4 6 8 10 12 14 16 18 20
Torneio Estocástico - Duração 438ms
G ã
Max.Med.Min.
Figura 12: Cenario 1 - 2P Generational.
Fonte: Autoria Propria
inesperados ao apresentar uma linha de min. sem quedas, aparentemente um comportamento
atıpico.
Ao compararmos as figuras 11 e 12 pode-se notar um padrao bem claro na curva de
evolucao que so nao foi obedecido na figura 12 pelo metodo roleta.
O tempo medio dos testes com 2P com os metodos de selecao roleta e torneio foram
respectivamente 527 e 427 milisegundos.
O tempo medio dos testes com o metodo de cruzamento 2P foi 477 milisegundos.
6.1.3 O1C
Nos graficos a seguir e possıvel verificar uma grande diferenca em relacao aos graficos
anteriores, as curvas de med. e min. seguem visivelmente o padrao das curvas dos graficos
anteriores com metodo de substituicao Generational, isso ocorre porque o O1C e um metodo
permutativo e o corte e feito em cada quadro de horario, por isso, quando ele esta alocando os
genes que serao herdados da mae, estes genes sao alocados para evitar a quebra das regras da
grade curricular resultando numa solucao totalmente diferente das solucoes pais.
Na figura 13 pode-se observar que o med. e o min. ficam praticamente constantes,
isto pode significar maiores chances do algorıtmo conseguir uma solucao melhor nas geracoes
vindouras, porem, fica claro uma deficiencia de evoluir a populacao a curto prazo.
Em conjunto com o metodo de substituicao Generational foi apresentado os piores
resultados ate o momento, como pode ser observado na figura 14, onde o algorıtmo teve bastante
dificuldade de evoluir a populacao, como se praticamente a populacao ficasse parada no tempo.
38
965970975980985990995
1000
0 2 4 6 8 10 12 14 16 18 20
Roleta - Duração 705ms
Max.Med.Min.
970
975
980
985
990
995
1000
0 2 4 6 8 10 12 14 16 18 20
Torneio Estocástico - Duração 605ms
Geração
Max.
Med.Min.
Figura 13: Cenario 1 - O1C Steady State.
Fonte: Autoria Propria
Pode-se observar com o metodo de selecao torneio a primeira vez, ate o momento, na qual o
algorıtmo nao conseguiu solucionar o problema no intervalo proposto.
950955960965970975980985990995
1000
0 2 4 6 8 10 12 14 16 18 20
Roleta - Duração 756ms
Max.Med.Min.
955960965970975980985990995
1000
0 2 4 6 8 10 12 14 16 18 20
Torneio Estocástico - Duração 728ms
Geração
Max.Med.Min.
Figura 14: Cenario 1 - O1C Generational.
Fonte: Autoria Propria
O tempo medio com os metodos de selecao roleta e torneio foram respectivamente
730,5 e 666,5 milisegundos.
O tempo medio dos testes com o metodo de cruzamento O1C foi 698,5 milisegundos.
6.1.4 PMX
Este metodo por tambem ser permutativo trouxe resultados bastante parecidos com o
O1C. Porem possuı uma leve diferenca em relacao ao O1C, depois que o pai doa uma parte
39
do cromossomo, os cromossomos da mae sao acomodados da seguinte forma, o algorıtmo
identifica uma aula que nao foi herdada no corte do pai, mas que esteja presente na parte
correspondente da mae, entao esta aula da mae sera acomodada no filho, porem para achar
o lugar ideal o algorıtmo tenta localizar um espaco de uma aula da mae que tenha sido herdada
pela area do corte do pai, ao encontrar essa aula que ja foi herdada do pai, o algorıtmo troca a
aula herdada do pai pela aula que ainda nao foi herdada da mae.
965970975980985990995
1000
0 2 4 6 8 10 12 14 16 18 20
Roleta
Max.Med.Min.
970
975
980
985
990
995
1000
0 2 4 6 8 10 12 14 16 18 20
Torneio Estocástico
Geração
Max.Med.Min.
Figura 15: Cenario 1 - PMX Steady State.
Fonte: Autoria Propria
950955960965970975980985990995
1000
0 2 4 6 8 10 12 14 16 18 20
Roleta
Max.Med.Min.
950955960965970975980985990995
1000
0 2 4 6 8 10 12 14 16 18 20
Torneio Estocástico
Geração
Max.Med.Min.
Figura 16: Cenario 1 - PMX Generational.
Fonte: Autoria Propria
O tempo medio com os metodos de selecao roleta e torneio foram respectivamente
918,5 e 820 milisegundos. O tempo medio dos testes com o metodo de cruzamento PMX foi
869,25 milisegundos.
40
6.2 CENARIO 2
Este e um cenario um pouco mais dificil de ser solucionado, possuı 10 series e
bastante professores para que seja possıvel chegar numa solucao com um esforco consideravel.
Professores: 6x Portugues, 6x Matematica, 4x Geografia e Historia, 4x Quımica e Biologia, 1x
Fısica, 1x Educacao Fısica e 1x Ingles.
Para os testes a seguir foi usada uma populacao de 600 cromossomos por 50 geracoes.
6.2.1 1P
Por ser um cenario com bem mais informacoes e possibilidades que o anterior, o
esforco fica visivel nos graficos.
910920930940950960970980990
1000
0 5 10 15 20 25 30 35 40 45 50
Roleta - Duração 3895ms
Max.Med.Min.
910920930940950960970980990
1000
0 5 10 15 20 25 30 35 40 45 50
Torneio Estocástic - Duração 3375ms
Geração
Max.Med.Min.
Figura 17: Cenario 2 - 1P Steady State.
Fonte: Autoria Propria
E possıvel observar pela figura 17 que a roleta parece demorar um pouco mais que o
torneio para deixar a populacao homogenea.
O tempo medio com os metodos de selecao roleta e torneio foram respectivamente
4118,5 e 3557 milisegundos. O tempo medio destes testes com o metodo de cruzamento 1P foi
3837,75 milisegundos
6.2.2 2P
Apesar da maior quantidade de informacao, ainda assim o software tem iniciado a
populacao com cromossomos com o fitness bem alto, porem fica claro que e necessario um
41
890900910920930940950960970980990
0 5 10 15 20 25 30 35 40 45 50
Roleta - Duração 4342ms
Max.Med.Min.
900910920930940950960970980990
1000
0 5 10 15 20 25 30 35 40 45 50
Torneio Estocástico - Duração 3739ms
Geração
Max.Med.Min.
Figura 18: Cenario 2 - 1P Generational.
Fonte: Autoria Propria
910920930940950960970980990
1000
0 5 10 15 20 25 30 35 40 45 50
Roleta - Duração 3880ms
Max.Med.Min.
910920930940950960970980990
1000
0 5 10 15 20 25 30 35 40 45 50
Torneio Estocástico - Duração 3357ms
Geração
Max.Med.Min.
Figura 19: Cenario 2 - 2P Steady State.
Fonte: Autoria Propria
esforco bem maior para encontrar um cromossomo com um fitness que seja um pouco mais alto
que o melhor da populacao.
Novamente e possıvel observar pela figura 19 a roleta demorando um pouco mais que
o torneio para deixar a populacao homogenea.
O tempo medio com os metodos de selecao roleta e torneio foram respectivamente
3732 e 3343 milisegundos. O tempo medio destes testes com o metodo de cruzamento 2P foi
3537,5 milisegundos
Os metodos de cruzamento simples mostram um bom desempenho no ciclo de vida do
algorıtmo.
42
880
900
920
940
960
980
1000
0 5 10 15 20 25 30 35 40 45 50
Roleta - Duração 3584ms
Max.Med.Min.
900910920930940950960970980990
1000
0 5 10 15 20 25 30 35 40 45 50
Torneio Estocástico - Duração 3329ms
Geração
Max.Med.Min.
Figura 20: Cenario 2 -2P Generational.
Fonte: Autoria Propria
Dos 8 testes com metodos de cruzamento simples apenas 1 nao conseguiu chegar numa
solucao perfeita.
6.2.3 O1C
A seguir os testes finais com metodos de cruzamento permutativos.
910920930940950960970980990
0 5 10 15 20 25 30 35 40 45 50
Roleta - Duração 4715ms
Max.Med.Min.
910920930940950960970980990
0 5 10 15 20 25 30 35 40 45 50
Torneio Estocástico - Duração 4631ms
Geração
Max.Med.Min.
Figura 21: Cenario 2 - O1c Steady State.
Fonte: Autoria Propria
Como pode ser observado, tanto na figura 21 quanto na figura 22 mostram, este
metodo O1C age assim, quanto maior a dificuldade do teste pior e o resultado. Isso e conta
da reorganizacao que o O1C tem feito na nova populacao, este tipo de acao acaba praticamente
gerando uma nova solucao aletoria com pouquıssima informacao semelhante a informacao dos
pais.
43
890900910920930940950960970980
0 5 10 15 20 25 30 35 40 45 50
Roleta - Duração 4539ms
Max.Med.Min.
890900910920930940950960970980990
0 5 10 15 20 25 30 35 40 45 50
Torneio Estocástico - Duração 4958ms
Geração
Max.Med.Min.
Figura 22: Cenario 2 - O1C Generational.
Fonte: Autoria Propria
O tempo medio com os metodos de selecao roleta e torneio foram respectivamente
4627 e 4794,5 milisegundos. O tempo medio destes testes com o metodo de cruzamento O1C
foi 4710,75 milisegundos.
Se o resultado obtido somado com o tempo de obtencao e comparado com os outros
metodos fica visivel a incompatibilidade deste metodo com o problema.
6.2.4 PMX
910920930940950960970980990
0 5 10 15 20 25 30 35 40 45 50
Roleta - Duração 5378ms
Max.Med.Min.
910920930940950960970980990
0 5 10 15 20 25 30 35 40 45 50
Torneio Estocástico - Duração 5069ms
Geração
Max.Med.Min.
Figura 23: Cenario 2 - PMX Steady State.
Fonte: Autoria Propria
Apesar do PMX tambem ser permutativo, porem um pouco diferente do O1C que
praticamente embaralha toda a solucao, o PMX apenas troca os genes herdados do pai pelos da
mae assim tambem mantendo a regra da grade curricular, contudo esta visıvel que ainda assim
44
890900910920930940950960970980990
0 5 10 15 20 25 30 35 40 45 50
Roleta - Duração 5843ms
Max.Med.Min.
890900910920930940950960970980990
0 5 10 15 20 25 30 35 40 45 50
Torneio Estocástico - Duração 5623ms
Geração
Max.Med.Min.
Figura 24: Cenario 2 - PMX Generational.
Fonte: Autoria Propria
nao faz do PMX um metodo compatıvel com o problema, pois os resultados obtidos foram
muito parecidos com os do O1C.
O tempo medio com os metodos de selecao roleta e torneio foram respectivamente
5610,5 e 5346 milisegundos. O tempo medio destes testes com o metodo de cruzamento PMX
foi 5478,25 milisegundos
6.3 CONSIDERACOES FINAIS
A seguir quadros mostrando os resultados em relacao ao tempo de execucao do
cenarios e seus testes:
Tabela 3: Resultados de Tempo em milisegundos Cenario 1Metodos Selecao e Substituicao 1P 2P O1C PMX
Roleta e Steady State 454 539 705 888Torneio e Steady State 466 416 605 807Roleta e Generational 510 515 756 949Torneio e Generational 512 438 728 833
Total 1942 1908 2794 3477Media 485,5 477 698,5 869,25
Fonte: Autoria propria.
Com a tabela 3 mostrando o tempo de execucao de cada teste fica claro que os metodos
de cruzamento simples sao bem mais ageis que os metodos de cruzamento permutativos.
Novamente fica comprovado pela tabela 4 a agilidade dos metodos de cruzamento
simples, enquanto os metodos permutativos demonstram que quanto maior o problema maior
45
Tabela 4: Resultados de Tempo em milisegundos Cenario 2Metodos Selecao e Substituicao 1P 2P O1C PMX
Roleta e Steady State 3895 3880 4715 5378Torneio e Steady State 3375 3357 4631 5069Roleta e Generational 4342 3584 4539 5843Torneio e Generational 3739 3329 4958 5623
Total 15351 14150 18843 21913Media 3837,75 3537,5 4710,75 5478,25
Fonte: Autoria propria.
sera o tempo de processamento que o tempo dos metodos simples.
Nas tabelas 5 e 6 e apresentada a geracao que o algorıtmo encontrou a primeira solucao
perfeita para cada teste. Nos testes onde nao foi possıvel chegar na solucao perfeita foi atribuıdo
o valor maximo da geracao para que hajam valores.
Tabela 5: Resultados de fitness Cenario 1Metodos Selecao e Substituicao 1P 2P O1C PMX
Roleta e Steady State 3 2 7 5Torneio e Steady State 2 2 4 1Roleta e Generational 1 2 1 16Torneio e Generational 4 1 20* 0
Total 10 7 32 22Media 2,5 1,75 8 5,5
Fonte: Autoria propria.
Tabela 6: Resultados de fitness Cenario 2Metodos Selecao e Substituicao 1P 2P O1C PMX
Roleta e Steady State 39 7 50* 50*Torneio e Steady State 13 8 50* 50*Roleta e Generational 8 15 36 50*Torneio e Generational 50* 11 50* 50*
Total 110 41 186 200Media 27,5 10,25 46,5 50
Fonte: Autoria propria.
Como pode ser observado pelas tabelas 5 e 6 os metodos de cruzamento simples sao
bem mais adequados ao problema proposto, pois conseguiram dentro dos limites estabelecidos
em ambos cenarios evoluir a populacao, em quase todos os testes, a perfeicao, somente em um
dos testes e que provavelmente foi ao acaso, nao foi possıvel chegar na solucao perfeita. Por
outro lado os metodos de cruzamentos permutativos demonstraram consumir processamento
46
sem retorno, ou seja, sao metodos que demoraram mais para tentar evoluir a populacao sem
sucesso, pois a populacao ficou praticamente estagnada e sem evolucao em certos momentos
como pode ser observado nos graficos destes metodos.
47
7 CONCLUSAO
Este trabalho apresentou uma implementacao do algorıtmo genetico para a solucao
do problema de criacao dos quadros de horarios de uma escola. Com a implementacao
do algorıtmo genetico apareceram varias opcoes de configuracoes, tais como: metodos de
selecao, metodos de cruzamento, metodos de substituicao, porcentagem de mutacao, elitismo,
quantidade do elitismo, entre outras.
Com os metodos de cruzamento simples, 1P e 2P, o algorıtmo desenvolvido conseguiu
solucionar facilmente os cenarios propostos, porem isso nao aconteceu somente gracas aos
metodos de cruzamento, as outras configuracoes foram importantes para que o algorıtmo
conseguisse evoluir a populacao a perfeicao.
Entre os metodos de selecao nao ficou claro, e talvez nao seja possıvel eleger o melhor,
pois os dois agem de modo semelhante selecionando individuos de modo aleatorio, a sutil
diferenca e que a roleta assim como o torneio tenta prevalecer os melhores indivıduos, porem
ainda da chance ao pior da populacao, por outro lado o torneio nunca selecionara o pior da
populacao e quanto maior o torneio, menor sera as chances dos piores indivıduos da populacao
serem selecionados.
Entre os metodos de substituicao tambem nao e possıvel eleger o melhor, pois os dois
agem de forma parecida, apesar de serem abordagens opostas. Enquanto o metodo Steady
State configura a parcela da populacao que saı (neste trabalho foi definido 1/3 da populacao),
o metodo Generational configura a parcela da populacao que permanece com o elistimo, se
nao houver elitismo, entao toda a populacao seria descartada dificultando demais o processo
evolutivo. De qualquer forma, foi observado que uma parcela muito pequena, assim como
configurada no elitismo de apenas um cromossomo avancar para a proxima populacao, tem
uma tendencia a retardar a evolucao, porem o mesmo ocorre se o elitismo for alto demais.
Independente do metodo de substituicao, para este problema, o ideal e trocar em torno da metade
a 1/5 da populacao pelos melhores da nova populacao.
A mutacao foi um processo muito importante para a evolucao da populacao, apesar
48
de ter sido configurado para ocorrer em apenas 20% dos cromossomos da nova populacao,
numa populacao de 500 isso ja significa 100 cromossomos mutantes. O foco da mutacao e
tentar corrigir problemas de forma aleatoria, ou seja, quando um cromossomo apresentava aulas
com professores duplicados, a mutacao identificava essas aulas e trocava elas aleatoriamente de
posicao na tentativa de eliminar a duplicacao de professor. Uma taxa de mutacao alta demais
tende a retardar o processo evolutivo, assim como uma taxa baixa demais, pois com a taxa alta
demais ocorrem mutacoes a todo momento que acabam duplicando, na mesma proporcao que
dividindo, as aulas com professores duplicados.
49
REFERENCIAS
BEASLEY, D.; BULL, D. R.; MARTIN, R. R. An orverview of genetic algorithms: Part 1,fundamentals. Inter-University Committee on Computing: University Computing, 1993.
CHARNIAK, E.; MCDERMOTT, D. Introduction to Artificial Intelligence. Boston, MA:Addison-Wesley Longman Publishing Co., Inc., 1985.
DARWIN, C. A Origem das Especies. Inglaterra: Martin Claret, 1859.
GIL, A. C. Como elaborar Projetos de Pesquisa. Sao Paulo: Atlas, 2002.
HAUGELAND, J. Artificial Intelligence - The Very Idea. London, England: A BradfordBook, 1989.
HOFFMANN, J. R. GENIUS – Um escalonamento baseado em algoritmos geneticos paracomutadores de alto desempenho. Curitiba: Biblioteca Central da UTFPR, 2013.
HORSTMANN, C. S.; CORNELL, G. Core java, Volume I - Fundamentals. Inter-UniversityCommittee on Computing: Prentice Hall, 1993.
KURZWEIL, R. The Age of Intelligent Machines. USA: MIT Press, 1990.
LARGET, H. Genetic Algorithms used in Timetable Management. Conventry University:Conventry University, 2012.
RUSSEL, S. J.; NORVIG, P. Artificial Intelligence: A modern approach. Edinburgh Gate:Pearson, 2004.
STARKWEATHER, T. et al. A Comparison of Genetic Sequencing Operators. Fot Collins:Colorado State University, 2011.
WHITLEY, D. A Genetic Algorithm Tutorial. Fort Collins: Colorado State University, 1994.
WINSTON, P. H. Artificial Intelligence. Massachusetts Institute of technology: Pearson, 1992.