SlideShare uma empresa Scribd logo
1 de 15
Baixar para ler offline
Universidade Federal de Sergipe
Departamento de Computação
Iniciação Científica




    Serviços Web para Geração Otimizada da
           Grade de Horários de Disciplinas


Felipe J. R. Vieira




             Última atualização em maio de 2010
Timetabling



       O problema de timetabling consiste em agendar uma sequência de encontros
(aulas, exames, bancas, palestras ou outro tipo de atividade escolar) entre
professores e estudantes em um período de tempo prefixado satisfazendo um
conjunto de restrições de vários tipos.
                                                               Paim & Greis, 2008




                         PSA - Portal de Serviços Acadêmicos                   2
Hard Constraints


   ➢
       Todas as disciplinas ofertadas devem preencher o número de horas por

   semana estabelecidos pela estrutura curricular.

   ➢
       O professor não pode lecionar em duas turmas diferentes em um mesmo

   dia e horário.

   ➢
       As aulas de uma mesma turma não devem estar no mesmo dia e horário.

   ➢
       Todas as disciplinas obrigatórias do período vigente devem ser ofertadas.

   ➢
       A oferta de disciplinas deve obedecer o turno dos cursos.




                         PSA - Portal de Serviços Acadêmicos                       3
Soft Constraints
   ➢
       Atender a opção do professor:
       •    Em optar concentrar ou não suas aulas no mesmo dia.
       •
            Em optar por concentrar ou não suas aulas em horários consecutivos.
       •
            Em preferir lecionar matérias de seu interesse.
       •    Em sugerir seus horários disponíveis.

   ➢
       Todas as aulas de uma turma devem ser ofertadas, de preferência, no

   mesmo horário e no mesmo turno, nesta ordem.

   ➢
           Aulas de uma mesma turma não devem ser ofertadas em dias

   consecutivos, nem em horários seguidos.

   ➢
       Disciplinas que são pré-requisitos de outras, devem ser alocadas no

   mesmo horário.



                             PSA - Portal de Serviços Acadêmicos                  4
Estrutura da Solução Proposta




            PSA - Portal de Serviços Acadêmicos   5
Estrutura da Solução Proposta




            PSA - Portal de Serviços Acadêmicos   6
Algoritmos Genéticos



      Os algoritmos genéticos tem como fundamento básico aplicar o processo de
evolução natural como um paradigma de solução de problemas, a partir de sua
implementação em computador.
                                                                  Zuben, 2000




                      PSA - Portal de Serviços Acadêmicos                   7
Algoritmos Genéticos
                     População Inicial



                  Avaliação da População



                   Critério de Término



                       Reprodução



                         Mutação



                       Substituição



            PSA - Portal de Serviços Acadêmicos   8
Algoritmos Genéticos


                                             •
                                                 Coluna: Horário da aula em

                                             blocos de 2h.
               0   1    ...   38   39
 SI – 1º Per                                 ➢
                                                 Linha: Curso/Período ao qual a
 SI – 2º Per
                                             disciplina foi ofertada.
 CC – 2º Per
 CC – 3º Per                                 ➢
                                                 Célula: Turma em um
 EC – 1º Per
                                             determinado horário de um

                                             respectivo curso/período




                       PSA - Portal de Serviços Acadêmicos                        9
Estrutura da Solução Proposta




            PSA - Portal de Serviços Acadêmicos   10
Satisfação de Restrições



      É definido por um conjunto de variáveis e por um conjunto de restrições.
Cada variável tem um domínio não-vazio de valores possíveis. Cada restrição envolve
algum subconjunto das variáveis e especifica as combinações de valores permitidas
para aquele subconjunto.
                                                              Russel & Norvig, 2003




                        PSA - Portal de Serviços Acadêmicos                      11
Satisfação de Restrições


                                  ➢
                                      Variáveis: WA, NT, Q, NSW, V,

                                  SA, T.

                                  ➢
                                      Domínio: {red, green, blue}.

                                  ➢
                                      Restrições: Regiões adjacentes

                                  devem possuir cores diferentes




            PSA - Portal de Serviços Acadêmicos                        12
Satisfação de Restrições




            PSA - Portal de Serviços Acadêmicos   13
Considerações



   ➢
       Dificuldades na modelagem do problema;

   ➢
       Seleção de restrições que serão atendidas;

   ➢
       Definição da melhor solução;

   ➢
       Necessidade de supervisão humana;

   ➢
       Melhoria da utilização de recursos e rendimento dos cursos.




                         PSA - Portal de Serviços Acadêmicos         14
Obrigado!




    ?                     ➢




                          ➢




                          ➢
                              Site: www.felipejrvieira.com.br

                              Twitter: www.twitter.com/felipejrvieira

                              E-mail: felipejrvieira@yahoo.com.br




            PSA - Portal de Serviços Acadêmicos                         15

Mais conteúdo relacionado

Mais de Felipe J. R. Vieira

MC - Aula 06 - Placa Mãe, E-S e Outras Informações
MC - Aula 06 - Placa Mãe, E-S e Outras InformaçõesMC - Aula 06 - Placa Mãe, E-S e Outras Informações
MC - Aula 06 - Placa Mãe, E-S e Outras InformaçõesFelipe J. R. Vieira
 
ICC – Aula 09 – Estrutura de Repetição
ICC – Aula 09 – Estrutura de RepetiçãoICC – Aula 09 – Estrutura de Repetição
ICC – Aula 09 – Estrutura de RepetiçãoFelipe J. R. Vieira
 
MC - Aula 05 - Memória e Dispositivos de Armazenamento
MC - Aula 05 - Memória e Dispositivos de ArmazenamentoMC - Aula 05 - Memória e Dispositivos de Armazenamento
MC - Aula 05 - Memória e Dispositivos de ArmazenamentoFelipe J. R. Vieira
 
POO - Aula 06 - Modificadores de Acesso
POO - Aula 06 - Modificadores de AcessoPOO - Aula 06 - Modificadores de Acesso
POO - Aula 06 - Modificadores de AcessoFelipe J. R. Vieira
 
POO - Aula 07 - Construtores e Atributos de Classe
POO - Aula 07 - Construtores e Atributos de ClassePOO - Aula 07 - Construtores e Atributos de Classe
POO - Aula 07 - Construtores e Atributos de ClasseFelipe J. R. Vieira
 
ICC – Aula 07 – Condicional Múltipla
ICC – Aula 07 – Condicional MúltiplaICC – Aula 07 – Condicional Múltipla
ICC – Aula 07 – Condicional MúltiplaFelipe J. R. Vieira
 
POO - Aula 05 - Referências e Vetores
POO - Aula 05 - Referências e VetoresPOO - Aula 05 - Referências e Vetores
POO - Aula 05 - Referências e VetoresFelipe J. R. Vieira
 
MC – Aula 04 – Unidade central de processamento e Memória
MC – Aula 04 – Unidade central de processamento e MemóriaMC – Aula 04 – Unidade central de processamento e Memória
MC – Aula 04 – Unidade central de processamento e MemóriaFelipe J. R. Vieira
 
ICC - Aula 05 - Estrutura de controle, sequencial e condicional
ICC - Aula 05 - Estrutura de controle, sequencial e condicionalICC - Aula 05 - Estrutura de controle, sequencial e condicional
ICC - Aula 05 - Estrutura de controle, sequencial e condicionalFelipe J. R. Vieira
 
POO - Aula 04 - Introdução a classes e objetos
POO - Aula 04 - Introdução a classes e objetosPOO - Aula 04 - Introdução a classes e objetos
POO - Aula 04 - Introdução a classes e objetosFelipe J. R. Vieira
 
ICC - Aula 04 - Expressões literais, comando de atribuição e de entrada/saída
ICC - Aula 04 - Expressões literais, comando de atribuição e de entrada/saídaICC - Aula 04 - Expressões literais, comando de atribuição e de entrada/saída
ICC - Aula 04 - Expressões literais, comando de atribuição e de entrada/saídaFelipe J. R. Vieira
 
MC - Aula 03 - Conceitos Iniciais
MC - Aula 03 -  Conceitos IniciaisMC - Aula 03 -  Conceitos Iniciais
MC - Aula 03 - Conceitos IniciaisFelipe J. R. Vieira
 
POO - Aula 02 - Fatores de Qualidade de Software e Introdução ao Java
POO - Aula 02 -  Fatores de Qualidade de Software e Introdução ao JavaPOO - Aula 02 -  Fatores de Qualidade de Software e Introdução ao Java
POO - Aula 02 - Fatores de Qualidade de Software e Introdução ao JavaFelipe J. R. Vieira
 
ICC - Aula 03 - Expressões aritméticas, lógicas e prioridade
ICC - Aula 03 - Expressões aritméticas, lógicas e prioridadeICC - Aula 03 - Expressões aritméticas, lógicas e prioridade
ICC - Aula 03 - Expressões aritméticas, lógicas e prioridadeFelipe J. R. Vieira
 
MC - Aula 02 - Histórico da Computação
MC - Aula 02 - Histórico da ComputaçãoMC - Aula 02 - Histórico da Computação
MC - Aula 02 - Histórico da ComputaçãoFelipe J. R. Vieira
 
ICC - Aula 02 - Algoritmo estruturado, constantes, variáveis e comentários
ICC - Aula 02 - Algoritmo estruturado, constantes, variáveis e comentáriosICC - Aula 02 - Algoritmo estruturado, constantes, variáveis e comentários
ICC - Aula 02 - Algoritmo estruturado, constantes, variáveis e comentáriosFelipe J. R. Vieira
 
POO – Aula 01 – Plano de Ensino e Revisão de Programação Imperativa
POO – Aula 01 – Plano de Ensino e Revisão de Programação ImperativaPOO – Aula 01 – Plano de Ensino e Revisão de Programação Imperativa
POO – Aula 01 – Plano de Ensino e Revisão de Programação ImperativaFelipe J. R. Vieira
 
MC - Aula 01 - Plano de Ensino e Histórico da Computação
MC - Aula 01 - Plano de Ensino e Histórico da ComputaçãoMC - Aula 01 - Plano de Ensino e Histórico da Computação
MC - Aula 01 - Plano de Ensino e Histórico da ComputaçãoFelipe J. R. Vieira
 
ICC - Aula 01 - Plano de Ensino e Processamento de Dados
ICC - Aula 01 - Plano de Ensino e Processamento de DadosICC - Aula 01 - Plano de Ensino e Processamento de Dados
ICC - Aula 01 - Plano de Ensino e Processamento de DadosFelipe J. R. Vieira
 

Mais de Felipe J. R. Vieira (20)

MC - Aula 06 - Placa Mãe, E-S e Outras Informações
MC - Aula 06 - Placa Mãe, E-S e Outras InformaçõesMC - Aula 06 - Placa Mãe, E-S e Outras Informações
MC - Aula 06 - Placa Mãe, E-S e Outras Informações
 
ICC – Aula 09 – Estrutura de Repetição
ICC – Aula 09 – Estrutura de RepetiçãoICC – Aula 09 – Estrutura de Repetição
ICC – Aula 09 – Estrutura de Repetição
 
MC - Aula 05 - Memória e Dispositivos de Armazenamento
MC - Aula 05 - Memória e Dispositivos de ArmazenamentoMC - Aula 05 - Memória e Dispositivos de Armazenamento
MC - Aula 05 - Memória e Dispositivos de Armazenamento
 
POO - Aula 06 - Modificadores de Acesso
POO - Aula 06 - Modificadores de AcessoPOO - Aula 06 - Modificadores de Acesso
POO - Aula 06 - Modificadores de Acesso
 
POO - Aula 07 - Construtores e Atributos de Classe
POO - Aula 07 - Construtores e Atributos de ClassePOO - Aula 07 - Construtores e Atributos de Classe
POO - Aula 07 - Construtores e Atributos de Classe
 
ICC – Aula 07 – Condicional Múltipla
ICC – Aula 07 – Condicional MúltiplaICC – Aula 07 – Condicional Múltipla
ICC – Aula 07 – Condicional Múltipla
 
POO - Aula 05 - Referências e Vetores
POO - Aula 05 - Referências e VetoresPOO - Aula 05 - Referências e Vetores
POO - Aula 05 - Referências e Vetores
 
MC – Aula 04 – Unidade central de processamento e Memória
MC – Aula 04 – Unidade central de processamento e MemóriaMC – Aula 04 – Unidade central de processamento e Memória
MC – Aula 04 – Unidade central de processamento e Memória
 
ICC - Aula 05 - Estrutura de controle, sequencial e condicional
ICC - Aula 05 - Estrutura de controle, sequencial e condicionalICC - Aula 05 - Estrutura de controle, sequencial e condicional
ICC - Aula 05 - Estrutura de controle, sequencial e condicional
 
POO - Aula 04 - Introdução a classes e objetos
POO - Aula 04 - Introdução a classes e objetosPOO - Aula 04 - Introdução a classes e objetos
POO - Aula 04 - Introdução a classes e objetos
 
ICC - Aula 04 - Expressões literais, comando de atribuição e de entrada/saída
ICC - Aula 04 - Expressões literais, comando de atribuição e de entrada/saídaICC - Aula 04 - Expressões literais, comando de atribuição e de entrada/saída
ICC - Aula 04 - Expressões literais, comando de atribuição e de entrada/saída
 
MC - Aula 03 - Conceitos Iniciais
MC - Aula 03 -  Conceitos IniciaisMC - Aula 03 -  Conceitos Iniciais
MC - Aula 03 - Conceitos Iniciais
 
POO - Aula 02 - Fatores de Qualidade de Software e Introdução ao Java
POO - Aula 02 -  Fatores de Qualidade de Software e Introdução ao JavaPOO - Aula 02 -  Fatores de Qualidade de Software e Introdução ao Java
POO - Aula 02 - Fatores de Qualidade de Software e Introdução ao Java
 
ICC - Aula 03 - Expressões aritméticas, lógicas e prioridade
ICC - Aula 03 - Expressões aritméticas, lógicas e prioridadeICC - Aula 03 - Expressões aritméticas, lógicas e prioridade
ICC - Aula 03 - Expressões aritméticas, lógicas e prioridade
 
MC - Aula 02 - Histórico da Computação
MC - Aula 02 - Histórico da ComputaçãoMC - Aula 02 - Histórico da Computação
MC - Aula 02 - Histórico da Computação
 
ICC - Aula 02 - Algoritmo estruturado, constantes, variáveis e comentários
ICC - Aula 02 - Algoritmo estruturado, constantes, variáveis e comentáriosICC - Aula 02 - Algoritmo estruturado, constantes, variáveis e comentários
ICC - Aula 02 - Algoritmo estruturado, constantes, variáveis e comentários
 
POO – Aula 01 – Plano de Ensino e Revisão de Programação Imperativa
POO – Aula 01 – Plano de Ensino e Revisão de Programação ImperativaPOO – Aula 01 – Plano de Ensino e Revisão de Programação Imperativa
POO – Aula 01 – Plano de Ensino e Revisão de Programação Imperativa
 
MC - Aula 01 - Plano de Ensino e Histórico da Computação
MC - Aula 01 - Plano de Ensino e Histórico da ComputaçãoMC - Aula 01 - Plano de Ensino e Histórico da Computação
MC - Aula 01 - Plano de Ensino e Histórico da Computação
 
ICC - Aula 01 - Plano de Ensino e Processamento de Dados
ICC - Aula 01 - Plano de Ensino e Processamento de DadosICC - Aula 01 - Plano de Ensino e Processamento de Dados
ICC - Aula 01 - Plano de Ensino e Processamento de Dados
 
Tutorial do dica
Tutorial do dicaTutorial do dica
Tutorial do dica
 

Gerador de grade horária usando algoritmos genéticos

  • 1. Universidade Federal de Sergipe Departamento de Computação Iniciação Científica Serviços Web para Geração Otimizada da Grade de Horários de Disciplinas Felipe J. R. Vieira Última atualização em maio de 2010
  • 2. Timetabling O problema de timetabling consiste em agendar uma sequência de encontros (aulas, exames, bancas, palestras ou outro tipo de atividade escolar) entre professores e estudantes em um período de tempo prefixado satisfazendo um conjunto de restrições de vários tipos. Paim & Greis, 2008 PSA - Portal de Serviços Acadêmicos 2
  • 3. Hard Constraints ➢ Todas as disciplinas ofertadas devem preencher o número de horas por semana estabelecidos pela estrutura curricular. ➢ O professor não pode lecionar em duas turmas diferentes em um mesmo dia e horário. ➢ As aulas de uma mesma turma não devem estar no mesmo dia e horário. ➢ Todas as disciplinas obrigatórias do período vigente devem ser ofertadas. ➢ A oferta de disciplinas deve obedecer o turno dos cursos. PSA - Portal de Serviços Acadêmicos 3
  • 4. Soft Constraints ➢ Atender a opção do professor: • Em optar concentrar ou não suas aulas no mesmo dia. • Em optar por concentrar ou não suas aulas em horários consecutivos. • Em preferir lecionar matérias de seu interesse. • Em sugerir seus horários disponíveis. ➢ Todas as aulas de uma turma devem ser ofertadas, de preferência, no mesmo horário e no mesmo turno, nesta ordem. ➢ Aulas de uma mesma turma não devem ser ofertadas em dias consecutivos, nem em horários seguidos. ➢ Disciplinas que são pré-requisitos de outras, devem ser alocadas no mesmo horário. PSA - Portal de Serviços Acadêmicos 4
  • 5. Estrutura da Solução Proposta PSA - Portal de Serviços Acadêmicos 5
  • 6. Estrutura da Solução Proposta PSA - Portal de Serviços Acadêmicos 6
  • 7. Algoritmos Genéticos Os algoritmos genéticos tem como fundamento básico aplicar o processo de evolução natural como um paradigma de solução de problemas, a partir de sua implementação em computador. Zuben, 2000 PSA - Portal de Serviços Acadêmicos 7
  • 8. Algoritmos Genéticos População Inicial Avaliação da População Critério de Término Reprodução Mutação Substituição PSA - Portal de Serviços Acadêmicos 8
  • 9. Algoritmos Genéticos • Coluna: Horário da aula em blocos de 2h. 0 1 ... 38 39 SI – 1º Per ➢ Linha: Curso/Período ao qual a SI – 2º Per disciplina foi ofertada. CC – 2º Per CC – 3º Per ➢ Célula: Turma em um EC – 1º Per determinado horário de um respectivo curso/período PSA - Portal de Serviços Acadêmicos 9
  • 10. Estrutura da Solução Proposta PSA - Portal de Serviços Acadêmicos 10
  • 11. Satisfação de Restrições É definido por um conjunto de variáveis e por um conjunto de restrições. Cada variável tem um domínio não-vazio de valores possíveis. Cada restrição envolve algum subconjunto das variáveis e especifica as combinações de valores permitidas para aquele subconjunto. Russel & Norvig, 2003 PSA - Portal de Serviços Acadêmicos 11
  • 12. Satisfação de Restrições ➢ Variáveis: WA, NT, Q, NSW, V, SA, T. ➢ Domínio: {red, green, blue}. ➢ Restrições: Regiões adjacentes devem possuir cores diferentes PSA - Portal de Serviços Acadêmicos 12
  • 13. Satisfação de Restrições PSA - Portal de Serviços Acadêmicos 13
  • 14. Considerações ➢ Dificuldades na modelagem do problema; ➢ Seleção de restrições que serão atendidas; ➢ Definição da melhor solução; ➢ Necessidade de supervisão humana; ➢ Melhoria da utilização de recursos e rendimento dos cursos. PSA - Portal de Serviços Acadêmicos 14
  • 15. Obrigado! ? ➢ ➢ ➢ Site: www.felipejrvieira.com.br Twitter: www.twitter.com/felipejrvieira E-mail: felipejrvieira@yahoo.com.br PSA - Portal de Serviços Acadêmicos 15