- •Міністерство освіти і науки україни національний транспортний університет Дослідження операцій в моделюванні управлінських рішень
- •Isbn 978-966-632-185-8
- •I. Предмет і завдання дослідження операцій
- •1.1. Що таке дослідження операцій
- •1.2. Основні поняття та принципи дослідження операцій
- •1. 3. Математичні моделі операцій
- •1.4. Багатокритеріальні задачі дослідження операцій
- •1.5. Системний підхід до задач дослідження операцій
- •1.6. Типові класи задач дослідження операцій
- •1. Задачі управління запасами
- •2. Задачі розподілу ресурсів
- •3. Задачі ремонту і заміни обладнання
- •4. Задачі масового обслуговування
- •5. Задачі впорядкування
- •6. Задачі сітьового планування і управління (спу)
- •7. Задачі вибору маршруту (сітьові задачі на транспорті)
- •8. Комбіновані задачі
- •II. Класифікація методів оптимізації
- •2.1. Математичне формулювання загальної задачі оптимізації
- •2.2. Геометрична інтерпретація задач оптимізації
- •2.3. Класифікація методів оптимізації по виду цільової функції
- •2.4. Характеристика градієнтних методів пошуку екстремуму
- •III. Лінійне програмування
- •3.1. Задачі лінійного програмування
- •3.2. Основна задача лінійного програмування
- •3.3. Транспортна задача лінійного програмування
- •IV. Динамічне програмування
- •4.1. Метод динамічного програмування
- •4.2. Приклади розв’язання задач динамічного програмування
- •4.3. Завдання динамічного програмування в загальному вигляді. Принцип оптимальності
- •V. Елементи теорії масового обслуговування
- •5.1. Основні поняття теорії масового обслуговування
- •5.2. Класифікація систем масового обслуговування
- •5.3. Основні елементи систем масового обслуговування
- •5.4. Параметри смо і загальна методика дослідження
- •5.5. Системи масового обслуговування з відмовами
- •5.6. Кількісні показники смо з відмовами
- •5.7. Короткий опис основних типів пуассонівських смо
- •5.7.1. Смо з відмовами:
- •5.7.2. Смо з очікуванням і обмеженим потоком заявок
- •5.7.3. Смо змішаного типу з обмеженням по довжині черги
- •5.7.4. Смо змішаного типу з обмеженням за часом перебування заявки в черзі і на обслуговуванні
- •5.7.5. Приклади розв’язку задач тмо
- •VI. Теорія ігор
- •6.1. Ігрові моделі прийняття рішень
- •6.2. Прямокутні матричні ігри
- •6.3. Аналіз матричних ігр
- •6.4. Елементарні методи розв’язку ігор
- •6.4.1. Загальна схема розв’язання
- •6.4.2. Методи розв’язку гри 2 X 2
- •6.4.3. Методи розв’язання ігор 2хn
- •Ордината точки n дорівнює ціні гри ν, а абсциса дорівнює частоті застосування стратегії а1.
- •Аналітичний метод розв’язання гри 2хn
- •6.5. Загальний розв’язок гри m X n методом лінійного програмування
- •6.6. Наближені методи розв’язання матричних ігр
- •6.7. Приклади розв’язання задач теорії ігор
- •VII. Моделювання на пк
- •7.1. Поняття моделі і моделювання
- •7.2. Метод статистичних випробувань
- •7.3. Імітація випадкових впливів на пк
- •7. 4. Методи формування в пк базових впливів
- •7.5. Оцінка точності характеристик, отриманих методом статистичних випробувань. Необхідна кількість реалізацій
- •7.6. Приклади розв’язку задач методом статистичних випробувань
- •VIII. Метод cітьового планування
- •8.1. Поняття про сітьове планування та управління
- •8.2. Основні визначення
- •8.3. Основні елементи сітьового графіка
- •8.4. Правила побудови сітьового графіка
- •8.5. Часові параметри сітьових графіків
- •8.6. Способи розрахунку сітьових графіків
- •8.7. Оптимізація сітьових графіків
- •8.8. Імовірнісні тимчасові оцінки сітьових моделей
- •8.9. Укрупнення сітьових моделей
- •8.10. Зшивання сітьових моделей
- •Література
- •Для нотаток
III. Лінійне програмування
3.1. Задачі лінійного програмування
У попередніх розділах ми займалися тільки методологією дослідження операцій — класифікацією завдань, підходами до їх вирішення і т.п., залишаючи осторонь математичний апарат. У цій та наступних розділах ми побіжно розглянемо деякі з математичних методів, які широко застосовуються в дослідженні операцій. У подробиці цих методів не будемо входити; головну увагу звернемо на їх принципові засади.
Вище ми вже згадували про найпростіші задачі, де вибір показника ефективності (цільової функції) W досить явно диктується цільовою спрямованістю операції, а її умови відомі заздалегідь (детермінований випадок). Тоді показник ефективності залежить тільки від двох груп параметрів: заданих умов і елементів рішення х, тобто
(3. 1)
Нагадаємо, що в числі заданих умов α фігурують і обмеження, які накладаються на елементи рішення. Нехай рішення x являє собою сукупність n елементів рішення х1, х2,..., хn (інакше — n-вимірний вектор):
Потрібно знайти такі значення х1, х2,..., хn, для яких величина W досягає максимуму або мінімуму («екстремум»). Такі завдання — відшукання значень параметрів, що забезпечують екстремум функції при наявності обмежень, накладених на аргументи, носять загальну назву завдань математичного програмування.
Труднощі, що виникають при вирішенні задач математичного програмування, залежать: а) від виду функціональної залежності, що зв’язує W з елементами рішення, б) від «розмірності» завдання, тобто від кількості елементів рішення х1, х2,..., xn, і в) від виду та кількості обмежень, накладених на елементи рішення.
Слово «програмування» запозичене з зарубіжної літератури і просто означає «планування».
Серед задач математичного програмування найпростішими (і краще всього вивченими) є так звані задачи лінійного програмування. Характерно для них те, що: а) показник ефективності (цільова функція) W лінійно залежить від елементів рішення х1, х2,..., хn і б) обмеження, що накладаються на елементи рішення, мають вигляд лінійних рівностей або нерівностей щодо x1, x2,..., xn.
Такі завдання досить часто зустрічаються на практиці, наприклад, при вирішенні проблем, пов’язаних із розподілом ресурсів, плануванням виробництва, організацією роботи транспорту і т.д. Це і природно, тому що в багатьох завданнях практики «витрати» і «доходи» лінійно залежать від кількості закуплених або утилізованих засобів (наприклад, сумарна вартість партії товарів лінійно залежить від кількості закуплених одиниць; оплата перевезень здійснюється пропорційно маси перевезених вантажів і т.д.).
Зрозуміло, не можна вважати, що всі типи залежностей, що зустрічаються на практиці лінійні; можна обмежитися більш скромним твердженням, що лінійні (і близькі до лінійних) залежності зустрічаються часто, а це вже багато означає.
Наведемо кілька прикладів завдань лінійного програмування.
1. Задача про харчовий раціон. Ферма виробляє відгодівлю худоби з комерційною метою. Для простоти припустимо, що є всього чотири види продуктів: П1, П2, П3, П4; вартість одиниці кожного продукту дорівнює відповідно c1, с2, с3, с4. З цих продуктів потрібно скласти харчовий раціон, який повинен містити: білків — не менше b1 одиниць; вуглеводів — не менше b2 одиниць; жирів — не менш b3 одиниць. Для продуктів П1, П2, П3, П4 вміст білків, вуглеводів і жирів (в одиницях на одиницю продукту) відомо і видано в таблиці 7.1, де aij (i = l, 2, 3, 4; j = 1, 2, 3) — якісь певні числа; перший індекс вказує номер продукту, другий — номер елемента (білки, вуглеводи, жири).
Потрібно скласти такий харчовий раціон (тобто призначити кількості продуктів П1, П2, П3, П4, що входять до нього), щоб умови по білкам, вуглеводам і жирам були виконані і при цьому вартість раціону була мінімальна.
Таблиця 3.1
Продукт |
Елементи |
Продукт |
Елементи |
||||
білки |
вуглеводи |
жири |
білки |
вуглеводи |
Жири |
||
П1 П2 |
а11 а12 |
а12 а22 |
а13 а23 |
П3 П4 |
а31 а41 |
а32 а42 |
а33 а43 |
Складемо математичну модель (у даному випадку це дуже просто). Позначимо х1, x2, x3, х4 кількості продуктів П1, П2, П3, П4, що входять в раціон. Показник ефективності, який потрібно мінімізувати, — вартість раціону (позначимо її L); вона лінійно залежить від елементів рішення х1, x2, x3, х4:
або, коротше:
(3.2)
Отже, вид цільової функції відомий і вона лінійна. Запишемо тепер у вигляді формул обмежувальні умови по білкам, вуглеводам і жирам. Враховуючи, що в одній одиниці продукту П1 міститься α11 одиниць білка, в х1 одиницях — α11х1 одиниць білка, в х2 одиницях продукту П2 міститься a21x2 одиниць білка і т.д., отримаємо три нерівності:
(3.3)
Ці лінійні нерівності представляють собою обмеження, що накладаються на елементи рішення х1, x2, x3, х4.
Таким чином, поставлена задача зводиться до наступної: знайти такі невід’ємні значення змінних х1, x2, x3, х4, щоб вони задовольняли обмеженням — нерівностям (3.3) і одночасно звертали в мінімум лінійну функцію цих змінних:
Перед нами — типова задача лінійного програмування. Не зупиняючись доки на способах її вирішення, наведемо ще три приклади аналогічних завдань.
2. Задача про планування виробництва. Підприємство виготовляє вироби трьох видів: U1, U2, U3. По кожному виду виробу підприємству заданий план, за яким вона зобов’язана випустити не менш b1 одиниць виробу U1, не менше b2 одиниць виробу U2 і не менш b3 одиниць виробу U3. План може бути перевиконано, але в певних межах; умови попиту обмежують кількості вироблених одиниць кожного типу: не більше відповідно β1, β2, β3 одиниць. На виготовлення виробів йде певна сировина; всього є чотири види сировини: s1, s2, s3, s4, причому запаси обмежені числами γ1, γ2, γ3, γ4 одиниць кожного виду сировини. Тепер треба вказати, яку кількість сировини кожного виду йде на виготовлення кожного виду виробів. Позначимо aij кількість одиниць сировини виду si (i = l, 2, 3, 4), що потрібне на виготовлення однієї одиниці виробу Uj (j = 1, 2, 3). Перший індекс у числа αij — вид виробу другий — вид сировини. Значення αij зведені в таблицю (матрицю) — див таблицю 3.2.
Таблиця 3.2
Сировина |
Вироби |
Сировина |
Вироби |
||||
U1 |
U2 |
U3 |
U1 |
U2 |
U3 |
||
s1 s2 |
а11 а12 |
a21 а22 |
a31 а32 |
s3 s4 |
a13 А14 |
а23 а24 |
а33 а34 |
При реалізації один виріб U1 приносить підприємству прибуток з c1, U2 — прибуток с2, U3 — прибуток c3. Потрібно так спланувати виробництво (скільки яких виробів виробляти), щоб план був виконаний або перевиконаний (але за відсутності «затоварення»), а сумарний прибуток направлявся до максимуму.
Запишемо задачу у формі завдання лінійного програмування. Елементами рішення будуть х1, x2, x3, — кількості одиниць виробів U1, U2, U3, які ми виготовимо. Обов’язковість виконання планового завдання запишеться у вигляді трьох обмежень нерівностей:
(3.4)
Відсутність зайвої продукції (затоварювання) дасть нам ще три обмеження нерівності:
(3.5)
Крім того, нам повинно вистачити сировини. Відповідно чотирма видами сировини будемо мати чотири обмеження нерівності:
(3.6)
Прибуток, принесений планом (х1, x2, x3), буде дорівнювати:
. (3.7)
Таким чином, ми знову отримали завдання лінійного програмування: знайти (підібрати) такі невід’ємні значення змінних х1, x2, x3, щоб вони задовольняли нерівності обмеженням (3. 4), (3. 5), (3. 6) і, разом з тим, звертали в максимум лінійну функцію цих змінних:
(3.8)
Задача дуже схожа на попередню, різниця в тому, що нерівностей обмежень тут більше і замість «мінімуму» стоїть «максимум» (а ми вже знаємо, що це несуттєво). У наступній задачі ми вже зустрінемося з обмеженнями іншого виду.
3. Задача про завантаження обладнання. Ткацька фабрика має у своєму розпорядженні два види верстатів, з них Nt верстатів типу 1 і N2 верстатів типу 2. Верстати можуть виробляти три види тканин: Т1, T2. Т3, але з різною продуктивністю. Дані аij продуктивності верстатів дані в таблиці 7. 3 (перший індекс — тип верстата, другий — вид тканини).
Кожен метр тканини виду Т1 приносить фабриці дохід з c1 виду Т2 — дохід с2, T3 — дохід с3.
Фабриці назначений план, згідно з яким вона повинна виробляти на місяць не менше b1 метрів тканини Т1, b2 метрів тканини Т2, b3 метрів тканини Т3; кількість метрів кожного виду тканини не повинно перевищувати відповідно β1, β2, β3 метрів. Крім того, всі без винятку верстати повинні бути завантажені. Потрібно так розподілити завантаження верстатів виробництвом тканин Т1, Т2, T3, щоб сумарний місячний дохід був максимальний.
Таблиця 3.3
Тип станка |
Вид тканини |
||
Т1 |
T2 |
T3 |
|
1 2 |
a11 a21 |
a12 a22 |
a13 a23 |
На перший (легковажний) погляд поставлена тут задача — рідна сестра попередньої. Рука так і тягнеться позначити х1, x2, x3 кількості тканин Т1, Т2, Т3 в плані і максимізувати сумарний дохід з c1x1 + с2х2 + c3х3. Але не поспішайте і запитайте себе: а де ж тут можливості обладнання? Поміркувавши, ми побачимо, що в цьому завданні елементи рішення — не кількість тканин кожного виду, а кількість верстатів типів 1 і 2, зайнятих виробництвом тканин кожного виду. Тут зручно позначити елементи рішення літерами х з двома індексами (перший — тип верстата, другий — вид тканини). Всього буде шість елементів рішення:
(3.9)
Тут х11 — кількість верстатів типу 1, зайнятих виготовленням тканини Т1, х12 — кількість верстатів типу 1, зайнятих виготовленням тканини Т2, і т.д.
Перед нами — ще одне завдання лінійного програмування. Запишемо спочатку умови обмеження, накладені на елементи рішення xij. Перш за все забезпечимо виконання плану. Це дасть нам три нерівності обмеження:
(3.10)
Після цього обмежимо перевиконання плану; це дасть нам ще три нерівності обмеження:
(3.11)
Тепер запишемо обмеження, пов’язані з наявністю обладнання та його повним завантаженням. Сумарна кількість верстатів типу 1, зайнятих виготовленням всіх тканин, має дорівнювати N1; типу 2 — N2. Звідси ще дві умови — на цей раз рівності:
(3.12)
Тепер запишемо сумарний дохід від виробництва всіх видів тканин. Сумарна кількість метрів тканини Т1, вироблене усіма верстатами, дорівнюватиме a11 x11 + a21 x21 і принесе дохід с1 (a11 х11 + а21х21). Розмірковуючи аналогічно, знайдемо сумарний дохід фабрики за місяць при плані (3. 9):
(3.13)
чи, набагато коротше,
(3.14)
Цю лінійну функцію шести аргументів досліджуємо на максимум:
(3.15)
Перед нами — знову задача лінійного програмування: знайти такі невід’ємні значення змінних х11, х12,..., х23, які, по-перше, задовольняли б обмеження нерівностям (3. 10), (3. 11), по друге — обмеження рівністю (3. 12) і, нарешті, звертали б в максимум лінійну функцію цих змінних (3. 13). У цій задачі лінійного програмування шість обмежень нерівностей та два обмеження рівності.
4. Задача про постачання сировиною. Є три промислових підприємства: П1, П2, П3, вимагають постачання певним видом сировини. Потреби в сировині кожного підприємства рівні відповідно а1, a2, a3 одиниць. Є п’ять сировинних баз, розташованих від підприємств на певних відстанях і пов’язаними з ними шляхами сполучення з різними тарифами. Одиниця сировини, яку підприємство отримує Пi з бази Бj, обходиться підприємству в cij рублів (перший індекс — номер підприємства, другий — номер бази, див. таблицю 3. 4).
Таблиця 3.4
Підприємство |
База |
||||
Б1 |
Б2 |
Б3 |
Б4 |
Б5 |
|
П1 П2 П3 |
с11 с21 с31 |
с12 с22 с32 |
с13 с23 с33 |
с14 с24 с34 |
с15 с25 с35 |
Можливості постачання сировиною з кожної бази обмежені її виробничою потужністю: бази Б1 Б2, Б3, Б4, Б5 можуть дати не більше b1,b2, b3, b4, b5 одиниць сировини. Потрібно скласти такий план постачання підприємств сировиною (з якою бази, куди і яку кількість сировини везти), щоб потреби підприємств були забезпечені при мінімальних витратах на сировину.
Знову поставимо завдання лінійного програмування. Позначимо xij кількість сировини, одержуване i-м підприємством з j-ї бази. Всього план буде складатися з 15 елементів рішення:
(3.14)
Введемо обмеження по потребах. Вони складаються, з того, що кожне підприємство отримає потрібну йому кількість сировини (рівно стільки, скільки йому потрібно):
(3.15)
Далі напишемо обмеження нерівності, що випливають з виробничих потужностей баз:
(3.16)
Нарешті, запишемо сумарні витрати на сировину, які ми хочемо мінімізувати. З урахуванням даних табл. 3. 4 отримаємо (користуючись знаком подвійної суми):
(3.17)
Знову перед нами задача лінійного програмування: знайти такі невід’ємні значення змінних хij, які задовольняли б обмеження рівностям (3.15), обмеження нерівностям (3.16) і зводили б до мінімуму їх лінійну функцію (3.17). Таким чином, ми розглянули кілька завдань лінійного програмування. Всі вони подібні між собою, різняться тільки тим, що в одних потрібно звести лінійну функцію в максимум, в інших — у мінімум, в одних обмеження — тільки нерівності, в інших — як рівності, так і нерівності. Бувають завдання лінійного програмування, де всі обмеження — рівності. Ці відмінності неістотні, так як від обмежень нерівностей легко переходити до обмеженням рівностям і назад, як буде показано в наступному параграфі.
