- •Г 55 Математичне програмування: Навчальний посібник. – Львів: Вид-во лка, 2004. – 240 с.
- •Передмова
- •Типова програма
- •Предмет і задачі математичного програмування деякі задачі управління і планування
- •Розділ 1. Лінійне програмування (лп)
- •Форми запису задач лп
- •1.2. Геометрична інтерпретація злп. Графічний метод розв’язування
- •Контрольні запитання та задачі
- •1.3. Опорні плани злп
- •Контрольні запитання та задачі
- •1.4.1. Загальні положення см
- •1.4.2. Алгоритм см у формі тотожних перетворень
- •1.4.3. Табличний запис злп. Алгоритм см для злп, представлених в симетричній формі.
- •Алгоритм см для злп, представлених в загальному виді
- •Контрольні запитання та задачі
- •1.5.1. Загальні зауваження
- •1.5.2. Теореми двоїстості. Економічний зміст оптимальних планів пари дз
- •1.5.3. Двоїстий см
- •Контрольні запитання та задачі
- •1. 6. Транспортна задача(тз)
- •1.6.1. Постановка тз. Відкрита і закрита моделі
- •1.6.2. Методи побудови опорного плану тз
- •Метод потенціалів для перевірки оптимальності плану тз
- •Контрольні запитання та задачі
- •1.7. Цілочислове програмування
- •1.7.1. Постановка задачі цілочислового програмування (зцлп)
- •Метод відтинаючих площин
- •Метод гілок і границь
- •1.7.4. Алгоритм Гоморі
- •Контрольні запитання та задачі
- •Розділ 2. Графи і мережі
- •2.1. Загальні поняття
- •2.2 Неорієнтовані графи
- •2.3. Орієнтовані графи
- •2.4. Матричне представлення графів
- •2.5 Мережі
- •2.5.1. Мінімізація мережі
- •2.5.2.Задача про найкоротший шлях
- •2.5.3. Потоки в мережах
- •Контрольні запитання та задачі
1.4.3. Табличний запис злп. Алгоритм см для злп, представлених в симетричній формі.
Розглянемо ЗЛП, представлену в симетричній формі: знайти найбільше значення функції
(1.20)
при обмеженнях
(1.21)
(1.22)
Ввівши
змінні
з (1.21) отримаємо
(1.23)
Подамо дану задачу у вигляді, зручному для запису в симплексну таблицю, а саме:
(1.24)
Звідси
випливає, що розв’язок
є опорним для даної задачі. Будемо покращувати його, користуючись методом повного виключення змінних (метод Жордана-Гаусса). Нагадаємо, що при цьому одночасно вирішується питання про сумісність системи обмежень та наявність у ній неістотних обмежень, тобто рівнянь, які є лінійними комбінаціями інших. Надалі систему обмежень задачі будемо вважати сумісною, а всі її рівняння – лінійно незалежними. Запишемо вихідні дані задачі в симплексну таблицю 1.2.
Таблиця 1.2
|
–x1 |
–x2 |
… |
–xn |
1 |
y1 |
a11 |
a12 |
… |
a1n |
b1 |
y2 |
a21 |
a22 |
… |
a2n |
b2 |
… |
… |
… |
… |
… |
… |
ym |
am1 |
am2 |
… |
amn |
bm |
f |
–c1 |
–c2 |
… |
–cn |
0 |
Перш ніж приступити до знаходження оптимального плану, зробимо декілька зауважень.
Зауваження 1.3. Якщо в симплексній таблиці, яка містить деякий опорний план, всі елементи f–рядка (не рахуючи вільного члена) невід’ємні, то цей опорний план є оптимальним.
Зауваження 1.4. Якщо в f–рядку симплексної таблиці, яка містить деякий опорний план, є хоча б один від’ємний елемент (не рахуючи вільного члена), якому відповідає стовпчик з хоча б одним додатнім елементом, то можна, перетворивши базис, перейти до другого опорного плану з більшим значенням цільової функції.
Зауваження 1.5. Якщо в f–рядку симплексної таблиці, яка містить деякий опорний план, є хоча б один від’ємний елемент, якому відповідає стовпчик недодатних елементів
то
цільова функція необмежена на множині
планів, тобто
Зауваження 1.6. Якщо в f–рядку симплексної таблиці, яка містить оптимальний план, є хоча б один нульовий елемент (не рахуючи вільного члена), то ЗЛП має нескінченну множину оптимальних планів.
Дамо коротку характеристику алгоритму знаходження оптимального плану.
Змінну,
яку вводять в базис, визначають від’ємним
елементом f-рядка.
Якщо в f-рядку
декілька від’ємних елементів, в базис
буде вводитися змінна
яка відповідає від’ємному елементу
з найбільшою абсолютною величиною. Тоді
стовпчик коефіцієнтів
при змінній
,
яка включається в базис, називається
розв’язуючим стовпчиком.
Таким чином, вибираючи змінну, яка вводиться в базис, за від’ємним елементом f-рядка, ми забезпечуємо зростання функції f .
Для
знаходження змінної
яку виключають з базису, утворюють
відношення вільних членів до додатних
елементів розв’язуючого стовпчика і
знаходять серед них найменше, яке і
визначає розв’язуючий рядок, що містить
змінну
:
Визначення 1.16 Елемент, який знаходиться на перетині розв’язуючого рядка і розв’язуючого стовпця, називається розв’язуючим елементом.
Перехід
до нового базису називається симплексним
перетворенням. В результаті цієї операції
відбувається перерозподіл ролей між
двома змінними, які входять в деяку
систему лінійних рівнянь: одна змінна
із залежних переходить в незалежні, а
друга навпаки. Відповідний коефіцієнт
f–рядка
стане
невід’ємним. Така операція відома в
алгебрі під назвою кроку перетворень
Жордана-Гаусса. Досить часто її називають
кроком модифікованого виключення
Жордана-Гаусса.
Сформулюємо правило перерахунку елементів при переході до нового опорного плану, ближчого до оптимального:
Розв’язуючий елемент замінюємо на обернений до нього.
Елементи розв’язуючого рядка ділимо на розв’язуючий елемент.
Елементи розв’язуючого стовпчика діляться на розв’язуючий елемент, взятий з протилежним знаком.
Р
ешта
елементів знаходимо за правилом
прямокутника:
,
де
– розв’язуючий елемент.
Після
здійснення l
кроків
перетворень Жордана-Гаусса ми одержимо
наступну симплексну таблицю 1.3.
Таблиця 1.3
|
–у1 |
–у2 |
… |
–ym |
–xm+1 |
… |
–xn |
1 |
х1 |
b11 |
b12 |
… |
b1m |
b1m+1 |
… |
b1n |
a1 |
х2 |
b21 |
b22 |
… |
b2m |
b2m+1 |
… |
b2n |
a2 |
… |
… |
… |
… |
… |
… |
… |
… |
… |
хm |
bm1 |
bm2 |
… |
bmm |
bmm+1 |
… |
bmn |
am |
f |
q1 |
q2 |
… |
qm |
qm+1 |
… |
qn |
Q |
Оскільки
в таблиці усі
,
то розв’язок буде оптимальним. Для його
одержання потрібно небазисні (ті, які
розташовані зверху симплексної таблиці)
змінні вважати рівними нулю. Тоді базисні
змінні будуть дорівнювати вільним
членам
і
Q.
Знову повертаємося до прикладу 1.1. Запишемо (1.11) та (1.14) у вигляді, зручному для запису у симплексну таблицю
(1.25)
(1.26)
і яка матиме вигляд: |
|
–x1 |
–x2 |
1 |
y1 |
1 |
1 |
6 |
|
y2 |
0 |
1 |
4 |
|
y3 |
2 |
1 |
10 |
|
f |
–1 |
–2 |
0 |
|
|
|
|
|
|
Візьмемо
в (1.25) і (1.26)
рівними нулю, одержимо
.
Даний розв’язок є опорним. Його можна
покращити за рахунок збільшення змінної
(їй відповідає найбільший за модулем
від’ємний коефіцієнт в
-рядку).
Відповідний стовпчик буде розв’язуючим.
Оскільки
,
то, розв’язуючим є другий рядок. Число
1, яке лежить на перетині другого рядка
і другого стовпця, буде розв’язуючим
елементом. Провівши для нього один крок
перетворень Жордана–Гаусса, прийдемо
до наступної таблиці:
|
–x1 |
–у2 |
1 |
y1 |
1 |
–1 |
2 |
х2 |
0 |
1 |
4 |
y3 |
2 |
–1 |
6 |
f |
–1 |
2 |
8 |
Отриманий
розв’язок:
не є оптимальним, оскільки в
-рядку
є від’ємний елемент. Розв’язок можна
покращити за рахунок збільшення змінної
(їй відповідає від’ємний коефіцієнт
в
-рядку).
Як і раніше, знаходимо
Тому перший рядок розв’язуючий, а 1 –
розв’язуючий елемент. Провівши один
крок перетворень Жордана-Гаусса,
одержимо:
|
–у1 |
–у2 |
1 |
х1 |
1 |
–1 |
2 |
х2 |
0 |
1 |
4 |
y3 |
–2 |
1 |
2 |
f |
1 |
1 |
10 |
Розв’язок
є оптимальним, оскільки в
-рядку
відсутні від’ємні елементи.
