Ідея симплекс-методу
Симплес-метод є універсальним, оскільки дозволяє розв’язати практично будь-яку задачу лінійного програмування, записану в канонічній формі. Ідея симплексного методу (методу послідовного покращення плану) полягає в тому, що починаючи з деякого початкового опорного розв’язку здійснюється послідовне направлене переміщення від одного опорного розв’язку задачі до другого і далі до оптимального. Значення цільової функції при цьому переміщенні для задач на максимум не спадає. Оскільки число опорних рішень скінченне, то через скінченне число кроків можна отримати оптимальний розв’язок. Опорним розв’язком називається базисне невід’ємне рішення. Розглянемо задачу лінійного програмування: (2.6) (2.7) (2.8) Система обмежень (2.7) визначає в випуклий многогранник , в одній із вершин якого досягається максимум або мінімум функціоналу (2.6).
Ця обставина дає можливість не досліджувати на оптимальність всю безмежну множину точок многогранника, а обмежитися перебором його вершин. Тому в основу так званого симплекс-методу розв’язку ЗЛП покладена наступна ідея. Необхідно знайти будь-яку вершину многогранника, а потім здійснювати перехід від вершини до вершини, добираючись до оптимальної вершини.
Для реалізації цієї ідеї необхідно розробити методику відшукання початкової вершини (опорної), а послідуючий перебір вершин впорядкувати таким чином, щоб на кожному кроці наближатися до оптимального розв’язку. Все це забезпечується спеціальною системою правил. Алгоритм знаходження початкового опорного плану 1. Складаємо початкову жорданову таблицю для задачі (2.6) – (2.8).
Якщо усі (стовпчик вільних членів) додатні, то опорний план знайдено: Якщо , то - опорний план 2. Припустимо, що серед вільних членів є від’ємне число . Проглядаємо стрічку з номером . Якщо у цій стрічці всі елементи невід’ємні , то система обмежень визначає пустий многогранник, нерівності несумісні, задача розв’язку немає. 3. Нехай у - ій стрічці елемент ‑ від’ємний. Таких елементів може бути декілька. Проглядаємо елементи стовпчика з номером і елементи стовпчика вільних членів, порівнюючи їх попарно (в одній стрічці). Фіксуємо тільки ті пари, у яких однакові знаки. 4. Для цих пар знаходимо так звані симплексні відношення, поділивши вільний член на відповідний коефіцієнт із рядка , тобто . Отримані симплексні відношення, завжди будуть додатними. 5. Знаходимо найменше симплексне відношення: 6. В якості розв’язуючого елемента приймаємо - елемент -го стовпчика, що розміщений в рядку з мінімальним симплексним відношенням. З цим елементом робимо один крок модифікованих жорданових перетворень. 7. В сприятливому випадку розв’язуючим елементом може виявитися елемент . Тоді в результаті одного кроку новий вільний член в -ій стрічці виявиться додатнім, а решта збережуть свої знаки. Якщо розв’язуючий елемент виявиться в іншому рядку, то робимо один крок МЖВ і знову звертаємося до -го рядка, оскільки вільний член в ньому залишиться від’ємним. Так продовжуємо роботу з -им рядком до тих пір поки розв’язуючий елемент не виявиться елементом -го рядка. 8. Аналогічно перетворюємо і всі інші від’ємні елементи стовпчика вільних членів. За скінченне число кроків або отримаємо опорний план, або переконаємося, що задача немає розв’язку. Алгоритм знаходження оптимального плану Нехай маємо опорний план, тобто геометрично – знаходимось у вершині многогранника, а алгебраїчно – це початковий опорний план, яки будемо покращувати.
1. Після отримання опорного плану переглядаємо коефіцієнти рядка функціоналу . Якщо всі окрім , то оптимальний план знайдено. Цей розв’язок можна виписати із таблиці, прирівнюючі «верхні» змінні до нуля, а «бокові» ‑ до вільних членів. 2. Якщо у рядку є елементи (не враховуючи ), то стовпчик з цим елементом буде розв’язуючий. Якщо таких елементів декілька, то за розв’язуючий обирається стовпчик з максимальним за модулем елементом. 3. У якості розв’язуючого елемента обирається елемент у розв’язуючому стовпчику, якому відповідає мінімальне симплексне відношення. З цим елементом робимо один крок МЖВ. 4. Отриманий план досліджуємо на оптимальність (п. 1). За наявності процес продовжується. 5. Якщо хоча б в одному із стовпчиків, якому відповідає від’ємний елемент у рядку не має додатних елементів (тобто неможливо вибрати розв’язуючий елемент), то це означає, що функціонал в ОДР необмежений. Задача на знаходження максимуму не має розв’язку. Приклад. Знайти максимум функціоналу
|