Como fazer um cronograma
Uma pessoa precisa explorar todas as combinações possíveis para encontrar a lista de
soluções aceitáveis. Devido às variações nas circunstâncias em que o problema aparece em várias escolas (por exemplo: Existem
constraints em relação às salas de aula? Ou algumas das classes estão divididas
em subgrupos em parte do tempo? É um horário semanal? etc.) lá
isn't uma classe problemática bem conhecida que corresponde a todos os horários
problemas. Talvez, o problema da Knapsack tenha muitos elementos de semelhança com estes problemas em geral.
A confirmação de que este é um problema difícil e para o qual as pessoas perenemente procuram uma solução, é verificar esta (longa) lista de ferramentas de agendamento de software (na sua maioria comerciais).
Por causa do grande número de variáveis envolvidas, a maior fonte
das quais são, tipicamente, os desejos do docente's, é
tipicamente impraticável considerar a enumeração de todas as combinações possíveis. Ao invés disso, precisamos escolher uma abordagem que visite um subconjunto dos espaços problema/solução.
- Algoritmos Genéticos, citados em outra resposta está bem equipada para realizar este tipo de busca semi-guiada (O problema é encontrar uma boa função de avaliação para os candidatos a serem mantidos para a próxima geração).
- As abordagens de reescrita gráfica também são úteis com este tipo de problemas de otimização combinatória.
P>Mais do que focar em implementações particulares de um programa gerador automático de horários, I'gostaria de sugerir algumas estratégias que podem ser aplicadas, ao nível da definição do problema.
>br>A lógica geral é que na maioria dos problemas de agendamento do mundo real,
alguns compromissos serão necessários, nem todos os constrangimentos, expressos e
implicados: serão plenamente satisfeitos. Por isso, nós nos ajudamos por:
computadas. Isso é freqüentemente associado à escolha do modelo de dados usado
para representar o problema; a idéia é ser capaz de rapidamente optar por (ou
prune-out) algumas das opções.Redefinir o problema e permitir que algumas das restrições sejam
quebradas, algumas vezes, (tipicamente em direção aos nós finais do gráfico).
A ideia aqui é ou remover algumas das restrições para
filling- nos últimos slots da agenda, ou ter o programa automático
schedule generator stop tímido de completar toda a agenda,
em vez disso fornecendo-nos uma lista de uma dúzia de candidatos plausíveis.
Um humano está frequentemente em melhor posição para completar o puzzle, como
indicado, possivelmente quebrando alguns dos contraints, usando informação
que não é tipicamente partilhada com a lógica automatizada.
Source: Ansver do Algoritmo para criar um horário escolar com um par de correções gramaticais.
Artigos semelhantes
- Como fazer o download do aplicativo Alexa? Como faço para fazer o echo setup e a aplicação do Amazon Alexa
- Quero fazer uma série de podcasts que conte uma história como "Welcome to Night Vale". Como posso fazer isto?
- Quão difícil seria fazer um jogo para celular como o BitLife, e como eu o colocaria na loja de aplicativos depois de fazer isso?
- Como fazer animações 2D visualmente apelativas sem fazer frame a frame