Теорія розкладівТеорія розкладів — розділ дискретної математики, що вивчає проблеми впорядкування. У загальному випадку проблеми формулюються так: Дано деяку множину робіт (вимог) з певним набором характеристик: тривалість опрацювання вимоги (найпростіший випадок), вартість опрацювання вимоги, момент надходження вимоги, директивний термін закінчення опрацювання вимоги. Задано деяку множину машин (приладів) , на яких вимоги мають опрацьовуватися відповідно до деякого порядку. Ставиться задача дискретної оптимізації: побудувати розклад, який мінімізує час виконання робіт, вартість робіт тощо. Розклад — вказівка, на яких машинах і в який час мають опрацьовуватися вимоги (виконуватися роботи). Задачі теорії розкладів можна розділити на дві групи:
Існують різні варіанти задач теорії розкладів, частина з них є NP-повними, частина належить до класу поліноміальних задач, для частини задач так і не вдалося довести належність до якогось із класів складності. Існує гіпотеза, що задача, яка допускає переривання, не складніша від задачі без переривань. Для більшості задач вона справджується, крім однієї, де для варіанту без переривання доведено його належність до класу поліноміальних задач, тоді як для аналогічної задачі з перериваннями не існує доведення належності до якогось із класів складності. За дисципліною виконання робіт на машинах можна виділити чотири основні класи задач:
Останню задачу називають одностадійною, три перші — багатостадійними, оскільки для кожної з вимог задано кілька стадій або операцій опрацювання на різних машинах. Можливі різноманітні комбінації обмежень і дисциплін опрацювання, але поліноміальні за часом виконання алгоритми відомі тільки для найпростіших задач із цих класів. Зокрема, для задачі «Потокова лінія» на двох машинах існує алгоритм Джонсона[1] з часовою складністю , який будує розклад з мінімальним загальним часом опрацювання. Для задачі з директивними термінами з довільним числом приладів і перериваннями опрацювання існує алгоритм з часовою складністю , який будує розклад з дотриманням директивних термінів[2]. Розв'язком задач «Відкрита лінія» і «Робочий цех» з одним приладом без переривань є деяка перестановка вимог і для довільної цільової функції ці задачі NP-повні. Але для деяких конкретних цільових функцій знайдено поліноміальні алгоритми.[3][4][5] Задачі теорії розкладів (календарного планування), записані в неперервному часі, мають, як правило, безліч допустимих розв'язків. Метод упорядкування дозволяє звести задачі теорії розкладів до задач оптимізації на скінченних множинах перестановок робіт. Сформульовано загальну постановку задачі теорії розкладів (календарного планування) в неперервному часі, в якій компоненти розв'язків описують за допомогою цілочисельних функцій часу і яку можна розв'язати методом упорядкування[6]. Два способи зведення початкових задач до задач упорядкування ґрунтуються на поняттях компактних (англ. active) і квазікомпактних (англ. semiactive) розв'язків[7]. У зазначеному вище препринті В. В. Шмельова[ru][6] поняття компактних і квазікомпактних розв'язків узагальнено і на цій основі запропоновано нове поняття монотонних розв'язків. Кожен монотонний розв'язок є і компактним, і квазікомпактним одночасно, тому таких розв'язків, як правило, менше. Це спрощує розв'язування задач упорядкування. Для опису динамічних задач розподілу ресурсів зі складними запізненнями, зокрема з векторними і розподіленими, до яких належать і задачі теорії розкладів (календарного планування), Шмельов В. В. 1983 року[6] вперше використав у неявному вигляді і в неперервному часі операцію згортки. Надалі він використовував цю операцію в явному вигляді і для дискретного часу і сформулював загальну постановку задачі теорії розкладів (календарного планування) у вигляді задачі лінійного динамічного програмування зі згортками.[8][9] Ця постановка дозволяє просто і компактно описувати багато динамічних задач, зокрема і з цілочисельними змінними. Шмельов В. В. поширив свої результати щодо методу точних штрафних функцій на цю постановку. Примітки
Література
|