На работе нам задан набор ограничений формы (имя задачи, частота), где частота является целым числом, что означает количество тиков между каждым вызовом задачи «имя задачи». Две задачи не могут выполняться одновременно, и для каждого вызова задачи требуется один галочка. Наша цель - найти наилучшее расписание с точки зрения соответствия набора ограничений.Предварительные задачи повторных задач
Например, если нам даны ограничения {(a, 2), (b, 2)}, наилучшим графиком является «ab ab ab ...» С другой стороны, если нам даны ограничения ({a, 2}, {b, 5}, {c, 5}) наилучшим графиком является, вероятно, «abaca abaca abaca ...»
В настоящее время мы находим лучшее расписание, запустив генетический алгоритм, который пытается минимизировать расстояние между фактическими частотами и заданными ограничениями. Это действительно работает очень хорошо, но мне интересно, есть ли какой-то алгоритм, который лучше подходит для этой проблемы. Я пытался искать в Google, но я, кажется, не хватает нужных слов (планирование, как правило, о завершении задания :(). Можете ли вы помочь?
Да, период - это правильный термин. Это хорошая идея, но у меня есть привилегия предопределять расписание в автономном режиме, в то время как взвешенная очередь выглядит жадным онлайн-алгоритмом. – r0u1i
Задание графика предполагает, что вы придете к шаблону планирования, который будет применяться повторно (и неопределенно). Это звучит как проблема теории чисел и интуитивно, я не уверен, что существует обоснованное решение для общего случая (но это только мое чувство кишки). Например. его непонятно, существует ли конечная картина (произвольной длины), которая является, по-видимому, лучшим решением. Несмотря на это, вы можете применить набор жадных алгоритмов в симуляции (ala your GA) и прийти к лучшему решению. – alphazero