• Nenhum resultado encontrado

Uma Ferramenta Baseada em Algoritmos Genéticos para a Geração de Tabela de Horário Escolar

N/A
N/A
Protected

Academic year: 2021

Share "Uma Ferramenta Baseada em Algoritmos Genéticos para a Geração de Tabela de Horário Escolar"

Copied!
13
0
0

Texto

(1)

Uma Ferramenta Baseada em Algoritmos Genéticos para a

Geração de Tabela de Horário Escolar

Cherze C. Freitas1, Priscilla R. B. Guimarães1, Manoel C. M. Neto1, Frederico J. R. Barboza1

1

Faculdade Ruy Barbosa (FRB) – Salvador – BA - Brasil

{cherze, priscillabagano, manoelnetom, fred.barboza}@gmail.com

Abstract. By the complexity and time expensed in the elaboration of school

schedules, the professional that do it needs a computational program that helps then in your work. This happens because the variety of the restrictions of a scholar timetabling makes itself a NP-Complex problem, that can't be solved through conventionals methods of programming. This article describes the theory behind the problem of the allocation of school schedule and its solution, which uses a meta-heuristic programming technique that is based in the natural selection of the species, the Genetic Algorithms (GAs). The Kairós, a computing tool, was developed to satisfy the necessities of Faculdade Ruy Barbosa (FRB) finding a schedule that the user wants.

Keywords: Genetic Algorithms, timetabling, optimization.

Resumo. A complexidade e o tempo gasto na elaboração de horários

escolares levam à necessidade de programas computacionais que auxiliem em seu processo de desenvolvimento. O amplo conjunto de restrições do timetabling escolar faz dele um problema NP-Complexo, impossibilitando sua solução através de métodos convencionais de programação. Este artigo aborda a teoria sobre o problema da alocação de horário escolar e sua solução, utilizando uma técnica de programação metaheurística baseada na seleção natural das espécies, os Algoritmos Genéticos (AGs). Uma ferramenta chamada Kairós foi desenvolvida para satisfazer as necessidades da Faculdade Ruy Barbosa (FRB) e se propõe a encontrar um horário satisfatório ao usuário.

Palavras-chave: Algoritmos Genéticos, timetabling, otimização.

1

Introdução

A elaboração do horário escolar em instituições de ensino é realizada geralmente de forma manual, exigindo um considerável tempo para sua conclusão. Isso ocorre, principalmente, porque é necessário respeitar um conjunto grande de restrições para que o horário obtido satisfaça as necessidades dos envolvidos: os professores e a instituição.

O processo de alocação de horário escolar é denominado timetabling escolar. Um problema de otimização combinatória da classe dos NP-Difíceis, no qual é mais fácil verificar se o resultado apresentado está correto do que obter analiticamente tal solução em tempo polinomial [Barboza 2003]. Vários métodos foram propostos na

(2)

tentativa de se obter uma solução. Alguns deles são: Busca Tabu [Costa 2003], Recozimento Simulado [Silva 2005] e GRASP (Greedy Randomized Adaptive Search

Procedure) [Costa 2003].

Por possuírem um único conjunto de regras, as ferramentas de montagem de horário escolar tornam-se inviáveis para serem utilizadas em um amplo grupo de instituições. Assim elas são desenvolvidas para se adequar às necessidades específicas da instituição que a utiliza.

A ferramenta apresentada nesse artigo foi elaborada para satisfazer os interesses da Faculdade Ruy Barbosa (FRB). Assim, foi realizado um levantamento bibliográfico sobre Algoritmos Genéticos e Timetabling com o objetivo de adquirir o conhecimento necessário para agregar valores e respaldo científico ao trabalho.

Através de entrevistas feitas com os coordenadores da FRB, foram identificadas suas necessidades e analisadas suas práticas de trabalho no processo de construção do horário acadêmico. A partir das informações extraídas, foi desenvolvido o documento de especificação de requisitos.

Em uma última etapa, foram aplicados testes na ferramenta. Feitos utilizando dados reais, foi possível analisar o comportamento da Kairós sob condições para as quais foi projetada. Ajustes foram feitos a partir do surgimento de eventuais respostas negativas.

Na seção 2, estão relatados e analisados os conceitos básicos relativos ao

timetabling escolar e aos algoritmos genéticos. Em seguida, na seção 3, há uma breve

explicação sobre a ferramenta.

2 Timetabling e Algoritmos Genéticos

Neste tópico, estão apresentadas as informações e os conceitos inerentes ao trabalho e as análises necessárias para seu desenvolvimento. De início, na seção 2.1, está definido o conceito do problema de timetabling e suas características e na 2.2, algoritmos genéticos e seu funcionamento.

2.1 Timetabling

O problema de geração de quadros de horário, timetabling, é um problema de otimização que possui várias aplicações práticas, por exemplo, escalonamento de enfermeiros [Cheang et al 2003], horários de aula em instituições de ensino [Burke et al 1997; Caldeira e Rosa 1997] e planejamento de transporte público [Lourenço, Paixão e Portugal 2000].

Com um amplo conjunto de restrições, que varia de acordo com o contexto [Costa e Bruna 2002], um dos aspectos evidenciados em análises feitas nesse tipo de problema é o tempo gasto (não polinomial) na busca por um resultado que satisfaça as regras pré-estabelecidas. Outro fato importante é a qualidade do resultado obtido, já que seu extenso conjunto de regras torna a sua obtenção mais complexa.

Em termos computacionais, não é conveniente o uso de programação determinística para solucionar timetabling. Muitos estudos são realizados na tentativa de propor métodos para auxiliar a descoberta de uma solução ótima, pois, a sua

(3)

complexidade computacional estimula o contínuo estudo sobre o tema [Burke et al 1997].

O problema de timetabling escolar consiste em organizar as aulas em um intervalo de tempo, geralmente uma semana, de modo que elas satisfaçam as restrições pré-definidas [Filho 2001].

Inicialmente, é preciso estabelecer o conjunto de regras. As restrições podem ser divididas em dois grupos, as com alta importância, que quando não satisfeitas geram horários inúteis, e as com baixa, cujas violações devem ser minimizadas, mas, caso ocorram, não os invalidam [Moreira, 2003]. A solução ótima, para este caso, tem como característica cumprir, da melhor forma possível, com todas as regras definidas nesses dois grupos.

O conjunto de restrições varia com as características da instituição e dos envolvidos no processo de desenvolvimento, geralmente os coordenadores. A montagem do horário é feita, na maioria dos casos, de forma manual e leva um considerável tempo na sua elaboração.

No próximo tópico serão descritos os parâmetros e operadores do Algoritmo Genético (AG).

2.2 Algoritmos Genéticos (AGs)

Na segunda metade do século XIX, após várias observações e experimentos, Charles Darwin apresentou sua teoria da seleção natural em “A Origem das Espécies”, e no mesmo período, o austríaco Gregory Mendel desenvolveu os princípios básicos da genética moderna. Os dois trabalhos combinados geraram a atual teoria da evolução que diz que uma população de indivíduos que se reproduzem sexualmente é resultado da mutação e recombinação dos genes “sobreviventes” das gerações anteriores [Timóteo 2002].

Nesse mesmo período, começou-se a simular sistemas genéticos computacionalmente. Jonh Holland foi o pioneiro nessas pesquisas e seu livro é até hoje considerado a principal referência sobre algoritmos genéticos. A partir daí, os AGs começaram a ser usados em diversos domínios [Timóteo 2002].

2.2.1 Funcionamento dos AGs

Inspirados na teoria evolutiva das espécies e baseados nos mecanismos da seleção natural, os AGs são algoritmos de busca e otimização que consideram cada indivíduo como sendo candidato a integrante do resultado ótimo [Filho, 2000].

Os algoritmos genéticos, diferentes dos métodos tradicionais determinísticos de otimização, utilizam meios probabilísticos para a convergência do resultado, trabalham com parâmetros codificados e avaliam cada indivíduo isoladamente, possuindo um paralelismo implícito.

A cada geração, descartam-se os piores indivíduos e os melhores permanecem transmitindo suas qualidades. O algoritmo utiliza o conhecimento adquirido anteriormente para formar uma nova população mais próxima do resultado esperado (MITCHELL, 1998).

(4)

Uma desvantagem dos AGs é a mudança do sistema de codificação e dos parâmetros genéticos em cada tipo de problema, sendo necessário um estudo particular de cada caso.

2.2.2 Representação da Solução

A representação da solução é de fundamental importância para um adequado funcionamento dos algoritmos genéticos. Jonh Holland propôs uma representação binária para sua solução que, embora tenha se mostrado eficiente em vários problemas, não consegue codificar com exatidão os dados em aplicações mais complexas [Holland 1975].

Com isso, novas alternativas surgiram, como a codificação por vetor de números inteiros que representam as cidades e as rotas no problema do caixeiro viajante e a codificação como uma árvore apresentada por Koza (1992). A representação deve-se adequar à natureza do problema em questão. Assim, a estrutura que representa o indivíduo pode variar de uma simples cadeia de caractere a estruturas complexas [Barboza 2003].

2.2.3 Geração da População Inicial

A população inicial pode ser gerada de forma aleatória ou com alguma heurística. A forma aleatória é a mais utilizada, pois é a mais simples e garante uma maior diversidade das estruturas [Timóteo 2002]. Porém existem casos em que pode ser admitida alguma heurística, por exemplo, quando se sabe a natureza da resposta esperada [Costa e Bruna 2002].

Outro fator que deve ser considerado é o tamanho da população. Quando não se define uma quantidade razoável de informações tornando a população muito pequena e restringindo o nível de variabilidade genética (estagnar o processo evolutivo e baixar o desempenho).

Quando a população é muito grande, mais recursos computacionais são necessários e o algoritmo pode apresentar um desempenho de execução abaixo do esperado. Portanto, é necessário um equilíbrio na escolha do número inicial de indivíduos da população.

2.2.4 Operadores Genéticos

Com o conjunto inicial de indivíduos estabelecido, são utilizados os operadores genéticos até se obter a melhor solução. A princípio é atribuído a cada indivíduo um valor que define a qualidade da possível solução, o fitness. Um valor numérico especificado pela função de avaliação.

Em problemas de otimização matemática, o fitness é o próprio valor retornado pelas funções ao se aplicar como parâmetro o indivíduo decodificado. Já quando se possui muitas regras, o grau de aptidão é obtido por funções baseadas em penalidades.

Com todos os indivíduos da população avaliados, o AG seleciona um grupo deles para participar do cruzamento (crossover). A seleção pode ser feita por vários métodos, abaixo estão apresentados alguns métodos:

• Seleção determinística: os indivíduos são selecionados a partir de uma função que estabelece o grau da expectativa de descendentes;

(5)

• Seleção por roleta giratória: os indivíduos recebem fatias da roleta a partir do valor do seu grau de aptidão. Um giro na roleta seleciona uma delas. Os indivíduos mais aptos tendem a ser freqüentemente selecionados, o que pode ocasionar uma convergência da população;

• Seleção por torneio: são sorteados aleatoriamente dois indivíduos e faz-se uma comparação entre eles, o com um maior fitness é selecionado;

• Seleção aleatória: cada indivíduo tem a mesma probabilidade de ser selecionado. Assim, pode ocorrer a seleção de indivíduos não aptos, provocando estagnação.

Steady State Selection: uma pequena quantidade de indivíduo da geração atual

é substituída pelos descendentes gerados a partir de cruzamentos e mutações [Mitchell 1998].

No processo de seleção pode ser utilizada uma técnica de elitismo, na qual um grupo de indivíduos da população atual é preservado na seguinte. Os indivíduos escolhidos, geralmente, são os de maiores fitness.

A reprodução fica a cargo do crossover que mistura aos pares os genes remanescentes do processo de escolha e gera uma nova solução. Essa tende a ser mais apropriada para o problema que a anterior, pois foi gerada pelo cruzamento dos melhores indivíduos.

São escolhidos genes de dois cromossomos e juntados para formarem um terceiro. Os pais são divididos em pontos sorteados para gerarem o filho. Cada parte filho foi herdada de cada um dos pais, mas o percentual de características vindo de um e do outro é aleatório.

A escolha desses pontos pode ser feita utilizando-se vários métodos:

•••• 1PX (Single Point Crossover): é selecionado um ponto aleatoriamente nos cromossomos e, a partir dele, é efetuada a troca do material genético (Figura 1);

Figura 1. Crossover 1PX Fonte: MOREIRA, 2003, p.17

•••• 2PX (Two Point Crossover): segue o mesmo processo do 1PX, mas, em vez de um ponto, são selecionados dois pontos aleatórios nos cromossomos (Figura 2);

(6)

Figura 2. Crosover 2PX Fonte: MOREIRA, 2003, p.17

•••• MPX (Multiple Point Crossover): são sorteados vários pontos de corte para, a partir deles, efetuar a troca (Figura 3);

Figura 3. Crossover MPX Fonte: MOREIRA, 2003, p.17

•••• Uniforme (Uniform Crossover): partes do material genético são trocadas aleatoriamente entre os indivíduos, respeitando a posição do gene na estrutura. No decorrer de várias gerações, independentemente do tamanho inicial, o processo evolutivo pode estagnar e o algoritmo convergir a um mínimo local (uma solução que satisfaz somente um determinado ponto do problema). Para evitar a estagnação os algoritmos genéticos utilizam a mutação.

A mutação existe para garantir uma variedade maior de indivíduos e explorar melhor o espaço de soluções possíveis. Quando o processo sofre estagnação, o procedimento muda alguns genes aleatoriamente (sem atrapalhar o progresso já conquistado) para permitir que novas características inexistentes nas gerações anteriores apareçam. Como essa alteração é aleatória, não é possível garantir que a mesma seja boa. Em caso positivo, permanecerá nas próximas gerações, caso contrário, será eliminada pela seleção.

Na próxima seção, será apresentada a Kairós, ferramenta desenvolvida nesse trabalho para auxiliar a elaboração de horários escolares, satisfazendo as necessidades da Faculdade Ruy Barbosa.

3 A Ferramenta Kairós

Nesse tópico será descrita a Kairós, uma ferramenta baseada em algoritmos genéticos para a geração de tabela de horário escolar. Com o objetivo de oferecer aos coordenadores da Faculdade Ruy Barbosa a oportunidade de construir a grade semestral com facilidade e rapidez, comparado com as técnicas usadas atualmente.

Na FRB, os coordenadores elaboram os horários manualmente e começam a defini-los meses antes do início do semestre letivo. Toda essa antecipação é necessária para que os problemas que, porventura, venham a surgir, devido à dificuldade do

(7)

processo, possam ser resolvidos antes que causem transtornos. Foram apresentadas as seguintes regras estabelecidas por eles no início do processo:

• A impossibilidade de duas disciplinas de um mesmo professor estarem alocadas no mesmo momento;

• As indisponibilidades do professor de lecionar na faculdade em determinados períodos;

• Maior atenção às indisponibilidades de horário de professores que são fortemente ligados a determinadas disciplinas (não deve ser substituído);

• Com a existência de professores que lecionam em cursos diferentes na mesma faculdade, pode ocorrer choque em seus horários entre as disciplinas dos cursos em que ensinam. Na FRB, isso ocorre entre os cursos de Administração, Sistemas de Informação e Ciência da Computação.

Além das restrições inerentes ao problema e das que existem por razão institucional, outras são particulares a cada coordenador, por exemplo:

• Possibilitar que matérias distintas, que são continuidade uma da outra, serem alocadas no mesmo intervalo de tempo. Matérias com essa característica geralmente estão disponibilizadas em períodos e turmas diferentes;

As informações referentes às restrições são identificadas através de uma comunicação entre coordenadores e professores. Para conhecer quais as indisponibilidades de horários do corpo docente, é solicitado a cada integrante que as informem através de um formulário.

Após definir as regras, identificar as informações relativas a elas e estabelecer os graus de importância, inicia-se a organização dos horários. Os problemas mais freqüentes citados pelos coordenadores da FRB são:

• Ocorre uma coincidência de indisponibilidades por parte do corpo docente em um determinado horário;

• A priorização de professores em determinadas matérias aumenta as chances de colisões;

• O choque de horários de um mesmo professor entre cursos diferentes.

Os conflitos encontrados no decorrer da elaboração geram situações indesejáveis. O fato de muitos professores não estarem disponíveis para lecionar em alguns poucos períodos pode causar mudanças na composição do corpo docente e inviabilizar o fechamento da grade.

Quando há conflitos entre os horários dos professores que ensinam em outros cursos, os coordenadores se reúnem e tentam encontrar uma forma de conciliação. Não ocorrendo, algum professor deve ser substituído ou outro deve ser contratado.

Por toda sua complexidade de elaboração, uma ferramenta que gerencie e realize a montagem de horários seria de grande utilidade para os elaboradores de grade de horários, no caso as coordenações da FRB.

(8)

A ferramenta está organizada nos seguintes módulos (Figura 4): •••• O módulo de inserção e apresentação de dados;

•••• O módulo de geração do horário;

•••• O módulo de acesso aos dados armazenados em banco de dados.

Figura 4. Arquitetura da Ferramenta Kairós 3.1.1 Módulo de Inserção e Apresentação dos Dados

O módulo de entrada e saída de dados é a interface do sistema com o usuário. Ele compreende todos os formulários de cadastro de dados (professor, disciplina, turma) e a interface de apresentação da tabela de horário escolar preenchida.

Os dados são inseridos pelo usuário através de diferentes formulários dispostos no menu principal. O formulário apresentado pela Figura 5 corresponde ao cadastro dos parâmetros da tabela, que são os dias e os períodos para os quais o horário vai ser montado. O formato do horário é indispensável para o funcionamento da ferramenta, pois ele será a base para o cromossomo utilizado pelo algoritmo genético.

(9)

As disciplinas a que comporão a grade, assim como os professores e suas indisponibilidades, devem ser fornecidos. A Figura 6 apresenta o formulário de cadastro das disciplinas e dos professores.

Figura 6. Cadastro de Disciplinas e Professores

Como se pode ver na Figura 7, cada professor está ligado a uma ou mais disciplinas, no entanto, uma disciplina só está ligada a somente um professor. Disciplinas com o mesmo nome e ementa, mas de turnos e/ou cursos diferente, são consideradas distintas e podem ou não ter o mesmo professor.

Figura 7. Relacionamento entre Professores e Disciplinas

Os professores possuem individualmente uma tabela de disponibilidades onde informam as possibilidades de lecionarem em determinados horários. As disponibilidades de cada professor só podem ser adicionadas após os mesmos estarem devidamente cadastrados. A Figura 8 apresenta uma tabela preenchida com as disponibilidades de um professor.

1 1..N

(10)

tamanho = nDias * nPeriodos * qtdProfessores Figura 8 - Cadastro das disponibilidades de um professor 3.1.2 Módulo de Geração de Horários

Este tópico apresenta de forma geral as atividades que o módulo de geração de horários é responsável. Nele está contida toda a lógica de funcionamento do algoritmo genético (AG) e da utilizada pela montagem manual do horário.

O AG trabalha a partir de soluções que são geradas no início da execução de forma aleatória para que se tenha uma maior variedade. Estas soluções, também chamadas de cromossomos, são vetores de números inteiros.

O tamanho do vetor de genes é definido pelo formato do horário e a quantidade de professores. É feita uma multiplicação do número de dias, do número de períodos e da quantidade de professores cadastrados.

Cada número inteiro do vetor é um código atribuído a uma disciplina no momento de cadastro. A codificação por inteiros foi escolhida por atender bem ao problema (consegue representar fielmente os dados) e ser computacionalmente mais leve de se manipular do que o tipo String ou outros objetos [MICHELL 1998].

Com a população inicial gerada, o algoritmo genético, através de métodos baseados na teoria da evolução da espécie, promove o cruzamento dos indivíduos mais aptos (maiores valores de fitness) criando uma nova geração.

As operações genéticas utilizadas pelo AGs são a classificação (fitness), a seleção, o crossover (cruzamento) e mutação. A cada geração a tendência é que melhores indivíduos venham surgindo, mas isso pode vir a não acontecer, devido a outros fatores.

Para evitar uma estagnação nas populações, ou seja, que a maioria dos indivíduos permaneçam no mínimo local por muito tempo, efetua-se a mutação em indivíduos selecionados aleatoriamente, o que consiste em trocar alguns de seus genes por outros valores.

(11)

A mutação, se utilizada constantemente, pode também prejudicar a qualidade da população, pois a depender da quantidade e da qualidade de indivíduos modificados a população pode tornar-se inviável, ou seja, possuir indivíduos com baixos valores de

fitness.

Com isso, uma nova população surge contendo os novos indivíduos gerados e os indivíduos selecionados a partir da técnica de elitismo, nesse caso, 10% da população anterior. A execução termina quando é atingido o número máximo de gerações. Na Kairós, o número de gerações foi estabelecido empiricamente a partir de testes e de acordo com a qualidade dos resultados obtidos.

Entre os indivíduos da última população, o indivíduo de maior fitness será a solução apresentada ao usuário. Assim sempre será escolhida a melhor solução gerada pelo AG, ou seja, mesmo que não seja a ótima, será a melhor encontrada até aquela geração. A Figura 9 representa como é a exibição de um horário para um determinado semestre gerado pela Kairós.

Figura 9. Tabela Horário escolar gerada pela Kairós 3.1.3 Módulo de Acesso a Dados

O módulo aqui descrito representa as classes de conexão e acesso ao banco de dados que permitem a persistência das informações relativas aos professores, matérias e horários. Este é o único que conhece os detalhes da estrutura dos dados.

Como gerenciador, é utilizado o banco de dados orientado a objetos DB4O 6.0 para Java, devido a sua facilidade em armazenar e recuperar as informações nesta linguagem e independência com relação à arquitetura e sistema operacional.

Os dados são armazenados para que o usuário possa efetuar uma futura visualização de horários gerados ou para uma nova execução do algoritmo em outra oportunidade.

4 Testes e Resultados

Os coordenadores da FRB disponibilizaram uma tabela com os professores e as disciplinas dos seus respectivos cursos. A utilização desses dados serviu para que os

(12)

testes representassem com maior fidelidade as situações presentes no mundo real, podendo assim comparar qualitativamente seus resultados com os horários construídos para os semestres anteriores.

Os parâmetros (quantidade de indivíduos da população, número de gerações, taxa de crossover) foram determinados, para os testes, de acordo com o tamanho da base de dados e dos recursos computacionais disponíveis.

Para uma quantidade de 48 disciplinas (curso de Ciências da Computação na FRB), 17 professores e uma tabela com 24 células (7 dias e 5 períodos de 50 minutos cada). Foi definida uma população inicial composta por 5000 cromossomos (definido empiricamente) e um mínimo de 500 gerações para gerar um resultado aceitável que necessite de pouca intervenção do usuário.

Feitos em um Intel Pentium D 2.66GHz e 1GB de memória RAM, o tempo de cada teste foi em torno de 30 minutos para 3000 de população e 500 gerações (com resultados não muito bons). Em uma hora com esses valores sendo 5000 e 1000 respectivamente, tendo como resultado, em média, dois horários em branco e um com conflito entre duas disciplinas por grade semestral. Veja na Tabela 1 os dados dos demais testes efetuados na Kairós.

Tabela 1. Resultados obtidos nos testes Tamanho da População Número de Gerações Horários em Branco (média) Horários em Conflito (média) Tempo de Processamento (minutos) 3000 500 5 3 35 3000 1000 4 3 52 4000 500 3 3 45 4000 1000 3 2 62 5000 1000 2 1 78

5 Conclusão

Existem vários estudos na tentativa de solucionar o problema de timetabling escolar. Apesar de existirem diversas ferramentas, há a dificuldade dos usuários em encontrar uma que satisfaça as suas necessidades por completo. Dessa forma, essas são construídas ou modificadas para atender a cada instituição.

A Faculdade Ruy Barbosa não utiliza ferramentas computacionais na montagem de seus horários, pois, mesmo dentro da própria instituição, há variações entre as características de cada curso. A Kairós foi desenvolvida para satisfazer as necessidades dos cursos da FRB e tem como prioridade ser de fácil utilização e adaptação.

Como trabalhos futuros, seria indicado disponibilizar este serviço através da internet de forma que todo o processamento dos AGs seja feita em um servidor remoto. Também, pode-se implementar uma forma de mudar dinamicamente os parâmetros genéticos de acordo com análises das características da população em tempo de execução.

(13)

6 Referências

Barboza, F. J. R. (2003) Resumos de artigos sobre algoritmos genéticos. 32f. Mestrado em Mecatrônica - Escola de Engenharia, UFBA, Salvador.

Burke, E. K. et al. (1997) Automated timetabling: the state of the art. In The Computer

Journal, p. 565-571. Nottingham, v. 40, n.9, Julho.

Caldeira, J.P. e Rosa, C. (1997) Dynamic school timetabling using genetic search. In: INTERNATIONAL CONFERENCE ON THE PRATICE AND THEORY OF AUTOMATED TIMETABLING, 2, 1997, Toronto, Canada. Proceedings (Toronto: LaSEEB Publications), p. 115-122.

Cheang, B. et al. (2003) Nurse rostering problems: a bibliographic survey. European

Journal of Operational Research, North Holland, v.151, n.3, p.447-460, Janeiro.

Costa, E. O. e Bruna, M. (2003) D. Resolução de “timetabling” utilizando evolução

cooperativa. – Salvador: Universidade Federal do Paraná.

Costa, F. F. da.(2003) Programação de horários em escolas via GRASP e busca tabu. 39f. Monografia (Graduação em Engenharia de Produção) Universidade Federal de Ouro Preto, Ouro Preto, São Paulo.

Holland, J. H. (1975) Adaptation in Natural and Artificial System. University of Michigan Press.

Koza, J. R. (1992) Genetic Programming : on the programming of computers by means of natural selection., Londres: MIT Press, 6ª edição.

Lourenço, H. R., Paixão, J. P. e Portugal, R. (2000) The Crew-Scheduling Module in the

GIST System. – Lisboa, Portugal: Universidade de Lisboa.

Mitchell, M. (1998) An introduction to genetic algorithms. 1ª edição. Londres: MIT Press.

Moreira, I. G. M. (2003) Algoritmos genéticos aplicados ao problema da geração de horários. 35 f. Monografia (Informática) – Escola de Informática, Universidade Católica de Pelotas, Pelotas.

Ribeiro Filho, G. (2000) Melhoramentos no algoritmo genético construtivo e novas

aplicações em problemas de agrupamento. 129 f. Tese (Doutorado em Computação

Aplicada) – Instituto Nacional de Pesquisas Espaciais, São José dos Campos.

Silva, A. S. N. e. (2005) Estudo e implementação, mediante recozimento simulado, do

problema de alocação de salas. 120f. Monografia (Bacharelado em Ciência da

Computação) – Departamento de Ciência da Computação da Universidade Federal de Lavras, Lavras, Rio Grande do Sul.

Timóteo, G. T. S. (2002) Desenvolvimento de um algoritmo genético para a resolução de timetabling. 76 f. Monografia (Ciência da Computação) – Departamento de Ciência da Computação, Universidade Federal de Lavras, Lavras.

Referências

Documentos relacionados

De acordo com o Consed (2011), o cursista deve ter em mente os pressupostos básicos que sustentam a formulação do Progestão, tanto do ponto de vista do gerenciamento

Esta ação consistirá em duas etapas. Este grupo deverá ser composto pela gestora, pelo pedagogo e ou coordenador pedagógico e um professor por disciplina

Assim, almeja-se que as ações propostas para a reformulação do sistema sejam implementadas na SEDUC/AM e que esse processo seja algo construtivo não apenas para os

Na experiência em análise, os professores não tiveram formação para tal mudança e foram experimentando e construindo, a seu modo, uma escola de tempo

Declaro que fiz a correção linguística de Português da dissertação de Romualdo Portella Neto, intitulada A Percepção dos Gestores sobre a Gestão de Resíduos da Suinocultura:

O setor de energia é muito explorado por Rifkin, que desenvolveu o tema numa obra específica de 2004, denominada The Hydrogen Economy (RIFKIN, 2004). Em nenhuma outra área

Nessa situação temos claramente a relação de tecnovívio apresentado por Dubatti (2012) operando, visto que nessa experiência ambos os atores tra- çam um diálogo que não se dá

Para analisar as Componentes de Gestão foram utilizadas questões referentes à forma como o visitante considera as condições da ilha no momento da realização do