- •З дисципліни
- •1 Змістовий модуль 1. Лінійне та нелінійне програмування
- •Тема 1 «Введення в дисципліну. Побудова математичних моделей проблемних ситуацій»
- •1. Загальна методологія дослідження операцій
- •2. Модель операції, основні принципи її побудови
- •3. Методика проведення дослідження операцій
- •4. Типові класи задач дослідження операцій
- •Тема 2 «Задачі математичного програмування (мп)»
- •1. Загальна постановка задачі математичного програмування (мп)
- •2. Класифікація задач мп
- •3. Типи максимумів. Теорема Вейєрштрасса та теореми про достатні умови глобального максимуму
- •4. Специфіка задач математичного програмування
- •Тема 3 «Лінійне програмування»
- •1. Загальна постановка задачі лінійного програмування (злп)
- •2. Форми запису злп (загальна, стандартна, канонічна форми)
- •Приклади практичних задач лінійного програмування
- •Тема 4 «Геометрична інтерпретація злп»
- •1. Графічний метод розв'язання злп. Умови графічного розв'язання злп.
- •2. З’ясування основних особливостей та властивостей розв’язків злп за допомогою геометричної інтерпретації.
- •3. Основні етапи графічного розв'язання злп (Алгоритм геометричної інтерпретації злп)
- •Тема 5 «Симплексний метод розв'язування злп»
- •1. Аналітичні методи розв'язування злп
- •2. Ідея симплексного методу розв'язування злп
- •3. Основні теореми, на яких базується симплексний метод
- •4. Симплекс-алгоритм розв'язування невироджених злп
- •Тема 6 «злп з штучним базисом»
- •1. Ідея симплексного методу розв'язування злп із штучною базою
- •3. Алгоритм розв'язання злп із штучною базою
- •Тема 7 «Двоїстість. Двоїстість (спряженість) у лінійному програмуванні»
- •1. Поняття двоїстості в лінійному програмуванні
- •2. Основні теореми двоїстості та їх економічний зміст
- •Тема 8 «Спеціальні задачі мп. Спеціальні методи розв’язання злп»
- •Транспортна задача ( т-Задача) та її математична модель.
- •2. Методи визначення опорного плану т-Задачі
- •3. Методи розв’язання т-задач
- •Розв'язання т-задач методом потенціалів
- •Тема 9 «Параметричне програмування»
- •2. Моделі задач параметричного програмування
- •Тема 10 «Нелінійне програмування»
- •1. Загальна постановка задачі нелінійного програмування
- •2. Класичні умови екстремуму. Метод множників Лагранжа
- •4. Задача нелінійного програмування й сідлова точка
- •5. Умови Куна-Таккера для знп. Теорема Куна-Таккера
- •2 Змістовий модуль 2. Дискретне та стохастичне програмування
- •Тема 1 «Дискретне програмування»
- •1. Загальні характеристика дискретних задач
- •2. Класифікація задач дискретного програмування. Математичні моделі задач дискретного програмування
- •1. Як у загальному виді надається задача дискретного програмування?
- •Тема 2 «Клас цілочислових лінійних задач»
- •Особливості задач цілочисельне програмування. Моделі цзлп
- •Моделі цзлп
- •2. Метод відсікань (метод Гоморі) розв'язання зцлп
- •3.Комбінаторні методи розв’язування цзлп
- •4. Метод гілок та меж в задачах цілочислового програмування. Ідея методу гілок і меж, ознака оптимальності плану
- •Тема 3 «Динамічне програмування»
- •1. Загальна структура задач динамічного програмування
- •2. Принципи динамічного програмування. Принцип оптимальності Беллмана
- •3. Приклади задач динамічного програмування
- •Тема 4 «Стохастичне програмування»
- •1. Загальна характеристика задач стохастичного програмування. Методи розв’язання задач стохастичного програмування.
- •2. Приклади задач стохастичного програмування
- •3 Змістовий модуль 3. Методи оптимізації
- •Тема 1 «Методи оптимізації функцій, що диференціюються та що не диференціюються»
- •Тема 2 «Методи оптимізації в задачах великої розмірності та методи багатокритеріальної оптимізації»
- •1. Методи оптимізації багатовимірних задач
- •Градієнтні методи
- •Найшвидший підйом з використанням одномірного пошуку
- •Метод найшвидшого спуску
- •Метод Флетчера – Рівса
- •Метод Девідона – Флетчера – Пауела
- •Метод конфігурацій Хука – Дживса
- •Метод конфігурацій Розенброка
- •4 Навчально–методичні матеріали з дисципліни
3. Основні теореми, на яких базується симплексний метод
Симплекс-метод заснований на теоремі, що називається фундаментальною теоремою симплекса-методу. Серед оптимальних планів задачі лінійного програмування в канонічній формі обов'язково є опорний розв’язок її системи обмежень. Якщо оптимальний план задачі єдиний, то він збігається з деяким опорним розв’язком. Різних опорних розв’язків системи обмежень кінцеве число. Тому розв’язок задачі в канонічній формі можна було б шукати перебором опорних розв’язків і вибором серед них того, для якого значення F найбільше. Але, по-перше, всі опорні розв’язки невідомі і їх потрібно знаходити, a, по-друге, у реальних задачах цих розв’язків дуже багато й прямий перебір навряд чи можливий.
Симплекс-метод являє собою деяку процедуру спрямованого перебору опорних розв’язків. Виходячи з деякого, знайденого заздалегідь опорного рішення по певному алгоритмі симплекс-методу ми підраховуємо нове опорне рішення, на якому значення цільової функції F не менше, ніж на старому. Після ряду кроків приходимо до опорного розв’язку, що є оптимальним планом.
Отже, симплексний метод вносить певний порядок як при знаходженні першого (вихідного) базисного плану, так і при переході до інших базисних рішень. Його ідея полягає в наступному.
Маючи систему обмежень, приведену до загального виду, тобто до системи m лінійних рівнянь із n змінними (m < n), знаходять будь-який базисний розв’язок цієї системи, піклуючись тільки про те, щоб знайти його як можна простіше.
Якщо перший знайдений базисний розв’язок виявився припустимим, то перевіряють його на оптимальність. Якщо він не оптимальний, то, здійснюється перехід до іншого, обов'язково припустимого базисного розв’язку.
Симплексний метод гарантує, що при цьому новому розв’язку лінійна форма, якщо й не досягне оптимуму, то наблизиться до нього. З новим припустимим базисним розв’язком надходять так само, поки не знаходять розв’язок, що є оптимальним.
Якщо перший знайдений базисний розв’язок виявиться неприпустимим, то за допомогою симплексного методу здійснюється перехід до інших базисних розв’язків, які наближають нас до області припустимих рішень, поки на якімсь кроці розв’язок або базисне рішення виявиться припустимим і до нього застосовують алгоритм симплексного методу, або ми переконуємося в суперечливості системи обмежень.
Таким чином, застосування симплексного методу розпадається на два етапи:
знаходження припустимого базисного рішення системи обмежень або встановлення факту її необмеженності;
знаходження оптимального розв’язку.
При цьому кожний етап може включати кілька кроків, що відповідають тому або іншому базисному рішенню. Але тому що число базисних розв’язків завжди обмежено, те обмежено й число кроків симплексного методу.
4. Симплекс-алгоритм розв'язування невироджених злп
Наведена схема симплексного методу явно виражає його алгоритмічний характер (характер чіткого виконання послідовних операцій), що дозволяє успішно програмувати й реалізувати цей метод на ЕОМ. Задачі ж з невеликим числом змінних і обмежень можуть бути вирішені симплексним методом вручну.
Не зупиняючись докладніше на суті алгоритму, опишемо його обчислювальну сторону. Обчислення по симплекс-методу організуються у вигляді симплекс-таблиць, які є скороченим записом задачі лінійного програмування в канонічній формі. Перед складанням симплекс-таблиці задача повинна бути перетворена, система обмежень наведена до припустимого базисного виду, c допомогою якого із цільової функції повинні бути виключені базисні змінні. Питання про ці попередні перетворення розглянемо нижче. Зараз же будемо вважати, що вони вже виконані й задача має вигляд:
Тут для визначеності запису вважається, що як базисні змінні можна взяти змінні X1, X2, ..., Xr і що при цьому b1, b2,..., br ≥ 0 (відповідний базисний розв’язок є опорним).
Для складання симплекс-таблиці у всіх рівностях за умови задачі члени, що містять змінні, переносяться в ліву частину, вільні залишаються праворуч, тобто задача записується у вигляді системи рівностей:
Далі ця система оформляється у вигляді симплекс-таблиць:
Примітка. Назви базисних змінних тут узяті лише для визначеності запису й у реальній таблиці можуть виявитися іншими.
Порядок роботи із симплекс-таблицею наступний.
Перша симплекс-таблиця піддається перетворенню, суть якого полягає в переході до нового опорного розв’язку.
Алгоритм переходу до наступної таблиці такий:
аналізується останній рядок (індексний) таблиці й серед коефіцієнтів цього рядка (крім стовпця вільних членів
)
вибирається найменше від’ємне число
при відшуканні max,
або найбільше позитивне при задачі на
min.
Якщо такого немає, то вихідний базисний
розв’язок є оптимальним і ця таблиця
є останньою;аналізується стовпець таблиці, що відповідає обраному від’ємному (позитивному) коефіцієнту в останньому рядку - ключовий стовпець, і в цьому стовпці вибираються позитивні коефіцієнти. Якщо таких немає, то цільова функція необмежена на області припустимих значень змінних і задача розв’язків не має;
серед обраних коефіцієнтів стовпця вибирається той, для якого абсолютна величина відношення відповідного вільного члена ( що перебуває в стовпці вільних членів) до цього елемента мінімальна. Цей коефіцієнт називається ключовим, а і рядок у якій він перебуває, ключовим;
надалі базисна змінна, що відповідає рядку ключового елемента, повинна бути переведена в розряд вільних, а вільна змінна, що відповідає стовпцю ключового елемента, уводиться в число базисних. Будується нова таблиця, що містить нові назви базисних змінних:
розділимо кожний елемент ключового рядка (крім стовпця вільних членів) на ключовий елемент і отримані значення запишемо в рядок зі зміненою базисною змінною нової симплекс-таблиці.
рядок ключового елемента ділиться на цей елемент і отриманий рядок записується в нову таблицю на те ж місце.
у новій таблиці всі елементи ключового стовпця = 0, крім що ключового, він завжди дорівнює 1.
стовпець, у якого в ключовому рядку є 0, у новій таблиці буде таким же.
рядок, у якої в ключовому стовпці є 0, у новій таблиці буде такий же.
в інші клітки нової таблиці записується результат перетворення елементів старої таблиці:
в результаті одержують нову симплекс-таблицю, що відповідає новому базисному розв’язку.
далі варто переглянути рядок цільової функції (індексну), якщо в ній немає негативних значень (у задачі на знаходження максимального значення), або позитивних (у задачі на знаходження мінімального значення) крім того, що знаходиться на місці
(вільного стовпця), те виходить, що
оптимальний
розв’язок
отриманий. У противному
випадку, переходимо до нової
симплекс-таблиці за вище описаному
алгоритмі.
Контрольні запитання
1. Який план називається базисним?
2. Як пов’язані базисні плані та кутові точки області визначення задачі лінійного програмування?
3. Який план задачі лінійного програмування називається виродженим?
4.Сформулюйте критерій оптимальності припустимого базисного плану, який використовується в симплекс-методі.
5. Сформулюйте основні етапи стандартної ітерації симплекс-методу.
6. Який елемент симплекс-таблиці називається ключовим?
7. За яких умов робиться висновок про оптимальність плану ЗЛП при вирішенні задачі симплекс-методом?
