You are on page 1of 217

ІНСТИТУТ ПРОБЛЕМ РЕЄСТРАЦІЇ ІНФОРМАЦІЇ НАН УКРАЇНИ

Кузьмичов А. І.

АНАЛІТИКА
МЕРЕЖЕВИХ СТРУКТУР

Моделювання засобами WinQSB та MS Excel


Практикум

Київ
Видавництво Ліра-К
2017
1
УДК 338.45(078.5) Копіювання, сканування, запис на
ББК 65.301 електронні носії, а також будь-яке
К-89 відтворення будь-якої частини
практикуму без дозволу видавництва
заборонено

Рецензенти:
В. В. Васильєв – чл.-кор. НАН України, д. т. н., професор, зав. відділенням
гібридних моделюючих та керуючих систем в енергетиці Інституту проблем
моделювання в енергетиці ім. Г. Є. Пухова НАН України
А. В. Матвійчук – д. е. н., професор кафедри ЕММ, директор Інституту
моделювання та інформаційних технологій в економіці ДВНЗ «Київський
національний економічний університет ім. Вадима Гетьмана»

Рекомендовано до друку
Вченою радою Інституту проблем реєстрації інформації НАН України
(Протокол № ??? від ??? 2017 р.)

Кузьмичов А. І.
Аналітика мережевих структур. Моделювання засобами WinQSB та MS Excel:
Практикум. – К.: Видавництво Ліра-К, 2017. – 215 с.

ISBN 978-617-7320-60-8

Мережеві структури – загальне місце будь-якої діяльності в економіці та бізнесі,


наукових дослідженнях, в організаційному та операційному управлінні, навіть в
особистому житті. Поєднання наочності мереж із потужним апаратом мережевого
оптимізаційного та імітаційного моделювання визначило сучасний напрямок
формування, аналізу та прийняття рішень різного рівня відповідальності.
Практикум базується на спільному застосуванні шаблонів типових задач
мережевого моделювання пакету WinQSB та допоміжних засобів Excel.
Розрахований на широку аудиторію практиків, науковців, викладачів та студентів
інститутів та факультетів менеджменту будь-якого прикладного спрямування.

2
70 років тому Дж. Данциг розв’язанням задач
транспортного типу винайденим ним симплекс-
методом започаткував аналіз оптимальних
рішень, отриманих комп'ютерним моделюванням
потоків у мережах

ЗМІСТ
Передмова 6
Вступ 7

Глава 1. Лінійна оптимізація 10


Приклад 1.1. 10
Пряма і двоїста задачі лінійного програмування 12
Задача про оптимальну суміш продуктів 13
Параметричний аналіз 17
Приклад 1.2. 13
Приклад 1.3. 22
Задача про раціон 27
Приклад 1.4. 28
Задача про випуск неподільних продуктів із неподільних ресурсів 29
Приклад 1.5. 30
Приклад 1.6. 30
Приклад 1.7. 32
Задача «бути чи не бути» 34
Приклад 1.8. 34

Глава 2. Мережеве моделювання 37


Класична транспортна задача 37
Приклад 2.1.37
Приклад 2.2. 39
Приклад 2.3. 44
Приклад 2.4. 45
Приклад 2.5. 46
Транспортна задача з проміжними пунктами 48
Приклад 2.6. 49
Приклад 2.7. 53
Задача про призначення 54
Приклад 2.8. 55
Приклад 2.9. 57
Задача про максимальний потік 58
Приклад 2.10. 59
Приклад 2.11. 61
Задача про найкоротший шлях 62
3
Приклад 2.12. 62
Задача мінімального покриття мережі 63
Приклад 2.13. 64
Приклад 2.14. 66
Задача комівояжера 68
Приклад 2.15. 68
Приклад 2.16. 69

Глава 3. Мережеве моделювання проектної діяльності 74


Планування і управління проектом за часовими параметрами (CPM-Time) 75
Приклад 3.1. 75
Діаграма Гантта 79
Приклад 3.2. 80
Планування і управління проектом за час-вартісними параметрами (Time-Cost) 83
Приклад 3.3. 85
Приклад 3.4. 92
PERT 95
Приклад 3.5. 95
Ймовірнісний аналіз 97
PERT-Simulation 98
Приклад 3.6. 100
Приклад 3.7. 103

Глава 4. Реконфігурація мережі: локація і розташування вузлів 106


Задача про центр 109
Приклад 4.1. 110
Приклад 4.2. 116
Приклад 4.3. 118
Задача про компоновку вузлів 120
Приклад 4.4. 121
Приклад 4.5. 122
Приклад 4.6. 127
Приклад 4.7. 129
Задача про балансування технологічної лінії 131
Приклад 4.8. 133

Глава 5. Динамічні мережеві моделі 138


Задача про диліжанс 138
Приклад 5.1. 139
Приклад 5.2. 141
Задача про рюкзак 144
Приклад 5.3. 144
Виробнича програма: випуск, задоволення попиту, зберігання 146
Приклад 5.4. 147

Глава 6. Багатоцільові мережеві моделі 149


4
Цільове лінійне програмування 151
Приклад 6.1. 151
Приклад 6.2. 153
Параметричний аналіз 156
Цільове цілочислове лінійне програмування 160
Приклад 6.3. 160
Приклад 6.4. 162

Глава 7. Аналіз рішень в умовах невизначеності і ризику 167


Платіжна матриця. Дерево рішень 167
Аналіз рішень в умовах невизначеності 168
Аналіз рішень в умовах ризику 171
Багатостадійний процес прийняття рішень 172
Аналіз рішень в умовах додаткової інформації (аналіз Байєса) 173
Приклад 7.1. 176
Приклад 7.2. 178
Приклад 7.3. 182

Додатки 184
Д1: Імпорт даних WinQSB → MS Excel 184
Д2: Формування таблиці даних 186
Д3. Аналіз рішень 191
Д3.1. Параметричний аналіз 191
Д3.2. Аналіз «Що-Якщо» 200
Д4. Вимірювання відстаней 202
Д5. Редагування робочого документу 203
Д6. Форми і формати робочих документів 204
Д7. Про WinQSB 212
Д8. WinQSB: завантаження та встановлення 222
Використані джерела 214

Передмова
5
Багато важливих оптимізаційних
задач мають природне представлення у
вигляді мережевих моделей типу
географічних карт, організаційних
діаграм чи структурних схем. Є кілька
причин для виокремлення мережевих
оптимізаційних моделей, формування та
аналізу рішень на їх основі. Мережева
структура наочна і інтуїтивно зрозуміла
для користувачів, в першу чергу, на рівні
постановки та обговорення проблеми.
Це графічне представлення надалі
використовується на наступних рівнях
при визначеності структур даних,
розробці математичної і комп'ютерної
моделей. Отриманий на моделі Рішення знову знаходить відповідне відображення
на мережі.
Кращі історії успіху з організаційного планування і управління пов'язані з
крупними мережевими моделями, у першу чергу, в сфері комунікацій і логістики.
Відомі успішні проекти стосуються управлінських процесів і об’єктів, структури
яких явно не є мережевими, зате їх успіх забезпечений завдяки застосуванню
мережевого представлення, це: структури і аналітика відкритих та «великих»
даних, алгоритми, структурне і машинне програмування, планування та управління
виробничими операціями, моделі біологічних чи хімічних структур тощо. Для
реалізації мережевих моделей розроблені спеціалізовані методи і алгоритми, більш
економні й швидкі, на відміну від точних математико-орієнтованих методів (типу
симплекс-методу), вони евристичні, базуються на ідеях здорового глузду,
дискретизації і комбінаторики, прискореного перебору варіантів, характерний
приклад – генетичний алгоритм.
Цілком зрозумілою й розповсюдженою є задача транспортного типу як
характерний приклад і модель реальних комунікацій, це, зокрема, типова задача
про потоки у мережах, адже кожен з нас є частинкою потоку: пасажиром або
адресатом, відправником чи отримувачем, клієнтом і користувачем мережевих
послуг, що надаються у відповідних мережах. У них ми ставимо завдання чи
запитання, отримуючи відповіді: «звідки», «куди», «скільки», як здійснити щось
найскоріше, найдешевше чи найзручніше, за реальних умов і обмежень, неявно
формулюючи задачу мережевої оптимізації.
Тож не дивно, що винайдений Джорджем Данцигом симплекс-метод лінійного
програмування був вперше і успішно застосований саме для розв’язання задачі
транспортного типу, її мережева постановка на географічній карті, математична
модель і машинний алгоритм заснували надзвичайно широкий клас
оптимізаційних задач і моделей про потоки мінімальної вартості (minimal cost flow
problem).

6
Вступ

Відлік історії математичної теорії графів, на якій базується технологія


мережевого моделювання, 1736 рік, дата першої публікації Леонарда Ейлера про
відому задачу про Кенігсберзькі мости. Ділянки території він представив вузлами,
мости, що їх з’єднують, дугами, побудувавши таким чином мережеву модель
проблеми, для якої надалі розробив математичну модель, отримавши розв’язок
поставленої задачі, тепер – задача про побудову ейлерова циклу.
З того часу були поставлені окремі розважальні задачі типу побудови гамільтонова
циклу, отримані певні серйозні практичні Результати, зокрема, знамениті правила
Кірхгофа в електротехніці.
Майже через 200 років, із винайденням симплекс-методу, яким вперше на ЕОМ
була розв’язана транспортна задача лінійного програмування, формується і
інтенсивно розвивається мережева гілка цієї теорії, де головним є розробка
ефективних методів і алгоритмів розв’язання різноманітних оптимізаційних задач
про потоки у мережах із явним практичним підґрунтям.
Теорія графів і мереж набуває нечуваного розмаху, досліджуючи нові проблеми на
рівні вже глобальних мереж, її результати часто безпосередньо втілюються в
реальну практику. Мережеві задачі, аналітичний апарат і програмний інструментар
стали неодмінною складовою математичної підготовки фахівців багатьох
спеціальностей, у першу чергу, управлінських кадрів, для будь-якої сфери
прийняття рішення.

Є дві вічні проблеми: «Хто винен?» та «Що робити?», у практиці


оптимізаційного моделювання відповідь на перше запитання – це рішення у
вигляді вказівки на знайдене розрахунками т. зв. «вузьке місце» («горлечко
пляшки», bottlenecks), куди слід направити додаткові і гарантовано окупні зусилля
чи ресурси, аби покращити стан відповідної ситуації; рішення у вигляді кількісної
відповіді на друге запитання – це обґрунтована тими ж розрахунками величина тих
зусиль чи ресурсів, які мають бути направленими на розширення «вузького місця»,
й відповідний очікуваний ефект від цього.
Зрозуміло, що ці відповіді – похідні від заданих початкових даних, в теорії
математичної оптимізації це результат аналізу чутливості (sensitivity analysis)
шуканого рішення від значень цих даних, в лінійному програмуванні – це
двоїстість отриманого розв’язку задачі.

Основні поняття теорії графів і мереж, що далі застосовуються.

Граф – множина m вершин, з’єднаних між собою n дугами, в залежності від


наявності орієнтації дуг граф: направлений, ненаправлений чи змішаний. Частіше
за все дуги графа не мають ваги, бо вказують лише на зв’язок між вершинами.
Позначається: G = (N, A), де: N – множина m вершин (nodes), A – множина n дуг
(arcs).

7
Мережа – граф, дугам якого приписані вагові коефіцієнти, один, наприклад,
довжина, чи декілька: тривалість, вартість, пропускна здатність тощо, тут вершини
називають вузлами, як в реальних мережах, вони мають вагові коефіцієнти –
потенціали (пропозиція, попит).
Два вузли суміжні, якщо є дуга, що їх з’єднує.
Матриця суміжності розміром m × m містить вагові коефіцієнти усіх дуг мережі.
В мережі, де m1 та m2 – дві групи специфічних вузлів (джерел і стоків), m1 + m2 = m,
матриця суміжності розміром m1 × m2 містить дуги направленої мережі.
Потік – фундаментальне поняття в теорії мереж, вперше уведено в [24]. Якщо s та
t – стартовий (джерело, start) і кінцевий (стік, terminal) вузли мережі, а усі інші
вузли проміжні, потік величиною v із вузла s до вузла t є функцією f (flow), яка
відображає множину дуг A в множину невід’ємних чисел F.
Позначення: f(x, y) = v – це потік величиною v, що тече від вузла х до вузла y,
наприклад, f(Луцьк, Київ) = 100. Так абстрактна дуга мережі, маючи «вагу»
(довжину, тариф, пропускну здатність), отримує матеріальне наповнення,
відповідаючи наповненим потоками води чи нафти трубопроводам, потокам
пасажирів чи транспортних засобів на дорогах [1].
Ланцюг – послідовність дуг (arc) а1, а2, …, an, така, що кінцями дуги ai є вузли xi та
xi+1, дугу ai позначають (xi, xi+1), за напрямком xi → xi+1 або (xi+1, xi), якщо xi+1→ xі, і
= 1, …n. Параметр дуги, наприклад, її довжину (distance), позначають d(xi, xi+1),
наприклад, d(2,5). Довжина ланцюга – кількість дуг у ньому. Цикл – ланцюг, його
початок співпадає із кінцем: а1, а2, …, a1.
Шлях – ланцюг із зважених дуг відповідної довжини.
Контур – шлях, його початок співпадає із кінцем.
Покривне дерево – сукупність n - 1 дуг, де усі n вузли з’єднані і нема циклів чи
контурів.

Задача оптимізації, складові:


І. Шуканий план (програма, рішення, decisions)
II. Цільова функція (ЦФ, objective), шуканий план має забезпечити її екстремальне
значення
III. Обмеження на невідомі плану та граничні умови (тип змінних шуканого плану,
нижні/верхні границі їх значень, constraints).

Лінійне програмування (ЛП) – клас оптимізаційних моделей, де задоволені умови


лінійності.
Умови лінійності задач ЛП:
 лінійність ЦФ і обмежень
для шуканих невідомих:
 пропорційність (d1 = c1x1 )
 адитивність (Z = d1x1 + d2x2)
 неперервність (дійсний тип)
 невід’ємність (xi ≥ 0).
Типові потокові задачі у мережах (network flow problems) про:
 потоки мінімальної вартості (minimum cost flows),

8
 призначення та паросполучення (assignment and matching)
 найкоротший шлях (shortest path),
 максимальний потік (maximum flow),
 мінімальні покривні дерева (minimum spanning trees),
 узагальнені потоки (generalized flows),
 багатопродуктові потоки (multicommodity flows).
Класи потокових оптимізаційних моделей: лінійні, дискретні (цілочислові,
бінарні), динамічні, цільові (багатокритеріальні), нелінійні, імітаційні
(ймовірнісні).
Області застосування:
 дослідження операцій
 наука управління
 операційний менеджмент
 проектний менеджмент
 виробництво, суміші
 управління запасами, логістика, ланцюги постачання
 розміщення, переміщення, локація
 транспортування, призначення, маршрутизація
 черги, масове обслуговування
 динамічні потоки тощо.
Структури даних: матриці (прямокутні, квадратні); списки.
Типи даних: числові/текстові; числові: неперервні, цілочислові, бінарні.

Взаємодія WinQSB + MS Excel


Засоби WinQSB виконують домінуючу роль, це:
 шаблони робочих таблиць
 матрична/спискова постановка усіх моделей
 розв’язок оптимізаційної задачі (надання рішення у вигляді списків)
 графічна підтримка (схема мережі, потоки у ній, розміщення)
 оптимізаційна модель (ЦФ, обмеження) у форматі матриці початкових даних
 зберігання задачі і даних (в текстовому форматі)
 вставка електронних таблиць
 редагування робочого документу
 поглиблений аналіз отриманого рішення, інструментальні засоби:
o Sensitivity Analysis: for OBJ, of RHS
o What It Analysis,
o Parametric Analysis,
o Probability Analysis,
o Range of: Optimality, Feasibility
o Combined Reports, Solution Summary, Constraint Summary.
Excel виконує допоміжну підтримку, щоби:
 готувати модельні дані для подальшої вставки з метою прискорення уведення
даних

9
 імпортувати збережені дані і результати, зберігати їх у форматі електронних
таблиць
 обробляти і представляти отримані результати (діаграми, статистика, графіка).

10
Глава 1. Лінійна оптимізація
Лінійне програмування (ЛП) – апарат лінійної оптимізації (досягнення
найкращого рішення, наприклад, максимального прибутку або мінімальної
вартості) в математичній моделі із лінійними властивостями складових, де цільова
функція (ЦФ) n шуканих невідомих лінійна, m обмежень на значення невідомих є
лінійними нерівностями і рівняннями, фундаментальна основа – лінійна алгебра.

Задача ЛП (max)
І. Знайти план1 Х = {xj}, j = 1, …, n, такий, щоб
ІІ. Цільова функція Р = СХ → max
III. За обмежень: АХ ≤ В
та граничних умов: Х ≥ 0.
Тут:
Х – вектор n невідомих (шукане рішення, розв’язок задачі), X = {xj}
A – матриця коефіцієнтів розміром m × n, A = {aij}, i = 1, …, m
В – вектор правих частин m обмежень, B = {bi}
С – вектор вагових коефіцієнтів (цін) n невідомих, C = {cj}
P – загальний ефект (прибуток, користь), цільова функція (ЦФ).

Задача лінійної оптимізації (min)


І. Знайти план Х = {xj}, j = 1, …, n, такий, щоб
ІІ. Цільова функція P = СХ → min
III. За обмежень: АХ ≥ В
та граничних умов: Х ≥ 0.

Симплекс-метод – основний алгоритм для машинного розв'язання задач ЛП (Дж.


Данциг, 1947 р.). Система нерівностей АХ ≤ В додаванням m (m > n) стовпців
перетворюється у невизначену систему рівнянь Â Х = В ( Â – розширена
прямокутна матриця):

.
Невизначена система рівнянь, де рівнянь більше, ніж невідомих (прямокутна
матриця коефіцієнтів розміром m × (n+m), має безліч розв’язків, кожен із них це
розв’язок визначеної системи рівнянь (квадратна матриця коефіцієнтів розміром m
× m), утвореної перестановками стовпців розширеної матриці, наприклад,
перестановки системи рівнянь 2  2:

1
в англомовних джерелах – linear program
11
.
Тож шлях до оптимуму досягається послідовними перестановками стовпців і
розв’язанням визначених систем лінійних рівнянь розміром n × n на кожному кроці
ітераційного процесу із поступовим покращенням значення ЦФ, де n змінних –
базисні (basic), інші m – n вільні (at bound).
Кінцеве управлінське рішення (decision) базується на розв’язанні задачі ЛП
пошуку екстремуму ЦФ, де n шуканих (базисних) змінних мають невід’ємні
значення.

Графічний метод
Якщо шуканих невідомих дві, х1 та х2, розв’язок можна отримати наочним
геометричним способом, який найкраще пояснює початківцям суть симплекс-
методу розв’язання задачі лінійного програмування.

Приклад 1.1 (файл LP.LPP). Графічний розв’язок

Задача лінійної оптимізації


І. Знайти план Х = (х1, х2), щоби
ІІ. ЦФ P = 50х1 + 60х2 → max
ІІІ. За обмежень:
2х1 + 3х2  180
3х1 + 2х2  150
та граничних умов: х1, х2 ≥ 0.

Графіками нерівностей є напівплощини, які розділяють площину х10х2


навпіл, робоча область визначається знаком нерівності, якщо це «» , вона включає
нуль, якщо ж це «≥», область поза нулем. Граничні умови х1, х2 ≥ 0 визначають 1-
ий квадрант системи координат, у якому відбувається побудова розв’язку.
Графічний розв’язок задачі (рис. 1.1) містить область допустимих рішень чи
розв’язків (ОДР) у вигляді 4-кутника, це перетин 4-ох графіків: двох нерівностей
та двох граничних умов. Показано три кутових точки з координатами та
значеннями ЦФ (на максимум), адже за симплекс-методом оптимум відшукується
направленим перебором саме кутових точок.
Алгоритм симплекс-методу у прикладі діє у такій послідовності: старт у точці (0,
0), ЦФ = 50×0 + 60×0 = 0, оптимум не досягнуто (за спеціальною ознакою), перехід
у найближчу кутову точку (50, 0), ЦФ = 50×50 + 60×0 = 2500, оптимум не
досягнуто, перехід у найближчу кутову точку (18, 48), ЦФ = 50×18 + 60×48 = 3780,
оптимум досягнуто. Перестановки і системи рівнянь:

Інша допустима послідовність з тим же результатом: (0, 0) → (0, 70) → (18,48).

12
Рис. 1.1. Задача на максимум ЦФ, Х = (18, 48)

Графічний розв’язок задачі на мінімум ЦФ (рис. 1.2.)


І. Знайти план Х = (х1, х2), щоб
ІІ. ЦФ P = 50х1 + 60х2 → min
ІІІ. За обмежень:
2х1 + 3х2 ≥ 180
3х1 + 2х2 ≥ 150
та граничних умов: х1, х2 ≥ 0.
Так співпало, що та сама точка (18, 48) для наведених початкових даних є
оптимумом з-за іншою ОДР:

Рис. 1.2. Задача на мінімум ЦФ, Х = (18, 48)

13
Пряма і двоїста задачі лінійного програмування

Пряма задача Двоїста задача


І. Знайти план Х = {xj}, j = 1, …, n, щоб І. Знайти план T = {tі}, і = 1, …, m, щоб
ІІ. Цільова функція P = СХ → max ІІ. Цільова функція W = BT → min
III. За обмежень: АХ ≤ В III. За обмежень: АT ≥ C
та граничних умов: Х ≥ 0 та граничних умов: Y ≥ 0.

І. Знайти план Х = (х1, х2), щоб І. Знайти план T = (t1, t2), щоб
ІІ. ЦФ P = 50х1 + 60х2 → min ІІ. ЦФ W = 180t1 + 150t2 → min
ІІІ. За обмежень: ІІІ. За обмежень:
2х1 + 3х2  180 2t1 + 3t2 ≥ 50
3х1 + 2х2  150 3t1 + 2t2 ≥ 60
та граничних умов: х1, х2 ≥ 0. та граничних умов: t1, t2 ≥ 0.

Рішення Рішення
І. Х = (18, 48) І. T = (16, 6)
ІІ. P = 50×18 + 60×48 = 3780 ІІ. W = 180×16 + 150×6 = 3780
ІІI. 2×18 + 3×48 = 180 ІІI. 2×16 + 3×6 = 50
3×18 + 2×48 = 150 3×16 + 2×6 = 60

Результат розв’язку двоїстої задачі T = (16, 6) називають «тіньовою ціною»


(Shadow Price), це оцінки правих частин обмежень (ПЧО), наприклад, обмежених
запасів ресурсів, щодо їх належності до «вузьких місць».
Їх економічний смисл (у прикладі): збільшення запасу 1-го ресурсу на 1 (зі 180 до
181 од.) приведе до збільшення ЦФ (на максимум) на 16 гр. од., (3780 + 16 = 3796
гр. од.), 2-го ресурсу – лише на 6 гр. од. Значення тіньових ціни додатні, коли
нерівність стає рівнянням, тобто, коли запас ресурсів вичерпаний, ресурс ri
дефіцитний при ti > 0. У цій «іграшковій» задачі запаси обох ресурсів є «вузькими
місцями», їх вигідно поповнювати, різниця лише в їх окупності, остаточний вибір
за ОПР.
У крупній задачі ЛП із десятками чи навіть сотнями обмежень визначається
невелика за кількістю сукупність дефіцитних ресурсів, за їх тіньовими цінами
можна вибрати вигідніший.
За отриманими тіньовими цінами обчислюються граничні значення ПЧО
для збереження структури плану2, а також т. зв. Reduced Cost, це оцінки
коефіцієнтів ЦФ, у вільному перекладі – «питома вартість втрат»: ЦФ у задачі на
максимум втрачає дохід, у задачі на мінімум – збільшує витрати, це погіршене
значення ЦФ при вимушеному відхиленні від отриманих оптимальних значень
шуканих змінних. Наприклад, знайдено, що х2 = 0, тобто, 2-ий продукт не слід
випускати, для цієї змінної питома вартість втрат = 5, тоді:

2
підприємства зацікавлені у збереженні асортименту продукції, що виготовляється, аби
зменшити витрати на переналаштування обладнання та зміну відповідного ресурсного
забезпечення
14
а) якщо виробник вирішить виготовити 1 од. 2-го продукту, загальний прибуток
(значення ЦФ) зменшиться на 5 гр. од.;
б) продукт буде вигідно випускати, якщо його продажну ціну збільшити на 5.
Тож оцінки Shadow Price та Reduced Cost – цінні показники для прийняття рішення
на майбутнє.

Задача про оптимальну суміш продуктів

Це класична задача ЛП (Product Mix Problem), що часто виникає при визначенні


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

Приклад 1.2 (файл LP.LPP)

У склад готового продукту входять два види продуктів-компонентів (П1, П2), для
їх виготовлення використовують 2 види ресурсів (R1, R2).
Задано:
 запаси ресурсів (r1 = 180, r2 =150 од.)
 ціни продуктів (c1 =50, c2 = 60 гр. од.)
 питомі норми витрат ресурсів для продуктів (матриця: 2, 3; 3, 2).
Треба визначити:
 оптимальну суміш (композицію) цих двох продуктів з урахуванням обмежень
на наявні ресурси, інакше,
 оптимальний план розподілу наявних ресурсів для виготовлення продуктів,
за критерієм максимуму очікуваного прибутку D від реалізації продукції (ЦФ) за
визначеними цінами.
Мережева модель задачі

Рис. 1.3. Мережа «Ресурси → Продукти»:

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


коефіцієнти (потенціали) вузлів – запаси ресурсів та ціни продуктів, дуг – питомі
витрати кожного ресурсу на виготовлення кожного продукту.

Задача оптимізації
І. Знайти план Х = (Х1, Х2), де Х1, Х2 – шукані кількості продуктів П1 та П2, щоби
ІІ. ЦФ D = 50X1 + 60X2 → max
ІІІ. За обмежень:
C1: 2X1 + 3X2  180 (ресурс R1)
15
C2: 3X1 + 2X2  150 (ресурс R2)
та граничних умов:
0  Х1, Х2   (М)
Х1, Х2 – неперервного типу (continuous).

Дії
1) WINQSB → Linear and Integer Programming
2) File → Load Problem → LP.LPP

Рис. 1.4. Початкові дані (таблична форма)

Рис. 1.5. Початкові дані (нормальна форма)

3) Solve and Analyze → Solve the Problem.


Повідомлення: The problem has been solved. Optimal
solution is achieved → OK (Задача розв’язана.
Оптимальний розв’язок отримано).
4) File → Save As → mylp.txt → C:\WINQSB.

Результат (комбінований звіт: ЦФ, обмеження)

Рис. 1.6. Розв’язок прямої та двоїстої задач ЛП


16
Складові комбінованого звіту

ЦФ

 структура рішення, шукані змінні (Decision Variable), Х = (х1, х2)


 розв’язок задачі (Solution Value), Х = (18, 48)
 питомі витрати/дохід (Unit Cost or Profit, ci), С = (50, 60)
 загальний вклад (Total Contribution), СХ = (900, 2880)
 питома вартість втрат (Reduced Cost)
 тип змінної: базисна/вільна (Basis Status)
 допустиме зменшення коефіцієнта сі (Allowable Min. ci)
 допустиме збільшення коефіцієнта сі (Allowable Max. ci)
 цільова функція (Objective Function), D = 3780.
Обмеження:

 обмеження, позначення (Constraint)


 ліва частина обмеження, отримане значення (Left Hand Side)
 знак відношення (Direction)
 права частина обмеження (ПЧО), задане значення (Right Hand Side)
 різниця: недобір/перебір (Slack or Surplus)
 тіньова ціна (Shadow Price)
 допустиме зменшення ПЧО (Allowable Min. RHS)
 допустиме збільшення ПЧО (Allowable Max. RHS).

17
Рис. 1.7. Графічний розв’язок

Аналіз

Пряма задача
І. План Х = (18, 48)
ІІ. Максимальне значення ЦФ: D = 3780 = 50×18 + 60×48 = 900 + 2880 (гр. од.)
ІІІ. Обмеження:
2×18 + 3×48 = 180
3×18 + 2×48 = 150, тобто, запаси ресурсів використані повністю.

Двоїста задача
Оцінки:
 для ПЧО (запасів ресурсів): Shadow Price (16, 6)
 для коефіцієнтів ЦФ (цін продуктів): Reduced Cost (0, 0)

Структура плана – вигідно виготовляти обидва продукти. Ця структура не


зміниться за граничних умов:
 для коефіцієнтів шуканих змінних: 40 ≤ с1 ≤ 90; 33,3 ≤ с2 ≤ 75
 для ПЧО запасів ресурсів: 100 ≤ r1 ≤ 225; 120 ≤ r2 ≤ 270,
за зміною цих значень відповідно буде змінюватися значення ЦФ.

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


при чому, ресурс R1 (двоїста оцінка 16) більш впливовий на значення ЦФ (D), ніж
R2 (оцінка 6): збільшивши на 1 запас R1, на 16 гр. од. збільшиться прибуток.

18
Зауваження: «Тіньова» ціна узгоджена із ціною продуктів і не має зв’язку із
реальною ціною ресурсів, тому остаточне рішення за ОПР – запас якого ресурсу
краще поповнити.

Параметричний аналіз

Параметр – вибраний ОПР коефіцієнт ЦФ або значення ПЧО, зміна якого


має впливати на значення ЦФ. Параметричний аналіз досліджує і визначає
залежність значення ЦФ від зміни значень вибраного параметру.
Це потужний аналітичний засіб, де задача багатократно (автоматично)
розв’язується відповідними перестановками за зміненими значеннями
відповідного параметру у широкому діапазоні, формуючи кінцевий вектор
результатів перестановок (perturbation vector), де фіксуються граничні моменти
зміни значення цільової функції.
Зокрема, цим засобом оцінюється вплив на значення ЦФ (D) зміни значень
параметрів:
 цін – коефіцієнтів ЦФ (c1, c2), що важливо для ціноутворення, або
 запасів ресурсів – значень (r1, r2), правих частин обмежень (RHS),
на основі цього аналізу визначається зважене і обґрунтоване управлінське рішення
у напрямку подальшого покращення кінцевого результату – це відповідь на
запитання «Що робити».

Команда: Results  Perform Parametric Analysis

Рис. 1.8. Вікно налаштування, параметр – один з коефіцієнтів ЦФ

Запитання 1. Як впливає ціна c1 (у прикладі 50 гр. од.) продукту П1 (коефіцієнт


змінної х1) на дохід?

Рис. 1.9. Рішення для коефіцієнта с1 змінної х1

19
Аналіз

Зі зростанням c1 в діапазоні (в гр. од.):


 50 ÷ 90 ЦФ зростає в діапазоні 3780 ÷ 4500 з питомим зростанням 18 на кожну
додаткову одиницю ціни, випуск х2 слабшає, бо х1 його витискає
 90 ÷  (M) ЦФ невпинно зростає, починаючи від 4500 зі швидкістю 50, випуск
х2 припинено.
Аналогічно, зі зменшенням c1 від заданого значення 50:
 50 ÷ 40 ЦФ зменшується в діапазоні 3780 ÷ 3600 з питомим спаданням 18 на
кожну додаткову одиницю ціни,
 40 ÷ - (-M) ЦФ залишається на рівні 3600 гр. од.

Рис. 1.9. Графік функції D = f(c1)

Графік має 3 ділянки із різним нахилом (slop) – швидкістю зміни ЦФ:


 без нахилу, c1: 0 ÷ 40, ЦФ = 3600 гр. од. (план: х1 = 0, х2 > 0)
 нахил = 18, c1: 40,01÷ 90, ЦФ: 3780 ÷ 4500 (план: х1 > 0, х2 > 0) і
 нахил = 50, c1 від 90, ЦФ від 4500 гр. од., (план: х1 > 0, х2 = 0).

Запитання 2. Як впливає на ЦФ запас ресурсу R1 (у прикладі r1 =180 од.), це права


частина 1-го обмеження (С1)?

20
Рис. 1.10. Оцінка запасу ресурсу R1
Зі зростанням r1 в діапазоні:
 0 ÷100 ЦФ зростає в діапазоні 0 ÷ 2500 зі швидкістю 25 гр. од./од.,
 100 ÷ 180 ЦФ зростає в діапазоні 2500 ÷ 3780 зі швидкістю 16 гр. од./од.,
 180 ÷ 225 од. ЦФ зростає в діапазоні 3780 ÷ 4500 зі швидкістю 16 гр. од./од.,
подальше зростання запасу не впливає на зростання ЦФ, рис. 1.11.
ОПР робить висновок, що утворювати запас більше за 225 од. не слід.

Рис. 1.11. Графік функції D = f(r1)

Модифікація моделі

Умова 1. Згідно технології змінилася питома норма витрат ресурсу R2 щодо


продукту П2: тепер а2,2 = 2,6 замість 2, в таблиці початкових даних змінюємо це
значення:

21
,
і отримуємо нове рішення:

Рис. 1.12. Рішення


Аналіз

Пряма задача
І. Х = (0; 57,7), змінилася структура плану – продукт П1 невигідно випускати, бо
вартість ресурсів дорожча за ціну продукту, який його споживає.
ІІ. Максимальне значення ЦФ D = 3461,5 гр. од.
ІІІ. Обмеження:
2×0 + 3×57,7 = 173,1 залишок 6,9 од.
3×0 + 2×57,7 = 150.

Двоїста задача:
 для коефіцієнтів ЦФ: Reduced Cost (-19,28; 0). Вимушений випуск одиниці
«невигідного» продукту П1 за заданою ціною (50 гр. од.) погіршить значення
ЦФ на 19,28 гр. од. Якщо на П1 є попит, його випуск буде вигідним за ціною,
більшою за 50 + 19,28 = 69,28 гр. од. хоча на копійку (за ціною 69,28 випуск
вигідний, але без прибутку);
 для ПЧО: Shadow Price (0; 23,1). Збільшення запасу ресурсу R2 на 1 од. приведе
до збільшення ЦФ на 23,1 гр. од. Збільшувати цей запас можна до 150 + 156 =
306 од., щоб не змінилася ця структура плану (коли 1-ий продукт не треба
випускати).

Умова 2. Продукти П1 та П2 мають виготовлятися у комплекті згідно відношення


х1 3
 . Умова реалізується додаванням асортиментного обмеження:
х2 2
2Х1 = 3Х2 → 2Х1 – 3Х2 = 0.
Зміна структури математичної моделі зводиться до додавання рядка обмеження С3
і розв’язання розширеної задачі оптимізації.
Оновлені початкові дані і рішення (рис. 1.13):
22
Рис. 1.13. Дані і рішення
Аналіз

Пряма задача
І. Х = (34,6; 23,1)
ІІ. Максимальне значення ЦФ D = 3115,4 гр. од.
ІІІ. Обмеження:
2×34,6 + 3×23,1 = 138,5, залишок 41,5 од.
3×34,6 + 2×23,1 = 150.

Двоїста задача
 для коефіцієнтів ЦФ: Reduced Cost (0; 0).
 для ПЧО: Shadow Price (41,5; 0; 0).

Зауваження
Математична і комп’ютерна моделі й отримане рішення із неперервними
невідомими є задовільними для користування, якщо продукти П1 та П2 ділимі
(подільні) типу сипучих будівельних матеріалів, борошна чи рідини.
Якщо ж це неподільна (вимірюється в штуках, комплектах, упаковках) продукція,
відповідна задача розв’язується методами цілочислового лінійного програмування
(ЦЛП, Integer Linear Programming, ILP).
Наведений приклад з двома шуканими невідомими є простою ілюстрацією апарату
математичної оптимізації, лінійної чи нелінійної, адже для такої задачі можна
знайти наочний геометричний розв’язок графічним методом, що є цінним для
розуміння складових задачі лінійної оптимізації та, зокрема, симплекс-методу для
розв’язання задачі ЛП.
Реальні задачі, зрозуміло, мають досить солідні розміри, що визначаються
кількостями шуканих невідомих (m) та обмежень на їх значення (n), тобто,
розміром m × n. Якщо n < m, відповідну табличну форму рекомендують
представляти прямокутною матрицею розміром n × m.
23
Приклад 1.3. Нова виробнича програма
розпочинається із аналізу поточного стану ресурсного
забезпечення. Для виготовлення 20-ти видів продуктів
використовують наявні запаси 14 видів ресурсів,
маємо задачу ЛП розміром 14 × 20.
Задано: запаси ресурсів (стовпець із 14 значень), ціни
продуктів (рядок із 20 значень) та питомі норми витрат
ресурсів для продуктів (матриця розміром 14 × 20).
Треба визначити оптимальну композицію продуктів,
інакше, оптимальний план розподілу наявних ресурсів
для виготовлення продуктів, за критерієм максимуму
очікуваного прибутку D від реалізації продуктів.
Рис. Мережа «Ресурси - Продукти», показано не всі
дуги.

Уведення початкових даних

Якщо мова йде про реальну задачу, треба вводити ці 314 (14 + 20 + 280) чисел з
клавіатури у робоче поле Розв’язувача (чи «копіпастом» – копіюванням-вставкою
з Excel). Якщо ж це модельна задача, то можна скоротити час на уведення даних,
попередньо сформувавши їх в Excel за допомогою ГВЧ (генератора випадкових
чисел), наприклад, функцією СЛУЧМЕЖДУ (a, b), а потім вставити у робоче поле
увесь числовий масив.

Крок 1. Формуємо таблицю даних в Excel:

Рис. 1.14. Таблиця початкових даних (Excel)

Крок 2. Запуск Розв’язувача:


 File → New Problem

24
 Вікно налаштування: розмір задачі (20 змінних і 14 обмежень), критерій ЦФ
максимум, табличний формат даних, неперервний тип шуканих змінних:

 сформований макет документа для уведення даних (текстові дані фіксовані):

Рис. 1.15. Робоча таблиця

 в Excel послідовно виділяти і копіювати в буфер обміну відповідні діапазони


даних
 в Розв’язувачі виділяти відповідні діапазони і вставляти дані з буферу обміну
командою Edit → Paste
 команда Solve and Analyze → Solve the Problem
 зберігання (рекомендується): File → Save As → mylp14-20.txt → C:\WINQSB.

Розв'язувач представляє отримані результати не таблицею, а двома довгими


стовпцями (для невідомих і обмежень), якими для крупної задачі користуватися
незручно, тому за необхідності збережений txt-файл імпортуємо на окремий аркуш
Excel, щоби потім завершити табличну форму.

25
Рис. 1.16. Робоча таблиця

Результати розв’язання задачі ЛП

1) Узагальнений звіт щодо ЦФ і рішення, команда: Results  Solution Summary for


LP Sample Problem

26
Рис. 1.17. Звіт 1

2) Комбінований звіт, команда: Results Combined Report for LP Sample Problem

Рис. 1.18. Звіт 2

3) Звіт щодо обмежень, команда: Results Constraint Summary for for LP Sample
Problem

Рис. 1.19. Звіт 3

27
4) Звіт з аналізу чутливості ЦФ, команда: Results Sensitivity Analysis for OBJ

Рис. 1.20. Звіт 4

5) Звіт з аналізу чутливості ПЧО, команда: Results Sensitivity Analysis of Right-


Hand-Sides for LP Sample Problem

Рис. 1.21. Звіт 5

Порівняння звітів

Комбінований звіт містить усі результати для прямої і двоїстої задачі, усі інші звіти
– це скорочені версії двох складових (ЦФ і обмежень) комбінованого звіту, яким
надалі рекомендується користуватися.

Аналіз

І. Із наявних запасів ресурсів можна виготовити лише 3 продукти й у малих


кількостях, це: х2 = 1,52; х4 = 7,1; х20 = 3,9, щоби отримати
ІІ. Максимальний прибуток D = 3011,12 гр. од.
ІІІ. Лише 3 (так співпало з числом невідомих) види ресурсів використані повністю:
Р1, Р2, Р4, усі інші мають залишки. Тож саме запаси цих дефіцитних ресурсів стали
«вузьким місцем», яке не дозволило отримати більший дохід.

Що робити для збільшення доходу?


Збільшувати запаси дефіцитних ресурсів, враховуючи двоїсті оцінки: їх тіньову
ціну (34,9; 9,2; 6,5) та допустиме збільшення (62,15; 97,7; 111).
28
Цікаво і цінно для керування бізнес-процесом, що параметричний аналіз (Perform
Parametric Analysis) дозволяє відстежити вплив зміни ПЧО на шуканий план (Х) й,
відповідно, на значення ЦФ. Наприклад, зі збільшенням величини запасу ресурсу
R1 (обмеження С1) поступово зменшується його вплив на ЦФ у вигляді нахилу
(Slope), одночасно фіксується зміна «гравців» – структура плану – зі зростанням
запасу від заданого у 51 од. до 62,1538 од., зникає продукт зі змінною х20 = 0, на
його заміну виходить продукт зі змінною х18:

Рис. 1.22. Результат параметричного аналізу для ПЧО С1

Аналогічний ефект спостерігається при зміні коефіцієнтів ЦФ, коли зміна ціни
продукту прямо впливає структуру плану, відповідно, на ЦФ і непрямо, на розподіл
ресурсів (ЛЧО). Наприклад, ціна 1-го продукту (коефіцієнт с1 змінної х1) зростаючи
від заданої ціни у 130 гр. од. до 287, «вибила» з плану змінну х20, їй на заміну
увійшла змінна х1. Із подальшим зростанням ця ціна продовжує змінювати
структуру плану – наочна ілюстрація конкурентної боротьби на ринку. Відповідно,
відбуваються зміни у ресурсному забезпеченні.
При фантастичній ціні у 3216 гр. од. випуск продукту П1 склав 5 од., він
монополіст із доходом більше 16000 гр. од., зупинив цю вулканічну діяльність
запас ресурсу R12 у 61 од.

Рис. 1.23. Результат параметричного аналізу для коефіцієнта с1 змінної х1

Задача про раціон

Існує розповсюджений клас задач лінійної оптимізації, де n різних


компонентів, кожен з яких містить m речовин, використовують шляхом їх певного
29
змішування (компонування, сполучення, поєднання, складення, комбінування) для
утворення складеного продукту у вигляді суміші (композиції, комбінації). В
математичній літературі ця класична задача оптимізації відома під назвою «задача
про раціон»3. Компоненти як складові суміші характеризуються параметром
(ціною, вагою тощо), що входить у цільову функцію. Як правило, діє класичний,
на мінімум витрат, критерій оптимізації, коли з n харчових продуктів із заданою
ціною треба створити раціон харчування, у якому вміст m речовин не нижчий за
задану нижню (мінімально допустиму) границю.

Приклад 1.4. У склад раціону відгодівлі худоби входять 6 продуктів: сіно, силос,
концентрати, зерно, овочі і відходи з виробництва молокопродуктів, що містять 3
споживні речовини: білок, кальцій та вітаміни. Задані мінімальні норми
споживання цих речовин та ціни продуктів. Треба визначити склад раціону (що і
скільки змішати) мінімальної вартості за умови дотримання норм споживання.

Задача оптимізації

І. Знайти раціон Х = (х1, х2, …, х6), де: х1 – кількість сіна, х2 – силосу, х3 –


концентратів, х4 –зерна, х5 – овочів, х6 – молокопродуктів, за яким
ІІ. ЦФ (Вартість раціону) V = 3x1 + 2x2 + 5x3 + 10x4 + 5x5 + 3,2x6  min
ІІІ. За обмежень:
Білок: 50x1 + 20x2 + 180x3 + 100x4 + 50x5 + 98x6 ≥ 2000
Кальцій: 6x1 + 4x2 + 3x3 + 9x4 + 6x5 + 14x6 ≥ 120
Вітаміни: 2x1 + x2 + x3 + 11x4 + 3x5 + 5,9x6 ≥ 40
та граничних умов: усі хі ≥ 0.

Рис. 1.24. Початкові дані

3
Перший постановник Дж. Стіглер (1911-1991), перша публікація: Stigler G. J. The cost of
subsistence. J. Farm. Econ., 1945. На початку своєї кар’єри він сформулював цю задачу й
відшукав, як виявилося пізніше, близький до оптимального найдешевший раціон, що мав
задовольнити 9 дієтичних вимог у наборі із 77 видів продуктів, здійснивши вручну перебір
500 варіантів наближеними методами. Тоді ж зробив невтішний висновок про
неможливість точного розв’язку цієї задачі математичними методами й змінив тематику,
ставши Нобелівським лауреатом з економіки за 1982 р. Винахід симплекс-методу
спростував його висновок. Данциг згадував: у 1947 р. Stigler’s Minimum cost diet problem
була першою тестовою задачею ЛП із 9 нерівностей-обмежень із 77 невідомими для
перевірки результатів симплекс-методу, яку 10 працівників протягом 12 днів розв’язували
за допомогою калькуляторів, вартість дієти Стіглера вдалося покращити лише на 20 центів
30
Рис. 1.25. Рішення

Аналіз

Пряма задача
Знайдено структуру, вміст і вартість «ідеального» раціону, це: Концентрати та
М/продукти, х3  7,3 од. та х6  7 од., відповідно, мінімальна вартість раціону 58,9
гр. од. Щоб утворити такий раціон прийшлося перевищити вміст вітамінів на 381
од.

Двоїста задача
Тіньові ціни правих частин обмежень (норм споживання) вказують на можливе
зменшення загальної вартості раціону (ЦФ) при зменшенні норм на 1, це: білок
(0,0272), кальцій (0,039), або навпаки, збільшення цих норм це збільшення витрат
(«вузькі місця»). Наприклад, при зниженій нормі білка 1999 од. ЦФ = 58,9039 -
0,0272 = 58,8767 гр. од.
Нормовані вартості шуканих невідомих (цін продуктів) вказують на збільшення
загальної вартості раціону (ЦФ) при вимушеному використанні у раціоні одиниці
«невигідного» продукту (сіно, силос, зерно, овочі). Найдорожчим виявилося зерно
(6,94 гр. од. за одиницю), найдешевшим – силос (1,3 гр. од.) – якщо так треба,
готуйтеся до здорожчення раціону.

Задача про випуск неподільних продуктів із неподільних ресурсів

Якщо продукція і ресурси неподільні, тобто, коли кількості вимірюють у цілих


(натуральних) числах, тоді відповідна оптимізаційна задача у тій же мережі
«ресурси - продукти» відноситься до класу цілочислового (integer) лінійного
програмування (ЦЛП, ILP).

Зауваження
31
Існує хибна думка, що розв’язок у цілих числах можна отримати округленням до
найближчого цілого значення змінної неперервного типу. Але так може статися
лише для дуже простої задачі із «вдалим» набором початкових даних і отриманих
рішень, однак у загальному випадку на це розраховувати не варто, саме тому ЦЛП
є окремим класом моделей оптимізації, до того ж, далеко не простим, коли
виявилася неспроможність симплекс-методу для розв’язання лінійних задач
оптимізації у цілих числах.

Приклад 1.5. (файл ILP.LPP)


Задача про раціон у цілих числах

Рис. 1.26. Початкові дані


Задача цілочислової оптимізації
І. Знайти план Х = (Х1, Х2), щоби
ІІ. ЦФ D = 2,5X1 + 2X2 → min
ІІІ. За обмежень:
C1: 6X1 + 3X2 ≥ 200
C2: 3X1 + 5X2 ≥ 180
та граничних умов:
0  Х1, Х2   (М)
Х1, Х2 – цілого типу (integer).

Рис. 1.27. Рішення


Аналіз

І. Х = (22, 23)
ІІ. D = 101
III. Обмеження C1: 201 > 200
C2: 181 > 180.

Приклад 1.6. (скорегований файл LP.LPP)


32
Для порівняння на тих же початкових даних розв’язується задача ЛП.

Рис. 1.28. Початкові дані

Рис. 1.29. Рішення


Аналіз

Пряма задача
І. Х = (21,9048; 22,8571)
ІІ. D = 100,4762
III. C1: 200 = 200
C2: 180 = 180.

Двоїста задача
Для С1 та С2 тіньові ціни: 0,3095; 0,2143.

Порівняльна таблиця
ЛП ціни для ЦЛП

Рис. 1.30. Неперервний та цілочисловий розв’язки


33
Маючи результати цих двох задач:
х1 = 21,9048; х2 = 22,8571 для ЛП та х1 = 22; х2 = 23 для ЦЛП
можна б зробити висновок, що отримати розв’язок у цілих числах можна просто
округленням дійсного числа, але пропонувати навчальну задачу з такими початко-
вими даними нечесно.

Висновок
Для задач ЦЛП на відміну від аналітичного (математично обґрунтованого,
«формульного») алгоритму симплекс-методу застосовують алгоритми
переборного типу, де порівнюються суто цілі числа. Тому, щоби оцінити
обмежуючі фактори (ПЧО) чи коефіцієнти ЦФ, цілочислові задачі розв’язують у 2
етапи, послідовно отримуючи неперервний й цілочисловий варіант, як було
зроблено вище. Наприклад, неперервний варіант цієї задачі має тіньові ціни для
ПЧО (0,3095; 0,2143), чого не існує в ЦЛП, відповідно, видно, що ПЧО обмеження
С1 впливовіша за ПЧО С1. Також для задач ЦЛП відсутній параметричний аналіз.

Приклад 1.7. Отримати для порівняння розв’язки задач ЛП/ЦЛП про оптимальний
розподіл ресурсів розміром 14×20.

Задача ЛП

Рис. 1.31. Робоча таблиця

Задача ЦЛП

34
Рис. 1.32. Робоча таблиця

Рішення

Рис. 1.33. Порівняння рішень: невідомі + обмеження

35
Аналіз

Порівняння неперервного та цілочислового планів


Структура: Х = (х8, х12, х20) Х = (х8, х12, х18, х20).
Плани: ХЛП= (4,1; 2,26; 4,4); Х ЦЛП = (3, 2, 2, 2), де видно, що про округлення мова
не йдеться.
ЦФ ЛП = 2130,6; ЦФ ЦЛП = 2041
ПЧО
ЛП: Дефіцитні ресурси: R1 (51), R4 (64), R12 (61), є тіньові ціни і допустимі
діапазони.
ЦЛП: дефіциту нема, про що можна наче не хвилюватися, бо є навіть залишки: R1
(2), R4 (1), R12 (3).

Уявімо на мить – «знавець» рекомендує округлити неперервні значення до


найближчого цілого, тож: 4,08 → 4; 2,26 → 2; 4,4 → 4, маємо Х = (4, 2, 4) проти
коректного плану Х ЦЛП = (3, 2, 2, 2).
За сумнівним рішенням Х = (4, 2, 4) дохід (D) = 4193 + 2260 + 4170 = 1972 гр.
од., (проти 2041 гр. од.), «вигідний» продукт (х18) залишається поза уваги ОПР.

Висновок
Моделі ЛП та ЦЛП найкращим чином доповнюють одна одну: засоби ЛП
дозволяють здійснити аналіз чутливості, або точно визначити потенційні «вузькі
місця», зате засоби ЦЛП враховують цілочисловий тип шуканих невідомих.
Отримання цілочислового рішення округленням рішення дійсного типу є
принципово помилковим способом.

Задача «бути чи не бути»

Різновидом моделей ЦЛП є модель із бінарними (binary) шуканими


змінними, які мають лише два можливих значення, які позначають (0, 1) й які
відповідають принциповим рішенням типу або/або: «не випускати/випускати», «не
купувати/купувати» тощо.

Приклад 1.8. Організація із контрольованим режимом відвідувань представляє


собою сукупність m приміщень різного розміру і форми, які з’єднані між собою n
дверима, через які відвідувачі мають доступ до них чи через них.
Треба мінімізувати витрати для забезпечення нагляду за усіма приміщеннями
шляхом оптимального розміщення засобів контролю. У загальному випадку
наглядачами можуть бути люди-контролери, автоматичні пристрої (сканери,
камери спостереження), а місця їх розміщення дозволяють визначити відповідні
об’єкти контролю: частину чи усе приміщення, групу приміщень чи певні об’єкти
в приміщенні, наприклад, сейфи чи сервер комп'ютерної системи.
У прикладі розглядається музей, розміщений у старовинному палаці-фортеці, де
усі кімнати за тодішнім архітектурним стилем з'єднані між собою дверима. Кожна
кімната містить коштовні експонати, що мають бути під пильним контролем.
Керівництво музею для економії витрат на оплату праці контролерів, аби
36
мінімізувати їх чисельність без втрати повного контролю, вирішило розміщувати
контролера в отворі дверей, щоб він наглядав за суміжними кімнатами.

Рис. 1.34. План приміщення із 17 кімнат та 21 дверей між ними

Позначення
i – поточний номер кімнати (Кi), i = 1, …, 17
j – поточний номер двері (Дj), j = 1, …, 21
A = {aij}– матриця опису приміщення «кімнати-двері» розміром 17  21, де aij = 1,
якщо і-та кімната видна із j-ої двері.
Х = {хj}– план розміщення наглядачів, хj = 1, якщо j-ті двері під наглядом, інакше
хj = 0.

Задача оптимізації

І. Знайти Х = {xj}, за яким


n
ІІ. Загальна їх кількість (ЦФ) К = x
j 1
j  min
ІІІ. за обмежень:
n

a x
j 1
ij j  1 для i = 1, …, 17 (Кількість наглядачів для кожної кімнати  1)
та граничних умов: усі хj = 1/0 (бінарного типу).

Рис. 1.35. Початкові дані


37
Рішення

Рис. 1.36. План Х


Аналіз

І. Х = (х1, х2, х3, х4, х8, х12, х13, х16, х17, х18)
II. K = 10
III. Стан нагляду: Д1 → К1 + К3; Д2 → К1 + К4; Д3 → К2 + К5; Д4 → К5 + К6;
Д8 → К7 + К8; Д12 → К10 + К14; Д13 → К9 + К12;
Д16 → К11 + К15; Д17 → К11 + К16; Д18 → К13 + К17.
Кімнати 1, 5, 11 під подвійним контролем.

Рис. 1.37. План розміщення наглядачів

38
Глава 2. Мережеве моделювання
Мережеві моделі – моделі математичного програмування зі спеціальною
структурою, які використовуються при побудові ефективних алгоритмів з-за
необхідності розв’язання великих за розмірами практичних задач. Історично
склалося, що першою задачею зі спеціальною структурою була транспортна
задача.
Мережеве моделювання – підхід і технологія дослідження певного явища, процесу
чи об’єкту шляхом їх відображення у вигляді мережі, його основа – апарат
математичної теорії графів і мереж. Вдала композиція методологій математичного
програмування та теорії графів і мереж визначила досконалий обчислювальний
апарат комбінаторної оптимізації для розв’язання задач про потоки у мережах
неперервного і дискретного типів.
Розглянуто 7 типових задач цього класу у матричній постановці із застосуванням
обчислювальних інструментів модулю Network Modeling, побудованих на
комбінованому алгоритмі network simplex.

Класична транспортна задача4

Приклад 2.1.
Постачальники – 3 консервні заводи, розміщені у Портланді (шт. Мейн), Сіеттлі та
Сан-Дієго, їх пропозиції: 250, 500 та 750 банок рибних консервів.
Споживачі – 5 складів, які розміщені в Нью-Йорку, Чикаго, Канзасі, Далласі та
Сан-Франциско, їх попит – по 300 банок (рис. 2.1).
Задані питомі витрати на транспортування (матриця 3×5) між парами
«постачальник → споживач». Треба визначити оптимальний план перевезень –
кількості банок постачання від трьох заводів до п’яти складів, щоби мінімізувати
загальні транспортні витрати5.
Це перша оптимізаційна задача, яка за своєю природою має мережеву
організаційну структуру, де відшукуються продуктові потоки мінімальної
загальної вартості. Вона під назвою Transportation Problem прародителькою
увійшла в сучасну історію математичної оптимізації, ставши класичною з-за
матричну постановку, що базується на апараті лінійної алгебри, машинні методи

4
G. B. Dantzig. Application of the Simplex Method to a Transportation Problem, in T. Koopmans
(ed.) “Activity Analysis of Production and Allocation”, NY, 1951, pp. 359-373 (перша відкрита
публікація про симплекс-метод, 1949 р.)
5
До 1960 р. Данциг займався плануванням авіаційних перевезень для ВПС США, тож ця
задача прозоро натякає на реальні «консервні банки» та про поставки в межах держави;
його колега, лауреат Нобелівської премії з економіки (за винахід ЛП, разом і Л. В.
Канторовичем, СРСР, 1975 р.) Т. Купманс під час війни планував міждержавні морські
торгівельні перевезення; у післявоєнний період транспортним проблемам сприяв
інтенсивний розвиток економіки. Звідси актуальність і першочерговість розв’язання
симплекс-методом саме транспортних задач, для розв’язання яких була створена перша
програма для ЕОМ (1950 р.)
39
отримання рішень та їх аналіз, визначивши технологію мережевого моделювання
задач планування та управління, розв’язок (Приклад 2.4).

Рис. 2.1. Задача у мережевій постановці, на дугах питомі вартості [3]

Транспортна задача стала яскравою демонстрацією сили алгоритму симплекс-


методу6, який за своїми властивостями щодо універсальності, потужності, солідній
математичній обґрунтованості, аналізу чутливості на основі принципу двоїстості
вважається одним із епохальних внесків в обчислювальну математику ХХ століття.
З моменту його винайдення створено різноманітні його версії, точні і наближені,
евристичні і математично обґрунтовані, розраховані на специфічні класи задач
оптимізації.
Мережа класичної транспортної задачі має дві категорії вузлів: m1 постачальників,
m2 споживачів7, кожен постачальник з кожним споживачем з’єднаний
направленими «завод → склад» зваженими дугами. З’єднання «кожен з кожним»
зводиться до представлення мережі прямокутною матрицею розміром m1 × m2 (або
m2 × m1, з позицій зручності).
У варіанті m1 × m2 постачальники із їх пропозиціями розміщуються по рядках, а
споживачі із попитом – по стовпцях, у клітинках на їх перетині – вагові коефіцієнти
дуг (питомі витрати, відстані, тривалість). Клітинки шуканої матриці рішень з
такою ж структурою містять значення шуканих потоків, наприклад, х(2,5) = 12 це
рішення: від 2-го постачальника 5-му споживачу доставити 12 од. продукту.

6
«Приголомшуюча сила симплекс-методу завжди вражала мене». Дж. Данциг
7
такий граф називають двочастковим чи дводольним (bipartite), позначається:
G = (N1N2, A), де: N1 – множина m1 вузлів, N2 – множина m2 вузлів, A – множина дуг
40
З теорії лінійного програмування відомо, що у задачі із m1 постачальниками та m2
споживачами число ненульових потоків дорівнює m1 + m2 –1. Наприклад, при m1 =
21, m2 = 13 (приклад 2.4) ненульових потоків буде 33.

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


скоротити тривалість процесу пошуку оптимуму інструментальні засоби WinQSB
розв’язують задачу у два етапи: на першому етапі наближеними, простими і
швидкими методами аналізу матриці початкових даних

відшукується початкове рішення (initial solution), на другому – «важка артилерія»


у вигляді симплекс-методу це рішення уточнює, формуючи остаточний розв’язок
прямої та двоїстої задач, зробивши для цього значно менше ітерацій.

Приклад 2.2. (файл TRANSPORT.NET)


Три постачальники (Boston, Denver, Austin) мають пропозиції (Supply) певного
продукту у кількостях (100, 200, 400), чотири споживачі (Dallas, Kansas, Tampa,
Miami) мають попит (Demand) на цей продукт (200, 100, 150, 250), які утворюють
транспортну мережу:

Рис. 2.2. Схема перевезень

Її дані представлені таблицею


41
Рис. 2.3. Транспортна таблиця: пропозиції, попит, питомі витрати

Мережа, представлена схемою (рис. 2.2), складається із


2 груп вузлів:
m1 = 3: постачальники (Boston, Denver, Austin), їх потенціали – пропозиції
продукту та
m2 = 4: споживачі (Dallas, Kansas, Tampa, Miami), їх потенціали – попит на продукт,
12 дуг із напрямками «постачальник → споживач», їх вагові коефіцієнти – питомі
транспортні витрати.
В розрахунках мережа представлена транспортною таблицею (рис. 2.3), яка
складається з трьох частин, це:
 матриця питомих витрат (Unit Cost) розміром 3×4,
 вектор-стовпець пропозицій (Supply) з 3-ох значень та
 вектор-рядок попиту (Demand) з 4-ох значень.
Треба визначити оптимальний план забезпечення попиту споживачів, тобто,
визначити план перевезень (Shipment): звідки, кому і скільки доставити продукту,
щоби мінімізувати загальні транспортні витрати, застосовується вбудований
розв’язувач задач мережевого моделювання (модуль Network Modeling).

Математична модель

Позначення:
i, j – поточні індекси постачальника та споживача, i = 1, 2, 3; j = 1, 2, 3, 4
С = {cij}, cij або c(i,j) – питомі витрати доставки від i-го постачальника до j-го
споживача,
S = {si}, si – пропозиція i-го постачальника,
D = {dj}, dj – попит j-го споживача,
X = {xij}, xij або x(i,j) – величина шуканого потоку від i-го постачальника до j-го
споживача,
Z – загальні витрати (ЦФ).

Задача оптимізації
І. Знайти матрицю потоків X = {xij}, щоби
ІІ. ЦФ Z = СХ → min
III. За обмежень:
4

x
j 1
ij  si експорт і-го постачальника не перевищує його пропозиції
3

x
i 1
ij  d j імпорт j-го споживача дорівнює його попиту
та граничних умов: Х ≥ 0, дійсного типу.
42
Рішення
Команди і складові:
Results → Solution Table – All (повна таблиця)
Results → Graphic Solution (графічний розв’язок)
Results → Range of Optimality (отримання Reduced Cost)
Results → Range of Feasibility (отримання Shadow Price).

Рис. 2.4. Розв’язок прямої задачі ЛП

Рис. 2.5. Розв’язок двоїстої задачі ЛП

Аналіз

43
Пряма задача
І. Знайдено матрицю перевезень Х

ІІ. Загальні транспортні витрати для забезпечення попиту мінімальні зі значенням


3350 гр. од.
ІІІ. Усі обмеження задоволені (нерівності стали рівняннями), оскільки за
зазначеними пропозиціями і попитом транспортна задача збалансована (закрита),
сума пропозицій = сумі попиту = 700 од.

Двоїста задача
Для правої частини обмежень (ПЧО) визначені тіньові ціни (Shadow Price):
 для пропозицій – це від’ємні числа чи нулі (-2, -2, 0), які означають, що
збільшення на 1 відповідної пропозиції зменшить значення ЦФ на відповідну
величину, видно, це вигідно для постачальників у Бостоні та Денвері, правда,
збільшення запасів обмежені максимально допустимими значеннями (150, 300)
відповідно
 для попиту – це додатні числа (2, 5, 7, 8), які означають, що збільшення попиту
на 1 відповідного споживача збільшить значення ЦФ на цю величину, а
зменшення на 1, відповідно, зменшить значення ЦФ на цю ж величину. Видно,
що найдорожчим для транспортної компанії є споживач у Майямі (8), а у
Далласі – найдешевший (2).
Для матриці питомих витрат (коефіцієнтів ЦФ) визначена матриця редукованих
вартостей (Reduced Cost):

Додатні значення цієї оцінки стосуються нульових («невигідних») поставок,


вказуючи, за якими граничними (знизу) питомими витратами поставка за
відповідним маршрутом буде вигідною. Наприклад, поставка маршрутом Бостон-
Канзас (тариф 4, оцінка 1) буде додатною («вигідною») лише за зменшеним
тарифом, який буде меншим за різницю 4 – 1 = 3, тобто, при тарифі у 2,99 гр. од.
поставка буде вигідною, зробивши це зразу ж, отримаємо потік х12 = 100 (забравши
його у Денвера):

44
Рис. 2.6. Оцінки

Так буде не завжди, шансів реально скористатися маршрутом Бостон-Даллас


(тариф 5, оцінка 5) немає, лише безкоштовні (5 – 5 = 0) перевезення ним вигідні
(при 0,001 вже ні).
Аналогічно, для маршруту Денвер-Даллас (3, 3).

Таким чином, для транспортної компанії тіньові ціни пропозицій (-2, -2) є
надзвичайно корисними показниками, бо лише вони спроможні виявити «вузьке
місце» у системі: саме наявні пропозиції постачальників із Бостона і Денвера
стримують досягнення нижчих транспортних витрат. Тож лише розширенням
виявленого «вузького місця» – збільшенням вказаних пропозицій Бостона і
Денвера у визначеному діапазоні допустимих значень, можна покращити кінцеве
рішення, зменшивши загальні транспортні витрати для задоволення попиту.
Інший припустимий шлях до зменшення транспортних витрат – скористатися
тіньовими цінами попиту (2, 5, 7, 8), щоби порадити споживачам переглянути свої
замовлення, зробивши їх скромнішими, – у першу чергу, споживачу у Майамі (з
найвищою тіньовою ціною 8 гр. од. за 1 продукту).

Висновок
Постачальник у Бостоні, маючи запас на збільшення у 150 од., може взагалі
витиснути із системи постачання невигідний Остин (з нульовою тіньовою ціною)
– приклад успішної бізнес-ситуації, коли є підстави для обґрунтованої
конкурентної боротьби. Таким же вигідним для транспортної компанії
постачальником є Денвер (з оцінкою -2), так що Остин точно не втримається з
такими конкурентами, якщо вони збільшать свої пропозиції, але до того він
покриває дефіцит пропозицій.

Зауваження 1.
Ліві частини системи обмежень – суми шуканих невідомих, тож, якщо праві
частини обмежень задати цілими числами, тоді й шукані невідомі будуть цілими
числами. Це дуже позитивна властивість моделі транспортної задачі ЛП, коли
маємо цілочисловий розв’язок і одночасно двоїсті оцінки ПЧО.
45
Зауваження 2.
Для незбалансованої (відкритої) транспортної задачі, коли є залишки чи дефіцит
пропозицій, NM-Розв’язувач, не змінюючи розмір матриці, приписує різницю із
відповідним знаком постачальнику чи споживачу із нульовим тарифом, що не
впливає на значення ЦФ. Це зручно, бо не треба слідкувати за балансом і, в разі
дисбалансу, додавати фіктивних постачальників чи споживачів (це робить
розв’язувач).

Приклад 2.3. За попередніми початковими даними споживач у Канзасі хоче 60%


замовлення (60 од.) отримати саме із Бостона, інші 40% від будь-яких інших
постачальників.
Реалізація цієї умови зводиться до додаткового обмеження: х(1,3) = 60, тобто, до
формування і розв’язання нової задачі тепер із 4-ма джерелами, де вузол Бостон
наче розщеплюється, враховуючись двічі із пропозиціями у 60 та 40 од.
Так, Бостон-1 (Source 1) розподіляє 60 од. лише Канзасу за зазначеним тарифом
(4), іншим трьом – ні, тоді як Бостон-2 (Source 2) розподіляє залишки від своїх
пропозицій у 40 од. усім вузлам, окрім одного – Канзасу, заборонені дуги, їх 4,
мають специфічні вагові коефіцієнти – надвисокий тариф (99), на рис. 1.9 –
хрестики.
У цьому прикладі додаткове обмеження: х(1,3) = 60 реалізується такою мережею:

Рис. 2.7. Оновлена мережа

яку представляють у зміненій задачі матрицею початкових даних розміром 4×4


шляхом додавання вузла-постачальника Boston2 (Edit → Add a Node) і
перейменування у Boston1 (Edit → Node Names), рис. 2.8.

46
Рис. 2.8. Нові початкові дані

Рішення (рис. 2.9)

Рис. 2.9. Нове рішення, зі здорожчанням на 60 гр. од.

Приклад 2.4. Задача Данцига


Формуємо нову задачу:

Рис. 2.10. Вікно налаштування нової задачі


47
Позначення
Постачальники (Source): 1 (Портланд), 2 (Сіеттл), 3 (Сан-Дієго)
Споживачі (Destination): 1 (Нью-Йорк), 2 (Чикаго), 3 (Канзас), 4 (Даллас), 5 (Сан-
Франциско).

Рис. 2.11. Матриця початкових даних

Задача оптимізації
І. Знайти матрицю X = {xij}, щоб
ІІ. ЦФ Z = СХ → min
III. За обмежень:
3

x
j 1
ij  si ,
5

x
i 1
ij  dj
та граничних умов: Х ≥ 0, дійсного типу.

Рішення

Рис. 2.12. Рішення (ненульові перевезення)

Приклад 2.5. 21 заготівельна організація має запаси сировини на переробку, 12


переробних підприємств мають попит для виготовлення певної продукції з неї,
треба визначити оптимальний план постачання сировини на підприємства й, за
потребою, подальші дії щодо зниження транспортних витрат, схема розміщення
постачальників і споживачів сировини (рис. 2.13).
За координатами цих пунктів в Excel формується мережа і обчислюється
транспортна матриця відстаней розміром 21×12 за координатами вузлів, яка разом
із заданими пропозиціями і попитом надалі передається в WinQSB (рис. 2.14).

48
Рис. 2.13. Пункти заготовки та переробки

Рис. 2.14. Початкові дані

Рис. 2.15. Схема прив’язки постачальників до споживачів сировини


49
Аналіз

Пряма задача
І. NM-Розв’язувач автоматично створює 13-ий стоковий вузол (Unused
Destination), куди направлено залишкові потоки від 4-ох джерел (5, 6, 9, 17).
ІІ. ЦФ Z = 18593 гр. од.
III. Усі обмеження задоволені.

Двоїста задача
Тіньові ціни і допустиме збільшення для пропозицій постачальників:

,
лідери: Первомайськ (-11), Кривий Ріг та Вінниця (-8).

Тіньові ціни попиту споживачів:

.
Рис. 2.16. Двоїсті оцінки

Транспортна задача з проміжними пунктами

Дж. Данциг вперше увів розширений варіант транспортної задачі із проміжними


пунктами (transshipment problem), яку попередньо зобразив логістичною мережею
постачання, що складається з 8 вузлів, з яких:
2 джерела (origin, 1, 5),
3 стоки (destination, 2, 6, 8) й
3 проміжних вузли (3, 4, 7), із відповідними дугами (рис. 2.17).
Ця модель краще відтворює реальні комунікації транспортних потоків, де є три
типи вузлів:
 mo джерел (origin), звідки потоки витікають, вони мають пропозиції (+),
 mt проміжних (transshipment) пунктів, куди потоки втікають й звідки витікають,
та
 md стоків (destination), куди потоки втікають, вони мають попит (-).
Проміжні пункти можуть бути пасивними (транзитними, без пропозицій/попиту)
чи активними, маючи власний потенціал – пропозиції (+) чи попит (-).

50
Рис. 2.17. Схема перевезень

Дуги мають (для джерел та стоків) чи можуть не мати (між проміжними пунктами)
орієнтацію, таку мережу називають змішаною.
Загальна сума вузлів m = mo + mt + md визначає розмір мережевої транспортної
задачі, яку представляють квадратною (на відміну від прямокутної для класичної
транспортної задачі) матрицею розміром m × m. (Приклад 2.7).

Приклад 2.6. (файл NETFLOW.NET)


Задана транспортна мережа (рис. 2.19) і відповідна матриця розміром 9 × 9 (рис.
2.18), де:
 S1, S2 – джерела, їх пропозиції (600, 800 од.)
 T1, T2, T3, Т4 – активні проміжні пункти, їх потенціали (-200, +350, +200, -100),
 D1, D2, D3 – стоки, їх попит (-500, -350, -900),
з’єднані між собою 9 × 9 = 81 дугами.
Більшість з них, з-за відсутністю зв’язку, мають нескінченну довжину (в робочій
таблиці – вільні клітинки, реально – великі числа).
Задача відкрита: сума пропозицій 1950 од., сумарний попит – 2050 од., дефіцит 100
од., значить, хтось із споживачів недоотримає продукту у бажаній кількості.

У стовпці Supply вказують пропозиції (потенціал з «+»), у рядку Demand – попит


(потенціал з «–»), без мінусу.

Рис. 2.18. Початкові дані

51
Рис. 2.19. Задана транспортна мережа

Рис. 2.20. Рішення: ненульові потоки

Рис. 2.21. Рішення: матрична (вставка в Excel) і графічна форми

Аналіз

Пряма задача
І. В матриці транспортних потоків Х розміром 9 × 9 має бути 9 + 9 – 1 = 17 зайнятих
клітинок, з них 8 ненульових значень потоків:

52
x(S1,T1) = 200, x(S1,T2) = 400, x(S2,T3) = 800, x(T2,D1) = 500, x(T2,D2) = 250,
x(T3,T4) = 100, x(T3,D3) = 900, х(Ф, D2) = -100, Ф – фіктивний постачальник,
інші – «потокові» нулі.
ІІ. Мінімальні транспортні витрати склали величину 7900 гр. од.
ІІІ. Усі обмеження задоволені.

Двоїста задача
І. Тіньові ціни вузлів-постачальників (від’ємні числа):

Рис. 2.22. Двоїсті оцінки

вказують на шляхи зменшення значення ЦФ шляхом збільшення пропозицій:


S1 (-1, до 600), T2 (-3, 350), T3 (-4, до 1000) при незмінному попиті.
ІІ. Зменшуючі вартості вказують на можливості існування інших маршрутів за
умови зменшення питомих витрат. Наприклад, питомі витрати «невигідного»
маршруту S2 → T4 дорівнюють 8, двоїста оцінка 2. Тоді: при питомих витратах 8
– 2 = 6 маршрут стає вигідним, але значення ЦФ зберігається, зате вже при витратах
5,99 гр. од. значення ЦФ зменшене, 7899 гр. од. проти 7900 гр. од.
Для ліквідації дефіциту у 100 од. маємо три варіанти поповнення запасів згідно
тіньових цін:
S1 (-1), T2 (-3), T3 (-4).
Результати:
S1 (-1), запас 700 од., ЦФ = 8500 гр. од.,
T2 (-3), запас 450 од., ЦФ = 8300 гр. од.,
T3 (-4), запас 300 од., ЦФ = 8400 гр. од.,
ці значення ЦФ визначені щодо вартостей оновлених потоків.
Перспективним є постачальник Т2, придивимось до нього уважніше.

Параметричний аналіз залежності значення ЦФ від пропозиції вузла Т2 (рис. 2.23)


вказує на можливість серйозного зменшення значення ЦФ, дійсно, вже при
пропозиції у 550 од. значення ЦФ складе величину 8000 гр. од., є тенденція
зниження загальних витрат аж до пропозиції у 1250 од.

53
Рис. 2.23. Вузол Т2

Різке збільшення пропозиції від Т2 (1250 од., рис. 2.24) серйозно зменшить загальні
витрати (до 6700 гр. од. проти 7900 гр. од.), монопольно забезпечить попит
кінцевих споживачів D1, D2, D3, постачальник S2 із пропозицією у 800 од. буде
відтиснутий з системи постачання.

54
Рис. 2.24. Нове рішення

Приклад 2.7. Задача Данцига

Постановка задачі (с. 45)

Рис. 2.25. Початкові дані

55
Рис. 2.26. Рішення. Пряма і двоїста задача

Рис. 2.27. Схема оптимальних транспортних потоків

Задача про призначення

Ця розповсюджена задача комбінаторної оптимізації «що/кого → куди»


вважається еквівалентом транспортної задачі, відмінності стосуються бінарного
типу (0/1) шуканих невідомих (рішення «не призначати»/ «призначати») та, іноді,
одиничних вагових коефіцієнтів вузлів та збалансованості матриці оцінок. В
реальних постановках вона нічим не поступається транспортній задачі, маючи
відповідну прикладну специфіку.
Постановка задачі: m виконавців чи певні об’єкти (object) призначають для
виконання n робіт чи на місця призначення (assignment) із заданою ефективністю
(чи витратами) cij за умов: виконавець виконує одну роботу, робота виконується
одним виконавцем.
Мета: виконати ці роботи з максимальною ефективністю (чи із мінімальними
витратами).
56
Приклад 2.8. (файл ASSIGNMENT.NET)

Чотири претенденти (John, Peter, Toshi, Rudy) на зайняття вакансій (A, B, C, D)


після тестування отримали наступні оцінки витрат часу на їх перепідготовку для
виконання відповідних робіт:

Рис. 2.28. Матриця витрат (пропозиції і попит одиничні, не вказуються)

Рис. 2.29. Мережа

Треба призначити цих претендентів на вакансії, щоби мінімізувати загальну


тривалість навчального часу.
Задача розподілу претендентів на вакансії представлена мережею (рис. 2.29), що
складається із двох груп вузлів, це:
 4 претенденти (John, Peter, Toshi, Rudy) та
 4 вакансії (A, B, C, D), їх вагові коефіцієнти дорівнюють одиниці (за
умовчуванням), і
16 дуг із напрямками «претендент → вакансія», їх вагові коефіцієнти – оцінки
тестування, представлені таблицею (рис. 2.28) розміром 4×4 (без правих частин
обмежень, реально вони дорівнюють 1).

Задача оптимізації
І. Знайти матрицю призначення Х = {xij}, i, j = 1, …, 4, щоб
4 4
ІІ. ЦФ P   с x
i 1 j 1
ij ij  min
4 4
ІІІ. За обмежень:  xij  1 ,
j 1
x
i 1
ij 1

57
та граничних умов: Х{0,1}.

Рішення:

Рис.2.30. Рішення

Аналіз

Оптимальне призначення: John → B, Peter → C, Toshi → A, Rudy → D,


мінімальна тривалість навчання 20 годин (6 + 3 + 2 + 9).

Для цієї задачі розв’язувач використовує алгоритм, за яким двоїсті оцінки


обмежені лише значеннями Reduced Cost, які вказують на додаткові витрати з-за
вимушеного відхилення від оптимуму. Наприклад, якщо Toshi призначать
виконувати роботу D, вчитися якій йому треба 16 годин, тоді сума навчального
часу збільшиться на 7 годин. Аналогічний смисл мають ці оцінки для інших
неоптимальних рішень.
Але цей алгоритм не обчислює тіньові ціни – оцінки правих частин обмежень,
кількостей претендентів та кількостей вакансій, які є основою прийняття рішень
щодо покращення значення ЦФ - зменшення тривалості навчального періоду.
Оскільки задача про призначення є еквівалентом транспортної задачі, розв’яжемо
її саме так.
Формуємо і розв’язуємо нову транспортну задачу із цими ж початковими даними,
Рішення (рис. 2.31).

58
Рис. 2.31. Задача про призначення як транспортна задача (min ЦФ)

Нас тут цікавлять лише отримані тіньові ціни (Shadow Price), бо усі інші результати
отримані раніше. Задача невеличка за розмірами, тому є єдина цікава оцінка –
число -1, приємне для Петера. Смисл цієї оцінки у контексті задачі – якщо б
претендентів з таким набором оцінок тестування було двоє, загальні витрати
скоротилися б на одну годину, тобто, серед усіх претендентів (у інших нульові
оцінки) Петер найкраще підготовлений для виконання усіх робіт.
Тіньові оцінки для вакансій (2, 6, 4, 9) оцінюють вплив збільшення на 1 числа
вакансій на загальні витрати часу, робота D з оцінкою 9 найдорожча, бо потребує
більше часу для претендентів, А – найдешевша.

Приклад 2.9. Ті самі чотири претенденти (John, Peter, Toshi, Rudy) на зайняття
вакансій (A, B, C, D) після тестування отримали наступні оцінки ефективності
(професійної підготовки) для виконання відповідної роботи. Треба призначити цих
претендентів на вакансії, щоби максимізувати загальну ефективність виконання
відповідних робіт.
Оскільки початкові дані не змінювалися, командою Edit → Objective Function
Criterion змінюємо лише критерій цільової функції з мінімуму на максимум:

Рис. 2.32. Налаштування ЦФ


і отримуємо рішення (рис. 2.33):

59
Рис. 2.33. Призначення на максимум ефективності

Повторний розрахунок для транспортної задачі і рішення на максимум ЦФ

Рис. 2.34. Задача про призначення як транспортна задача (max ЦФ)

Аналіз

Тіньові ціни для претендентів (18, 14, 16, 17) вказують на можливе збільшення
значення ЦФ при збільшенні числа претендентів на одиницю, тут лідером з
найвищою оцінкою 18 є Джон, найгірший – Петер з оцінкою 14.
Тіньові оцінки для вакансій (-9, -8, -11, 0) оцінюють негативний вплив на ЦФ
збільшення числа вакансій на 1, робота С з оцінкою -11 найгірша серед них.

Задача про максимальний потік

Задана мережа, у загальному випадку, ненаправлена чи змішана, де між


парою вузлів, зокрема, між джерелом s та стоком t, треба визначити максимальний
потік із врахуванням заданих пропускних здатностей дуг. У [24], де задача про
максимальний потік (maximal flow problem) вперше сформульована і розв’язана,
визначена двоїста до неї задача пошуку т. зв. мінімального перетину мережі
(minimal cut problem) – множини насичених8 дуг, видалення яких перетинає мережу
навпіл, розділяючи джерела і стоки. Доведено, що максимальний потік мережею
дорівнює пропускній здатності мінімального перетину мережі.
Мінімальний перетин вважається набагато ціннішим рішенням з-за можливості
визначення конкретного «вузького місця», яке обмежує потік мережею.

8
у них шукана величина потоку дорівнює заданій пропускній здатності дуги
60
Данциг в [3] показав зв’язок цієї задачі із мережевою транспортною задачею.
Якщо (i,j)-та дуга має пропускну здатність в обох напрямках πij та πji, тоді
шуканим потокам xij та xji відповідає система обмежень 0 ≤ xij ≤ πij та 0 ≤ xji ≤ πji.
Окрім них, діють обмеження у формі рівняння нерозривності потоку для
проміжних k-их вузлів: i

xik  xkj  0 – сума вхідних потоків в і-ий вузол Fвх(i)
j
дорівнює сумі вихідних із нього потоків Fвих(i), це принцип балансу потоків у вузлі
– скільки увійшло, стільки й вийшло.

Приклад 2.10. (Файл MAXFLOW.NET)


Задана змішана комунікаційна мережа:

Рис. 2.35. Мережа

де дуговий потік може рухатися у визначеному стрілкою напрямку. Ваговим


коефіцієнтом дуги є її пропускна здатність (ПЗ) для потоків, що течуть у
відповідному напрямку, для ненаправлених дуг можуть відрізнятися. Треба
визначити величину максимального потоку, який можна пропустити мережею,
попередньо визначивши вузол-джерело і вузол-стік.
Знайшовши цю величину, можна знайти «вузьке місце» – сукупність насичених
дуг, сумарна пропускна здатність якої дорівнює знайденому максимальному
потоку, тобто, це мінімальний перетин.
Згідно схеми (рис. 2.35) і таблиці початкових даних (рис. 2.36):

Рис. 2.36. Таблиця початкових даних

у мережі є одна направлена (1→3), усі інші – двонаправлені дуги із різними


пропускними здатностями (аналог – ділянка дороги з різною кількістю полос руху)
в залежності від напрямку потоку, разом 23 дуги.

61
Будь-який вузол із заданих семи може бути джерелом чи стоком, тож відшукується
максимальний потік мережею F(Start, End) за маршрутом від відповідного вузла-
джерела (Start) до відповідного вузла-стоку (End), разом існує 49 маршрутів, з них
7 контурів (потік тече сам до себе, вони неприпустимі).

Рис. 2.37. Вікно визначення маршруту (Start Node → End Node)

Варіант 1.
Start = 1, End = 5, Fвих(1) = x12 + x13 + x14; Fвх(5) = x35 + x45 + x75.

Задача оптимізації

І. Знайти матрицю потоків Х = {xij}, i, j = 7, щоб


ІІ. ЦФ Fвих(1) = max або Fвх(5) = max
ІІІ. За обмежень:
Fвх(5) = Fвих(1)
xij ≤ πij
та граничних умов: xij ≥ 0.

Рис. 2.38. Рішення: F(1,5) = 24


Аналіз

62
Є 3 насичених дуги, які входять у 5-ий вузол дуги: (3-5)/8, (4-5)/10 та (7-5)/6, тож
мінімальним перетином («вузьким місцем») є саме ця підмножина дуг із сумарною
пропускною здатністю у 24 од., видалення цих трьох дуг розділяє усі зв’язки між
джерелом 1 та стоком 5.
Інші дуги потоку від 1-го до 5-го вузла мають резерви ПЗ.
Таким чином, аби збільшити пропускну здатність усієї мережі, треба збільшувати
пропускну здатність дуг, що належать визначеному «вузькому місцю».

Параметричний аналіз пропускної здатності сукупності «вузьких» дуг дає


можливість оцінити діапазон зміни їх пропускних здатностей і очікувані значення
максимального потоку (ЦФ).
Результати аналізу потоку F(1,5):
 дуга (7-5), ПЗ = 6, діапазон збільшення ПЗ: 7 ÷ 20, діапазон ЦФ: 25 ÷ 38 од.,
 дуга (4-5), ПЗ = 10, діапазон збільшення ПЗ: 11÷ 41, діапазон ЦФ: 25 ÷ 54 од.,
 дуга (3-5), ПЗ = 8, діапазон збільшення ПЗ: 9 ÷ 41, діапазон ЦФ: 25 ÷ 57 од.

Варіант ПЗ (3-5) = 41, ЦФ = 57

Рис. 2.39. Результат: F(1,5) = 57

Приклад 2.11. Комунікаційна мережа складається із 37 вузлів та 82


двонаправлених дуг із заданими пропускними здатностями, початкові дані (рис.
2.40). Треба визначити максимальний потік від вузла-джерела 1 до вузла-стоку 34
і знайти мінімальний перетин.

Рис. 2.40. Схема, робоча таблиця (фрагмент)

63
Рис. 2.41. Рішення: максимальний потік (1 → 34)

Аналіз
Із порівняння отриманих потоків і пропускних здатностей дуг
виявлено мінімальний перетин мережі із пропускною здатністю 4
од., це дуги: (11, 34)/2, (37,34)/1, (33, 34)/1, що входять у вузол 34.

Задача про найкоротший шлях

Задача про найкоротший шлях (НШ, Shortest Path Problem), розглянута Дж.
Данцигом як транспортна задача з проміжними пунктами, для розв'язання якої
апарат ЛП доповнений економними способами представлення мережі та
спеціальними алгоритмами. Її розв’язання завершується побудовою дерева НШ,
що містить найкоротші шляхи від вузла-джерела до усіх інших вузлів.

Приклад 2.12. (файл SHTPATH.NET)


Мережею із 10 вузлів і 20 направлених дуг, їх вагові коефіцієнти (cij) – відстані чи
тривалості доставки, є вузол-джерело (1), вузол-стік (10) та 8 транзитних вузлів:

Рис. 2.42. Початкові дані

треба доставити одиницю потоку (xij) з вузла-джерела (1) у вузол-стік (10),


визначивши оптимальний (найкоротший, найдешевший) шлях, який проходить
зваженими дугами.

64
Задача оптимізації
І. Знайти матрицю потоків Х = {xij}, i, j = 10, щоб
10 10
ІІ. ЦФ  c x
i 1 j 1
ij ij  min
ІІІ. За обмежень:
9 9

x x
j 2
ij
i 2
ij для проміжних вузлів

10 10

 x1 j   xi10  1 для джерела і стоку


j 1 i 1
та граничних умов: xij ≥ {0, 1}.

Рис. 2.43. Рішення


Аналіз

Найкоротший шлях (1, 10): 1 → 2 → 5 → 9 → 10 довжиною 29 од.


Дерево найкоротших шляхів (рис. 2.44)

Задача мінімального покриття мережі

Покриття – частина мережі G(m, n) у вигляді дерева, що містить усі m вузлів й лише
m-1 із наявних n дуг, які з’єднують ці вузли, ненаправлені дуги враховуються двічі.
Дерево мінімального покриття (ДМП, minimal spanning tree, MST) – покриття із
мінімальною сумою вагових коефіцієнтів (довжин, питомих витрат) дуг.
Приклади з практики: з’єднати між собою комунікаціями загальної мінімальної
довжини чи вартості населені пункти, точки видобутку корисних копалин чи
зберігання та переробки корисних речовин (питної води, нафти чи газу), елементів
інформаційної системи (серверів, маршрутизаторів, робочих станцій) чи
електронної схеми на платі, командних пунктів, побудувати системи водо-, газо-,
електропостачання тощо, де вартість прокладки зв’язків критична (пустелі, вічна
мерзлота і болота, гори, ліси, водоймища, охоронні зони, підземні комунікації).
65
10

8 9

6
5

2
4
3

Рис. 2.44. Дерево найкоротших шляхів

Приклад 2.13. (файл SPANTREE.NET)

Початкові дані (m = 10, n = 20):

Рис. 2.45. Початкові дані

Це задача бінарного програмування, у прикладі розв’язується алгоритмом


переборного типу й тому рішення не має двоїстих оцінок.

66
Рішення
І. Х = (х1,2, х1,3 ,х1,4 ,х2,5 ,х4,6 ,х4,7 ,х7,8 ,х5,9 ,х9,10)
ІІ. ЦФ D = (2, 9, 6, 7, 7, 9, 8, 11, 9) = 68 од.

Рис. 2.46. Дерево мінімального покриття

Приклад 2.14. Відшукується дерево мінімального покриття мережі із 37 вузлів і


дуг між ними.

67
Рис. 2.47. Задана мережа

Рис. 2.48. Дерево мінімального покриття

68
Задача комівояжера

Це знаменита задача комівояжера (Traveling Salesman Problem, TSP), яка має багато
застосувань й, з-за надвисокої складності отримати точний розв’язок,
використовується для тестування нових обчислювальних алгоритмів та технічних
засобів їх реалізації.

Приклад 2.15. (файл TSP. NET)


Задана повна мережа, де 6 міст (DEV, HOU, DAL, NY, LA, CMH) з’єднані
між собою шляхами заданої довжини dij9, комівояжеру треба відвідати кожне місто,
побувавши у ньому один раз, щоби замкнений маршрут обходу мав мінімальну
довжину (ЦФ).

Задача оптимізації
І. Знайти матрицю потоків Х = {xij}, i, j = 6, щоби
6 6
ІІ. ЦФ  d x
i 1 j 1
ij ij  min
ІІІ. За обмежень:
6

x j 1
ij 1
6
i  xij  1
i 1
та граничних умов: xij ≥ {0, 1}.

Рис. 2.49. Початкові дані

9
у файлі вважається, що відсутні зв’язки DEV-NY та LA-DAL мають нескінченну довжину
69
Це задача бінарного програмування у геометричній постановці, у прикладі
розв’язується наближеними алгоритмами (евристиками) скороченого перебору (їх
пропонується 4) й тому рішення не має двоїстих оцінок.
Для n міст існує (n-1)!/2 допустимих обходів, серед яких треба знайти
оптимальний.

Рис. 2.50. Рішення (ЦФ = 1310)

Приклад 2.16. Задана мережа із 37 міст України, вважається, що усі з’єднані між
собою шляхами, знайти маршрут обходу мінімальної довжини.

D
e
n

Рис. 2.51. Карта, система координат, список міст

Відстані між містами задані повною матрицею розміром 37×37, обчислені за


заданими координатами міст.
Пропонується 4 евристичні алгоритми для пошуку субоптимального обходу.

70
Рис. 2.52. Початкові дані (Excel, QSB)
71
Рішення

Рис. 2.53. Результат (за алгоритмом найближчого сусіда)

Рис. 2.54. Результат (за алгоритмом найдешевшого включення)

72
Рис. 2.55. Результат (за алгоритмом поліпшеного обміну)

Рис. 2.56. Результат (за методом «гілок і границь»)

Обхід:
Бердичів → Хмельницький → Тернопіль →Львів → Ужгород → Мукачево →
Ів.-Франківськ → Чернівці →Вінниця → Умань→ Первомайськ → Вознесенськ
→ Кропивницький→ Кр. Ріг→ Нікополь → Дніпро → Гор. Плавні → Полтава
→ Миргород → Сміла → Черкаси → Пер.-Хмельн.→ Київ → Ніжин → Ромни→
Суми→ Конотоп → Чернігів → Прип'ять→ Коростень →Ковель → Луцьк →
Рівне → Н.-Волинський → Житомир → Фастів → Б. Церква →Бердичів
.

73
Рис. 2.57. Одна зі схем обходу 37 міст

74
Глава 3.
Мережеве моделювання проектної
діяльності
Загальні відомості Мережева модель задач транспортного типу стала основою
новітньої управлінської технології і культури – проектного менеджменту,
визначивши досконалий обчислювальний інструментар в управлінні проектами.
Лише тепер є можливість у єдиному проекту, портфелі чи проектній програмі
узгодити часто несумісні вимоги щодо тривалостей та ресурсного забезпечення
робіт для своєчасного і економного здійснення проектних рішень. Саме завдяки
мережевим моделям проектів вдалося реалізувати унікальні й складні проекти у
науковій сфері (типу космічних програм), в машинобудуванні, будівництві,
соціально-економічній області, державному управлінні тощо.
Проектний менеджмент – неодмінна складова операційного менеджменту,
дослідження операцій та науки управління (Management science).
Мережеві математичні моделі – ядро спеціалізованих програмних продуктів
різного призначення із різними вимогами до професійного рівня користувачів.
Модуль PERT/CPM – зручний інструмент розрахунку календарного плану проекту
без будь-яких строгих вимог щодо математичної чи програмістської підготовки
користувача, єдина вимога – коректно задати початкові дані, визначити тип моделі
й із розумінням зробити аналіз отриманого Рішенняу.
Проект (project) – тимчасова (тобто, в межах строго визначеного часового періоду,
за важливими часовими віхами) строго документована за міжнародними
стандартами організаційна структура, спрямована на створення унікальних
продуктів, послуг чи інших Рішенняів різного рівня важливості і відповідальності,
від розробки звіту з навчально-наукової роботи аж до державних чи міжнародних
програм стратегічного значення.
Їх характерна властивість – високий рівень організації різних дій, можливість
оперативно приймати зважені рішення для реагування на непередбачені події, які
виникають з-за унікальності здійснюваних робіт та зовнішніх умов їх здійснення.
Тож як ніде внесення змін у розроблені плани має здійснюватися швидко й
обгрунтовано за допомогою відповідних комп'ютерних моделей.
Проектна дільність – взаємопов’язаний комплекс заходів з:
 постановки проблеми,
 визначення необхідних видів активної діяльності (робіт, операцій, процедур,
activity),
 організації, планування, ресурсного забезпечення та керування ними,
 розробки календарного плану (розкладу, schedule) і
 супроводження процесу реалізації проекту шляхом своєчасного корегування
розрахованих планів,
це – базова складова сучасного проектно-орієнтованого управління.

75
Мережева модель проекту – представлення робіт проекту у вигляді направленої
зваженої мережі у форматі «робота-вузол» (Activity-On-Node, AON)10. Таке
представлення дозволяє скористатися розвиненим математичним апаратом теорії
графів і мереж, розробити потужні і досконалі програмні продукти для розробки
та корегування календарних планів.

Планування і управління проектом за часовими параметрами (CPM-Time)

CPM (Critical Path Method) – метод критичного шляху (КШ), у цій назві
поєднуються: принцип побудови детермінованої мережевої моделі проекту та
математичний апарат на основі лінійного програмування, розроблений 60 років
тому математиком і програмістом Дж. Келі (Kelley), який реалізується нормальною
(normal) часовою й прискореною (crash) час-вартісною моделями. За цим апаратом
критичним (як характерне «вузьке місце») був названий шлях максимальної
довжини у проектній мережі від старту початкових робіт до завершення кінцевих.
Шуканий критичний шлях утворений критичними роботами, знайти його –
сутність задачі з оптимального планування і управління проектом (project
scheduling problem).
Слово «критичний» у назві методу не випадкове, критичність роботи – тривожний
сигнал керівництву проекту безумовно забезпечити виконання такої роботи
протягом вказаної тривалості і не пізніше, щоби проект був здійснений у
розрахований момент часу. Множина критичних робіт проектної мережі,
фактично, «вузьке місце» проекту – затримка критичної роботи неминуче призведе
до затримки усього проекту. І якщо поточний проект мав би завершитися сьогодні,
а завтра стартує наступний проект, один чи декілька, затримка приведе до «ефекту
доміно», коли детально розрахована система зв’язаних між собою проектів (типу
будівництва «з колес» чи переходу від однієї стадії процесу до наступної) може
мати катастрофічні наслідки.
Прототипом цієї оптимізаційної задачі є раніше розглянута задача про НШ – про
пошук конфігурації і обчислення шляху мінімальної довжини у мережі.

Приклад 3.1. (файл СРМ.СРМ) Проект із 12 робіт представлений мережею

Рис. 3.1. Початкові дані: проектна мережа, робоча таблиця (скорочена)

10
ранній формат «робота-дуга» (Activity-On-Arc, AOA) тут не розглядається
76
та початковими даними (рис. 3.1), таблиця із нормальною тривалістю робіт.
Зазвичай мережа проектного процесу зображується зліва направо, між усіма
зваженими (ваговий коефіцієнт – нормальна11 тривалість, normal time) роботами-
вузлами стрілками-дугами вказані зв’язки згідно заданих відносин передування
(precedence relations), тож кожна робота має «сусідів»:
 зліва, від початку, – попередників (predecessor), їх не має стартова робота, одна
чи декілька, і
 зправа, з кінця, – наступників (follower), їх не має завершальна робота, одна чи
декілька.
Роботи:
 A, B, C – стартові, розпочинаються одночасно, мають лише наступників,
 K, L – завершальні, мають лише попередників,
 усі інші 7 – проміжні, мають попередників і наступників.
Уявно (не показані, але застосовуються) є дві фіктивні роботи:
 Старт, з’єднана фіктивними зв’язками із входами робіт A, B, C, і
 Фініш, з’єднана фіктивними зв’язками із виходами робіт K, L,
відповідно, найдовший шлях відшукується саме від роботи Старт до роботи
Фініш, якому після розрахунків буде належати якась одна робота з початкових A,
B, C і якась одна робота із завершальних K, L.

Кожен вузол на початковій схемі зображений кружечком із 3-ох частин ,


де:
 А – назва (код) роботи
 5 – нормальна тривалість роботи (у днях)
 $2 – питома нормальна вартість роботи (у гр. од.).

Часові параметри робіт, позначення і формули


і – поточний номер роботи (activity), у прикладі і = 1, …, 12,
L(i): мітка (label) i-ої роботи
D(i): тривалість (duration) i-ої роботи
P(i): множина робіт-попередників i-ої роботи, яка складається з робіт, що мають
бути завершеними, аби i-та робота могла розпочатися
Q(i): множина робіт-наступників i-ої роботи, яка складається з робіт, які можуть
розпочатися лише після завершення i-ої роботи

11
визначена на етапі розробки календарного плану згідно технологічних норм ресурсного
забезпечення
77
Рис. 3.2. D(H) = 3; P(Н) = {D, B}; Q(Н) = {I, J}

ES(i): ранній старт (earliest start) i-ої роботи, ES(i) = max{EF(j), j  P(i)}
EF(i): ранній фініш (earliest finish) i-ої роботи, EF(i) = ES(i) + D(i).
LF(i): пізній фініш (latest finish) i-ої роботи, LF(i) = min{LS(j), j  Q(i)}.
LS(i): пізній старт (latest start) i-ої роботи, LS (i) = LF(i)-D(i).
S(i): загальний резерв (slack) i-ої роботи, S(i) = LF(i) - EF(i) = LS(i) - ES(i).
F: довжина КШ, тривалість проекту (completion time).

Рис. 3.3. Часові оцінки

Алгоритм (розстановки міток)


Прямий прохід мережі (Forward pass): Нехай L(i) = 0, ES(i) = 0 для усіх робіт.
(a) Серед робіт із L(i) = 0 вибрати довільну і-ту роботу, яка є стартовою або її
(b) попередники мають L(i) = 1, k  P(i), L(k) =1
(b) EF(i) = ES(i) + D(i), L(i) = 1, для кожного наступника j  Q(i), якщо
78
ES(j) < EF(i), тоді ES(j) = EF(i).
(c) Якщо ще є робота із L(i) = 0, перейти до (a), інакше до (d).
(d) Визначається довжина критичного шляху F= max{EF(i)} для усіх робіт.

Рис. 3.4. Роботи розпочинаються як найраніше, КШ знайдено

Зворотний прохід мережі (Backward pass): L(i) = 0, LF(i) = F для усіх робіт.
(a) Серед робіт із L(i) = 0 вибрати довільну і-ту роботу, яка є кінцевою (яка не має
наступників), або ж її наступники мають L(i) = 1, тобто, j  Q(i), L(j)=1.
(b) LS(i) = LF(i) - D(i), L(i)=1, для кожного попередника k  P(i), якщо
LF(j) > LS(i), тоді LF(j) = LS(i).
(c) Якщо ще є робота із L(i) = 0, перейти до (a), інакше Cтоп.

Рис. 3.5. Роботи завершуються якнайпізніше

Обчислити резерви S(i) = LS(i) - ES(i) для усіх робіт. Роботи із S(i) = 0 – критичні.
Розв'язок задачі:
 прямий прохід мережі – пошук ранніх початків робіт, визначення довжини КШ,
 зворотний прохід мережі – пошук пізніх завершень робіт,
 обчислення усіх часових параметрів проекту: EF(i), EF(i), S(i), F.

79
Кожен вузол на схемі результатів
зображений кружечком із 5-ти
частин: 0 – ES(A), 5 – EF(A), А –
назва роботи, 2 – LS(A), 7 – LF(A):

Рис. 3.6. Рішення

Критичний шлях: C → F → J → L довжиною 34 дні, це мінімальна тривалість


проекту. Саме ці чотири роботи – «вузьке місце» проекту – їх тривалості визначили
тривалість усього проекту, затримка певної з них – це затримка усього проекту, це
смисл слова «критичний».
Зі стартових робіт А, В, С лише робота С – критична, старт робіт В і С можна
розпочати на 2-ий та 6-ий день відповідно (пізній старт).
Із завершальних робіт K, L лише робота L – критична.
80
Діаграма Гантта

Діаграма (стрічкова) Гантта – графічна форма зображення робіт проекту, уведена


американським інженером Г. Ганттом у 1918 р. Тут горизонтальна вісь – часова, на
вертикальній осі у вигляді стрічок вказують роботи із часовими моментами старту
і фінішу.

Рис. 3.7. Діаграма Гантта

81
Приклад 3.2. Проект складається із 44 робіт та зв’язків між ними

Рис. 3.8. Проектна мережа

82
Рис. 3.9. Початкові дані

Рис. 3.10. Рішення: критичний шлях


83
Рис. 3.11. Часові оцінки проекту

84
Рис. 3.12. Критичний шлях

Планування і управління проектом за час-вартісними параметрами (Time-


Cost)

Ця дещо складніша за часову мережева модель проекту відповідає реальній


ситуації, коли визначена часовою моделлю тривалість проекту (у прикладі 34 дні)
є занадто тривалою, яка не узгоджується із бажаним, директивно затвердженим
моментом завершення проекту (desired completion time), у прикладі, меншим за 34

85
дні. «Винуватці» цієї ситуації – критичні роботи із їх плановими тривалостями: C
(8), F (5), J (11), L (10).
Вихід із такої ситуації – процедура скорочення тривалості проекту (Crashing), у
першу чергу, скороченням тривалостей визначених критичних робіт, починаючи із
найдешевшої з них, залученням додаткових коштів (cost) за принципом: робота
«дорожча, бо коротша» (якщо це припустимо технологією).
Ця процедура – розв’язання оптимізаційної задачі, де треба точно визначити, яку
роботу і на скільки скоротити, аби мінімізувати суму додаткових витрат коштів.
Мова йде про багатокроковий пошук зваженого компромісу («золотої середини»),
бо скорочення тривалості роботи і скорочення вартості – суперечливі поняття, чим
коротше робота, тим вона дорожча, бо потребує більше ресурсів. При цьому не
треба робити якусь роботу гранично короткою, треба вчасно зупинитись, бо
захопившись скороченням, витрачаючи на це кошти, можна не побачити, як
новому КШ буде належати до того некритична робота.
Скорочення тривалості проекту за рахунок скорочення тривалостей робіт
зводиться до розв’язання задач лінійного програмування і отримання відповідного
рішення – які роботи і на скільки скоротити їх тривалості за критерієм мінімізації
додаткових витрат ресурсів.

Основні поняття
n: кількість робіт
D(i): нормальна (максимальна) тривалість і-ої роботи, за якою виконання роботи
потребує найменше ресурсів
T(i): скорочена (мінімальна) тривалість і-ої роботи, за якою виконання роботи
потребує найбільше ресурсів
N(i): мінімальна (нормальна) вартість і-ої роботи, відповідає її нормальній
тривалості
C(i): максимальна (скорочена) вартість і-ої роботи, відповідає її скороченій
тривалості
u(i): питома вартість і-ої роботи. Вважається, що функція С = f(t) лінійна, за якою
u(i) = [C(i)-N(i)]/[D(i)-T(i)]
x(i): шукана змінна – термін скорочення і-ої роботи
y(i): шукана змінна – старт і-ої роботи
e: шукана змінна – скорочення завершення проекту щодо моменту F
g: шукана змінна – затримка завершення проекту щодо моменту F.
Режими здійснення проекту:
A: використовуються нормальні тривалості робіт.
B: використовуються скорочені тривалості робіт.
F: враховується бажана тривалість проекту.
P: штраф за затримку пізніше моменту F.
R: премія за випередження моменту F.

Алгоритм
Використовуються дві моделі лінійного програмування.

86
Модель 1. Мета: скорочення задля задоволення бажаної тривалості проекту (F)

Задача оптимізації
І. Знайти X = {xi}, Y = {yi}, щоби
n
ІІ. ЦФ  u x  min
i 1
i i

ІІІ. За обмежень:
y(i) + D(i) - x(i) ≤ y(j) для (i,j)-их відносин передування
y(k) + D(k) - x(k) ≤ F для k-их кінцевих робіт
x(i) ≤ D(i)-T(i) для усіх і-их робіт
та граничних умов: X, Y≥ 0

Модель 2. Мета: скорочення проекту із застосуванням штрафів та премій.

Задача оптимізації
І. Знайти X = {xi}, Y = {yi}, щоб
n
ІІ. ЦФ Pg  Re  u x
i 1
i i  min
ІІІ. За обмежень
y(i) +D(i) - x(i) ≤ y(j) для (i,j)-их відносин передування
y(k) + D(k) - x(k) ≤ F – e + g для k-их кінцевих робіт
x(i) ≤ D(i)-T(i) для усіх і-их робіт.
g ≤ A - F, e ≤ F- B
та граничних умов: g, e, X, Y ≥ 0

Приклад 3.3. Повернімось до повної таблиці початкових даних (рис. 3.10).

Рис. 3.13. Початкові дані

Тут кожна робота має по 2 часових і вартісних параметрів:


 normal time, D(i) – гранична (максимально можлива) тривалість
 crash time, T(i) – гранична (мінімально можлива) тривалість
 normal cost, N(i) – мінімальна вартість
87
 crash cost, C(i) – максимальна (для crash time) вартість,
C(i ) - N(i )
за ними обчислюється питома вартість скорочення і-ої роботи: u( i )  .
T( i ) - D(i )
Для критичної роботи J це $125 за кожен день:

Рис. 3.14. Лінійна функція Cost(J) = f(Time)

Увага! Рішення, яке повертається програмою, помилкове з-за помилок даних:


порівняйте правильні стовпці Normal Cost у лівій таблиці початкових даних і у
правій, як вони сприйняті алгоритмом:

тому задані початкові дані використані у новій задачі.

88
Рис. 3.15. Початкові дані

Рис. 3.16. Результат: вартість проекту за нормальними тривалостями

89
Рис. 3.17. Результат: вартість проекту за прискореними тривалостями

Аналіз

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


прискорену тривалість, межі:
 тривалості проекту: 34  28 днів,
 загальні витрати: 30000  35850,
 витрати на критичні роботи: 9500  11050 гр. од.

Засіб Crashing Analysis, шляхом розв’язанням оптимізаційної задачі, дозволяє


визначити краще компромісне рішення всередині цих проміжків, із врахуванням
завдань:
 бажаної тривалості проекту (Meeting the desired completion time)
 бажаного бюджету (Meeting the desired budget cost)
 найдешевшого розкладу (Finding the minimum cost schedule)
за заданими значеннями показників:
 бажана тривалість проекту (Desired completion time)
 питомі штрафні витрати за затримку (Late penalty per day)
 питомі преміальні витрати за випередження (Early reward per day).

90
Рис. 3.18. Вікно налаштування Crashing Analysis (СА)

ЦФ такої оптимізаційної задачі – зважена сума трьох видів витрат: на скорочення


робіт плюс на штрафи (за затримку) мінус на заохочення (за випередження).

Варіанти
1) Бажана тривалість проекту 30 днів (проти 34), треба скоротити певні роботи,
мінімізуючи загальні додаткові витрати.
Рішення: скорочення КШ з 34 до 30 днів зводиться до скорочення двох робіт: J з
11 до 8 (min = 7) та L з 10 до 9 (min) днів. Згідно їх «цін»: u(J) = 125, u(L) = 50, це
потребує додатково: 125×3 = 375 (J) + 50 (L) = 425 гр. од., разом 30425 гр. од.

Рис. 3.19. Рішення 1

2) На проект виділено бюджет у 32000 гр. од. (менше за 35850):

91
Рішення: за ці кошти вдасться виконати проект за мінімально можливу тривалість
у 28 днів за рахунок скорочення 4-ох робіт: С з 8 до 7 (min), І з 9 до 8 (min = 6), J з
11 до 7 (min), L з 10 до 9 (min) днів, додаткові витрати складуть величину 1850 гр.
од.

Рис. 3.20. Рішення 2

3) Треба здійснити проект за 29 днів, мінімізувавши суму загальних витрат, що


тепер складаються із витрат за скорочення робіт і штрафів за затримку. Модель
оцінює, за рахунок чого скоротити витрати: якщо штрафи перевищують «ціну»
скорочення робіт, то скорочуються тривалості, інакше нараховується штраф:

Рішення: скорочення КШ на 5 днів, з 34 до 29 днів, супроводжується сумарними


витратами у 450 гр. од., це: 50 гр. од. за скорочення на 1 день до мінімуму
найдешевшої роботи L із «ціною» 50 од. плюс 100×4 = 400 гр. од. штрафу за
затримку ще на 4 дні.

92
Рис. 3.21. Рішення 3

Якщо б штраф складав 500 гр. од. за затримку на 1 день, це скорочення обійшлося
б без штрафів із додатковими витратами у 850 гр. од. лише за рахунок скорочення
тривалості робіт: I (9 → 8) = 300, J (11 → 7) = 500, L (10 → 9) = 50 гр. од.

4) Бюджет у 30000 гр. од. був розрахований на здійснення проекту протягом 35


днів, якщо вдасться виконати проект за 34 дні, можна зекономити 600 гр. од., які
керівництво проектом може використати на свій розсуд. Знаючи про 34 дні,
гарантуємо, що вдасться.

Рис. 3.22. Рішення 4

93
Приклад 3.4. Проектна таблиця з 13 робіт й 19 зв’язків (Фініш-Старт) між ними
представлена у мережевому форматі «роботи-вузли»:

Рис. 3.23. Проектна мережа (з номерами дуг)

Позначення:
m, n – кількість робіт і зв’язків між роботами. У прикладі: m = 13, n = 19;
i – поточний номер роботи в списку m робіт;
di, Di – тривалість роботи: прискорена, нормальна;
ci, Ci – пряма вартість роботи: прискорена, нормальна;
пi, нi – попередня (старт) і наступна (фініш) роботи, суміжні з і-ою роботою;
s(пi), s(нi) – часткові критичні шляхи до суміжних робіт;
j – поточний номер зв’язку у списку n зв’язків;
rj – ранній старт і-ої роботи;
Vпр – сума прямих витрат.

Задача оптимізації
І. Знайти вектор R = {ri}, i = 1, …, 13, щоб
ІІ. ЦФ Vпр → min
ІІІ. за обмежень:
s(нi) – s(пi) ≥ Di
та граничних умов: усі rі ≥ 0.

94
Рис. 3.24. Початкові дані

Рис. 3.25. Рішення (нормальна тривалість робіт)

95
Рис. 3.26. Рішення: критичний шлях

Рис. 3.27. Рішення (скорочена тривалість робіт)

96
Рис. 3.28. Рішення: критичний шлях

PERT

PERT (Program Evaluation and Review Technique, 1959 р.) – методологія


оцінювання (бо точно розрахувати неможливо) тривалості проектів, які
реалізуються в умовах невизначеності і ризику, специфічний різновид мережевих
моделей проектів чи програм. Ці моделі, на відміну від детермінованих, де
тривалості робіт задані одним конкретним числом, називають ймовірнісними, бо
тривалості робіт задають діапазоном значень із певним розподілом ймовірностей.
Наприклад, на етапі планування приблизно визначили, що тривалість роботи
лежить в діапазоні 4  9 днів за нормальним розподілом, за яким можна обчислити
середнє значення, дисперсію тощо. Так задані усі, можливо, сотні чи тисячі робіт,
і для усього проекту обчислюють лише його часову оцінку – це ймовірність того,
що проект буде здійснено протягом заданої тривалості (версія PERT-Time) й,
відповідно, які витрати слід очікувати (PERT-Cost).
PERT застосовують у випадках, коли унікальний за своїм задумом проект
реалізується вперше, без попереднього досвіду, посилань на будь-які аналоги чи
прототипи, тобто, рішення щодо керування проектом. Методологія і апарат
мережевого моделювання проектів, вперше визначені в СРМ, тут зберігаються, що
дозволяє організувати увесь процес реалізації проекту, за поточними машинними
розрахунками, фіксувати відхилення і оперативно корегувати заплановані
показники.

Приклад 3.5. (файл PERT.CPM) Часова версія PERT-Time

Проект представлений мережею із 12 робіт.

97
Рис. 3.29. Початкові дані

Таблиця початкових даних для тривалості кожної роботи визначає три часових
оцінки, це:
 a (optimistic time) – мінімальна, оптимістична, малоймовірна, але можлива, якщо
все йде дуже добре, без збоїв і відхилень,
 m (most likely time) – «середина» між границями а та b, в статистиці «мода»,
найбільш вірогідна, якою буває найчастіше чи скоріше за все
 b (pessimistic time) – максимальна, песимістична, малоймовірна, але можлива,
якщо все йде не так, як передбачалося.

За методикою (розподілом) трьох оцінок (3-Time estimate) обчислюються за


формулою:
a  4m  b
 – середня тривалість роботи (activity mean time), яка надалі
6
використовуються в розрахунках часових параметрів робіт за методом СРМ, та
ba
 – середнє квадратичне відхилення (СКВ, variance), застосовується у
6
ймовірнісному аналізі.
Кінцеве рішення – очікувана тривалість проекту (Expected Critical Path Time) й, на
цій основі, визначення ймовірності завершити проект у заданий термін.

Кожен вузол на початковій схемі зображений кружечком з 3-ма частинами :


 А – назва (код) роботи
 5 – «середня» тривалість роботи (у днях)
 3-Time – використана методика трьох оцінок.

За середніми тривалостями робіт методом СРМ розраховані 5 часових оцінок:


ранні/пізні старти і фініші та резерви часу. Роботи із нульовим резервом утворили
критичний шлях C → F → J → L довжиною 33,83 днів.
Значення СКВ критичних робіт використовуються в ймовірнісному аналізі.

98
Рис. 3.30. Рішення

Ймовірнісний аналіз

Мета – розрахунок ймовірності завершення проекту у визначений термін


за отриманими рішеннями – очікуваною тривалістю проекту (F = 33,83 дні) та
сумою СКВ критичних робіт.
Інструментальний засіб Probability Analysis послідовним завданням бажаної
тривалості проекту (Т) обчислює ймовірність завершення проекту за Т днів, за
цими даними будують таблицю і графік:

99
Рис. 3.27. Вікно налаштування. Результати ймовірнісного аналізу

Добре видно, що для знайденої початкової довжини КШ у 33,83 днів шансів


завершити проект за 34 дні практично немає.

Зауваження

Повідомлення про
незалежність робіт одна від одної, що навряд чи реально, «охолоджує» підвищений
оптимізм тих керівників проектів, хто беззаперечно вірить в достовірність цього
прогнозу.
Аби довіряти методу PERT (як методу оцінювання проектного плану), необхідно,
щоб:
 роботи були незалежними, тобто, коли їх тривалості не залежать одна від одної
або на ці тривалості не впливають якісь умови, скажімо, різка зміна погоди чи
проблеми із ресурсним забезпеченням, що на практиці малоймовірно
 проект складався із досить великої кількості робіт, не менше кількох десятків,
кожна із своїм розподілом тривалості, аби в цілому якось «усереднити» чи
узагальнити взаємозв’язки різних розподілів,
лише тоді кінцеве рішення – ймовірність завершення проекту на задану бажану
тривалість – буде близьким до нормальному розподілу, природа і формули якого
використані при обчисленні оцінок  та  кінцевого результату.
Модель PERT-Cost оцінює очікувану вартість проекту за обчисленими середніми
тривалостями робіт, щоби оцінити вимоги до бюджету, і реалізується за методикою
СРМ-Cost, де до початкових даних слід додати нормальні вартості робіт.

PERT-Simulation

100
Методика трьох оцінок (3-Time estimate) була запропована й реалізована у
1960-ті роки на перших ЕОМ із вкрай обмеженими системними ресурсами.
Фактично, це був варіант СРМ, де – головне – тривалість роботи отримувала одне
числове значення. Тож справедлива критика PERT стосувалася саме отримання
«середньої» тривалості за формулою (a + 4m + b)/6, яка наче враховує випадковість,
але ж у розрахунках є константою, яка в принципі не відтворює статистичний
характер випадкової величини із нескінченним спектром допустимих значень й,
відповідно, випадковість усього проектного заходу. Уявімо, в реальних умовах
може зламатися інструмент, зникнути живлення, змінитися професійний рівень
виконавців, пішли дощі і пошкодили виконані земляні роботи тощо, а робота А як
була, так і залишається із розрахованою для нормальних умов тривалістю у 5 днів,
і за такими даними має обчислюватися кінцеве рішення. Чи можна йому довіряти?
На щастя інтенсивний розвиток комп'ютерної техніки дав можливість
змінити методику обчислення середньої тривалості роботи шляхом застосування
методології імітаційного моделювання (ІМ, Simulation), яка для своєї реалізації
висуває серйозні вимоги до швидкодії й пам’яті комп'ютера.
Техніка ІМ базується на імітації поведінки реальних динамічних процесів,
параметри яких є випадковими, шляхом штучної генерації множини випадкових
даних за певним розподілом як входів, фіксації виходів й наступним їх
статистичним аналізом, аби сформувати об’єктивну оцінку досліджуваної системи
чи процесу.
Модуль PERT/CPM здійснює цю процедуру (Results → Perform Simulation →
Simulate), генеруючи від 1000 (миттєве рішення) до 10000 (здійснюється протягом
хвилини) спроб (observations) для кожної роботи у сеансі, використовуючи на вибір
дослідника один із запропонованих 18 розподілів ймовірностей:

1. Beta Distribution
2. Binomial Distribution
3. Discrete Distribution
101
4. Erlang Distribution
5. Exponential Distribution
6. Gamma Distribution
7. Geometric Distribution
8. Hypergeometric Distribution
9. Laplace Distribution
10. Lognormal Distribution
11. Normal Distribution
12. Pareto Distribution
13. Poisson Distribution
14. Power Function Distribution
15. Triangular Distribution
16. Uniform Distribution
17. Weibull Distribution
18. 3-Time estimate.

За умовчуванням використовується розподіл 3-Time estimate із трьома часовими


оцінками тривалості роботи.

Приклад 3.6. Розглядається мережа із попередньо вбудованого прикладу, розподіл


і налаштування ГВЧ (генератора випадкових чисел) – за умовчуванням12, кількість
спроб 1000.
З’ясовується: яка ймовірність завершити проект за 30 днів.

Рішення (рис. 3.27)

12
у цьому випадку усі результати реалізації імітаційного процесу однакові, ця властивість
застосовується для налаштування моделі, щоби отримувати кожного разу різні ресультати,
треба увести інший код (enter seed)
102
Рис. 3.27. Рішення імітаційного моделювання

Частотний аналіз (рис. 3.28)

103
Рис. 3.28 Частотний аналіз (Excel)

Той же приклад (10000 спроб).

Рис. 3. 29. Рішення

Аналіз

Шанси завершити проект за 30 днів нульові. Середня тривалість проекту 33,9 днів,
реально можна розраховувати не раніше, ніж на 34,2 дня.

104
Основний висновок: якщо модель PERT-Time з фіксованими середніми
тривалостями робіт повертає одне значення тривалості проекту (33,83 дня), модель
PERT-Simulation повертає 1000 чи 10000 таких значень, статистичним аналізом
яких формується більш обгрунтоване кінцеве рішення.
Інші розподіли ймовірностей застосовують при розв’язанні нових задач.

Приклад 3.7. Проект складається із 10 робіт, тривалості робіт у тижнях задані


трійками (a, b, c), за якими середні значення обчислюються згідно трикутного
розподілу ймовірностей.
Формування моделі, уведення початкових даних.
Натисанням кнопки Chouse Activity Time Distribution у вікні Problem Specification
вибрано трикутну функцію розподілу ймовірностей (Triangular) із трьома
часовими оцінками:
a – Lower limit
b – Shape parameter (mode)
c – Upper limit.
Обчислення:  = (a+b+c)/3, ² = (a²+b²+c²-ab-bc-ca)/18.

Рис. 3.30. Налаштування ГВЧ

Рішення (рис. 3.31)

105
106
Рис. 3.31. Рішення

Аналіз

В процесі імітаційного моделювання з-за змін тривалостей робіт було утворено 17


критичних шляхів різної довжини, їм належали майже усі роботи, окрім F та I, це
потенційні «вузькі місця». Визначені тривалості проекту: середня (43,91 тижні) й
близька до реальної (44 тижні).

107
Глава 4. Реконфігурація мережі: локація і
розташування вузлів
Загальні відомості Люди споконвіку приймають рішення про найкраще
місцезнаходження того, ДЕ: жити, купувати, працювати, вчитися, зберігати кошти,
лікуватися або відпочивати, щоби зі знайденого місця була ефективною,
безпечною і зручною взаємодія із відповідним оточенням. Наприклад, ще первісні
люди займалися пошуком зручної та безпечної печери для розміщення у ній свого
сімейства, інвентаря і запасів продуктів, оточенням служили джерела води, місця
полювання, випасу худоби або землеробства та сусіди, відносини з якими могли б
бути дружніми (до них треба бути ближче) або небезпечними чи ворожими (від
них треба було триматися як подалі, як це можливо).
Щодо до того, ЩО розміщується в шуканому місці, в зарубіжній літературі
використовується універсальний термін facility, це усе те, що у зручній формі надає
будь-які послуги, приміром, це: транспортні вузли, підприємства, склади,
магазини, школи, лікарні, СТО та заправки, пости ДАІ, зупинки міського
транспорту, електронні та комп'ютерні комунікатори, концентратори і термінали,
засоби автоматичного контролю за рухом пасажирів чи транспорту; у шуканому
місці передбачається розміщення адміністративного центру, пункту збору нафти
або газу від свердловин, екстрених служб (пожежного депо, поліцейського посту,
клініки швидкої допомоги, стоянки таксі), засобів життєзабезпечення
(енергетичного агрегату, телефонної станції, теплоцентралі, насосної станції
водопроводу або антени колективного користування ТБ) та забезпечення безпеки
(командний пункт військової бази, засоби спостереження, місця зосередження
техніки і армійських підрозділів).
Спираючись на ключове слово «послуги» чи сервіс, для шуканого місця все
частіше використовують термін «сервер», який розміщується для обслуговування
оточення –«клієнтів».
Тож будь-яку задачу про визначення найкращого місцезнаходження і подальшого
розміщення там одного або декількох центрів умовно і коротко називають facility
location problem, яка є надзвичайно розповсюдженою: Google на запит «location
problem» повертає майже 600 млн. відгуків!
Рішення – де має бути місце найкращого розміщення «сервера» для
обслуговування «клієнтів», приймаються на всіх рівнях людської діяльності,
починаючи від окремих осіб та їх сімей до фірм, корпорацій, урядових установ та
міжнародних організацій. Часто такі рішення є стратегічними за своєю природою
і наслідками, бо вони базуються на тривалому використанні великих обсягів
природних ресурсів і тому їх соціально-економічні ефекти довгострокові. Ці
рішення мають бути всебічно обґрунтованими й зваженими, раціональними чи
оптимальними. На жаль, іноді прийняті рішення засновуються виключно на
досягненні суто економічного ефекту, при проектуванні не враховується можливий
негативний вплив на екологію навколишнього середовища місцевого,
регіонального, а, іноді, планетарного характеру, приклади: розміщення у
108
густонаселених місцевостях крупних атомних електростанцій (ЧАЕС), складів для
зберігання озброєнь (Новобогданівка), Грибовицька свалка у Львові тощо.
Отже, завжди і скрізь виникає ряд важливих задач прийняття рішень, де потрібно
найкращим чином визначити місця розміщення одного чи кількох серверів для
колективного обслуговування оточуючих їх «клієнтів». На рішення щодо
розміщення істотно впливає характер взаємодії «клієнт-сервер», який може бути
різним. Наприклад, у випадку зручного розміщення корисного сервера – фабрики,
магазину чи школи – клієнти «притягують» сервер, щоб бути до нього ближче. Зате
при визначенні місця для розміщення шкідливого сервера – тваринницької ферми,
хімічного заводу, пункту збору, зберігання та утилізації твердих або радіоактивних
відходів, – клієнти «відштовхують» сервер, намагаючись бути подалі від нього.
Але ж ці «притягування» чи «відштовхування» досить умовні, бо ж розташування
того ж хімзаводу чи вокзалу має свої плюси і мінуси й раціональна взаємодія
«клієнт-сервер» вимушено будується за умови: «не ближче, ніж» або «не далі,
ніж». Ясно, що існує незліченна кількість допустимих місць для розміщення того
чи іншого сервера, значить, треба розмістити сервер оптимально – з урахуванням
обмежень на його місцезнаходження.
Це надзвичайно широкий клас типових задач умовної оптимізації з різними
вхідними даними, критеріями оптимізації (максимум, мінімум, максмін, мінмакс) і
обмеженнями на шукані невідомі, що має свою історію.
Для розв’язання важливих практичних завдань про розміщення центрів у
математиці сформувався самостійний «локалізаційний» науковий напрям (Location
Theory, Location Analysis, Location Science, [4]) у складі оптимізаційного
моделювання, де вивчаються різні постановки задач, розробляються їх
математичні моделі, обчислювальні методи і алгоритми та відповідні програмні
продукти.
Початок цьому напряму покладено в XVII ст. П’єром де Ферма (1601-1665),
французьким юристом, поетом і знавцем стародавніх, в першу чергу,
давньогрецької, й сучасних мов. Саме читаючи в оригіналі праці великих греків
(Евкліда, Діофанта та ін.), він захопився математикою, в чому і проявився його
геній – адже Ферма світові відомий саме як великий математик, бо є засновником
алгебраїчної теорії чисел, аналітичної геометрії, яку називають «декартовою»
(визначеної раніше і незалежно від Декарта), теорії ймовірностей (разом з
Паскалем) і принципів математичного аналізу, розвинених пізніше Ньютоном і
Лейбніцем.
У Європі XVII ст. стало початком «нового часу», коли в окремих розвинених
країнах зміцнюється новий суспільний лад – капіталізм, супроводжений технічною
та науковою революцією. Саме тому нові наукові відкриття цього періоду, зроблені
в першу чергу, у фізиці та математиці, диктувалися практичними міркуваннями.
Зокрема, створення перших мануфактур неявно висувало проблему їх
раціонального розміщення з позицій скорочення транспортних витрат щодо
джерел енергії, робочої сили, сировини і ринків збуту.

109
Тож як часто було в історії науки, Ферма придумав просту, як здавалося,
геометричну задачу як розвагу про знаходження центру трикутника, сума
відстаней з якого до вершин мінімальна13, тепер це – «точка Ферма».
При збільшенні числа точок, що відповідає практиці, ця задача стає надто
складною, для якої буває неможливо тримати точний розв’язок.
Природно, що ця локаційна проблематика найбільш популярна у галузі
математичної економіки та економічної географії, в транспортній логістиці та
регіональній економіці, в організаційному управлінні та операційному маркетингу,
а також в різних технічних областях, де мова йде про раціональне розміщення
обладнання, елементів конструкцій чи електронних схем і при прокладанні певних
комунікацій.
Ця сама по собі непроста математична задача оптимального розміщення центрів є
складовою логістичних та організаційних задач, де узагальнена цільова функція з
комплексом різноманітних обмежень на шукані невідомі поєднується із задачами
планування виробництва, призначення та транспортування, це комбіновані моделі
під назвами: location-allocation problem, transportation-location problem або
transportation-location-allocation problem.
З позиції теорії обчислень на графах і у мережах ці задачі відносяться до класу NP-
hard задач, тому для розв’язання практичних задач застосовують наближені методи
і алгоритми.
Класифікація задач про розташування центрів та їх математичних моделей:
початкові дані детерміновані/ ймовірнісні; потенційні місця задані/не задані;
відшукується центр один/декілька; відстані задані/обчислюються; потенціали
вузлів-клієнтів задані/не задані тощо.
В залежності від постановки задачі про розташування центрів відповідна
математична модель може бути лінійною чи нелінійною, знайдений оптимум буде
глобальним чи локальним, комп'ютерна реалізація моделі буде простою і швидкою
чи надзвичайно складною й тривалою (суттєво для нелінійних задач), Рішення буде
точним чи наближеним.

Задана конфігурація мережі – це організована сукупність вузлів та їх розташування


на 2- чи у 3-вимірному просторі із зв’язками між ними, при чому мережа однорідна
чи неоднорідна, у якій вузли можуть мати однакову чи різну природу. Між вузлами
відомі відстані, стосунки між ними (можливо, навіть у самому вузлі) певним чином
визначені, наприклад, заданими потоками (перевезень, спілкувань) чи якимись
витратами.
Реконфігурація існуючої мережі – це будь-які її структурні зміни: додавання чи
видалення вузлів та/чи зв’язків з-за вимушеного/необхідного їх розташування,
коригування розташування/зв’язків/параметрів, що, у свою чергу, є наслідком,
скажімо, незадовільного функціонування реальної мережі. Це багатоваріантна і
складна задача, де кожна зміна має плюси і мінуси, тож виникає проблема
раціональної чи, краще, оптимальної реконфігурації за відповідним одним чи,

13
Given three points in a plane, find a fourth point such that the sum of its distances to the three
given points is as small as possible – задача зі 100 великих задач елементарної математики
110
бажано, одночасно за кількома критеріями, аби зважено і обґрунтовано узгодити
конфлікти інтересів.
Типовий клас оптимізаційних задач цієї проблематики – про найкращу локацію і
розміщення вузлів (location and layout problem), де вузол – концентроване
уособлення будь-чого (facility), що має зв’язки з такими іншими. Ці задачі цілком
природні й тому надзвичайно розповсюджені, їх постановка і розв’язання –
складова математичної теорії графів і мереж та її застосувань у сфері
організаційного управління мережевими структурами.

Для розв’язання трьох популярних оптимізаційних задач цього типу за критеріями


мінімізації/максимізації ЦФ про:
 розміщення вузла (вузлів) як центрів
 переміщення функціональних сукупностей вузлів у заданому просторі та
 балансування технологічної лінії
призначено модуль Facility Location and Layout.

Задача про центр

Центр колективного обслуговування клієнтів (центр) – певна організаційна


структура, надавач послуг чи постачальник ресурсів, зв’язана із колективом вузлів-
клієнтів, споживачів послуг чи ресурсів. В розгалужених комп'ютерних мережах
та інформаційних системах таким центром є сервер, де діє інформаційна технологія
обміну «клієнт-сервер».
В комунікаційній мережі із вузлами одного рангу (населені пункти, станції
транспортних мереж) виникає проблема оптимального розташування (локації)
одного чи кількох центрів, щоби покращити рівень надання певних
комунікаційних послуг: транспортних, торгівельних, медичних чи освітніх тощо,
якість яких залежить від потенціалів вузлів (попит/пропозиції) і вагових
коефіцієнтів дуг-зв’язків: відстаней, тарифів, зручності, пропускних здатностей
тощо.
Претендентами бути центром можуть бути певні наявні вузли (так колишнє село
стає містом, районним чи промисловим центром) або ж центр розташовується «на
чистому місці» («Здесь будет город заложён…», О. С. Пушкін. Мідний вершник).
Так народжуються нові населені пункти біля зручних місць для проживання, у
111
місцях видобутку корисних копалень й щойно збудованих підприємств, так
розташовуються адміністративні, торгівельні, оборонні організації як центри із
відповідною мережевою інфраструктурою. Перед тим ставиться і певним чином
розв’язується задача найкращої локації центру (центрів), найпростіше,
геометрично, пошуком координат у заданій площині (чи просторі), після чого,
якщо треба, вузол центра «прив’язується» до вузла-клієнта, одного із найближчих
до знайденої позиції14, коригуванням знайдених координат.
Зауваження Цільова функція класичної задачі про пошук координат m центрів для
обслуговування n клієнтів на мінімум загальних витрат (location-allocation
problem), складається з двох частин: витрати на утворення центрів (location
problem) та витрати на утворення комунікацій між центрами і клієнтами (allocation
problem). Рішення – це зважений компроміс, де визначається розумна кількість
центрів: їх не може бути мало (з-за довгих зв’язків до віддалених клієнтів) чи
багато (дороговартісна споруда, мало клієнтів, короткі зв’язки).
Файл Facility Location розв’язує лише першу задачу, тож поступово збільшуючи
кількість нових «безкоштовних» (як припускається) центрів, можна отримати
Рішення із нульовими загальними витратами: коли m = n, кожен клієнт буде
обслуговуватися власним сервером, таке може бути, коли в усіх одноосібних
клієнтів є власні джерела ресурсів: електрогенератор на сонячних батареях,
«тарілка» супутникового зв’язку, криниця тощо, тоді нема потреби утворювати
мережу із відповідними засобами колективного ресурсного забезпечення.

Приклад 4.1. (Файл LOCATION.FLL) Задана мережа із 5 існуючих (Existing


Facility) вузлів-клієнтів (F1, …, F5), одного вузла-центру (New Facility, NF1) і 30
(25 + 5) двонаправлених зважених дуг. На площині задані парами15 координати (xi,
yi) клієнтів, за якими автоматично обчислюється матриця відстаней D = {dij}, треба
визначити оптимальну локацію (місцеположення) центру пошуком його
координат (xс, yс) за відповідним критерієм.
Формат табличного документа
k – кількість вузлів-клієнтів, n – кількість нових вузлів-центрів
 матриця потоків між клієнтами розміром k × k
 матриця New значень потоків від центру до клієнтів (замовлень) розміром
n×k
 матриця To New значень потоків від клієнтів у центр (пропозицій) розміром
k×n
 матриця координат вузлів-клієнтів розміром k × 2.
У загальному випадку, матриці несиметричні.
У прикладі: k = 5, n = 1:

14
з-за такої колись умовної «прив’язки» будівельного майданчику на вибраній місцевості
місто Комсомольск обласного підпорядкування на Полтавщині став Горішніми Плавнями
за історичною назвою найближчого села
15
у 3-вимірному просторі – трійками координат
112
Рис. 4.1. Початкові дані

Вагові коефіцієнти дуг мережі Flow/Unit Cost (Потік/Питомі витрати) мають різну
природу, це:
 потоки (Flow): матеріальні, фінансові, інформаційні, людські
o «клієнти ↔ клієнти»16,
o «центри → клієнти» (із нового центру NF1 клієнтам F1, …, F5 буде направлено
замовлених послуг/ресурсу на 52 гр. од.), наприклад, працівники чи школярі їдуть
по домівках, товар з бази розвозять по магазинам та
o «клієнти → центри» (у прикладі відсутні), наприклад, діти їдуть у школу чи
працівники на роботу, або
 питомі витрати (Unit Cost)
у грошовому чи іншому вимірі.

Задача оптимізації

Треба визначити координати розміщення центру (xс, yс), одного чи кількох, заданих
кількістю, як джерел(а) певних послуг чи ресурсів існуючим вузлам-споживачам
за критерієм мінімізації/максимізації сумарних витрат потоків «центри→клієнти»
+ «клієнти→центри».
Для кожного центру (с) витрати щодо задоволення замовлень і-го клієнта
обчислюються як f(c, i) × d(c, i), де потік «центр→клієнт» f(c, i) вимірюється,
скажімо, в тоннах (т), відстань d(c, i) – в км, виходить, витрати вимірюються в
(ткм). В прикладі, за умовчуванням, ціна 1 ткм = 1 гр. од., тож витрати між
центрами та клієнтами обчислюються в гр. од., аналогічно оцінюються потоки
«клієнти → центри».
Вікна налаштування (рис. 4.2)
Вікно Facility Location Solution пропонує: розв’язати задачу про оптимальну
локацію нових вузлів чи оцінити власну локацію, це, фактично, аналіз «Що-якщо»,
із застосуванням трьох метрик (способів розрахунку відстаней).

16
які не впливають на шуканий результат – координати центру, тож матрицю потоків
«клієнти-клієнти» можна не задавати
113
Рис. 4.2. Вікна налаштування

Дві точки: a(х1, у1), b(х2, у2), метрики:


 прямокутна («вулична», манхеттенська) метрика: d(a, b) = |x1 – x2| + |y1 – y2|
 евклідова метрика («по прямій», теорема Піфагора):
d ( a, b)  ( x1  x2 )2  ( y1  y2 )2
 квадратична евклідова метрика (в статистиці): d(a, b) = (x1 – x2)2 + (y1 – y2)2.

Вікно Problem Specification для цієї задачі припускає два можливих критеріїв
оптимізації:
 мінімум ЦФ для «добрих» центрів, які бажано розташувати як найближче
до клієнтів (робочі місця, школи, магазини, місця відпочинку), та
 максимум ЦФ для «поганих» центрів, які бажано розташувати як
найдальше від клієнтів (полігони для складування та переробки шкідливих
речовин і відходів, ферми для відгодівлі худоби, електростанції, хімічні та
металургійні підприємства).

Рішення

114
Рис. 4.3. Рішення: с(3; 10)

Аналіз

І. Центр розташовано у 4-му вузлі (3, 10), відстані «центр → клієнти»: (5; 8; 13; 0;
17).
II. Вартість потоків – мінімальні витрати доставки замовлень на суму 52 гр. од. –
334 гр. од.: (5; 8; 13; 0; 17) × (8; 6; 15; 20; 3) = 40 + 48 + 195 + 0 + 51 = 334 гр. од.
Зауваження: так співпало, що центр опинився в одному із вузлів, клієнт F4 має
солідне замовлення, чим сам став центром, у загальному випадку центр
розташовується «на чистому місці» – так, з-за зменшення замовлення клієнта F4,
центр розташувався поміж вузлів-клієнтів (рис. 4.4.)

Рис. 4.4. Варіант f(c, 4) = 10, с(3; 7)

115
Модифікація моделі. Врахування потоків «клієнти → центри»

Початкові дані:
 сума потоків «центр → клієнти» 52 од.
 сума потоків «клієнти → центр» 124 од., разом 176 од.

Рис. 4.5. Початкові дані

Рішення (рис. 4.6):


 координати центру (1,5; 11)
 відстані «центр-клієнти»: (2,5; 10,5; 15,5; 2,5; 19,5)
 вартість потоків «центр → клієнти» 424 од.
 вартість потоків «клієнти → центр» 604 од., разом 1028 од.

Рис. 4.6. Рішення: с(1,5; 11)

Аналіз

Потужний потік f(1, c) = 80 од. «стягнув» центр з позиції (3; 10) у бік вузла-клієнта
F1, вже при f(1, c) = 81 од. центр взагалі розташується у вузлі-клієнті F1 з
координатами (0; 12):

116
Рис. 4.7. Варіант: f(1, c) = 81, с(0; 12)

Модифікація моделі. Розташування кількох центрів

5 вузлів-клієнтів мають стосунки (попит/пропозиції) із двома центрами надання


різних послуг. Додамо до попередньої таблиці ще один центр (Edit →Add a New
Location) і визначимо відносини та потоки від центрів та до клієнтів: центр 1 (F1,
F2); центр 2 (F3, F4, F5).

Рис. 4.8. Початкові дані

Рішення

117
Рис. 4.9. Рішення

Аналіз

Центр 1: (0,08; 11,92) розташувався біля клієнта F1 (0; 12), потоки: 14 + 14 = 28


Центр 2: (3,15; 9,94) розташувався біля клієнта F4 (3; 10), потоки: 38 + 39 = 76,
разом 104 од.
Відстані і витрати:
Центр 1 ↔ F1, F2: (0,16; 12,84), витрати: 2 × (0,16; 12,84)×(8; 6) = 156,64 гр. од.
Центр 2 ↔ F3, F4, F5: (12,79; 0,21; 16,91), витрати: 2 × (12,79; 0,21; 16,91)×(15; 20;
3) = 493,56 гр. од., разом 650,2 гр. од.

Приклад 4.2. 23 дачних ділянки розділені дорогою на дві частини, ліву і праву.
Ліва частина – старі дачі, віддалені від річки, де вже є електрика, але немає
централізованого постачання води з річки для поливу, права – нові дачі біля річки,

118
де вже є вода, але немає електрики. Власники замовили проект, за яким треба
економно визначити місцеположення розподільчих пунктів води та електрики для
направлених потоків «пункти → ділянки» за прямокутною метрикою (вздовж
вулиць).
Замовники визначили для розробників проекту координати точок підводу
труби/кабелю до кожної ділянки та відповідні замовлення (рис. 4.10):

Рис. 4.10. Початкові дані

Рішення (рис. 4.11).


Координати центрів:
Центр 1(4,13; 5,08), біля 8-ої ділянки; потік 201 од.
Центр 2 (4,44; 14,06), біля 18-ої ділянки, потік 181 од.
Мінімальні витрати: 1873,14 од.: 944,76 + 928,39 ткм.

119
Рис. 4.11. Рішення

Приклад 4.3. Для 25 обласних центрів треба визначити місце розташування


центру України із надання/передачі певного ресурсу. Взаємини між обласними
центрами позначимо нейтральними, нульовими, а зустрічні стосунки шуканого
центру і обласних центрів одиничними.
Дії: задати координати обласних центрів і одиничні зустрічні потоки між
обласними центрами та шуканим центром.
Початкові дані (рис. 4.12)

120
Рис. 4.12. Початкові дані

Рішення

Рис. 4.13. Центр України, відстані до обласних центрів

121
Рис. 4.14. Географічний центр України м. Шпола Черкаської області

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


центром України є місто Шпола Черкаської області.

Задача про компоновку вузлів

Загальні відомості Ця задача (layout problem) – складова операційного


менеджменту, де на рівні окремого виробництва на етапі проектування
досліджується моделюванням і здійснюється фізичне розташування і компоновка
різноманітних виробничих потужностей та спеціальних служб, це: конфігурація
цехів, робочих ділянок, технологічних ліній, відділів, робочих центрів і
обладнання, місць і засобів зберігання сировини і готової продукції, розташування
апаратури в лабораторних приміщеннях чи на полігонах тощо.
Основна мета структурної організації чи функціональної компоновки заводу (plant
layout) полягає в максимізації ефективності, зокрема, прибутку, за рахунок
раціонального розташування усіх складових об'єктів заводу аби знизити
непродуктивні витрати часу та/чи ресурсів на здійснення технологічних,
інформаційних та організаційних взаємовідносин.
У кожному виробничому чи будь-якому організаційному процесі існує ієрархія
груп спеціальних засобів і технологій, їх композиція утворює сімейства з
загальними вимогами, забезпеченням і характеристиками. Тож групова організація
122
виробничого процесу є гнучкою, дуже корисною для компаній, які виробляють
різну продукцію невеликими партіями.
Застосування групової технології включає в себе два основних етапи, перший з них
– визначення сімейств компонентів або груп, другий – структурна організація
(компоновка) обладнання, що використовується в конкретному сімействі
компонентів. Це наче міні-заводи в заводі, мета: скорочення тривалості планування
виробництва і налаштування робочих місць для реалізації оригінального проекту.
Таким чином, група – це поєднання компонування продукту і технологічної схеми,
кінцева мета – мінімум зважених міжелементних взаємин за кількістю і
тривалістю, що зводиться до загальних витрат.

Приклад 4.4. На плані нового цеху розміром 10×10 цифрами позначено місця
початкового розміщення 8 верстатів, за заданими координатами за прямокутною
метрикою обчислюється матриця D відстаней. Задана матриця технологічних
потоків F між верстатами, рис. 4.15.
Треба так призначити верстати на вказані місця, щоби мінімізувати сумарні
переміщення деталей між верстатами.

Рис. 4.15. План, матриця потоків

Це приклад дуже складної в обчислювальному сенсі задачі комбінаторної


оптимізації під назвою «квадратична задача про призначення». Хоча існує її
змішана цілочислова модель (WinQSB не підтримує), її зазвичай розв’язують за
допомогою евристичних алгоритмів, розрахованих на задачі великого розміру і
побудованих на ітераційній послідовності перестановок рядків/стовпців
щокроково оновлюваної матриці D̂ , за якою надалі обчислюється значення
цільової функції. Один із відомих таких алгоритмів – CRAFT17 (Computerized
Relative Allocation of Facilities), реалізований в пакеті WinQSB.

17
E. Buffa. A Heuristic Algorithm and Simulation Approach to Relative Location of Facilities,
Man. Sci., 1963

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

Рис. 4.16. Початкове і завершальне призначення

Приклад 4.5. (файл LAYOUT.FLL)

Постановка задачі
Мережа складається з n вузлів та n2 зважених дуг, у прикладі n = 17, вузлами є
складові об’єкти певного операційного середовища: верстати цеху, підрозділи
організації, джерела та споживачі ресурсів, замовники і виконавці робіт, вузли
реальних комунікацій тощо. З-за наявності функціональних відносин між вузлами,
124
ефективність мережевої структури залежить від розташування вузлів у
відповідному просторі, врахування цих відносин при розташуванні вузлів є ціллю
задачі.
План офісного приміщення – координатна (клітинна) сітка прямокутної форми
розміром 9×13, де кожна клітинка (Cell) має координати (рядок, стовпець). У цій
сітці утворено 17 місць (позицій) у вигляді діапазонів клітинок (Cell Location), з
них 16 позицій – матриці 2×3, одна позиція має складену форму із двох діапазонів
(рядок і стовпець, зафарбовані), усі позиції пронумеровані від 1 до 17.
Вузли – це 17 об’єктів, підрозділів (функціональних департаментів) із
аналогічними формами, тимчасово розмістили (initial layout) у цих же позиціях й у
тому порядку (їх номери аналогічні), вузлам ще присвоєні імена-символи: 1, …, 9,
A, …, H18. Перші 16 підрозділів (від 1 до G) у вигляді прямокутної клітинної форми
розміром 2×3 можна переміщувати, зате допоміжний підрозділ, позначений
буквою Н, розташований у діапазонах (5,1)-(5,3) та (1,7)-(9,7), має там залишатися
(рис. 4. 17).
Приклад розміщення 10-го підрозділу (з іменем А) у діапазоні (8,11)-(9,13),
 8  9 11  13 
координати центру цього прямокутника  ,  = (8,5; 12). Координати
 2 2 
клітинних форм усіх підрозділів використовуються для розрахунку відстаней між
ними. Разом із відстанями між підрозділами існують також потоки взаємодії –
функціональні і технічні стосунки різного рівня, бо зрозуміло, що якість
функціонування офісу залежить від їх вдалого взаємного розміщення із
врахуванням інтенсивності потоків19. Ставиться задача розташувати підрозділи
переміщенням позиціях, і щоби знайти завершальне розміщення (final layout) для
покращення ефективності виробничого процесу мінімізацією суми добутків
відстаней і потоків між підрозділами.
Ідея алгоритму
Початкове розміщення «підрозділи → позиції», де їх номери співпадають, це (0,1)-
матриця:

Надалі здійснюється ітераційний процес перестановок рядків/стовпців цієї


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

18
усього імен 61: 1 …9, A(10) … Z(35), a(36) …z(61), звідси максимальний розмір задачі 61
× 61
19
задача раціональної розкладки товару/пропозицій послуг в маркетингу
125
відповідних пар чи трійок підрозділів із покроковою фіксацією і покращенням
поточного значення ЦФ.

Рис. 4.17. Вікно налаштування

В пакеті WinQSB використовується відомий алгоритм CRAFT (Computerized


Relative Allocation of Facilities), де обмін «об’єкт-місце» здійснюється 4-ма
способами:
 попарно (по 2);
 трикутником (по 3);
 по 2, потім по 3;
 по 3, потім по 2.
Кожен крок обміну – це перестановка рядків/ стовпців (0,1)-матриці розташування.

Рис. 4.18. Початкове розміщення (імена підрозділів і номери позицій)

126
Формат табличної моделі (.FLL)
n – кількість підрозділів
 квадратна матриця потоків між підрозділами розміром n × n
 стовпець Location Fixed з n значеннями no/yes визначає фіксацію (yes) позиції
підрозділу
 стовпець Initial Layout in Cell Locations з n значень містить координати
початкового розташування підрозділів (одночасно це координати позицій), за
якими автоматично обчислюються відстані між клітинними формами об’єктів.

Рис. 4.19. Початкові дані


Рішення

127
Рис. 4.20. Рішення: потоки, витрати, відстані, розташування

Аналіз

9 (незафарбовані) із 17 підрозділів змінили своє розташування, значення ЦФ –


сумарні зважені витрати (Total Cost) вдалося зменшити із 53655 до 48197 гр. од. (за
умовчуванням питома вартість «потік × відстань» дорівнює 1 гр. од.).

Рис. 4.21. Кінцева матриця перестановок

Зауваження Із цього першого прикладу може скластися уявлення, що завжди


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

128
Приклад 4.6. Розміщення 32 об’єктів різної (прямокутної, як необхідно) форми
на початковому кроці розміщено (рис. 4.21)

Рис. 4.22. Початкове розміщення

129
Рис. 4.23. Початкові дані

Рішення

Рис. 4.24. Координати і потоки завершального розміщення

130
Рис. 4.25. Плани початкового і завершального розміщення

Аналіз
Усі об’єкти повністю розмістилися у визначених позиціях, однак із 32 об’єктів 4
об’єкти: 9, О(24), С(12) та D(13) змінили свою форму.

Приклад 4.7. Розміщення 61 одноклітинного об’єкту, розташованих у сітці


розміром 12×20 (рис. 4.26).

Аналіз (рис. 4.27)

Це задача максимального розміру для WinQSB, її розв’язок шляхом 59


перестановок рядків/стовпців матриці розміром 61×61 триває до 10 хв.

131
Рис. 4.26. Початкове розташування 61 вузла

132
Рис. 4.27. Завершальне розташування

Задача про балансування технологічної лінії

Загальні відомості Продукт виробничого чи будь-якого іншого організаційного


процесу є композицією відповідних складових (завдань, задач, робіт, операцій,
task), кожна з яких для свого виготовлення чи здійснення потребує витрат
різноманітних ресурсів: часу, коштів, кваліфікованих виконавців, обладнання
тощо. Між цими складовими як елементарними одиницями процесу є технологічні
зв’язки, що дозволяє представити модель продукту у вигляді мережевої структури
із відповідною підпорядкованістю (precedence), де вузли – складові, а дуги –
направлені зв’язки між ними, така структура має багато спільного із проектною
мережею.
Мережева модель продукту – що і у якій послідовності робити – в уявній чи
реальній формі має вигляд прямої чи розгалуженої збиральної лінії, ділянками якої
рухаються потоки певних складових. Якщо виконавець один, тоді маємо одну
лінію із послідовних операцій відповідної тривалості, на початку підготовчі дії,
далі – виготовлення складових, збирання по частинах і, нарешті кінцеве збирання
і оформлення готового продукту. Так було до організації групових операцій, коли
декілька виконавців у спеціальному підрозділі (ділянка, пост, робоча станція)
зосереджені на здійсненні групи специфічних операцій для виготовлення блоку

133
складових, та винаходу складального конвеєра (рис. 4.29), де із готових блоків
компонується кінцевий продукт, за рахунок чого досягаються висока
оперативність процесу, масове виробництво зі зниженими питомими витратами,
що забезпечується складною і досконалою організаційною роботою.
У цій роботі присутня важлива і складна обчислювальна задача із прийняття
організаційного та управлінського рішення під назвою «балансування лінії» (line
balancing problem), де визначається раціональна (оптимальна) структура лінійного
операційного процесу у вигляді зв’язаної послідовності робочих станцій, утвореної
із розгалуженої мережевої моделі. Балансування лінії – це специфічна задача
призначення чи розміщення (layout) елементарних завдань, яких буває сотні і
тисячі, по робочих станціях – «що - куди розмістити», кількість яких залежить від
параметрів процесу: тривалості робочого часу і виробничого плану. Це треба
зробити так, щоби збалансовані робочі станції були синхронізовані, маючи
приблизно рівні проміжки операційного часу, аби звести до мінімуму час простою
уздовж лінії (чи паралельних ліній) та найкраще використати кадровий і технічний
потенціал робочих станцій.
Визначальним показником для розв’язання цієї задачі є тривалість циклу лінії
(Cycle time, C), яка визначається заданими: тривалістю відведеного робочого часу,
скажімо, протягом зміни (operating time, T) та запланованим (бажаним) виходом
готового продукту (desired output rate, Р): С = T/D. Це максимальний час,
відведений кожній робочій станції для здійснення призначених їй завдань, і,
фактично, вихідна швидкість і продуктивність (potential rate) збиральної лінії.
Якщо якась робоча станція використає менше виділеного максимального часу, у
неї з’являться залишки (потенційні резерви) операційного часу, що свідчить про
неефективність отриманого балансу – протягом цього залишкового часу
працівники і обладнання робочої станції в очікуванні чергового завдання від
станцій-попередників.
Шукана кількість робочих станцій – N, це функція тривалості циклу, залежить від
плану Р та Результативності вибраного алгоритму щодо комбінування
елементарних завдань в робочі станції.

Отримане розрахунками значення N оцінюється значенням зважених залишків чи


резервів робочого часу для лінії (Balance delay, BD):
BD = Залишки часу (протягом циклу)/NC 100 (%).
Відповідно, ефективність лінії Е = 100 - BD (%).
Дії:
1) Сформувати мережеву модель продукту і робочу таблицю20.
2) Задати параметри процесу:
 С (тривалість циклу, Cycle time in minute) або
 значення T (тривалість зміни, Time length in minute) та Р (план, Desired
production quantity), за ними буде обчислено значення С.
3) Вибрати алгоритм:

20
для кожної дуги-зв’язку номер вузла-попередника менше номера вузла-наступника,
інакше повідомлення про помилку Subscript out of range і припинення роботи (порада:
зберігати файл документа)
134
 евристики, розділи налаштування: Primary Heuristic, Tie Breaker
 оптимізації
 імітаційного моделювання та евристики (COMSOAL), налаштування
генератора випадкових чисел (Random seed number, Number of random generation).

Рис. 4.28. Вікна налаштування

Формат робочої таблиці


n – кількість завдань (задач, task)
Таблиця має n рядків та 4 стовпці, у них для кожного завдання задано:
 ім’я (співпадає із порядковим номером)
 тривалість (за умовчуванням, в хвилинах)
 ізольованість (Y/N) та
 список наступників (successor).

Приклад 4.8. (Файл LINEBAL.FLL)


Продукт складається із 21 завдань (рис. 4. 29), їх загальна тривалість 143 хв.:

135
Рис.4.29. Початкові дані: мережа, таблиця

Рішення (рис. 4.30)

136
137
Рис. 4.30. Рішення

138
Аналіз

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


робочих станцій, у кожній – один виконавець-оператор, задана тривалість
виробничого процесу 150 хв., тривалість усіх операцій 143 хв., із відведеного часу
не використано 7 хв., які склали значення BD = 7/(530)  100 = 4,67%. Відповідно,
ефективність балансування Е = 100 - 4,67 = 95,33%.
Невикористаний час (idle time):
РС 1: 30 - (9 + 12 + 8) = 1
РС 2: 30 - (10 + 6 + 5 + 7 + 2) = 0
РС 3: 30 - (12 + 9 + 7) = 2
РС 4: 30 - (11 + 4 + 3 + 6 + 3 + 3) = 0
РС 5: 30 - (8 + 6 + 7 + 5) = 4.

Модифікація моделі
За оновленими технологічними нормами зменшено тривалості операцій (хв.):
Task 2: 9  6
Task 7: 10  8
Task 8: 12  10,
збільшено для:
Task 11: 3  4
Task 16: 3  5.
Знайти новий баланс.
Рішення (рис. 4.31)

Рис. 4.31. Рішення. Змінився склад усіх робочих станцій, ефективність їх


балансування знизилась.
139
Глава 5. Динамічні мережеві моделі
Задача про диліжанс

Наведена в [15, Т2, гл. 8] т. зв. «задача про диліжанс» (Stagecoach


Problem)21 ілюструє сутність динамічних багатокрокових процесів і методику
пошуку оптимальних рішень на прикладі зрозумілих транспортних комунікацій.
Згідно теорії динамічного програмування (ДП) горизонт планування розбивають
на окремі стадії (стани, часові періоди, stage), для обчислень на поточній стадії
цілком достатньо рішень, отриманих на попередній стадії, що суттєво зменшує
вимоги до машинних ресурсів.
Задача представлена направленою зваженою мережею, за змістом і шуканим
рішенням є аналогом задачі про пошук найкоротшого шляху (НКШ) від
початкового до кінцевого вузлів мережі, але мережа має специфічну організацію і
розв’язується не симплекс-методом ЛП, а характерним для ДП алгоритмом.
В основу цього алгоритму закладена методика динамічної рекурсивної
залежності, наприклад, функція мінімізації входів між двома станами:

де на n-ій стадії для поточного вузла s рішення f(n,s) обчислюється за отриманими


на попередній (n-1)-ій стадії рішеннями наведеною рекурентною формулою. Отже,
першим проходом мережі накопичуються потенціали вузлів.
Наступним проходом мережі у зворотному напрямі за цими вузловими рішеннями
отримується кінцеве рішення.

21
алегоричний приклад: у часи, коли диліжанс був єдиним транспортним засобом для
дальніх подорожей, мандрівник має визначити найкоротший (найдешевший) маршрут від
старту до фінішу шляхами, які пролягають через певні населені пункти чи території й
складаються із дуг з певними ваговими коефіцієнтами (довжиною, поточними витратами)
140
Приклад 5.1. (файл STAGE.DPP)

Маємо направлену зважену мережу із 10 вузлів і 20 зважених дуг (рис. 5.2),


представлену наступною квадратною матрицею 10 × 10:

Рис. 5.1. Початкові дані

На відміну від задачі про найкоротший шлях (НКШ) із довільним розташуванням


вузлів, вузли цієї мережі утворюють регулярну схему, у прикладі із 4-ох
виокремлених станів (С1, С2, С3, С4) та зв’язками лише між ними:

Рис. 5.2. Задана мережа

Таку мережу можна «розрізати» на 4 «шматки», кожен – пара сусідніх станів,


утворивши укрупнену лінійну структуру динамічного процесу:

.
У цьому – принцип ДП, коли процес у просторі «показник - час» можна
представити структурою із «шматків»-станів. Обчислювальний процес спочатку
йде у напрямку 10 → 1 за станами С1 → С2 → С3 → С4, де діють етапи, які
охоплюють сусідні стани:
141
 (10) → (8, 9)
 (8, 9) → (5, 6, 7)
 (5, 6, 7) → (2, 3, 4)
 (2, 3, 4) → (1),
на кожному з яких обчислюються мінімальні шляхи від джерела 10 до вузлів
поточного стану. Наприклад, на 3-му етапі (5, 6, 7) → (2, 3, 4) на вхід вузла 3 подано
числа 16, 23, 26, отримані за даними попереднього і поточного етапу, і, згідно
поставленої задачі мінімізації, обчислюється Рішення: f(3,3) = min(16, 23, 26) = 16,
забезпечений дугою (3 - 5) із довжиною 6.
Відповідно, на кожному кроці запам'ятовуються: номер поточного вузла-стоку (j),
номер вузла-джерела (i) і довжина дуги (i - j), що забезпечили мінімум, тобто, (3,

5, 6) для вузла 3:

Рішення цього проходу – збережений числовий масив проміжних рішень (рис. 5.3).
Зворотним проходом 1 → 10 етапами
 (1) → (2, 3, 4)
 (2, 3, 4) → (5, 6, 7)
 (5, 6, 7) → (8, 9)
 (8, 9) → (10)
за даними цього масиву послідовною фіксацією аргументів мінімізації формується
кінцевий Рішення – найкоротший шлях 1 → 3 → 5 → 8 → 10 довжиною (19):

Рис. 5.3. Алгоритм

142
Рис. 5.4. Результати обчислень за рекурентною формулою

Рис. 5.5. Формули обчислень за зворотним проходом

Рішення

Рис. 5.6. Рішення для Node1 → Node 10

Приклад 5.2. Багатополюсна задача про диліжанс представлена мережею із


реальними 3 джерелами, 10 проміжними вузлами й 5 стоками, що утворює 5 станів

143
Після додавання (на вимогу програми) фіктивних полюсів – джерела (0) з 3 дугами
та стоку (19) з 5 дугами, із нульовими оцінками дуг, мережа має такий вигляд:

Рис. 5.7. Мережа (розширена версія)

Рис. 5.8. Матриця початкових даних

У вікні налаштування визначається початок (0) і кінець (19) найкоротшого шляху.

144
Рис. 5.9. Вікно налаштування, Рішення (фрагмент)

З наведеного фрагменту повної таблиці рішень зразу видно, що від джерел 1, 2 та


3 до стоку 19 є три шляхи довжиною, відповідно, 16, 20 та 16 од., шляхи 1→19 та
3 → 19 рівнозначущі (статус Optimal стосується дуг шуканого шляху 1 → 19):

Рис.5.10. Результати

145
Рис. 5. 11. Рішення

Задача про рюкзак

«Рюкзак»22 – контейнер (вагон, судно чи літак), який завантажують певними


предметами.
Задано:
 для контейнера – його параметри: місткість, вантажопідйомність, вимоги до
певного ресурсного постачання (енергією, персоналом, спеціальними
засобами), виступають як обмеження
 для кожного вантажу – розміри, вага, потреби до певних ресурсів, цінність,
наявна кількість.
Треба: визначити оптимальний план завантаження: які предмети і у якій кількості
завантажити у контейнер, щоби показник ефективності – загальна цінність усього
вантажу – була максимальною із врахуванням обмежуючих властивостей
контейнера.

Приклад 5.3. (файл KNAPSACK.DPP)

4 предмети (A, B, C, D) треба завантажити у контейнер заданої ємності.


I. Визначити план X = (xa, xb, xc, xd), за яким
II. ЦФ (загальна цінність) V = 8xa + 10xb + 4xc + 7xd → max
III. За обмежень:
10xa + 6xb + 3xc + 5xd  20 (за ємності, capacity)
xa  5
xb  3
(за наявністю, available)
xc  4

22
за алегоричним прикладом, коли турист(ка) має найцінніше за вмістом спакувати рюкзак
із врахуванням його місткості й своєї «вантажопідйомності»
146
xd  2
та граничних умов: усі шукані змінні цілого типу.

Рис. 5.12. Початкові дані

Скільки предметів можна завантажити, враховуючи ємність контейнера у 20 од.?

Відповідно маємо мережу зі станів A, B, C та D, де відшукується шлях


максимальної довжини:

Рис. 5.13. Мережа станів

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


ємності контейнера й величина цінності. Кінцевий етап – залишки ємності
контейнера й відповідні значення загальної цінності. Для нульових залишків
визначено три варіанти із значеннями ЦФ:

147
Рис. 5.14. Субоптимальні плани: Х = (2, 0, 0, 0) та Х = (0, 1, 3, 1)

Рис. 5.15. Оптимальний план Х = (0, 2, 1, 1)

Виробнича програма: випуск, задоволення попиту, зберігання

В умовах нерівномірного (наприклад, сезонного) попиту на продукцію


розв’язанням задачі про оптимальний розклад виробничого процесу (Production
and Inventory Scheduling Problem) у періоди, коли випуск (Production Quantity, P)
перевищує попит (Demand, D), утворюються кінцеві запаси (Hand Inventory, H), за
зберігання яких несуть відповідні витрати, у періоди, коли попит перевищує
випуск, несуть витрати за недопоставку (Backorder, B). Випуск продукції
супроводжується фіксованими витратами (Production Setup Cost, S). На кожному
поточному кроці I(n) = H(n), якщо сума попиту не перевищує суми пропозицій,
зокрема, 0, інакше, це B(n), залишок I(n) = I(n-1) + P(n) – D(n).
Таким чином у кожному n-му часовому періоді (стані) для заданого попиту D(n)
треба визначити випуск продукту P(n) й відповідні витрати: S, H, B, за якими
формується функція f(n, i, S, H, B) і сума загальних витрат (ЦФ), i – поточні
значення залишку I(n-1).

148
Рис. 5.16. Типові ситуації поточного часового періоду

Приклад 5.4. (файл PRODINVENT.DPP)

Визначається виробнича програма для 4-ох часових періодів (місяців), де для


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

Рис. 5.17. Початкові дані

Рішення

Рис. 5.18. Рішення (скорочена форма)

149
Рис. 5.19. Рішення (схема)

150
Глава 6. Багатоцільові мережеві моделі
Загальні відомості Усі попередні оптимізаційні задачі та їх математичні моделі
мали одну цільову функцію із відповідним критерієм. Класу моделей цільового
програмування (Goal Programming, GP23) або багатокритеріальної оптимізації
відповідає рішення «і вовки ситі, і вівці цілі», тобто, відшукується компромісне
рішення із задоволенням суперечливих умов, коли, наприклад, одночасно хочеться
як найдешевше купити товар чи отримати послугу високої якості або ж за малих
запасів ресурсів розраховувати на високий дохід. Тож зрозуміло, що обіцянки
«максимальна якість за мінімальною ціною» сумнівні (не кажучи вже, що мінімум
ціни як додатного числа це 0).
Багатокритеріальних задач у реальній практиці набагато більше, ніж «ідеальних»
однокритеріальних, де мають разом досягатися несумісні цільові функції (їх не
менше двох) типу: одночасна мінімізація вартості й максимізація якості або
мінімізація/максимізація різних комбінацій шуканих змінних, звідси – висока
популярність цих моделей.
Як і в задачах ЛП, взаємодія об’єктів у цьому класі моделей зображується у вигляді
мережі.
Зважений і обґрунтований компроміс (trade-off) досягається вимушеним
однобічним чи взаємним послабленням граничних вимог із неодмінною
«розплатою» – втратами однієї чи обох сторін. Наприклад, коли запасів треба трохи
прикупити, аби задовольнити очікуваний дохід, або ж очікуваний дохід буде дещо
меншим за бажаний з-за фіксованих ресурсних обмежень, й це має влаштувати усі
сторони конфліктної ситуації.
Оптимум GP, зокрема реалізований в WinQSB, це пошук компромісу за критерієм
мінімізації суми змін значень правих частин обмежень (ПЧО).

Ідея
В задачі ЛП є обмеження-нерівності, наприклад,
х1 + 2х2  12
3х1 + х2 ≥ 10.

Відомо, що симплекс-метод ЛП відшукує екстремум ЦФ на невизначеній системі


лінійних рівнянь, попередньо побудованій заміною обмежень-нерівностей
обмеженнями-рівняннями. Для цього у кожну нерівність додається такий собі
компенсатор чи «доважок» (deviation) із відповідним знаком (як продавець додає
гирьку на відповідну тарілку ваг), аби зрівняти ліву і праву частини. Зазвичай зліва
завжди розміщують шукані змінні, тому фактично змінюється константа – права
частина обмеження (ПЧО).
Відповідно, маємо:
х1 + 2х2 = 12 - у1 або х1 + 2х2 = 12 - n1
3х1 + х2 = 10 + у2 або 3х1 + х2 = 10 + p2

23
A. Charnes, W. Cooper (1955). Optimal estimation of executive compensation by linear pro-
gramming
151
де: у1 – «негативний» (n), а у2 – «позитивний» (p) доданки, мінімальна сума
відхилень у1 + у2 – це ЦФ, зате тут відшукуються вже 4 змінні: х1, x2, y1, y2, зв’язані
між собою обмеженнями.
В задачах ЦЛП це дещо інакше.
Систему нерівностей
х1 + 2х2  12
3х1 + х2 ≥ 10

перетворити в систему рівнянь й розв’язати її, це відома і давня математична задача


розв’язання рівняння у цілих числах (діофантове24 рівняння), яка може й не мати
цілочислового розв’язку, відповідно, її розв’язують наближено. Задана система
нерівностей тоді має такий вигляд (ліва частина приблизно дорівнює правій):
х1 + 2х2  12
3х1 + х2  10,
кожне обмеження, відповідно, із обома доданками, бо зразу неясно, додавати його
чи віднімати:
х1 + 2х2 = 12 - n1 + p1
3х1 + х2 = 10 - n2 + p2,
після розв’язання один з них є нулем.

Цільове лінійне програмування

Приклад 6.1. Визначити виробничу програму – що (А, В, С) і скільки (хА, хВ, хС)
виготовити, аби задовольнити дві суперечливі вимоги: мінімізувати витрати
ресурсів і, одночасно, максимізувати очікувану ефективність виробничого процесу
(дохід), маємо компроміс «витрати проти доходу».

Задача оптимізації (ЛП)


І. Знайти план Х = (хA, хB, хC), за яким
II. ЦФ1 (G1) 3хВ + 2хС → min (ресурсні витрати) або
ЦФ2 (G2) 10хA + 9хB + 8хС → max (дохід)
III. За обмежень:
C1: хA + хB ≥ 30
C2: хB + хС ≥ 50
C3: хA + хB + хС ≤ 80 ресурс 1
C4: 3хA + 2хС ≤ 120 ресурс 2
та граничних умов: хА, хВ, хС – неперервного типу, 0 ≤ : хА, хВ, хС ≤ .

Обмеження ЦФ1 (G1) відповідає задачі про дієту мінімальної вартості, а ЦФ2
(G2) – про план виробництва із отримання максимального доходу.
На початку цю задачу розв’яжемо як дві однокритеріальні задачі ЛП на min/max
ЦФ, відшукуючи окремо оптимальний план для кожної ЦФ, щоби мати орієнтовні
границі області допустимих рішень.

24
на честь Діофанта Олександрійського, 3 ст. н. е.
152
Рішення ЛП-1 (min), рис. 6.1.

Рис. 6.1. Рішення ЛП-1


Аналіз

Min ЦФ1 = 114, план (16, 14, 36), тоді ЦФ2 = 1016 + 914 + 368 = 574; ресурсне
обмеження C3 зменшено із 80 до 66, це ліва гранична точка (114, 574) на графіку
(рис. 6.3)

Рішення ЛП-2 (mах), рис. 6.2.

Аналіз
Max ЦФ2 = 750, план (30, 50, 0), тоді ЦФ1 = 150 (проти 114); обмеження С1
збільшено із 30 до 80; ресурсне обмеження С4 зменшено із 120 до 90, це права
гранична точка (150, 750) на графіку (рис. 6.3), між ними – варіанти компромісу
(наче кінці канату, який перетягують).

153
Рис. 6.2. Рішення ЛП-2
Висновок
Якщо запаси ресурсів фіксовані і не можуть змінюватися (80, 120), максимальний
ефект буде 574 од., якщо ж запаси можна збільшити (114  150) відповідними
витратами на їх поповнення, тоді максимальний ефект буде 750 од.:

Рис. 6.3. Граничні допустимі рішення

Приклад 6.2. (файл GP.GPP)

Модуль Linear and Integer Goal Programming розв’язує задачу ЛП, де ЦФ є сумою
втрат (відхилень) ПЧО (правих частин обмежень), вирази обох ЦФ переходять до
групи обмежень.

154
Позначення: p1, p2, n3, n4 – шукані додаткові втрати, це: додатні чи позитивні (р) та
від’ємні чи негативні (n) додаткові шукані змінні, які додаються чи віднімаються
від значень ПЧО для перетворення системи нерівностей у систему рівнянь.

Задача оптимізації (GP)


І. Знайти план Х = (хA, хB, хC) та p1, p2, n1, n2, щоби
II. ЦФ D = p1 + p2 + n1 + n2 → min
III. За обмежень:
хA + хB = 30 + p1
хB + хС = 50 + p2
хA + хB + хС = 80 – n1
3хA + 2хС =120 – n2
та граничних умов: хА, хВ, хС, p1, p2, n1, n2 – неперервного типу,
0 ≤ хА, хВ, хС, p1, p2, n1, n2 ≤ .

Формат робочої таблиці

Рис. 6.4. Початкові дані


Зауваження
У наведеній постановці робоча таблиця мала б мати вигляд (рис. 6.5), але діючий
формат показано на рис. 6.4. Це означає, що при розв’язанні нової задачі із
невідомими дійсного типу у вікні налаштування достатньо увести дані лише щодо
основних (Х) шуканих змінних, бо додаткові змінні (pі, nі) формуються
автоматично згідно норм симплекс-методу, який використовується у цій задачі:

155
Рис. 6.5. Стандартна форма початкових даних GP

Рішення (GP)

Рис. 6.6. Рішення

Аналіз

Шуканий план співпав з рішенням ЛП-1, це означає, що за визначеним критерієм


(сума змін ПЧО мінімальна) поступливішими мають бути умови максимізації,
обмежившись нижніми граничними значеннями (30, 50).
ЦФ – мінімум сумарних змін початкових даних (ПЧО) дорівнює 14, це зміна запасу
ресурсу С3: 80  66.

Модифікація моделі
Умова: запас ресурсу С3 (80) не можна змінювати, маємо строге обмеження:
хA + хB + хС = 80.
Рішення (рис. 6.8).
План Х = (30, 35, 15), ЦФ: збільшена сума змін до 35 з-за зміни обмеження С1 (30
 65), дохід збільшився до 735 од. за рахунок збільшення витрат на ресурсне
забезпечення (114  135), точка (135, 735) на графіку.

156
Рис. 6.7. Рішення

Параметричний аналіз
Праві частини обмежень (ПЧО) – параметри управління ефективністю
виробничого процесу, її підвищують (якість продукції, дохід) збільшенням
граничних значень цих параметрів, тож треба оцінити їх сукупний вплив на
показник ефективності (G2) й додаткові вимоги до необхідного ресурсного
забезпечення (G1), щоби надалі приймати відповідне рішення: який параметр й
наскільки збільшити.

1) Оцінка впливу ПЧО С3 із заданою величиною 80 од. на значення G1 та G2.

157
При зменшенні ПЧО С3 від 80 до 66 од. ресурсна складова дорівнює 114 од., ефект
має значення у 574 од. (як у варіанті ЛП-1 на мінімум ЦФ).

Рис. 6.8. Параметричний аналіз ПЧО С3

2) Оцінка впливу ПЧО С1 із заданою величиною 30 од. на значення G1 та G2.

Рис. 6.9. Параметричний аналіз ПЧО С1

При зростанні ПЧО С1 від 30 до 80 од. ресурсна складова слабко зростає з 114 до
150 од., зате ефект стрімко досягає максимуму у 750 од. (співпало із варіантом з
ЛП-2 на максимум ЦФ).

158
Рис. 6.10. Рішення з С1

Перевірка

Рис. 6.11. Перевірка для С1

3) Оцінка впливу ПЧО С2 із заданою величиною 50 од. на значення G1 та G2.

159
Рис. 6.12. Рішення для С2

4) Оцінка впливу ПЧО С4 (ресурс 2) із заданою величиною 120 од. на значення G1


та G2.

При зростанні ПЧО С4 від 120 до 190 од. ресурсні витрати спадають з 114 до 100
од., зате ефект досягає 700 од. проти 574 од.

160
Рис. 6.13. Рішення для С4

Цільове цілочислове лінійне програмування

Приклад 6.3. (файл ІGP.GPP).

У цій задачі ліва і права частини обмежень приблизно дорівнюють одна одній:
-х1 + 3x2  6
7x1 + x2  35
7x1 + 9x2  350.

Задача оптимізації
І. Знайти план Х = (х1, х2) та p1, p2, р3, n1, n2, n3, щоби
II. ЦФ1: p1 + p2 → min
ЦФ2: n3 → min
III. За обмежень:
-х1 + 3х2 - n1 + p1 =6
7х1 + х2 - n2 + p2 = 35
7х1 + 9х2 - n3 + p3 = 350
та граничних умов: шукані змінні цілого типу.
Початкові дані (С1 не видно)

Рис. 6.14. Початкові дані


161
Зауваження
При розв’язанні нової задачі у вікні налаштування для типу даних Nonnegative in-
teger треба увести дані для основних (Х) шуканих змінних та додаткових змінних
(p, n), за умовчуванням вони усі позначені як хі (при бажанні їх можна
перейменувати як на рис. 6.12), знак відношення необхідно замінити на «=»:

Рішення

Рис. 6.15. Рішення


Аналіз

Виходячи із отриманих ненульових значень шуканих «негативних» змінних n1, n2,


n3, реальне відношення лівої і правої частин таке:
-x1 + 3x2  6 → -4 + 9 = 5 (+ 1) = 6
7x1 + x2  35 → 28 + 3 = 31 (+ 4) = 35
7x1 + 9x2  350 → 28 + 27 = 55 (+ 295) = 350.
Якщо x1, x2 – кількість неподільної продукції, а ПЧО – запаси неподільних ресурсів,
тоді знайдене рішення x1 = 4, x2 = 3.

Модифікація робочої таблиці


Якщо погодитися з імена хі, тоді на тих же даних маємо:

162
Задача цілочислової оптимізації
І. Знайти план Х = (х1, …, х8), щоби
II. ЦФ1: x4 + x6 → min
ЦФ2: x7 → min
III. За обмежень:
-х1 + 3х2 - x3 + x4 =6
7х1 + х2 - x5 + x6 = 35
7х1 + 9х2 - x7 + x8 = 350
та граничних умов: шукані змінні цілого типу.

Робоча таблиця і Рішення (рис. 6.16)

Рис. 6.16. Початкові дані і рішення

Приклад 6.4. Місцева влада вирішила побудувати бізнес-центр (БЦ), обмеживши


бюджет 1 млн. грн. Маркетингові дослідження показали, що бажано мати
приблизно: 5 малих (400 м2), 10 середніх (750 м2) і 15 великих (1050 м2) приміщень.
За прогнозами очікується прибуток від експлуатації цих приміщень: 18000 грн. (за
малі), 33000 грн. (за середні) й 45150 грн. (за великі).
Треба визначити оптимальний план Х = (X1, X2, X3), де X1, X2, X3 – шукані
кількості приміщень відповідного типу за умови дотримання обмежень на площу і
вартість будівлі.

Задача оптимізації (ЦЛП)


І. Знайти план Х = (X1, X2, X3), щоб
ІІ. ЦФ: 18000X1 + 33000X2 + 45150X3  min
ІІІ. за обмежень:

163
С1: X1 = 5 (малі)
С2: X2 = 10 (середні)
С3: X3 = 15 (великі)
та граничних умов: усі змінні додатні і цілого типу.

Рис. 6.17. Початкові дані і рішення

За отриманим оптимальним планом: X1 = 5, X2 = 10, X3 = 15, бюджет буде


перевищено майже на 100 тис. грн. ( 97,25 тис. грн.), варіант вважається
неприпустимим.

Модель цільового програмування


Цільові «м’які» обмеження:
X1  5, X2  10, X3  15. Вартість  1000000 грн.
Маємо 4 «м’яких» обмеження, 8 додаткових змінних.
Для ЦФ:
n1, n2, n3 – для змінних X1, X2, X3,
n4 – не перевищувати бюджет
щоби мати якнайменше змін значень ПЧО.
Усі 11 шуканих змінних цілого типу.

Задача оптимізації (GP)


І. Знайти план Х = (X1, X2, X3), N = {ni}, P = {pi}, i = 1, …, 4, щоб
ІІ. ЦФ1: n1 + n2 + n3  min
ЦФ2: n4  min
ІІІ. за обмежень:
С1: X1 - n1 + p1 = 5 (малі)
С2: X2 - n2 + p2 = 10 (середні)
С3: X3 - n3 + p3 = 15 (великі)
С4: 18000X1 + 33000X2 + 45150X3 - n4 + p4 = 1000000 (бюджет)
та граничних умов: усі змінні додатні і цілого типу.

164
Рис. 6.18. Початкові дані

Рис. 6.19. Рішення


Аналіз

План: Х = (4, 10, 14). ЦФ1 = ЦФ2 = 0.


Обмеження:
С1: 4 - 0 + 1 = 5 (малі)
С2: 10 - 0 + 0 = 10 (середні)
С3: 13 - 0 + 2 = 15 (великі)
С4: 18000*4 + 33000*10 + 45150*13 - 0 + 11050 = 1000000 (бюджет).

Перевірка: 1000000 - (18000 + 2*45150) = 11050, тобто, відмова від одного малого
та двох великих приміщень дозволила зекономити 11050 грн. бюджету.

Модифікація моделі 1
Строга умова: Х1 = 5, відповідно, n1, p1 = 0

165
Рис. 6.20. Початкові дані і рішення
Аналіз

План: Х = (5, 7, 15). ЦФ1 = ЦФ2 = 0.


Відмова від трьох середніх приміщень дозволила зекономити 1750 грн. бюджету.

Модифікація моделі 2
Строга умова: Х1 = 5, Х2 ≥ 10.

166
Рис. 6.21. Початкові дані і рішення: Х = (5, 18, 7)

167
Глава 7. Аналіз рішень в умовах
невизначеності і ризику
Загальні відомості Аналіз рішень – це бажання здійснити найкращий вибір
одного із визначеного набору варіантів (альтернатив) з невизначеними наслідками,
складові:
1. Альтернативні рішення (A1, A2, …, Am), одне з яких має бути вибране.
Приклади: прийняти участь/не приймати участь; привезти на продаж 1, 2 …
одиниць товару; купити 1, 2, … одиниць акцій/валюти чи не купувати тощо. За
кожним рішенням є наступне: з рішень узяти/не брати відпустку, є «узяти», тоді
новий вибір: куди їхати відпочивати (варіанти).
2. Події (S1, S2, …, Sn) випадкової природи, які враховуються після прийняття
рішення, їх називають станами природи, знаючи, якою непередбачуваною
природа буває, у вигляді фіксованих варіантів типу: високий, середній, низький.
Приклади: попит на продукцію, явка виборців, період року, вік клієнтів, ґатунок
товару, час доби, тип транспортного засобу тощо.
Вибране рішення і певна подія (стан природи), що може статися, – це входи.
3. Виходи – відповідні визначені розрахунками оцінки чи Рішення як наслідок
вибраного i-го рішення і визначеного j-го стану природи, їх зазвичай виражають у
вигляді платежів (Пij), які можуть бути кількісними (додатними чи від’ємними
числами: прибуток чи витрати, температура повітря) чи якісними, нагадує Рішення
аналізу «Що-якщо»: якщо вибрати рішення А3, тоді при стані S2 отримаємо платіж
П3,2.

Платіжна матриця. Дерево рішень

Узагальненням входів і виходів є платіжна таблиця чи матриця (payoff table):


S1 S2 … Sn
A1 П11 П12 … П1n
A2 П21 П22 П2n
… … … … …
Am Пm1 Пm2 … Пmn

Приклад формування платіжної таблиці

Продавець збирається продати на ринку свій товар (фрукти, овочі, видану книжку
чи якусь послугу), припущення і платежі: вартість одиниці 10 грн., втрата покупця
(попит не задоволено) -4 грн., непродана одиниця -2 грн.
Рішення: продати 1, 2 чи 3 одиниці, попит (стани природи): купити 1, 2, 3 чи 4
одиниці.

Платіжна таблиця (формули і значення):

168
Й, за аналогією із транспортною задачею матричного типу, платіжну таблицю
можна представити в наочній формі як направлену мережу, яку називають деревом
рішень (decision tree), де ваговим коефіцієнтом дуги є, зокрема, величина Пij (рис.
7. 1).

Рис. 7.1. Дерево рішень

Аналіз рішень в умовах невизначеності

Задача (на прикладі даних файла PAYOFF.DAA). Продавець (він же ОПР) певної
продукції (товару, послуги) в Рішенняі поверхневого ознайомлення із невідомим
йому ринком припустив, що попит (стан природи, State) може бути високим (High),
середнім (Medium) чи низьким (Low).
Не маючи аніяких кількісних (статистичних, ймовірнісних) оцінок – рішення має
прийняти у повній невизначеності, як кажуть, «на страх і ризик».
Явно ризикуючи, він визначив три альтернативних рішення щодо своїх дій:
А1: Провести активну (не безкоштовну) рекламну компанію (Advertise)
А2: Розраховувати на везіння (Do Nothing) чи
А3: Керуватися гнучкою ціновою політикою (Pricing).
Здійснення рішень супроводжується витратами, для кожного рішення різні,
скажімо, для А2 вони відсутні, в разі успіху слід розраховувати на виграш,
прибуток (платіж з +), інакше – програш, втрати (платіж з –).
Для цих станів та рішень ОПР склала таку уявну платіжну матрицю для оцінки
наслідків:

169
Рис. 7.2. Матриця платежів

«Мінуси» для рішення «Розраховувати на везіння», це потенційні втрати,


наприклад, витрати на оренду приміщень, транспорт і оплату праці персоналу не
окупилися, пропозиція перевищила попит, «плюси» – якщо вдасться вдало вгадати
із пропозицією і попитом, але усе це – без будь-яких гарантій.

Мережева модель (дерево рішень), рис. 7.3.

Мовою теорії ігор – це т. зв. гра з (пасивною) природою, де «ходи» природи – її


статичні стани, поведінка гравця: «вгадав – не вгадав», відповідний Рішення (вихід,
outcome): «виграш - програш».
Модуль Decision Analysis пропонує для такої платіжної матриці 4 методи (критерії)
визначення кращої альтернативи, де кожен критерій враховує характер ОПР, її
схильність до ризику.

Рис. 7.3. Дерево рішень

170
Оскільки усі розрахунки у модулі виконуються автоматично, покажемо їх в Excel.

Песимістичний критерій maximin це max{min(рядок)}, розрахований на


обережну ОПР, які кажуть: «краще синиця у руці, ніж журавель у небі», в рядках
вибрати мінімуми, а з них – обчислити максимум, рішення А3:

Оптимістичний критерій maximax це max{max(рядок)} розрахований на ОПР,


які кажуть: «хто не ризикує, той не п’є …», рішення – А1:

Гнучкий компромісний критерій Гурвіца базується на коефіцієнті


«оптимізму» чи схильності ОПР до ризику (р), р = 0, …, 1, при р = 0, це maximax,
при р = 1, це maximin, для довільного значення р це: max{р×max(рядок) + (1-
p)×min(рядок)}, для оптиміста з р = 0,5 і вище рішенням є А1, для песиміста з р =
0,2 краще вибрати А3:

Увага: наведена формула помилкова:


при р = 0,5 мали б значення 0,5×100 + 0,5×40 = 70 замість 65.

Критерій minimax regret визначає найризикованіше рішення, це мінімум


максимально можливих втрат.
Ризик rij рішення Ai при стані Sj – різниця між максимальним виграшем Mj, який
можна б було отримати, достовірно знаючи, що природа буде точно знаходитися у
цьому стані, і тим виграшем Пij, який буде отримано в умовах невизначеності щодо
станів природи. Отже, ризик обчислюється за формулою: rij = Mj - Пij ≥ 0, де Mj –
максимально можливий виграш при стані Sj. Наприклад, при стані S1 (High) M1 =
171
max(100, 35, 84) = 100, тоді ризик r21 = 100 - 35 = 65. Обчислення ризиків (нижня
таблиця) – різниці від максимуму по стовпцях, далі по рядках пошук максимуму, а
з них – мінімум. Тож якщо вибрати рішення А1, будуть найімовірніші шанси
програти, ніж виграти:

Аналіз рішень в умовах ризику

Для отримання обґрунтованих відомостей про досвід попередників, наш


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

,
щоби приймати рішення в умовах ризику, маючи «теоретичні», не підтверджені
досвідом (апріорні) ймовірності (Prior probability), без будь-якої додаткової
інформації щодо реальних станів (попиту).

Мережева модель (дерево рішень), де дуги мають два вагових коефіцієнта (рис.
7.4).

172
Рис. 7.4. Дерево рішень

Для прийняття рішення використовується критерій очікуваного значення платежу


без додаткової інформації EV (Expected value without any information), рішення А3:

Багатостадійний процес прийняття рішень

Розглянутий варіант – це 1-стадійний процес ПР і поведінка ОПР на певному рівні.


Якщо цьому рівню передує інший, старший за рангом, процес прийняття рішень,
тоді маємо 2-стадійний процес ПР, тощо.
В прикладі, до якого ми поступово наближаємось, розглянуто саме 2-стадійний
процес, де:
1-ий рівень складається з трьох рішень, де вибирається для реалізації, скажімо, тип
продукту:
 Новітній, щойно утворений (Favorable)
 Звичайний, серійний (Unfavorable)
 Будь-який, із заданого асортименту (Neutral)
який надалі буде пропонуватися різним ринкам, які утворюють 2-ий рівень.
Рішення 1-го рівня теж приймають в умовах ризику, їх ймовірності є похідними від
апріорних ймовірностей рішень 2-го рівня.

Мережева модель 2-стадійного процесу ПР:


173
Рис. 7.5. Дерево рішень

Аналіз рішень в умовах додаткової інформації (аналіз Байєса)

Задані апріорні ймовірності (prior probability) станів природи: (0,2; 0,5; 0,3) в
реальній практиці повинні корегуватися. Адже процес, де приймають рішення,
змінюється зі змінами умов його протікання, з’являється нова інформація, за якою,
скоріше за все, змінюються ймовірності станів природи, за якими приймають
рішення в умовах ризику.
Тож виникає потреба визначити оновлені, побудовані на отриманому досвіді,
апостеріорні ймовірності, з врахуванням діючих умов, які представлені умовними
(conditional) ймовірностями, їх отримання базується на теоремі і формулах Байєса.
Запис: Р(А|Б) – умовна ймовірність, це: ймовірність події Б за умови, що
здійснилася подія А.
Нехай А і Б – дві довільних і незалежних події, тоді:
Р(А), Р(Б) – відомі безумовні ( апріорні) ймовірності.
Р(А|Б), Р(Б|А) – відомі «пряма» та відповідна «зворотна» умовні ймовірності.

174
P A | B   PB 
PB | A  – обчислення «зворотної» ймовірності через відому
P A
«пряму» ймовірність.
Р(А та Б) = Р(Б та А) – рівнозначність позначень сумісних ймовірностей.
Р(А та Б) = Р(А|Б) Р(Б) або Р(Б та А) = Р(Б|А) Р(А) – сумісні ймовірності появи
обох рівнозначних подій А та Б.
Алгоритм
Початкові дані:
 апріорні ймовірності рішень 2-го рівня
 умовні ймовірності рішень 1-го рівня, де визначена нова інформація:

Послідовно обчислюються:
 сумісні (Joint) ймовірності (B9:D11), транспоновані значення (B18:D20)
 безумовні (Marginal) ймовірності (E9:E11)
 апостеріорні (Posterior) ймовірності (B13:D20)

175
Рис. 7.6. Результати обчислень в Excel

Результати, надані модулем:

176
Рис. 7.7. Контрольні значення

Приклад 7.1. (файл BAYESIAN.DAA). Аналіз Байєса


Для 2-стадійного процесу прийняття рішень задані початкові дані щодо
ймовірностей:

Рис. 7.8. Початкові дані

Треба отримати оновлені (апостеріорні) ймовірності для прийняття рішень, де


врахована нова інформація.

Результати

177
Рис. 7.9. Апостеріорні, безумовні та сумісні ймовірності

Рис. 7.10. Дерево рішень (без платежів)

178
Приклад 7.2. (файл PAYOFF.DAA) Платіжна матриця

Для 2-стадійного процесу прийняття рішень задана платіжна таблиця із


початковими даними щодо ймовірностей та платежів:

Рис. 7.11. Початкові дані

Рис. 7.12. Методи аналізу платіжної таблиці

Результати (рис. 7.13)

179
Рис. 7.13. Результати аналізу платіжної таблиці

180
Рис. 7.14. Перевірка розрахунків

Дерево рішень складається з вузлів трьох типів: C (Chance), D (Decision), T


(Terminal).
Вузли типу С:
Survey (1), Advertise, Do Nothing, Pricing (3  3 = 9), разом 10.
Вузли типу D:
Favorable, Unfavorable, Neutral (3), можуть мати вагові коефіцієнти25 (Probability)
Вузли типу Т: High, Medium, Low (3  3  3= 27), мають по два вагових коефіцієнтів
(Payoff, Probability).
Усього 40 вузлів, які зв’язані між собою направленими дугами (їх 39).

25
їх отримують із файла аналізу Байєса
181
Рис. 7.15. Дерево рішень

182
Приклад 7.3. (файл DTREE.DAA) Дерево рішень

Початкові дані (рис. 7.16)

Рис. 7.16. Початкові дані

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


справа уліво, розпочинаються у Т-вузлах, а завершуються у вузлі Survey. C-вузли
здійснюють операцію sum, а D-вузли – операцію max.
Рішення26

26
дещо відрізняється від попереднього (56245 проти 57170) з-за використання
ймовірностей лише з 2 знаками після коми, їх сума 0,99
183
Рис. 7.17. Рішення

Аналіз

Рішення: рекламування новітнього продукту та гнучка цінова політика для двох


інших продуктів:

184
Додатки
Д1: Імпорт даних WinQSB → MS Excel
Табличні продукти програм WinQSB зберігаються в текстовому (.txt) форматі.
Способи імпорту табличних даних, представлених у вигляді текстових файлів, в
Excel.
В Блокноті:
 відкрити текстовий файл,
 виділити все чи необхідний фрагмент, скопіювати і вставити в Excel:

Рис. Д1.1. Робота з Блокнотом

Застосовується при роботі з файлами невеликого розміру.


В Excel:
 виконати команду: Дані → Отримання зовнішніх даних → З тексту
 знайти необхідний файл → Імпорт (рис. Д1.2).
185
Цей спосіб застосовують для роботи з даними, що зберігаються на власному ПК,
та, у першу чергу, з відкритими даними великого розміру (до десятків й сотень
тисяч рядків табличних даних), які зберігаються у вигляді зовнішніх наборів даних
на відповідних сайтах.

Рис. Д1.2. Імпорт тексту


Три кроки Майстра:

186
Рис. Д1.3. Робота з Майстром імпорту тексту

Д2: Формування таблиці даних


Коли використовують таблиці порівняно великого розміру, для модельної
задачі найпростіше згенерувати дані із застосуванням ГВЧ неперервного RAND
(СЛЧИС) чи цілого типу RANDBETWEEN (СЛУЧМЕЖДУ).
Для задач, наближених до реальності й, бажано, із наочним Рішенняом, краще
скористатися картою чи структурною схемою з позначеними на них необхідними
об’єктами – населеними пунктами, торгівельними чи розважальними центрами,
транспортними вузлами тощо, які надалі треба з’єднати згідно отриманого
рішення.
Наприклад, карту розмістити в електронній таблиці в межах екрану, задати умовну
систему координат, послідовно визначити координати для кожного об’єкту і
створити список за форматом: № Об’єкт Х Y. Маючи цей список, формуємо
матрицю відстаней між кожними парами точок (xi, yi), (xj, yj) за відомою формулою:
dij  x  x   y  y 
i j
2
i j
2
.
Приклад.
Для 37 міст України побудувати дерево мінімального покриття
Система координат: задати ширину стовпця 3, пронумерувати рядки і стовпці, для
точного відліку накреслити вертикальну і горизонтальну лінії, які пересуваються,
для деяких задач, наприклад, для транспортної задачі, позначити спеціальні
об’єкти (постачальники, споживачі), рис. Д2.2.

187
Рис. Д2.1. Карта

Рис. Д2.2. Карта з зображенням об’єктів та системою координат

188
Рис. Д2.3. Таблиця відстаней

Створену таблицю відстаней копіюємо і вставляємо у підготовлену таблицу NM-


Розв’язувача:
 виділити робоче поле
 вставити: Edit → Paste
 автодобір ширини стовпця: Format → Column → Width

189
Рис. Д2.4. Початкові дані

Отриманий розв’язок зберегти, txt-файл імпортувати в Excel, виокремити номери


міст і за їх значеннями отримати назви міст:

Рис. Д2.5. Таблиця 36 зв’язків (фрагмент)

190
Рис. Д2.6. Дерево мінімального покриття

Цю процедуру повторюють за умов модифікації моделі.

Умова: «місток» Житомир-Фастів-Житомир довжиною 3 од. перекрито (тепер


відстань 999), знайти інше рішення, використовуючи інші зв’язки.
Рішення

191
Рис. Д2.7. Об’їзд Житомир-Бердичів-Фастів (3 + 4 = 7)

Д3. Аналіз рішень

Д3.1. Параметричний аналіз


Виклик програми командою: Solve and Analyse → Perform Parametric
Analysis (Розв’язати і Зробити аналіз → Виконати параметричний аналіз):

192
Рис. Д3.1. Вікно налаштування

Програма аналізує залежність значення ЦФ від зміни значення параметру (дуги,


вузла), засновану на формулі
С + uC’, де С – задане числове значення параметру (база відліку):
 для дуги (link/arc) – її питома вартість чи довжина (Cost/Distance)
 для вузла (node) – його пропозиція чи попит (Supply/Demand)
 uC’ – приріст значення параметра, де u – знак (±) і коефіцієнт зміни значення
параметру у діапазоні [початок, кінець] із заданим кроком: [ustarting, uending], ustep.
Треба вибрати:
 тип параметру (дуга/вузол),
 потрібний параметр зі списку,
 задати три характеристики для u, ОК.

Приклад 1.
У базовій задачі (вузли якої можна й перейменувати), рис. Д3.2, аналізується
залежність значення ЦФ від числового значення (Node Value) вузла Boston, його
поточне значення (пропозиція, база відліку) С = 100 од., шляхом отримання
табличної функції D = f(sBoston), де аргумент функції – пропозиція sBoston –
змінюється в діапазоні зліва від С:
 від значення 50: uС’= ustarting (-50), С + uС’ = 50
 до значення 75: uС’ = uending (-25), С + uС’ = 75
 з кроком ustep = 5.

193
Рис. Д3.2. Початкові дані

Рішення:

Рис. Д3.3. Таблиця рішень

Рис. Д3.4. Графік

Приклад 2.
Аргумент функції, пропозиція sBoston, змінюється в діапазоні зправа від С:
194
від значення 140: uС’= ustarting (+40), С + uС’ = 140
до значення 210: uС’ = uending (+110), С + uС’ = 210
з кроком ustep = 5.
Рішення:

Рис. Д3.5. Таблиця рішень

Приклад 3.
Аргумент функції, пропозиція sBoston, змінюється по обидва боки від С:
зліва від значення 0: uС’= ustarting (-100), С + uС’ = 0
до значення зправа 190: uС’ = uending (+90), С + uС’ = 190
з кроком ustep = 20.
Рішення:

195
Рис. Д3.6. Таблиця рішень

Приклад 4.
Досліджується функція D = F(cBoston-Tampa), її аргумент, питома вартість cBoston-Tampa
завантаженої дуги Boston-Tampa, якою (тут найдешевша питома вартість до
Тампи) поставляється 100 од. продукту, змінються по обидва боки від С = 5:
зліва від значення 0: uС’= ustarting (-5), С + uС’ = 0
до значення зправа 10: uС’ = uending (+5), С + uС’ = 10
з кроком ustep = 1.
Рішення (рис. Д3.7), за яким:
зменшення вартості поставки цим маршрутом гарантовано привело б до
зменшення загальних транспортних витрат – це турбота транспортної компанії, яка
замовила цей аналіз,
збільшення вище 5 гр. од., навіть до 5,01 гр. од., не приведе до збільшення значення
ЦФ, бо Тампу забезпечать інші постачальники.

196
Рис. Д3.7. Рішення: таблиця і графік

Повернімось до нашої задачі:

та до отриманого рішення щодо оптимальних шляхів постачання:

197
Рис. Д3.8. Результати прямої і двоїстої задач ЛП

Це рішення вказує на можливість зменшення загальних транспортних витрат за


рахунок збільшення пропозицій двох «вигідних» постачальників у:
 Бостоні, тіньова ціна -2, допустиме збільшення 150 од., тобто, до 250 од., та
 Денвері, тіньова ціна -2, допустиме збільшення 350 од., тобто, до 550 од.

Параметричний аналіз пропозицій постачальників з Бостона та Денвера


Аналізується залежність значення ЦФ Аналізується залежність значення
від пропозиції вузла Boston, його ЦФ від пропозиції вузла Denver, його
поточне значення 100 од., змінюється поточне значення 200 од., змінюється
від значення 0 до значення 400 (із від значення 0 до значення 500 з ustep
запасом) з ustep = 10. = 10.
Рішення (рис. Д3.9) Рішення (рис. Д3.10)

198
Рис. Д3.9. Графік для Бостона

Рис. Д3.10. Графік для Денвера

Аналогічний аналіз для постачальника з Остина (рис. Д3.11) свідчить про


негативний вплив його поставок на загальні транспортні витрати, вони є лише з-за
обмежених можливостей Бостона і Денвера, зі збільшенням їх пропозицій
поставки із Остина автоматично зникнуть.
199
Рис. Д3.11. Графік для Остина

Прийняття рішення
Остаточне рішення приймається транспортною компанією (за згодою
постачальників) згідно рекомендованих двоїстих оцінок:

,
за яким постачальники у Бостоні і Денвері збільшують свої пропозиції до 250 та
550 од. відповідно. Ці зміни вносяться в таблицю початкових даних:

,
отримується нове оптимальне рішення (рис. Д3.12), за яким:
 значення ЦФ вдалося зменшити до 3150 проти 3350 гр. од. за рахунок
зменшуваних властивостей функцій D = f(s) цих постачальників
 постачальник з Остину вибув
 тіньові ціни нульові, тобто, зменшити значення ЦФ неможливо
 у постачальника з Денвера 100 од. продукту виявилися зайвими, що дозволяє
йому послабити власну пропозицію до 450 проти 550 од. без змін у плані.
Рішення

200
Рис. Д3.12. Рішення

Щодо компромісу «Бостон – Денвер»: на графіках (рис. Д3.13) показані оптимальні


точки з координатами (s, D) для Бостона (250, 3050) і Денвера (450, 2990), де добре
видно, що тенденції Бостона до зниження витрат сильніші, ніж у Денвера, по
борцівському – Бостон виштовхнув Денвер з поля килима, хоча перемога Бостона
не абсолютна, бо ж він трохи не дотягнув до рекорду 300 гр. од.
Тепер транспортній компанії для подальшого зменшення загальних витрат
залишається вдатися до зміни інших двох груп початкових даних: попиту
споживачів та питомих витрат.
Підстави: тіньові ціни попиту та зменшуючі вартості питомих витрат. Зробити це
допоможе аналіз «Що-якщо».

Д3.2. Аналіз «Що-Якщо»


Виклик програми командою: Solve and Analyze → Perform What It Analysis:

201
За цією програмою трохи (на великих діапазонах значення ЦФ може змінюватися)
змінивши певне початкове значення («Якщо») можна миттєво отримати Рішення –
відповідний повний розв’язок оптимізаційної задачі («Що»), початкові дані
зберігаються.
Отримавши відповідь, повернутися до початкових даних.
Дії:
 вибрати об’єкт (дугу, вузол)
 вибрати назву (позначення) об’єкту
 задати бажане значення параметру об’єкту (пропозиція, попит, питома
вартість):

Приклад 1.
Яким буде рішення, якщо питомі витрати за маршрутом Boston-Tampa складуть
величину 4,2 гр. од. проти 5?

Поставка із Бостона зберігається, ЦФ зменшиться.

202
Приклад 2.
Яким буде Рішення, якщо питомі витрати за маршрутом Boston-Tampa складуть
величину 5,01 гр. од. проти 5?

Поставка із Бостона ліквідована, ЦФ не змінена, попит Тампи задовольнить Остин.

Приклад 3.
Яким буде Рішення, якщо попит Майамі складе величину 200 од. проти 250?

ЦФ зменшиться, пропозиція у 50 од. для Остина не використана.

Д4. Вимірювання відстаней

Задано: дві точки a, b з координатами (xa, ya) та (xb, yb).


Знайти: відстань між ними, d(a,b).

Прямокутна («манхеттенська») метрика: d(a,b) = |xa - xb| + |ya - yb|, |х| – функція
abs(х):

Квадратична евклідова метрика: d(a,b) = (xa - xb)2 + (ya - yb)2.


Застосовується в математичній статистиці (метод найменших квадратів) для
врахування знаку числа.

Евклідова метрика (формула Піфагора): d (a, b)  ( xa  xb ) 2  ( y a  yb ) 2 :

203
x – функція sqrt(х), КОРЕНЬ(х).
Приклад:

Рис. Д4. 1. Прямокутна та евклідова метрики

Д5. Редагування робочого документу

Складові:
 назва задачі
 назви вузлів
 критерій ЦФ (min, max)
 тип задачі (у складі модуля)

204
Рис. Д5.1. Вікно налаштування, зразок

Д6. Форми і формати робочих документів

Робота із розв’язувачами модулів WinQSB цілком визначається запропонованими


шаблонами робочих документів із фіксованою структурою і форматом.
Дотримання умов, визначених шаблоном документа, забезпечує автоматичне
отримання відповідного розв’язку без потреби уведення будь-яких інших деталей
типу формул чи виразів.
Налаштування документа обмежується його редагуванням: перейменуванням та
додаванням/видаленням складових, які відповідають шуканим змінним та заданим
обмеженням, тобто, зміною розмірів табличної моделі, наприклад, шукані змінні –
число стовпців, обмеження на їх значення – число рядків.
Є 3 форми робочого документа:
 графічна (Graphic Model Form)
 нормальна (Normal Model Form) та
 таблична (Spreadsheet Matrix Form).
Для уведення початкових даних пропонується таблична (за умовчуванням), а
також нормальна (аналітична) чи графічна форми, в залежності від задачі. Усі
форми рівноправні, кожна з них приводить до пошуку кінцевого Рішенняу.
Початкову форму можна переглянути як передбачену форму іншого типу.

205
Графічну та нормальну форми зручно використовувати для демонстрації процесу
розв’язання задач невеликого розміру із суто навчальними цілями, таблична форма
розрахована на швидкий спосіб підготовки даних і розв’язання реальних задач.
Краще всього на початку використати табличну форму для швидкого формування
(в Excel) і наступного уведення початкових даних, а відповідні їй графічну та/чи
нормальну форми, за бажання, відкоригувати.
Формат табличного документа повністю визначається класом задачі оптимізації,
що розв’язується у відповідному програмному модулі.

Приклад 1. Транспортна задача лінійного програмування


Постановка задачі
3 постачальники (Миколаїв, Харків, Житомир) мають пропозиції певного
продукту, а 4 споживачі (Львів, Вінниця, Запоріжжя, Суми) – попит на нього. За
координатами цих вузлів на географічній карті визначаються відстані між ними
(питомі витрати) за певною метрикою (прямокутною, евклідовою). Треба
визначити оптимальний план перевезень за критерієм мінімальних транспортних
витрат для задоволення попиту споживачів.

Початкові дані

Рис. Д6.1. Транспортна мережа


206
Дії
Крок 1. Визначення типу задачі, форми, імені і розміру моделі
Для цієї задачі передбачено табличну та графічну форму.
Крок 2. Формат робочого документа:
 перші 3 рядки відповідають вузлам-постачальникам (джерелам)
 наступний один рядок містить попити споживачі
 перші 4 стовпці відповідають вузлам-споживачам (стокам)
 наступний один стовпець містить пропозиції постачальників

Рис. Д6.2. Таблична форма документа

Крок 3. Уведення початкових даних:

Крок 4. Редагування табличної моделі


Перейменування вузлів: Edit → Node Names
Автопідбір ширини стовпця: Format → Column Width

207
Рис. Д6.3. Початкові дані

Крок 5. Графічна форма


Перехід від табличної форми до графічної командою: Format → Switch to Graphic
Form
Стандартне розташування вузлів: зліва – постачальники, справа – споживачі:

Рис. Д6.4. Графічна форма

Крок 6. Редагування графічної форми


Бажано розмістити вузли згідно їх розташування на географічній карті.
Редагування розташування вузлів Location (row, column) командою: Edit→Node.
Переміщення вузла Суми: Location (4,7) → Location (1,6)

208
Рис. Д6.5. Розташування вузла Суми

Рис. Д6.6. Відредагована графічна форма

Крок 7. Розв’язок: таблична і графічна форми


Автоматично утворено і розміщено в позиції (1,1) новий вузол із залишками
пропозицій (Unused Supply)

209
Рис. Д6.7. Рішення

Приклад 2. Задача лінійного програмування про суміш продуктів

Постановка задачі
3 види ресурсів (Р1, Р2, Р3) використовуються для виготовлення 5 продуктів (П1,
…, П5). Задано: запаси ресурсів, іх питомі витрати та ціни продуктів. Треба
визначити оптимальний план випуску продукції за критерієм максимізації
прибутку від її реалізації.
Початкові дані

Дії
Крок 1. Визначення типів задачі і шуканих даних, форми, імені і розміру моделі
У цій задачі передбачено табличну і нормальну форми початкових даних.

210
Рис. Д6.8. Форма документа

Крок 2. Формат табличного документа

Рядки:
 перший фіксований рядок відведено для коефіцієнтів цільової функції
 наступні 3 рядки відповідають обмеженням (змінювана частина)
 наступні 2 фіксованих рядки (Lower/Upper Bound) – граничні умови значень
невідомих
 останній фіксований рядок (Variable Type) – тип невідомих, один із 4-ох
можливих
Стовпці:
 перші 5 стовпців відповідають шуканим невідомим, їх імена за
умовчуванням: Х1, …, Х5 (змінювана частина)
 наступний стовпець містить знаки відношень, їх можна змінювати
подвійним кліком
 останній стовпець містить значення правої частини обмежень (R.H.S.)
Крок 3. Нормальна форма
Команда: Format→ Switch to Normal Model Form

211
Рис. Д1.9. Нормальна форма
Крок 4. Двоїста форма
Задача лінійного програмування має дві моделі:
 пряма задача (крок 3) та
 двоїста задача, її шукані змінні (Р1, Р2, Р3) є вартісними оцінками запасів
ресурсів, заданих у певному вимірі (тонни, кубометри, години), називаються
«тіньовими цінами» (Shadow Price). Двоїстими оцінками цін продуктів є
«зменшувана вартість» (Reduced Cost) – це різниця між ціною продукту й вартістю
ресурсів (обчисленої за тіньовими цінами), витрачених на виготовлення одиниці
продукту.
Команда: Format→ Switch to Dual Form

Рис. Д6.10. Двоїста форма

Крок 5. Розв’язок
Пряма задача: Х = (0; 0; 7,333; 0; 0), ЦФ (максимум) = 190,6667.
Двоїста задача: тіньові ціни ресурсів Р = (0; 0; 8,6667), ЦФ (мінімум) = 190,6667.

212
Рис. Д6.11. Рішення

Для продукту П1 з ціною 15 гр. од. за одиницю вартість ресурсів дорівнює: 2×0 +
5×0 + 3×8,6667 = 26, значить, його зменшувана вартість дорівнює 15 – 26 = -11,
виготовляти його невигідно, бо витрати на ресурси перевищують його продажну
ціну на 11 гр. од. Якщо цей продукт потрібний, його ціна повинна бути вищою за
15 + 11 = 26 гр. од. хоча б на копійку.
Перевірка і Рішення: Х = (7,3333; 0; 0; 0; 0)

Рис. Д6.12. Рішення перевірки


Це дуже корисне рішення для економічних задач про ціноутворення продукції.

Зауваження Можливість перейменувати вузли є не у всіх модулів.

Д7. Про WinQSB

Автор пакету 19 програмних модулів WinQSB – професор з операційного


менеджменту Yih-Long Chang Технологічного інституту шт. Джорджія в Атланті.

213
Освіта:
 PhD, Operations Management, The University of Texas at Austin, 1985
 MS, MIS, The National Chiao-Tung University, Taiwan, 1977
 BS, Electrical and Computer Engineering, The National Taiwan University, Taiwan,
1975.
Його наукові інтереси: управління якістю, управління технологіями, виробничі
інформаційні системи, операційне планування і управління, операційний
менеджмент, бізнес-аналітика.
Розробник програмних пакетів QSB, QSOM та QS для вивчення науки управління
(Management science, MS), операційного менеджменту (OM) та кількісних методів
(Quantitative methods).
Пакет WinQSB був визначений кращим серед аналогічних програмних засобів в
рейтингах, проведених відомими софтверними журналами OR/MS Today (1986) та
Interface (1988).
Пізніше у своїй роботі став застосовувати Excel.
Автор підручника: WinQSB: Decision software for MS/OM, 1998. – 471 p.
Фрагмент:
Користувачу WinQSB:
 достатньо орієнтуватися в моделях і методах, розуміти суть задачі, підготувати
початкові дані згідно шаблону робочої таблиці, отримати Результати і виконати
їх аналіз
 не треба уводити формули як в Excel
 швидко будує мережеві моделі, там, де вони передбачені
 працює досить швидко.

Д8. WinQSB: завантаження та встановлення

Крок 1. Завантаження архіву

214
Крок 2. Витяг архіву і розміщення папки WinQSB2.0

Крок 3. Серед 115 файлів знайти Setup.exe. Запуск встановлення

115 файлів = 19 (.exe) + 19 (.help) + 77 задач

Крок 4. Встановлення (інсталяція)

215
Крок 5. Розташування папки WinQSB з ярликами програмних модулів

Шлях: С  Пользователи  (Компьютер)  AppData Roaming  Microsoft 


Windows  Главное меню  Programs  WinQSB.
Для зручності копію папки WinQSB можна розмістити на Робочому столі.

216
Використані джерела

1. Ahuja R., Magnanti T. Network flows. Theory, algorithms, and applications. – Prentice-
Hall, 1993. – 846 p.
2. Burkard R. et al. Assignment Problems. – SIAM, 2009. – 402 p.
3. Dantzig G. Linear Programming and Extensions. – Princeton Univ. Press, 1963. – 635 p.
(Пер. Дж. Данциг. Линейное программирование, его обобщения и применения,
Прогресс, 1966. – 602 с.)
4. Daskin M. Network and Discrete Location. Models, Algorithms, and Application, 2-ed.
–Wiley, 2013. – 535 p.
5. Eiselt, V. Marianov. H. Foundation of Location Analysis. – Springer, 2011. – 524 p.
6. Fletcher R. Practical Methods of Optimization, 2nd ed. – Waley, 2000. – 437 p.
7. Flouras C., Pardalos P. (eds.). Encyclopedia of Optimization, 2nd ed., Springer, 2009. –
4626 p.
8. Hillier F., Lieberman G. Introduction to Operations Research. – 10-ed., 2015. – Wiley. –
1050 p.
9. Kumar S. Production and Operations Management, 2-ed. – New Age, 2008. – 284 p.
10. Moder J., Phillips C. Project Management with CPM and PERT, NY, 1964 (Пер. Дж.
Модер, С. Филлипс. Метод сетевого планирования в организации работ (ПЕРТ).
М.: Энергия, 1966. – 304 с.
11. Render B. et al. Quantitative Analysis for Management, 11-ed. – Pearson, 2012. – 68 p.
12. Stevenson W. Operations Management, 13-ed. – McGraw-Hill Ed., 2018. – 929 p.
13. Taylor B. Introduction to Management Science, 11-ed. – Pearson, 2013. – 841 p.
14. Winston W., Albright C. Practical Management Science, 4 ed. – Cengage Learn., 2011.
– 1025 p.
15. Вагнер Г. Основы исследования операций: в 3-х т. Пер. с англ.– М.: Мир, 1972-
1973, Т 1. 335 с., Т 2. 487 с., Т 3. 501 с.
16. Васильев В.В., Додонов А.Г. Гибридные модели задач оптимизации. – К. : Наук.
думка, 1974. – 215 с.
17. Вітлінський В. В. та ін. Економіко-математичне моделювання. – К.: КНЕУ, 2008. –
536 с.
18. Кельтон Д., Лоу А. Имитационное моделирование. Классика CS. – 3-е изд. Пер. с
англ. – СПб. : Питер, 2004. – 847 с.
19. Кузьмичов А. І. Оптимізаційні методи і моделі. Моделювання засобами MS Excel.
– К.: Ліра-К, 2015. – 215 с.
20. Кузьмичов А. І. Планування та управління проектами. Моделювання засобами MS
Excel. – К.: Ліра-К, 2016. – 180 с.
21. Майника Э. Алгоритмы оптимизации на сетях и графах. Пер. с англ. – М. : Мир,
1981. – 323 с.
22. Таха Х. Введение в исследование операций. Пер. с англ. – 7-е изд. – М.: Вильямс,
2005. –901 с.
23. Филлипс Д., Гарсиа-Диас А. Методы анализа сетей. Пер. с англ. – М. : Мир, 1984.
– 496 с.
24. Форд Л., Фалкерсон Д. Потоки в сетях. Пер. с англ. – М.: Мир, 1966. – 275 с.
25. Фрэнк Г., Фриш И. Сети, связи и потоки. Пер. с англ. – М.: Связь, 1978. – 448 с.

217

You might also like