Планування робіт на одній машині
Це завдання полягає в пошуку оптимального розкладу для робіт на одній машині, якщо роботу можна виконати за час , але за секунд очікування перед початком виконання роботи доводиться сплатити штраф .
Отже, завдання полягає в тому, щоб знайти таку перестановку робіт, за якої сумарний штраф буде мінімальним. Якщо ми позначимо через перестановку робіт ( — перший оброблений елемент, — другий тощо), то сумарний штраф дорівнює:
- Чи всі роботи виконуються на одній машині, а оптимізуємо порядок задля мінімального сумарного штрафу за очікування? (якщо машин дві → Планування задач на двох машинах)
- Чи функція штрафу належить до випадків, де працює метод перестановок — лінійна, експоненційна або однакова монотонна (теорема Лівшиця–Кладова)?
- Чи можна знайти оптимум простим сортуванням за компаратором сусідніх робіт?
Розв'язки для окремих випадків
Лінійні функції штрафу
Спершу розв'яжемо задачу для випадку, коли всі функції штрафу є лінійними, тобто мають вигляд , де — невід'ємне число. Зауважимо, що ці функції не мають сталого члена. Інакше ми могли б додати всі сталі члени і розв'язати задачу без них.
Зафіксуймо деяку перестановку і візьмімо індекс . Нехай перестановка дорівнює перестановці із переставленими елементами та . Подивімося, наскільки змінився штраф.
Легко бачити, що зміни відбуваються лише в -му та -му доданках:
Легко бачити, що якщо розклад є оптимальним, то будь-яка зміна в ньому призводить до збільшення штрафу (або до того самого штрафу), тому для оптимального розкладу можемо записати таку умову:
А після перегрупування отримуємо:
Таким чином, ми отримуємо оптимальний розклад, просто відсортувавши роботи за дробом у незростаючому порядку.
Слід зауважити, що ми побудували цей алгоритм за допомогою так званого методу перестановок: ми спробували поміняти місцями два сусідні елементи, обчислили, наскільки змінився штраф, а потім вивели алгоритм для пошуку оптимального методу.
Експоненційна функція штрафу
Нехай функція штрафу має такий вигляд:
де всі числа невід'ємні, а стала додатна.
Застосувавши метод перестановок, легко визначити, що роботи потрібно відсортувати в незростаючому порядку за значенням:
Однакова монотонна функція штрафу
У цьому випадку ми розглядаємо ситуацію, коли всі рівні, і ця функція монотонно зростає.
Очевидно, що в цьому випадку оптимальною перестановкою є впорядкування робіт за неспадним часом виконання .
Теорема Лівшиця-Кладова
Теорема Лівшиця-Кладова стверджує, що метод перестановок застосовний лише для трьох згаданих вище випадків, а саме:
- Лінійний випадок: , де — невід'ємні сталі,
- Експоненційний випадок: , де та — додатні сталі,
- Однаковий випадок: , де — монотонно зростаюча функція.
У всіх інших випадках метод застосувати неможливо.
Теорема доводиться за припущення, що функції штрафу є достатньо гладкими (існує третя похідна).
У всіх трьох випадках ми застосовуємо метод перестановок, за допомогою якого шуканий оптимальний розклад можна знайти сортуванням, отже, за час .