Sunteți pe pagina 1din 35

Departamento de Computao Trabalho de Concluso de Curso

RENAN DUPAS DE MATOS

UTILIZAO DE ALGORITMO GENTICO PARA RESOLUO DO PROBLEMA DE GERAAO DE HORRIOS

Londrina 2007

RENAN DUPAS DE MATOS

UTILIZAO DE ALGORITMO GENTICO PARA RESOLUO DO PROBLEMA DE GERAAO DE HORRIOS

Trabalho apresentado ao Curso de Cincia da Computao, da Universidade Estadual de Londrina, como requisito obteno do ttulo de Bacharel.

Orientador: Prof. Dr. Pedro Paulo da Silva Ayrosa

Londrina 2007

RENAN DUPAS DE MATOS

UTILIZAO DE ALGORITMO GENTICO PARA RESOLUO DO PROBLEMA DE GERAAO DE HORRIOS

Trabalho apresentado ao Curso de Cincia da Computao, da Universidade Estadual de Londrina, como requisito obteno do ttulo de Bacharel.

COMISSO EXAMINADORA

_________________________________ Prof. Dr. Pedro Paulo da Silva Ayrosa. Universidade Estadual de Londrina _________________________________ Prof. Dra. Maria Anglica de O. C. Brunetto Universidade Estadual de Londrina _________________________________ Prof. Ms. Rafael Robson Negro Universidade Estadual de Londrina

Londrina, 13 de novembro de 2007

A Deus, minha famlia...

e a minha eterna namorada...

AGRADECIMENTOS

minha namorada Tatiana que me ajudou e muito para que esse trabalho fosse concludo. minha famlia pelo apoio e suporte. Aos meus amigos, pela amizade nesses anos de curso. Ao orientador Prof. Dr. Pedro Paulo, pelo auxlio nesse trabalho.

MATOS, Renan D. Utilizao de algoritmo gentico para resoluo do problema de gerao de horrios. 2007. Trabalho de Concluso de Curso. Universidade Estadual de Londrina, Londrina. RESUMO O Problema de Gerao de Horrios, conhecido na literatura como Timetabling Problem, trata da alocao de horrios para todas as aulas de uma determinada escola, universidade etc., considerando-se um conjunto restrito de horrios e satisfazendo um conjunto de restries. O desenvolvimento de uma soluo para o problema de forma manual, alm de ser trabalhosa e lenta, pode gerar solues no to boas. Algoritmos genticos tm sido utilizados com eficcia para resoluo desse problema em tempo aceitvel. Neste trabalho, proposto uma pesquisa e o desenvolvimento de uma soluo aceitvel, segundo algumas restries, para o problema de gerao de grade horria utilizando a abordagem da computao evolutiva, atravs do uso de Algoritmos Genticos.

Palavras-chave: Algoritmos genticos. Problema de gerao de horrios. Inteligncia artificial.

MATOS, Renan D. Use of genetic algorithm for solving the problem of generation of schedules. 2007. Trabalho de Concluso de Curso. Universidade Estadual de Londrina, Londrina. ABSTRACT The problem of generation of schedules, known in the literature as Timetabling Problem, is treated as a problem in that we need to allocate schedules for all classes of a certain school, university etc, having a restrict set of schedules and to please a set of constraints. The development of a solution for the problem of manual way, besides being hard and slow, can generate solutions other than expected. Genetic algorithms have been used with effectiveness for this problem resolution in an acceptable time. In this work, is proposed a research and a development of an acceptable solution, according to some constraints, for timetabling problem using the evolutionary computing approach, through the use of genetic algorithms.

Key-words: Genetic algorithms. Timetabling problem. Artificial intelligence.

LISTA DE ILUSTRAES Figura 1: Algoritmo Gentico.......................................................................................5 Figura 2: Cruzamento em um ponto............................................................................8 Figura 3: Cruzamento em dois pontos ........................................................................9 Figura 4: Mutao .......................................................................................................9 Figura 5: Indivduo [1]................................................................................................14 Figura 6 Indivduo [2].................................................................................................15 Figura 7: Indivduo [3]................................................................................................15 Figura 8: Indivduo [4]................................................................................................15 Figura 9: Indivduo A antes do cruzamento ...............................................................17 Figura 10: Indivduo B antes do cruzamento .............................................................17 Figura 11: Posies dos indivduos A e B para serem cruzadas...............................18 Figura 12: Indivduo C aps a troca das disciplinas iguais........................................18 Figura 13: Indivduo D aps a troca das disciplinas iguais........................................18 Figura 14: Indivduo C aps o cruzamento................................................................19 Figura 15: Indivduo D aps o cruzamento................................................................19 Figura 16: Indivduo A para cruzamento em dois pontos ..........................................20 Figura 17: Indivduo B para cruzamento em dois pontos ..........................................20 Figura 18: Indivduo A depois do cruzamento em dois pontos ..................................20 Figura 19: Indivduo antes da mutao .....................................................................21 Figura 20: Indivduo aps a mutao ........................................................................21

SUMRIO 1 INTRODUO .......................................................................................................1 1.1 1.2 1.3 2 CONSIDERAES INICIAIS........................................................................... 1 OBJETIVOS E JUSTIFICATIVAS .................................................................... 2 ORGANIZAO DO TRABALHO .................................................................... 2

ALGORITMOS GENTICOS .................................................................................4 2.1 2.2 2.3 2.4 DEFINIO...................................................................................................... 4 REPRESENTAO CROMOSSMICA .......................................................... 6 DEFINIO DA POPULAO INICIAL ........................................................... 6 OPERADORES GENTICOS .......................................................................... 7 Seleo...................................................................................................... 7 Cruzamento ............................................................................................... 8 Mutao..................................................................................................... 9

2.4.1 2.4.2 2.4.3 2.5 3

CRITRIOS DE PARADA .............................................................................. 10

O PROBLEMA DE GERAO DE HORRIOS ....................................................11 3.1 3.2 3.3 DESCRIO DO PROBLEMA....................................................................... 11 TRABALHOS CORRELATOS ........................................................................ 12 MODELO CONSIDERADO ............................................................................ 12

ABORDAGEM DO PROBLEMA DE GERAO DE HORRIOS POR

ALGORITMOS GENTICOS ........................................................................................14 4.1 4.2 4.3 REPRESENTAO DA SOLUO............................................................... 14 GERAO DA POPULAO INICIAL........................................................... 16 SELEO ...................................................................................................... 16

4.4

CRUZAMENTO .............................................................................................. 16 Cruzamento em um Ponto....................................................................... 17 Cruzamento em dois Pontos ................................................................... 19

4.4.1 4.4.2 4.5 4.6 5

MUTAO ..................................................................................................... 21 CRITRIO DE PARADA ................................................................................ 22

CONCLUSO.........................................................................................................23

REFERNCIAS.............................................................................................................24

INTRODUO

Este captulo visa apresentar algumas consideraes sobre o problema de construo de grade de horrios, assim como abordar os objetivos e justificativas desse trabalho. Tambm mencionado a organizao do mesmo.

1.1

CONSIDERAES INICIAIS

Em Instituies de Ensino Superior, todo ano letivo ocorre a montagem de uma grade de horrios. Essa programao uma tarefa importante, mas tambm difcil, visto o grande nmero de possibilidades e as necessidades de se respeitar algumas restries. Dessa forma: [...] o problema de construo de grades horrias pode ser visto como relaes entre conjuntos de professores, disciplinas, alunos, perodos de tempo e recursos. Estas relaes esto sujeitas ainda a uma srie de restries, cujas combinaes aumentam a complexidade do problema (JUNIOR, 2000, p. 1). Essas instituies despendem de dias para chegar a um horrio definitivo, o qual, ainda muitas vezes ou invivel, ou no se adequam realidade. Devido complexidade desse problema de otimizao combinatria, sua resoluo por algoritmos exatos em tempo hbil se torna difcil, pois, como argumenta Ciscon (2006, p. 1), a famlia de problemas Timetabling se caracteriza por um espao de busca muito grande acompanhado de um conjunto de restries que devem ser respeitadas. Dessa forma, a resoluo desse problema por tcnicas heursticas, as quais mesmo no tendo a garantia de se encontrar a soluo tima, se mostram mais eficazes, pois localizam uma soluo boa em um tempo curto de processamento, pois conseguem encontrar boas solues. O objetivo desse trabalho apresentar um Algoritmo Gentico, que uma tcnica heurstica que utiliza conceitos advindos

das Teorias de Evoluo e Gentica, para resoluo do Problema da construo de Grade Horria.

1.2

OBJETIVOS E JUSTIFICATIVAS

A proposio desse trabalho se justifica pelo fato de que em trabalhos correlatos propostos (LOBO, 2005; OLIVEIRA, 2006; PIRES, 2002; TIMOTEO, 2002), a utilizao de algoritmos genticos para resoluo desse problema tem sido feita com relativo sucesso. Com esse trabalho objetiva-se: Pesquisar a forma de como se resolve o problema de alocao de horrios com a utilizao de tcnicas da computao evolutiva, mais especificamente os algoritmos genticos; Abordar as restries que sero utilizadas para a resoluo do mesmo;

Realizar um estudo de algoritmos genticos e sua utilizao para resoluo desse tipo de problema;

Compor os fundamentos tericos para a construo de um software que resolva esse problema de gerao de horrios.

1.3

ORGANIZAO DO TRABALHO

Este trabalho est organizado da seguinte forma: O Captulo 2 apresenta os Algoritmos Genticos e todos os conceitos envolvidos para construo do modelo proposto. O Captulo 3 apresenta a descrio do problema e a apresentao do modelo considerado para sua resoluo.

O Captulo 4 aborda o problema de gerao de horrios atravs da utilizao de um algoritmo gentico. A concluso desse trabalho mostrada no Captulo 5.

ALGORITMOS GENTICOS

Este captulo introduz o conceito de algoritmo gentico atravs de algumas consideraes de autores, bem como todos os conceitos envolvidos na utilizao de um algoritmo gentico (representao cromossmica, populao inicial e operadores genticos).

2.1

DEFINIO

Goldberg define algoritmo gentico como: [...] um algoritmo de procura baseado nos mecanismos de seleo natural e gentica natural. Ele combina a sobrevivncia feita por uma funo de avaliao entre uma cadeia de caracteres com uma estrutura de informaes mudadas aleatoriamente, para formar um algoritmo de procura com algum talento inovador, o mesmo de uma procura de um ser humano. Em toda gerao, um novo conjunto de criaturas artificiais (cadeia de caracteres) criado usando bits e pedaos do teste de avaliao da gerao anterior; ocasionalmente uma parte nova testada. Enquanto aleatrio, algoritmos genticos no so nenhum passeio simples sem destino. A procura mais eficiente das informaes anteriores para especular os pontos da nova procura resulta em um aumento na sua performance (apud JUNIOR, 2000, p. 25). J Tanomaru conceitua algoritmos genticos como sendo: [...] mtodos computacionais de busca baseados nos mecanismos de evoluo natural e na gentica. Em algoritmos genticos, uma populao de possveis solues para o problema em questo evolui de acordo com operadores probabilsticos concebidos a partir de metforas biolgicas, de modo que h uma tendncia de que, na mdia, os indivduos representem solues cada vez melhores medida que o processo evolutivo contnua (sic) (apud JUNIOR, 2000, p. 25).

Baseando-se nessas conceituaes sobre algoritmo gentico, podemos inferir que os algoritmos genticos so algoritmos que se utilizam de uma abordagem evolutiva para a resoluo de problemas e que basicamente executam um loop para obter uma soluo mesmo. Vejamos o fluxo de um algoritmo gentico que mostrado na figura 1:

Figura 1: Algoritmo Gentico

A figura 1 mostra que um algoritmo gentico resolve um problema atravs da gerao, mudana de indivduos e avaliao das solues candidatas. A representao de uma soluo candidata denominada cromossomo.

Terminologia:

Indivduo: representa uma possvel soluo para a resoluo de um problema. Gene: representa um possvel valor para cada posio de um indivduo. Cromossomo: representa a forma de representao dessa soluo.

Funo de aptido: funo a ser maximizada ou minimizada de acordo com o problema proposto. Alm disso, cada indivduo possui um determinado valor, o qual quando decodificado, representa um determinado valor para essa funo.

2.2

REPRESENTAO CROMOSSMICA

Para a soluo de um problema utilizando algoritmos genticos, precisamos primeiramente definir uma representao cromossmica, a qual determina como ser representada cada possvel soluo em um problema que utiliza essa tcnica evolutiva de resoluo. A deciso da representao muito importante, pois ela que define o espao de busca para problema a ser solucionado, e mais, a escolha de uma representao equivocada pode levar a uma soluo local para o problema, no global, que seria a esperada. As representaes mais utilizadas so a binria, a inteira e a de ponto flutuante. A opo por uma ou outra leva em considerao o problema a ser resolvido, e a preciso a ser adotada.

2.3

DEFINIO DA POPULAO INICIAL

A definio da populao inicial pode ser feita de vrias formas. A maneira mais comum atravs do incio aleatrio dos indivduos (ou candidatos soluo do problema), porm, nessa definio inicial temos que levar em considerao que indivduos invlidos no podem ser gerados j nessa etapa. Para isso, devemos utilizar algum meio para impedir que esses indivduos sejam acrescidos a essa populao. A definio do nmero de indivduos para a populao inicial varivel, e fica realmente definida quando testes so aplicados para verificar a abrangncia da populao, porm no pode ser muito pequena, pois assim o espao de explorao das solues fica muito restrito, e nem muito grande, pois dessa forma a execuo

do algoritmo pode se tornar demorada, devido ao aumento do espao de busca das solues.

2.4

OPERADORES GENTICOS

Os operadores genticos nada mais so do que critrios baseados na evoluo para evoluir os indivduos de uma populao. Os operadores que sero utilizados so a seleo, o cruzamento e a mutao, que sero detalhados abaixo:

2.4.1 Seleo

Esse operador realiza a seleo de determinados indivduos, de acordo com algum critrio, para realizarem a cruzamento posteriormente. Existem diversos critrios de seleo apresentados em trabalhos correlatos, sendo os principais:

Seleo por torneio: nesse mtodo de seleo, dois indivduos da populao so selecionados aleatoriamente, e o indivduo escolhido aquele que possui maior ou menor valor na funo de aptido, dependendo se o problema proposto for de maximizao ou minimizao.

Seleo por elitismo: nesse critrio, todos os indivduos da populao so ordenados de acordo com os seus valores na funo de aptido, e os melhores indivduos so selecionados para passarem para a populao seguinte. Esse mtodo garante que os melhores indivduos no se percam.

2.4.2 Cruzamento

Esse operador, que tambm pode ser chamado de crossover, um mecanismo de troca de informaes genticas dos indivduos selecionados para o cruzamento, para a obteno de novos indivduos. Isso faz com que mais solues diferentes sejam exploradas, dentro da gama de solues possveis. Essa recombinao pode ser realizada de vrias maneiras, dentre as quais as principais sero apresentadas abaixo: Cruzamento em um ponto: nesse tipo de recombinao, um ponto nos cromossomos escolhido, gerando assim dois segmentos em cada cromossomo. Aps isso, ocorre a troca de segmentos entre esses cromossomos, conforme veremos abaixo um caso, sendo os cromossomos binrios:

antes do cruzamento Cromossomo 1 Cromossomo 2

ponto de corte 0 1 1 0 0| 1 1 1 0 0 0 0 1 0 0| 1 1 1 1 1

depois do cruzamento Filho 1 Filho 2 0010011100 0110011111

Figura 2: Cruzamento em um ponto

Cruzamento em dois pontos: nesse tipo de cruzamento, dois pontos nos cromossomos so escolhidos, gerando assim trs segmentos em cada cromossomo. Aps isso, ocorre a troca do segmento do meio entre esses cromossomos, conforme veremos abaixo um exemplo com cromossomos binrios:

antes do cruzamento Cromossomo 1 Cromossomo 2 0 1 1 0 0| 1 1 1 0 0 |0 0 0 1 1 0 0 1 0 0| 1 1 1 1 1 | 1 1 1 0 0

depois do cruzamento Filho 1 Filho 2 0 1 1 0 0| 1 1 1 1 1 |0 0 0 1 1 0 0 1 0 0| 1 1 1 0 0 | 1 1 1 0

Figura 3: Cruzamento em dois pontos

2.4.3 Mutao

O processo de mutao uma forma de busca aleatria no cromossomo, sendo que uma posio do mesmo escolhida de forma eventual, e trocada por um possvel valor para esse gene. No caso de um cromossomo com valores binrios, caso a posio escolhida para mutao tenha o valor 1, esse valor mudado para 0. Esse operador, de acordo com Ciscon (2006) tem a inteno de prevenir que todas as solues do problema sejam puramente combinaes das solues da populao inicial, o que aumenta ainda mais a diversidade de solues. Vejamos uma ilustrao desse operador para o caso binrio:

antes da mutao Cromossomo antigo

ponto de mutao

0110011100

depois da mutao Cromossomo novo 0111011100

Figura 4: Mutao

10

2.5

CRITRIOS DE PARADA

O Algoritmo Gentico necessita de alguma condio de parada, ou seja, que finalize o processo iterativo do algoritmo. Os critrios que podem ser adotados so o tempo, a estagnao da populao e o nmero de geraes A utilizao do tempo pode ser um pouco ruim, visto que, se formos executar o mesmo algoritmo em computadores diferentes e em um mesmo intervalo de tempo, uma mquina pode apresentar uma convergncia boa, devido ao seu maior poder de processamento, e a outra pode apresentar uma convergncia ruim, devido ao menor poder de processamento dessa mquina. O critrio de estagnao da populao tambm pode ser utilizado, e diz respeito a no melhoria da populao aps vrias geraes do processo iterativo do algoritmo. Outra condio de trmino aplicarmos um nmero mximo de geraes para a execuo do algoritmo.

11

O PROBLEMA DE GERAO DE HORRIOS

Este captulo mostra o problema de gerao de horrios considerado, bem como trabalhos correlatos sobre o assunto e o modelo utilizado para resoluo do problema, evidenciando todas as restries consideradas para o horrio.

3.1

DESCRIO DO PROBLEMA

O Problema de Gerao de Horrios, tambm descrito na Literatura como Timetabling Problem, pode ser definido, de acordo com Wren, como:

[...] o arranjo de horrios dentro de padres de tempo ou espao, no qual algumas metas so atendidas ou praticamente atendidas e onde restries devem ser satisfeitas ou praticamente satisfeitas (apud OLIVEIRA, 2006, p. 22).

Esse problema um tipo amplo de problema, o qual possui algumas classificaes, dependendo do tipo de subproblema considerado: School

Timetabling Problem, Course Timetabling Problem ou Examination Timetabling Problem. O School Timetabling Problem um tipo de problema que aborda a alocao de horrio em escolas de segundo grau, j o Course Timetabling Problem diz respeito alocao de aulas em uma Universidade e por fim o Examination Timetabling Problem aborda a gerao de horrios de exames em uma Universidade.

12

3.2

TRABALHOS CORRELATOS

Diversos trabalhos tm sido propostos nessa rea de estudo, pois a gama de problemas de gerao de horrios NP- Difcil e, devido a isso, diversas tcnicas tm sido experimentadas (CISCON, 2006, p. 17). Dentre os mtodos utilizados para resoluo, podemos citar a busca tabu (SOUSA, 2006, p.29 e JUNIOR, 2000, p. 18), resfriamento simulado (SOARES, 2002, p. 23), redes neurais (FANG, 1994, p. 19), teoria de grafos (JUNIOR, 2000, p. 19) e algoritmos genticos (TIMOTEO, 2002, p. 29). Em diversos trabalhos, a escolha dos algoritmos genticos se d atravs de uma comparao com outras tcnicas, e atravs disso, de uma evidenciao das vantagens de sua utilizao.

3.3

MODELO CONSIDERADO

O Problema a ser desenvolvido leva em considerao as caractersticas de uma Universidade, sendo que o mesmo ser proposto para a construo de uma grade horria de somente um curso, mas especificamente o de Cincia da Computao da Universidade Estadual de Londrina. Para propormos um modelo, precisamos primeiramente de dados para sua construo. Sejam os seguintes dados: O curso de Cincia da Computao, com 4 turmas; Um conjunto de P Professores; Um conjunto S de salas; Um conjunto H de horrios semanais; Cada turma tendo n horrios de aulas pr-definidos.

13

Sejam as seguintes restries consideradas: Restrio 1: Um professor no pode ministrar mais de uma aula simultaneamente; Restrio 2: Impedir mais de duas aulas seguidas da mesma disciplina; Restrio 3: A turma do 4 ano no pode ter aulas tarde; Restrio 4: Todas as turmas no podem ter aulas com professores do Departamento de Computao quarta-feira tarde, pois os mesmos tm reunio do departamento; Restrio 5: Os horrios de superviso (TCC e Estgio) no podem coincidir com os horrios de aula dos professores supervisores; Restrio 6: Os horrios de superviso de TCC e Estgio so aulas duplas; Restrio 7: Duas turmas ou mais no podem ocupar as mesmas salas durante o mesmo horrio; Restrio 8: Horrios preferenciais dos professores. Agora, iremos considerar que um indivduo representado pelas quatro turmas e seus respectivos horrios. Dessa forma, como estaremos trabalhando com uma populao de indivduos, a soluo para o nosso problema ser o indivduo que melhor satisfizer o conjunto de restries. A funo objetivo :

min. (Restrio 1 + Restrio 2 + Restrio 3 + Restrio 4 + Restrio 5 + Restrio 6 + Restrio 7 + Restrio 8).

14

ABORDAGEM DO PROBLEMA DE GERAO DE HORRIOS POR ALGORITMOS GENTICOS

Este captulo aborda o problema de gerao de horrios utilizando-se algoritmo gentico para sua resoluo, evidenciando todas as fases do algoritmo gentico.

4.1

REPRESENTAO DA SOLUO

Para representarmos uma soluo, utilizaremos uma matriz de trs dimenses, sendo que as dimenses so o nmero de turmas (quatro turmas), o nmero de dias da semana (segunda a sexta 5 dias) e o nmero de horrios (4 horrios dirios). Assim, um indivduo da populao inicial ser a matriz de trs dimenses descrita acima, mostrada abaixo pelas figuras 5 a 9:
1 ANO Segunda TECNICAS DE PROGRAMACAO|JANDIRA|m dc2 INTRODUCAO CIENCIA COMPUTACAO|DIRCEU|mdc2 SISTEMAS DIGITAIS|LUCIO|155a Tera TECNICAS DE PROGRAMACAO|JANDIR A|mdc2 ---MATEMATICA DISCRETA |SERGIO|mdc2 TECNICAS DE CALCULO A|NEYVA|853 PROGRAMACAO|JANDIR A|mdc2 CALCULO A|NEYVA|853 ---MATEMATICA DISCRETA |SERGIO| SISTEMAS DIGITAIS|LUCIO|155a ---COMUNICACAO E ---CALCULO A|NEYVA|155a Quarta Quinta Sexta COMUNICACAO E EXPRESSAO|TEMPORARIO| 853 ----

---COMUNICACAO E

EXPRESSAO|TEMPORARI EXPRESSAO|TEMPORARIO| O|853 853

Figura 5: Indivduo [1]

15

2 ANO Segunda LINGUAGENS FORMAIS|CYNTHIAN|m dc1 LINGUAGENS FORMAIS|CYNTHIAN|m dc1 INGLES|SAMANTHA|12 3 FISICA|MARIA TEREZA|484 ORGANIZACAO DE COMPUTADORES|ELIESER| mdc1 ---INGLES|SAMANTHA|123 Tera Quarta ESTATISTICA|STURI ON| Quinta ORGANIZACAO DE COMPUTADORES|ELIESER| mdc1 ORGANIZACAO DE COMPUTADORES|ELIESER|la b2 ---Sexta ESTATISTICA|STURION|m dc1

INGLES|SAMANTHA| 123

ESTRUTURA DE DADOS|RODOLFO|lab2 FISICA|MARIA TEREZA|484 ESTRUTURA DE DADOS|RODOLFO|mdc2

---CALCULO B|ELIANDRO|123

----

CALCULO B|ELIANDRO|lab1

Figura 6 Indivduo [2]


3 ANO Segunda ENGENHARIA DE SOFTWARE|RODOLFO|lab2 Tera SISTEMAS OPERACIONAIS| SAKURAY|lab1 Quarta ADMINISTRACAO | ELIANA|466 SISTEMAS OPERACIONAIS| SAKURAY|mdc2 Quinta ENGENHARIA DE SOFTWARE|RODOLFO|lab1 Sexta COMUNICACAO DE DADOS|MARIO|lab1 EMPREENDEDORISM O| JANDIRA|mdc2 EMPREENDEDORISM O| JANDIRA|mdc2 TEORIA|LYNEAR| lab2

COMUNICACAO DE DADOS|MARIO|lab1

BANCO DE DADOS|VITOR|lab1

BANCO DE DADOS|VITOR|lab1

COMPILADORES|CYNTHIAN|m dc1

COMPILADORES|CYNTHIAN|l ab2

----

COMPILADORES|CYNTHIAN| lab2

ENGENHARIA DE SOFTWARE|RODOLFO|mdc1

ADMINISTRACAO TEORIA|LYNEAR|mdc1 | ELIANA|466 ----

Figura 7: Indivduo [3]


4 ANO Segunda LINGUAGENS DE PROGRAMACAO|KATIA|lab1 COMPUTACAO GRAFICA|ALAN|lab2 TCC|LYNEAR| TCC|LYNEAR| Tera I A|PEDRO PAULO |mdc1 Quarta COMPUTACAO ALGEBRICA|MARIA ANGELICA|mdc1 ---------Quinta COMPUTACAO ALGEBRICA|MARIA ANGELICA|lab2 LINGUAGENS DE PROGRAMACAO|KATIA|mdc2 ESTAGIO|VITOR| ESTAGIO|VITOR| Sexta

----

----------

I A|PEDRO PAULO |lab1 ESTAGIO|VITOR| ESTAGIO|VITOR|

Figura 8: Indivduo [4]

16

4.2

GERAO DA POPULAO INICIAL

A gerao da populao inicial consiste em se atribuir de maneira aleatria a cada indivduo da populao, ou seja, para todas as turmas, devemos atribuir aleatoriamente dentre os valores possveis das listas de disciplinas de cada turma. Nessa gerao pode ocorrer de obtermos indivduos, de determinada turma, com o nmero de aulas superior ao descrito para essa turma. Devido a isso, devemos adotar um critrio que impea isso, como por exemplo, a excluso da lista de disciplinas de determinada turma, das disciplinas que j foram escolhidas para compor o horrio dessa turma e que j atingiram o nmero necessrio de aulas para essa turma. Assim, podemos evitar que indivduos que no satisfaam essa restrio passem adiante para realizar as outras operaes genticas, e garantimos uma melhor qualidade de nossa populao inicial.

4.3

SELEO

Na seleo dos indivduos selecionamos os melhores indivduos pelo operador de elitismo, e preenchemos a tabela dos indivduos restantes para a seleo atravs do operador de seleo por torneio dos indivduos que no foram selecionados anteriormente. Com isso, foram preenchidos metade do nmero de indivduos, sendo que a outra metade ser obtida atravs do cruzamento.

4.4

CRUZAMENTO

J no cruzamento, utilizamos os indivduos obtidos na seleo para cruzlos e obtermos novos indivduos, os quais completaro a populao seguinte. Sero mostrados dois operadores de cruzamento:

17

Cruzamento em um ponto; Cruzamento em dois pontos.

4.4.1 Cruzamento em um Ponto

Nesse operador, um ponto aleatrio escolhido para ser o ponto do cruzamento, e a partir dele, os genes de dois indivduos so trocados. Com a troca desses genes entre esses dois indivduos podemos obter indivduos novos com uma incompatibilidade na carga horria. Para impedir a gerao desses indivduos, precisamos trocar apenas os genes compatveis, ou seja, os genes que representem as mesmas disciplinas. As figuras 9 a 15 representam esse cruzamento.
Segunda LINGUAGENS DE PROGRAMACAO|KATIA|lab1 COMPUTACAO GRAFICA|ALAN|lab2 TCC|LYNEAR| TCC|LYNEAR| Tera I A|PEDRO PAULO |mdc1 Quarta COMPUTACAO ALGEBRICA|MARIA ANGELICA|mdc1 ---------Quinta COMPUTACAO ALGEBRICA|MARIA ANGELICA|lab2 LINGUAGENS DE PROGRAMACAO|KATIA|mdc2 ESTAGIO|VITOR| ESTAGIO|VITOR| Sexta

----

----------

I A|PEDRO PAULO |lab1 ESTAGIO|VITOR| ESTAGIO|VITOR|

Figura 9: Indivduo A antes do cruzamento

Segunda

Tera LINGUAGENS DE PROGRAMACAO|KATIA|lab2

Quarta

Quinta

Sexta COMPUTACAO

I A|PEDRO PAULO |lab2

----

----

ALGEBRICA|MARIA ANGELICA|lab1

LINGUAGENS DE PROGRAMACAO|KATIA|lab1

I A|PEDRO PAULO |mdc2

--COMPUTACAO

---

COMPUTACAO GRAFICA|ALAN|mdc2

----

ESTAGIO|VITOR|

ALGEBRICA|MARIA ANGELICA|lab2

ESTAGIO|VITOR|

TCC|LYNEAR|

----

ESTAGIO|VITOR|

----

ESTAGIO|VITOR|

TCC|LYNEAR|

Figura 10: Indivduo B antes do cruzamento

18

Inicialmente tem-se os indivduos A (figura 9) e B (figura 10), que passaro pelo cruzamento em um ponto. Aps a escolha do ponto de cruzamento, faz-se a interseco das disciplinas que se repetem nas duas listas, respectivamente dos indivduos A e B, representada na figura 11.

Figura 11: Posies dos indivduos A e B para serem cruzadas

Com essas duas listas, verificam-se quais disciplinas so iguais nessa listas. Assim, consegue-se obter dois novos indivduos C (figura 12) e D (figura 13), que ainda esto parcialmente preenchidos.

Segunda LINGUAGENS DE PROGRAMACAO |KATIA|lab1 COMPUTACAO GRAFICA|ALAN|lab2 TCC|LYNEAR| TCC|LYNEAR|

Tera I A|PEDRO PAULO |mdc1 ----------

Quarta COMPUTACAO ALGEBRICA|MARIA ANGELICA|mdc1 --COMPUTACAO ALGEBRICA |MARIAANGELICA|lab2 ---

Quinta ----ESTAGIO|VITOR| ESTAGIO|VITOR|

Sexta

Figura 12: Indivduo C aps a troca das disciplinas iguais


Segunda I A|PEDRO PAULO |lab2 LINGUAGENS DE PROGRAMACAO|KATIA|lab1 ------Tera LINGUAGENS DE PROGRAMACAO|KATIA|lab2 I A|PEDRO PAULO |mdc2 ESTAGIO|VITOR| ESTAGIO|VITOR| Quarta ---Quinta COMPUTACAO ALGEBRICA MARIA ANGELICA|lab2 Sexta ---

------ESTAGIO|VITOR| ESTAGIO|VITOR|

Figura 13: Indivduo D aps a troca das disciplinas iguais

19

Agora, preenchemos o restante de cada indivduo, a partir do ponto inicial de cruzamento, com as disciplinas de cada lista que no foram selecionadas para o cruzamento.

Segunda LINGUAGENS DE PROGRAMACAO|KATIA|lab1 COMPUTACAO GRAFICA|ALAN|lab2

Tera I A|PEDRO PAULO |mdc1 ----

Quarta COMPUTACAO ALGEBRICA|MARIA ANGELICA|mdc1 --COMPUTACAO

Quinta

Sexta LINGUAGENS DE

---

PROGRAMACAO |KATIA|mdc2

---

I A|PEDRO PAULO |lab1

TCC|LYNEAR|

----

ALGEBRICA|MARIA ANGELICA|lab2

ESTAGIO|VITOR|

ESTAGIO|VITOR|

TCC|LYNEAR|

----

---

ESTAGIO|VITOR|

ESTAGIO|VITOR|

Figura 14: Indivduo C aps o cruzamento

Segunda

Tera LINGUAGENS DE PROGRAMACAO|KATIA|lab2

Quarta

Quinta COMPUTACAO

Sexta

I A|PEDRO PAULO |lab2

----

ALGEBRICA|MARIA ANGELICA|lab2 COMPUTACAO

---

LINGUAGENS DE PROGRAMACAO|KATIA|lab1 -------

I A|PEDRO PAULO |mdc2

---

ALGEBRICA|MARIA ANGELICA|lab1

COMPUTACAO GRAFICA|ALAN|mdc2 TCC|LYNEAR| TCC|LYNEAR|

ESTAGIO|VITOR| ESTAGIO|VITOR|

-----

ESTAGIO|VITOR| ESTAGIO|VITOR|

Figura 15: Indivduo D aps o cruzamento

Com isso, preenchemos os dois indivduos C (figura 14) e D (figura 15) de forma a se obter os mesmos, porm completos.

4.4.2 Cruzamento em dois Pontos

O processo de cruzamento em dois pontos idntico ao cruzamento anterior, diferindo somente pelo fato de que dois pontos so escolhidos para se dar o cruzamento. Sendo assim, o crossover se d da mesma forma ao cruzamento em um ponto, e exemplificado nas figuras 16 e 17 antes do cruzamento e pelas figuras 18 e 19 depois do cruzamento.

20

Segunda LINGUAGENS DE PROGRAMACAO|KATIA|lab1 COMPUTACAO GRAFICA|ALAN|lab2 TCC|LYNEAR| TCC|LYNEAR|

Tera I A|PEDRO PAULO |mdc1

Quarta COMPUTACAO ALGEBRICA|MARIA ANGELICA|mdc1 ----------

Quinta COMPUTACAO ALGEBRICA|MARIA ANGELICA|lab2 LINGUAGENS DE PROGRAMACAO|KATIA|mdc2 ESTAGIO|VITOR| ESTAGIO|VITOR|

Sexta

----

----------

I A|PEDRO PAULO |lab1 ESTAGIO|VITOR| ESTAGIO|VITOR|

Figura 16: Indivduo A para cruzamento em dois pontos

Segunda

Tera LINGUAGENS DE PROGRAMACAO|KATIA|lab2

Quarta

Quinta

Sexta COMPUTACAO

I A|PEDRO PAULO |lab2

----

----

ALGEBRICA|MARIA ANGELICA|lab1

LINGUAGENS DE PROGRAMACAO|KATIA|lab1

I A|PEDRO PAULO |mdc2

--COMPUTACAO

---

COMPUTACAO GRAFICA|ALAN|mdc2

----

ESTAGIO|VITOR|

ALGEBRICA|MARIA ESTAGIO|VITOR| ANGELICA|lab2

TCC|LYNEAR|

----

ESTAGIO|VITOR|

----

ESTAGIO|VITOR|

TCC|LYNEAR|

Figura 17: Indivduo B para cruzamento em dois pontos

Segunda LINGUAGENS DE PROGRAMACAO|KATIA|lab1 COMPUTACAO GRAFICA|ALAN|lab2

Tera I A|PEDRO PAULO |mdc1 ----

Quarta COMPUTACAO ALGEBRICA|MARIA ANGELICA|mdc1 ---COMPUTACAO

Quinta

Sexta LINGUAGENS DE

----

PROGRAMACAO |KATIA|mdc2

----

I A|PEDRO PAULO |lab1

TCC|LYNEAR|

----

ALGEBRICA|MARIA ANGELICA|lab2

ESTAGIO|VITOR|

ESTAGIO|VITOR|

TCC|LYNEAR|

----

----

ESTAGIO|VITOR|

ESTAGIO|VITOR|

Figura 18: Indivduo A depois do cruzamento em dois pontos

Segunda

Tera LINGUAGENS DE PROGRAMACAO|KATIA|lab2

Quarta

Quinta COMPUTACAO

Sexta

I A|PEDRO PAULO |lab2

----

ALGEBRICA|MARIA ANGELICA|lab2 COMPUTACAO

----

LINGUAGENS DE PROGRAMACAO|KATIA|lab1 -------

I A|PEDRO PAULO |mdc2

---

ALGEBRICA|MARIA ANGELICA|lab1

COMPUTACAO GRAFICA|ALAN|mdc2 TCC|LYNEAR| TCC|LYNEAR|

ESTAGIO|VITOR| ESTAGIO|VITOR|

-------

ESTAGIO|VITOR| ESTAGIO|VITOR|

Figura 19: Indivduo B depois do cruzamento em dois pontos

21

4.5

MUTAO

O operador de mutao consiste na escolha aleatria de duas posies de um indivduo de uma determinada turma e depois, da troca dessas posies. Essa forma de mutao feita, pois no podemos simplesmente selecionar uma posio e substituir a disciplina dessa posio, ou uma aula vaga, por outra disciplina qualquer, j que estaremos ferindo a carga horria de aulas j pr-determinada para essa turma. A figura 11 mostra o indivduo original A e os genes que foram escolhidos para mutao esto em evidncia. Aps a mutao obtivemos o indivduo B, representado na figura 12 com as posies dos genes escolhidos mudadas.

Segunda LINGUAGENS DE PROGRAMACAO|KATIA|lab1 COMPUTACAO GRAFICA|ALAN|lab2 TCC|LYNEAR| TCC|LYNEAR|

Tera I A|PEDRO PAULO |mdc1

Quarta COMPUTACAO ALGEBRICA|MARIA ANGELICA|mdc1 ----------

Quinta COMPUTACAO ALGEBRICA|MARIA ANGELICA|lab2 LINGUAGENS DE PROGRAMACAO|KATIA|mdc2 ESTAGIO|VITOR| ESTAGIO|VITOR|

Sexta

----

----------

I A|PEDRO PAULO |lab1 ESTAGIO|VITOR| ESTAGIO|VITOR|

Figura 19: Indivduo antes da mutao

Segunda LINGUAGENS DE PROGRAMACAO|KATIA|lab1

Tera I A|PEDRO PAULO |mdc1

Quarta COMPUTACAO ALGEBRICA|MARIA ANGELICA|mdc1

Quinta COMPUTACAO ALGEBRICA|MARIA ANGELICA|lab2 LINGUAGENS DE

Sexta

----

COMPUTACAO GRAFICA|ALAN|lab2 TCC|LYNEAR| TCC|LYNEAR|

----

----

PROGRAMACAO| KATIA|mdc2

----

-------

I A|PEDRO PAULO |lab1 ----

ESTAGIO|VITOR| ESTAGIO|VITOR|

ESTAGIO|VITOR| ESTAGIO|VITOR|

Figura 20: Indivduo aps a mutao

22

4.6

CRITRIO DE PARADA

O critrio a ser utilizado o nmero de geraes, pois a iterao do algoritmo atravs das geraes que produz uma melhora na soluo do problema. Outro critrio que pode ser utilizado o tempo de processamento do algoritmo, porm este determinado pela velocidade de processamento da mquina que estamos utilizando. Sendo assim, a melhor forma de se finalizar o algoritmo atravs de um determinado nmero de geraes decorridas.

23

CONCLUSO

Com o desenvolvimento desse trabalho, pde-se explorar o funcionamento da tcnica de otimizao heurstica - algoritmos genticos, assim como abordar sua utilizao para a resoluo de um problema real, que foi a construo de grade de horrios. Em vrios trabalhos pesquisados utilizada a seguinte abordagem: comparao de algoritmos genticos com outras tcnicas de otimizao. No se optou por essa mesma colocao, pois o enfoque do trabalho era primeiramente um estudo dos algoritmos genticos (populao, seleo, mutao, avaliao) de forma mais geral e depois, de forma mais especfica, a pesquisa do mesmo para a resoluo do Problema de Gerao de Horrios. Alm disso, esse trabalho serviu como base para a construo de um software de gerao de grade de horrios para o curso de Cincia da Computao da Universidade Estadual de Londrina. Como esse trabalho tratou somente o problema e para um determinado curso, pode-se ento estend-lo para diversos cursos.

24

REFERNCIAS

CISCON, L. A. O PROBLEMA DE GERAO DE HORRIOS: UM FOCO NA ELIMINAO DE JANELAS E AULAS ISOLADAS. Monografia (Graduao em Cincia da Computao) - Universidade Federal de Lavras, Lavras, 2006. Disponvel em: <http://www.comp.ufla.br/monografias/ano2005/O_problema_de_geracao_de_ horarios_um_foco_na_eliminacao_de_janelas_e_aulas_isoladas.pdf>. Acesso em: 11 julho 2007.

FANG, H. L. GENETIC ALGORITHMS IN TIMETABLING AND SCHEDULING. Tese de PhD, Universidade de Edimburgo, Edimburgo, 1994. Disponvel em: <http://www.cs.unr.edu/~sushil/class/gas/notes/papers/fang94genetic.ps.gz>. Acesso em: 14 julho 2007.

JNIOR, O. O. B. OTIMIZAO DE HORRIOS EM INSTITUIES DE ENSINO SUPERIOR ATRAVS DE ALGORITMOS GENTICOS. Dissertao (Mestrado em Engenharia de Produo) - Universidade Federal de Santa Catarina. Florianpolis, 2000. Disponvel em: <http://teses.eps.ufsc.br/defesa/pdf/3436.pdf>. Acesso em: 14 julho 2007.

LOBO, E. L. M. UMA SOLUO DO PROBLEMA DE HORRIO ESCOLAR VIA ALGORITMO GENTICO PARALELO. Dissertao (Mestrado em Modelagem Matemtica e Computacional) - Centro Federal de Educao Tecnolgica de Minas Gerais, Belo Horizonte, 2005. Disponvel em: <http://www.mmc.cefetmg.br/info/ downloads/D006-EduardoLuizMirandaLobo2005.pdf>. Acesso em: 12 setembro 2007.

OLIVEIRA, A. C. USO DO ALGORITMO GENTICO E RECOZIMENTO SIMULADO PARA O PROBLEMA DE ALOCAO DE SALAS. Monografia (Graduao em Cincia da Computao) Universidade Federal de Lavras, Lavras, 2006.

25

PIRES, L. A. ALGORITMO GENTICO APLICADO NA LOCALIZAO DE ESCOLAS DO MUNICPIO DE CORONEL VIVIDA PR. Dissertao (Mestrado em Programao Matemtica) - Universidade Federal do Paran, Curitiba, 2002. Disponvel em: <http://ppgmne.cesec.ufpr.br/dissertacoes/liceia.pdf>. Acesso em: 16 junho 2007.

SOARES, J. A. A MQUINA DE BOLTZMANN NA SOLUO DO PROBLEMA DE TIMETABLING. Tese (Doutorado em Engenharia de Sistemas e Computao) Universidade Federal do Rio de Janeiro, Rio de Janeiro, 2002. Disponvel em: <http://www.jsoares.net/artigos/eqJAS.pdf>. Acessado em: 10 agosto 2007.

SOUSA, V. N. PROGRAMAO DA GRADE DE HORRIO EM ESCOLAS DE ENSINO FUNDAMENTAL E MDIO. Dissertao (Mestrado em Matemtica Aplicada) - Universidade Estadual de Campinas, Campinas, 2006. Disponvel em: <http://libdigi.unicamp.br/document/?code=vtls000382790>. Acesso em: 10 agosto 2007.

TIMTEO, G. T. S. DESENVOLVIMENTO DE UM ALGORITMO GENTICO PARA RESOLUO DO TIMETABLING. Monografia (Graduao em Cincia da Computao) - Universidade Federal de Lavras, Lavras, 2002. Disponvel em: <http://www.comp.ufla.br/monografias/ano2001/Desenvolvimento_de_um_algoritmo_ genetico_para_a_resolucao_do_timetabling.pdf>. Acesso em: 11 julho 2007.

WREN, 1996 apud OLIVEIRA, A. C. USO DO ALGORITMO GENTICO E RECOZIMENTO SIMULADO PARA O PROBLEMA DE ALOCAO DE SALAS. Monografia (Graduao em Cincia da Computao) - Universidade Federal de Lavras, Lavras, 2006. Disponvel em:

<http://www.comp.ufla.br/monografias/ano2005/Uso_do_algoritmo_genetico_e_ recozimento_simulado_para_o_problema_de_alocacao_de_salas.pdf>. Acesso em: 11 julho 2007.

S-ar putea să vă placă și