1. ЗАДАЧІ ЛІНІЙНОГО ПРОГРАМУВАННЯ
2.1. Загальна постановка задачі лінійного програмування
Задачею лінійного програмування (ЗЛП) є задача знаходження найбільшого (чи
найменшого) значення лінійної цільової функції
(2.1)
за умови,що змінні задовольняютьсистемулінійних обмежень,щоможе мати
обмеженнями як рівності, так i нерівності:
(2.2)
(2.3)
Матриця розмірності називається матрицею умов задачі, вектор-
стовпець
(2.4)
називається вектором вільних членів (іноді вектором обмежень задачі); вектор-рядок
─ вектором коефіцієнтів лінійної форми; вектор-стовпець
─ вектором невідомих (змінних).
Для зручності вектори-стовпці надалі записуватимемо в рядок без використання символу Т
для позначення операції транспонування (більш строго треба писати):
Визначення. Вектор називаєтьсядопустимим розв'язком(чи планом) ЗЛП,
якщо його компоненти задовольняють усі обмеження задачі (2.2)─(2.3).
Визначення. Оптимальним розв'язком (чи планом) називається такий допустимий
розв'язок який надає цільовій функції (2.1) найбільшого (найменшого)
значення.
Розв'язати задачу лінійного програмування означає знайти її оптимальний план або
встановити, що задача не має розв'язку.
Існують різні форми запису ЗЛП: векторна, матрична та за допомогою знаків
підсумовування.
nn xcxcxcxF ...)( 2211
n
xxx ,...,, 21
;,...,1,...
;,...,1,...
;,...,2,1,...
322211
212211
12211
mmibxaxaxa
mmibxaxaxa
mibxaxaxa
ininii
ininii
ininii
.,...,2,1;0 njxj
)( ijaA )(mn
m
b
b
b
.
.
.
1
),...,,( 21 n
cccC
n
x
x
X
.
.
.
1
.),...,,( 21
T
n
xxxX
),...,( 00
1 n
xxX
),,...,( **
1
*
n
xxX
2. Векторна форма запису задачі лінійного програмування
Користуючись позначеннями векторів , і
як скалярним добутком та векторами
. . . ,
що складаються відповідно з коефіцієнтів та вільних членів, ЗЛП можна записати у векторній
формі
(2.4)
при обмеженнях (2.5)
(2.6)
(для спрощення запису тут розглянуто тільки єдиний тип обмеження ─ точні рівності).
Матрична форма запису задачі лінійного програмування
Використовуючирозглянуті позначеннявекторіві ─ матриці коефіцієнтів системи
обмежень, ЗЛП можна записати в матричній формі
(2.7)
при обмеженнях
(2.8)
(2.9)
Запис задачі лінійного програмування за допомогою знаків додавання
Моделі задач лінійного програмування в загальному аналітичному вигляді зручніше
записувати не в розгорнутій, а в стислій формі за допомогою знаків додавання :
(2.10)
при обмеженнях: ; (2.11)
. (2.12)
Канонічна форма задачі лінійного програмування
Загальна форма задачі лінійногопрограмуванняохоплює різні можливі варіанти обмежень:
або тільки рівності, або тільки нерівності, або поєднання рівностей і нерівностей.
Тому для спрощення побудови і застосування єдиного методу розв'язання задачу, як
правило, зводять до канонічної форми.
За канонічної форми задачі лінійного програмування:
значення цільової функції треба максимізувати;
усі обмеження задачі мають вигляд строгих рівнянь;
усі змінні задачі повинні бути невід’ємними.
),...,( 1 n
ccC ),...,( 1 n
xxX CX
,
.
.
.
1
11
1
m
a
a
A ,
.
.
.
2
12
2
m
a
a
A ,
.
.
.
1
mn
n
n
a
a
A ,
.
.
.
1
0
m
b
b
A
extrCXxF )(
,... 02211 AxAxAxA nn
0jx ),...,2,1( nj
)( ijaA
extrCXxF )(
;0
AAX
.0X
n
j
jj extrxcxF
1
)(
n
j
ijij bxa
1
),...,2,1( mi
0jx ),...,2,1( nj
3. Зауваження. Перша вимога часто має умовний характер. У багатьох випадках замість
максимізаціїрозглядаєтьсямінімізаціяцільовоїфункції і алгоритм розв’язання задачі реалізується
щодо вимоги мінімізації.
Будь-яка задача лінійного програмування може бути зведена до канонічної форми. Треба
пам’ятати три основні способи переходу від загальної форми ЗЛП до канонічної.
1. Перехід від мінімізації до максимізації здійснюється заміною цільової функції на
протилежну, тобто взяту з протилежним знаком.
Дійсно,цільові функції
(2.13)
і (2.14)
є еквівалентними.
2. Перехід від нерівностей до рівностей досягається введенням у кожну ліву частину
нерівностей додаткової невід’ємної змінної із певним знаком.
Так, у лівучастинунерівностейвиду
(2.15)
вводиться зі знаком “плюс”:
, (2.16)
а в лівучастинунерівностей
(2.17)
─ зі знаком„мінус”
(2.18)
3. Перехід від змінних, на знак яких обмежень не накладено, до невід’ємних змінних
здійснюється за допомогою заміни кожної такої змінної , різницею двох нових невід’ємних
змінних і
(2.19)
Приклад. Звестидо канонічноїформитаку задачу лінійногопрограмування:
Перехід до канонічної форми ЗЛП будемо здійснювати трьома етапами.
1. Перейдемо до задачі максимізації:
2. Обмеження задачі приведемо до вигляду рівностей. У ліву частину першої нерівності
виду введемо додаткову невід’ємну змінну зі знаком „плюс”, а в ліву частину другої
нерівності виду ─ додаткову змінну зі знаком „мінус”.
min...)( 2211 nn xcxcxcxF
max...)( 2211 nn xcxcxcxf
1n
x
ininii bxaxaxa ...2211
1n
x
112211 ... bxxaxaxa nninii
,01 n
x
ininii bxaxaxa ...2211
,... 12211 inninii bxxaxaxa
.01 n
x
jx
jx jx
,jjj xxx ,0jx .0jx
;3342
;52
min,2)(
321
321
321
xxx
xxx
xxxxF
.0,0 21 xx
).()( xfxF
4x
5x
4. 3. Змінну , на знак якої обмежень не накладено, замінимо різницею двох нових
невід’ємних змінних і
і робимо відповідну заміну в цільовій функції і в усіх обмеженнях задачі. Отже, остаточно маємо
таку канонічну форму ЗЛП:
Ця задача має два основні обмеження(обмеженняневід’ємності зміннихне враховуються) і
шість змінних (з урахуванням нових змінних ─ додаткових змінних ). Тому
розмірність одержаної задачі дорівнює 2∙6.
2.2. Основні властивості і геометрична інтерпретація
задачі лінійного програмування
Геометрична інтерпретація задач лінійного програмування дає можливість
зрозуміти основні властивості цих задач і визначити підхід до їх розв’язання.
Розглянемо геометричну інтерпретацію ЗЛП для випадку, коли =2, тобто для двох
змінних: треба знайти значення змінних і , при яких функція
(2.20)
набуває максимального значення при обмеженнях
(2.21)
(2.22)
Кожна з нерівностей (2.21) системи обмежень задачі геометрично визначає
півплощину відповідно з граничною прямою . Умови
невід’ємності визначають півплощини з граничними прямими Якщо
система нерівностей (2.21) і (2.22) сумісна, півплощини певним чином перетинаються і
утворюють загальну область ABCDE, яка є опуклою множиною (рис.2.1).
1
C
C
А
В
С
D
F
E
max
X
2
X
0
Рис. 2.1
.0,0,0,0
;3342
;52
5421
5321
4321
xxxx
xxxx
xxxx
3
x
3
x 3
x
,333 xxx ,03 x 03 x
.0,0,,0,0,0
;33342
;52
max,2)(
543321
53321
43321
3321
xxxxxx
xxxxx
xxxxx
xxxxxf
33 , xx 54 , xx
n
1
x 2
x
2211 xcxcF
iii bxaxa 2211 ),...,2,1( mi
.0,0 21 xx
iii bxaxa 2211 ),...,1( mi
.0,0 21 xx
5. Ця область називається областю допустимих значень. Кожна точка цієї області є
допустимим розв’язком задачі. Отже, область допустимих розв’язків задачі (2.20)─(2.22)
є опуклою множиною, яка називається багатокутником розв’язків. Сторони цього
багатокутника утворюються прямими, рівняння яких отримують із початкової системи
обмежень заміною знаків нерівностей на знаки точних рівностей.
Отже, потрібно знайти таку точку багатокутника розв’язків, в якій цільова функція
(2.20) набуває максимального значення. Ця точка існує тоді, коли багатокутник
розв’язків не пустий і на ньому цільова функція обмежена зверху. За зазначених умов
цільова функція набуває максимального значення в одній з вершин багатокутника
розв’язків.
Точку екстремуму, тобто точку, в якій цільова функція задачі досягає максимуму або
мінімуму, визначимо за допомогою градієнта функції.
Градієнт – це вектор, який вказує напрямок зростання значень функції і визначається
Вектор напрямку проводять від початку координат через точку з
координатами , де ─ відповідні коефіцієнти при невідомих і в
цільовій функції. До вектора напрямку перпендикулярно будуємо лінію, що називається
лінією рівня і визначається (де – деяка стала величина).
Пересуваючи лінію рівня уздовж градієнта ( а для задачі мінімізації ─ у
напрямку антиградієнта, тобто в протилежному напрямку) до крайнього положення щодо
області допустимих розв’язків, знайдемо точку. Ця крайня точка, спільна з областю
допустимих розв’язків, і є точкою екстремуму, тобто оптимальним планом задачі.
При , коли три невідомі кожна нерівність системи обмежень ЗЛП
являє собою півпростір тривимірного простору (рис. 2.2).
1x
2x
3x Рис. 2.2
Ці півплощини як опуклі множини, перетинаючись, утворюють у тривимірному
просторі загальну частину, яка називається багатогранником розв’язків.
При >3, коли є невідомих, кожна нерівність системи обмежень ЗЛП
визначає півпростір -вимірного простору з граничною гіперплощиною.
Якщо система сумісна, то за аналогією вона утворює загальну частину -вимірного
простору, яка називається багатогранником розв’язків.
F
).,( 21 ccNgradF
),( 21 cc 21 ,cc 1
x 2
x
L hxcxc 2211 h
L
3n ,,, 321 xxx
n nxxx ,...,, 21
n
n
6. Отже, геометрична інтерпретація ЗЛП являє собою знаходження такої точки
багатогранника розв’язків, у якій цільова функція задачі досягає свого екстремуму.
ЗЛП має сенс лише тоді, коли її система обмежень не суперечлива. У процесі
розв’язання ЗЛП можливі такі випадки:
1. Область допустимих розв’язків замкнута. Цільова функція набуває
максимального значення тільки в одній точці D (мінімального – в точці А) (рис. 2.3).
C
А
В
С
D
F
E
max
C
0
Рис. 2.3
2X
1X
2. Цільова функція набуває максимального значення в будь-якій точці відрізка CD
(рис. 2.4).
1
X
C
0
2
X
A
B
C
D
F
E
Рис 2.4
3. Цільова функція не обмежена зверху на множині допустимих розв’язків (рис.
2.5). Існує тільки мінімум функції.
1
X
C
0
2
X
A
B
E
Рис. 2.5
4. Цільова функція не обмежена знизу на множині її планів. Існує тільки
максимум функції (рис. 2.6).
7. 1
2
X
C
0
X
Рис. 2.6
A
B
C
5. Цільова функція не обмежена зверху на множині її планів, але існує і мінімум, і
максимум. Це залежить від градієнта функції (рис. 2.7).
1
X
C
0
2
X
Рис. 2.7
A
B C
6. Система обмежень несумісна (рис. 2.8). Задача не має розв’язків.
1
X
C
0
2
X
Рис. 2.8
Отже, геометрична інтерпретація дає змогу зрозуміти основні властивості ЗЛП, які
визначаються теоремами 1–6, наведеними без доведення.
Теорема 1. Множина всіх планів задачі лінійного програмування опукла (всі точки
багатогранника ABCDFE на рис. 2.9)
2
1Рис. 2.9
А
В
С
D
F
E
X
X
0
8. Визначення 1. Опорним називається план ЗЛП, що є координатами вершини
багатогранника планів задачі (ABCDFE на рис. 2.10).
1
X0
2
X
B
C
D
F
E
Рис. 2.10
A
A
Теорема 2. Якщо відомо, що система векторів у розкладі
умов задачі лінійно-незалежна і така, що
(2.23)
де усі то точка є кутовою точкою багатогранника
розв’язків.
З цієї теореми випливає інше визначення опорного плану ЗЛП.
Визначення 2. Опорним називається такий допустимий план ЗЛП, всім додатним
компонентам якого відповідає система лінійно –незалежних векторів умов.
Таким чином, якщо, наприклад, опорний план має тільки
перших додатних компонент, тобто:
при і при
тоді вектори повинні бути лінійно-незалежними.
Теорема 3 (про існування опорного плану). Якщо множина допустимих планів ЗЛП
не пуста, то вона містить принаймні один опорний план.
Нагадаємо, що ранг системи обмежень визначається максимально можливою
кількістю лінійно-незалежних векторів системи. Будемо вважати, що він дорівнює .
Визначення 3. Опорний план, що містить рівно додатних компонент,
називається не виродженим.
Вершина багатогранника допустимих розв'язків, що відповідає не виродженому
опорному планові, утворюється перетином гіперплощин, з яких задаються
рівняннями основної системи обмежень і рівняннями типу Кількість
ребер, прямих, що проходять повз таку вершину, дорівнює бо кожне ребро
утворюється перетином гіперплощин.
Визначення 4. Опорний план називається виродженим, якщо він містить менш як
додатних компонент.
Теорема 4 (про існування оптимального плану). Якщо ЗЛП має хоча б один план і
шуканий екстремум лінійної форми обмежений на множині планів, то задача лінійного
програмування має хоча б один оптимальний план.
Окремим випадком теореми 4 є теорема 5.
)(,...,, 21 nmAAA n
,...22110 mm xAxAxAA
,0jx )0,...,0,,...,,( 21 m
xxxX
),...,,( 21 n
xxxX m
0jx mj ,...,1 0jx ,,...,1 nmj
m
AA ,...,1
m
m
n m
mnk .0jx
,1
ncn
n
1n
m
9. Теорема 5. Цільова функція задачі лінійного програмування досягає свого
екстремального значення в крайній точці опуклого обмеженого багатогранника своїх
планів (див. рис. 2.3).
Теорема 6. Якщо оптимум цільової функції ЗЛП досягається в кількох вершинах
багатогранника планів задачі, то цього самого значення він набуває і в кожній точці, яка є
опуклою комбінацією цих крайніх точок (див. рис. 2.4).
Нагадаємо, що опуклою комбінацією точок є вираз
(2.24)
Отже, якщо цільова функція задачі лінійного програмування обмежена на
багатограннику розв’язків, то можна зробити такий висновок:
1. Існує така кутова точка багатогранника розв’язків, в якій цільова функція
досягає свого екстремуму (оптимуму).
2. Кожний опорний план ЗЛП відповідає кутовій точці багатогранника розв’язків.
Тому для розв’язання ЗЛП необхідно досліджувати тільки кутові точки багатогранника
розв’язків, тобто тільки опорні плани.
3. Екстремум цільової функції ЗЛП (якщо він існує) завжди є абсолютним і
досягається хоча б в одній точці багатогранника.
Розглянуті теореми дають спосіб знаходження оптимального плану ЗЛП за
скінченну кількість кроків. Справді, оскільки кількість вершин опуклого багатогранника
планів задачі завжди скінченне, то достатньо було б знайти всі опорні плани, обчислити
значення цільової функції при кожному з них і, нарешті, порівнянням знайти її
екстремальне значення. Але кількість опорних планів у реальних задачах може бути дуже
велика (її верхня межа визначається як ), що робить неможливим здійснення повного
перебору опорних планів. Проте сама ідея повного перебору і порівняння опорних планів
покладена в основу симплекс-методу розв'язування задач лінійного програмування.
Графічний метод розв’язаннязадачлінійногопрограмування
В основі цього методу лежить геометрична інтерпретація ЗЛП і використовується
він в основному для наочного розв’язування оптимізаційних задач. Розв’язок задачі
лінійного програмування (2.20) – (2.22) графічним методом знаходять поетапно:
1. Будують прямі, рівняння яких одержують заміною в обмеженнях знаків
нерівностей на знаки точних рівностей.
2. Знаходять півплощини, що визначаються кожним з обмежень задачі.
3. Знаходять область допустимих значень, тобто багатокутник розв’язків.
4. Будують градієнт функції .
5. Будують лінію рівня , яка проходить через багатокутник розв’язків,
перпендикулярно до вектору .
6. Переміщують лінію рівня у напрямку градієнта (для задачі на
мінімум – в напрямку антиградієнта), знаходять точку (точки) в якій (их) цільова функція
досягає свого екстремуму, або встановлюють необмеженість функції.
7. Визначають координати цієї точки(точок) і обчислюють значення цільової
функції.
k
xx ,...,1
kk xaxaxaX ...2211
k
j
jj aa
1
).1,0(
m
n
C
),( 21 ccC
L
),( 21 ccC
L ),( 21 ccC
10. Приклад. Розв’язати графічним методом задачу лінійного програмування
при обмеженнях:
Для визначення області допустимих значень системи обмежень розглянемо кожну з
нерівностей окремо. Нерівність перша: . Її областю розв’язання є одна з
півплощин,наякі пряма поділяє всю площину. Побудуємо її і позначимо цифрою
1 (рис. 2.11).
0
A
B
C
D
1
2 3
L
N
1X
2X
Рис. 2.11
Підставимо, наприклад, координати точки 0 (0.0.) в нерівність і
отримаємо 0 4, тобто точка 0(0.0) задовольняє цю нерівність і належить її області
розв’язання. Отже, область розв’язання першої нерівності є півплощина, яка містить
початок координат. Відметемо її стрілками.
Розглянемо другу нерівність: .
Побудуємо пряму і позначимо її цифрою 2. Координати початку
координат також задовольняють, тому областю розв’язання другої нерівності є
півплощина, яка містить початок координат. Відметемо її стрілками.
Аналогічно визначимо півплощину третьої нерівності: і позначимо її
цифрою 3.
Обмеження відсікають першу чверть системи координат.
Перетин отриманих півплощин і визначає багатогранник розв’язань. Позначимо його
ОАВСD. Кожна точка цього багатогранника є допустимою точкою, оскільки задовольняє
систему обмежень задачі.
Далі потрібно серед множини допустимих точок багатогранника ОАВСD знайти таку
точку, в якій цільова функція досягає максимуму. Щоб знайти таку точку, побудуємо
max2 21 xxf
.0;0
;4
;42
;425
21
21
21
21
xx
xx
xx
xx
425 21 xx
425 21 xx
425 21 xx
42 21 xx
42 21 xx
421 xx
0;0 21 xx
f
11. вектор градієнт (1; 2) і перпендикулярно до нього ─ лінію рівня .
Пересуваючи лінію рівня уздовж градієнта , знайдемо спільну крайню точку. Це
буде або точка В, або точка С. Визначимо координати цих точок.
Положення вершини В визначається перетином прямої 2 з прямою 3.
Розв’язавши систему
отримаємо В
Положення вершини С визначається перетином прямих 1 і 3.
Розв’язавши систему
отримаємо С .
Обчислимо
В С
Отже,
Оптимальний план
);(
21 dx
df
dx
df
C L
L C
,4
;42
21
21
xx
xx
;
3
1
1( ).
3
2
2
,4
;425
21
21
xx
xx
;
7
5
1( ).
7
2
2
(f ;6,6
3
20
3
2
22
3
1
1) (f .3,6
7
44
7
2
22
7
5
2)
.6,6max f
;
3
1
1*
X .
3
2
2