Що ви опануєте
Після опрацювання цієї лекції ви зможете:
- пояснити, що таке домінування у багатокритеріальній задачі;
- перевіряти домінування математично та програмно;
- знаходити множину Парето;
- пояснювати, чому множина Парето може містити кілька альтернатив;
- відрізняти допустимість від недомінованості;
- будувати ідеальну та антиідеальну точки;
- обчислювати евклідову відстань у просторі критеріїв;
- визначати коефіцієнт близькості до ідеалу;
- пояснювати геометричний зміст TOPSIS;
- виконувати повний навчальний розрахунок TOPSIS;
- аналізувати вплив ваг і нормалізації;
- бачити випадки, коли геометричний рейтинг може бути нестійким;
- перевіряти рейтинг вручну та у Python;
- аргументовано пояснювати компроміс між кількома критеріями.
Чому одного критерію вже недостатньо
У попередній лекції ми навчилися приводити критерії до спільної шкали та формувати зважену оцінку. Тепер розглянемо іншу ситуацію.
Нехай потрібно обрати одну з альтернатив за двома нормалізованими критеріями:
- — перша характеристика;
- — друга характеристика.
Вважаємо, що для обох критеріїв:
більше значення означає кращий результат.
Маємо:
| Альтернатива | ||
|---|---|---|
| A | 0.8 | 0.4 |
| B | 0.5 | 0.3 |
| C | 0.4 | 0.9 |
Якщо дивитися лише на , найкращою є A.
Якщо дивитися лише на , найкращою є C.
Тому виникає питання:
Чи є серед альтернатив така, яку можна відкинути без додаткових ваг і без суб’єктивного компромісу?
Саме це питання вирішує Парето-домінування.
Простір критеріїв
Кожну альтернативу можна уявити як точку у просторі критеріїв.
Для двох критеріїв:
Наприклад:
Координата по горизонтальній осі може відповідати , а по вертикальній — .
Для двох критеріїв це площина.
Для трьох — тривимірний простір.
Для більшої кількості критеріїв геометрична інтуїція зберігається, хоча простір уже не можна повністю зобразити на звичайному екрані.
Сильна за першим критерієм, середня за другим.
Що таке домінування
Формально:
Тут:
- означає «для всіх»;
- означає «існує хоча б один»;
- — оцінка альтернативи за критерієм ;
- читається як « домінує ».
Як читати формулу домінування
Розберемо її по частинах.
Перша умова
означає:
за кожним критерієм A не гірша за B.
Друга умова
означає:
хоча б за одним критерієм A краща за B.
Обидві умови потрібні одночасно.
Покрокова перевірка A та B
Маємо:
Перевіряємо перший критерій:
Умова виконується.
Перевіряємо другий:
Умова теж виконується.
Є строгі покращення:
і
Отже:
A домінує B.
Покрокова перевірка A та C
Маємо:
За першим критерієм:
A краща.
За другим:
C краща.
Жодна з альтернатив не є не гіршою за всіма критеріями.
Тому:
і
Між ними існує компроміс.
Перевірте, чи A не гірша за B за кожним критерієм.
Що таке множина Парето
Для нашого прикладу:
- B домінується A;
- A не домінується C;
- C не домінується A.
Тому множина Парето:
B можна відкинути без введення ваг.
A і C залишаються компромісними рішеннями.
Парето-фронт
Якщо альтернативи розташувати у просторі критеріїв, недоміновані точки утворюють Парето-фронт.
У задачах оптимізації Парето-фронт часто показує набір компромісів:
- покращення одного критерію;
- погіршення іншого;
- відсутність універсально кращого варіанта.
Початковий набір допустимих варіантів.
Допустимість і Парето — різні речі
Перш ніж шукати Парето-фронт, потрібно перевірити обмеження.
Наприклад:
- бюджет не більше 500 грн;
- доступність не нижче 7;
- місткість не менше 50 осіб.
Якщо альтернатива порушує обов’язкове обмеження, вона не повинна потрапляти до Парето-аналізу.
- Крок 1 із 5
Перевірте обмеження
Відкиньте альтернативи, які не задовольняють обов’язкові умови.
- Крок 2 із 5
Узгодьте напрям критеріїв
Для кожного критерію має бути зрозуміло, чи більше означає краще.
- Крок 3 із 5
Знайдіть доміновані варіанти
Порівняйте допустимі альтернативи попарно.
- Крок 4 із 5
Побудуйте множину Парето
Залиште тільки недоміновані альтернативи.
- Крок 5 із 5
Застосуйте правило ранжування
Якщо недомінованих варіантів кілька, використайте ваги, TOPSIS або інший погоджений метод.
Що робити, якщо всі альтернативи недоміновані
Це нормальна ситуація.
Наприклад:
| Альтернатива | ||
|---|---|---|
| A | 0.9 | 0.4 |
| B | 0.7 | 0.6 |
| C | 0.5 | 0.8 |
| D | 0.3 | 0.95 |
Кожна альтернатива сильніша за одним критерієм і слабша за іншим.
Жодна не домінує іншу.
Множина Парето містить усі чотири точки.
Тоді Парето-аналіз виконує роль фільтра структури вибору, але не створює рейтинг.
Ідея ідеальної точки
Після Парето-відбору можна використати геометричний підхід.
Для нормалізованої шкали :
можна використовувати як умовну ідеальну точку.
Вона означає:
- максимум за першим критерієм;
- максимум за другим.
Ця точка може не відповідати жодній реальній альтернативі.
Антиідеальна точка
Для шкали :
Тоді кожну альтернативу можна оцінити через:
- відстань до ідеалу;
- відстань до антиідеалу.
Евклідова відстань
Для двох точок:
евклідова відстань:
Для критеріїв:
Відстань до ідеалу
Для альтернативи :
Чим менше , тим ближча альтернатива до ідеалу.
Відстань до антиідеалу
Чим більше , тим далі альтернатива від найгіршої точки.
Чому потрібні обидві відстані
Уявімо дві альтернативи, які приблизно однаково близькі до ідеалу.
Одна з них може одночасно бути ближчою до антиідеалу.
Тому у TOPSIS використовується показник, що враховує обидві відстані.
Формула:
Зазвичай:
Чим більше , тим бажанішою є альтернатива за заданою геометричною моделлю.
Нормалізовані або зважено-нормалізовані значення критеріїв.
Повний розрахунок для A
Маємо:
Ідеал:
Антиідеал:
Відстань до ідеалу
Відстань до антиідеалу
Коефіцієнт близькості
Повний розрахунок для C
Відстань до ідеалу
Відстань до антиідеалу
Коефіцієнт близькості
Отже:
За цією геометричною моделлю C має вищий рейтинг.
Чому A залишається важливою альтернативою
A не стала «поганою».
Вона все ще:
- недомінована;
- краща за C за першим критерієм;
- гірша за C за другим.
Рейтинг за відстанню до ідеалу вводить додаткове правило:
компроміс оцінюється через геометричну близькість у просторі критеріїв.
Це вже нове припущення моделі.
Геометрична інтуїція
Евклідова відстань використовує квадрат відхилення.
Наприклад:
а
Велике відхилення має значно більший внесок у відстань.
Це означає, що метрика сама впливає на характер компромісу.
Що фактично робить евклідова метрика
Коли ми використовуємо евклідову відстань, критерії стають координатами геометричного простору. Модель припускає, що квадрати відхилень можна змістовно додавати. Саме тому перед обчисленням критерії повинні мати узгоджені шкали.
Манхеттенська відстань як інша метрика
Інший варіант:
Це манхеттенська відстань.
Для A до ідеалу:
Для C:
Рейтинг може зберегтися або змінитися залежно від даних.
Що таке TOPSIS
Класична логіка TOPSIS включає кілька кроків.
- Крок 1 із 8
Побудуйте матрицю рішень
Рядки відповідають альтернативам, стовпці — критеріям.
- Крок 2 із 8
Нормалізуйте критерії
Перетворіть значення до сумісної шкали.
- Крок 3 із 8
Застосуйте ваги
Помножте нормалізовані значення на ваги критеріїв.
- Крок 4 із 8
Визначте ідеал
Для кожного критерію оберіть найкраще зважено-нормалізоване значення.
- Крок 5 із 8
Визначте антиідеал
Для кожного критерію оберіть найгірше значення.
- Крок 6 із 8
Обчисліть відстані
Знайдіть відстань кожної альтернативи до обох опорних точок.
- Крок 7 із 8
Обчисліть коефіцієнт близькості
Використайте C_i = d_i^- / (d_i^+ + d_i^-).
- Крок 8 із 8
Побудуйте рейтинг
Відсортуйте альтернативи за коефіцієнтом близькості.
Матриця рішень у TOPSIS
Нехай маємо три альтернативи та три критерії:
| Альтернатива | Ціна | Доступність | Місткість |
|---|---|---|---|
| A | 400 | 8 | 60 |
| B | 300 | 6 | 80 |
| C | 500 | 10 | 100 |
Припустимо:
- ціна — критерій витрат;
- доступність — критерій вигоди;
- місткість — критерій вигоди.
Векторна нормалізація
У класичному TOPSIS часто використовується векторна нормалізація:
Вона нормалізує кожен стовпець за його евклідовою нормою.
Для ціни
Маємо:
Знаменник:
Отже:
Зважена нормалізована матриця
Після нормалізації застосовують ваги:
Наприклад:
- ціна: ;
- доступність: ;
- місткість: .
Тоді кожен нормалізований стовпець множиться на відповідну вагу.
Як визначають ідеал у TOPSIS
Для критеріїв вигоди:
Для критеріїв витрат:
Антиідеал навпаки:
для вигоди:
для витрат:
Спрощений TOPSIS і повний TOPSIS
Повний приклад у Python: Парето
points = {
"A": (0.8, 0.4),
"B": (0.5, 0.3),
"C": (0.4, 0.9),
}
def dominates(a, b):
# Перша умова:
# a не гірша за b за кожним критерієм.
not_worse = all(
x >= y
for x, y in zip(a, b)
)
# Друга умова:
# a строго краща хоча б за одним критерієм.
strictly_better = any(
x > y
for x, y in zip(a, b)
)
return not_worse and strictly_better
pareto = {}
for name, point in points.items():
is_dominated = any(
dominates(other_point, point)
for other_name, other_point in points.items()
if other_name != name
)
if not is_dominated:
pareto[name] = point
print(pareto)
Очікуваний результат:
{'A': (0.8, 0.4), 'C': (0.4, 0.9)}
Що тут відбувається?
zip(a, b)попарно зіставляє координати двох альтернатив.all(x >= y ...)перевіряє, що перша альтернатива не гірша за всіма критеріями.any(x > y ...)вимагає хоча б одного строгого покращення.- Альтернатива потрапляє до множини Парето, якщо жодна інша її не домінує.
Повний приклад у Python: близькість до ідеалу
from math import dist
pareto = {
"A": (0.8, 0.4),
"C": (0.4, 0.9),
}
ideal = (1.0, 1.0)
anti_ideal = (0.0, 0.0)
scores = {}
for name, point in pareto.items():
d_plus = dist(point, ideal)
d_minus = dist(point, anti_ideal)
closeness = (
d_minus
/ (d_plus + d_minus)
)
scores[name] = {
"d_plus": d_plus,
"d_minus": d_minus,
"closeness": closeness,
}
for name, values in scores.items():
print(
name,
round(values["closeness"], 4)
)
Що тут відбувається?
dist(point, ideal)обчислює евклідову відстань до ідеальної точки.dist(point, anti_ideal)обчислює відстань до антиідеалу.- Коефіцієнт близькості зростає, коли альтернатива наближається до ідеалу та віддаляється від антиідеалу.
- Сортування за
closenessу спадному порядку створює рейтинг.
Реалізація повного TOPSIS у Python
from math import sqrt
alternatives = ["A", "B", "C"]
matrix = [
[400, 8, 60],
[300, 6, 80],
[500, 10, 100],
]
weights = [0.4, 0.35, 0.25]
# True означає критерій вигоди.
# False означає критерій витрат.
benefit = [False, True, True]
rows = len(matrix)
cols = len(matrix[0])
# Крок 1. Обчислюємо евклідову норму
# для кожного стовпця.
norms = []
for j in range(cols):
column_sum = sum(
matrix[i][j] ** 2
for i in range(rows)
)
norms.append(sqrt(column_sum))
# Крок 2. Нормалізуємо матрицю.
normalized = []
for i in range(rows):
row = []
for j in range(cols):
row.append(
matrix[i][j] / norms[j]
)
normalized.append(row)
# Крок 3. Застосовуємо ваги.
weighted = []
for i in range(rows):
row = []
for j in range(cols):
row.append(
normalized[i][j]
* weights[j]
)
weighted.append(row)
# Крок 4. Визначаємо
# ідеальну та антиідеальну точки.
ideal = []
anti_ideal = []
for j in range(cols):
column = [
weighted[i][j]
for i in range(rows)
]
if benefit[j]:
ideal.append(max(column))
anti_ideal.append(min(column))
else:
ideal.append(min(column))
anti_ideal.append(max(column))
# Крок 5. Відстані та коефіцієнти.
result = []
for i in range(rows):
d_plus = sqrt(
sum(
(weighted[i][j] - ideal[j]) ** 2
for j in range(cols)
)
)
d_minus = sqrt(
sum(
(weighted[i][j] - anti_ideal[j]) ** 2
for j in range(cols)
)
)
closeness = d_minus / (d_plus + d_minus)
result.append(
(
alternatives[i],
closeness
)
)
# Крок 6. Рейтинг.
ranked = sorted(
result,
key=lambda item: item[1],
reverse=True
)
for name, score in ranked:
print(name, round(score, 4))
Що тут відбувається?
normsмістить довжину кожного стовпця для векторної нормалізації.normalized— матриця без початкового масштабу критеріїв.weightedвраховує пріоритет критеріїв.benefitдозволяє правильно визначити ідеал для критеріїв вигоди та витрат.d_plusпоказує відстань до ідеального рішення.d_minusпоказує відстань від антиідеального рішення.closenessформує підсумковий рейтинг.
Чутливість TOPSIS до ваг
Ваги змінюють геометрію простору.
Після множення:
критерій із більшою вагою фактично сильніше впливає на відстань.
Якщо збільшити вагу першого критерію:
- координати розтягуються вздовж відповідної осі;
- відстані змінюються;
- рейтинг може змінитися.
Геометричний зміст ваг
Зважування можна уявити як масштабування осей простору критеріїв. Більша вага робить відхилення за цим критерієм геометрично значущішим.
Мікроексперимент: змініть ваги
Використайте:
Порівняйте з:
Перед запуском спрогнозуйте:
- яка альтернатива посилиться;
- яка ослабне;
- чому.
Після обчислення поясніть результат через внесок критеріїв.
Чутливість до нормалізації
TOPSIS залежить і від способу нормалізації.
Можна використовувати:
- векторну нормалізацію;
- min–max;
- інші узгоджені способи.
Різні перетворення можуть змінити геометрію.
Тому в методиці потрібно вказувати конкретну формулу.
Додавання нової альтернативи
Припустимо, додаємо:
D майже ідеальна.
Вона може:
- домінувати частину старих альтернатив;
- змінити Парето-фронт;
- змінити ідеальну точку, якщо вона визначається з даних;
- змінити рейтинг TOPSIS.
Це демонструє, що багатокритеріальна модель залежить від складу набору альтернатив.
Дубльовані альтернативи
Додамо:
Вона має ті самі координати, що й A.
За строгим Парето-визначенням:
- A не домінує D;
- D не домінує A.
Причина: немає строгого покращення.
Обидві можуть залишитися у множині Парето.
Корельовані критерії
Два критерії можуть фактично вимірювати одну й ту саму властивість.
Наприклад:
- загальний рейтинг;
- експертна оцінка якості;
- задоволеність користувачів.
Якщо вони сильно корельовані, одна характеристика може отримати подвійний вплив.
Відстань і похибка вимірювання
Якщо оцінки отримані експертно, вони можуть містити похибку.
Наприклад:
Невелика зміна оцінок може змінити коефіцієнти близькості.
Якщо різниця між фінальними значеннями мала, сильний висновок про перевагу може бути необґрунтованим.
Як інтерпретувати близькі рейтинги
Нехай:
Формально A вище.
Але різниця:
Це дуже мало.
Потрібно перевірити:
- точність вихідних даних;
- чутливість до ваг;
- чутливість до нормалізації;
- похибки експертних оцінок.
Типові помилки
Змішані напрями критеріїв
Домінування без строгого покращення
Парето аналізують до перевірки обмежень
Відстань обчислюють за сирими різнорідними даними
Ігнорують ваги
Плутають ідеальну точку з реальною альтернативою
Округлюють проміжні значення
Не перевіряють чутливість
Професійна перевірка багатокритеріальної моделі
Мікроексперимент: додайте D
Додайте:
Визначте:
- чи домінує A над D;
- чи домінує D над A;
- чи обидві точки входять у множину Парето.
Поясніть роль строгого покращення.
Мікроексперимент: додайте E
Додайте:
Перевірте:
- які альтернативи E домінує;
- як змінюється множина Парето;
- чи потрібен після цього TOPSIS.
Мікроексперимент: бюджетне обмеження
Припустимо, E має найкращі оцінки, але її ціна перевищує бюджет.
Поясніть:
- чому E потрібно виключити до Парето-аналізу;
- чому рейтинг не може «компенсувати» порушення жорсткого обмеження.
Мікроексперимент: змініть метрику
Для A і C обчисліть:
- евклідову відстань;
- манхеттенську відстань.
Порівняйте результати.
Поясніть, що саме змінюється у трактуванні компромісу.
Самоперевірка термінів
01 Що означає Парето-домінування?Показати відповідь
Одна альтернатива не гірша за іншу за всіма критеріями та строго краща хоча б за одним.
02 Що таке множина Парето?Показати відповідь
Набір альтернатив, які не домінуються жодною іншою допустимою альтернативою.
03 Що таке Парето-фронт?Показати відповідь
Геометрична межа недомінованих рішень у просторі критеріїв.
04 Що таке ідеальна точка?Показати відповідь
Вектор найкращих значень за всіма критеріями.
05 Що таке антиідеальна точка?Показати відповідь
Вектор найгірших значень за всіма критеріями.
06 Що вимірює d+?Показати відповідь
Відстань альтернативи до ідеальної точки.
07 Що вимірює d-?Показати відповідь
Відстань альтернативи до антиідеальної точки.
08 Що показує коефіцієнт близькості?Показати відповідь
Наскільки альтернатива одночасно близька до ідеалу та далека від антиідеалу.
09 Що таке TOPSIS?Показати відповідь
Метод ранжування за близькістю до ідеального та віддаленістю від антиідеального рішення.
10 Чому нормалізація потрібна перед відстанями?Показати відповідь
Щоб числовий масштаб окремого критерію не створював прихованого домінування у геометрії.
Перевірка розуміння
Питання для пояснення своїми словами
Чому Парето-фронт не дає єдиного переможця?
Чому ідеальна точка може бути нереальною?
Чому A може залишатися на Парето-фронті, але програти TOPSIS?
Чому мала різниця коефіцієнтів близькості потребує обережної інтерпретації?
Карта понять
Визначаємо, які альтернативи допустимі.