Você está na página 1de 48

UNIVERSIDADE FEDERAL RURAL DA AMAZÔNIA

CAMPUS CAPITÃO POÇO


CURSO DE LICENCIATURA EM COMPUTAÇÃO

JEAN CARLOS DE CARVALHO COSTA

ALGORITMOS GENÉTICOS PARA ALOCAÇÃO DA GRADE DE PROFESSORES


DA ESCOLA OSVALDO CRUZ DO MUNICÍPIO DE CAPITÃO POÇO

CAPITÃO POÇO - PA
2019
JEAN CARLOS DE CARVALHO COSTA

ALGORITMOS GENÉTICOS PARA ALOCAÇÃO DA GRADE DE PROFESSORES


DA ESCOLA OSVALDO CRUZ DO MUNICÍPIO DE CAPITÃO POÇO

Trabalho de Conclusão de Curso apresentado a


Universidade Federal Rural da Amazônia –
Campus Capitão Poço, como requisito para a
obtenção do título de Licenciado em Computação.

Orientador: Prof. Dr. Edson Koiti Kudo Yasojima

CAPITÃO POÇO - PA
2019
Ficha Catalográfica
Dados Internacionais de Catalogação-na-Publicação (CIP)
Biblioteca Maria Auxiliadora Feio Gomes / UFRA - Capitão Poço
C837a Costa, Jean Carlos de Carvalho

Algoritmos Genéticos para alocação da grade de professores da Escola Osvaldo


Cruz do município de Capitão Poço. / Jean Carlos de Carvalho Costa - Capitão Poço,
2019.
47f., il.; color.

Orientador: Prof. Dr. Edson Koiti Kudo Yasojima


Trabalho de Conclusão de Curso (Licenciatura em Computação) – Universidade
Federal Rural da Amazônia, Capitão Poço, 2019.

1. Algoritmos Genéticos. 2. Inteligência Computacional. 3.Grade de


horário escolar. 4. Computação Evolutiva. 5. Java - Linguagem. I. Yasojima,
Edson Koiti Kudo (Orient.) II. Título.

CDD: 23ed. 006


Bibliotecária - Documentalista: Vanessa Baía – CRB/2 1322
Dedico este trabalho ao meu pai, João
Batista, e a minha mãe, Deuzicleia, que
lutou em auxiliar na minha formação e
apoiar meus estudos, sem medir esforço
para ingressar no ensino superior.
AGRADECIMENTOS

Agradeço, primeiramente, a Deus por presentear a mim, o dom da vida e ajudar


a trilhar nesse caminho para chegar ao momento da minha conclusão da graduação
e pela defesa do meu TCC.
À minha mãe e meus irmãos pela compreensão nos momentos difíceis quando
estive ausente e distante dos encontros familiares.
À minha namorada pela colaboração e participação desde o início, mesmo
antes de ingressar na Universidade, da minha jornada neste curso, por sempre me
apoiar e incentivar na carreira acadêmica.
À Universidade Federal Rural da Amazônia por oferecer esta oportunidade de
realizar o curso de Licenciatura em Computação.
Ao meu Orientador, Dr. Edson Koiti Kudo Yasojima, pela orientação deste
trabalho e confiança em desenvolvê-lo.
À Escola Estadual de Ensino Fundamental e Médio Osvaldo Cruz por permitir
o estudo in loco para o desenvolvimento desta pesquisa.
Aos meus amigos, Juscelino Coutinho e Wellington Albuquerque, que estão
sempre presentes comigo desde a infância.
Aos meus colegas de equipe que a UFRA proporcionou para mim e que
estiveram desde o início do curso ao meu lado, são eles: Edivane Coutinho, Jovelina
Saraiva, Zeneide Souza, Ronaldo Silveira e Josy Silva, e a todos que desenvolveram
os trabalhos comigo ao longo do curso.
RESUMO

A construção da grade de horários dos professores de uma escola representa uma


tarefa complexa para a gestão escolar, sendo essencial no andamento e a harmonia
da escola, principalmente, por parte dos profissionais e, sem auxílio de um meio de
informática que aperfeiçoe essa distribuição, acarreta a demora da gestão para alocar
os professores nas turmas. Este trabalho visa apresentar uma proposta para distribuir
os horários dos professores de acordo com a sua disponibilidade dentro da escola
utilizando métodos da Computação Evolutiva, os Algoritmos Genéticos. Para
elaboração deste estudo utilizaram-se matérias de desenvolvimento de software, tais
como: Linguagem de programação Java, MySql, JavaFX, entre outros; também
realizou-se a busca dos requisitos, criação dos digramas no UML e Entidade-
Relacionamento. Os resultados foram adquiridos através de análises dos usuários
sobre a interface gráfica do software e a sua usabilidade para verificar se a ferramenta
possibilitaria um auxílio ao criar a grade de horários dos professores, favorecendo a
inserção das disponibilidades dos professores. A ferramenta facilita o processo na
organização de horários dos professores, favorecendo a diminuição no tempo e
inserção das informações de disponibilidade.

Palavras-chave: Algoritmos Genéticos. Inteligência Computacional. Grade de horário


escolar. Computação Evolutiva. Linguagem Java.
ABSTRACT

The construction of the schedule of teachers of a school represents a complex task for
school management, being essential in the progress and harmony of the school,
especially by professionals and, without the aid of a computer system that perfects this
distribution, entails management delay in allocating teachers to classes. This paper
aims to present a proposal to distribute teachers' schedules according to their
availability within the school using Evolutionary Computation methods, the Genetic
Algorithms. For the elaboration of this study we used software development subjects,
such as: Java programming language, MySql, JavaFX, among others; The search for
requirements, creation of diagrams in UML and Entity-Relationship were also
performed. The results were acquired through user analysis of the software's graphical
interface and its usability to verify if the tool would allow an aid in creating the teachers
'timetable, favoring the inclusion of teachers' availability. The tool facilitates the
process of organizing teachers' schedules, favoring the reduction in time and the
insertion of availability information.

Keywords: Genetic Algorithms. Computational intelligence. School timetable.


Evolutionary Computation. Java language.
LISTA DE FIGURAS

Figura 1- Fórmula matemática de índice individual de satisfação do professor. ....... 16


Figura 2 - Fórmula do Índice Médio de satisfação .................................................... 16
Figura 3 - Algoritmos Genéticos ............................................................................... 21
Figura 4 - Execução do Algoritmos Genéticos.......................................................... 21
Figura 5 - Visão Geral do Eclipse 2018-12 ............................................................... 23
Figura 6 - Visão do JavaFx Scene Build 2.0. ............................................................ 24
Figura 7 - Ilustração do JPA ..................................................................................... 25
Figura 8 - Desenvolvimento Incremental .................................................................. 26
Figura 9 - Código SQL ............................................................................................. 28
Figura 10 - Diagrama de Caso de Uso ..................................................................... 30
Figura 11 - Diagrama de Classe............................................................................... 31
Figura 12 - Diagrama de Entidade-Relacionamento ................................................. 31
Figura 13 – Representação do indivíduo da grade de horário .................................. 32
Figura 14 - Representação do crossover na alocação de professores ..................... 33
Figura 15 - Execução da Mutação ............................................................................ 34
Figura 16 - Tela Inicial .............................................................................................. 35
Figura 17 - Tabela de Professores Cadastrados ...................................................... 36
Figura 18 - Tela de Cadastro dos Professores ......................................................... 37
Figura 19 - Tabela de Turmas Cadastradas ............................................................. 38
Figura 20 - Tela de Cadastro de Turmas .................................................................. 39
LISTA DE GRÁFICOS

Gráfico 1 - O sistema é fácil de usar. ....................................................................... 40


Gráfico 2 - O sistema é muito complicado ................................................................ 41
Gráfico 3 - Foi fácil encontrar a informação que eu precisava .................................. 42
Gráfico 4 - As funções deste sistema estavam bem integradas ............................... 43
Gráfico 5 - A organização de informações na tela do sistema é clara ...................... 43
LISTA DE QUADROS

Quadro 1 - Requisitos Funcionais ............................................................................ 29


SUMÁRIO

1. INTRODUÇÃO .................................................................................................... 12
1.1. Objetivos ........................................................................................................ 13
1.2. Justificativa .................................................................................................... 13
1.3. Organização do Trabalho .............................................................................. 14
2. REFERENCIAL TEÓRICO .................................................................................. 15
2.1. Trabalhos Relacionados ............................................................................... 15
2.2. Inteligência Computacional .......................................................................... 18
2.2.1. Algoritmos Genéticos ..................................................................................... 20
3. MATERIAIS E MÉTODOS ................................................................................... 22
3.1. Material ........................................................................................................... 22
3.1.1. IDE de desenvolvimento Eclipse com JavaFx................................................ 23
3.1.2. Java Persistence API – JPA .......................................................................... 24
3.1.3. MySQL WorkBenck 8.0 ................................................................................. 25
3.2. Métodos .......................................................................................................... 26
3.2.1. Desenvolvimento Incremental ........................................................................ 26
3.2.2. Linguagem de Programação JAVA ................................................................ 26
3.2.3. Banco de Dados MySQL ............................................................................... 27
4. IMPLEMENTAÇÃO DO PROTÓTIPO ................................................................. 29
4.1. Requisitos do problema ................................................................................ 29
4.2. Funcionamento do AG para organização de horários ................................ 32
4.3. Apresentação do Software............................................................................ 34
4.4. Testes do Software ........................................................................................ 39
5. RESULTADOS E DISCUSSÕES......................................................................... 40
6. CONSIDERAÇÕES FINAIS ................................................................................. 45
6.1. Trabalhos Futuros ......................................................................................... 45
REFERÊNCIAS ....................................................................................................... 46
12

1. INTRODUÇÃO

A tecnologia está presente no cotidiano da sociedade com o intuito de facilitar


a resolução de problemas que envolvem tarefas onde o ser humano não pode realizar
de forma manual, principalmente, em empresas, comércios e no ambiente escolar
(OLIVEIRA; MOURA; SOUSA, 2015). O computador é um importante aliado em
diversos âmbitos da sociedade, sobretudo, com o suporte de softwares específicos
para cada segmento. “Os avanços da Tecnologia da Informação e Comunicação vem
ocasionando transformações nos modos de comunicar e informar nas práticas diárias
do ser humano [...]” (PIRES, 2016, p. 13).
Dessa forma, a utilização de softwares aplicativos para execução de tarefas
específicas, tornou-se necessário para auxiliar um determinando problema. Com isso,
os softwares são desenvolvidos para resolver atividades que auxiliam o usuário de
forma rápida e eficiente a melhorar o processo e solucionar o problema presente
naquele ambiente (SOUSA et al., 2017).
A Inteligência Artificial (IA) possibilita contribuir com processos que requerem
grandes quantidades de dados, automatizando informações e facilitando a
organização, busca por solução, processamento de imagens e, atualmente, na
robótica. Vale ressaltar que a IA está presente, praticamente, em todos dispositivos
tecnológicos no cotidiano das pessoas, tais como dispositivos móveis: smartphones,
tablets, smart TV e supercomputadores, e nas áreas de saúde, jornalismo, agricultura
e entre outros para auxiliar e automatizar processos.
Nas escolas, os softwares são de suma importância na administração escolar
para lançamentos de notas, cadastro do aluno e outras rotinas. Porém, existem
poucas ferramentas para organização dos horários de aula, para que os docentes
possam ministrar as aulas sem interferências, sendo de caráter fundamental para o
andamento das aulas na escola. A grade de horário é feita pela equipe pedagógica e
administrativa com participação dos professores, no entanto, sua criação torna-se
uma tarefa difícil, que não agrada a todos, demandando meses ou semestres para
conseguir o resultado aceitável tanto para a coordenação como para os professores.
Com a intenção de facilitar a alocação dos professores nas suas devidas
turmas e horários, este trabalho propõe o desenvolvimento de um software que gere
grades de horários para os docentes atuantes na escola, auxiliando, principalmente,
13

os coordenadores pedagógicos responsáveis por solucionarem esse problema de


maneira manual. Com isso, automatizar o processo de elaborar a grade de horário de
forma rápida e adequada para administração escolar e o corpo docente.
Com a utilização do aplicativo, os coordenadores pedagógicos poderão criar os
horários seguindo as informações da disponibilidade de cada professor. Desta forma,
organiza o horário dos alunos no processo de ensino e aprendizagem a evitar aulas
vagas entre as aulas, ocasionando de algum professor não estiver disponível naquele
horário selecionado para ele.

1.1. Objetivos

Objetivo Geral: Desenvolver um software desktop utilizando métodos de


Algoritmos Genéticos para sistematizar o horário de professores na Escola Estadual
de Ensino Fundamental e Médio Osvaldo Cruz de Capitão Poço - PA.

Objetivos Específicos

• Levantar requisitos sobre o problema da organização dos horários de


professor com a coordenação da escola;
• Desenvolver o software na linguagem de programação Java usando a
ferramenta Javafx para o gerenciamento de gráficos;
• Avaliar o software através de testes em tempo real na escola;
• Aplicar o software na escola para verificação do comportamento.

1.2. Justificativa

As escolas de Capitão Poço - PA possuem uma enorme dificuldade em


organizar o horário dos professores para ministrar suas aulas. Essa problemática
ocorre por conta da insatisfação dos professores com a escolha do seu horário devido
aos conflitos nas jornadas de atuação, pois alguns deles atuam em mais de uma
escola. Por esse motivo, a administração demora tempo, meses, para resultar numa
satisfação concreta por parte dos docentes.
Em uma administração escolar, a equipe pedagógica enfrenta dificuldades em
elaborar os horários de aula dos professores, principalmente, porque muitos
14

professores trabalham em outras redes de ensino, como por exemplo, alguns


docentes do Estado trabalham em escolas do Município e vice-versa. Para encontrar
uma grade de horário que concilie ambos, fica a caráter do coordenador pedagógico,
entretanto, por não saber a disponibilidade de cada professor atuante na escola, seu
trabalho é dificultado, pois, somente desta forma é possível definir os horários
conforme as disponibilidades, evitando os conflitos.
O software integrado com a inteligência artificial, conhecimento da Inteligência
Computacional (IC), vai ajudar no processo de organizar o horário escolar dos
professores de diferentes disciplinas, havendo harmonia entre os colegas e a
coordenação pedagógica. O software utilizando a Inteligência Computacional – IC
facilitará o arranjo do horário e diminuirá o tempo de trabalho dos coordenadores,
possibilitando o resultado satisfatório do horário, ajudando os professores e os alunos
no processo de ensino e aprendizado.

1.3. Organização Do Trabalho

O trabalho é composto por 5 (cinco) capítulos que serão discutidos sobre o


desenvolvimento deste estudo. No capítulo 1 (um) temos a introdução que trata do
tema de estudo, os objetivos e a problemática em questão; o capítulo 2 (dois) é a
pesquisa bibliográfica que trata deste tema, a busca das discussões de outros autores
e um estudo sobre a Inteligência Computacional e principais conceitos sobre os
Algoritmos Genéticos; no capitulo 3 (três) trata-se dos materiais e métodos utilizados
durante o desenvolvimento do software; o capitulo 4 (quatro) enfatiza a
implementação do protótipo mostrando cada etapa do desenvolvimento; o capitulo 5
(cinco) mostra resultados da usabilidade do software integrada na administração
escolar e; o capitulo 6 (seis) aborda as considerações finais deste estudo.
15

2. REFERENCIAL TEÓRICO

2.1. Trabalhos Relacionados

Os estudos buscados nesta pesquisa são usufruídos por autores que abordam
sobre a utilização de software para tomada de decisão utilizando métodos de IC. Para
fundamentar a busca teórica deste estudo, utilizou-se o livro de Ian Sommerville como
principal fundamento teórico no processo de desenvolvimento de software e artigos
relacionados aos estudos deste trabalho.
“O mundo moderno não pode existir sem o software”, é o que diz Sommerville
(2011, p.02). Refletindo a ideia do autor, nos tempos atuais, com o uso de tecnologia
computacional, é quase impossível realizar tarefas sem ajuda do computador ou
software. Entretanto, existem áreas que atendem demandas para criação de
ferramentas computacionais, como engenharia de software, ciência da computação,
Inteligência Computacional e seus subcampos, entre outros.
Sommerville (2011, p. 03) cita que a,

Engenharia de software tem por objetivo apoiar o desenvolvimento


profissional de software, mais do que a programação individual. Ela inclui
técnicas que apoiam especificação, projeto e evolução de programas, que
normalmente não são relevantes para o desenvolvimento de software
pessoal.

Com isso, ao realizar algum projeto ou pesquisa para desenvolvimento de


software, precisa-se desenvolver o mesmo de forma que documente e tenha dados
de configuração necessários para o programa funcionar corretamente e com
qualidade.
O trabalho de Goés (2005) objetivou desenvolver seu trabalho usando três
algoritmos, são eles: exato, heurístico e misto; assim diz o autor, “[...] encontrar
soluções que otimizem a preferência de cada professor, as exigências pedagógicas e
operacionais [...]” (GOÉS, 2005, p. 01). O software desenvolvido por Goés (2005) tem
a funcionalidade de gerar o horário dos professores, sem opção de troca após ser
gerado, tendo seus dias definitivos para não haver discussões.
Outro trabalho, desenvolvido por Ferreira et al. (2011) possui os métodos exato
e heurística, no entanto, o foco do seu estudo é para a instituição onde cursou,
aplicando uma formulação matemática de programação linear binário. Assim, ele
16

consegue, através da fórmula matemática, tirar o índice de satisfação médio dos


professores. Para cada professor é tirado um índice individual de satisfação, professor
é representado por p.

Figura 1- Fórmula matemática de índice individual de satisfação do professor.

O mesmo autor criou a fórmula que ajuda tirar o índice de satisfação médio dos
professores com a seguinte representação.

Figura 2 - Fórmula do Índice Médio de satisfação

No seu trabalho o autor ressalta que,

A satisfação global e o índice de satisfação médio são maiores quando o


problema é resolvido através da formulação básica em uma única fase. Por
outro lado, em favor da coletividade, mais turmas são atribuídas a professores
que não as solicitaram. Note que, embora os problemas sejam resolvidos por
método exato, o tempo computacional é baixo. (FERREIRA et al., 2011, p.
141).

Infelizmente, no seu trabalho não houve satisfação dos professores, então o


autor faz a seguinte análise: “Uma crítica ao resultado é de que alguns professores
ficaram com turmas espalhadas pela semana com grandes janelas durante o dia.”
(FERREIRA et al., 2011, p. 141). Como resultado, diminuiu o tempo de produção de
carga horária das disciplinas pertencentes em várias turmas e a insatisfação dos
professores, que antes havia dificuldade de aceitar as propostas.
Analisando o trabalhado dos autores, Barata et al. (2010) teve a mesma linha
de pesquisa, utilizando métodos para agrupar e alocar horários de professores para o
curso de Ciências da Computação do Centro Universitário Serra dos Órgãos
(UNIFESO). A principal ferramenta para elaborar essa grade foi o software livre Free
Timetabling Program (FET).
17

Os autores descrevem a seguinte situação do problema “[...] a maior parte dos


professores vem de outras cidades e não há um software que execute a montagem
das grades horárias.” (BARATA et al., 2010, p. 14). Com isso, deixa evidente que a
situação dificulta o trabalho docente de muito profissionais, sem a utilização de um
software que ressalte nessa realidade, vários professores, tanto de universidade como
escolas, sempre haverá essa dificuldade de alocação em turmas.
Outra situação citada pelos autores é que, não possuindo um sistema para
resolver o problema de alocação dos professores e gerar seu quadro de horários, de
acordo com disponibilidade diária de horário, resulta na dificuldade cotidiana,
principalmente, quando o professor é substituto ou na contratação de aditivos.
(BARATA et al., 2010, p.14). As técnicas que foram usadas pelos autores, foram
Algoritmos Exatos e os Algoritmos Heurísticos e Metaheurísticos. Com intuito de tirar
o resultado razoável e ajudar a diminuir o tempo de forma aceitável.
Barata et al., (2010) cita que houve resultados satisfatórios com a utilização
metaheurística e diz que “Durante todo o período de testes e simulações reais, o
software FET impressionou, por se mostrar rápido, coeso e eficiente e provar que
pode ser utilizado na geração das grades de horárias do corpo docente [...]” (BARATA
et al., 2010, p. 21).
Junior, Pereira e Silva (2015) produziram um projeto prevendo a mesma ideia
dos demais autores, no entanto, o seu diferencial foi utilizar o Algoritmos Genéticos,
desenvolver um software que gere grades de horários para os cursos da Faculdade
de Informática de Presidente Prudente. Eles citam que,

[...] um estudo aprofundado a respeito de algoritmos genéticos foi realizado,


desde seu conceito e funcionamento básico, passando por sua representação
cromossomo (forma de representar o problema computacionalmente),
escolha da população inicial, função de avaliação, modo de seleção dos pais,
operadores genéticos, modulo da população, critério de parada até a
implementação, execução e teste do algoritmo, após isso foram estudadas
técnicas para refinar o algoritmo, adaptando seu funcionamento para o
problema da grade de horário. (JUNIOR; PEREIRA; SILVA, 2015, p. 26).

Com isso, os algoritmos genéticos mostraram ser eficientes para o problema


de seu estudo que, segundo os autores, “[...] conseguindo ser resolvido em tempo
hábil, variando de 1 a 10 segundos em média” (JUNIOR; PEREIRA; SILVA, 2015, p.
31). Entretendo, o autor ressalta na sua conclusão que nem sempre mostra a solução
exata, assim, acaba sinalizando ao usuário, destacando em vermelho, disciplinas que
permanecem em conflito (JUNIOR; PEREIRA; SILVA, 2015, p. 31).
18

O autor Kalfels (2017) define no seu objetivo desenvolver uma solução para a
grade de horário do curso de Sistema de Informação da Universidade Federal de
Santa Catarina, para elaboração buscou requisitos como a disponibilidade dos
professores, quantidade de turmas e densidade de aulas.
Com a sua prática mostrou-se resultados que ajudaram na alocação de grade
de horário do curso de Sistema de Informação, pegando a disponibilidade dos
professores e de acordo com a carga horário de cada, mostrar a melhor solução. Ao
ser desenvolvido, este trabalho aplicou Inteligência Computacional no software,
possibilitando resultados satisfatórios e precisos, seguindo de acordo com a
disponibilidade de cada professor, sem haver conflitos entre as disciplinas e
distribuindo de forma coesa a grade de horários, não havendo divergência.

2.2. Inteligência Computacional

A Inteligência Computacional (IC) é um conjunto de metodologias


computacionais de criação e estudo do projeto de agentes inteligentes, onde o
computador é programado para pensar e raciocinar como uma mente humana,
inspirada em tarefas que ocorrem na natureza para lidar com problemas complexos.
No entanto, não pode-se deixar de falar sobre a Inteligência Artificial (IA) que é um
ramo que não refere-se apenas ao computador, mas é o estudo dos processos de
pensamento e raciocínio, que emula a inteligência humana como o comportamento,
aprendizado e ações.
Continuando sobre IC, os autores Russell e Norvig (2013) citam que são
pensamentos e raciocínios que o computador assemelha como um humano, aplicando
modelos computacionais, realizando atividades para tomada de decisão, resolução de
problema e o aprendizado.
Então, existe outros estudos que ajudam a implementar IC, métodos que
possuem tarefas específicas que um agente inteligente é implementado a realizar,
que, segundo Russel e Norvig (2013, p.31) diz que “um agente é tudo que pode ser
considerado capaz de perceber seu ambiente por meio de sensores e de agir sobre
esse ambiente por intermédio de atuadores”. A seguir serão apresentados alguns
métodos de estudo de IC, para definição de acordo a ser desenvolvido e aplicado em
um determinado ambiente.
19

Redes Neurais: são considerados métodos de processamento de informação,


diferente de um computador convencional, eles trabalham com o reconhecimento de
padrões, percepção e controle motor. Tendo a capacidade de organizar toda estrutura,
com conhecimentos de neurônios, para realizar esses processamentos rapidamente,
mais que um computador usado para atividades normais (HAYKIN, 2001).
Algoritmos Genéticos: são métodos de busca local que promovem alterações
em soluções potencias até que uma solução chegue ao um nível de satisfação bom.
Esse método é baseado em evolução para alterações pequenas em uma população
de cromossomo, na intuição de identificar uma solução boa (COPPIN, 2017).
Lógica Nebulosa (Fuzzy): é um conjunto nebulosa para ser usada no raciocínio
de lógica nebulosa, uma forma de lógica que se aplica a variáveis, assumindo 0 (não
verdadeiro) e 1 (totalmente verdadeiro), mas que existe um fator predominante que é
o indeterminado que são valores entre 0 e 1 como, por exemplo, o 0.5, que pode
indicar “pouco verdadeiro” ou “tão verdadeiro quanto é falso” (COPPIN, 2017).
Aprendizagem de Máquina: considerado o mais importante na IC, ela é
colocada em prática para raciocinar, aprender e memorizar de forma inteligente, tendo
capacidade de observar e explorar situações para aprender fatos por meio de prática,
organizando e melhorando cada vez mais seu conhecimento (FACELI et al. 2017).
Segundo Xavier (2003) a Inteligência Computacional trabalha com abordagem
de apresentar soluções para os problemas propostos, mostrada em diferentes formas
de implementação, armazenamento, manipulação e apresentação de dados dos
conhecimentos de busca para o problema a ser solucionado, automatizando com o
meio computacional.
Desta forma, a automação mostra ser eficiente para solucionar as situações
problema, buscando informação por meio de dados, solucionar um problema que
precisa ser estudado e conhecendo o ambiente onde será inserida a Inteligência, para
o algoritmo ser capaz de mostrar resultados satisfatórios.
Por esse motivo a Inteligência Computacional, segue a mesma definição de
Inteligência Artificial (IA), porém, incrementado no meio computacional como relata os
autores citados acima, faz-se importante desenvolver softwares para solução de
problemas com grande quantidade de dados e dando valor para organização, buscas
de padrões no banco de dados e, assim, mostrar melhores soluções.
Os autores Stahnke e Vahldick (2013, p. 121) definem “os conceitos de
inteligência artificial e das técnicas utilizadas e aprofundou-se na utilização prática de
20

cada técnica, com o objetivo de mostrar a importância da sua utilização no ambiente


do desenvolvimento e engenharia de software”. Sobre o trabalho dos autores acima
abordados, nos mostra a importância da IA aplicada na engenharia de software e nos
ambientes de desenvolvimento, trabalhando de forma significativa na utilização
aplicada nas técnicas de Redes Neurais, logica fuzzy e redes bayesianas.
Neste trabalho estudam-se métodos de Algoritmos Genéticos e programa-se
um software para alocação da grade de horários dos professores para as escolas,
especificamente para a escola Osvaldo Cruz, com a realidade vivenciada no ensino
básico do município de Capitão Poço, utilizando a linguagem Java.

2.2.1. Algoritmos Genéticos

Algoritmos Genéticos (AGs) são métodos utilizados para encontrar soluções


boas ou aproximadamente boas entre uma quantidade de informações para
otimização e busca. O método é inspirado na teoria de Darwin que estuda a evolução
dos indivíduos na natureza. AGs são métodos com característica da Computação
Evolucionária que fornecem mecanismo de busca para fundamentar a sobrevivência
de indivíduos mais aptos, com possíveis soluções para buscar uma população
formada e gerada em sua estrutura de dados.
Para esclarecer melhor sobre AGs, a autora Hamawaki (2005) diz que o
Algoritmo Genético é uma ferramenta para buscar soluções de problemas, que são
capazes de identificar resultados e estudar fatores ambientais e agregar-se para
resultados ótimos ou aproximadamente ótimos em níveis globais.
Analisando as características destes algoritmos, precisam-se enfatizar os
conceitos básicos para o funcionamento e o processo. Os AGs são utilizados para
avaliar cada solução de indivíduo aleatório em um conjunto de população gerada,
podendo ser vistas como possíveis soluções do problema, soluções essas que fazem
formação de diversas gerações sucessivas, a cada geração é aumentada com a
média de aptidão desejada, o que também aumenta as chances de encontrar solução
boa do problema (JUNIOR, 2011).
Para esclarecermos melhor o funcionamento básico dos AGs, inicialmente é
gerada uma população com um conjunto de indivíduos aleatórios. Durante cada
processo evolutivo a população é avaliada, sendo que a cada indivíduo é avaliado
com uma nota, considerando sua habilidade de adaptação a determinado ambiente.
21

Uma porcentagem dos mais adaptados é mantida, enquanto os outros são


descartados, como Darwin ressalta na sua teoria biológica, os membros mantidos pela
seleção podem sofrer modificações em suas características fundamentais através de
mutações e cruzamento (crossover) gerando descendentes para a próxima geração.
Este processo, chamado de reprodução, é repetido até que uma solução satisfatória
seja encontrada.

Figura 3 - Algoritmos Genéticos

Fonte: Udemy

Figura 4 - Execução dos Algoritmos Genéticos

Fonte: http://blog.sabenca.eti.br/introducao-aos-algoritmos-geneticos/
22

Diante disto, os AGs são trabalhados em grande escala nas soluções de


problemas complexos, mostrando resultados ótimos ou aproximadamente ótimos.
Sendo assim, é de suma importância a implementação dos Algoritmos Genéticos,
como cita Ramos (2002, p. 5).

Estes algoritmos são indicados para se obter soluções de problemas que


possuem um espaço de busca muito grande, descobrindo rapidamente sub-
regiões de alta qualidade. São versáteis e requerem pouco conhecimento
sobre a função a ser otimizada. Para funções desconhecidas, descontínuas
e não diferenciáveis, algoritmos genéticos estão entre os mais indicados.

Há diversos problemas que são impossíveis de resolver manualmente, por


conta de tempo de execução e disponibilidade para solução do problema; seguindo
este estudo como problema, da resolução da alocação de grade de horários dentro
da escola seguindo a disponibilidade dos professores, como dia e o turno disponível,
os AGs pegam uma população de indivíduos para gerar uma melhor solução possível
para alocar os professores de acordo com a sua disponibilidade.
Por esse motivo, os Algoritmos Genéticos são técnicas de busca viáveis em
resultar possíveis soluções para o problema em que está inserido e a sua utilização é
muito bem vista entre os pesquisados, principalmente, as que são aplicadas no
mercado e a sua importância para os dias de hoje, tornando-se indispensáveis para
melhorar os procedimentos de atividades com grandes quantidades de dados.

3. MATERIAIS E MÉTODOS

Este capítulo apresenta as ferramentas utilizadas para criação do software e


do código fonte. Também demonstra-se a metodologia utilizada para atingir os
resultados alcançados.

3.1. Material

Os materiais utilizados no desenvolvimento do programa são IDE de


desenvolvimento Eclipse com JavaFx, Java Persistence API e MySql Workbanck
apresentados a seguir:
23

3.1.1. IDE de desenvolvimento Eclipse com JavaFx

O eclipse é uma IDE open source que suporta várias linguagens de


desenvolvimento como C/C++, PHP, Java e JavaScript. Também foi utilizado o
Programa JavaFx Scene Builder 2.0 para implementação dos gráficos, é uma
ferramenta que auxilia na Plataforma Java possuindo bibliotecas do JavaFx e FXML,
foi criado pela Oraclo BSD, o código fonte é fornecido e desenvolvido através do
Projeto OpenJFX na Comunidade OpenJDK, que fosse possível fortalecer aplicações
visualmente ricas e multiplataforma.

Figura 5 - Visão Geral do Eclipse 2018-12

Fonte: O autor (2019)


24

Figura 6 - Visão do JavaFx Scene Build 2.0.

Fonte: O autor (2019)

3.1.2. Java Persistence API – JPA

O JPA é um conjunto de classes e interfaces que visam normatizar o acesso a


base de dados através de frameworks ORM. Os frameworks ORM servem exatamente
para tratar este problema de impedância de maneira mais automatizada, o que dá
mais flexibilidade, clareza e produtividade para nosso código.
Pensando em padronizar as APIs dos diferentes ORMs, foi criado a JPA,
utilizando em projetos para integrar o tempo inteiro com estas APIs que estão exposta
no pacote javax.persistence e seus sub-pacotes. Também poder ser usada tanto pela
Hibernate quanto o Eclipse Link, que vão possuir os mesmos métodos para ser
utilizados na mesma maneira. Estas interfaces da JPA interagem com o framework
ORM, que aqui passa a ser chamado provider JPA. O provider JPA, que pode ser
qualquer framework ORM que implemente a JPA, realiza as devidas conversões para
os comandos SQL equivalentes e dispara estes comandos através do tradicional
JDBC.
25

Figura 7 - Ilustração do JPA

Fonte: Treinaweb (2018)

A configuração essencial da JPA é definida em um arquivo: o persistence.xml.


Dentro deste arquivo, definem-se as estruturas nas unidades de persistência, os entity
beans a serem mapeados e o provider JPA a ser utilizado.

3.1.3. MySQL WorkBenck 8.0

A ferramenta de administração na Linguagem SQL foi utilizada o MySQL


WorkBenck 8.0 para criação e elaboração do modelo para implementar o algoritmo,
baseando uma interface de implementação para visualizar as tabelas que serão
utilizadas no código AG.
A mesma é uma ferramenta de visualização para arquitetos, desenvolvedores
e administradores de banco de dados, fornecendo modelagem de dados,
desenvolvimento de SQL e ferramentas de administração abrangentes para
configuração do servidor local, administração de usuários, backup e entre outras
funcionalidades (MySQL, 2019).
26

3.2. Métodos

Os métodos utilizados serão descritos nesta seção, são eles:

3.2.1. Desenvolvimento Incremental

O desenvolvimento do software será realizado na metodologia incremental, que


segundo Sommerville (2011), é com intuito de desenvolver uma ferramenta inicial e
expô-la aos usuários em busca de feedback, completando após implementar várias
versões, a um sistema adequado para o uso final e a entrega do software com
qualidade. A figura seguir descreve a atividade deste processo.

Figura 8 - Desenvolvimento Incremental

Fonte: Sommerville (2011)

3.2.2. Linguagem de Programação JAVA

O Java foi a importante linguagem para este estudo atualmente, no entanto,


precisa-se entender que existem duas referências sobre ele basicamente: à
linguagem de programação Java e à plataforma Java.
27

A plataforma Java proporciona diversas ferramentas que tenham escritos na


linguagem de programação suportada pelo ambiente. Este ambiente é composto por
uma série de ferramentas que são importantes tanto para os desenvolvedores como
para quem vai utilizar as aplicações criadas com as linguagens suportadas pela
plataforma. Para execução da aplicação Java é preciso vários elementos que ajude
executá-la, neste estudo destaca-se apenas o Java Virtual Machine – JVM, que é uma
máquina virtual que executa aplicações Java em um ambiente controlado dentro de
uma máquina local, ou seja, desktop.
Hoje a plataforma Java possui divisões de acordo com as tecnologias
envolvidas e criada pela Oracle, sendo elas:
• Java SE (Standard Edition - JSE): é a plataforma-base, contendo as
bibliotecas-base necessárias para desenvolvimento. Quando criamos
aplicações Console e Desktop (Swing) no Java, por exemplo, nós estamos
utilizando as bibliotecas do JSE;
• Java EE (Enterprise Edition – JEE): divisão que contém a estrutura
necessária para desenvolvermos aplicações corporativas e também para a
Web. Com o JEE, nós conseguimos utilizar alguns recursos mais
avançados, como os servlets e JMS (Java Messaging Service). Ela é uma
extensão da plataforma JSE. Não se preocupe com estas tecnologias neste
momento, pois elas serão abordadas no decorrer da trilha Java;
• Java ME (Mobile Edition – JME): divisão que contém a estrutura necessária
para desenvolvimento mobile e embarcado. O Android não faz parte do
JME, seguindo outra vertente dentro da plataforma Java (uma vertente
própria, devido à evolução das bibliotecas do Android);
• JavaFX: divisão que contém a estrutura para desenvolvimento de
aplicações com interface mais apurada para dispositivos móveis e desktop
(descrito no tópico 3.1.1. deste capítulo).
A empresa responsável pela plataforma Java atualmente é a Oracle, adquirida
desde 2009, comprada pela Sun, e mantem a linguagem e todo o seu ecossistema.

3.2.3. Banco de Dados MySQL

Banco de dados são tipicamente sistemas computadorizados de manutenção


de registros para armazenamento de informação, permitindo que usuários realizem
28

consultas e alterações quando solicitado. As informações podem ser qualquer arquivo


que o indivíduo considere relevante para si, sendo de importância individual ou
empresarial, dependendo do sistema a ser inserido para auxiliar no processo de
atividades em que necessitam da utilização destes dados (DATE, 2003).
O MySQL é um Sistema de Gerenciamento de Banco de Dado – SGBD muito
utilizado entre os desenvolvedores web e desktop, por trabalhar com eficiência na
linguagem de programa PHP. Sendo de fácil manipulação e comporta uma grande
quantidade de dados (SILVA et al., 2016).
Para esse estudo, baseou-se uma implementação para representar o Algoritmo
Genético a ser construído, buscando informações que facilite no desenvolvimento do
código.

Figura 9 - Código SQL

Fonte: O autor (2019)


29

4. IMPLEMENTAÇÃO DO PROTÓTIPO

4.1. Requisitos do problema

A lista de requisitos tem como objetivo buscar as informações que o software


deverá realizar as funcionalidades durante a execução, como também de prepará-lo
para um bom funcionamento e relacionar a situação ocorrida dentro do ambiente para
aproximar a realidade da escola (Quadro 1).
Quadro 1 - Requisitos Funcionais

REQUISITOS FUNCIONAIS
Nº Descrição Prioridade Status
O sistema deve permitir cadastrar, atualizar, remover e
RF 01 Alta Proposto
consultar professores.
O sistema deve permitir o cadastro de professores:
RF 02 nome, disciplina, carga horaria e disponibilidade (dia e Alta Proposta
turno).
O sistema deve permitir cadastrar, atualizar, remover e
RF 03 Alta Proposta
consultar turmas.
O sistema deve permitir o cadastro de turmas: turno,
RF 04 Alta Proposta
ano, nível de ensino e número da sala.
O sistema deve gerar o nome das turmas que estão
RF 05 Médio Proposta
cadastrados.
O sistema deve gerar uma tabela de horário de
RF 06 Alta Proposta
alocação dos professores nas salas.
RF 07 O sistema deve exibir uma tabela de professores. Alta Proposta
O sistema deve permitir a visualização das turmas
RF 08 Alta Proposta
cadastradas.
O sistema deve permitir a inserção da carga horária da
disciplina e calcular de acordo com a quantidade de
RF 09 professores cadastrado na disciplina específica. Por Alta Proposta
exemplo: existe 2 professores de matemática e deve
dividir a carga horária de 532h entre os dois. 532 / 2.
O sistema deve permitir a visualização da carga horária
RF 10 Alta Proposta
da disciplina disponível
Fonte: O autor (2019)

Após finalização dos requisitos, foram criados os modelos de diagrama para


abstrair as informações que serão implementadas aos códigos. Dessa forma, foi
criado o diagrama de caso de uso, para ser capturado e envolvido no software, nesse
contexto seria o coordenador e os professores.
30

No diagrama a seguir, demonstra os autores que interagem no software, o


coordenador, ou o administrador da escola, gerencia os professores que trabalham
na escola e as turmas. Os professores informam ao coordenador a sua disponibilidade
dentro da escola.

Figura 10 - Diagrama de Caso de Uso

Fonte: O autor (2019)

Também foi criado o diagrama de classe para estruturar o modelo “físico” do


software, que são as classes a serem usadas e relacionadas. Ao apresentar as
classes que representam os comportamentos do sistema e seus atributos e métodos
representando os detalhes e ações para implementar o código-fonte.
31

Figura 11 - Diagrama de Classe

Fonte: O autor (2019)

Figura 12 - Diagrama de Entidade-Relacionamento

Fonte: O autor (2019)


32

4.2. Funcionamento do AG para organização de horários

Para organização dos horários de professores na escola, o Algoritmo Genético


executa as seguindo informações, previamente inseridas como a disponibilidade dos
professores e o número de turmas presentes na escola, seguindo conceitos de AG
tais como: indivíduo; população; elitismo; avaliação (fitness); crossover e mutação.
Inicialmente é formado o indivíduo, como mostra na figura 13, para gerar a
grade de horários composta com informações dos professores, turmas, disciplinas,
turnos, dia da semana, hora/aula. Assim, com essas informações, chamada de
cromossomos, forma-se o indivíduo do AG para grade de horário da escola.

Figura 13 – Representação do indivíduo da grade de horário


Horários Segunda-Feira Terça-Feira Quarta-Feira Quinta-Feira Sexta-Feira
Disciplina 1 Disciplina 1 Disciplina 1 Disciplina 1 Disciplina 1
1º horário
Professor Professor Professor Professor Professor
Disciplina 2 Disciplina 2 Disciplina 2 Disciplina 2 Disciplina 2
2º horário
Professor Professor Professor Professor Professor
Disciplina 3 Disciplina 3 Disciplina 3 Disciplina 3 Disciplina 3
3º horário
Professor Professor Professor Professor Professor
Disciplina 4 Disciplina 4 Disciplina 4 Disciplina 4 Disciplina 4
4º horário
Professor Professor Professor Professor Professor
Disciplina 5 Disciplina 5 Disciplina 5 Disciplina 5 Disciplina 5
5º horário
Professor Professor Professor Professor Professor
Disciplina 6 Disciplina 6 Disciplina 6 Disciplina 6 Disciplina 6
6º horário
Professor Professor Professor Professor Professor
Disciplina 7 Disciplina 7 Disciplina 7 Disciplina 7 Disciplina 7
7º horário
Professor Professor Professor Professor Professor
Disciplina 8 Disciplina 8 Disciplina 8 Disciplina 8 Disciplina 8
8º horário
Professor Professor Professor Professor Professor
Fonte: O autor (2019)

A população consiste em determinado número de indivíduos que, para este


estudo, utilizou uma população de 100 indivíduos, selecionados aleatoriamente para
gerações feitas, desta forma o AG determinará a solução ótima ou aproximadamente
ótima para alocação de grade. Após a definição do número de geração da população
inicial, os indivíduos serão avaliados de acordo com o cálculo fitness. Com isso o AG
seleciona os mais aptos, porém sem descartar os não selecionados.
Desta forma, os AGs usam operadores genéticos a partir dos indivíduos mais
aptos selecionados aplicando o crossover e a mutação, chamados de indivíduos pais,
33

gerando nova população de indivíduos filhos, que assim serão avaliados novamente
pelo cálculo fitness.
Aplicando o operador crossover são escolhidos em par, ou seja, dividindo os
cromossomos em 2, vale ressaltar que são divididos em partes aleatórios. Com a
organização de grade de horários, buscando as informações de disciplinas e
disponibilidade dos professores.

Figura 14 - Representação do crossover na alocação de professores

Fonte: O autor (2019)

A ilustração da imagem demonstra o momento de quando o horário das turmas


é dividido em duas partes e, recombinadas as disciplinas e combinando as partes
iniciais com as partes finais do outro e vice-versa, produzindo dois novos
cromossomos gerando turmas filhos.
A mutação é aplicada nos cromossomos filhos para aumentar a variabilidade
da população com pequeno valor da taxa, sendo considerado menor que 5%. Porém,
para o problema deste estudo, utiliza-se uma taxa de 0,5%, para explorar as novas
características dos indivíduos possivelmente úteis na grade de horários, substituindo
as disciplinas com a pequena taxa informada. Segue a ilustração da mutação na grade
de horário abaixo.
34

Figura 15 - Execução da Mutação

Fonte: O autor (2019)

Quando é executada a mutação, haverá troca de posição das disciplinas


alocadas, removendo de uma posição e alocando na outra. As disciplinas que estão
em destaque, após a execução da mutação, foram alocadas na posição em que
satisfazia a grade de horários.

4.3. Apresentação do Software

O software foi implementado usando gráficos simples para o usuário empregar


da melhor forma, sem dificuldades no seu manuseio e na inserção das informações
dos professores, tais como: disponibilidade e disciplina, caracterizadas como
essenciais, para a criação da grade de horário escolar.
Na tela inicial do software (figura 10), mostra-se um design gráfico simples que
apenas apresenta a tabela de horário gerado pelo Algoritmo Genético, desenvolvido
no programa, que mostra os turnos como também os dias, horário e a turma. Além
disso, foram adicionados os botões de “Professores” e “Turmas” para acessar os
dados cadastrados ou cadastrar as informações dos mesmos.
35

Figura 16 - Tela Inicial

Fonte: O autor (2019)

Para visualização das informações dos professores cadastradas, é mostrada


uma tabela que apresenta as informações, que assim o coordenador organiza a grade
de professores que estão atuando na escola, de acordo com a necessidade da
construção da grade.
36

Figura 17 - Tabela de Professores Cadastrados

Fonte: O autor (2019)

Na tela de cadastro dos professores, o software solicita os campos para inserir


as informações e assim gerar os horários, principalmente, que é essencial a inserção
da disponibilidade e disciplina. Uma funcionalidade importante é a visualização da
carga horária disponível quando selecionada a disciplina, assim o usuário fica ciente
da quantidade de horas disponíveis da disciplina, para ser distribuída entre os
professores, por exemplo, a escola possui 3 professores de matemática, sendo que a
carga horária total da disciplina é 532, com isso a coordenação precisa distribuir essa
carga horária entre os 3 professores sem ultrapassar o limite.
37

Figura 18 - Tela de Cadastro dos Professores

Fonte: O autor (2019)

Para as turmas foram criadas as telas de visualização (figura 13) para saber a
quantidade de turmas que estão cadastradas e quais são. Em seguida, a tela de
cadastro da turma (figura 14) de acordo com a quantidade de salas presentes na
escola e o coordenador insere no software, assim, o algoritmo saberá a quantidade
de turmas que estão envolvidas na grade de horário.
38

Figura 19 - Tabela de Turmas Cadastradas

Fonte: O autor (2019)


39

Figura 20 - Tela de Cadastro de Turmas

Fonte: O autor (2019)

4.4. Testes do Software

Para a realização dos testes foram cadastradas as disponibilidades de 45


professores com suas respectivas disciplinas, disponibilizados pela gestão da escola
para aproximar da realidade da escola durante a elaboração da grade dos
professores, vale ressaltar que alguns professores ministram mais de uma disciplina.
As informações fornecidas, são referentes a grade já existente na escola, tendo como
comparar o cenário real com o cenário de teste do estudo.
Os requisitos foram validados atendendo as necessidades do quadro 01, para
que o software atenda esses requisitos pré-elaborado para geração da grade de
horários dos professores analisado pelo desenvolvedor. Assim, usando as
informações da escola, professores e as disciplinas, facilitou a simulação da grade de
horários e a distribuição das disciplinas em cada turma. Também foi feita aplicação de
questionário para testar a usabilidade do sistema com intuito de verificar o nível de
satisfação do usuário.
40

5. RESULTADOS E DISCUSSÕES

Este trabalho apresenta característica da utilização de Algoritmos Genéticos na


construção da grade de horários, para Escola Estadual de Ensino Fundamental e
Médio Osvaldo Cruz. Um questionário para avaliar a usabilidade do software no uso
da ferramenta está de acordo para o processo de organização de horário, sendo
essencial para gestão da escola, aplicado para a equipe de gestão escolar. Houve
orientação da usabilidade do sistema para facilitar a compreensão da ferramenta, que
assim foi aplicado questionário e no momento os usuários realizaram perguntas, mas
todas foram esclarecidas durante a avaliação.
De acordo com análise da resposta dos entrevistados, a ferramenta não
demonstra um grau de dificuldade na sua usabilidade, o programa agradou para uso
frequente na formação da grade de horários dos professores, principalmente, na parte
de inserção da disponibilidade dos professores, o que possibilita a função essencial
para formação da grade. Que para os entrevistados, eliminaria tempo de organizar o
horário.

Gráfico 1 - O sistema é fácil de usar.

O sistema é fácil de usar.


90%

80%

70%

60%

50%

40%

30%

20%

10%

0%
Discordo Totalmente Discordo Neutro Concordo Concordo Totalmente

Fonte: O autor (2019)


41

Gráfico 2 - O sistema é muito complicado

O sistema é muito complicado.


90%

80%

70%

60%

50%

40%

30%

20%

10%

0%
Discordo Totalmente Discordo Neutro Concordo Concordo Totalmente

Fonte: O autor (2019)

Antes, o responsável em elaborar e alocar os professores conversava com eles


para saber os dias disponíveis que gostaria de ministrar suas aulas. E durante a
aplicação do questionário, a gestão relatou que isso demorava uma semana para ficar
pronto. Porém, quando os professores visualizavam a grade alguns não concordavam
com os horários e, também, acontecem transferências de professores na escola.
Consequentemente, dificulta a elaboração tornando demorado e, com a ferramenta,
tornaria muito mais fácil, principalmente, a inserção da disponibilidade que o torna
essencial na criação.
42

Gráfico 3 - Foi fácil encontrar a informação que eu precisava

Foi fácil encontrar a informação que eu precisava.


90%

80%

70%

60%

50%

40%

30%

20%

10%

0%
Discordo Totalmente Discordo Neutro Concordo Concordo Totalmente

Fonte: O autor (2019)

De acordo com as respostas dos usuários, o sistema apresenta informações


claras e precisas para usar de acordo com as necessidades da gestão escolar. As
funções do sistema não mostraram dificuldade para o usuário utilizar, porém algumas
delas precisaram ser esclarecidas no momento que foi testado, mas que não dificultou
a usabilidade do software, por exemplo o cadastro da carga horaria que o professor
trabalha na disciplina e alteração dos dados de um professor ou turma.
43

Gráfico 4 - As funções deste sistema estavam bem integradas

As funções deste sistema estavam bem integradas.


90%

80%

70%

60%

50%

40%

30%

20%

10%

0%
Discordo Totalmente Discordo Neutro Concordo Concordo Totalmente

Fonte: O autor (2019)

O sistema não demonstra ser complexo e sim de fácil utilização na navegação


entre as telas, durante o manuseio comprovou que não seria necessário um suporte
técnico para utilizar o programa, sendo fácil a compreensão das funcionalidades com
a organização das informações entre as telas deixando clara.

Gráfico 5 - A organização de informações na tela do sistema é clara

A organização de informações na tela do sistema é clara.


70%

60%

50%

40%

30%

20%

10%

0%
Discordo Totalmente Discordo Neutro Concordo Concordo Totalmente

Fonte: O autor (2019)


44

Desta forma, utilizando interface para facilitar a interação com usuários e


utilizando os métodos da Computação Evolutiva, que nesse caso, os Algoritmos
Genéticos, como caso específico para a problemática, sendo o diferencial dos
trabalhos desenvolvidos referenciados neste estudo.
45

6. CONSIDERAÇÕES FINAIS

O problema na organização em alocar os professores nas turmas para ministrar


suas aulas é que o andamento satisfaça os horários escolhidos e tornem aceitável
para todos, no entanto, realizar este processo demanda tempo para organizar a grade
desses professores. Neste estudo visou-se implementar um protótipo que ajude a
organizar e gerar uma grade de horários conforme a disponibilidade de cada
professor, aplicando o método de Algoritmos Genéticos presente na área de
Inteligência Computacional, sendo a Escola Estadual de Ensino Fundamental e Médio
Osvaldo Cruz de Capitão Poço – Pará o local de estudo de caso.
Os algoritmos Genéticos são um método eficaz para o problema em alocação
de professor e para analisar as disponibilidades gerando um resultado satisfatório. A
utilização dos Algoritmos Genéticos oferece meios alternativos para solução do
problema de alocação dos professores nas turmas, onde aconteciam várias mudanças
no decorrer do ano letivo porque, nem todos, ou, a grande maioria, discorda do seu
horário.
Embora o protótipo a ser desenvolvido neste trabalho possibilite um bom
desempenho na inserção de informação para gerar uma grade de horários, no seu
estado atual, requer importantes melhorias e adaptações para a utilização em outros
cenários escolares.

6.1. Trabalhos Futuros

Como trabalhos futuros destacam-se mais funcionalidade e implementação


para maior utilidade no software, tais como: A inserção da funcionalidade de carga
horaria do professor, para o fitness do Algoritmos Genéticos avaliar de forma precisa
na distribuição da alocação de horários; gerar a grade de horários na tela inicial do
software e exportar em arquivos .pdf.; e a integração do código Algoritmos Genéticos
na interface gráfica do software.
46

REFERÊNCIAS

BARATA, Bruno Marcelo Pena; MEDEIROS, Raphael Carlos de; VIEIRA, Carlos
Eduardo Costa; SILVA, Júlio César da. Problema de Alocação de horários: um
estudo de caso utilizando o software livre FET. Revista eletrônica TECCEN, v. 3, n.
2, p. 13-22, abr./jun., 2010.

COPPIN, Bem. Inteligência Artificial. Rio de Janeiro: LTV, 2017.

FECELI, Katti; LORENA, Ana Carolina; GAMA, João; CARVALHO, André C. P. L. F.


Inteligência Artificial: Uma abordagem de aprendizagem de máquina. Rio de
Janeiro: LTC, 2017.

FERREIRA, P. S.; KARAS, E. W.; PALUCOSKI, F. L.; RIBEIRO A.A. Aplicação de


programação inteira na distribuição de encargos didáticos em instituições de ensino.
Trends in Applied and Computational Mathematics, v. 12, n. 2, p. 135-144, 2011.

GOÉS, Anderson Roges Texeira. Otimização na distribuição da carga horária de


professores – método exato, método heurístico, método misto e interface. 2005.
Dissertação (Mestrado em Métodos Numéricos em Engenharia) – Universidade
Federal do Paraná. 2005.

HAMAWAKI, Cristiane Divina Lemes. Geração automática de grade horaria


usando algoritmos genéticos: o caso da faculdade de engenharia elétrica da UFU.
2015. Dissertação (Mestrado em Ciências) – Faculdade de Engenharia Elétrica,
Universidade Federal de Uberlândia, Uberlândia. 2005.

HAYKIN, Simon. Redes neurais: princípios e prática. 2. ed. Porto Alegre: Bookman,
2001.

JÚNIOR, Mário Ferreira Marques; PEREIRA, Danilo Roberto; SILVA, Francisco


Assis da. Aplicação de algoritmos genéticos na construção de grades de horários.
Colloquium Exactarum, v. 7, n. 1, jan-mar., p. 22 – 32, 2015.

JUNIOR, Wilson Valente. Aplicação coordenada das técnicas de medição,


simulação numérica e otimização, para o mapeamento do ambiente
eletromagnético em hospitais. 2011. Tese (Doutorado em Engenharia Elétrica) –
Universidade Federal de Santa Catarina, Florianópolis. 2011.

KALFELS, Eduardo Henrique Hoffmann. Algoritmos genéticos como uma


abordagem para a alocação de grade de horários da UFSC. 2017. Trabalho de
Conclusão de Curso (Bacharelado em Sistema de Informação) – Universidade
Federal de Santa Catarina, Florianópolis, 2017.

MYSQL. MySQL WorkBench. Disponível em:


https://www.mysql.com/products/workbench/. Acesso em: 16 mar. 2019.
47

OLIVEIRA, Claúdio de; MOURA, Samuel Pedrosa; SOUSA, Edinaldo Ribeiro de.
TIC’S na educação: a utilização das tecnologias da informação e comunicação na
aprendizagem do aluno. Pedagogia em Ação, v. 7, n. 1, 2015.

PIRES, Luiz Fernando Rodrigues. As influências das tecnologias da informação


e comunicação nas estratégias de ensino e aprendizagem de cálculo
diferencial e integral. 2016. Dissertação (Mestrado Profissional em Educação
Matemática) – Universidade Federal de Juiz de Fora, Juiz de Fora, 2016.

RAMOS, Patrícia de Siqueira. Sistema Automático de Geração de Horários para


UFLA utilizando Algoritmos Genéticos. 2002. Monografia (Graduação em Ciência
da Computação) – Departamento de Ciência da Computação, Universidade Federal
de Lavras, 2002.

RUSSELL, Stuart Jonathan; NORVIG, Peter. Inteligência Artificial. 3. ed. Rio de


Janeiro: Elsevier, 2013.

SILVA, Patrick Pedreira. et al. Integração das tecnologias VRML, PHP e MySQL
para a construção de uma biblioteca virtual. Revista Internacional del Libro,
Digitalización y Bibliotecas, v. 2, n. 1, 2016.

SOMMERVILLE, Ian. Engenharia de software. 9.ed. São Paulo: Pearson Prentice


Hall, 2011.

SOUSA, Juliana Carvalho de; PINTO, Francisco Roberto; SILVA, Rafaela Gome da.
Análise ergonômica em empresas da área de tecnologia da informação. Antena
Editora, Ponta Grossa, v. 2, p. 23-34, 2017. ISBN 978-85-93243-46-2. DOI
10.22533/at.ed.462011117.

STAHNKE, Eduardo; VAHLDICK, Adilson. Inteligência artificial aplicada na


engenharia de software. REAVI-Revista Eletrônica do Alto Vale do Itajaí, v. 2, n.
1, p. 119-122, 2013.

Você também pode gostar