2. План
1.Симплексний метод розв’язування
задач лінійного програмування.
2.Алгоритм розв’язування задач
лінійного програмування симплекс-
методом.
3.Приклад розв’язання задачі
лінійного програмування симплекс-
методом.
4. Двоїстий симплекс-метод.
.
3. 4.1. Симплексний метод розв’язування ЗЛП
• Загальним методом розв’язання
задач лінійного програмування є
симплекс-метод, який
застосував американський
вперше
вчений
Джордж Данціг в 1949 році. Хоча сам
алгоритм методу, за винятком вибору
напрямного (розв’язувального)
елементу, був відомий ще у 19 ст.
Від латинского simplex — простий
.
4. 8 ноября 1914 — 13 мая 2005
Американский математик Джордж Данциг,
будучи аспирантом университета, однажды опоздал
• на урок и принял написанные на доске уравнения за
домашнее задание. Оно показалось ему сложнее
обычного, но через несколько
выполнить. Оказалось, что
дней он смог его
он решил две
«нерешаемые» проблемы в статистике, над которыми
бились многие уч
. ёные.
5. Процес розв’язування задачі
симплекс-методом
обчислювальні
має ітераційний
процедури
характер:
(ітерації) одного й того самого типу
повторюються у певній послідовності
доти, доки
оптимальний
не буде отримано
план задачі, або
з’ясовано, що його не існує.
.
6. • Симплекс-метод – це поетапна
обчислювальна процедура, в основу
якої покладено принцип послідовного
поліпшення значень цільової функції
переходом від одного опорного плану
задачі лінійного програмування до
іншого.
.
7. Геометрично симплекс-метод
полягає в переміщенні по вершинах
многокутника
послідовному
допустимих планів при
переході від однієї
вершини до іншої з метою знаходження
тієї вершини, в якій цільова функція
приймає екстремальне значення.
.
8. 4.2. Алгоритм розв’язування симплекс-методом
• 1. Визначення початкового опорного
плану задачі лінійного програмування.
• 2. Побудова симплексної таблиці.
.
9. • 3. Перевірка опорного плану на
оптимальність за допомогою оцінок
•
. j Z j C j
• Якщо всі оцінки j задовольняють умову
оптимальності, то визначений опорний
план є оптимальним планом задачі.
Якщо хоча б одна з оцінок не
задовольняє умову оптимальності, то
переходять до нового опорного плану
задачі або встановлюють, що
оптимального плану не існує.
.
10. • 4. Перехід до нового опорного плану
визначенням
задачі з метою його покращення
напрямного
та розрахунком нової
виконується
елементу
симплексної таблиці за допомогою
методу Жордана-Гаусса.
• 5. Повторення дій, починаючи з п. 3.
Розглянемо більш детально кожен з
етапів алгоритму:
.
11. I етап:
• 1). Задача лінійного програмування
записується в канонічній формі, тобто у
вигляді обмежень-рівнянь з невідємними
правими частинами. Для цього в лівій
частині обмежень нерівностей вводяться
додаткові (балансуючі) змінні, а саме
для нерівностей типу „” - зі знаком „+”,
а для нерівностей типу „” - зі знаком
„-”. У цільовій функції задачі додаткові
змінні мають коефіцієнт нуль.
.
12. які становлять базис вимірного
m
2). Задачу лінійного програмування
записують у векторній формі.
За означенням опорного плану задачі
лінійного програмування його утворюють
m одиничних лінійно незалежних векторів,
простору (де m кількість обмежень у
задачі лінійного програмування).
.
13. Можливі випадки:
а) в системі обмежень є необхідна
кількість одиничних векторів. Тоді
початковий опорний план визначається
безпосередньо без додаткових дій;
.
14. • б) у системі обмежень немає необхідної
одиничних
Тоді
кількості
векторів.
початкового
для
опорного
застосовують метод
незалежних
побудови
плану
штучного
•
базису (М-метод).
Ідея його полягає в тому, що відсутні
одиничні вектори можна дістати, увівши
до відповідних обмежень нові змінні з
коефіцієнтом +1, які називаються
штучними.
.
15. • У цільовій функції задачі лінійного
програмування штучні змінні мають
•
коефіцієнт –М (для задачі на max) або
+M (для задачі на min), де М – досить
велике додатне число.
Таким чином отримуємо розширену
задача лінійного програмування.
.
16. • 3) Визначені одиничні лінійно незалежні
вектори утворюють базис, і
задачі, що відповідають
змінні
їм,
• Вільні змінні прирівнюють до нуля
та з кожного обмеження задачі
визначають значення базисних змінних.
називаються базисними (їх кільmкість
дорівнює ), а решта змінних
називається n
ві
ль
m
ними (їх кількість
).
.
17. • Таким чином отримують
початковий
лінійного програмування,
опорний план задачі
який
геометрично відповідає одній з вершин
планів і
•
невироджений, а у випадку, коли серед
них є нульові, то план вироджений.
випуклого многокутника
позначається
X0 b1 ,b2 ,...,bm ,0,0,.
...,0
Якщоbi , то план
0,i 1,2,...,m
.
18. • II етап.
Подальший обчислювальний процес та
перевірку опорного
оптимальність записують
плану на
у вигляді
симплексної таблиці.
• У першому стовпчику таблиці – «№»
– записують номер ітерації, в другому
стовпчику – «і» – номер обмеження, у
третьому стовпчику – «Базис» –
записують базисні змінні опорного плану,
причому в тій послідовності, в якій
вони розміщуються в системі
обмежень задачі.
.
19. • В четвертому стовпчику – «Сбаз» –
записують коефіцієнти при базисних
змінних у цільовій функції задачі;
в п’ятому стовпчику – «План» –
записують значення базисних змінних і
відшукуванні у процесі розв’язування
задачі компоненти оптимального плану.
У решті стовпчиків симплексної
таблиці, кількість яких
кількості змінних задачі,
відповідні коефіцієнти
обмеження задачі
відповідає
записують
з кожного
лінійного
програмування.
.
20. • У наступному стовпчику – «Θ» –
записують
відношення
•
• стовпчику
знайдені
В останньому
«Опорний план» записують
значення опорного плану.
aik
значення симплексного
bi
.
22. .
• III етап.
Перевіряють опорний план на
оптимальність згідно з теоремою.
Теорема (ознака оптимальності опорного
плану).
(для задачі на max)
(для задачі на min)
* * *
• Опорний план X задачі
*
х1 , х2 , … , хn
лінійного програмування є оптимальним,
якщо для всіх значень
j,( j 1,2,..,n ) виконується умова:
j Z j C j 0
j
j j C 0
або
Z
23. • Якщо для побудови опорного плану
було використано метод штучного
базису (М-метод), необхідною умовою
оптимальності є також вимога, щоб у
процесі розв’язування задачі всі штучні
змінні були виведені з базису i
дорівнювали нулю.
.
24. Для знаходження значень
використовується наступна формула:
стовпчиків « » та « » мінус
j
m
( j 1,n )
j Z j C j ciaij c j
i1
Cбаз
X j
або безпосередньо із симплексної
таблиці як скал
→
ярний добуто
→
к векторів-
відповідний коефіцієнт cj .
.
25. •
• Якщо використовується М-метод,
Розраховані оцінки j записують в
• m 1 рядок симплексної таблиці, який
називається оціночним.
то таблиця доповнюється оціночним
•m 2 рядком, який включатиме в собі
значення оцінок j з буквою « M».
.
26. • При перевірці умови оптимальності
можливі такі випадки:
• а) усі
оптимальності, і тоді визначений опорний
план є оптимальним;
• б) не всі задовольняють умову
оптимальності, і тоді потрібно виконати
перехід до наступного, нового опорного
плану задачі.
j 1 ,n задовольняють умову
j
j
.
27. • IV етап.
• Перехід від одного опорного плану
до іншого виконується зміною базису,
тобто виключенням з нього деякої
•
змінної та введенням замість неї нової з
числа вільних змінних задачі.
Змінна, яка включається до нового
базису, відповідає тій оцінці j , що не
задовольняє умову оптимальності.
.
28. Якщо таких оцінок декілька, то серед
них вибирають найбільшу за
абсолютною величиною і відповідну їй
змінну вводять до базису. А саме: для
их оцінок
вибирають найбільшу за абсолютною
величною, тобто знаходять
а для задачі на min
найбільше значення серед
задачі на max серед від’єм
н
j
j 0,
– знаходять
додатних
m a x j k ,
j 0
оцінок j , тобто знаходять
max j k ,
.
29. •
• Якщо є декілька однакових за
•
•
(для задачі на max) і
( для задачі на min).
Нехай індекс зазначеної змінної j k .
Тоді відповідний k стовпчик симплексної
таблиці називається напрямним і
позначається вертикальною стрілкою.
абсолютною величиною оцінок j , то до
базису вводять ту змінну, якій відповідає
max cj
mincj
.
30. • Для визначення змінної, що має бути
виключена з базису, знаходять для всіх
додатних значень напрямного
тобто розділивши елементи стовпчика
«План» на відповідні додатні елементи
напрямного стовпчика. Потім вибирають
aik
стовпчика симплексне відношення ,
найменше його значення , яке івказує
на змінну, що виводиться з базису.
Припустимо, що це виконується для i r
Тоді відповідний r рядок симплексної
таблиці називається напрямним і
позначається горизонтальною стрілкою.
.
31. • Якщо при розрахунку симплексного
відношення виникає декілька рівних
його значень, то потрібно вибрати такий
рядок, для якого відношення елементів
наступного стовпчика до напрямного є
знову
найменшим. Якщо при цьому
виявляться рівними мінімальні
відношення, то складаються відношення
елементів
операцію
наступного стовпчика. Цю
продовжують до того часу,
поки напрямний рядок не визначиться
однозначно.
.
32. • Дана ситуація виникає тоді, коли
маємо вироджений план і тоді у процесі
виконання ітерацій виникає можливість
повернення
опорного
до
плану,
раніше
тобто
вибраного
виникає
зациклювання у процесі розрахунку.
.
33. • Перетин напрямного стовпчика та
напрямним елементом. За
і
•
методу Жордана-Гаусса розраховують
нову симплексну таблицю.
Далі ітераційний процес повторюють
доти, доки не буде визначено
оптимальний план задачі.
напрямного рядка визначає число
симплексної таблиці ark , яке називають
допомогою знайденого еaлrkемента
.
34. Побудова нової симплексної таблиці
• Спочатку заповнюють стовпчики
“№”,“і”, ”Базис” і “Сбаз”, а решту
елементів нової таблиці розраховують
за такими правилами:
• 1. Елементи напрямного рядка ділять
на напрямний елемент і здобуті числа
записують у відповідний рядок нової
симплексної таблиці.
.
35. • 2. Напрямний стовпчик у новій таблиці
записують як одиничний з одиницею
замість напрямного елемента.
• 3. Якщо в напрямному рядку є нульовий
елемент, то відповідний
переписують у нову
стовпчик
симплексну
таблицю без змін.
.
36. • 4. Якщо в напрямному стовпчику є
нульовий елемент, то відповідний рядок
переписують у нову симплексну
таблицю без змін.
• 5. Усі інші елементи нової симплексної
таблиці, у тому числі елементи
стовпчика “План”, розраховуються за
спеціальними
правилом
формулами, або за
прямокутника, який
умовно складається в попередній
симплексній таблиці.
.
37. •
•
• Число 2 – число, яке розміщене на
місці елемента нової симплексної
таблиці, який ми маємо розрахувати.
• Число 3 і число 4 – елементи, що
розміщуються в двох протилежних
вершинах умовного прямокутника.
Вершини прямокутника утворюють такі
числа:
Число 1 – напрямний елемент ark .
Число 2 Число 3
Число 4 Число 1
.
38. • Необхідний елемент
симплекс таблиці визначають
нової
таким
• Наявність двох способів визначення
оцінок опорного плану (за правилом
та за відповідною
дає можливість
прямокутника
формулою)
контролювати правильність обчислень
на кожному кроці симплекс-методу.
Число1
чином : Число2Число1Число3Число4
Число2
.
39. • При застосуванні симплекс-методу можливі
такі випадки:
• 1. Якщо в оціночному рядку останньої
симплексної таблиці, яка включає в собі
оптимальний план, є хоча б одна нульова оцінка
, що відповідає вільній (небазисній) змінній,
альтернативний оптимальний план, який
можна отримати, вибравши напрямний елемент
у зазначеному стовпчику і виконавши один крок
симплекс-методом. Тоді розв’язок ЗЛП можна
записати у вигляді:
•
m 1
тобто значень j
j 0
більше ніж m, то ЗЛП має
,де10,2 0,12 1
Xопт1Xо
пт2Хо
пт
.
40. (для задачі максимізації
• 2. Якщо при переході у симплекс-методі
від одного опорного плану задачі до
іншого в напрямному стовпчику немає
додатних елементівaik , тобто усі aik 0,
то оптимальних планів не існує і
цільова функція задачі лінійного
програмування є необмеженою в
області допустимих планів
max Z ,
а для задачі мінімізації min Z i 1),.m
.
41. • 3. Якщо для опорного плану всі оцінки
задовольняють умову
оптимальності, але при цьому хоча б
одна штучна змінна є базисною і має
додатне
обмежень
значення, то система
задачі несумісна й
оптимальних планів задачі не існує.
j ( j 1,n )
.
42. 4.3. Задача 1.3. Симплекс-метод
Z 30x1 40x2 max
252.
3 x 12 x
1 2
4 x1 4 x 2 120 ,
12 x1 4 x 2 300 ,
x1 0,x2 0.
• Визначимо оптимальний план задачі
лінійного програмування за допомогою
симплексного методу.
.
43. .
•1. Запишемо задачу лінійного
програмування в канонічній формі.
•Для цього перейдемо від обмежень-
нерівностей до строгих рівнянь, увівши до
лівої частини обмежень додаткові змінні
, які за економічним змістом
•x3 ,x4 ,x5
3x 12x
x 120,
x 252.
4x 4x
1 2 5
4
1 2
означають можливу, але не використану
сировину.
Z 30 x1 40 x2 0 x3 0 x4 0 x5 max;
12x1 4x2 x3 300,
xj 0, j 1,5.
44. • Запишемо систему обмежень ЗЛП у
Оскільки вектори одиничні та
векторній формі:
x1 A1 x2 A2 x3 A3 x4 A4 x5 A5 A0
,
1
1
0
A5 0.
0
A4 1,
0
A3 0,
12
4 1 0
A2 4 ,
3
4 ,
12
• де A
A3 ,A4 ,A5
лінійно-незалежні,то вони утворюють
базис трьохвимірx3н,оx4г,оx5простору,змінні які
їм відповідаютьx1 , x2 базисні змінні,
решта змінни.х вільні змінні.
45. • Прирівнявши вільні змінні до нуля,
одержимо значення базисних змінних:
x1 x2 0 x3 300,x4 120,x5 252.
• Отже, початковий опорний план
X0 0;0;300;120;252
йому відповідає початкове значення
Zц0
іль3о0во0їф4у0нк0ції0 300 0 120 0 252 0
2. Складемо симплексну таблицю
.
46. Опор-
ний
план
1 0 300 12 4 1 0 0
0 120 4 4 0 1 0
0 2
3 0 252 3 12 0 0 1
4
баз
Базис C План
N і
30 40 0 0 0
x1 x2 x3 x4 x5
x3
x4
x5
Z ,j
X0
.
48. Опор-
ний
план
1
0
2
3
0 300 12 4 1 0 0
0 120 4 4 0 1 0
0 252 3 12 0 0 1
4 0 -30 -40 0 0 0
баз
Базис C План
N і
30 40 0 0 0
x1 x2 x3 x4 x5
x3
x4
5
x
Z ,j
0
X
.
49. • 3. Перевіримо його на оптимальність
згідно теореми оптимальності.
• Оскільки в ньому – два від’ємні
значення
що суперечить умові оптимальності
, то початковий
2
1
30 , 40,
для задачі на max
опорний план X0 – неоптимальний.
.
50. Опор-
ний
план
1
0
2
3
0 300 12 4 1 0 0
0 120 4 4 0 1 0
0 252 3 12 0 0 1
4 0 -30 -40 0 0 0
баз
Базис C План
N і
30 40 0 0 0
x1 x2 x3 x4 x5
x3
x4
5
x
Z ,j
0
X
j 0
.
51. • 4. Для переходу до нової симплексної
таблиці визначимо напрямний елемент.
• Спочатку визначимо напрямний
стовпчик.
• Оскільки серед від’ємних оцінок
• найбільша за абсолютною величною
, то другий стовпчик буде
позначимо його
вертикальною стрілкою.
1 ,2
• 2 40
напрямним,
.
52. 30 40 0 0 0
1
0 2
3 0 252 3 12 0 0 1 21
4 0 -30 -40 0 0 0
баз
Базис C План
N і
1 2
x x 3
x 4
x 5
x
Опор-
ний
План
x3 0 300 12 4 1 0 0 75
x4 0 120 4 4 0 1 0 30
x5
Z ,j
X0
j 0
.
53. •
aik
Для визначення напрямного рядка
визначимо симплексне відношення :
b
i
12
4
4 3
2
1
252
21
120
30;
300
75;
.
54. знайдених значень
, яке відповідає
– напрямному,
горизонтальною
• Виберемо
найменше
третьому
позначимо
стрілкою. На перетині напрямного
• Отже, з базису виключаємо змінну
серед
3 21
рядку
його
стовпчика та напрямного рядка
отримаємо напрямний елемент a32 12.
x5 і замість неї вводимо змінну x2 .
Будуємо нову ітерацію згідно
методу Жордана-Гаусса.
.
55. 1
0 2
0 300 12 4 1 0 0 25
0 120 4 4 0 1 0 30
3 0 252 3
12 0 0 1
4 0 -30 -40 0 0 0
Базис Cбаз План
N і
30 40 0 0 0
x1 x2 x3 x4 x5
Опор-
ний
План
x3
x4
5
x
Z ,j j 0
.
21
min
56. • У першій ітерації другий стовпчик
число
записуємо як одиничний з 1 замість
напрямного елементу a32, третій рядок
утворимо з елементів третього рядка
попередньої ітерації поділених на
a32 12
• Інші елементи таблиці розраховуємо
за правилом прямокутника.
300 12 4 252
216;
12 12 4 3
11; …
0 12 4 1
1
12 12 12 3
.
57. 0
ОП
0 36 3 0 0 1 -1/3
1 2
3 40 21 1/4 0 0 1/12
4 840 -20 0 0 0 10/3
Базис Cбаз План
N і
1
30 40 0 0
x1 x2
x3 x4
0 216 11 0 1 0
x5
-1/3
Z ,j
➢Одержаний опорний план
знову перевіряємо на
оптимальність.
X1
x3
x4
x2
.
1
59. • Оскільки на першій ітерації 1 20 0 ,
то визначений опорний план X 1 також
неоптимальний.
• Вибираємо як напрямний елемент a21 3
і будуємо наступну другу симплекс-
таблицю.
•
.
62. • Оскільки усі значення оціночного
рядка ,
то визначений опорний план
оптимальний.
j 0 ( j 1,5 )
.
63. • Отже, Xmax 12;18;84;0;0
і йому відповідає оптимальне
значення цільової функції
Z •30 12 40 18 0 84 0 0 0 0 1080
• Таким чином, план виробництва
продукції, що передбачає випуск 12
одиниць продукції А та 18 одиниць
продукції В, оптимальний і дає
найбільший прибуток 1080 ум. од. При
цьому перша сировина
використов
.
ується не
xп
3о
вн
8і
4
с,тx
ю
4,
а0д
,р
xу
5 г
а0
64. 4.4. ДВОЇСТИЙ СИМПЛЕКС-МЕТОД
• Двоїстий симплекс-метод (ДСМ) як і
симплекс–метод використовується для
розв’язання ЗЛП, які записано в
канонічній формі основної задачі, для
векторів. але вільні члени системи
, будь-які числа, на відміну
яких серед векторів X j є m одиничних
рівнянь bi
від симплекс-методу, де bi 0 .
.
65. Алгоритм ДСМ:
• 1. Знаходимо псевдо–план ЗЛП:
X b1 ;b2 ;…;bm ;0;0;…,;0
якщо
j 0.
.
66. 2. Перевіряємо псевдо-план на
оптимальність:
таке ,
• С) Якщо є числа
існують , то в даному випадку
виконується перехід до нового
опорного плану.
bi
• А) Якщо всі значення 0 при умові
• j 0 , то план оптимальний;
• Б) Якщо хоча б одне число bi 0
що всі aij 0 , то плану не існує, оскільки
система обмежень несумісна;
bi 0 такі, що для них
a ij 0
.
67. .
• 3. Вибір напрямного рядка виконується за
найбільшою абсолютною величиною від’ємних
чисел стовпчика “План”, тобто знаходиться
•
• Вибір напрямного стовпчика виконується за
найменшою абсолютною
відношення оціночного
величиною
–го рядка до
відповідних від’ємних елементів напрямного
рядка, або згідно з формулою
• (2.7)
Використовуючи напрямний елемент
розрахунок нової симплекс-
виконується
таблиці.
max b.i ,bi 0
m 1
aij
; aij 0 ;
m i n ; j 0
j
69. • Двоїстий СМ зручно використовувати
також і при розв’язанні задач, які мають
одиничний базис, але не належать до
задач у базисній або двоїстій базисній
формі, оскільки є від’ємні елементи, як
bi
серед значень ,jтак і серед значень
одночасно.
.
70. серед від’ємних коефіцієнтів
напрямного рядка вибирають елемент,
для якого знаходять відношення
(2.8)
• Розв’язування таких задач виконується
наступним чином: спочатку за
допомогою ДСМ виключаються всі
значення bi 0, потім оптимальний план
знаходять звичайним СМ ; для цього
потрібно замінити пункт (2.7) наступним:
aij
i ij
aij
•max
bi ; якщо b 0,a 0
.