2009-10-29 2 views
1

На работе нам задан набор ограничений формы (имя задачи, частота), где частота является целым числом, что означает количество тиков между каждым вызовом задачи «имя задачи». Две задачи не могут выполняться одновременно, и для каждого вызова задачи требуется один галочка. Наша цель - найти наилучшее расписание с точки зрения соответствия набора ограничений.Предварительные задачи повторных задач

Например, если нам даны ограничения {(a, 2), (b, 2)}, наилучшим графиком является «ab ab ab ...» С другой стороны, если нам даны ограничения ({a, 2}, {b, 5}, {c, 5}) наилучшим графиком является, вероятно, «abaca abaca abaca ...»

В настоящее время мы находим лучшее расписание, запустив генетический алгоритм, который пытается минимизировать расстояние между фактическими частотами и заданными ограничениями. Это действительно работает очень хорошо, но мне интересно, есть ли какой-то алгоритм, который лучше подходит для этой проблемы. Я пытался искать в Google, но я, кажется, не хватает нужных слов (планирование, как правило, о завершении задания :(). Можете ли вы помочь?

ответ

1

Во-первых, рассмотрим достоинства комментарий jldupont в! :)

Во-вторых, я думаю, что «период» - точное описание второго элемента кортежа, например {Name, Period [icity]}.

Сказанное относится к сетевым алгоритмам. Some variant of weighted queuing, вероятно, применим здесь.

Например, при задании N задач создайте N очередей, соответствующих задачам T0...Tn, и в каждом цикле («галочка») на основе периода задания очереди в соответствующую очередь.

Алгоритм планировщика затем будет нацелен на минимизацию (в среднем) общего количества официантов в очередях. Простой отправной точкой будет просто удаление из quene Qx, у которого наибольшее количество элементов. (Параметр для поставленного в очередь пункта, указывающий «возраст», будет способствовать определению приоритетов.)

+0

Да, период - это правильный термин. Это хорошая идея, но у меня есть привилегия предопределять расписание в автономном режиме, в то время как взвешенная очередь выглядит жадным онлайн-алгоритмом. – r0u1i

+0

Задание графика предполагает, что вы придете к шаблону планирования, который будет применяться повторно (и неопределенно). Это звучит как проблема теории чисел и интуитивно, я не уверен, что существует обоснованное решение для общего случая (но это только мое чувство кишки). Например. его непонятно, существует ли конечная картина (произвольной длины), которая является, по-видимому, лучшим решением. Несмотря на это, вы можете применить набор жадных алгоритмов в симуляции (ala your GA) и прийти к лучшему решению. – alphazero

Смежные вопросы