- •Дослідження операцій
- •Загальна задача лп. Допустима область та її властивості. Поняття вершини допустимої області, базисного (опорного) плану задачі.
- •Стандартна задача лп. Зведення загальної задачі до стандартної. Канонічна задача лп. Зведення стандартної задачі до канонічної.
- •1. Алгоритм симплекс-методу.
- •Симплексні перетворення. Відносні оцінки змінних. Критерій оптимальності базисного плану. Ознака необмеженості цільової функції. Алгоритм симплексного методу.
- •Побудова початкового базисного плану. Метод штучної бази. М-метод.
- •Двоїстість в лп. Несиметрична та симетрична пари двоїстих задач. Теореми двоїстості. Двоїстий симплекс-метод.
Двоїстість в лп. Несиметрична та симетрична пари двоїстих задач. Теореми двоїстості. Двоїстий симплекс-метод.
Одночасно із заданою задачею лінійного програмування вигідно розглядати двоїсту задачу лінійного програмування. Розглядаючи пару двоїстих задач, можна виписати за розв’язком однієї задачі розв’язок іншої.
Нехай задана стандартна задача лінійного програмування:
.
Цю задачу будемо називати прямою.
Двоїстою задачею до стандартної називається задача виду:
.
Зауважимо, що якщо пряма задача лінійного програмування має стандартну форму, то двоїста їй задача лінійного програмування не містить прямих обмежень на двоїсті змінні , тобто .
Щоб побудувати двоїсту до загальної задачі лінійного програмування, необхідно перетворити її до стандартної форми, а потім діяти згідно визначення двоїстої задачі.
Теореми двоїстості.
Теорема 1. Якщо одна з пари двоїстих задач лінійного програмування має оптимальний розв'язок, то інша також має оптимальний розв'язок, причому оптимальні значення цільових функцій співпадають .
Теорема 2. Якщо цільова функція однієї з пари двоїстих задач лінійного програмування необмежена на допустимій множині (для задачі мінімізації – знизу, для задачі максимiзацiї – зверху), то інша задача не має допустимих розв’язків.
Зауваження до теореми 2. Цей факт невзаємний, тобто, якщо у однієї із задач не існує допустимих розв’язків, то це не означає, що цільова функція другої задачі необмежена.
Зауваження. Якщо задовольняє умову а відповідні відносні оцінки – невід’ємні, то є допустимим розв’язком для двоїстої задачі, причому необов’язкове обмеження .
Двоїстий критерій оптимальності. Базисний розв'язок прямої задачі лінійного програмування є оптимальним тоді і лише тоді, коли існує вектор такий, що виконуються співвідношення
або в координатній формі
Двоїстий симплекс-метод.
Розглянемо метод розв'язування задач лінійного програмування, що базується на теорії двоїстості, i називається цей метод двоїстим симплекс-методом. Наведемо його обґрунтування.
Нехай розглядається СЗЛП:
(1)
Як відомо, двоїстою до задачі (1) є ЗЛП
(2)
Нехай вектори умов у задачі (1)є лінійно незалежними, – базисна матриця. Спробуємо перейти від СЗЛП (1)до КЗЛП, для цього помножимо прямі обмеження зліва на . Одержимо , де , Е – одинична матриця розмірності m×m. Якщо при цьому , то одержана ЗЛП є канонічною, якщо ж деякі компоненти вектора β від'ємні, то, звичайно, ні.
Означення 1. Майже канонічною задачею лінійного програмування (МКЗЛП) називається стандартна задача лінійного програмування (1), якщо матриця умов A містить одиничну матрицю.
Означення 2. Вектор називається майже допустимим базисним розв'язком, якщо він задовольняє обмеження (але не обов'язково обмеженням ) i його ненульовим компонентам відповідають лінійно незалежні вектори умов.
Для одержаної задачі маємо , вектори умов – лінійно незалежні, – базисна матриця. Змінні будемо називати базисними, – небазисними. Надалі будемо розглядати лише ті майже допустимі базисні розв'язки (або ж ті МКЗЛП, що їх визначають), для яких відносні оцінки невід'ємні, тобто (3)
Для таких майже допустимих базисних розв'язків є очевидним критерій оптимальності: майже допустимий базисний розв'язок є оптимальним, якщо він є допустимим.
Зауважимо, що для майже допустимого базисного розв'язку, для якого виконується (3), вектор є допустимим розв'язком двоїстої ЗЛП ( ). Отже, розглянемо МКЗЛ
для якої . Виключивши з цільової функції базисні змінні , маємо
(4)
Двоїста до ЗЛП (4) має вигляд
або, виконуючи заміну
Останню задачу легко переводимо до канонічного вигляду, вводячи додаткові невід'ємні змінні , та враховуючи, що максимiзацiя цільової функції еквівалентна мінімізації цієї ж функції з оберненим знаком:
(5)
Отже, двоїстою до МКЗЛП (4) є КЗЛП (5). Зміст двоїстого симплекс-методу полягає у застосуванні звичайного симплекс-методу для розв'язування двоїстої ЗЛП (5). Оскільки метод, що розглядається, цікавить нас як метод розв'язування задачі (4), вияснимо, що означають для ЗЛП (4) перетворення кожної iтерацiї симплекс-методу, застосованого до задачі (5). Прямі обмеження КЗЛП (5) визначають базисний розв'язок цієї задачі – n-вимірний вектор , для якого вектор тієї ж вимірності є вектором симплекс-рiзниць. Якщо , то є оптимальним розв'язком задачі (5). Отже, є оптимальним розв'язком ЗЛП (4) (критерій оптимальності майже допустимого базисного розв’язку). Інакше згідно симплекс-методу визначаються числа l та k з умов:
l: (6)
k: (7)
тобто, визначається ведучий елемент симплексного перетворення. Стосовно задачі (4) вказані дії також визначають ведучий елемент симплексного перетворення, при цьому з числа базисних виводиться вектор , а вектор уводиться до числа базисних. Виконавши вказане перетворення, одержимо МКЗЛП, що визначає майже допустимий базисний розв’язок (аналогічно КЗЛП)
де . З цього ж перетворення випливає також, що відносні оцінки , для пов'язані з співвідношенням
(8)
Враховуючи, що , , робимо висновок, що при виконується . Якщо ж , то, записавши (7) у вигляді , маємо, що . Отже, для нового МДБР відносні оцінки також невід'ємні. Легко підрахувати також, що , тобто, при переході від точки до значення цільової функції збільшується, якщо є невиродженим базисним розв'язком двоїстої ЗЛП i залишається незмінним у виродженому випадку.
Зауважимо нарешті, що коли для деякого у задачі (5) , то ця задача розв'язку не має через необмеженість цільової функції на допустимій множині, а задача (4) згідно теореми двоїстості не має розв'язку через те, що є порожньою її допустима множина. Все це дає можливість сформулювати алгоритм двоїстого симплекс-методу.
Алгоритм двоїстого симплекс-методу (ДСМ)
1. Зводимо вихідну ЗЛП до МКЗЛП i знаходимо її МДБР , для якого відносні оцінки невід'ємні.
2. Нехай на s-ій iтерацiї маємо МКЗЛП, що визначає МДБР , якому відповідають невід'ємні відносні оцінки. Без обмеження загальності будемо вважати, що визначається системою прямих обмежень
(9)
тобто, та
3. Якщо , то здійснюється вихід із алгоритму: є оптимальним розв'язком вихідної ЗЛП.
4. Якщо існує принаймні одне , таке, що , то здійснюється вихід із алгоритму: вихідна ЗЛП розв'язку не має (її множина допустимих розв’язків є порожньою).
5. Знаходимо l з умови . Отже, вектор виводиться з числа базисних.
6. Знаходимо k з умови . Вектор уводиться до числа базисних. Виконуємо симплексне перетворення над елементами розширеної матриці системи (9) з ведучим елементом i повертаємось до пункту 2 алгоритму, заміняючи s на s+1.