
- •Лінійне програмування
- •1.1. Постановка задачі лінійного програмування
- •1.2.Приклади економічних задач лінійного програмування
- •1.3. Канонічна форма задачі лінійного програмування
- •1.4.Геометричний зміст і графічний метод розв'язування задачі лінійного програмування
- •1.5. Методи побудови початкового базисного плану злп
- •1.6. Прямий симплексний метод розвязку злп
1.3. Канонічна форма задачі лінійного програмування
Розглядаючи різні практичні задачі з лінійними обмеженнями і лінійною цільовою функцією бачимо, що в одних задачах обмеження мають вигляд нерівностей типу ≤, в інших ≥, в третіх - типу =. В одних задачах треба знайти максимум цільової функції, в інших - мінімум.
Не у всіх задачах вимагається невідємність змінних. Така різноманітність форм запису задач лінійного програмування ускладнює дослідження загальних властивостей задач і вимагає розробки спеціальних методів для розвязування кожного з можливих типів задач.
У звязку з цим домовились кожен з типів зводити до єдиної форми , яку назвали канонічна форма. Ця форма проста і зручна для дослідження. Вважатимемо, що ЗЛП записана у канонічній формі, якщо вона формулюється наступним чином:
max
.
Введемо позначення:
,
,
,
За таких позначень канонічна форма задачі набуде вигляду:
,
,
,
або, використавши введені вище позначення, отримаємо компактний запис ЗЛП:
Це матрична форма запису канонічної задачі лінійного програмування (матриця А називається матрицею умов задачі).
Ми будемо також використовувати так звану векторну форму запису канонічної задачі лінійного програмування, тому для стовпців матриці А введемо позначення:
,
,...,
Тоді задачу лінійного програмування можна записати так:
Це векторна форма запису канонічної задачі лінійного програмування.
Разом з тим для деяких практичних, і теоретичних цілей застосовується і так звана симетрична форма запису задачі лінійного програмування, яка має вигляд:
Покажемо, як будь-яку задачу лінійного програмування звести до канонічного виду. Нехай задача лінійного програмування має вигляд:
(4)
(5)
(6)
(7)
Введемо
додаткових невід'ємних змінних
,
,…,
.
Для
того, щоб нерівності (5) перетворити в
рівності, до їх лівих частин додамо
додаткові змінні
,
,…,
.
Після
цього система нерівностей (5) набуде
вигляду:
Віднявши від
лівих
частин обмежень (6) додаткові невід'ємні
змінні
,…,
,
отримаємо:
Додаткові змінні
в цільову
функцію введемо
з коефіцієнтами,
рівними нулеві.
Отримаємо
задачу:
(8)
(9)
(10)
(11)
Між задачею
(4)-(7) і
задачею
(8)-(11) є тісний зв'язок, а саме: кожному
допустимому розв’язку
задачі
(4)-(7) відповідає повністю визначений
розв'язок
задачі
(8)-(11), де для обмежень (9) виконується
а для обмежень (10) справедливо:
Справедливим є
і обернене твердження: кожному допустимому
розв'язку
задачі (8)-(11) відповідає повністю
визначений допустимий розв’язок
задачі
(4)-(7) (
і їх
відкидання в лівих частинах рівностей
(9) і (10) робить твердження очевидним).
Додаткові змінні
входять
в цільову функцію (8) з нульовими
коефіцієнтами, тому значення цільових
функцій (4) і (8) для відповідних допустимих
розв'язків є однаковими. Якщо одна із
задач не має оптимального розв’язку,
то й інша також його не має.
Приклад. Звести до канонічного виду задачу:
Вводимо додаткові
змінні
,
змінну
додамо
до лівої частини першого обмеження, а
змінну
віднімемо від лівої частини другого
обмеження. Отримаємо еквівалентну
задачу у канонічному виді:
Якщо вихідна
задача лінійного програмування є задачею
мінімізації, то для зведення до канонічного
виду така задача замінюється еквівалентною
їй задачею максимізації. Легко
переконатись;
що мінімум функції
із
якими-небудь обмеженнями на змінні (чи
без них) є рівним максимуму функції
,
взятому
з протилежним знаком, тобто
При цьому
і
досягаються
при одних і тих же значеннях змінних.
Тут має місце повна аналогія з випадком
функції однієї змінної, коли твердження
є очевидним.
Таким чином, якщо
треба звести до канонічного виду задачу
мінімізації цільової функції
то
досить замість даної функції взяти за
цільову функцію
(тобто
змінити знаки при коефіцієнтах цільової
функції L на протилежні).
Щоб отримати оптимальне значення вихідної задачі, треба взяти оптимальне значення перетвореної задачі із оберненим знаком.
Якщо у вихідній
задачі не на всі змінні накладається
умова невід'ємності, то і при виконанні
розглянутих вимог така задача ще не
буде задачею канонічного виду. Для того,
щоб представити таку задачу у канонічному
виді, кожну із змінних
,
на яку
не накладено умову невід’ємності,
замінюють різницею двох невід’ємних
змінних:
(12)
Підставивши різниці типу (12) у вихідну задачу, отримуємо еквівалентну їй задачу (канонічну, якщо інші вимоги щодо канонічного виду задовольняються).
Приклад. Звести до канонічного виду задачу лінійного програмування:
Відповідь: