- •Лабораторний практикум
- •Краматорськ 2009
- •Загальні вказівки
- •Методи одновимірної оптимізації. Знаходження глобального екстремуму функції методом послідовного рівномірного перебору (сканування)
- •Знаходження екстремуму унімодальної функції
- •Знаходження екстремуму функції методом послідовного рівномірного перебору з уточненням
- •Пошук всіх екстремумів функції
- •Завдання до лабораторної роботи
- •Метод дихотомії
- •Метод золотого перетину
- •Завдання до лабораторної роботи
- •Методика оптимізації функції методом найшвидшого спуску
- •Приклад мінімізації функції методом найшвидшого спуску
- •Завдання до лабораторної роботи
- •Загальні вказівки
- •Обчислення градієнту функції на еом
- •Алгоритм оптимізації методом найшвидшого спуску
- •Програмна реалізація методу найшвидшого спуску
- •Завдання до лабораторної роботи
- •Лабораторна робота 5
- •Багатовимірних задач оптимізації
- •Порядок виконання роботи
- •Загальні вказівки
- •Алгоритм методу прямого пошуку
- •Програмна реалізація методу прямого пошуку
- •Завдання до лабораторної роботи
- •Лабораторна робота 6
- •Багатовимірних задач оптимізації
- •Порядок виконання роботи
- •Загальні вказівки
- •Алгоритм методу випадкового пошуку з перерахунком
- •Програмна реалізації методу випадкового пошуку
- •Завдання до лабораторної роботи
- •Лабораторна робота 7
- •Програмування графічним методом
- •Порядок виконання роботи
- •Загальні вказівки
- •Методика розв’язання задачі лінійного програмування графічним методом
- •Приклади розв’язання задач лінійного програмування графічним методом
- •Завдання до лабораторної роботи
- •Продовження таблиці 15
- •Лабораторна робота 8
- •З використанням симплексних таблиць
- •Порядок виконання роботи
- •Загальні вказівки
- •Алгоритм симплексного методу
- •Приклад розв’язання лп-задачі симплексним методом
- •Завдання до лабораторної роботи
- •Лабораторна робота 9
- •Порядок виконання роботи
- •Загальні вказівки
- •Опис роботи програми simc (intsim)
- •Приклад моделювання та розв’язку лп-задачі за допомогою програми simc
- •Індивідуальні завдання до лабораторної роботи
- •Лабораторна робота 10 моделювання транспортних задач та їх
- •Порядок виконання роботи
- •Загальні вказівки
- •Побудова початкового(вихідного) опорного плану
- •Алгоритм методу потенціалів
- •Приклад моделювання та розв’язку т-задачі методом потенціалів
- •Завдання до лабораторної роботи
- •Лабораторна робота 11
- •Лабораторна робота 12
- •Загальні вказівки
- •Загальна методика розв’язання задачі методом динамічного програмування
- •Методика розв’язання задачі оптимального розподілу коштів на розширення виробництва методом динамічного програмування
- •Приклад розв’язання задачі оптимального розподілу коштів методом динамічного програмування
- •Завдання до лабораторної роботи
- •Продовження таблиці 36
- •Список рекомендованої літератури
- •Додаток а завдання до лабораторної роботи 9 Задача 1
- •Задача 2
- •Задача 3
- •Задача 4
- •Задача 5
- •Задача 6
- •Задача 7
- •Задача 8
- •Задача 9
- •Задача 10
- •Задача 11
- •Задача 12
- •Задача 13
- •Задача 14
- •Задача 15
- •Задача 16
- •Задача 17
- •Задача 18
- •Задача 19
- •Задача 20
- •Задача 21
- •Задача 22
- •Задача 23
- •Задача 24
- •Задача 25
- •84313, М. Краматорськ, вул. Шкадінова, 72.
Алгоритм симплексного методу
Симплексний метод дозволяє, починаючи з довільного початкового опорного плану, поступово поліпшувати його та отримати за скінчену кількість ітерацій оптимальний план або переконатися в нерозв'язності задачі.
Визначення 1. Прийнятним розв’язанням (планом) ЛП-задачі називають вектор X=(x1,x2,…,xn), який задовольняє усім її обмеженням (33), (34).
Визначення 2. План X=(x1,x2,…,xn) задачі (32) - (34) називається опорним (прийнятним базисним розв’язанням), якщо вектори обмежень Aj=(a1j,a2j,…,amj)T, які входять в розкладення вектора A0=(b1,b2,…,bm)T:
(35)
з додатними коефіцієнтами xj, є лінійно незалежними.
Визначення
3.
Система m
лінійно незалежних векторів обмежень
{Asi},
,
що
включає всі ті Asi,
для яких xsi>0,
називається базисом опорного плану і
позначається через Бх.
Перед розв’язанням ЛП-задачі симплексним методом її треба представити в канонічній формі. Розв’язок треба починати зі сформованого заздалегідь опорного плану, якому відповідає одиничний базис. Тому задача можна розв’язати симплексним методом, якщо в матриці основних обмежень (33) присутні принаймні m різних одиничних векторів, з яких можна скласти одиничну матрицю m-го порядку.
Таким чином, якщо
X0=(xs1,xs2,…,xs0,0,…,0) –
початковий опорний план задачі з одиничним базисом As1,…,Asm, то модель задачі має вигляд:
(36)
З системи (36) випливає, що у початковому опорному плані X0 базисні змінні xsi=bi, . Алгоритм симплексного методу починається з перевірки на оптимальність такого опорного плану:
X0=(b1,b2,…,bm,0,…,0). (37)
Для дослідження X0 на оптимальність необхідно розкласти усі вектори Aj по векторах базису Asi:
(38)
і підрахувати різниці (оцінки векторів):
j=Zj–cj. (39)
У рівнянні (38) xij=aij, оскільки вектори Asi утворюють одиничний базис.
Представивши усю вихідну інформацію про задачу у вигляді таблиці (таблиця 16), одержимо початкову (нульову) симплексну таблицю.
Таблиця 16 - Нульова симплексна таблиця
i |
Бх |
Сб |
А0 |
c1 |
… |
csr |
… |
ck |
… |
cn |
t |
A1 |
… |
Asr |
… |
Ak |
… |
An |
|||||
1 |
As1 |
cs1 |
xs1 |
xs11 |
… |
0 |
… |
x1k |
… |
x1n |
t0 |
2 |
As2 |
cs2 |
xs2 |
xs21 |
… |
0 |
… |
x2k |
… |
x2n |
|
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
|
r |
Asr |
csr |
xsr |
xr1 |
… |
1 |
… |
xrk |
… |
xrn |
|
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
|
m |
Asm |
csm |
xsm |
xm1 |
… |
0 |
… |
xmk |
… |
xmn |
|
m+1 |
- |
- |
Z0 |
|
… |
|
… |
k |
|
n |
Симплекс-таблиця (перші m рядків) заповнюється в такій послідовності: заповнюють стовпець i, рядок С, стовпець Бx, стовпець Сб, стовпець A0, стовпці Ai,…,An.
Останній рядок: в клітині на перетині стовпця А0 та (m+1)-го рядка записують значення лінійної форми для поточного опорного плану. Це значення обчислюється за формулою:
.
(40)
У наступні клітини (m+1)-го рядку записуються значення оцінок векторів обмежень Aj (величини j), що обчислюються за формулою:
(41)
Для базисних векторів оцінки si=0.
Для перевірки опорного плану на оптимальність переглядаємо оцінки векторів в (m+1)-ому рядку. При цьому можуть зустрітися такі випадки:
1 Усі оцінки j0. Тоді опорний план X0 є оптимальним і Z min=Z0.
2
Для деякого фіксованого j
j>0
і всі коефіцієнти xij0,
.
Тоді лінійна форма не обмежена множиною
допустимих розв’язків задачі. В обох
випадках процес обчислення на цьому
закінчується.
3 Для деяких індексів j є j>0 і для кожного такого j, принаймні, одне з чисел xij>0. Це свідчить про те, що опорний план не є оптимальним і його можна поліпшити за рахунок введення в базис вектора, що відповідає однієї з таких оцінок. У базис необхідно ввести той вектор, якому відповідає maxj. Якщо таких різниць декілька, то беруть вектор з меншим номером.
Нехай
.
Тоді в базис треба вводити вектор Ak
замість вектора, якому відповідає
мінімальне значення виразу
.
(42)
Необхідно вивести з базису вектор Asr; новий базис буде складатися з векторів: As1,As2,…,Asr-1,Asr+1,…,Asm,Ak... У цьому випадку xrk називають розв’язним елементом поточної симплексної таблиці. Стовпець k і рядок r називають також розв’язними.
Всі значення в клітинах при побудові нової симплексної таблиці зі стовпця A0 по сn-ий і з першого рядка по (m+1)-ий перераховуються при переході до нового опорного плану у відповідності до наведених нижче рекурентних формул:
(43)
На
практиці нову симплексну таблицю
отримують з попередньої, виконуючи
певні дії з елементами усього рядка.
Кожен елемент розв’язного рядка r
ділять на розв’язний елемент
xrk.
У новій симплексній таблиці на місці
розв’язного елемента отримуємо одиницю:
x
=1.
Дії з іншими рядками направлені на те,
щоб при переході до нової таблиці на
місці розв’язного стовпця попередньої
таблиці отримати одиничний вектор з
нульовою оцінкою. Інші рядки перетворюються
так: з того рядка попередньої таблиці,
який необхідно перетворити, віднімаємо
рядок r
нової таблиці, помножений на той елемент
перетворюваного рядка, на місці якого
треба одержати нуль.
В результаті такого перетворення нульова симплекс-таблиці переходить в наступну (першу) таблицю, яка містить новий опорний план. Правильність побудови можна перевірити підрахувавши оцінки j за формулою (40). Знову переглядаємо (m+1)-ий рядок. Якщо всі j0, то опорний план оптимальний. В іншому випадку переходимо до нового опорного плану, будуючи другу симплексну таблицю. Процес продовжується поки не прийдемо або до оптимального плану, або переконаємося в необмеженості лінійної форми.
