1. Лекція 8. Метод штучного базису
Симплексний метод можна застосовувати для задач, в яких відомий початковий
опорний план. Проте для багатьох задач лінійного програмування, записаних у формі
основної задачі, не завжди знаходиться одиничних векторів . Наприклад, потрібно
знайти максимум функції
(3.9)
при обмеженнях
(3.10)
(3.11)
де серед векторів
. . . ,
немає одиничнихвекторів.
Для того щоб використовувати симплекс-метод для розв'язання задачі (3.9)─(3.11),
доводиться удаватися до введення штучних змінних у обмеження задачі з метою
одержання нової системи обмежень з повним одиничним базисом, опорним розв'язком
нової системи обмежень. Потім розв'язується задача лінійного програмування з новими
обмеженнями та спеціально побудованою цільовою функцією, в яку вводяться штрафи на
штучні змінні. Залежно від вигляду цільової функції нової задачі її розв'язок приводить до
опорного розв'язку вихідної задачі (3.9)─(3.11) або до оптимального розв'язку. Якщо
задача (3.9)─(3.11) не має розв'язків, то це виявляється у ході розв'язування задачі. Такий
прийом розв'язання задачі лінійного програмування називається методом штучного базису
або М-методом.
Визначення. Задача знаходження максимального значення функції
(3.12)
при обмеженнях
m jA
max...2211 nn xcxcxcF
;...
......................................
;...
;...
2211
22222121
11212111
mnmnmm
nn
nn
bxaxaxa
bxaxaxa
bxaxaxa
,,1,0 njxj
,
.
.
.
1
11
1
m
a
a
A ,
.
.
.
2
12
2
m
a
a
A
mn
n
n
a
a
A
.
.
.
1
m
mnnnn
MxMxxcxcxcF
...... 12211
2. (3.13)
(3.14)
де ─ велике додатне число, називається розширеною змінною щодо (3.9)─ (3.11).
Задача (3.12)─(3.14) має опорний план
Цей план визначається системою одиничних векторів …, які
утворюють базис -вимірного векторного простору. Система векторів, як і змінні
називаються штучною. Оскільки розширена задача має опорний план,
то її розв’язок можна знайти симплекс-методом.
Теорема. Якщо в оптимальному плані
розширеної задачі (3.12)─(3.14) значення штучних змінних дорівнюють нулю
, то є оптимальним планом вихідної задачі
(3.9)─(3.11).
Тобто, використовуючи симплекс-метод для розширеної задачі, поступово вводимо в
базис основні змінні замість штучних. Після скінченного числа ітерацій всі штучні змінні
повинні вийти з базису.
Щоб перевірити опорний план на оптимальність, складаємо симплекс-таблицю і
обчислюємо
Різниці будуть лінійними функціями від :
Кожна з різниць складається з двох частин, одна з яких залежить від , а інша не
залежить. Тому для кожної з цих частин у симплекс-таблиці виділяється свій
рядок для частини , що не залежить від , а ─ рядок для коефіцієнта
при .
Перерахунок симплекс–таблиці здійснюється за загальним правилом симплекс-
методу. Але при переході від одного опорного плану до іншого в базис вводять вектор,
який відповідає найбільшому за абсолютною величиною від’ємному числу
рядка. Штучний вектор виводиться з базису і перераховувати його не потрібно.
;...
...............................................
;...
;...
2211
222222121
111212111
mmnnmnmm
nnn
nnn
bxxaxaxa
bxxaxaxa
bxxaxaxa
,,1,0 mnjxj
M
).,...,,0,...,0( 1 m
bbX
,1n
A ,2n
A ,mn
A
m
,,...,, 21 mnnn xxx
),...,,,...,,( **
1
**
2
*
1
*
mnnn
xxxxxX
),...,1(0*
mix in
),...,,( **
2
*
1
*
n
xxxX
,00 ACz баз
.j jjjjбаз czcAC
jj cz M
.jijjj caMcz
M
)1( m
jj cz M )2( m
M
)2( m
3. Процес виведення штучних змінних по рядку проводимо доти, поки всі
штучні змінні виведено з базису; в базисі ще є штучні змінні, а в рядку
виконується критерій оптимальності, тобто всі елементи рядка невід’ємні при
розв’язанні задачі на максимум.
Тоді, якщо на перетині рядка і стовпця стоїть від’ємний елемент, то
задача не має розв’язку, а якщо стоїть нуль, то триває пошук оптимального плану за
рядком. Розв’язувальний стовпець обираємо той, якому відповідає найбільший за
абсолютною величиною від’ємний елемент рядка. Процес продовжуємо доти,
доки в рядку не залишиться від’ємних елементів. Елементи рядка
перетворювати не потрібно.
Алгоритм методу штучного базису
1. Складаємо розширену задачу (3.12 )–(3.14).
2. Знаходимо початковий опорний план розширеної задачі.
3. Використовуючи симплекс-метод, виводимо штучні вектори з базису. В
результаті або знаходимо початковий опорний план вихідної задачі (3.9)–(3.11), або
встановлюємо, що задача не має розв’язку.
4. Перевіряємо знайдений опорний план на оптимальність і або симплекс-
методом встановлюємо, що цей план оптимальний, або доводимо, що задача не має
розв’язку.
Приклад. Розв’язати задачу лінійного програмування з використанням методу
штучного базису:
(3.15)
(3.16)
(3.17)
Зведемо задачу до канонічної форми:
(3.18)
(3.19)
(3.20)
Запишемо систему обмежень (3.19)─(3.20) у векторній формі:
)2( m
)2( m
)2( m
)2( m 0
A
)1( m
)1( m
)1( m )2( m
min;243 4321 xxxxf
;24432
;2754
4321
4321
xxxx
xxxx
.4,1,0 jxj
max;243 4321 xxxxF
;24432
;2754
6421
54321
xxxx
xxxxx
.6,1,0 jxj
,0665544332211
AAxAxAxAxAxAx
4. де
Кількість обмежень . Оскільки серед векторів не має двох
одиничних векторів, то складаємо розширену задачу і вводимо штучні змінні .
(3.21)
(3.22)
(3.23)
де ─ деяке досить велике додатне число, конкретне значення якого не задається.
Оскільки вектори і одиничні, то вони утворюють базис. Змінні
і ─ базисні, змінні ─ вільні і прирівнюються до нуля. Тоді
згідно з визначенням опорного плану початковий опорний план розширеної задачі
(3.20)─(3.23) буде таким:
Використовуючи тепер симплекс-метод для розширеної задачі, поступово вводимо в
базис основні змінні замість штучних.
Після скінченного числа ітерацій всі штучні змінні повинні бути виведені з базису.
Побудуємо симплекс-таблицю 3.9.
Таблиця3.9
;
2
1
1
A ;
3
1
2
A ;
0
4
3
A ;
4
5
4
A ;
0
1
5
A ;
1
0
6
A .
24
27
0
A
2m jA )6,...,1( j
87 , xx
max;243 874321 MxMxxxxxF
;2432
;2754
86421
754321
xxxxx
xxxxxx
.8,1,0 jxj
M
0
1
7A
1
0
8A
7
x 8
x 654321 ,,,,, xxxxxx
;0( 1 xXop
;02 x ;03 x ;04 x ;05 x ;06 x ;277 x ).248 x
i Базис
С1= -1 С2= -3 С3= -4 С4= -2 С5= 0 С6= 0 С7= -М С8= -М
1 ─М 27 1 ─1 4 5 ─1 0 1 0
2 ─М 24 2 3 ─1 4 0 ─1 0 1
m+1 0 1 3 4 2 0 0 0 0
m+2 ─51 ─3 -2 ─3 ─9 1 1 0 0
базC
0
A
1
A 2
A 3
A 4
A 5
A 6
A 7
A 8
A
7
A
8
A
5. Обчислимо і :
У рядок записуємо 0, оскільки немає чисел без , а в рядок ─ 51.
Аналогічно обчислюємо і заносимо їх у таблицю:
Оскільки в рядку серед величин є від’ємні, то початковий опорний план
розширеної задачі не є оптимальним. Треба перейти до наступного опорного плану.
Обчислення виконуємо за допомогою симплекс-методу, тільки тут розв’язувальний
стовпець вибираємо серед елементів рядка. Розв’язувальний стовпець відповідає
найбільшому за абсолютною величиною від’ємному елементу рядка – це 9.
Вектор, який вводиться, – буде . Позначаємо його стрілкою. Далі знаходимо величину
Розв’язувальний рядок – перший. Розв’язувальний елемент
дорівнює 5. Виділяємо його рамкою.
Отже, з базису виведемо штучний вектор , коефіцієнти якого далі перераховувати
не потрібно, а в базис вводимо вектор .
Використовуючи жорданові виключення, перерахуємо елементи (табл.3.10).
Таблиця 3.10
i Базис
С1= -1 С2= -3 С3= -4 С4= -2 С5= 0 С6= 0 С7= -М С8= -М
1 ─2 1 0 0
0
z 8,1, jAj
.05124)(27)(00 MMMACz баз
)1( m M )2( m
j
.010)1()(0)(
;0100)()1()(
;29)2(4)(5)(
;43)4()1()(4)(
;32)3(3)()1()(
;13)1(2)(1)(
666
555
444
333
222
111
MMMcAC
MMMcAC
MMMcAC
MMMcAC
MMMcAC
MMMcAC
баз
баз
баз
баз
баз
баз
)2( m j
)2( m
)2( m
4
A
;
5
27
minθ .
5
27
4
24
7
A
4
A
базC
0
A 1
A 2
A 3
A 4
A 5
A 6
A 7
A 8
A
4
A
5
27
5
1
5
1
5
4
5
1
6. 2 ─М 0 ─1 1
m+1 0 0 0
m+2 0 0 0
1 ─2 0 1
2 ─М 1 0
m+1 0 0 0
Отже, після другого кроку з базису вийшли всі штучні змінні, і всі елементи
рядка стали нулями. Тепер проаналізуємо рядок. У стовпцях і
рядка стоять від’ємні елементи. Це свідчить про те, що опорний план ще не
оптимальний.
Вектор буде розв’язувальним, оскільки ( ) – найбільший за абсолютною
величиною від’ємний елемент рядка. Для знайдення розв’язувального рядка
обчислимо розв’язувальний рядок – другий,
розв’язувальний елемент ─ .
У базис вводимо вектор , а з базису виводимо вектор і перераховуємо
елементи таблиці. В результаті отримуємо табл. 3.11.
Таблиця 3.11
Базис
8
A
5
12
5
6
5
19
5
21
5
4
5
54
5
3
5
17
5
12
5
2
5
12
5
6
5
19
5
21
5
4
4
A
19
105
19
5
19
11
9
3
9
1
2
A
19
12
19
6
19
21
19
4
9
5
19
264
19
9
19
117
19
6
)2( m )1( m 1
A 5
A
)1( m
(opX ;01 x ;
19
12
2 x ;03 x ;
19
105
4 x ;05 x )06 x
1
A
19
9
)1( m
;
19
5
:
19
105
minθ ,
19
6
:
19
12
19
6
:
19
12
19
6
1A 2A
i базC
0
A
1
1
C 32 C 43 C 24 C 05 C 06 C
1
A 2
A 3
A 4
A 5
A 6
A
7. 1 ─2 5 0 1
2 ─1 2 1 0
─12 0 0 0
У табл. 3.11 всі . Це свідчить про те. Що опорний план 0, 0, 5, 0, 0)
є оптимальним планом задачі і . Оскільки початкова задача була на мінімум
цільової функції, то .
4
A
6
5
2
3
3
1
6
1
1
A
6
19
6
21
3
2
6
5
1m
2
3
2
9
2
1
0j
(2,опX
12max f
12maxmin ff