ТЕМА 4
СИМПЛЕКСНИЙ ТА М-МЕТОД
(МЕТОД ШТУЧНОГО БАЗИСУ)
РОЗВ’ЯЗАННЯ ЗЛП
.
План
1.Симплексний метод розв’язування
задач лінійного програмування.
2.Алгоритм розв’язування задач
лінійного програмування симплекс-
методом.
3.Приклад розв’язання задачі
лінійного програмування симплекс-
методом.
4. Двоїстий симплекс-метод.
.
4.1. Симплексний метод розв’язування ЗЛП
• Загальним методом розв’язання
задач лінійного програмування є
симплекс-метод, який
застосував американський
вперше
вчений
Джордж Данціг в 1949 році. Хоча сам
алгоритм методу, за винятком вибору
напрямного (розв’язувального)
елементу, був відомий ще у 19 ст.
Від латинского simplex — простий
.
8 ноября 1914 — 13 мая 2005
Американский математик Джордж Данциг,
будучи аспирантом университета, однажды опоздал
• на урок и принял написанные на доске уравнения за
домашнее задание. Оно показалось ему сложнее
обычного, но через несколько
выполнить. Оказалось, что
дней он смог его
он решил две
«нерешаемые» проблемы в статистике, над которыми
бились многие уч
. ёные.
Процес розв’язування задачі
симплекс-методом
обчислювальні
має ітераційний
процедури
характер:
(ітерації) одного й того самого типу
повторюються у певній послідовності
доти, доки
оптимальний
не буде отримано
план задачі, або
з’ясовано, що його не існує.
.
• Симплекс-метод – це поетапна
обчислювальна процедура, в основу
якої покладено принцип послідовного
поліпшення значень цільової функції
переходом від одного опорного плану
задачі лінійного програмування до
іншого.
.
Геометрично симплекс-метод
полягає в переміщенні по вершинах
многокутника
послідовному
допустимих планів при
переході від однієї
вершини до іншої з метою знаходження
тієї вершини, в якій цільова функція
приймає екстремальне значення.
.
4.2. Алгоритм розв’язування симплекс-методом
• 1. Визначення початкового опорного
плану задачі лінійного програмування.
• 2. Побудова симплексної таблиці.
.
• 3. Перевірка опорного плану на
оптимальність за допомогою оцінок
• 
. j  Z j  C j
• Якщо всі оцінки  j задовольняють умову
оптимальності, то визначений опорний
план є оптимальним планом задачі.
Якщо хоча б одна з оцінок не
задовольняє умову оптимальності, то
переходять до нового опорного плану
задачі або встановлюють, що
оптимального плану не існує.
.
• 4. Перехід до нового опорного плану
визначенням
задачі з метою його покращення
напрямного
та розрахунком нової
виконується
елементу
симплексної таблиці за допомогою
методу Жордана-Гаусса.
• 5. Повторення дій, починаючи з п. 3.
Розглянемо більш детально кожен з
етапів алгоритму:
.
I етап:
• 1). Задача лінійного програмування
записується в канонічній формі, тобто у
вигляді обмежень-рівнянь з невідємними
правими частинами. Для цього в лівій
частині обмежень нерівностей вводяться
додаткові (балансуючі) змінні, а саме
для нерівностей типу „” - зі знаком „+”,
а для нерівностей типу „” - зі знаком
„-”. У цільовій функції задачі додаткові
змінні мають коефіцієнт нуль.
.
які становлять базис вимірного
m
2). Задачу лінійного програмування
записують у векторній формі.
За означенням опорного плану задачі
лінійного програмування його утворюють
m  одиничних лінійно незалежних векторів,
простору (де m  кількість обмежень у
задачі лінійного програмування).
.
Можливі випадки:
а) в системі обмежень є необхідна
кількість одиничних векторів. Тоді
початковий опорний план визначається
безпосередньо без додаткових дій;
.
• б) у системі обмежень немає необхідної
одиничних
Тоді
кількості
векторів.
початкового
для
опорного
застосовують метод
незалежних
побудови
плану
штучного
•
базису (М-метод).
Ідея його полягає в тому, що відсутні
одиничні вектори можна дістати, увівши
до відповідних обмежень нові змінні з
коефіцієнтом +1, які називаються
штучними.
.
• У цільовій функції задачі лінійного
програмування штучні змінні мають
•
коефіцієнт –М (для задачі на max) або
+M (для задачі на min), де М – досить
велике додатне число.
Таким чином отримуємо розширену
задача лінійного програмування.
.
• 3) Визначені одиничні лінійно незалежні
вектори утворюють базис, і
задачі, що відповідають
змінні
їм,
• Вільні змінні прирівнюють до нуля
та з кожного обмеження задачі
визначають значення базисних змінних.
називаються базисними (їх кільmкість
дорівнює ), а решта змінних
називається n
ві
ль
m
ними (їх кількість
).
.
• Таким чином отримують
початковий
лінійного програмування,
опорний план задачі
який
геометрично відповідає одній з вершин
планів і
•
невироджений, а у випадку, коли серед
них є нульові, то план вироджений.
випуклого многокутника
позначається
X0  b1 ,b2 ,...,bm ,0,0,.
...,0
Якщоbi , то план
 0,i  1,2,...,m
.
• II етап.
Подальший обчислювальний процес та
перевірку опорного
оптимальність записують
плану на
у вигляді
симплексної таблиці.
• У першому стовпчику таблиці – «№»
– записують номер ітерації, в другому
стовпчику – «і» – номер обмеження, у
третьому стовпчику – «Базис» –
записують базисні змінні опорного плану,
причому в тій послідовності, в якій
вони розміщуються в системі
обмежень задачі.
.
• В четвертому стовпчику – «Сбаз» –
записують коефіцієнти при базисних
змінних у цільовій функції задачі;
в п’ятому стовпчику – «План» –
записують значення базисних змінних і
відшукуванні у процесі розв’язування
задачі компоненти оптимального плану.
У решті стовпчиків симплексної
таблиці, кількість яких
кількості змінних задачі,
відповідні коефіцієнти
обмеження задачі
відповідає
записують
з кожного
лінійного
програмування.
.
• У наступному стовпчику – «Θ» –
записують
відношення
•
• стовпчику
знайдені
В останньому
«Опорний план» записують
значення опорного плану.
aik
значення симплексного
bi
.
Ба-
№ і зис
Сбаз План  Опор
ний
план
С1 С2 ... Сm ... Сn
x1 x2 ... хm ... xn
0
1 Х1 С1 b1
2 Х2 С2 b2
... ... … …
m хm сm bm
m+1
0
1 0 ... 0 ... a1n
0 1 ... 0 ... а2n
... ... ... ... ... …
0 0 ... 1 ... аmn
Z 1 2 … m … n
.
.
• III етап.
Перевіряють опорний план на
оптимальність згідно з теоремою.
Теорема (ознака оптимальності опорного
плану).
(для задачі на max)
(для задачі на min)
* * *
• Опорний план X задачі
*
 х1 , х2 , … , хn 
лінійного програмування є оптимальним,
якщо для всіх значень
j,( j  1,2,..,n ) виконується умова:
j  Z j  C j  0
j
j j  C  0
або
  Z
• Якщо для побудови опорного плану
було використано метод штучного
базису (М-метод), необхідною умовою
оптимальності є також вимога, щоб у
процесі розв’язування задачі всі штучні
змінні були виведені з базису i
дорівнювали нулю.
.
Для знаходження значень
використовується наступна формула:
стовпчиків « » та « » мінус
j
m
( j  1,n )
j  Z j  C j   ciaij  c j
i1
Cбаз
X j
або безпосередньо із симплексної
таблиці як скал
→
ярний добуто
→
к векторів-
відповідний коефіцієнт cj .
.
•
• Якщо використовується М-метод,
Розраховані оцінки j записують в
• m  1 рядок симплексної таблиці, який
називається оціночним.
то таблиця доповнюється оціночним
•m  2 рядком, який включатиме в собі
значення оцінок j з буквою « M».
.
• При перевірці умови оптимальності
можливі такі випадки:
• а) усі
оптимальності, і тоді визначений опорний
план є оптимальним;
• б) не всі задовольняють умову
оптимальності, і тоді потрібно виконати
перехід до наступного, нового опорного
плану задачі.
j  1 ,n задовольняють умову
j
 j
.
• IV етап.
• Перехід від одного опорного плану
до іншого виконується зміною базису,
тобто виключенням з нього деякої
•
змінної та введенням замість неї нової з
числа вільних змінних задачі.
Змінна, яка включається до нового
базису, відповідає тій оцінці j , що не
задовольняє умову оптимальності.
.
Якщо таких оцінок декілька, то серед
них вибирають найбільшу за
абсолютною величиною і відповідну їй
змінну вводять до базису. А саме: для
их оцінок
вибирають найбільшу за абсолютною
величною, тобто знаходять
а для задачі на min
найбільше значення серед
задачі на max серед від’єм
н
j
 j 0,
– знаходять
додатних
m a x  j  k ,
j  0
оцінок j , тобто знаходять
max j  k ,
.
•
• Якщо є декілька однакових за
•
•
(для задачі на max) і
( для задачі на min).
Нехай індекс зазначеної змінної j  k .
Тоді відповідний k  стовпчик симплексної
таблиці називається напрямним і
позначається вертикальною стрілкою.
абсолютною величиною оцінок j , то до
базису вводять ту змінну, якій відповідає
max cj
mincj
.
• Для визначення змінної, що має бути
виключена з базису, знаходять для всіх
додатних значень напрямного
тобто розділивши елементи стовпчика
«План» на відповідні додатні елементи
напрямного стовпчика. Потім вибирають
aik
стовпчика симплексне відношення  ,
найменше його значення , яке івказує
на змінну, що виводиться з базису.
Припустимо, що це виконується для i  r
Тоді відповідний r  рядок симплексної
таблиці називається напрямним і
позначається горизонтальною стрілкою.
.
• Якщо при розрахунку симплексного
відношення виникає декілька рівних
його значень, то потрібно вибрати такий
рядок, для якого відношення елементів
наступного стовпчика до напрямного є
знову
найменшим. Якщо при цьому
виявляться рівними мінімальні
відношення, то складаються відношення
елементів
операцію
наступного стовпчика. Цю
продовжують до того часу,
поки напрямний рядок не визначиться
однозначно.

.
• Дана ситуація виникає тоді, коли
маємо вироджений план і тоді у процесі
виконання ітерацій виникає можливість
повернення
опорного
до
плану,
раніше
тобто
вибраного
виникає
зациклювання у процесі розрахунку.
.
• Перетин напрямного стовпчика та
напрямним елементом. За
і
•
методу Жордана-Гаусса розраховують
нову симплексну таблицю.
Далі ітераційний процес повторюють
доти, доки не буде визначено
оптимальний план задачі.
напрямного рядка визначає число
симплексної таблиці ark , яке називають
допомогою знайденого еaлrkемента
.
Побудова нової симплексної таблиці
• Спочатку заповнюють стовпчики
“№”,“і”, ”Базис” і “Сбаз”, а решту
елементів нової таблиці розраховують
за такими правилами:
• 1. Елементи напрямного рядка ділять
на напрямний елемент і здобуті числа
записують у відповідний рядок нової
симплексної таблиці.
.
• 2. Напрямний стовпчик у новій таблиці
записують як одиничний з одиницею
замість напрямного елемента.
• 3. Якщо в напрямному рядку є нульовий
елемент, то відповідний
переписують у нову
стовпчик
симплексну
таблицю без змін.
.
• 4. Якщо в напрямному стовпчику є
нульовий елемент, то відповідний рядок
переписують у нову симплексну
таблицю без змін.
• 5. Усі інші елементи нової симплексної
таблиці, у тому числі елементи
стовпчика “План”, розраховуються за
спеціальними
правилом
формулами, або за
прямокутника, який
умовно складається в попередній
симплексній таблиці.
.
•
•
• Число 2 – число, яке розміщене на
місці елемента нової симплексної
таблиці, який ми маємо розрахувати.
• Число 3 і число 4 – елементи, що
розміщуються в двох протилежних
вершинах умовного прямокутника.
Вершини прямокутника утворюють такі
числа:
Число 1 – напрямний елемент ark .
Число 2 Число 3
Число 4 Число 1
.
• Необхідний елемент
симплекс таблиці визначають
нової
таким
• Наявність двох способів визначення
оцінок опорного плану (за правилом
та за відповідною
дає можливість
прямокутника
формулою)
контролювати правильність обчислень
на кожному кроці симплекс-методу.
Число1
чином : Число2Число1Число3Число4
Число2 
.
• При застосуванні симплекс-методу можливі
такі випадки:
• 1. Якщо в оціночному рядку останньої
симплексної таблиці, яка включає в собі
оптимальний план, є хоча б одна нульова оцінка
, що відповідає вільній (небазисній) змінній,
альтернативний оптимальний план, який
можна отримати, вибравши напрямний елемент
у зазначеному стовпчику і виконавши один крок
симплекс-методом. Тоді розв’язок ЗЛП можна
записати у вигляді:
•
m  1
тобто значень j
j  0
більше ніж m, то ЗЛП має
,де10,2 0,12 1
Xопт1Xо
пт2Хо
пт
.
(для задачі максимізації
• 2. Якщо при переході у симплекс-методі
від одного опорного плану задачі до
іншого в напрямному стовпчику немає
додатних елементівaik , тобто усі aik  0,
то оптимальних планів не існує і
цільова функція задачі лінійного
програмування є необмеженою в
області допустимих планів
max Z ,
а для задачі мінімізації min Z   i  1),.m
.
• 3. Якщо для опорного плану всі оцінки
задовольняють умову
оптимальності, але при цьому хоча б
одна штучна змінна є базисною і має
додатне
обмежень
значення, то система
задачі несумісна й
оптимальних планів задачі не існує.
j ( j  1,n )
.
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.
• Визначимо оптимальний план задачі
лінійного програмування за допомогою
симплексного методу.
.
.
•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.
• Запишемо систему обмежень ЗЛП у
Оскільки вектори одиничні та
векторній формі:
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  базисні змінні,
решта змінни.х вільні змінні.
• Прирівнявши вільні змінні до нуля,
одержимо значення базисних змінних:
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. Складемо симплексну таблицю
.
Опор-
ний
план
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
.
• Визначимо оціночний (m+1) рядок
на нульовій ітерації:
0  0  300  0 120  0  252  0;
1  (0 12  0  4  0  3 ) 30  30;
2  0  4  0  4  0 12 40  40;
3  (0 1  0 0  0 0 ) 0  0;
4  0 0  0 1  0 0 0  0;
5  0 0  0 0  0 1 0  0;
.
Опор-
ний
план
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
.
• 3. Перевіримо його на оптимальність
згідно теореми оптимальності.
• Оскільки в ньому – два від’ємні
значення
що суперечить умові оптимальності
, то початковий
2
1
  30 ,   40,
для задачі на max
опорний план X0 – неоптимальний.
.
Опор-
ний
план
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
.
• 4. Для переходу до нової симплексної
таблиці визначимо напрямний елемент.
• Спочатку визначимо напрямний
стовпчик.
• Оскільки серед від’ємних оцінок
• найбільша за абсолютною величною
, то другий стовпчик буде
позначимо його
вертикальною стрілкою.
1 ,2
• 2  40
напрямним,
.
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
.
•
aik
Для визначення напрямного рядка
визначимо симплексне відношення :
b
  i
12
4
4 3
2
1 
252
 21

120
 30;
 
300
 75;
.
знайдених значень
, яке відповідає
– напрямному,
горизонтальною
• Виберемо
найменше
третьому
позначимо
стрілкою. На перетині напрямного
• Отже, з базису виключаємо змінну
серед
3  21
рядку
його
стовпчика та напрямного рядка
отримаємо напрямний елемент a32  12.
x5 і замість неї вводимо змінну x2 .
Будуємо нову ітерацію згідно
методу Жордана-Гаусса.
.
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
• У першій ітерації другий стовпчик
число
записуємо як одиничний з 1 замість
напрямного елементу a32, третій рядок
утворимо з елементів третього рядка
попередньої ітерації поділених на
a32  12
• Інші елементи таблиці розраховуємо
за правилом прямокутника.
300  12  4  252
 216;
12  12  4  3
 11; …
0  12  4  1
 
1
12 12 12 3
.
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
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
j  0
• Оскільки на першій ітерації 1  20  0 ,
то визначений опорний план X 1 також
неоптимальний.
• Вибираємо як напрямний елемент a21  3
і будуємо наступну другу симплекс-
таблицю.
•
.
30 40 0 0 0 ОП
1 0 216 11 0 1 0 -1/3
1 2 0 36
3 0 0 1 -1/3
3 40 21 1/4 1 0 0 1/12 84
4 840 -20 0 0 0 10/3
баз
Базис C План
N і
x1 x2 x3 x4 x5

50
x3
x4
Z ,j
X1
x2
.
12
min
j  0
0
О
П
1 0 84 0 0 1 -11/3 8/9
2
2
3
4 1080 0 0 0 20/3
Базис Cбаз План
N і
30 40 0 0
x1 x2 x3 x4 x5

x3
x1 30 12 1* 0 0 1/3 -1/9
x2 40 18 0 1 0 -1/12 1/9
Z ,j
X2
10/9 j  0
.
• Оскільки усі значення оціночного
рядка ,
то визначений опорний план
оптимальний.
j  0 ( j  1,5 )
.
• Отже, 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
4.4. ДВОЇСТИЙ СИМПЛЕКС-МЕТОД
• Двоїстий симплекс-метод (ДСМ) як і
симплекс–метод використовується для
розв’язання ЗЛП, які записано в
канонічній формі основної задачі, для
векторів. але вільні члени системи
, будь-які числа, на відміну
яких серед векторів X j є m одиничних
рівнянь bi
від симплекс-методу, де bi  0 .
.
Алгоритм ДСМ:
• 1. Знаходимо псевдо–план ЗЛП:
X  b1 ;b2 ;…;bm ;0;0;…,;0
якщо
j  0.
.
2. Перевіряємо псевдо-план на
оптимальність:
таке ,
• С) Якщо є числа
існують , то в даному випадку
виконується перехід до нового
опорного плану.
bi
• А) Якщо всі значення  0 при умові
•  j  0 , то план оптимальний;
• Б) Якщо хоча б одне число bi  0
що всі aij  0 , то плану не існує, оскільки
система обмежень несумісна;
bi  0 такі, що для них
a ij  0
.
.
• 3. Вибір напрямного рядка виконується за
найбільшою абсолютною величиною від’ємних
чисел стовпчика “План”, тобто знаходиться
•
• Вибір напрямного стовпчика виконується за
найменшою абсолютною
відношення оціночного
величиною
–го рядка до
відповідних від’ємних елементів напрямного
рядка, або згідно з формулою
• (2.7)
Використовуючи напрямний елемент
розрахунок нової симплекс-
виконується
таблиці.
max b.i ,bi  0
 
m  1
aij
; aij  0 ;



 

m i n   ;  j  0
j 
• 4. Визначається новий псевдо-план і
повторюється 2 етап .
.
• Двоїстий СМ зручно використовувати
також і при розв’язанні задач, які мають
одиничний базис, але не належать до
задач у базисній або двоїстій базисній
формі, оскільки є від’ємні елементи, як
bi
серед значень ,jтак і серед значень
одночасно.
.
серед від’ємних коефіцієнтів
напрямного рядка вибирають елемент,
для якого знаходять відношення
(2.8)
• Розв’язування таких задач виконується
наступним чином: спочатку за
допомогою ДСМ виключаються всі
значення bi  0, потім оптимальний план
знаходять звичайним СМ ; для цього
потрібно замінити пункт (2.7) наступним:
aij
i ij
aij
•max
bi ; якщо b  0,a  0
.
Дякую
з
аувагу!
.

4-141012104910-conversion-gate02.pptx

  • 1.
    ТЕМА 4 СИМПЛЕКСНИЙ ТАМ-МЕТОД (МЕТОД ШТУЧНОГО БАЗИСУ) РОЗВ’ЯЗАННЯ ЗЛП .
  • 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 .
  • 21.
    Ба- № і зис СбазПлан  Опор ний план С1 С2 ... Сm ... Сn x1 x2 ... хm ... xn 0 1 Х1 С1 b1 2 Х2 С2 b2 ... ... … … m хm сm bm m+1 0 1 0 ... 0 ... a1n 0 1 ... 0 ... а2n ... ... ... ... ... … 0 0 ... 1 ... аmn Z 1 2 … m … n .
  • 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 i1 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, то ЗЛП має ,де10,2 0,12 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 30012 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 .
  • 47.
    • Визначимо оціночний(m+1) рядок на нульовій ітерації: 0  0  300  0 120  0  252  0; 1  (0 12  0  4  0  3 ) 30  30; 2  0  4  0  4  0 12 40  40; 3  (0 1  0 0  0 0 ) 0  0; 4  0 0  0 1  0 0 0  0; 5  0 0  0 0  0 1 0  0; .
  • 48.
    Опор- ний план 1 0 2 3 0 300 124 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 124 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 00 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 30012 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 30 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
  • 58.
    0 ОП 0 36 30 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 j  0
  • 59.
    • Оскільки напершій ітерації 1  20  0 , то визначений опорний план X 1 також неоптимальний. • Вибираємо як напрямний елемент a21  3 і будуємо наступну другу симплекс- таблицю. • .
  • 60.
    30 40 00 0 ОП 1 0 216 11 0 1 0 -1/3 1 2 0 36 3 0 0 1 -1/3 3 40 21 1/4 1 0 0 1/12 84 4 840 -20 0 0 0 10/3 баз Базис C План N і x1 x2 x3 x4 x5  50 x3 x4 Z ,j X1 x2 . 12 min j  0
  • 61.
    0 О П 1 0 840 0 1 -11/3 8/9 2 2 3 4 1080 0 0 0 20/3 Базис Cбаз План N і 30 40 0 0 x1 x2 x3 x4 x5  x3 x1 30 12 1* 0 0 1/3 -1/9 x2 40 18 0 1 0 -1/12 1/9 Z ,j X2 10/9 j  0 .
  • 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 
  • 68.
    • 4. Визначаєтьсяновий псевдо-план і повторюється 2 етап . .
  • 69.
    • Двоїстий СМзручно використовувати також і при розв’язанні задач, які мають одиничний базис, але не належать до задач у базисній або двоїстій базисній формі, оскільки є від’ємні елементи, як bi серед значень ,jтак і серед значень одночасно. .
  • 70.
    серед від’ємних коефіцієнтів напрямногорядка вибирають елемент, для якого знаходять відношення (2.8) • Розв’язування таких задач виконується наступним чином: спочатку за допомогою ДСМ виключаються всі значення bi  0, потім оптимальний план знаходять звичайним СМ ; для цього потрібно замінити пункт (2.7) наступним: aij i ij aij •max bi ; якщо b  0,a  0 .
  • 71.