Математичне програмування в економіці
Математичне програмування
Тема 1. Предмет, особливості та сфери застосування математичного програмування в економіці. Класифікація задач
Математичне програмування – математична дисципліна, яка займається вивченням методів розв’язування, аналізу та використання задач зі знаходження екстремуму функції на множенні допустимих варіантів функції. Математичне програмування використовують при розв’язанні різноманітних практичних задач, у тому числі і економічних.
Загалом послідовність використання економіко-математичних моделей така:
- формується економічна проблема;
- створюється математична модель задачі, у якій логічні зв’язки економічної моделі перетворюються на математичні співвідношення: функції. рівняння, нерівності;
- розв’язується математична задача, перевіряється рішення;
- перекладається розвиток на економічну мову і аналізується результат.
Математичне програмування – це частковий випадок системного аналізу однієї чітко вираженої мети, досягнення якої здійснюється за одним критерієм.
У загальному вигляді математична формулювання задачі виглядає таким чином:
- необхідно знайти найбільше або найменше значення цільової функції f (x1, x2, x3…, xn);
- якщо треба виконати умови gi (x1, x2, x3…, xn) £ bi, i = 1,2,3…,m;
- де: f, gi – відомі функції,
bi - деякі дійсні числа, n > m.
Задачу оптимізації з точки зору економіки можна сформулювати таким чином:
- знайти такі значення змінних. що надають ефективності діяльності максимальне чи мінімальне значення;
- за умов виконання обмежень, які пов’язані зі змінними, , за допомогою котрих, змінних, здійснюється керування діяльністю.
Конкретна ціль, поставлена у економічній задачі, пояснюється цільовою функцією (критерієм ефективності), екстремум якої і треба знайти.
Обмеження відображають умови, при розв’язанні економічної задачі, наприклад, брак ресурсів, гранична вартість і таке інше. Змінні, з яких будується цільова функція, та на які накладаються обмеження, використовують як “інструмент”, за допомогою якого досягається той чи інший варіант цілі. Як змінні задовольняють усім обмеженням, так отриманий варіант називають припустимим (допустимим).
Задача математичного програмування полягає в тому, щоб з усіх допустимих варіантів значень інструментальних змінних (невідомих моделі) знайти такі, при яких функція цілі (критерій оптимальності) досягає екстремума.
Розв’язати задачу – це знайти її оптимальне рішення, або з’ясувати його відсутність.
Функція цілі (критерій оптимальності) повинна об’єктивно характеризувати суспільно-корисну значущість соціально-економічного явища або процесу. Критерій оптимальності можливо з’ясувати лише з економічної сутності проблеми – задача, яку розв’язує фахівець економіст. Принципово неможливо визначити цільову функцію на етапі розв’язання задачі математиком. такою ж мірою це все стосується також обмежень задачі оптимізації.
Класифікація моделей задач математичного програмування залежить від властивостей функції цілі та функцій обмежень.
Якщо функція цілі та усі функції обмежень лінійні, така задача математичного програмування має назву задачі лінійного програмування; якщо ж хоча б одна з функцій нелінійна, така задача має назву задачі нелінійного програмування.
Якщо у математичній моделі ураховується поетапно час, така задача має назву задачі динамічного програмування; у іншому випадку – задачі статичного програмування.
В залежності від того, який характер мають вихідні дані моделі – детермінований або стохастичний – задачі мають назву відповідно детермінованого та стохастичного програмування.
Серед задач нелінійного програмування особливо досконало досліджені задачі опуклого програмування – задачі знаходження екстремума опуклої функції, заданої на опуклій замкненій множині. У свою чергу, серед задач опуклого програмування найпростіші і найдосконало досліджені задачі квадратичного програмування, у яких функція цілі – квадратична, а обмеження – лінійні.
Якщо змінні задачі математичного програмування приймають тільки цілочисельні значення, така задача має назву задачі цілочислового програмування; у іншому випадку – задачі неперервного програмування.
У задачі дробово-лінійного програмування цільова функція являє собою співвідношення двох лінійних функцій, а обмеження – лінійні.
Якщо у задачі математичного програмування відсутні усі обмеження. така задача має назву задачі безумовного програмування.
У якості прикладів економічних проблем, які доцільно розв’язувати. використовуючи методи та моделі математичного програмування, розглянемо такі:
Приклад 1. Задача про планування випуску продукції малого підприємства.
Планується виробляти жіночі та чоловічі костюми. На жіночій костюм потрібно 1 м. шерсті, 2 м. шовку та 1 людино-тиждень працевитрат. На чоловічий костюм потрібно 3,5 м. шерсті, 0,5 м. шовку і також 1 людино-тиждень працевитрат. Загалом підприємство має 350 м. шерсті, 240 м. шовку та 150 людино-тижнів працевитрат. За попередньою домовленістю із замовником мають виробити 110 костюмів жіночих та чоловічих загалом. Акціонери, які вклали гроші у підприємство та сировину (тканину), вимагають прибуток не менше, ніж 1400 грн. Замовник купує жіночий костюм на 10 грн. дорожче собівартості, чоловічий – на 20 грн. Потрібно з’ясувати: скільки необхідно виготовити жіночих та чоловічих костюмів, щоб задовольнити усім вимогам та отримати найбільший прибуток.
Розв’язок задачі: Позначимо кількість жіночих костюмів, які потрібно виготовити, через х1; кількість чоловічих – х2. Загальний прибуток (критерій оптимізації, мета, ціль) виробництва складає:
Z = f (x) = 10 x1 + 20 x2 ;
витрати: шерсті = 1 ´ х1 + 3,5 ´ х2;
шовку = 2 ´ х1 + 0,5 ´ х2;
трудомісткості = х1 + х2;
результати: кількість загальна костюмів х1 + х2;
прибуток 10 x1 + 20 x2.
Функціональні обмеження задачі мають вигляд:
х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.
Розв’язок задачі математичного програмування у даному прикладі складає: х1 = 70; х2 = 80; f (x)max = 2300 грн.
Приклад 2. Задача про постачання вантажів від постачальників до замовників.
Від трьох постачальників, розташованих у пунктах А1, А2, А3 до чотирьох замовників, розташованих у пунктах В1, В2, В3, В4, треба перевезти однорідний вантаж. Наявність вантажу по пунктах постачальників: А1= 50т, А2 = 40 т, А3 = 20т. Потреба у вантажі: В1 = 30т, В2 = 25т, В3 = 35т, В4 = 20т. Відстані між пунктами замовників та постачальників наведені у таблиці.
Таблиця
Замовники Постачальники | В1 | В2 | В3 | В4 | Запаси |
А1 | С11 3 х11 | С12 2 х12 | С13 4 х13 | С14 1 х14 | a1 = 50 |
А2 | С21 2 х21 | С22 3 х22 | С23 1 х23 | С24 5 х24 | а2 = 40 |
А3 | С31 3 х31 | С32 2 х32 | С33 4 х33 | С34 4 х34 | а3 = 20 |
Потреба | b1 = 30 | b2 = 25 | b3 = 35 | b4 = 20 | 110 |
Розв’язок задачі. Позначимо xij – кількість вантажу. який буде перевезено з “i”–ого пункта постачання у “j”–ий пункт замовлення; cij – відстань від “i”-ого постачальника до “j”-ого замовника. Мета: розшукати вартість перевезення вантажів з найменшою витратою транспортного моменту.
Z = f (x) = S S Cij´ Xij
Задача збалансована, тобто наявність вантажу дорівнює потреби у вантажу:
S Xij = аі, і = 1, 2, 3; - умова вивезення вантажу від кожного з трьох постачальників до 4 замовників;
S Xij = вj j – 1, 2, 3, 4; - умова отримання кожним замовником необхідної кількості вантажу.
Нефункціональні обмеження: хij ³ 0.
Розв’язок задачі складає:
х11 = 25; х12 = 5; х14 = 20; х13 = 0;
х21 = 5; х23 = 35; х22 = 0; х24 = 0;
х31 = 20; х32 = 0; х33 = 0; х34 = 0;
f (x)min = 190т.км.
Приклад 3. Задача про раціональний розкрій.
Підприємство одержує прут сталевого прокату довжиною l = 800 см. Треба виготовити деталі трьох (і) різновидів: l1 = 250 см, а1 = 150 штук; l2 = 190 см, а2 = 140 штук; l3 = 100 см, а3 = 48 штук.
Скласти раціональний план розкрою вихідного матеріалу (деталей) з найменшими виходами (залишками).
Розв’язок задачі. Побудуємо таблицю можливих варіантів розкрою.
Таблиця
Номер способу (j) | bij | Залишок cj | Кількість прутків за “j”-способом | ||
l1 = 250 | l2 = 190 | l3 = 100 | |||
j = 1 | 3 | 0 | 0 | 50 | x1 |
j = 2 | 2 | 1 | 1 | 10 | x2 |
j = 3 | 2 | 0 | 3 | 0 | x3 |
j = 4 | 1 | 2 | 1 | 70 | x4 |
j = 5 | 1 | 1 | 3 | 60 | x5 |
j = 6 | 1 | 0 | 5 | 50 | x6 |
j = 7 | 0 | 4 | 0 | 40 | x7 |
j = 8 | 0 | 3 | 2 | 30 | x8 |
j = 9 | 0 | 2 | 4 | 20 | x9 |
j = 10 | 0 | 1 | 6 | 10 | x10 |
j = 11 | 0 | 0 | 8 | 0 | x11 |
Потрібна кількість деталей | а1 = 150 | а2 = 140 | а3 = 48 | - | - |
і = 1 | і = 2 | і = 3 |
|
Позначимо:
- “хj” - кількість одиниць (прутків) первинного матеріалу, який буде розкроєно за “j” варіантом (способом);
- аі – потрібна кількість деталей “і”-ого різновиду (lі - довжини);
- сj – залишок при розкрої одиниці первинного матеріалу (прутка) за “j”-тим способом (варіантом);
- bij – кількість деталей “і”-ого виду, яку отримують при виготовлені з одиниці первинного матеріалу (прутка) за “j”-тим варіантом (способом).
Залишок за “j”-тим способом від розкрою = cj ´ xj, загалом
Z = SCj´Xj®min,
j=1
за умов:
S bij´ xj³ aj, i = 1,2,3…m;
j=1
xj ³ 0, j = 1,2,3…n.
Найбільш трудомістка частина задачі – визначення способів (варіантів) розкрою, яка здійснюється за формулою:
m
S li´ bij + Cj³ l, j = 1,2,3…n;
і=1
0 £ Cj £ min (li).
Цільова функція:
Z = 50 ´ х1 + 10 ´ х2 + 0 ´ х3 + 70 ´ х4 + 60 ´ х5 + 50 ´ х6 + +40 ´ х7 + 30 ´ х8 + 20 ´ х9 + 10 ´ х10 + 0 ´ х11; ® min;
обмеження:
3х1 + 2х2 + 3х3 + 1х4 + х5 + х6 ³ 150;
х2 + 2х4 + х5 + 4х7 + 3х8 + 2х9 + х10 ³ 140;
х2 + 3х3 + х4 + 3х5 + 5х6 + 2х8 + 4х9 + 6х10 + 8х11 ³ 48;
xj ³ 0, j = 1,2,3…11.
Розв’язок задачі складає:
Z* = 2300, x* = (8; 48; 0; 0; 0; 0; 23; 0; 0; 0; 0;).
Приклад 4. Задача комплектного розкрою деталей.
На розкрій поступають варіанти заготовок (t = 2) у обсязі “bi” (i = 1,2,3…m) кожного. Потрібно виготовити комплекти деталей, які налічують по “lk” штук (l1 = 1 деталь, l2 = 2 деталі) деталей кожного різновиду деталей. Кожна одиниця “і”-ого (одного з двох) різновидів заготовки може бути розкроєна ni (j = 1,2…ni) різними способами. При розкрої одиниці “t”-ого матеріалу заготовки “j”-тим способом отримаємо “atjk” одиниць “k” – а деталі. Потрібно скласти програму виготовлення якомога більше комплектів деталей, маючи вказані заготовки та задану комплектацію. Дамо конкретні дані: заготовки (t = 1) “А” мають довжину 5 м, кількість b1 = 100 штук; заготовки (t = 2) “В” мають довжину 4 м, кількість b2 = 175 штук; деталі D1 мають довжину 2,0 м, деталі D2 - довжину 1,25 м; до одного комплекту залучають одну (l1 = 1) деталь D1 та дві (l2 = 2) деталі D2. Треба виготовити якомога більше комплектів деталей.
Розв’язок задачі. Позначимо: xtj - кількість одиниць “t”-ого різновиду заготовок, які розкроюваються “j”-тим способом; х – загальна кількість комплектів. Побудуємо таблицю варіантів розкрою заготовок.
Таблиця
Варіанти заготовок | Довжина заготов-ки, м | Спосіб розкрою | Розмір деталі | Кількість загото-вок, bi | План розкрою, xtj | |
2 м (D1) | 1,25 м (D2) | |||||
t = 1 | 5 м (А) | j = 1 | 1 | 2 | b1=100 | х11 |
j = 2 | 2 | 0 | х12 | |||
j = 3 | 0 | 4 | х13 | |||
t = 2 | 4 м (В) | j = 1 | 2 | 0 | b2=175 | х21 |
j = 2 | 1 | 1 | х21 | |||
j = 3 | 0 | 3 | х21 | |||
- | Комплект | l1 = 1 | l2 = 2 | - |
Цільова функція: Z = x ® max;
обмеження:
по кількості заготовок:
х11 + х12 + х13 £ 100;
х21 + х22 + х23 £ 175;
по комплектності:
х11 + 2×х12 + 0×х13 + 2×х21 + х22 + 0×х23 ³ х;
2×х11 + 0×х12 + 4×х13 + 0×х21 + х22 + 3×х23 ³ 2х;
хij³ 0; х ³ 0.
Оптимальний план складає:
Z* = 264; х* = (0; 0; 100; 132; 0; 43)
Приклад 5. Задача про складання суміші.
На підприємстві потрібно виготовити суміш, які містить 30% речовини П1, 20% речовини П2, 40% речовини П3 та 10% речовини П4. Для виготовлення суміші можливо використати три різновиди сировини М1, М2, М3 з різними співвідношеннями речовин та різною вартістю. Потрібно скласти суміш з мінімальною вартістю та наданим складом речовин. Ісходні дані наведені у таблиці.
Таблиця
Речовини | Сировина | Кількість сировини у суміші | ||
М1 | М2 | М3 | ||
П1 | 0,3 | 0,1 | 0,6 | 0,3 |
П2 | 0,1 | 0,2 | 0,2 | 0,2 |
П3 | 0,5 | 0,6 | 0,1 | 0,4 |
П4 | 0,1 | 0,1 | 0,1 | 0,1 |
Вартість за одиницю сировини | 4 | 2 | 3 | |
- | х1 | х2 | х3 |
|
Розв’язок задачі. Позначимо “xi” - кількість використаної сировини “Mi”.
Цільова функція:
Z = 4 x1 + 2x2 + 3x3 ® min;
обмеження:
0,3х1 + 0,1х2 + 0,6х3 ³ 0,3;
0,1х1 + 0,2х2 + 0,2х3 ³ 0,2;
0,5х1 + 0,6х2 + 0,1х3 ³ 0,4;
0,1х1 + 0,1х2 + 0,1х3 ³ 0,1;
хі ³ 0.
Оптимальний план х* = (0; 0,6; 0,4); Z* = 2,4.
Тема 2. Загальна задача лінійного програмування та деякі з методів її розв’язування
У загальному вигляді розв’язання задачі математичного програмування майже неможливо. Найдосконало вивчені задачі лінійного програмування. Це пояснюється тим, що більшість реальних економічних моделей зводиться до задачі лінійного програмування, внаслідок чого і методи розв’язку задач лінійного програмування найбільш розвинені.
Загальною задачею лінійного програмування зветься задача знаходження максимального (мінімального) значення функції
Z = SCj´Xj ,
j=1
(Z = С0 + С1Х1 + С2Х2 + . . . + СnХn);
За умов функціональних обмежень:
Saijxj£bi , де і = 1,2, . . . , k;
j=1
а11х1 + а12х2 + . . . + a1nxn £ b1 ,
а21х1 + а22х2 + . . . + a2nxn £ b2 ,
аk1х1 + аk2х2 + . . . + aknxn £ bk ,
Saijxj= bi , де і = k +1, k + 2, . . . , m;
j=1
ak+1;1x1 + ak+1;2x2 + . . . + ak+1;nxn = bk+1 ,
ak+2;1x1 + ak+2;2x2 + . . . + ak+2;nxn = bk+2 ,
am;1x1 + am;2x2 + . . . + am;nxn = bm
нефункціональних обмежень:
xj ³ 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, де усі функціональні обмеження мають вигляд нерівностей.
Будь-які задачу лінійного програмування можливо звести до канонічної задачі шляхом перетворення функціональних обмежень нерівностей у обмеження рівності доданням до нерівностей невідомих невід’ємних величин:
ai1x1 + ai2x2 + . . . + ainxn + yi = bi ;
де yi ³ 0; новим невідомим дають назви відповідно xn+1; xn+2; . . . ; хn+m; та відповідно xj ³ 0 , де j = 1,2,3 . . . n; n + 1 . . . n + m;
функціональні обмеження набувають вигляд
Saijxj+ yi = bi , де і = 1, 2, 3 . . . , m;
j=1
a11x1 + a12x2 + . . . + a1nxn + xn+1 = b1 ,
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; та має назву центру (ключового елемента).
Як буде виготовлено 100 чоловічих костюмів, так х2 = 100 і з першого рівняння-обмеження отримаємо (х1 = 0)
у1 = 350 – 3,5х2 – х1; (1)
у2 = 240 – 0,5х2 – 2х1; (2)
у3 = 150 – х2 – х1; (3)
що у1 = 0, тобто ресурсів шерстяної тканини не буде; з другого рівняння-обмеження отримаємо у2 = 240 – 0,5 × 100 – 2 × 0 = = 190 м шовкової тканини у запасах; з третього рівняння-обмеження отримаємо у3 = 150 – 100 – 0 = 50 людино - тижнів трудомісткості у запасах.
Прибуток складає Z = 10 × 0 + 20 × 100 = 2000 грн.; - Z = - 2000.
Цільова функція Z = 10 × х1 + 20 × х2 через нові вільні змінні (х1 = 0; у2 = 0) має вираз
40 40 40 30
Z = 10 х1 + 20 х2 = 10 × х1 + 2000 - ¾ у1 - ¾ х1 = 2000 - ¾ у1 + ¾ х1,
7 7 7 7
бо (з першого рівняння-обмеження) маємо:
х2 = 100 – у1 / 3,5 – х1 / 3,5.
Перетворимо систему рівнянь-обмежень, замінюючи х2 на його вираз:
х1 + 3,5 (100 – у1 / 3,5 – х1 / 3,5) + у1 = 350; (1¢)
2 х1 + 0,5 (100 – у1 / 3,5 – х1 / 3,50) + у2 = 240; (2¢)
х1 + (100 – у1 / 3,5 – х1 / 3,50) + у3 = 150; (3¢)
х2 + у1 / 3,5 + х1 / 3,5 = 100 (4¢)
Другий опорний план задачи таким чином складає
х(2) = (0; 100; 0; 190; 50; 100); Z (х(2) ) = 2000;
де: х1 = 0; у1= 0 – вільні змінні, відповідає розв’язку задачі, якщо виробляються виключно чоловічі костюми (х2 = 100). Знов надамо цю інформацію у вигляді симплекс-таблиці.
Таблиця
х1 | у1 | bі | |
13 ¾ 7 | 1 - ¾ 7 | 190 | у2 – залишки шовкової тканини |
5 ¾ 7 | 2 - ¾ 7 | 50 | у3 – залишки ресурсів праці |
2 ¾ 7 | 2 ¾ 7 | 100 | х2 – виробництво чоловічих костюмів |
30 ¾ 7 | 40 - ¾ 7 | - 2000 | - Z – цільова функція |
Кожен з елементів симплекс-таблиці має своє значення:
– у першому стовпці (х1) 13 / 7 – потрібна кількість шовкової тканини, потрібної на один жіночий костюм; 5 / 7 – потрібна кількість праці на один жіночий костюм; 30 / 7 – прибуток від одного жіночого костюма;
Дивлячись на цільову функцію
30 40
Z = 2000 + ¾ × х1 - ¾ × у1 ,
7 7
бачимо, що збільшення виготовлення жіночих костюмів може збільшити прибуток, бо х1 ³ 0 , а також 30 / 7 > 0.
Пригадуючи, що у1 = 0, знайдемо значення нової вільної змінної, яка задовольняє систему рівнянь-обмежень (2¢), (3¢), (1¢¢), а також у2 ³ 0 , у3 ³ 0 , х2 ³ 0 .
(2¢) дає, якщо у2 = 0, х1 » 102;
(3¢) дає, якщо у3 = 0, х1 = 70;
(1¢¢) дає, якщо х2 = 0, х1 =350;
Визначальними є обмеження на ресурси праці: , х1 = 70, у3 = 0 з рівняння (3¢).
Визначальний елемент симплекс-таблиці – це коефіцієнт у рівнянні (3¢), якій дорівнює (5/7), та відіграє роль нового центру, або ключового елементу.
Як буде виготовлено 70 жіночих костюмів, так х1 = 70 з рівняння (3¢) отримаємо у3 = 0 (нова базова змінна);
Третій опорний план задачі складає:
Х (3) = (70; 80; 0; 60; 0;); Z (3) = 2300 грн.;
Z (3) > Z (1);
де: у1 = 0; у3 = 0 - вільні змінні, відповідає розв’язку задачі, якщо виробляється 70 жіночих та 80 чоловічих костюмів. Надамо цю інформацію у вигляді симплекс-таблиці.
Таблиця
у3 | у1 | Опорний розв’язок b1 | |
13 ¾ 5 | 21 - ¾ 35 | 60 | у2 – залишки шовкової тканини |
2 ¾ Подобные работы:
Актуально:
|