Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Оптимізаційны методи та моделі.doc
Скачиваний:
5
Добавлен:
01.07.2025
Размер:
5.7 Mб
Скачать

8.7. Оптимізація сітьових графіків

Оптимізація сітьових графіків проводиться з метою поліпшення плану комплексу робіт. Така задача виникає, коли критичний шлях не вкладається в необхідні або задані терміни виконання і необхідно вкладання додаткових ресурсів або перерозподіл наявних. Інше завдання полягає в тому, що якщо час виконання всього комплексу робіт укладається в заданий термін з надлишком, то, розтягнувши деякі роботи, ми можемо заощадити деякі засоби.

При цьому можна виділити наступні основні принципи оптимізації:

1) форсування критичних робіт, при якому змінюється довжина критичного шляху;

2) послідовне виконання робіт замінюється паралельним;

3) перерозподіл ресурсів між роботами критичного і некритичного шляхів;

4) організаційні та технологічні зміни виконання робіт.

Дамо постановку деяких завдань оптимізації в формульного запису.

Завдання 1. Ооптимізація з вкладенням додаткових коштів. Комплекс складається з робіт a1, а2, ..., аn з часом виконання t1, t2, ..., tn. Відомий критичний шлях

,

де Т0 — заданий термін виконання комплексу робіт. Причому сумовування поширюється на критичні роботи.

Відомо, що вкладення певної суми х додаткових коштів в роботу аi, скорочує час виконання з ti до ti = f (x) <ti.

Запитується, які додаткові кошти х1, х2, ..., хn слід вкласти в кожну роботу, щоб, по-перше, термін виконання комплексу був не вище заданого Т0 і, по-друге, сума вкладених коштів досягала мінімуму.

Таким чином, потрібно визначити невід’ємні значення змінних x1, х2, ..., хn (додаткові вкладення) так, щоб виконувалася умова

,

де сумовування виконується за всіма критичними роботами нового шляху (отриманого після перерозподілу коштів і зміни часів), і щоб при цьому загальна сума додаткових вкладень була мінімальна:

.

У загальному вигляді поставлена задача відноситься до класу задач нелінійного програмування. Однак, якщо обмежитися порівняно невеликими змінами плану (такими, при яких час виконання робіт приблизно лінійно залежить від вкладених додаткових коштів, а критичний шлях не змінюється), поставлена задача стає задачею лінійного програмування і може бути вирішена вже відомими нам засобами.

Завдання 2. Оптимізація з перерозподілом наявних коштів. Сукупність робіт a1, а2, ..., аn з часом виконання t1, t2, ..., tn. Час виконання комплексу робіт виражається формулою

На некритичних роботах є деякі резерви часу. Користуючись цими резервами, тобто перекидаючи якісь кошти з некритичних робіт на критичні, можна зменшити час виконання критичних робіт і тим самим термін виконання всього комплексу.

Є певний незмінний запас рухомих засобів В, який розподілено між роботами а1, а2,..., аn так, що кожній роботі відповідає кількість рухомих засобів, рівне відповідно b1, b2,..., bn:

Відомо, що кількість коштів х> 0, зняте з роботи аi, збільшує час її виконання з ti до

,

а кількість засобів хi, вкладене додатково в роботу аi, зменшує час її виконання до t’’i= <ti.

Питається: як треба перерозподілити наявні рухомі засоби В між роботами для того, щоб термін виконання комплексу був мінімальним?

Позначимо xi — кількість рухомих засобів, перекинутих на роботу аii негативно, якщо з роботи знімається якась кількість коштів).

Величини xi повинні задовольняти обмеженням

. (8. 1)

Природно, що сума коштів, що знімаються з якихось робіт, повинна дорівнювати сумі коштів, що додаються до інших робіт, так що

. (8. 2)

Після перекидання коштів для тих робіт, на які вони перекидаються, новий час буде дорівнювати

,

а для тих робіт, з яких кошти знімаються, вони будуть рівні

.

Загальний термін виконання комплексу робіт буде:

, (8. 3)

де перша сума поширюється на всі роботи, на які переносяться кошти, якщо вони входять в критичний шлях;

друга — на всі роботи, з яких переносяться кошти, якщо вони входять в критичний шлях.

Природно вважати, що перенесення засобів має сенс тільки з некритичних робіт на критичні, при цьому не треба забувати, що некритичні роботи можуть переходити в критичні. Цей факт необхідно враховувати при обчисленні Т, коли в обох сумах беруться до уваги критичні роботи.

Отже, перед нами стоїть завдання: знайти такі значення змінних xi (i = щоб виконувалися обмеження (8. 1), (8. 2), а функція (8.3) досягала мінімуму.

Завдання ставиться до класу задач нелінійного програмування навіть у випадку, коли функції fi и — можуть виявитися лінійними. Істотно нелінійним у функції (69) є те, що значення i, j — номери робіт, самі залежать від xi. Загальних способів вирішення таких завдань не розроблено, однак для деяких випадків можна скласти алгоритми визначення раціонального рішення.

Завдання 3. Оптимізація сітьових графіків з економією вкладених засобів за рахунок зниження темпів виконання окремих робіт на некритичних шляхах. Є комплекс робіт а1, а2,..., аn з часом виконання t1, t2,..., tn. Для цього комплексу знайдений критичний шлях і встановлено, що мінімальний час виконання комплексу Т <Т0, де Т0 — заданий термін виконання. Передбачається знизити темпи виконання деяких робіт з тим, щоб термін виконання комплексу довести до заданого значення Т0; за рахунок цього передбачається отримати економію коштів. Збільшення часу виконання роботи аi на (тобто доведення часу виконання роботи аi до ti + ) вивільняє деякі засоби xi, які залежать від затримки

Позначимо i час затримки роботи аi. Сума часів виконання робіт, що лежать на критичному шляху, не повинна перевищувати Т0:

Потрібно вибрати такі невід’ємні значення змінних , щоб сума вивільнених коштів досягала максимуму:

Поставлена задача також відноситься до класу задач нелінійного програмування. У випадку, коли мова йде тільки про незначні затримки i, вдається звести її до задачі лінійного програмування (якщо функції fi близькі до лінійних в діапазоні можливих значень i, а критичний шлях при затримках не змінюється).