
Лабораторна робота № 2
«Графічний та симплексний методи розв'язання задач
лінійного програмування. Задача про оптимальне
використання сировини»
2.1. Мета роботи – ознайомлення з принципами побудови математичної моделі задачі про оптимальне використання сировини; дослідження особливостей застосування графічного та симплексного методів для визначення опорного плану задачі лінійного програмування.
2.2. Змістовна постановка задачі та її математична модель
Не порушуючи спільності, розглянемо задачу лінійного програмування у стандартній формі. Це передбачає, що основна система обмежень надана у вигляді нерівностей одного знака і знак нерівностей відповідає виду екстремуму цільової функції. Зрозуміло, що геометрична інтерпретація доцільна, якщо многокутник планів належить до двовимірного простору. У випадку трьох вимірів задача значно ускладнюється, а для чотирьох вимірів графічне розв’язання стає неможливим. Отже, математичну модель задачі будемо розглядати у вигляді:
(2.1)
(2.2)
.
(2.3)
Кожна
нерівність основної
системи обмежень
(2.2) згідно з рівнянням прямої
поділяє площину 0Х1Х2
на півплощини та визначає ту з півплощин,
де нерівність виконується. Обмеження
на
знак
(2.3) також визначають півплощини, які
обмежені прямими:
та
,
отже, область визначення даної задачі
розташована у I-й чверті координатної
площини. Якщо система обмежень сумісна,
то півплощини, де виконуються нерівності
системи обмежень, перетинаючись,
утворюють многокутник
можливих розв’язків
задачі лінійного програмування, тобто
многокутник
планів.
Оскільки
у випадку застосування графічного
способу розв’язання цільова функція
повинна бути функцією двох змінних,
графіком її у тривимірному просторі
буде деяка площина. На площині 0Х1Х2
цільова функція відображається за
допомогою ліній
рівня,
тобто ліній, що відповідають певному
сталому значенню цільової функції
.
Так, лінія рівня, для якої значення
цільової функції дорівнює нулю, описується
рівнянням
,
і графіком цієї лінії рівня є пряма, що
проходить через початок координат.
Коефіцієнти цільової функції мають
значення проекцій нормалі до лінії
рівня:
.
Градієнт,
тобто вектор, що вказує напрямок найбільш
швидкого зростання функції, визначаємо
за вектором нормалі:
. (2.4)
Відповідно, значення цільової функції зростатиме, якщо лінію рівня пересувати в напряму нормалі.
До речі, аналогічну графічну інтерпретацію може мати задача лінійного програмування і для більшої кількості керованих змінних, якщо різниця між кількістю змінних та кількістю рівнянь основної системи обмежень дорівнює двом.
Графічний розв’язок задачі лінійного програмування базується на трьох теоремах, які наводимо без доведення.
Теорема 2.1. Множина планів задачі лінійного програмування є опуклою, тобто всі внутрішні точки відрізку, що з’єднує довільні точки многокутника, теж належать цьому многокутнику.
Теорема 2.2. Кожній вершині многокутника планів відповідає опорний план і кожному опорному плану відповідає вершина многокутника планів.
Теорема 2.3. Екстремум цільової функції відповідає вершині многокутника планів.
Визначення розв’язку задач великої вимірності можна здійснити, наприклад, за допомогою надбудови «Поиск решения» MS Excel.
4.3. Застосування надбудови «Поиск решения» для розв’язання задач лінійної оптимізації
Для
того щоб викликати вікно надбудови
«Поиск
решения»,
набирають
послідовність
команд Сервис
Поиск
решения
(рис.
2.1).
Рис. 2.1. Діалогове вікно «Поиск решения»
Слід звернути увагу на те, що надбудови не встановлюються автоматично, тому при першому зверненні до цієї опції необхідно набрати послідовність команд Сервис Надстройки і у діалоговому вікні прапорцем відмітити вічко Поиск решений. Після чого треба натиснути клавішу OK. Тепер при наступних звертаннях меню Сервис буде пропонувати цей пакет.
Розглянемо опції діалогового вікна «Поиск решения». Так, опція «Установить целевую ячейку» служить для визначення комірки, до якої виводиться значення функції, яке необхідно максимізувати, мінімізувати або встановити рівним наперед заданому числу. Ця комірка повинна містити формулу.
Опція «Равной» застосовується для вибору варіанта оптимізації значення цільової клітини: максимізація, мінімізація або підбір заданого значення. В останньому випадку слід вказати необхідне значення.
Опція «Изменяя ячейки» служить для визначення діапазону клітин, значення у яких змінюються у процесі пошуку розв’язку доти, доки не будуть виконані діючі обмеження й умова оптимізації, що задана коміркою «Установить целевую ячейку».
Опція «Предположить» використовується для автоматичного пошуку клітин, що впливають на формулу, посилання на яку містить цільова комірка. Результат відображається у вікні «Изменяя ячейки».
Опція «Ограничения» служить для відображення списку граничних умов задачі, що розглядається.
Опція «Добавить» виводить відповідне діалогове вікно, що дає можливість задати обмеження «Добавление ограничения» відповідно до умов задачі (рис. 2.2).
Рис. 2.2. Діалогове вікно «Добавление ограничения»
Опція «Изменить» дає можливість виправити помилку у кожному окремому обмеженні, якщо така помилка була зроблена, для чого виводиться діалогове вікно «Изменение ограничения» (рис. 2.3).
Рис. 2.3. Діалогове вікно «Изменение ограничения»
Опція «Удалить» видаляє зазначене обмеження.
Опція «Выполнить» здійснює запуск пошуку розв’язку поставленої задачі.
Опція «Закрыть» застосовується для виходу з вікна діалогу без запуску пошуку розв’язку поставленої задачі. При цьому зберігаються установки, які були зроблені у діалогових вікнах, що з'являлись у результаті натискання на кнопки «Параметры», «Добавить», «Изменить» або «Удалить».
Опція «Параметры» служить для відображення діалогового вікна «Параметры» пошуку розв’язку, у якому можна завантажити або зберегти оптимізаційну модель, а також вказати передбачені варіанти пошуку розв’язку (рис. 2.4).
Рис. 2.4. Опції розділу «Параметры» вікна «Поиск решения»
Опція «Восстановить» використовується для видалення значень вікна діалогу й відновлення значень параметрів пошуку розв’язку.
Перейдемо до розгляду опцій діалогового вікна «Параметры поиска решения». Так, опція «Максимальное время» служить для обмеження часу, що виділений на пошук розв’язку задачі. Можна ввести час (у секундах), який не перевищує 32 767, причому значення 100, яке використовується за замовчуванням, підходить для розв’язання більшості простих задач. При досягненні максимального часу пошук розв’язку припиняється.
«Предельное число итераций» застосовується для керування часом розв’язання задач, обмежуючи число ітерацій, а також і обсяг проміжних обчислень.
«Относительная погрешность» – опція, яка служить для визначення точності розв’язку. Вона може приймати довільні значення в інтервалі від 0 до 1. Чим точніше визначається розв’язок задачі (тобто чим менше значення щодо погрішності), тим більше часу потрібно засобу «Поиск решения» для знаходження розв’язку.
«Допустимое отклонение» – максимальне відхилення у відсотках для цілочислових розв’язків.
«Сходимость» служить для припинення процесу пошуку розв’язку, якщо відносна зміна значення в цільовій клітині за останні п'ять ітерацій стає менше числа, зазначеного в текстовому полі «Сходимость». Ця опція застосовується тільки до нелінійних задач.
«Линейная модель» дозволяє прискорити пошук розв’язку лінійної задачі або лінійної апроксимації нелінійної задачі.
«Неотрицательные значения» дозволяє встановити нульову нижню границю для тих клітин, для яких вона не була зазначена в розділі «Ограничения» діалогового вікна «Добавить».
«Показывать результаты итераций» надає можливість стежити за процесом розв’язання задачі. Якщо в діалоговому вікні встановлений прапорець опції «Показывать результаты итераций», то засіб «Поиск решения» робить паузу після кожної ітерації, щоб показати проміжні результати. З'являється вікно «Текущее состояние поиска решения». Щоб виконати наступну ітерацію, необхідно клацнути на кнопці «Продолжить». Для збереження поточних даних, перш ніж продовжувати, клацніть на кнопці «Сохранить сценарий».
«Автоматическое масштабирование» служить для включення автоматичної нормалізації вхідних і вихідних значень, що якісно відрізняються за величиною, наприклад, максимізація прибутку у відсотках стосовно вкладень, що обчислюються у мільйонах гривень. Якщо встановлено прапорець опції «Автоматическое масштабирование», слід переконатися, що клітини, які змінюються, містять значення того ж порядку, що очікується у відповіді.
Розділ «Оценки» застосовується для визначення методу екстраполяції, який використовується для оцінювання значень змінних у кожному одновимірному пошуку. При цьому перемикач «Линейная» служить для використання лінійної екстраполяції уздовж дотичного вектора, а перемикач «Квадратичная» – для квадратичної екстраполяції, що дає кращі результати при вирішенні нелінійних задач.
У розділі «Разности» варто встановити перемикач у положення «Прямые», якщо розв’язком задачі є гладка й безперервна функція (як, наприклад, це має місце для лінійної моделі). Якщо ж функція має розривну похідну, то слід установити перемикач у положення «Центральные». Але при цьому надбудова «Поиск решения» може видати повідомлення про те, що не може поліпшити результат.
У розділі «Метод поиска» можна вибрати алгоритм оптимізації, тобто напрям пошуку для кожної ітерації. Якщо встановити перемикача у положення «Ньютона», то це дозволяє краще вирішувати прості задачі. Цей метод пошуку більш швидкий і вимагає для вирішення задачі меншої кількості ітерацій, хоча зазвичай вимагає більше пам'яті, ніж метод сполучених градієнтів. Якщо задача достатньо складна, то перемикач методу пошуку слід встановити в положення «сопряженных градиентов».
Формування специфікації оптимізаційної моделі закінчується натисканням на кнопку «Выполнить».
Діалогове вікно «Результаты поиска решения» повідомляє про завершення пошуку. Якщо розв’язок знайдено, то у діалоговому вікні «Результаты поиска решения» мають бути ключові речення: «Решение найдено. Все ограничения и условия оптимальности выполнены». Приклад такого повідомлення, яке свідчить про відшукання розв’язку задачі, наведено на рис. 2.5. Якщо задача не має розв’язку, то у діалоговому вікні «Результаты поиска решения» з’явиться фраза «Поиск не может найти подходящего решения».
Рис. 2.5. Діалогове вікно «Результаты поиска решения»
Якщо розв’язок існує, то можна отримати три звіти про результати обчислень: «Результаты», «Устойчивость», «Пределы».
Звіт «Результати» складається з аналізу цільової клітини та списку впливових клітин моделі, їх вихідних і кінцевих значень, а також формул обмежень та додаткових відомостей про накладені обмеження.
Звіт «Устойчивость» використовується для аналізу чутливості знайденого розв’язку до змін вихідних даних задачі. Перший блок звіту «Устойчивость» містить відомості про величини можливого зменшення або збільшення коефіцієнтів цільової функції, що не впливають на оптимальність знайденого розв’язку («Допустимое увеличение», «допустимое уменьшение»). Другий блок звіту «Устойчивость» містить інформацію про чутливість до змін обмежень. Стовпчик «Теневая цена» містить значення двоїстих змінних, що відповідають заданим обмеженням, – це вартість одиниці ресурсів. В економічній теорії тіньову ціну називають ціною резервування. Тіньову ціну окремого обмеження можна інтерпретувати як коефіцієнт зміни оптимального значення цільової функції за умовою збільшення значення правої частини даного обмеження та незмінності інших даних. Така інтерпретація є правильною лише у відповідному діапазоні значень правої частини. Саме в цьому діапазоні тіньова ціна є сталою й має вказане значення. Значення у стовпчику «Нормированная стоимость» для відповідної змінної рішення визначається як величина, на яку слід змінити коефіцієнт даної змінної у цільовій функції, щоб оптимальне значення цієї змінної стало додатним. Якщо змінна рішення у точці оптимальності додатна, то «Нормированная стоимость» для неї дорівнює нулю. Тобто «Нормированная стоимость» є тіньовою ціною обмеження невід’ємності відповідної змінної рішення.
Звіт «Пределы» відображає мінімальне та максимальне значення змінних моделі і відповідні значення цільової функції. Цей звіт є обмеженим варіантом звіту «Устойчивость» і використовується для швидкого аналізу верхньої та нижньої границь впливових клітин моделі.
Якщо натиснути в діалоговому вікні «Параметры поиска решения» на кнопці «Сохранить сценарий», то з'явиться відповідне діалогове вікно. За замовчуванням «Поиск решения» припускає, що зберігається модель, яка починається з активної клітини. Необхідно на робочому аркуші MS Excel курсором вказати вихідну клітину або діапазон клітин.
При цьому варто бути уважним при збереженні моделі «Поиск решения». Якщо активна клітина містить дані, то модель буде збережена з ними. Слід зберігати робочий аркуш перед збереженням моделі. При збереженні моделі зберігаються цільові клітини, змінювані клітини й опції засобів «Поиск решения». Залежно від того, як багато обмежень визначено, буде змінюватися кількість клітин, що розміщені вертикально. Кожна клітина містить формулу або посилання. На робочому аркуші можна зберегти кілька моделей надбудови «Поиск решения». Слід перевірити, що зберігається кожна модель, для чого вибирають діапазон, який не містить даних. Зазвичай модель зберігають тільки при використанні декількох різних наборів параметрів при пошуку розв’язків.