2. Постановка задачі
Розв’язати задачу лінійного програмування симплекс методом (номер завдання відповідає двом останнім цифрам залікової книжки студента, крім цифр 00 – які відповідають завданню під номером100)
Варіант 48
F(x1,x2)
= 3x1
+ 6x2
max
;
x1
+ x2
8,
3x1 + 7x2 21,
x1 + 2x2 6,
0 x1 7, 0 x2 7.
2.1 Розв’язання без використання пакетів програм.
Cимплекс метод розв’язаний за допомогою сиплекс таблиць
Жордана -Гауса.
Для того щоб показати , що я освоїв даний матеріал зміню напрям цільової функції на min . Оскільки в даній лабораторній роботі розглядається і сиплекс метод двійної задачі то в наступному методі буде показано значення цільової функції при max.
З попередньої лабораторної роботи відомо що
F(0,8)=48->max
F (0,3)=18-> min
Приведемо систему обмежень до системи нерівностей сенсу ≤, помноживши відповідні рядки на (-1).
Визначимо мінімальне значення цільової функції F (X) = 3x1 + 6x2 при наступних умовах-обмеженнях.
x1 + x2 8,
3x1 + 7x2 21,
x1 + 2x2 6,
Для побудови першого опорного плану систему нерівностей приведемо систему рівнянь до рівностей шляхом введення додаткових змінних (перехід до канонічної форми).
В 1-й нерівності типу ( )вводимо базисну змінну x3. В 2-й нерівності типу
( ) вводимо базисну змінну x4. У 3-й нерівності типу ( ) вводимо базисну змінну x5.
1x1 + 1x2 + 1x3 + 0x4 + 0x5 = 8
-3x1-7x2 + 0x3 + 1x4 + 0x5 = -21
-1x1-2x2 + 0x3 + 0x4 + 1x5 = -6
Матриця коефіцієнтів A=a(ij) цієї системи рівнянь має вигляд :
Базисні змінні це змінні, які входять тільки в одне рівняння системи обмежень і притому з одиничним коефіцієнтом.
Вирішимо систему рівнянь щодо базисних змінних:
x3, x4, x5,
Вважаючи, що вільні змінні рівні 0, отримаємо перший опорний план:
X1 = (0,0,8,-21,-6)
Базисне рішення називається допустимим, якщо воно невід’ємне.
Базис |
B |
x1 |
x2 |
x3 |
x4 |
x5 |
x3 |
8 |
1 |
1 |
1 |
0 |
0 |
x4 |
-21 |
-3 |
-7 |
0 |
1 |
0 |
x5 |
-6 |
-1 |
-2 |
0 |
0 |
1 |
F(X0) |
0 |
-3 |
-6 |
0 |
0 |
0 |
1. Перевірка критерію оптимальності.
План 0 в симплексного таблиці є псевдопланом, тому визначаємо провідний рядок і стовпець.
2. Визначення нової вільної змінної.
Серед негативних значень базисних змінних вибираємо найбільший по модулю.
Провідним буде 2-ий рядок, а змінну x4 слід вивести із базису.
3. Визначення нової базисної змінної.
Мінімальне значення θ відповідає 2-му стовпцю, тобто змінну x2 необхідно ввести в базис.
На перетині провідного рядка і стовпця знаходиться дозволяючий елемент (ДЕ), який дорівнює (-7).
Базис |
B |
x1 |
x2 |
x3 |
x4 |
x5 |
x3 |
8 |
1 |
1 |
1 |
0 |
0 |
x4 |
-21 |
-3 |
-7 |
0 |
1 |
0 |
x5 |
-6 |
-1 |
-2 |
0 |
0 |
1 |
F(X) |
0 |
-3 |
-6 |
0 |
0 |
0 |
Θ(дельта) |
0 |
-3 : (-3) = 1 |
-6 : (-7) = 6/7 |
- |
- |
- |
4. Перерахунок симплекс таблиці
Виконуємо перетворення симплексного таблиці методом Жордана-Гаусса.
Базис |
B |
x1 |
x2 |
x3 |
x4 |
x5 |
x3 |
5 |
4/7 |
0 |
1 |
1/7 |
0 |
x2 |
3 |
3/7 |
1 |
0 |
-1/7 |
0 |
x5 |
0 |
-1/7 |
0 |
0 |
-2/7 |
1 |
F(X0) |
18 |
-3/7 |
0 |
0 |
-6/7 |
0 |
Показую розрахунок кожного елемента у вигляді таблиці:
B |
x 1 |
x 2 |
x 3 |
x 4 |
x 5 |
8-(-21 • 1):-7 |
1-(-3 • 1):-7 |
1-(-7 • 1):-7 |
1-(0 • 1):-7 |
0-(1 • 1):-7 |
0-(0 • 1):-7 |
-21 : -7 |
-3 : -7 |
-7 : -7 |
0 : -7 |
1 : -7 |
0 : -7 |
-6-(-21 • -2):-7 |
-1-(-3 • -2):-7 |
-2-(-7 • -2):-7 |
0-(0 • -2):-7 |
0-(1 • -2):-7 |
1-(0 • -2):-7 |
0-(-21 • -6):-7 |
-3-(-3 • -6):-7 |
-6-(-7 • -6):-7 |
0-(0 • -6):-7 |
0-(1 • -6):-7 |
0-(0 • -6):-7 |
У базисному стовпці всі елементи позитивні.
Переходимо до основного алгоритму симплекс-методу.
1. Перевірка критерію оптимальності.
Серед значень індексного рядка немає позитивних елементів(тих що задовольняють умову). Тому ця таблиця визначає оптимальний план задачі.
Остаточний варіант симплекс-таблиці:
Базис |
B |
x1 |
x2 |
x3 |
x4 |
x5 |
x3 |
5 |
4/7 |
0 |
1 |
1/7 |
0 |
x2 |
3 |
3/7 |
1 |
0 |
-1/7 |
0 |
x5 |
0 |
-1/7 |
0 |
0 |
-2/7 |
1 |
F(X1) |
18 |
-3/7 |
0 |
0 |
-6/7 |
0 |
Оптимальний план при F=3X1+6X2->min
x3 = 5
x2 = 3
x5 = 0
F(X) = 6•3 = 18
Отже значення з лабораторною роботою №1 співпали.
Перевірка даного методу в Exel подана нижче у розділі №3 (малюнок 1-2)
Cимплекс метод розв’язаний за допомогою сиплекс таблиць
З додаванням додаткових змінних .
Умова
F(x1,x2) = 3x1 + 6x2 max ;
x1 + x2 8,
3x1 + 7x2 21,
x1 + 2x2 6,
0 x1 7, 0 x2 7.
Тут розглядається варіант зі снаходженням оптимального плану для max.
Для побудови першого опорного плану систему нерівностей приведемо до системи рівностей шляхом введення додаткових змінних (перехід до канонічної формі).
В 1-й нерівності типу (≤) вводимо базисну змінну x3. В 2-й нерівності типу (≥) вводимо базисну змінну x4 зі знаком мінус. У 3-й нерівності типу (≥) вводимо базисну змінну x5 зі знаком мінус.
1x1 + 1x2 + 1x3 + 0x4 + 0x5 = 8
3x1 + 7x2 + 0x3-1x4 + 0x5 = 21
1x1 + 2x2 + 0x3 + 0x4-1x5 = 6
Введемо штучні змінні x: в 2-e рівність вводимо змінну x6; в 3-у рівність вводимо змінну x7;
1x1 + 1x2 + 1x3 + 0x4 + 0x5 + 0x6 + 0x7 = 8
3x1 + 7x2 + 0x3-1x4 + 0x5 + 1x6 + 0x7 = 21
1x1 + 2x2 + 0x3 + 0x4-1x5 + 0x6 + 1x7 = 6
Для постановки задачі на максимум цільову функцію запишемо так:
F (X) = 3x1 +6 x2 - Mx6 - Mx7 → max
За використання штучних змінних, що вводяться у цільову функцію, накладається так званий штраф величиною М, дуже велике позитивне число, яке зазвичай не задається.
Отриманий базис називається штучним, а метод рішення називається методом штучного базису.
Причому штучні змінні не мають відношення до змісту поставленого завдання, однак вони дозволяють побудувати стартову точку, а процес оптимізації змушує ці змінні приймати нульові значення та забезпечити допустимість оптимального рішення.
З рівнянь виражаємо штучні змінні:
x6 = 21-3x1-7x2+x4
x7 = 6-x1-2x2+x5
які підставимо в цільову функцію:
F(X) = 3x1 + 6x2 - M(21-3x1-7x2+x4) - M(6-x1-2x2+x5) → max
або
F(X) = (3+4M)x1+(6+9M)x2+(-1M)x4+(-1M)x5+(-27M) → max
Матриця коефіцієнтів A = a (ij) цієї системи рівнянь має вигляд:
1 |
1 |
1 |
0 |
0 |
0 |
0 |
3 |
7 |
0 |
-1 |
0 |
1 |
0 |
1 |
2 |
0 |
0 |
-1 |
0 |
1 |
Базисні перемінні це змінні, які входять тільки в одне рівняння системи обмежень і при цьому з одиничним коефіцієнтом.
Вирішимо систему рівнянь щодо базисних змінних:
x3, x6, x7,
Вважаючи, що вільні змінні рівні 0, отримаємо перший опорний план:
X1 = (0,0,8,0,0,21,6)
Базисне рішення називається допустимим, якщо воно невід’ємне.
Базис |
B |
x1 |
x2 |
x3 |
x4 |
x5 |
x6 |
x7 |
x3 |
8 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
x6 |
21 |
3 |
7 |
0 |
-1 |
0 |
1 |
0 |
x7 |
6 |
1 |
2 |
0 |
0 |
-1 |
0 |
1 |
F(X0) |
-27M |
-3-4M |
-6-9M |
0 |
1M |
1M |
0 |
0 |
Переходимо до основного алгоритму симплекс-методу.
Ітерація № 1.
Крок1 |
|
|
|
|
|
|
|
|
Базис |
БП |
x 1 |
x 2 |
x 3 |
x 4 |
x 5 |
X6 |
x7 |
x3 |
8 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
X6 |
21 |
3 |
7 |
0 |
-1 |
0 |
1 |
0 |
X7 |
6 |
1 |
2 |
0 |
0 |
-1 |
0 |
1 |
F(x) |
-27M |
-4M-3 |
-9M-6 |
0 |
M |
M |
0 |
0 |
Перерахунок симплекс-таблиці.
Формуємо наступну частину симплексного таблиці.
Замість змінної x до таблиці 1 увійде змінна x2.
Рядок, відповідної змінної x2 в плані(таблиці) 2, отриманої в результаті поділу всіх елементів рядка x6 таблиці 1 на дозвільний (той який стоїть на перетині рядків) елемент ДЕ = 7
На місці дозвільного елемента в таблиці(плані) 1 отримуємо 1.
В інших клітинах стовпця x2 плану 1 записуємо нулі.
Таким чином, у новому плані 1 заповнюю рядок x2 і стовпець x2.
Всі інші елементи нового плану 1, включаючи елементи індексного рядка, визначаються за правилом прямокутника.
Для цього вибираємо зі старого плану(таблиці 1 ) чотири числа, які розташовані у вершинах прямокутника і завжди включають дозвільний елемент ДЕ.
Зроблю розрахунок кожного елемента у вигляді таблиці:
Крок 2 |
|
|
|
|
|
|
|
|
Базис |
B |
x 1 |
x 2 |
x 3 |
x 4 |
x 5 |
x6 |
X7 |
x3 |
5 |
4/7 |
0 |
1 |
1/7 |
0 |
-1/7 |
0 |
x2 |
3 |
3/7 |
1 |
0 |
-1/7 |
0 |
1/7 |
0 |
X7 |
0 |
1/7 |
0 |
0 |
2/7 |
-1 |
-2/7 |
1 |
F(X) |
18 |
-1/7M-3/7 |
0 |
0 |
-2/7M-6/7 |
M |
9/7M+6/7 |
0 |
Отримуємо нову симплекс-таблицю:
Крок 3 |
|
|
|
|
|
|
|
|
Базис |
B |
x 1 |
x 2 |
x 3 |
x 4 |
x 5 |
X6 |
x7 |
x3 |
5 |
1/2 |
0 |
1 |
0 |
1/2 |
0 |
-1/2 |
x2 |
3 |
1/2 |
1 |
0 |
0 |
-1/2 |
0 |
1/2 |
x4 |
0 |
1/2 |
0 |
0 |
1 |
-7/2 |
-1 |
7/2 |
F(X) |
18 |
0 |
0 |
0 |
0 |
-3 |
M |
M+3 |
Перерахунок симплекс-таблиці.
Крок 4 |
|
|
|
|
|
|
|
|
Базис |
B |
x 1 |
x 2 |
x 3 |
x 4 |
x 5 |
X6 |
X7 |
x5 |
10 |
1 |
0 |
2 |
0 |
1 |
0 |
-1 |
x2 |
8 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
x4 |
35 |
4 |
0 |
7 |
1 |
0 |
-1 |
0 |
F(X3) |
48 |
3 |
0 |
6 |
0 |
0 |
M |
M |
Отже отримали нову симплекс-таблицю:
Базис |
B |
x1 |
x2 |
x3 |
x4 |
x5 |
x6 |
x7 |
x5 |
10 |
1 |
0 |
2 |
0 |
1 |
0 |
-1 |
x2 |
8 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
x4 |
35 |
4 |
0 |
7 |
1 |
0 |
-1 |
0 |
F(X3) |
48 |
3 |
0 |
6 |
0 |
0 |
1M |
1M |
Оптимальний план запишемо так:
x5 = 10
x2 = 8
x4 = 35
F(X) = 6•8 = 48
