- •Глава 3. Спеціальні задачі лінійного програмування та методи їх розв’язування
- •3.1. Транспортна задача
- •3.1.1. Постановка та математична модель транспортної задачі
- •3.1.2. Розв’язування транспортної задачі
- •3.2. Задача про призначення
- •3.3. Динамічне програмування
- •3.3.1. Вступ до динамічного програмування
- •3.3.2. Рекурентні співвідношення динамічного програмування
- •3.3.3. Обчислювальний алгоритм
- •3.3.4. Метод динамічного програмування за наявності двох обмежень
- •3.3.5. Задача про заміну обладнання
- •3.4. Задачі лінійного програмування великої розмірності
- •3.4.1. Характеристика підходів до розв’язування задач великої розмірності
- •3.4.2. Метод декомпозиції Данцига-Вульфа
- •3.5. Перевір себе
- •3.5.1. Контрольні запитання
- •3.5.2 Завдання та приклади для самостійної роботи
3.3. Динамічне програмування
3.3.1. Вступ до динамічного програмування
Характерною рисою економічних систем або економічних процесів є їх розвиток та функціонування у часі. Оптимальна стратегія управління такими системами та процесами може суттєво залежати від тривалості планового періоду. Аналіз такого зв’язку можна реалізувати за допомогою методів динамічного програмування.
На відміну від термінів “лінійне програмування”, “нелінійне програмування”, “стохастичне програмування”, які мають відношення до певного типу задач, термін “динамічне програмування” стосується як обчислювального методу, так і певного типу задач.
В основі методу лежить ідея використання апарату рекурентних співвідношень [49]. Запропонований Р.Беллманом метод дозволяє звести процес оптимізації функції змінних до - крокового процесу оптимізації функцій однієї змінної.
Задачі, для розв’язування яких можливе застосування методу динамічного програмування, повинні задовольняти таким властивостям:
можливості фактичного або умовного розподілу початкової задачі на окремі підзадачі, кожна з яких містить меншу кількість змінних (навіть до однієї);
однотипності підзадач;
можливості вимірювання однаковими одиницями ефекту від прийнятого рішення в результаті розв’язування кожної підзадачі;
можливості обчислення загального ефекту, як суми ефектів в окремих підзадачах.
Продемонструємо змістовну та обчислювальну сторони методу динамічного програмування на прикладі задачі розподілу ресурсів.
Постановка задачі. Припустимо, що існує певна кількість деякого ресурсу. Це може бути запас сировини, енергетичні ресурси, фінансові. трудові, тощо. Існують альтернативні варіанти використання цього ресурсу. Під варіантами будемо розуміти різні способи розподілу ресурсу між окремими споживачами або у різних цілях. Споживачами ресурсу можуть бути галузі економіки, окремі підприємства, різні технологічні способи, різновиди продукції тощо.
В результаті використання ресурсу за тим чи іншим варіантом отримується деякий
прибуток, розмір якого залежить від кількості ресурсу, а також від процесу, де конкретно використовується ресурс. Необхідно знайти такий розподіл ресурсу, щоб загальний прибуток був найбільшим.
Ці припущення дають можливість оцінити прибуток від розподілу всієї кількості ресурсів простим додаванням прибутків. одержаних від окремих процесів таким чином, щоб максимізувати загальний прибуток.
Математична модель задачі. Для побудови математичної моделі задачі введемо такі позначення:
— кількість різних технологічних процесів;
— номер технологічного процесу, ;
—
кількість
ресурсу, яка виділяється
-му
технологічному процесу,
;
—
прибуток
від
-го
технологічного процесу, одержаний у
результаті використання ресурсу в
кількості
одиниць,
;
—
загальна
кількість ресурсу.
Необхідно знайти такі значення змінних , , щоб максимізувати загальний прибуток.
|
(3.3.1) |
за обмежень по витратам ресурсу
|
(3.3.2) |
та невід’ємності змінних |
|
|
(3.3.3) |
Нехай , — лінійні функції відповідних змінних. У такому разі природнім здається бажання використати симплекс-метод для розв’язування цієї задачі. Але симплекс-метод дозволяє одержати в оптимальному плані додатних змінних не більше, ніж кількість обмежень у задачі. Отже, розв’язуючи задачу (3.3.1)-(3.3.3) симплекс-методом, ми одержимо лише одну додатну змінну. Змістовно це означає, що всі ресурси будуть направлені у той процес, який дає найбільший прибуток. Такий розв’язок, звичайно, не буде відповідати поставленій меті вибору сукупності ефективних процесів. Метод динамічного програмування позбавлений цього недоліку.
