Sobre complexidade na geração da tabela de horários

Started by João, April 15, 2013, 03:36:17 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

João

Saudações!

Sou professor assistente e tentei gerar uma grade de horários com 175 aulas (ou atividades), 7 turmas, 12 professores, restrição (0 <zero>) para máximo de intervalos por dia entre os professores, além das restrições padrões de horários de disponibilidade dos docentes (dia em que os professores não estão disponíveis). Infelizmente a complexidade foi grande e o programa gastou muito mais tempo do que eu pensava e ainda assim não conseguiu realizar a tarefa: deixei rodando por 4 horas e 20 minutos em uma tentativa. Das 175 atividades, o programa conseguiu uma máximo de 171 alocações de atividades.

Segui o conselho da ajuda no que diz respeito a parar de rodar e fazer novas tentativas quando as alocações de atividades ficam regredindo muito da quantidade máxima de atividades alocadas. Das dezenas de tentativas nenhuma obteve sucesso.

Entretanto consegui realizar a tarefa com 171 atividades porém sem a restrição para o máximo de intervalos por dia entre os professores. Gostaria de saber se existe alguma maneira de diminuir a complexidade a partir do cadastro de atividades ou utilizar uma estratégia diferente.

O arquivo, para alguém que tiver interesse de ver como eu organizei os cadastros e verificar algum(ns) possível(is) erro(s), pode ser baixado pelo 4shared clicando aqui.

Utilizo o FET no sistema operacional windows.

Até breve!

Matsumoto

João,

Pelo que parece você não tem professores suficientes disponíveis em um mesmo horário, por exemplo, como são 7 turmas, você precisa de no mínimo 7 professores disponíveis à todo instante. Uma vez fui montar um horário e ainda assim com isto verificado tive problemas, o que deu foi mudar a disponibilidade do professor, de segunda para quarta (no horário em que eu trabalhei).

Verificarei em alguns dias o arquivo que mandou e voltarei aqui para dar melhores comentários, enquanto isso, a sugestão que deixo é experimentar variar as disponibilidades dos professores, e anotar o que possa solucionar e apresentar como pedido, às vezes podemos trocar um dia se conversarmos bem. Professores sabem que horário é um item tumultuado de se fazer.

Grande abraço,
GuilhermeMat

Quote from: João on April 15, 2013, 03:36:17 AM
Saudações!

Sou professor assistente e tentei gerar uma grade de horários com 175 aulas (ou atividades), 7 turmas, 12 professores, restrição (0 <zero>) para máximo de intervalos por dia entre os professores, além das restrições padrões de horários de disponibilidade dos docentes (dia em que os professores não estão disponíveis). Infelizmente a complexidade foi grande e o programa gastou muito mais tempo do que eu pensava e ainda assim não conseguiu realizar a tarefa: deixei rodando por 4 horas e 20 minutos em uma tentativa. Das 175 atividades, o programa conseguiu uma máximo de 171 alocações de atividades.

Segui o conselho da ajuda no que diz respeito a parar de rodar e fazer novas tentativas quando as alocações de atividades ficam regredindo muito da quantidade máxima de atividades alocadas. Das dezenas de tentativas nenhuma obteve sucesso.

Entretanto consegui realizar a tarefa com 171 atividades porém sem a restrição para o máximo de intervalos por dia entre os professores. Gostaria de saber se existe alguma maneira de diminuir a complexidade a partir do cadastro de atividades ou utilizar uma estratégia diferente.

O arquivo, para alguém que tiver interesse de ver como eu organizei os cadastros e verificar algum(ns) possível(is) erro(s), pode ser baixado pelo 4shared clicando aqui.

Utilizo o FET no sistema operacional windows.

Até breve!
Addicted to Timetables, Mathematics, Coffee and Cute Things!

khemis

GiulhermeMat tem razão.
Para resolver o horário, uma solução é liberar João nas segundas e também liberar Ana Valéria na primeira aula de segunda, terça e sexta.
Embora tenha passado anos, respondo essa mensagem para quem desejar, assim como eu, estudar problemas que surgem na resolução de horários.