Що ви опануєте
Після опрацювання цієї лекції ви зможете:
- пояснити, що таке критерій у задачі прийняття рішень;
- розрізняти критерії вигоди та витрат;
- визначати, навіщо потрібна нормалізація;
- застосовувати min–max нормалізацію для різних напрямів критеріїв;
- пояснювати, чому масштаб вимірювання впливає на підсумковий рейтинг;
- задавати ваги критеріїв і перевіряти їхню узгодженість;
- обчислювати зважену інтегральну оцінку;
- бачити компенсаторний характер зваженої суми;
- аналізувати випадок сталого критерію;
- працювати з фіксованими та динамічними межами нормалізації;
- оцінювати чутливість рейтингу до ваг;
- виконувати розрахунки вручну й у Python;
- аргументовано пояснювати отриманий результат.
Від одного критерію до системи критеріїв
У найпростішій задачі вибору достатньо одного показника. Наприклад, якщо потрібно обрати найдешевший тариф, можна просто порівняти ціну.
У реальних задачах одного показника зазвичай недостатньо. Для вибору середовища проведення семінару можуть бути важливими:
- вартість;
- місткість;
- транспортна доступність;
- технічне оснащення;
- рівень безбар’єрності;
- відгуки;
- відстань від центру.
Кожен із цих показників описує окрему сторону рішення.
Альтернатива — це конкретний варіант рішення. Наприклад:
- зал A;
- зал B;
- зал C.
Тоді дані можна подати у вигляді таблиці:
| Альтернатива | Вартість, грн | Доступність, бали | Місткість, осіб |
|---|---|---|---|
| A | 400 | 8 | 60 |
| B | 300 | 6 | 80 |
| C | 500 | 10 | 100 |
Уже на цьому етапі виникає проблема: критерії вимірюються у різних одиницях і мають різні числові масштаби.
Чому не можна просто скласти сирі значення
Припустимо, хтось вирішив обчислити:
Для альтернативи A:
Для B:
Для C:
Отримаємо C як “найкращу” альтернативу, хоча вартість тут більша, а її числове значення штучно збільшує підсумок.
Проблема полягає у трьох речах:
- різні одиниці вимірювання;
- різні числові масштаби;
- різний напрям бажаності.
Числа описують різні фізичні або умовні величини.
Критерії вигоди та критерії витрат
Критерій вигоди
Приклади:
- продуктивність;
- точність;
- місткість;
- рейтинг;
- швидкість;
- рівень доступності.
Якщо місткість 100 краща за 80, напрям критерію є висхідним.
Критерій витрат
Приклади:
- ціна;
- час очікування;
- енергоспоживання;
- кількість помилок;
- ризик;
- відстань.
Якщо 300 грн кращі за 500 грн, напрям критерію є спадним.
Що таке нормалізація
У цій лекції використовуємо шкалу від 0 до 1.
Інтерпретація:
- 0 — найменш бажане значення в заданих межах;
- 1 — найбільш бажане;
- проміжні значення — відносне положення між крайніми точками.
Min–max нормалізація для критерію вигоди
Для критерію вигоди:
де:
- — значення альтернативи за критерієм ;
- — мінімальне значення критерію;
- — максимальне значення критерію;
- — нормалізоване значення.
Інтуїція формули
Чисельник:
показує, наскільки значення відійшло від мінімуму.
Знаменник:
описує повний діапазон критерію.
Тому частка показує положення альтернативи всередині цього діапазону.
- Крок 1 із 5
Знайдіть мінімум
Для доступності 6, 8, 10 мінімум дорівнює 6.
- Крок 2 із 5
Знайдіть максимум
Максимум дорівнює 10.
- Крок 3 із 5
Обчисліть діапазон
10 - 6 = 4.
- Крок 4 із 5
Відніміть мінімум
Для альтернативи A: 8 - 6 = 2.
- Крок 5 із 5
Поділіть на діапазон
2 / 4 = 0.5.
Для доступності:
- A: ;
- B: ;
- C: .
Min–max нормалізація для критерію витрат
Для витрат логіка змінюється:
Тут найменше сире значення повинно отримати найбільший нормалізований бал.
Для вартості:
- мінімум: 300;
- максимум: 500;
- діапазон: 200.
Тоді:
Початкові значення вартості.
Повна нормалізована таблиця
Після перетворення:
| Альтернатива | Вартість | Норм. вартість | Доступність | Норм. доступність |
|---|---|---|---|---|
| A | 400 | 0.5 | 8 | 0.5 |
| B | 300 | 1.0 | 6 | 0.0 |
| C | 500 | 0.0 | 10 | 1.0 |
Тепер обидва критерії мають однаковий напрям:
більше = краще.
Це критично важливо для подальшого агрегування.
Що таке вага критерію
Для зваженої суми зазвичай використовують:
та
Приклад:
- вартість: ;
- доступність: .
Тоді доступність має більший внесок у підсумкову оцінку.
Як формується інтегральна оцінка
Для зваженої суми:
Для двох критеріїв:
Альтернатива A
Альтернатива B
Альтернатива C
Рейтинг:
Таблиця внесків
Корисно показувати не лише фінальний бал, а й внесок кожного критерію.
| Альтернатива | Внесок вартості | Внесок доступності | Підсумок |
|---|---|---|---|
| A | 0.20 | 0.30 | 0.50 |
| B | 0.40 | 0.00 | 0.40 |
| C | 0.00 | 0.60 | 0.60 |
Так видно, чому саме C перемагає: її перевага повністю формується критерієм доступності.
Компенсаторний характер зваженої суми
Зважена сума дозволяє сильній стороні альтернативи компенсувати слабшу.
Наприклад:
- B має найкращу вартість;
- C має найкращу доступність.
За вагами 0.4 і 0.6 C перемагає.
Якщо ваги змінити:
- вартість: 0.7;
- доступність: 0.3;
отримаємо:
Тепер переможець — B.
Модель сильніше винагороджує дешевші альтернативи.
Коли зважена сума непридатна
Зважена сума передбачає можливість компенсації.
Якщо певна характеристика є обов’язковою, її краще оформити як обмеження.
Наприклад:
доступність повинна бути не нижче 7 балів.
Тоді B із доступністю 6 відсіюється до агрегування.
- Крок 1 із 4
Сформулюйте обмеження
Наприклад: доступність не нижче 7.
- Крок 2 із 4
Відсійте неприйнятні альтернативи
Альтернатива B не проходить умову.
- Крок 3 із 4
Нормалізуйте допустимі варіанти
Порівнюйте тільки A і C.
- Крок 4 із 4
Агрегуйте критерії
Застосовуйте ваги вже до допустимого набору.
Сталий критерій і ділення на нуль
Якщо всі альтернативи мають однакове значення:
тоді знаменник:
Min–max формула стає невизначеною.
Наприклад:
| Альтернатива | Wi‑Fi, бал |
|---|---|
| A | 10 |
| B | 10 |
| C | 10 |
Цей критерій не розрізняє альтернативи.
Варіанти дій:
- виключити критерій з агрегування;
- однаково оцінити всі альтернативи;
- перенормувати ваги решти критеріїв;
- зафіксувати правило в методиці.
Нормалізація залежить від набору альтернатив
Min–max нормалізація використовує мінімум і максимум поточного набору.
Припустимо, додається D:
- вартість = 1000;
- доступність = 8.
Тепер для вартості:
Для A:
Раніше було 0.5.
Сама ціна A не змінилася, але її нормалізований бал став іншим.
Залежність шкали від набору
Min–max шкала є відносною. Кожна нова крайня альтернатива змінює положення старих варіантів усередині діапазону. Тому рейтинг може змінитися навіть без зміни початкових альтернатив.
Фіксовані межі нормалізації
Щоб зменшити залежність від набору, можна використовувати зовнішні межі.
Наприклад:
- мінімальна допустима ціна: 200;
- максимальна допустима ціна: 1000.
Тоді:
Для A:
Для B:
Для C:
Перевага цього підходу: шкала стабільна для різних наборів альтернатив.
Недолік: межі потрібно обґрунтувати.
Динамічні та фіксовані межі
Порядкові шкали та проблема інтервалів
Не всі бали мають однаковий зміст.
Наприклад, оцінка доступності:
- 1 — дуже низька;
- 2 — низька;
- 3 — середня;
- 4 — висока;
- 5 — дуже висока.
Не завжди можна вважати, що різниця між 1 і 2 еквівалентна різниці між 4 і 5.
Тому перед математичним агрегуванням варто сформувати рубрику.
Приклад:
| Бал | Інтерпретація |
|---|---|
| 1 | доступність майже відсутня |
| 2 | доступні окремі елементи |
| 3 | базовий прийнятний рівень |
| 4 | добра доступність |
| 5 | повна доступність |
Як перевіряти ваги
Перед обчисленням:
Наприклад:
Якщо маємо:
можна виконати перенормування:
Тоді:
Як формувати ваги на практиці
Є кілька підходів:
- експертне призначення;
- парні порівняння;
- голосування групи;
- статистичне оцінювання;
- ваги з політики або нормативів;
- аналіз сценаріїв.
У цій лекції ваги задаються вручну, щоб зосередитися на логіці моделі.
Чутливість до ваг
Чутливість — це перевірка того, наскільки рейтинг змінюється при невеликих змінах параметрів.
Для двох критеріїв:
Тоді:
Для B:
Для C:
Точка рівності:
Отже:
- якщо вага ціни більша 0.5, B краща;
- якщо вага ціни менша 0.5, C краща.
Це вже сильніше пояснення, ніж перевірка двох випадкових наборів ваг.
Доступність має більший сумарний вплив.
Практичний розрахунок у Python
alternatives = [
{"name": "A", "cost": 400, "access": 8},
{"name": "B", "cost": 300, "access": 6},
{"name": "C", "cost": 500, "access": 10},
]
costs = [row["cost"] for row in alternatives]
access_values = [row["access"] for row in alternatives]
min_cost = min(costs)
max_cost = max(costs)
min_access = min(access_values)
max_access = max(access_values)
weights = {
"cost": 0.4,
"access": 0.6,
}
for row in alternatives:
# Вартість — критерій витрат:
# менше сире значення повинно дати більший нормалізований бал.
r_cost = (max_cost - row["cost"]) / (max_cost - min_cost)
# Доступність — критерій вигоди:
# більше сире значення повинно дати більший нормалізований бал.
r_access = (
row["access"] - min_access
) / (
max_access - min_access
)
# Підсумкова оцінка — сума зважених внесків.
score = (
weights["cost"] * r_cost
+ weights["access"] * r_access
)
row["r_cost"] = r_cost
row["r_access"] = r_access
row["score"] = score
ranked = sorted(
alternatives,
key=lambda row: row["score"],
reverse=True
)
for row in ranked:
print(
row["name"],
round(row["score"], 3)
)
Що тут відбувається?
min()іmax()визначають межі нормалізації для кожного критерію.r_costвикористовує формулу для критерію витрат.r_accessвикористовує формулу для критерію вигоди.scoreє сумою зважених нормалізованих значень.sorted(..., reverse=True)формує рейтинг від найбільшої оцінки до найменшої.round()використовується лише для виведення. Внутрішні розрахунки зберігають повну точність.
Універсальна функція нормалізації
def minmax_normalize(values, direction="benefit"):
min_value = min(values)
max_value = max(values)
if max_value == min_value:
raise ValueError(
"Критерій не розрізняє альтернативи"
)
if direction == "benefit":
return [
(value - min_value)
/ (max_value - min_value)
for value in values
]
if direction == "cost":
return [
(max_value - value)
/ (max_value - min_value)
for value in values
]
raise ValueError("Невідомий напрям критерію")
Що тут відбувається?
- Функція приймає список значень і напрям критерію.
- Перед обчисленням перевіряється випадок
max == min. - Для
benefitвикористовується пряме min–max перетворення. - Для
costвикористовується інверсна формула. - Невідоме значення
directionвикликає помилку замість тихого некоректного розрахунку.
Мікроексперимент: змініть одну вагу
Візьміть:
Перед розрахунком спрогнозуйте, хто переможе.
Потім обчисліть:
Після цього змініть:
Порівняйте рейтинг.
Мікроексперимент: додайте крайню альтернативу
Додайте:
| Альтернатива | Вартість | Доступність |
|---|---|---|
| D | 1000 | 8 |
Потім:
- перерахуйте min–max для вартості;
- порівняйте старі та нові бали A, B, C;
- поясніть, чому їхні сирі значення не змінилися, а нормалізовані — змінилися;
- зробіть висновок щодо стабільності шкали.
Мікроексперимент: сталий критерій
Додайте критерій:
| Альтернатива | Wi‑Fi |
|---|---|
| A | 10 |
| B | 10 |
| C | 10 |
Спробуйте застосувати min–max.
Поясніть:
- чому виникає ділення на нуль;
- чому критерій не допомагає вибору;
- що можна зробити з його вагою.
Типові помилки
Критерій витрат нормалізовано як вигоду
Сума ваг не дорівнює 1
Сталий критерій
Передчасне округлення
Подвійний облік одного фактору
Вага підібрана після перегляду рейтингу
Професійна перевірка моделі
Перед довірою до рейтингу перевірте:
Карта понять
Варіанти, між якими потрібно зробити вибір.
Самоперевірка термінів
01 Що таке критерій?Показати відповідь
Формалізована характеристика, за якою оцінюють альтернативи.
02 Що таке критерій вигоди?Показати відповідь
Критерій, для якого більше значення є бажанішим.
03 Що таке критерій витрат?Показати відповідь
Критерій, для якого менше значення є бажанішим.
04 Навіщо потрібна нормалізація?Показати відповідь
Щоб привести різнорідні критерії до спільної безрозмірної шкали.
05 Що означає вага критерію?Показати відповідь
Відносний внесок критерію в інтегральну оцінку.
06 Що таке зважена сума?Показати відповідь
Сума нормалізованих значень критеріїв, помножених на їхні ваги.
07 Що таке сталий критерій?Показати відповідь
Критерій, який має однакове значення для всіх альтернатив і не розрізняє їх.
08 Що таке аналіз чутливості?Показати відповідь
Перевірка того, як зміни параметрів моделі впливають на рейтинг.