Jump to content

Измененная эвристика планирования сроков выполнения

Эвристика планирования модифицированного срока выполнения (MDD) — это жадная эвристика, используемая для решения проблемы общего взвешенного опоздания для одной машины (SMTWTP).

Презентация

[ редактировать ]

Модифицированное планирование сроков выполнения — это эвристика планирования, разработанная в 1982 году Бейкером и Бертраном. [1] используется для решения NP-трудной задачи об опоздании одной машины с общим взвешиванием. Эта проблема сосредоточена на уменьшении глобальной задержки списка задач, которые характеризуются временем обработки, сроком выполнения и весом, путем их изменения порядка.

Алгоритм

[ редактировать ]

Эта эвристика работает так же, как и другие жадные алгоритмы. На каждой итерации он находит следующее задание для планирования и добавляет его в список. Эта операция повторяется до тех пор, пока не останется незапланированных заданий. MDD аналогичен эвристике самого раннего срока выполнения (EDD), за исключением того, что MDD учитывает частичную последовательность уже созданных заданий, тогда как EDD учитывает только сроки выполнения заданий.

Выполнение

[ редактировать ]

Вот реализация алгоритма MDD в псевдокоде. Он принимает несортированный список задач и возвращает список, отсортированный по увеличению измененного срока выполнения:

function mdd(processed, task)
    return max(processed + task.processTime, task.dueDate)
  
function mddSort(tasks)
    unsortedTasks = copy(tasks)
    sortedTasks = list
    processed = 0
    while unsortedTasks is not empty
        bestTask = unsortedTasks.getFirst()
        bestMdd = mdd(processed, bestTask)
        for task in unsortedTasks
            mdd = mdd(processed, task)
            if mdd < bestMdd then
                bestMdd = mdd
                bestTask = task
        sortedTasks.pushBack(bestTask)
        unsortedTasks.remove(bestTask)
        processed += bestTask.processTime
    return sortedTasks

Практический пример

[ редактировать ]

В этом примере мы запланируем вылеты рейсов. Каждый полет характеризуется:

  • Срок выполнения: время, после которого самолет должен взлететь.
  • время обработки: количество времени, необходимое самолету для взлета.
  • вес: произвольное значение, определяющее приоритет полета.

Нам нужно найти команду на вылет, которая приведет к наименьшему общему взвешенному опозданию. В этом примере мы будем использовать следующие значения:

Расписание рейсов
Две даты Время обработки Масса
1 12 8 2
2 18 9 5
3 10 5 2
4 14 6 8

В порядке по умолчанию общее взвешенное опоздание равно 136.

Первым шагом является вычисление измененной даты выполнения для каждого рейса. Поскольку текущее время равно 0 и в нашем примере у нас нет ни одного рейса, срок выполнения которого меньше времени его обработки, mdd каждого рейса равен его сроку выполнения:

Измененная дата сдачи
1 12
2 18
3 10
4 14

Затем обрабатывается рейс с наименьшим MDD (рейс № 3) и вычисляется новый измененный срок выполнения. Текущее время сейчас 5.

Две даты Время обработки Измененная дата сдачи
3 10 5 Н/Д
1 12 8 13
2 18 9 18
4 14 6 14

Операция повторяется до тех пор, пока не останется невыполненных рейсов.
Мы получаем следующие результаты:

Расписание рейсов
Две даты Время обработки
3 10 5
1 12 8
4 14 6
2 18 9

В этом порядке общее взвешенное опоздание равно 92.

Этот пример можно обобщить, чтобы запланировать любой список заданий, характеризующийся датой выполнения и временем обработки.

Производительность

[ редактировать ]

Применение этой эвристики приведет к отсортированному списку задач, опоздание которых не может быть уменьшено соседним попарным обменом. [2] Сложность MDD .

Вариации

[ редактировать ]

Существует версия MDD, называемая взвешенной измененной датой выполнения (WMDD). [3] который учитывает веса. В таком случае функция оценки заменяется:

function wmdd(processed, task)
    return (1 / task.weight) * max(task.processTime, task.dueDate - processed)
  1. ^ Кеннет Р. Бейкер, JWM Бертран, Правило динамического приоритета для планирования в зависимости от сроков , Journal of Operations Management Vol. 3, стр. 37–42, 1982.
  2. ^ JC Nyirenda, Связь между измененным правилом срока родов и эвристикой Вилкерсона и Ирвина , ORiON Vol. 17, с 101–111, 2001.
  3. ^ Джон Дж. Канет, Сяомин Ли, Взвешенное модифицированное правило срока родов для последовательности для минимизации взвешенных опозданий , Журнал планирования № 7, стр. 261–276, 2004.

См. также

[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 0c801c8fa580b38697f639426c7f90df__1693478220
URL1:https://arc.ask3.ru/arc/aa/0c/df/0c801c8fa580b38697f639426c7f90df.html
Заголовок, (Title) документа по адресу, URL1:
Modified due-date scheduling heuristic - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)