49
FACULDADES INTEGRADAS DE ITARAR ´ E - FAFIT VINICIUS M FERAZ IA: ORGANIZANDO QUADROS DE HOR ´ ARIOS ESCOLARES TRABALHO DE CONCLUS ˜ AO DE CURSO ITARAR ´ E 2016

FACULDADES INTEGRADAS DE ITARARÉ -FAFIT

  • 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

LISTA DE SIMBOLOS

n Enesimo Termo, ou ultimo possıvel

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.