a21x1 + a22x2 + . . . + a2nxn + xn+2 = b2 ,
am1x1 + am2x2 + . . . + amnxn + xn+m = bm ,
кількість невідомих моделі xj ³ 0 збільшилась до n + m .
Слушне зауваження у підручнику – якщо знак нерівності ³, так додаткові невідомі треба віднімати від лівої частини нерівності.
Будь-яку задачу лінійного програмування можливо звести до стандартної задачі лінійного програмування шляхом віднімання з лівої частини рівняння додаткових невід’ємних невідомих частин.
Таким чином ми навчились зводити задачу лінійного програмування від мінімізації до максимізації; переходити від функціональних обмежень у вигляді нерівностей до обмежень – рівностей і навпаки; замінювати невідомі змінні від’ємні на невід’ємні. Введені додаткові невідомі змінні мають чіткий економічний зміст. так, наприклад, якщо у обмеженнях задачі лінійного програмування (нерівність) відбиваються витрати ресурсу та їх наявність, так додаткова зміна задачі (у формі рівняння) дорівнює обсягу невитраченого відповідного ресурсу. Слушне зауваження у підручнику – якщо змінні не є невід’ємною, так її можливо замінити на дві невід’ємні:
xi = ui – vi .
Система обмежень у вигляді рівностей сумісна, якщо є хоча б одно рішення; несумісна, якщо ранг матриці ½aij, i = 1,2,. . . n равен ( r ) , а ранг розширеної матриці (додан стовбець “bi”) більше ніж ( r ); надмірна, якщо одне з рівнянь можливо отримати як лінійну комбінацію інших. У системі: n – кількість невідомих,
m – кількість рівнянь.
Якщо система сумісна та не є надмірною, так будемо вважати, що ранг її дорівнює (m); тоді:
m – базисні змінні,
(n – m) – вільні змінні, m < n.
Система у даному випадку має нескінченну кількість розв’язків, так як ми маємо можливість надавати вільним змінним будь-які значення.
Рішення системи рівнянь (обмежень) має назву базисного рішення, якщо усі вільні змінні дорівнюють нулеві. Сукупність значень невідомих (чисел) задачі математичного програмування, які задовольняють усім обмеженням задачі, мають назву припустимого рішення або плану.
Сукупність усіх припустимих рішень системи рівнянь є опукла множина. Або множина розв’язків задачі лінійного програмування є опуклою.
Базисне припустиме рішення задачі лінійного програмування відповідає одній з вершин або граней множини розв’язків.
Оптимальне рішення задачі лінійного програмування відповідає одному з базисних припустимих рішень, тобто досягається у вершині множини розв’язків, має другу назву – оптимальний план задачі лінійного програмування.
Геометрична інтерпретація множини допустимих розв’язків задачі лінійного програмування та графічний метод її розв’язування. /2/ стор. 165.
Розглянемо задачу лінійного програмування у формі стандартної задачі – з обмеженнями у вигляді нерівностей. З метою наочності розглянемо простіший випадок з двома невідомими змінними. Пригадаємо задачу про планування випуску продукції малим підприємством.
Z = 10 x1 + 20 x2 ; Z ® max;
х1 + 3,5 х2 £ 350;
2 х1 + 0,5 х2 £ 240;
х1 + х2 £ 150;
х1 + х2 ³ 110;
10 х1 + 20 х2 ³ 1400;
х1 ³ 0;
х2 ³ 0.
Нерівність – обмеження графічно відображається півплощіною, а границя – граничною прямою, рівняння якої утворюється перетворенням нерівності на рівняння.
l1 ® x1 + 3,5x2 = 350 ;
x1 = 0, x2 = 350 / 3,5 = 100 ; x2 = 0, x1 = 350.
Щоб з’ясувати, яка напівплощіна задовольняє нерівності, перевіримо, наприклад, чи включає точку (0,0) 0 + 3,5 × 0 £ 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 = 140;
але точка (0,0) 10 × 0 + 20 × 0 = 0 ³ 1400 не відповідає нерівності, тому нам потрібна півплощіна вище граничної прямої.
Таким чином отриманий многокутник розв’язків, до речі – опуклий, як завжди.
З метою знаходження максимуму цільової функції
Z = 10 x1 + 20 x2 побудуємо лінію рівня цільової функції, поклавши Z = 0 ,
10 x1 + 20 x2 = 10; x1 = 0, x2 = 40; x2 = 0; x1 = 80;
зростання цільової функції позначає паралельне зміщення самій собі догори, доки остання крапка не вийде на границю многокутника розв’язків.
Ця точка відповідає перетину прямих
х1 + 3,5 х2 = 350; - l1 ( × ) C (70; 80)
х1 + х2 = 250; - l3
х1 = 70, х2 = 80,
Zmax (x) = 10 × x1 + 20 × x2 = 10 × 70 + 20 × 80 = 23000 грн.
Слушне зауваження у підручнику – якщо було б потрібно знайти мінімальне значення цільової функції, так лінію рівня потрібно зміщувати униз, доки остання крапка вийде на границю многокутника розв’язків – це l5 , усі крапки якої є розв’язком задачі – нескінченна множина рішень.
У розглянутому випадку многокутник розв’язків не тільки опуклий, а ще і є замкненим. Можливі варіанти опуклого многокутника розв’язків, який є необмеженим.
У першому випадку можливо знайти максимальне значення цільової функції, а у другому випадку – мінімальне значення. На наступному малюнку наведений приклад многокутника розв’язків несумісної системи обмежень – розв’язок задачі математичного програмування відсутній.
Малюнок. Многокутник розв’язків несумісної системи обмежень
задачі лінійного програмування
Тема 3. Симплексний метод розв’язання задач лінійного програмування
Перша праця по лінійному програмуванню була надрукована Канторовичем у 1939 році, але лише після відкриття Данцігом у 1949 році симплекс-метода розв'язання задачі лінійного програмування до цього класу задач виникла зацікавленість. Симплекс-метод дає аналітичний розв’язок лінійної задачі математичного програмування.
Симплексний метод розв’язання задачі лінійного програмування ґрунтується на переході від одного опорного плану до іншого таким чином, що кожного разу значення цільової функції зростає (за умов, що задача має оптимальний план, та кожний з опорних планів не є надмірним). Під опорним планом мають на увазі невід’ємний базисний розв’язок задачі лінійного програмування. Нагадаємо – базисний план (розв’язок) – рішення системи обмежень. у якому усі вільні змінні дорівнюють нулеві, тобто геометрично базисний план відповідає одній з вершин або граней многокутника розв’язків.
Розглянемо використання симплекс-методу для вирішення задачі лінійного програмування на прикладі задачі про планування випуску продукції малим підприємством. У зв’язку з тим, що ця задача була розв’язана раніше, і ми з’ясували, що функціональні планові обмеження виконуються автоматично, а також з метою спрощення пошуку, розглянемо тільки функціональні обмеження ресурсів.
х1 + 3,5 х2 £ 350;
2 х1 + 0,5 х2 £ 240;
х1 + х2 £ 150;
х1 ³ 0;
х2 ³ 0.
Z = f (x) = 10 x1 + 20 x2 ; Z ® max;
( -Z = - f (x) = - 10 x1 - 20 x2 - 0 × x4 - 0 × x5; ® min ).
Розв’язок задачі. Перетворимо функціональні обмеження-нерівності на обмеження-рівності шляхом введення у обмеження-нерівності невід’ємних вільних невідомих y1, y2, y3 (хоча можливо було б і х3, х4, х5 ).
х1 + 3,5 х2 + у1 = 350; (1)2 х1 + 0,5 х2 + у2 = 240; (2)
х1 + х2 + у3 = 150; (3)
х1 ³ 0; х2 ³ 0; у1³ 0; у2³ 0; у3³ 0.
Перед початком виробництва х1 = х2 = 0 , тоді
у1 = 350; наявність ресурсу – шерсть;у2 = 240; наявність ресурсу – шовк;
у3 = 150; наявність ресурсу – трудомісткість.
Прибуток на початок справи Z = 10 × 0 + 20 × 0 = 0;
Кількість рівнянь-обмежень m = 3; кількість невідомих – х1, х2, у1, у2, у3 n = 5; кількість вільних змінних – (n – m) = 5 – 3 = 2;
базисне припустиме рішення задачі – це таке, у якому усі вільні змінні дорівнюють нулеві (вершина або грань многокутника розв’язків). Тому початковий опорний план складає
х (1) = (0; 0; 350; 240; 150) ; Z ( х(1) ) = 0;
де : х1 = 0; х2 = 0 – вільні змінні, відповідає рішенню задачі, коли продукція не виробляється. Надамо цю інформацію у вигляді симплекс-таблиці
х1 | х2 | х3 | |
1 2 1 | 3,5 0,5 1 | 350 240 150 | у1 – шерстяна тканина у2 – шовкова тканина у3 – наявність ресурсів праці |
10 | 20 | 0 | - Z = - дохід від виробництва |
Z = 10х1 + 20х2 = 10 × 0 + 20 × 0 = 0; - Z = 0;
Виробництво чоловічих костюмів х2 дає більший дохід, так почнемо його збільшувати, залишаючи х1 = 0, але існують обмеження. З першої строки симплекс-таблиці (першого рівняння-обмеження на наявність шерстяної тканини) чоловічих костюмів можливо виготовити 350 / 3,5 = 100; з другої строки симплекс-таблиці (другого рівняння-обмеження на наявність шовкової тканини) чоловічих костюмів можливо виготовити 240 / 0,5 = 480 штук; з третьої строки симплекс-таблиці (третього рівняння-обмеження на наявність ресурсів праці) чоловічих костюмів можливо виготовити 150 / 1 = 150 одиниць. Визначальним є обмеження на шерстяну тканину, тобто найбільша кількість чоловічих костюмів (за умов відсутності жіночих – х1 = 0) дорівнює найменшому з трьох значень 100; 480; 150; х2 = 110. Визначальний елемент симплекс-таблиці – коефіцієнт у першому рівнянні при другій вільній змінній (х2), який дорівнює3,5; та має назву центру (ключового елемента).