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

1. Заповнюємо симплексну таблицю, знаходимо оцінки , значення .

2. Переглядаємо знаки коефіцієнтів . Якщо всі , то задача розв’язана і базисний розв’язок буде оптимальним, а . Якщо не всі , переходимо до п.3.

3. Серед від’ємних значень знаходимо найбільше по модулю число і відповідний йому стовпчик вибираємо за провідний. Нехай це буде стовпчик з номером . Якщо в провідному стовпчику всі елементи ( ), то маємо випадок 2: цільова функція необмежена і розв’язування закінчене. Якщо не всі , то перейти до п.4.

4. Для кожного додатного елемента -го (провідного) стовпчика знаходимо відношення , вибираємо найменше (тобто знаходимо симплексне відношення ), і називаємо рядок, де воно досягається, провідним. Нехай це буде рядок з номером . Елемент на перетині провідного рядка і провідного стовпця буде провідним.

5. Виконуємо жорданове перетворення таблиці від стовпця В до An, від 1-го рядка до ( +1)-го з провідним елементом і переходимо до кроку 2.

Послідовність операцій 2-5 називається ітерацієюсимплекс-методу.

Зауваження 1. У другій і далі таблицях і можна шукати за правилом прямокутника як і інші елементи.

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

Точнішим є таке правило: якщо не виконується умова оптимальності , , то в базис включають той вектор, якому відповідає min j, при j<0.

Якщо ж мінімальних оцінок декілька, то беруть вектор , якому відповідає максимальне .

Зауваження 3. Якщо в (1) , то умовою оптимальності плану є j≤0, j=1,…,n.

Приклад 5.1. Розв’язати задачу лінійного програмування

,

Складаємо симплекс-таблицю

Сб -3
-1
-3 -1
-18 -5
-3
-3
-3

Всі , тому базисний розв’язок є оптимальний .

Відповідь: .

Приклад 5.2. Розв’язати симплекс-методом задачу лінійного програмування

;

, , ; .

Зведемо задачу до канонічного вигляду

;

, .

Складемо симплекс-таблицю

 

i -1
-1
-4 -1
m + 1 -1 -3
-1
-2
-1
-4
-2
-2 -1
-1
11
-1 1

 

, , .

Зауваження 4. Як відзначалося, при переході від виродженого опорного плану до нового опорного плану цільова функція не збільшується. Можливий випадок, коли новий опорний план також вироджений і т.д., тоді можливе зациклення (коли вироджені плани повторюються). Для усунення зациклення і покращення розв’язку використовують таке правило. Якщо на кроці 4 алгоритму симплекс-методу досягається у декількох рядках, то треба вибрати той рядок, для якого буде найменшим відношення елементів наступного стовпчика до провідного. Якщо при цьому відношення виявляється рівним, то беруть відношення іншого стовпчика до провідного і т.д., поки не виявиться однозначно провідний елемент.

Приклад 5.3. Розв’язати задачу лінійного програмування симплекс-методом

;

, .

Задача записана в канонічному базисному вигляді.

Складаємо симплексну таблицю

i
-2
-1
-1
-2 -4
-2
-5
-1
-10

 

,

Відповідь: – невироджений оптимальний план, .