Завдання 1
Побудувати математичну модель задачі.
Меблева фабрика виготовляє столи, стільці, тумби і книжкові шафи використовуючи дошки двох видів, причому фабрика має 500 м2дошок першого виду і 1000 м2дошок другого виду. Задані також трудові ресурси в кількості 800 людино-годин. У таблиці наведені нормативи витрат кожного виду ресурсів на виготовлення одного виду і прибуток від реалізації одиниці виробу.
Ресурси | Витрати на один виріб | Запас сировини, м2 | |||
Столи | Стільці | Тумби | Книжкові шафи | ||
Дошки І виду, м2 | 5 | 1 | 9 | 12 | 500 |
Дошки ІІ виду, м2 | 2 | 3 | 4 | 1 | 1000 |
Трудові ресурси, люд.год. | 3 | 2 | 5 | 10 | 800 |
Прибуток від реалізації одного виробу, грн.од. | 12 | 5 | 15 | 10 |
Визначити асортимент, що максимізує прибуток.
Розв’язок
Складаємо математичну модель задачі. Позначимо через х1кількість виробів 1-ї моделі, що виготовляє фірма за деяким планом, а через х2 кількість виробів 2-ї моделі та через та через х3і х4кількість виробів 3-ї і 4-ї моделі відповідно. Тоді прибуток, отриманий фабрикою від реалізації цих виробів, складає
∫ = 12х1+5х2 + 15х3+ 10х4.
Витрати сировини на виготовлення такої кількості виробів складають відповідно:
А =5х1+1х2 + 9х3+ 12х4,
В =2х1+3х2 + 4х3+ 1х4,
С =3х1+2х2 + 5х3+ 10х4,
Оскільки запаси сировини обмежені, то повинні виконуватись нерівності:
5х1+1х2 + 9х3+ 12х4≤ 500
2х1+3х2 + 4х3+ 1х4≤ 1000
3х1+2х2 + 5х3+ 10х4≤ 800
Оскільки, кількість виробів є величина невід'ємна, то додатково повинні виконуватись ще нерівності: х1> 0, х2> 0, х3> 0, х4> 0.
Таким чином, приходимо до математичної моделі (задачі лінійного програмування):
Знайти х1 , х2, х3 та х4 такі, що функція ∫ = 12х1+5х2 + 15х3+ 10х4 досягає максимуму при системі обмежень:
Розв'язуємо задачу лінійного програмування симплексним методом. Введемо балансні змінні х5 ≥ 0, х6≥ 0, х7≥ 0. Їх величина поки що невідома, але така, що перетворює відповідну нерівність у точну рівність. Після цього, задача лінійного програмування набуде вигляду: ∫ = 12х1+5х2 + 15х3+ 10х4 → max при обмеженнях
де х1,...,х7>0
Оскільки завдання вирішується на максимум, то ведучий стовпець вибирають по максимальному негативному кількістю та індексного рядку. Всі перетворення проводять до тих пір, поки не вийдуть в індексному рядку позитивні елементи.
Переходимо до основного алгоритму симплекс-методу.
План | Базис | В | x1 | x2 | x3 | x4 | x5 | x6 | x7 | min |
1 | x5 | 500 | 5 | 1 | 9 | 12 | 1 | 0 | 0 | 55.56 |
x6 | 1000 | 2 | 3 | 4 | 1 | 0 | 1 | 0 | 250 | |
x7 | 800 | 3 | 2 | 5 | 10 | 0 | 0 | 1 | 160 | |
Індексний рядок | F(X1) | 0 | -12 | -5 | -15 | -10 | 0 | 0 | 0 | 0 |
Оскільки, в індексному рядку знаходяться негативні коефіцієнти, поточний опорний план неоптимальний, тому будуємо новий план. У якості ведучого виберемо елемент у стовбці х3, оскільки значення коефіцієнта за модулем найбільше.
План | Базис | В | x1 | x2 | x3 | x4 | x5 | x6 | x7 | min |
2 | x3 | 55.56 | 0.56 | 0.11 | 1 | 1.33 | 0.11 | 0 | 0 | 100 |
x6 | 777.78 | -0.22 | 2.56 | 0 | -4.33 | -0.44 | 1 | 0 | 0 | |
x7 | 522.22 | 0.22 | 1.44 | 0 | 3.33 | -0.56 | 0 | 1 | 2350 | |
Індексний рядок | F(X2) | 833.33 | -3.67 | -3.33 | 0 | 10 | 1.67 | 0 | 0 | 0 |
Даний план, також не оптимальний, тому будуємо знову нову симплексну таблицю. У якості ведучого виберемо елемент у стовбці х1.
План | Базис | В | x1 | x2 | x3 | x4 | x5 | x6 | x7 | min |
3 | x1 | 100 | 1 | 0.2 | 1.8 | 2.4 | 0.2 | 0 | 0 | 500 |
x6 | 800 | 0 | 2.6 | 0.4 | -3.8 | -0.4 | 1 | 0 | 307.69 | |
x7 | 500 | 0 | 1.4 | -0.4 | 2.8 | -0.6 | 0 | 1 | 357.14 | |
Індексний рядок | F(X3) | 1200 | 0 | -2.6 | 6.6 | 18.8 | 2.4 | 0 | 0 | 0 |
Даний план, знову не оптимальний, тому будуємо знову нову симплексну таблицю. У якості ведучого виберемо елемент у стовбці х2.
План | Базис | В | x1 | x2 | x3 | x4 | x5 | x6 | x7 | min |
4 | x1 | 38.46 | 1 | 0 | 1.77 | 2.69 | 0.23 | -0.08 | 0 | 500 |
x2 | 307.69 | 0 | 1 | 0.15 | -1.46 | -0.15 | 0.38 | 0 | 307.69 | |
x7 | 69.23 | 0 | 0 | -0.62 | 4.85 | -0.38 | -0.54 | 1 | 357.14 | |
Індексний рядок | F(X4) | 2000 | 0 | 0 | 7 | 15 | 2 | 1 | 0 | 0 |
Оскільки всі оцінки >0, то знайдено оптимальний план, що забезпечує максимальний прибуток: х1=38.46, х2=307.69, х3=0, х4=0, х5=0, х6=0, х7=69.23. Прибуток, при випуску продукції за цим планом, становить 2000 грн.
Завдання 2
Записати двоїсту задачу до поставленої задачі лінійного програмування. Розв’язати одну із задач симплексним методом і визначити оптимальний план іншої задачі. Оптимальні результати перевірити графічно.
Розв’язок
Пряма задача лінійного програмування має вигляд:
При обмеженнях:
Оскільки, у прямій задачі лінійного програмування необхідно знайти максимум функції, то приведемо першопочаткову умову до вигляду:
Для досягнення відповідного вигляду помножимо 1-ю нерівність на -1
-2X1-5X2≥-10
В результаті отримаємо наступні матриці:
Для складання двоїстої задачі лінійного програмування знайдемо матриці АT, BT, C.
А, В, СТ.
Відповідно, двоїста задача лінійного програмування матиме вигляд:
F(Y)= 10Y1+28Y2-8Y3 (min)
Обмеження:
-2Y1+3Y2+1Y3≥ 5
-14Y1+2Y2-11Y3≥ 5
Y1≥0
Y2≥0
Y3≥0
Розв’яжемо задачу лінійного програмування симплексним методом.
Визначимо максимальное значення цільової функції F(X) = 8x1+2x2 за таких умов-обмежень.
2x1+5x2≥10
3x1+4x2≤28
x1-3x2≤5
Для побудови першого опорного плану систему нерівностей наведемо до системи рівнянь шляхом введення додаткових змінних (перехід до канонічної форми).
2x1 + 5x2-1x3 + 0x4 + 0x5 = 10
3x1 + 4x2 + 0x3 + 1x4 + 0x5 = 28
1x1-3x2 + 0x3 + 0x4 + 1x5 = 5
Введемо штучні змінні x.
2x1 + 5x2-1x3 + 0x4 + 0x5 + 1x6 = 10
3x1 + 4x2 + 0x3 + 1x4 + 0x5 + 0x6 = 28
1x1-3x2 + 0x3 + 0x4 + 1x5 + 0x6 = 5
Для постановки завдання на максимум цільову функцію запишемо так:
F(X) = 8x1+2x2 - Mx6 => max
Вважаючи, що вільні змінні рівні 0, отримаємо перші опорний план:
X1 = (0,0,0,28,5,10)
План | Базис | В | x1 | x2 | x3 | x4 | x5 | x6 |
0 | x6 | 10 | 2 | 5 | -1 | 0 | 0 | 1 |
x4 | 28 | 3 | 4 | 0 | 1 | 0 | 0 | |
x5 | 5 | 1 | -3 | 0 | 0 | 1 | 0 | |
Індексний рядок | F(X0) | -10M | -8-2M | -2-5M | 1M | 0 | 0 | 0 |
Переходимо до основного алгоритму симплекс-методу.
План | Базис | В | x1 | x2 | x3 | x4 | x5 | x6 | min |
1 | x6 | 10 | 2 | 5 | -1 | 0 | 0 | 1 | 2 |
x4 | 28 | 3 | 4 | 0 | 1 | 0 | 0 | 7 | |
x5 | 5 | 1 | -3 | 0 | 0 | 1 | 0 | 0 | |
Індексний рядок | F(X1) | -10M | -8-2M | -2-5M | 1M | 0 | 0 | 0 | 0 |
Оскільки, в індексному рядку знаходяться негативні коефіцієнти, поточний опорний план неоптимальний, тому будуємо новий план. У якості ведучого виберемо елемент у стовбці х2, оскільки значення коефіцієнта за модулем найбільше.
План | Базис | В | x1 | x2 | x3 | x4 | x5 | x6 | min |
2 | x2 | 2 | 0.4 | 1 | -0.2 | 0 | 0 | 0.2 | 5 |
x4 | 20 | 1.4 | 0 | 0.8 | 1 | 0 | -0.8 | 14.29 | |
x5 | 11 | 2.2 | 0 | -0.6 | 0 | 1 | 0.6 | 5 | |
Індексний рядок | F(X2) | 4 | -7.2 | 0 | -0.4 | 0 | 0 | 0.4+1M | 0 |
Даний план, також не оптимальний, тому будуємо знову нову симплексну таблицю. У якості ведучого виберемо елемент у стовбці х1.
План | Базис | В | x1 | x2 | x3 | x4 | x5 | x6 | min |
3 | x1 | 5 | 1 | 2.5 | -0.5 | 0 | 0 | 0.5 | 0 |
x4 | 13 | 0 | -3.5 | 1.5 | 1 | 0 | -1.5 | 8.67 | |
x5 | 0 | 0 | -5.5 | 0.5 | 0 | 1 | -0.5 | 0 | |
Індексний рядок | F(X3) | 40 | 0 | 18 | -4 | 0 | 0 | 4+1M | 0 |
Даний план, також не оптимальний, тому будуємо знову нову симплексну таблицю. У якості ведучого виберемо елемент у стовбці х3.
План | Базис | В | x1 | x2 | x3 | x4 | x5 | x6 | min |
4 | x1 | 5 | 1 | -3 | 0 | 0 | 1 | 0 | 0 |
x4 | 13 | 0 | 13 | 0 | 1 | -3 | 0 | 1 | |
x3 | 0 | 0 | -11 | 1 | 0 | 2 | -1 | 0 | |
Індексний рядок | F(X4) | 40 | 0 | -26 | 0 | 0 | 8 | 1M | 0 |
Поточний опорний план неоптімальний, тому що в індексному рядку знаходяться негативні коефіцієнти