Estou trabalhando em um mundo real de gerenciamento de eventosapplicationwhere Eventos são agendados com base na disponibilidade do local do evento, nenhum dos eventos deve entrar em conflito. Qual é a melhor possibilidade de inserir o próximo valor.
Exemplo: Suponha que o Evento 1 esteja acontecendo entre 9 e 9:30 na Sala A O evento 2 acontece das 9h às 10h na sala B Event3 pode começar às 9:30 no quarto A desde a sua livre após 9:30 n assim por diante ......
Qual algoritmo posso usar?
Nota: Isto não é um algoritmo de escalonamento de CPU
Obrigado :)
Respostas:
3 para resposta № 1Eu iria com uma abordagem gananciosa.
- Classifique todos os eventos de acordo com a hora de início
- Para cada local:
- T = tempo mais cedo
- Encontre o primeiro evento em ou após T e agende-o para este local. Remova esse evento da lista.
- Atualize T para finalizar este evento
Depois que isso for concluído, você poderá usar algum tipo de pesquisa local (simulated annealing based) para otimizar ainda mais a atribuição.