
Lektsiyi_Ukhanska_1
.pdf2. Введемо додаткові змінні |
|
x5 |
, x6 |
, x7 0 .Замість змінної |
|||||||||||||||||||||||||
умови невід’ємності, введемо |
x2 |
|
|
|
|
|
|
/ |
|
// |
/ |
|
// |
0 . |
|||||||||||||||
x2 |
x2 , |
x2 |
, x2 |
|
|||||||||||||||||||||||||
L |
2x |
|
3 x |
/ |
x |
// |
4x |
x |
|
max |
|
|
|
|
|||||||||||||||
|
2 |
2 |
4 |
|
|
|
|
||||||||||||||||||||||
|
1 |
|
1 |
|
|
|
|
|
|
|
3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
2x |
|
|
|
|
|
x |
3 |
|
|
2x |
4 |
|
x |
5 |
|
|
3 |
||||||||||
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
x |
2 x / x // |
|
x |
3 |
x |
4 |
|
|
x |
6 |
|
|
2 |
||||||||||||||
|
|
1 |
|
2 |
|
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
3x |
|
|
|
|
|
x |
|
|
2x |
|
|
|
|
|
|
|
x |
|
|
5 |
||||||||
|
|
|
|
|
|
3 |
|
4 |
|
|
|
|
7 |
|
|||||||||||||||
|
1 |
x |
|
x |
|
|
|
|
|
|
|
x |
|
|
|
|
|
|
|
|
2 |
||||||||
|
|
|
/ |
// |
|
2x |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
2 |
|
2 |
|
|
|
|
|
|
3 |
|
|
|
4 |
|
|
|
|
|
|
|
|
|
|
||
|
x 0, i 1,3,4,5,6,7, |
|
x |
/ |
, x |
// |
0. |
|
|
|
|
|
|||||||||||||||||
|
|
2 |
2 |
|
|
|
|
|
|||||||||||||||||||||
|
|
i |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
2 |
|
, на яку не накладено
§ 1.3. Властивості розв’язків задач лінійного програмування.
де
Запишемо задачу (1.1)-(1.3) у матричному вигляді
|
|
L X C X max |
|
|
|
|
|
|||||
|
|
A X b |
|
|
|
|
|
|
|
|||
|
|
X 0 |
|
|
|
|
|
|
|
|
||
|
|
|
a |
a |
... |
a |
|
|
|
|
|
|
|
|
|
|
11 |
12 |
|
1n |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
b P |
, |
A |
a21 |
a22 |
... |
a2n |
C c |
,..., c |
|
|
||
|
|
|
|
|
, |
n |
||||||
0 |
|
|
... ... ... ... |
|
1 |
|
|
|||||
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
am 2 |
... |
|
|
|
|
|
|
|
|
|
am1 |
amn |
|
|
|
|
(1.6)
Нагадаємо означення опуклої множини.
Означення 1. Множина точок n-вимірного простору, яка містить разом із будь-якими двома точками А і В всі точки відрізка АВ , називається опуклою множиною.
Внутрішньою називається точка множини, для якої існує ε-окіл, що містить лише точки даної множини. Граничною називається точка, для якої існує ε-окіл, що містить як точки даної множини, так і ті, які не належать множині.
Означення 2. Граничні точки, які не лежать всередині відрізка, що з’єднує дві інші точки множини, називаються вершинами ( кутовими точками або крайніми точками ).
10
Якщо множина Z X 1 Y Q, 0X Y Q, 1,
Q0,
n-вимірного
1, |
або |
0 . |
|
простору є
в
опуклою і |
X |
загальному
Q, Y
Q , то
випадку
Теорема 1. |
Множина всіх планів задачі лінійного програмування (1.6) є опуклою. |
||||
Доведення. |
► Нехай X1 , X 2 - будь-які два плани задачі. Доведемо, що опукла комбінація |
||||
цих планів |
X X1 |
1 X 2 , 0 1 є також планом. |
Оскільки |
X1 , X 2 - плани, то |
|
AX1 b, AX 2 b . |
Тоді |
AX A X1 1 X 2 AX1 |
1 AX |
2 b 1 b b , |
|
тобто X задовольняє умову (1.6)2 . Крім того X 0, оскільки X1 0, X 2 0, 0 1. |
|||||
Отже, X – план задачі. ◄ |
|
|
|
||
Як бачимо, для будь-яких двох планів їх опукла комбінація також є планом. |
|||||
Теорема 2. |
Будь-який |
опорний план задачі лінійного |
програмування визначається |
вершиною опуклого многокутника.
Таким чином, пошук оптимального плану задачі лінійного програмування можна обмежити перевіркою вершин опуклої множини планів задачі.
Теорема 3. ( Критерій крайності точки опуклої множини ). Для того щоб точка
X x1 ,..., xn |
опуклої множини планів задачі лінійного програмування була |
|||
вершиною (крайньою точкою) необхідно і достатньо, щоб вектори |
P |
j , які |
||
|
||||
відповідають |
додатним компонентам |
x j , утворювали лінійно незалежну |
||
систему. |
|
|
|
|
Наслідок. Кожній вершині множини планів задачі лінійного програмування відповідає m
лінійно незалежних векторів із системи векторів P1 , P2 ,..., Pn .
§ 1.4. Графічний метод розв’язування задач лінійного програмування.
Графічний метод використовують для розв’язування задач лінійного програмування з двома (трьома) змінними.
Нехай треба знайти max (min) лінійної функції
11

1.
2.
L c1 x1 c2 x2 c0 |
(1.7) |
|||
ai1 x1 |
ai 2 x2 |
bi |
i 1, m |
(1.8) |
x1 , x2 |
0 . |
|
|
|
Розв’язок задачі шукаємо у такій послідовності:
На площині x1 , x2 будуємо многокутник розв’язків, тобто ті точки площини, що задовольняють умови (1.8).
Знаходимо оптимальну точку, яка розміщена у вершині многокутника. Для цього
використовуємо вектор нормалі
n
c |
, c |
|
|
L |
, |
L |
|
2 |
|
|
|
|
|||
1 |
|
|
x |
|
x |
|
|
|
|
|
|
|
2 |
||
|
|
|
1 |
|
|
, який є перпендикулярним
до лінії рівня, що задається рівнянням c0 c1 x1 |
c2 x2 const . ( Нагадаємо, що |
лінією рівня функції z z x1 , x2 називають лінію |
z x1 , x2 const . Якщо z x1 , x2 - |
лінійна функція, то лінії рівня є паралельні прямі). Лінію рівня ще називають гіпер-
прямою. Отже, проводимо через многокутник розв’язків гіпер-пряму,
перпендикулярну до вектора нормалі n . |
При паралельному перенесенні гіпер- |
|
прямої у напрямку у напрямку вектора |
n |
значення цільової функції зростає. |
Знаходимо вершину многокутника, в якій досягається найбільше значення функції
L (для знаходження точки мінімуму гіпер-пряму треба переміщувати у напрямку,
протилежному до |
n ). |
|
Лінії рівня (гіпер-прямі), що проходять через оптимальні |
||||
вершини многокутників розв’язків, називають опорними (оптимальними). |
|||||||
3. Обчислюємо |
оптимальні значення. Знаходимо |
координати точки |
максимуму |
||||
(мінімуму), |
отримані |
|
значення підставляємо у |
рівність (1.7) і |
обчислюємо |
||
Lmax Lmin . |
|
|
|
|
|
|
|
Приклад. Знайти максимальне і мінімальне значення функції |
|
||||||
|
L 10 3x1 2x2 |
|
|
||||
при обмеженнях |
|
|
|
|
|
||
|
2x |
3x |
2 |
18 |
|
|
|
|
|
1 |
|
|
|
|
|
|
2x |
x |
|
10 |
|
|
|
|
|
2 |
|
|
|||
|
1 |
|
|
|
|
x1 , x2 0
Побудуємо многокутник розв’язків (ACBO).
12

x2
|
|
n |
|
|
A |
|
|
|
|
C |
|
2 |
|
|
|
O |
|
B |
|
2 |
x1 |
||
|
|||
|
|
|
Рис.1.1. |
|
|
Будуємо вектор нормалі |
n 3;2 |
і гіпер-пряму |
3x1 2x2 10 0 . Переміщуючи |
гіпер-пряму в напрямку нормалі |
n до перетину з останньою вершиною многокутника, |
знаходимо, що максимум досягається в точці С(3;4), а мінімум – в точці О. Обчислюємо оптимальні значення:
L |
max |
L C 7; |
L |
min |
L O 10. |
|
|
|
|
|
|
||
Зауважимо, що при розв’язуванні задач лінійного програмування графічним |
||||||
методом, область допустимих планів може мати вигляд |
|
|||||
x2 |
|
|
|
|
x2 |
|
|
|
n |
|
|
A |
n |
|
|
|
|
|
|
B |
x1 |
x1 |
Рис.1.2 |
Рис.1.3 |
x2
x2 n
|
x1 |
x1 |
|
|
|
Рис.1.4. |
|
Рис.1.5. |
13

x2
x1
Рис.1.6.
З рис.1.2 бачимо, що задача має єдиний розв’язків (гіперпряма паралельна до сторони AB
зверху; рис.1.5 – задача несумісна; рис.1.6 –
допустимих значень складається з однієї точки).
розв’язок; рис.1.3 – задача має безліч
); рис.1.4 – цільова функція необмежена задача має єдиний розв’язок (область
§ 1.5. Симплексний метод розв’язування задач лінійного програмування .
Симплексний метод ( метод послідовного покращення плану ) є універсальним методом розв’язування задачі лінійного програмування, записаної у канонічній формі.
Суть методу полягає у послідовному переході від одного опорного плану до іншого так,
що значення лінійної форми весь час зростає (при умові, що задача має оптимальний розв’язок і всі опорні плани невироджені).
Розглянемо задачу лінійного програмування, записану в канонічній формі (1.1)-
(1.3). Спочатку приведемо систему обмежень (1.2) до одиничного базису і припустимо для визначеності, що цей базис складається з перших m стовпців. Тобто система обмежень
(1.2) матиме вигляд
x1 a1m 1 xm 1 ... |
a1n xn b1 |
||||||||||
|
|
a2 m 1 xm 1 |
a2 n xn b2 |
||||||||
x2 |
|||||||||||
.......... .......... .......... .......... ........ |
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
x |
m |
a |
m m 1 |
x |
m 1 |
... |
a |
m n |
x |
n |
b |
|
|
|
|
|
|
m |
x |
j |
0, |
|
|
j
1, n
.
14

Запишемо тепер задачу лінійного програмування у вигляді
де
|
|
|
|
|
|
n |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
L c j x j |
max |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(1.9) |
||||||
|
|
|
|
|
|
j 1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
P1 x1 P2 x2 |
.... Pn xn P0 . |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(1.10) |
||||||||||
|
|
|
x |
j |
0, |
j 1, n |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
0 |
|
|
|
0 |
|
|
|
|
|
1m 1 |
|
|
|
|
|
1n |
|
|
|
b |
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
a |
|
|
|
|
a |
|
|
|
|
1 |
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
0 |
|
|
|
|
1 |
|
|
|
|
0 |
|
|
|
a2 m 1 |
|
|
|
a2 n |
|
|
b2 |
|
|||||||
P |
|
0 |
|
P |
|
|
|
, |
, P |
|
|
|
, |
P |
|
|
a |
|
|
P |
|
|
a |
|
|
P |
|
|
|
|
|
|
, |
|
0 |
|
0 |
|
|
, |
|
|
, |
|
b . |
||||||||||||||||||
1 |
|
|
|
2 |
|
|
|
m |
|
|
|
m 1 |
|
|
3 m 1 |
|
n |
|
|
3 n |
|
0 |
|
3 |
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
... |
|
|
|
|
... |
|
|
|
|
... |
|
|
|
... |
|
|
|
|
... |
|
|
|
|
... |
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
|
|
|
|
|
0 |
|
|
|
|
1 |
|
|
|
am m 1 |
|
|
|
am n |
|
|
bm |
Припустимо, що всі bi 0 |
i 1, m . Поклавши вільні невідомі xm 1 |
,..., xn рівними нулю, із |
||||||||||
співвідношення |
(1.10) |
знаходимо, |
що базисний |
опорний |
план |
має |
вигляд |
|||||
X |
0 |
b1 ,b2 ,..., bm |
,0,0,...,0 |
і значення |
лінійної форми L для опорного плану |
дорівнює |
||||||
|
||||||||||||
0 |
|
L X |
0 |
c1b1 |
... cmbm . |
|
|
|
|
|
||
L |
|
|
|
|
|
|
|
|||||
|
|
1. Побудова опорних планів задачі лінійного програмування. |
|
|
|
|||||||
Нехай |
X x1 , x2 ,..., xm ,0,...,0 , x j 0 |
j 1, m - деякий |
невироджений |
опорний план |
задачі. Тоді виконується співвідношення (1.10). Невиродженому опорному планові
відповідає система лінійно незалежних |
векторів P1 ,..., Pm , |
які |
утворюють базис в m- |
|||||||||||||||||||||
вимірному просторі. Тому кожен вектор |
Pj |
із системи векторів |
P1 ,..., Pn можна єдиним |
|||||||||||||||||||||
чином розкласти за векторами базису, наприклад, |
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
Pj x1 j P1 x2 j P2 |
... xmj Pm |
|
j |
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
1, n |
|
|
|
|
|
(1.11) |
|
||||||||||||||||
Припустимо, що для деякого вектора, наприклад |
Pk ,який не належить до базису, хоча б |
|||||||||||||||||||||||
один із коефіцієнтів xik у розкладі Pk |
x1k P1 |
x2k P2 ... xmk Pm є додатним. Помножимо |
||||||||||||||||||||||
обидві частини останньої рівності на деяке число θ і віднімемо від (1.10): |
|
|
|
|
||||||||||||||||||||
x1 x1k P1 |
x2 |
x2k P2 |
... xm xmk Pm Pk |
P0 . |
|
|
|
|
||||||||||||||||
Це означає, що вектор |
X / |
x x |
, x |
2 |
x |
2k |
,..., x |
m |
x |
mk |
, 0,..., 0, , 0,..., 0 у випадку |
|||||||||||||
|
|
|
|
1 |
1k |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
невід’ємності своїх компонент буде також планом. Очевидно, що компоненти вектора |
X |
/ |
||||||||||||||||||||||
|
||||||||||||||||||||||||
будуть невід’ємними при умові, що 0 і |
xi xik |
0 для всіх i |
, для яких |
xik |
0 . |
|||||||||||||||||||
Звідси 0 |
xi |
. Тому при будь-якому θ, |
що задовольняє умову |
0 min |
xi |
|
, де |
|||||||||||||||||
|
xik |
|||||||||||||||||||||||
|
xik |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
i |
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
мінімум береться по тих i, для яких |
x |
ik |
0 , вектор |
|
X / буде новим планом. Оскільки |
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
15

новий план повинен бути опорним, то θ треба вибрати так, щоб план |
X |
/ |
мав не більше, |
|
ніж m додатних компонент. Якщо прийняти 0 |
min |
x |
i |
, де мінімум береться по тих i, |
|||||||||||||||||||||
|
|
||||||||||||||||||||||||
x |
|
|
|||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
i |
|
ik |
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
для яких |
xik |
0 , то принаймні одна з перших m компонент вектора |
X |
/ |
буде дорівнювати |
||||||||||||||||||||
|
|||||||||||||||||||||||||
нулю. Нехай мінімум досягається при i l , тобто |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
min |
x |
|
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
i |
|
|
l |
. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
0 |
i |
x |
|
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
lk |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
ik |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
Тоді |
при |
|
0 |
|
|
|
|
новий |
план |
|
|
|
|
|
X |
/ |
матиме |
вигляд |
|||||||
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
X |
/ |
/ |
/ |
|
/ |
/ |
|
/ |
, 0,..., 0, 0 , 0,...,0 , де |
/ |
xi |
0 xik |
i 1,..., l 1,l 1,..., m . |
||||||||||||
|
x1 , x2 ,..., xl 1 , 0, xl 1 |
,..., xm |
xi |
||||||||||||||||||||||
Перехід до нового опорного плану здійснено шляхом введення в базис вектора Pk |
замість |
||||||||||||||||||||||||
Pl |
. Аналогічно можна перейти до наступного опорного плану. |
|
|
|
|
||||||||||||||||||||
Зауваження 1. Ми припускали, що серед компонент |
|
xik |
у співвідношенні (1.11) є хоча б |
один додатний. Якщо ця умова не виконується , то лінійна форма на множині планів є необмеженою.
Зауваження 2. Якщо оптимальний план вироджений, то можливо, що ми не зможемо при обраному векторі Pk , який вводимо в базис, перейти до нового опорного плану. У цьому випадку треба спробувати ввести в новий базис інший вектор або змінити базис, що відповідає X.
2. Теоретичні основи симплекс-методу.
Задача лінійного програмування має скінчене число опорних планів і після скінченого
числа ітерацій процес послідовного покращення розв’язку повинен обірватися. Це означатиме, що знайдено найкращий опорний розв’язок, при якому цільова функція
досягає максимуму. Проте, якщо функція |
L |
необмежена в області допустимих розв’язків, |
то отриманий опорний розв’язок є лише найкращим серед опорних, але не оптимальним
L . Виникає питання, чи можна про це довідатися в процесі виконання послідовних ітерацій. Відповідь на ці запитання дають теореми, які є основними для симплексного
методу.
Покладемо
m |
|
|
|
j |
|
|
|
|
|
|
z j ci xij , |
j z j |
c j |
1, n |
|
|
|
|
|||
i 1 |
|
|
|
|
|
|
|
|
|
|
( xij - координати розкладу вектора |
Pj |
через вектори базису P1 ,..., Pm ). Оскільки базис |
||||||||
|
|
|
|
|
m |
|
j |
|
. |
|
утворюють одиничні вектори, то xij aij , |
|
j ci aij |
c j |
1, n |
i 1
16

Теорема 1. (Ознака оптимальності опорного плану).
Якщо
|
j |
0 |
|
|
j
1,
n
, то опорний план є оптимальним.
Теорема 2. (Ознака необмеженості лінійної форми на множині планів).
Якщо
|
j |
0 |
|
|
для деякого j k і всі
a |
ik |
|
0
, то для заданої задачі цільова
функція
L
необмежена зверху.
Теорема 3. (Ознака переходу до нового опорного плану).
Якщо j |
0 |
для деякого j k , але серед коефіцієнтів aik |
є |
додатний, |
то |
можна перейти до нового опорного плану |
X |
L X / L X , якщо опорний план невироджений.
Результати послідовних ітерацій симплексних перетворень зручно вигляді таблиць, які називаються симплексними таблицями.
хоча б один
/ , для якого
записувати у
|
|
|
|
с1 |
с2 |
... |
сm |
cm+1 |
… |
|
ck |
… |
cn |
|
№ |
Б |
Сб |
P0 |
|
|
|
|
|
|
|
|
|
|
|
P1 |
P2 |
… |
Pm |
Pm+1 |
… |
|
Pk |
… |
Pn |
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
P1 |
с1 |
b1 |
1 |
0 |
… |
0 |
a1m+1 |
… |
|
a1k |
… |
a1n |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
P2 |
с2 |
b2 |
0 |
1 |
… |
0 |
a2m+1 |
… |
|
a2k |
… |
a2n |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
… |
… |
… |
... |
… |
… |
… |
… |
… |
… |
|
… |
… |
… |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
r |
Pr |
cr |
br |
0 |
0 |
… |
0 |
ar m+1 |
… |
|
ar k |
|
… |
ar n |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
|
… |
… |
… |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
m |
Pm |
cm |
bm |
0 |
0 |
… |
1 |
amm+1 |
… |
|
amk |
… |
amn |
|
m+1 |
|
|
L0 |
0 |
0 |
… |
0 |
m+1 |
… |
|
k |
… |
n |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
В перших m рядках симплекс-таблиці розміщені вектори базису ( стовпець Б ),
відповідні компоненти лінійної |
форми ( |
стовпець |
Сб ), компоненти |
опорного |
плану |
||||
|
|
|
|
|
Pj j |
|
через |
|
|
(стовпець |
Р0), коефіцієнти |
aij |
розкладів |
векторів |
1, n |
вектори |
базису |
||
(стовпці |
P1 ,..., Pn ). В останньому рядку симплекс-таблиці записуємо значення лінійної |
форми, що відповідає розглянутому опорному планові і різниці |
|
j |
j 1, n |
. |
|
|
Якщо після побудови першої симплекс-таблиці виявилось, що виконуються умови першої або другої теореми, то розв’язування задачі припиняється. Якщо виконуються
17

умови третьої теореми, то будуємо нову симплекс-таблицю і переходимо до нового опорного плану.
Для переходу до нового опорного плану необхідно один вектор вивести з базису і на його місце ввести новий, який не належав до базису. Цей новий вектор визначається
найбільшим по модулю від’ємним значенням |
j |
. Якщо таких j |
декілька, то вибираємо |
|||||||
те, для якого c j |
максимальне. Якщо max j |
k |
, то вводимо в базис вектор Pk . Вектор, |
|||||||
|
|
j |
|
|
|
|
|
|
|
|
який виводиться з базису, |
визначається величиною min |
bi |
|
br |
, |
де мінімум береться по |
||||
aik |
|
|||||||||
|
|
|
|
|
i |
|
ark |
|
||
|
|
|
|
|
|
|
|
|
|
|
тих i , для яких |
aik 0 . |
Стовпець з номером |
|
k , рядок з номером r і елемент ark |
називаються відповідно ключовим (або розв’язуючим) стовпцем, рядком та елементом.
Опорний план, що відповідає новому базисові, матиме координати, які визначаються за формулами
|
|
|
|
|
|
b |
, |
|
|
i r |
|
|
|
|
|
|
|
|
i |
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
b |
/ |
|
|
|
|
a |
rk |
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|||
i |
|
b a |
|
b a |
|
|
|
||||
|
|
|
|
|
|
, |
i r |
||||
|
|
|
i |
rk |
|
|
r |
ik |
|||
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
a |
rk |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
a |
ij |
, |
|
|
|
i r |
||
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
||||
/ |
|
|
|
|
|
a |
rk |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
aij |
a |
|
a |
|
a |
|
a |
|
|
|
||||
|
|
ij |
rk |
rj |
ik |
, |
i r |
|||||||
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
a |
rk |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Нове значення цільової функції обчислюють за формулою
|
|
|
m |
|
|
/ |
|
|
c b |
/ |
|
L |
0 |
|
|||
|
|
i |
i |
||
|
|
|
i 1 |
|
|
.
При розв’язуванні вихідної задачі припускалось, що всі опорні плани не вироджені
( bi 0 ). Якщо серед опорних планів задачі лінійного програмування є вироджені, то при переході від одного виродженого плану до іншого може статися так, що опорний план не зміниться, а зміниться лише базис, що йому відповідає. Такий перехід може відбутися декілька разів. Якщо при цьому ми повертаємося до базису, що вже мав місце, то в алгоритмі симплексного методу утворюється цикл (відбувається зациклення). У цьому випадку доводиться використовувати спеціальні додаткові прийоми виходу з циклу. В
реальних умовах таких задач майже не зустрічається.
Приклад. Знайти найбільше значення лінійної функції L 3x1 2x2 на множині невід’ємних розв’язків системи нерівностей
18

2x |
3x |
2 |
12 |
|||
|
|
1 |
|
|
|
|
|
2x |
|
x |
|
4 |
|
|
|
|
2 |
|||
|
1 |
|
|
|||
x |
i |
0, i 1,2 |
||||
|
|
|
|
|
|
Зведемо задачу до канонічного вигляду
L 3x |
2x |
2 |
|
max |
|||||||||
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
2x |
3x |
2 |
x |
3 |
|
12 |
|||||||
|
|
1 |
|
|
|
|
|
|
|
|
|
||
2x |
x |
|
|
|
|
|
|
x |
|
4 |
|||
|
2 |
|
|
|
|
|
4 |
||||||
|
1 |
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
||||||
xi |
0, |
i 1,4 |
|
|
|
Оскільки ранг матриці системи обмежень дорівнює 2, то матимемо два базисні вектори. За
базисні змінні приймемо |
x |
3 |
, x |
4 |
( |
P , P |
базисні вектори ), а змінні |
x |
, x |
2 |
є вільними. |
||||||||||
|
|
|
|
|
|
|
3 |
4 |
|
|
|
|
|
|
1 |
|
|
|
|||
Запишемо першу симплекс-таблицю: |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
№ |
|
|
Сб |
|
|
Р0 |
|
3 |
|
2 |
0 |
|
0 |
|
|
|
|
|||
|
Б |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
Р1 |
Р2 |
Р3 |
Р4 |
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
Р3 |
|
0 |
|
|
|
12 |
|
2 |
|
3 |
1 |
|
0 |
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
Р4 |
|
0 |
|
|
|
4 |
|
|
2 |
|
-1 |
0 |
|
1 |
|
|
|
|
|
|
3 |
|
|
|
|
|
|
|
0 |
|
-3 |
-2 |
0 |
|
0 |
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
L0
L
Початковий опорний план має вигляд
X 0 0 . Обчислимо значення j
X |
0 |
|
(0, 0,12, 4)
. Значення лінійної форми
1 0 2 0 2 3 3, 2 0 3 0 ( 1) 2 2, 3 4 0 . |
|
|
Згідно з теоремою 3 можна перейти до нового опорного плану ( |
j 0 , а серед |
|
коефіцієнтів у відповідному стовпці є додатні ). Оскільки max j 1 |
3 , то в базис |
|
|
j |
|
необхідно ввести вектор P1 . Визначимо, який вектор потрібно вивести з базису. Складемо |
||
відношення вільних членів ( чисел стовпчика |
P0 ) до відповідних |
додатних чисел |
ключового стовпчика ( P1 ): 12/2=6, 4/2=2 і вибираємо з них найменше. Отже, елемент 2, що стоїть на перетині стовпця P1 і рядка P4 , буде ключовим, а з базису необхідно вивести вектор P4 . Переходимо до наступної ітерації.
Кожен елемент ключового рядка (2), починаючи зі стовпчика P0 , ділимо на ключовий елемент 2 і результат записуємо в нову таблицю у другий рядок. До елементів першого рядка старої таблиці, починаючи зі стовпчика P0 , додаємо відповідні елементи
19