ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 19.03.2024
Просмотров: 87
Скачиваний: 0
Тема 2 Загальна задача лінійного програмування
У загальному вигляді розв’язання задачі математичного програмування майже неможливе. Задачі лінійного програмування вивчені досконало. Це пояснюється тим, що більшість реальних економічних моделей зводиться до задачі лінійного програмування, внаслідок чого і методи розв’язку задач лінійного програмування найбільш розвинені.
Загальною задачею лінійного програмування є задача знаходження максимального (мінімального) значення функції
|
n |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
z Cj X j , |
(z C0 |
C1x1 |
C2 x2 ... Cnxn ) |
|
|
|||||||||||||||
|
j 1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
за умов функціональних обмежень: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
a |
|
x |
a |
|
x |
2 |
... a |
|
x |
n |
b , |
|
||||
|
|
|
|
11 |
1 |
12 |
|
|
1n |
|
|
1 |
|
|||||||
|
|
|
|
|
|
|
a22 x2 |
... a2n xn |
b2 , |
|
||||||||||
n |
bi ,i 1, 2, 3, ..., k; |
a21x1 |
||||||||||||||||||
aij x j |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; |
||
j 1 |
|
|
|
..............................................., |
|
|||||||||||||||
|
|
|
|
|
x |
a |
|
|
x |
|
... a |
|
|
x |
|
b |
||||
|
|
|
|
a |
|
k 2 |
2 |
kn |
n |
|
||||||||||
|
|
|
|
|
k1 1 |
|
|
|
|
|
|
k |
|
16 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Дослідження операцій |
|
|
n |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
aij x j |
|
bi , |
|
i k 1, |
k 2, |
..., |
|
m; |
|
|
||||||||||||
j 1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
a |
k 1,1 |
x a |
k 1,2 |
x |
2 |
... |
a |
k 1,n |
x |
n |
|
b |
, |
|
|||||||
|
|
|
1 |
|
|
|
|
|
|
|
k 1 |
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
ak 2,n xn |
bk 2 |
, |
|||||||||
ak 2,1 x1 ak 2,2 x2 |
||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
, |
|
.......... |
|
|
.......... |
|
|
.......... |
|
|
|
.......... |
|
|
|
.......... |
|
|
|
|
......... |
|
, |
|
|
a |
x a |
m |
,2 |
x |
2 |
... |
a |
m,n |
x |
n |
b |
m |
|
|
|||||||
|
|
m,1 1 |
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
нефункціональних обмежень: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
X j 0, |
|
j 1, |
2, 3, |
|
..., |
|
|
n; |
|
|
де aij; bi; Cj – задані постійні величини, k m.
Цільову функцію можливо оптимізувати на “max” або на “min” – це не є принципово, бо у точці Х* функція Z = f (x*) – досягає мінімуму, а функція Z = –f (x*) – досягає максимуму. Таким чином, є завжди можливість мінімізувати цільову функцію, не втрачаючи загальності підходу.
Цільова функція та всі функціональні обмеження мають лінійну форму відносно невідомих Xj, що і дає назву цій задачі математичного програмування – лінійне програмування.
Невідомі, які присутні у лінійній моделі, відповідно до нефункціональних обмежень невід’ємні, що теж не обмежує загальності підходу, бо є можливість завжди записати в іншому вигляді Xj = – (Xj)– , де (Xj)–
–від’ємне значення.
Узалежності від вигляду функціональних обмежень (нерівності або рівності) загальну задачу лінійного програмування поділяють:
на канонічну, якщо k = 0; l = n, де всі функціональні обмеження мають вигляд рівностей;
стандартну (симетричну), якщо k = m; l = n, де всі функціональні обмеження мають вигляд нерівностей.
Будь-яку задачу лінійного програмування можна звести до канонічної задачі шляхом перетворення функціональних обмежень нерівнос-
Навчальний посібник для студентів вищих навчальних закладів |
17 |
|
|
|
|
тей у обмеження рівності додаванням до нерівностей невідомих невід’ємних величин:
ai1x1 ai2 x2 ... ain xn yi bi ;
де yi ≥ 0; новим невідомим додають назви відповідно xn+1; xn+2; …; xn+m та відповідно Xj ≥ 0, j = 1, 2, 3, …, n; n + 1, …, n + m;
функціональні обмеження набувають вигляду:
|
n |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
aij x j |
y j |
|
bi ,i 1, |
|
2, |
3, |
..., |
m; |
|
|
||||||||||||
j 1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
a |
x |
a |
|
x |
2 |
|
... a |
|
x |
n |
x |
n 1 |
b , |
|
|
||||||
|
11 1 |
12 |
|
|
|
1n |
|
|
|
|
|
1 |
|
|
||||||||
|
|
|
a22 x2 |
|
... a2n xn |
xn 2 |
b2 , |
|
||||||||||||||
a21 x1 |
|
|||||||||||||||||||||
|
..........................................................., |
. |
||||||||||||||||||||
|
|
x |
a |
|
|
x |
|
|
... a |
|
|
x |
|
x |
|
|
b |
|
||||
|
a |
m |
2 |
2 |
mn |
n |
n m |
|
||||||||||||||
|
|
m1 1 |
|
|
|
|
|
|
|
|
|
m |
Кількість невідомих моделі Xj ≥ 0 збільшилась до n + m. Будь-яку задачу лінійного програмування можна звести до стан-
дартної задачі лінійного програмування шляхом віднімання з лівої частини рівняння додаткових невід’ємних невідомих величин.
Таким чином, задача лінійного програмування може бути зведена від мінімізації до максимізації; здійснений перехід від функціональних обмежень у вигляді нерівностей до обмежень-рівностей і навпаки; замінені невідомі змінні від’ємні на невід’ємні.
Введені додаткові невідомі змінні мають чіткий економічний зміст. Так, наприклад, якщо в обмеженнях задачі лінійного програмування (нерівність) відбиваються витрати ресурсу та їх наявність, то додаткова змінна задачі (у формі рівняння) дорівнює обсягу невитраченого відповідного ресурсу. Якщо змінна не є невід’ємною, то її можливо замінити на дві невід’ємні:
xi = Ui – Vi.
Система обмежень у вигляді рівностей сумісна, якщо є хоча б одне
18 |
Дослідження операцій |
рішення; несумісна, якщо ранг матриці
aij , i 1, 2, ..., m; j 1, 2, 3, ..., n
дорівнює (r), а ранг розширеної матриці (доданий стовпець “bi”) більш ніж (r); надмірна, якщо одне з рівнянь можна отримати як лінійну комбінацію інших. У системі:
n – кількість невідомих;
m – кількість рівнянь.
Якщо система сумісна та не є надмірною, будемо вважати, що ранг її дорівнює (m); тоді:
m – базисні змінні;
(n – m) – вільні змінні, m < n.
Система у даному випадку має нескінченну кількість розв’язків, тому що ми маємо можливість надавати вільним змінним будь-які значення.
Рішення системи рівнянь (обмежень) має назву базисного рішення, якщо всі вільні змінні дорівнюють нулю. Сукупність значень невідомих (чисел) задачі математичного програмування, які задовольняють усім обмеженням задачі, має назву – припустимого рішення, або плану.
Сукупність усіх припустимих рішень системи рівнянь є опуклою множиною, або множина розв’язків задачі лінійного програмування є опуклою.
Базисне припустиме рішення задачі лінійного програмування відповідає одній з вершин або граней множини розв’язків.
Оптимальне рішення задачі лінійного програмування відповідає одному з базисних припустимих рішень, тобто досягається у одній з вершин або граней множини розв’язків, має назву – оптимальний план задачі лінійного програмування.
Геометричну інтерпретацію множини допустимих розв’язків задачі лінійного програмування та графічний метод її розв’язання приведено у прикладі 6.
Приклад 6
Розглянемо задачу лінійного програмування у формі стандартної
Навчальний посібник для студентів вищих навчальних закладів |
19 |
|
|
|
|
задачі – з обмеженнями у вигляді нерівностей. З метою наочності розглянемо простий випадок з двома невідомими змінними. Пригадаємо задачу про планування випуску продукції малим підприємством.
z (x) 10x1 |
20x2 , z max, |
|
х2 |
|
|
Рис. 1. Графічний розв’язок |
||
|
|
|
|
|||
150 |
|
|
|
задачі |
||
|
l3 |
|
|
|
|
|
|
l4 |
|
l2 |
|
||
|
|
|
|
|
||
110 |
Z(2) = 2060 |
|
|
|
|
|
|
|
|
|
|
||
96 |
C(70; 80) |
|
|
|||
|
|
|
|
|
||
|
|
|
Z(3) = 2300 |
|
||
70 |
|
|
|
|
l1 |
|
|
|
|
|
|
Z = 2300 |
|
30 |
Z(1) = 1400 |
|
|
|
|
|
Z = 800 |
|
|
|
|
||
|
|
|
|
l5 |
||
|
|
|
|
|
||
0 |
14 |
|
|
|
х1 |
|
70 |
80 |
100 110 120 |
140 150 |
|||
|
50 |
20 Дослідження операцій
x1 |
3,5x2 |
350; |
|
l1 |
||||
2x 0,5x |
2 |
240; |
|
l |
2 |
|||
|
1 |
|
|
|
|
|||
|
x2 |
150; |
|
l3 |
||||
x1 |
||||||||
x1 |
x2 |
110; |
|
l4 |
||||
10 x 20 x |
|
1400 ; |
|
l |
|
|||
|
1 |
|
|
2 |
|
|
|
5 |
x1 |
0; |
|
|
|
|
|
l6 |
|
|
0. |
|
|
|
|
|
l7 |
|
x2 |
|
|
|
|
Нерівність – обмеження графічно відображається півплощиною, а границя – граничною прямою, рівняння якої утворюється перетворенням нерівності на рівняння l1 x1 + 3,5x2 = 350; x1 = 0, x2 = 350/3,5 = 100; x1 = 350, x2 = 0 (рис. 1).
Щоб з’ясувати, яка півплощина задовольняє нерівності, перевіримо, наприклад, чи включає точку (0,0) x1 + 3,5x2 350; напівплощина нижче граничної прямої – нерівність виконується – напівплощина нижче границі.
Таким чином перевіримо та побудуємо інші нерівності:
l2 2x1 + 0,5x2 = 240;
x1 = 0, x2 = 240/0,5 = 480; x2 = 0, x1 = 240/2 = 120;
l3 x1 + x2 = 150;
x1 = 0, x2 = 150; x2 = 0, x1 = 150;
l4 x1 + x2 = 110;
x1 = 0, x2 = 110; x2 = 0, x1 = 110;
l5 10x1 + 20x2 = 1400;
x1 = 0, x2 = 1400/20 = 70; x2 = 0, x1 = 1400/10 = 40.
Але точка (0,0) 10 ∙ 0 + 20 ∙ 0 = 0 ≥ 1400 не відповідає нерівності, тому нам потрібна півплощина вище граничної прямої.
Таким чином отримано багатокутник розв’язків, який є опуклим. З метою знаходження максимуму цільової функції z = 10x1 + 20x2 побудуємо лінію рівняння цільової функції, поклавши z = 0, 10x1 +