
- •Економіко-математичні методи і моделі
- •Глава 1. Оптимізаційні моделі та основи теорії математичного програмування
- •1.2. Економіко-математична модель задачі математичного програмування
- •1.3. Класифікація задач математичного програмування
- •1.4. Приклади економічних задач з напрямку математичного програмування
- •Глава 2. Постановка, геометрична інтерпретація та канонічна форма задачі лінійного програмування
- •2.2. Форми запису задач лінійного програмування
- •2.3. Основні теореми лінійного програмування
- •2.4. Канонічний вигляд задачі лінійного програмування
- •2.1. Загальна економіко-математична модель задачі лінійного програмування
- •2.2. Форми запису задач лінійного програмування
- •2.3. Основні теореми лінійного програмування
- •2.4. Канонічний вигляд задачі лінійного програмування
- •Глава 3. Методи розв’язування задач лінійного програмування
- •3.2. Симплексний метод розв’язування задач лінійного програмування
- •3.3. Частинні випадки розв’язування задач симплексним методом
- •4.2. Економічна інтерпретація двоїстої задачі
- •4.3. Основні теореми двоїстості
- •5.2. Методи побудови початкового опорного плану транспортної задачі
- •5.3. Розв’язування закритої транспортної задачі методом потенціалів
- •5.4. Відкрита транспортна задача
- •Рекомедована література
- •Варіанти індивідуальних завдань
3.2. Симплексний метод розв’язування задач лінійного програмування
Графічний метод для визначення оптимального плану доцільно використовувати лише для задач з двома змінними. За більшої кількості змінних вдаються до узагальненого методу розв’язування задач лінійного програмування – так званого симплексного методу. Назва методу походить від слова «симплекс», що означає «найпростіший многогранник».
З
властивостей розв’язків задач лінійного
програмування відомо, що оптимальний
розв’язок задачі має знаходитись в
одній з кутових точок многогранника
допустимих розв’язків. Тому найпростіший
спосіб відшукання оптимального плану
потребує перебору всіх кутових точок
(допустимих планів задачі, які ще
називають опорними). Порівняння вершин
многогранника можна здійснювати тільки
після відшукання якоїсь однієї з них,
тобто знайшовши початковий
опорний план.
Кожний опорний план визначається
системою m
лінійно незалежних векторів, які
містяться в системі обмежень задачі з
n
векторів
.
Отже, загальна кількість опорних планів
визначається кількістю комбінацій
.
За допомогою симплексного методу можна знайти кутову точку і дослідити її на оптимальність. Якщо відповідь негативна, то симплексний метод дає змогу знайти наступну кутову точку, в якій лінійна цільова функція набуває значення ближчого до оптимального або такого, що дорівнює значенню цільової функції в попередній кутовій точці. Цю властивість називають монотонністю симплексного методу. Через скінченне число кроків досягається максимум (мінімум) цільової функції.
Якщо задача не має оптимального плану або якщо її цільова функції необмежена, то симплексний метод дає змогу встановити це також за скінченне число кроків.
Таким чином процес розв’язування задачі лінійного програмування симплексним методом носить ітераційний характер: обчислювальні процедури (ітерації) одного й того самого типу повторюються доти, доки не буде отримано оптимальний план задачі або з’ясовано, що його не існує.
Слід зауважити, що симплексний метод адаптований для розв’язування задач лінійного програмування, представлених у канонічній формі. У випадку, якщо задача лінійного програмування представлена не у канонічній формі, необхідно попередньо звести її до такої форми. Яким чином це здійснюється ми розглядали в § 2.4. Зауважимо лише, що в симплексному методі допускається приводити до канонічного вигляду тільки систему нерівностей, а лінійну форму (цільову функцію) залишати в незмінному вигляді.
В переважній більшості літературних джерел симплексний метод розв’язування задач лінійного програмування базується на складанні так званих симплексних таблиць. Слід відзначити, що даний метод є досить і досить громіздким. Значно більш зручнішим на наш погляд є інший спосіб, що ґрунтується на складанні та послідовному перетворенні систем лінійних рівнянь. Розглянемо його на наступному прикладі.
Ф
ормалізувати
та розв’язати симплексним методом
наступну задачу економічного характеру.
Для виробництва трьох видів деталей машинобудівне підприємство в якості сировини використовує сталь і кольорові метали, які є в обмеженій кількості. На виробництві даної продукції зайняті токарні верстати, загальний час використання яких також обмежений. Використовуючи дані таблиці, визначити оптимальний асортимент, який забезпечує підприємству максимальний річний прибуток (вважати, що в одному році підприємство працює 500 змін).
|
||||
Ресурси |
Обсяг ресурсів на 1 зміну |
Затрати на одиницю продукції |
||
Деталь А |
Деталь Б |
Деталь В |
||
Сталь (кг) |
200 |
5 |
4 |
7 |
Кольорові метали (кг) |
100 |
3 |
6 |
3 |
Використання верстатів (год.) |
30 |
1 |
2 |
4 |
Прибуток (грн./шт.) |
|
40 |
70 |
50 |
Розв’язок
Маємо звичайну задачу планування виробництва. Нехай х1 – кількість деталей А, що виробляються на підприємстві; х2, х3 – відповідно кількість деталей Б та В.
Тоді
математична модель нашої задачі матиме
такий вигляд: знайти максимальне значення
цільової функції
при обмеженнях
(3.1)
Представимо систему обмежень (3.1) в канонічній формі. Отримаємо наступну систему рівнянь:
(3.2)
Серед вільних членів, які знаходяться у правій частині рівнянь системи (3.2), немає від’ємних, тому залишаємо систему рівнянь в такому вигляді. Якщо б серед вільних членів виявилися від’ємні, то потрібно було б перемножити відповідне рівняння на (–1).
Перейдемо до розв’язування даної задачі симплексним методом.
Етап 1. Заходження допустимого опорного базисного розв’язку (плану)
Спочатку ми запишемо довільний базисний розв’язок, а потім (при необхідності) перейдемо до допустимого.
Система (3.2) складається з трьох лінійно незалежних рівнянь (m=3) з трьома невідомими (n=3). Ранг матриці такої системи дорівнює трьом. Кількість базисних змінних (далі ми будемо називати їх основними) приймається рівною рангу матриці системи, тобто трьом. Кількість вільних (неосновних) змінних приймається рівною кількості вихідних змінних задачі, тобто знову ж таки трьом.
Основними
можуть бути будь-які змінні, коефіцієнти
перед якими утворюють визначник,
відмінний від нуля. Найпростіше в якості
основних змінних взяти додаткові.
Коефіцієнти, що стоять перед змінними
утворюють три одиничні вектори:
Визначник матриці, складеної з таких векторів, дорівнює одиниці і відмінний від нуля. Цей визначник можна вибрати за базисний мінор, а вказані змінні за базисні, тобто за основні.
Крок 1.1. Основні змінні
Неосновні
змінні
Виразимо основні змінні через неосновні. Отримаємо наступну систему рівнянь:
(3.3)
Приймаємо
неосновні змінні рівними нулю:
.
Тоді
,
,
.
Тобто, значення основних змінних стають
рівними вільним членам.
Отриманий на кроці 1 план Х1={0, 0, 0, 200, 100, 30} відразу ж є допустимим, оскільки не містить від’ємних компонент. Таким чином, допустимий базисний розв’язок знайдено і ним є план Х1.
Очевидно,
що на цьому кроці значення цільової
функції буде дорівнювати нулю:
.
Етап 2. Заходження оптимального розв’язку (плану)
Наша задача полягає в тому, щоб від початкового допустимого базисного розв’язку перейти до іншого базисного розв’язку, при якому значення лінійної форми збільшиться. Визначимо, яку змінну вигідно перевести з неосновних в основні. Оцінюємо лінійну форму: дивимось на знаки коефіцієнтів при . Якщо коефіцієнти додатні, то відповідні змінні не вигідно відносити до неосновних (чим більше значення таких змінних, тим більшого значення досягає цільова функція). Якщо ж коефіцієнти від’ємні, то відповідні змінні потрібно залишити в неосновних.
При
всіх змінних цільової функції
стоять додатні коефіцієнти, тому будь-яку
зі змінних
можна
переводити в основні. Але не слід
забувати, що на кожному кроці симплексного
методу з неосновних в основні можна
переводити лише одну
змінну. Ще раз дивимося на коефіцієнти
перед змінними. Вибираємо ту з них, при
якій стоїть більший коефіцієнт (цільова
функція при цьому зростає швидше), тобто
змінну
.
Зауваження. У задачах пошуку мінімального значення цільової функції критерій оптимальності є протилежним: в основні змінні потрібно переводити ті змінні, при яких стоять від’ємні коефіцієнти.
Отже, в основні ми вирішили перевести змінну . Яку ж змінну перевести замість неї в неосновні? Щоб відповісти на це питання, потрібно спочатку скласти відношення вільних членів до коефіцієнтів при даній змінній для кожного з рівнянь системи (3.3). При цьому вільний член і коефіцієнт при змінній мають бути різних знаків. У випадку, коли вільний член та коефіцієнт мають однакові знаки, а також у випадку, коли змінна, що переводиться, не входить в якесь рівняння системи, таке відношення ми приймаємо рівним нескінченності. В неосновні переводиться та змінна, для якої модуль відношення є найменшим серед всіх інших. Отримані відношення – це числа, які показують нам, на скільки можна збільшити змінну , щоб всі основні змінні залишилися невід’ємними. Рівняння, якому воно відповідає найменше таке відношення, називають опорним.
В
нашому прикладі модулі відношень вільних
членів до коефіцієнтів змінної
будуть наступними:
.
Тобто, в першому рівнянні системи (3.3)
змінну
можна збільшити на 50 (при цьому змінна
стане рівною нулю, адже змінні
та
дорівнюють нулю, як неосновні), у другому
– на
,
у третьому – на 15. Найменшим є останнє
відношення. Основна змінна
,
яка відповідає цьому відношенню, має
бути переведена в неосновні. Опорним
рівнянням є третє, останнє рівняння
системи (3.3).
Крок
2.1.
Основні змінні
Неосновні
змінні
Виражаємо основні змінні через неосновні. При цьому розпочинаємо обов’язково з опорного рівняння. Отримаємо наступну систему рівнянь:
(3.4)
Маємо
план Х2={0,
15, 0,
140, 10,
0},
змінні
та
якого
дорівнюють нулю як неосновні.
Цільову функцію теж виражаємо через неосновні змінні:
;
На
даному кроці симплексного методу
критерій оптимальності цільової функції
не виконується: змінна
має додатній коефіцієнт (+5). Цільова
функція зростає при зростанні змінної
,
а тому останню потрібно перевести в
основні.
Оскільки
серед модулів відношень
,
то в неосновні змінні слід перевести
змінну
.
Опорним тепер є перше рівняння системи
(3.4).
Крок
2.2.
Основні змінні
Неосновні
змінні
(3.5)
Х3={30, 0, 0, 50, 10, 0}
Оскільки
у виразі цільової функції всі змінні
мають від’ємні коефіцієнти, то критерій
оптимальності на максимум виконується.
Максимальне значення цільової функції
.Оптимальний
план {30,
0, 0,
50, 10,
0}.
Таким чином виходячи з результатів побудованої економіко-математичної моделі, можна зробити наступні економічні висновки. Максимальний прибуток машинобудівному підприємству забезпечуватиме виробництво 30 деталей А за 1 зміну. При цьому, незважаючи на більший прибуток на одиницю продукції, деталі Б та В вироблятися взагалі не будуть. З оптимального плану також видно, що за 1 зміну залишається невикористаними 50 кг сталі та 10 кг кольорових металів. Фактором, що стримує зростання виробництва і збільшення максимально можливого прибутку, є обмежений час використання токарних верстатів. Тому кількість останніх доцільно збільшити. Можна також збільшити нормативний час використання наявних на даний час потужностей цього обладнання.
За рік на даному підприємстві можна виробити 500·30=15 000 деталей А і отримати максимально можливий прибуток 1200·500=600 000 грн.
Розв’язавши задачу, ми пересвідчилися. що симплексний метод складається з трьох або двох етапів:
- зведення системи обмежень до канонічної форми (етап виконується лише, якщо система обмежень задачі не представлена в канонічній формі);
- знаходження допустимого базисного розв’язку для системи обмежень;
- знаходження оптимального розв’язку.