Навчальний простір / Моделі
Математичні методи прийняття рішень

Стійкість рішення, аналіз чутливості та оптимізація

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

Зміст матеріалу

Що ви опануєте

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

Чутливість і стійкість

Аналіз чутливості досліджує вплив зміни параметрів на результат. Стійке рішення зберігає погоджену рекомендацію в заданому діапазоні допустимих змін. Стійкість завжди відносна до перевірених параметрів: незмінність рейтингу при зміні ваги ціни не доводить захисту від помилки місткості.

Нехай нормалізовані оцінки A=(0.9,0.4), B=(0.5,0.8), а вага першого критерію ww, другого — 1−w1-w. Тоді SA=0.4+0.5wS_A=0.4+0.5w, SB=0.8−0.3wS_B=0.8-0.3w. Рівність настає при 0.8w=0.40.8w=0.4, тобто w=0.5w=0.5. Нижче порогу перемагає B, вище — A, а на порозі маємо нічию.

SA−SB=−0.4+0.8w.S_A-S_B=-0.4+0.8w.

Це пояснення сильніше за один рейтинг при w=0.51w=0.51: перевага A тоді невелика й залежить від точного погодження ваг. Якщо реалістичний діапазон ww від 0.45 до 0.55, обидва рішення можливі. Потрібно уточнити переваги або представити умовну рекомендацію.

Покрокова перевірка

Почніть із базових даних і результату. Визначте параметри, щодо яких є сумнів. Для кожного задайте обґрунтований діапазон. Змінюйте один параметр, щоб простежити причинний зв’язок; потім перевірте спільні сценарії. Збережіть незмінними правила нормалізації, якщо мета — дослідити саме ваги, інакше одночасно зміняться кілька частин моделі.

python
for w in [0.3, 0.45, 0.5, 0.55, 0.7]:
    a = w * 0.9 + (1 - w) * 0.4
    b = w * 0.5 + (1 - w) * 0.8
    delta = a - b
    # Допуск потрібний для чисел з плаваючою крапкою.
    winner = "tie" if abs(delta) < 1e-9 else ("A" if delta > 0 else "B")
    print(w, round(a, 3), round(b, 3), winner)

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

Сценарії й робастність

Сценарій — узгоджений набір значень параметрів. Приклад: вища ціна транспорту разом із довшим часом дороги. Незалежна зміна лише ціни може пропустити такий стан. Робастний підхід шукає рішення з прийнятним результатом для всіх описаних сценаріїв або з мінімальним найгіршим відхиленням. Він потребує визначення допустимого набору невизначеностей.

Діапазон повинен мати джерело: історичні коливання, похибка вимірювання або експертна оцінка. Надто вузький діапазон робить майже кожен результат «стійким». Надто широкий може включити фізично неможливі комбінації. Показуйте обґрунтування меж і перевіряйте залежності між параметрами.

Коли потрібна оптимізація

У рейтингу обираємо серед готових альтернатив. У задачі оптимізації шукаємо значення змінних рішення, які максимізують або мінімізують ціль за обмежень. Наприклад, визначаємо кількість двох типів навчальних сесій. Нехай xx — кількість коротких, yy — довгих; внесок у навчальну мету 3x+5y3x+5y, доступний час x+2y≤8x+2y\leq8, організаційна умова x+y≤5x+y\leq5.

max⁡(3x+5y),x+2y≤8,x+y≤5,x,y≥0.\max (3x+5y),\quad x+2y\leq8,\quad x+y\leq5,\quad x,y\geq0.

У неперервній моделі x,yx,y можуть бути дробовими. Для кількості неподільних сесій потрібна цілочислова модель або окремий обґрунтований метод. Округлення неперервного результату може порушити обмеження чи втратити оптимальність. Тип змінної є змістовною частиною постановки.

python
from scipy.optimize import linprog

result = linprog(
    c=[-3, -5],  # linprog мінімізує; знак змінює максимум на мінімум.
    A_ub=[[1, 2], [1, 1]],
    b_ub=[8, 5],
    bounds=[(0, None), (0, None)],
    method="highs",
)
if result.success:
    print(result.x, -result.fun)  # [2., 3.] та 21.0
else:
    print(result.message)

Кожен рядок A_ub задає коефіцієнти однієї нерівності, а b_ub — її праву частину. bounds визначає межі змінних. Спочатку перевіряємо success, потім читаємо результат. Підстановка x=2,y=3x=2,y=3 дає рівності 8 і 5 та ціль 21. У цьому прикладі неперервний оптимум випадково цілий; це не загальна гарантія.

Типові помилки та професійна практика

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

Практичне осмислення

Знайдіть поріг для A=(0.7,0.5) і B=(0.4,0.9). Перевірте його числово. У моделі сесій змініть доступний час із 8 на 7 і поясніть, яку частину рішення треба перерахувати. Чи можна попередній план реалізувати? Спочатку перевірте допустимість, потім порівнюйте якість.

Стійкість рішення та межі експерименту

Аналіз чутливості змінює параметр моделі й спостерігає результат. Для ваги w графік різниці оцінок A і B допомагає знайти область переваги та поріг нічиєї. Якщо значення лежить близько до порогу, невелике уточнення ваги може змінити вибір. Це сигнал зібрати точніші дані або пояснити обидва допустимі рішення.

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

У лінійному програмуванні змінні рішення задають обсяги дій, цільова функція — оцінку, обмеження — ресурси. Допустима точка задовольняє всі нерівності. Оптимальна точка має найкращу ціль серед допустимих. Якщо ресурсів недостатньо для обов’язкових вимог, задача може бути infeasible; якщо ціль необмежено зростає, потрібно перевірити відсутні обмеження.

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

Схема процесу

Стійкість рішення, аналіз чутливості та оптимізаціяОберіть елемент, щоб побачити пояснення

Зберігаємо оцінки й припущення.

Самоперевірка

Перевірте розуміння
Що означає стійкість рейтингу?
Як обґрунтувати відповідь своїми словами?
Стійкість стосується конкретних перевірених змін. Вона не усуває неврахованих критеріїв чи помилкової постановки.

Підсумок

Аналіз чутливості пояснює, за яких умов рекомендація зберігається. Оптимізація потребує явних змінних, цілі та обмежень. Перевірка допустимості й статусу обчислення має передувати інтерпретації числового результату.

Джерела

Опрацювали матеріал?

Збережіть цей крок у своєму прогресі.

← Повернутися до дисципліни
© 2026 Анастасія Іскандарова-МалаЕлектронний навчальний посібник · ДДТУ

Пошук у посібнику

Спробуйте «C++», «RAII» або «бази даних».