logo search
R_3_2

3.4. Симплексний метод розв’язування задач лінійного програмування

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

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

Ітераційність процесу розв’язання задачі симплексним методом проявляєтьсяв тому, що однотипні обчислювальні процедури (ітерації) повторюються у певній послідовності доти, доки не буде отримано оптимальний план задачі або з’ясовано, що такого не існує.

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

Застосуваня симплекс-метода можливе лише у випадку коли задача лінійного програмування записана в канонічному вигляді (пункт.3.1, (3.1. – 3.3.)).

Алгоритм розв’язування задачі лінійного програмування симплексним методом:

1. Визначення початкового опорного плану задачі лінійного програмування.

2. Побудова симплексної таблиці.

3. Перевірка опорного плану на оптимальність за допомогою оцінок Δj = Zj - Cj. Якшо всі оцінки задовольняють умову оптимальності, то визначений опорний план є оптимальним планом задачі. Якщо хоча б одна з оцінок Δj = Zj - Cj не задовольняє умову оптимальності, то переходять до нового опрного плану або з’ясовують що оптимального плану не існує.

4. Перехід до нового опорного плану виконується визначенням розв’язувального елемента та розрахунком нової симплексної таблиці.

5. Повторення дій починоючи з п.3.

Розглянемо кожний крок алгоритму докладніше.

1. Визначення початкового опорного плану

Визначення першого опорного лану починають із запису задачі у канонічній формі, тобто коли усі обмеження задачі є рівняннями із невід’ємними правими частинами. Якщо в умові задачі присутні обмеження – нерівності, то перетворення їх на рівняння відбувається за допомогою додаткових змінних, які вводяться до лівої частини обмеження типу «≤» із знаком «+», а до обмеження типу «≥» із знаком «-». У цільовій фукції додаткові змінні маєть коефіцієнт «0».

Розглянемо задачу лінійного програмування (3.6 – 3.8),

.

і запишемо її в канонічній формі:

.

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

Наприклад, маємо задачу в канонічній формі (3.16). Допустимо, що система рівнянь містить перші m одиничних лінійно незалежних векторів. Запишемо систему обмежень у векторній формі.

(3.16)

Система обмежень (3.15) у векторній формі матиме вигляд:

, (3.17)

де

, ,..., ,

, …, , ,

— лінійно незалежні одиничні вектори m-вимірного простору, що утворюють одиничну матрицю і становлять базис цього простору.

Кількість одиничних лінійно незалежних векторів повинна дорівнювати кількості рівнянь системи обмежень задачі лінійного програмування.

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

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

Тому в системі (3.15) базисними змінними будуть , а інші змінні — вільні. Прирівняємо всі вільні змінні до нуля, тобто . Оскільки , а вектори — одиничні, то отримаємо один із розв’язків системи обмежень (3.16):

(3.18)

тобто опорний план.