Графічний метод розв’язування задач лінійного програмування
Для розв’язування двовимірних задач лінійного програмування, тобто задач із двома змінними, а також деяких тривимірних задач застосовують графічний метод, що ґрунтується на геометричній інтерпретації та аналітичних властивостях задач лінійного програмування. Обмежене використання графічного методу зумовлене складністю побудови багатогранника розв’язків у тривимірному просторі (для задач з трьома змінними), а графічне зображення задачі з кількістю змінних більше трьох взагалі неможливе.
Розглянемо задачу.
Знайти
(3.15)
за умов:
(3.16)
. (3.17)
Припустимо, що система (3.15) за умов (3.16) сумісна і багатокутник її розв’язків обмежений.
Згідно з геометричною інтерпретацією задачі лінійного програмування (п.3.3) кожне і-те обмеження-нерівність у (3.16) визначає півплощину з граничною прямою (і = 1, 2, …, т). Системою обмежень (3.16) графічно можна зобразити спільну частину, або переріз усіх зазначених півплощин, тобто множину точок, координати яких задовольняють всі обмеження задачі – багатокутник розв’язків.
Умова (3.17) невід’ємності змінних означає, що область допустимих розв’язків задачі належить першому квадранту системи координат двовимірного простору. Цільова функція задачі лінійного програмування геометрично інтерпретується як сім’я паралельних прямих с1х1+с2х2 = const.
Скористаємося для графічного розв’язання задачі лінійного програмування властивостями, наведеними в п.3.4: якщо задача лінійного програмування має оптимальний план, то екстремального значення цільова функція набуває в одній із вершин її багатокутника розв’язків. Якщо ж цільова функція досягає екстремального значення більш як в одній вершині багатокутника, то вона досягає його і в будь-якій точці, що є лінійною комбінацією цих вершин.
Отже, розв’язати задачу лінійного програмування графічно означає знайти таку вершину багатокутника розв’язків, у результаті підстановки координат якої в (3.15) лінійна цільова функція набуває найбільшого (найменшого) значення.
Алгоритм графічного методу розв’язування задачі лінійного програмування складається з таких кроків:
1. Будуємо прямі, рівняння яких дістаємо заміною в обмеженнях задачі (3.16) знаків нерівностей на знаки рівностей.
2. Визначаємо півплощини, що відповідають кожному обмеженню задачі.
3. Знаходимо багатокутник розв’язків задачі лінійного програмування.
4. Будуємо вектор , що задає напрям зростання значення цільової функції задачі.
5. Будуємо пряму с1х1+с2х2=const, перпендикулярну до вектора .
6. Рухаючи пряму с1х1+с2х2=const в напрямку вектора
(для задачі максимізації) або в протилежному напрямі
(для задачі мінімізації), знаходимо вершину багатокутника розв’язків, де цільова функція набирає екстремального значення.
7. Визначаємо координати точки, в якій цільова функція набирає максимального (мінімального) значення, і обчислюємо екстремальне значення цільової функції в цій точці.
У разі застосування графічного методу для розв’язування задач лінійного програмування можливі такі випадки:
1. Цільова функція набирає максимального значення в єдиній вершині А багатокутника розв’язків (рис.3.3).
2. Максимального значення цільова функція досягає в будь-якій точці відрізка АВ (рис.3.4). Тоді задача лінійного програмування має альтернативні оптимальні плани.
3. Задача лінійного програмування не має оптимальних планів: якщо цільова функція необмежена згори (рис.3.5) або система обмежень задачі несумісна (рисунок 3.6).
Рисунок 3.3 Рисунок 3.4
Рисунок 3.5 Рисунок 3.6
4. Задача лінійного програмування має оптимальний план за необмеженої області допустимих розв’язків (рис.3.7 і 3.8). На рис.3.7 у точці В маємо максимум, на рис.3.8 у точці А – мінімум, на рис.3.9 зображено, як у разі необмеженої області допустимих планів цільова функція може набирати максимального чи мінімального значення у будь-якій точці променя.
Рисунок 3.7 Рисунок 3.8
Рисунок 3.9
Розв’язувати графічним методом можна також задачі лінійного програмування n-вимірного простору, де , якщо при зведенні системи нерівностей задачі до системи рівнянь шляхом введення додаткових змінних кількість змінних n на дві більша, ніж число обмежень m, тобто .
Тоді, як відомо з курсу вищої математики, можна дві з n змінних, наприклад х1 та х2, вибрати як вільні, а інші m зробити базисними і виразити через вільні. Припустимо, що це зроблено. Отримаємо рівнянь вигляду:
Оскільки всі значення , то мають виконуватись умови:
,
(3.18))
Розглянемо, як можна зобразити ці умови геометрично. Візьмемо, наприклад, першу з них:
Узявши величину х3 рівною своєму крайньому значенню — нулю, отримаємо рівняння:
.
Це рівняння прямої. Для такої прямої , по одну сторону від неї , а по другу – . Відмітимо ту сторону прямої , де .
В аналогічний спосіб побудуємо і всі інші обмежуючі прямі: ; ;...; і відмітимо для кожної з них півплощину, де відповідна змінна більше нуля.
У такий спосіб отримують n–2 прямі та дві осі координат ( , ). Кожна з них визначає півплощину, де виконується умова . Частина площини в належить водночас всім півплощинам, утворюючи багатокутник допустимих розв’язків.
Припустимо, що в задачі необхідно знайти максимальне значення функціонала:
.
Підставивши вирази для , , , ...; з (3.18) у цей функціонал, зведемо подібні доданки і отримаємо вираз лінійної функції F всіх n змінних лише через дві вільні змінні та :
,
де — вільний член, якого в початковому вигляді функціонала не було.
Очевидно, що лінійна функція досягає свого максимального значення за тих самих значень та , що й . Отже, процедура відшукання оптимального плану з множини допустимих далі здійснюється за алгоритмом для випадку двох змінних.
(Самостійна робота)
Приклад 3.1. Розв’язати графічним методом задачу лінійного програмування
.
Розв’язання. Маємо n=7 – кількість змінних, m=5 – кількість обмежень. Виберемо як вільні змінні х1 та х2 і виразимо через них всі інші базисні змінні. З першого рівняння маємо:
(3.19)
З третього рівняння:
, (3.20)
а з четвертого:
. (3.21)
Підставляючи (3.19) в друге рівняння системи і (3.21) в останнє, розв’язуємо їх відносно х4 та х7. Отримаємо:
;
.
Далі за алгоритмом беремо х1 = 0 та х2 = 0 – координатні осі; інші обмежуючі прямі знаходимо, узявши х3 = 0, х4 = 0, х5=0, х6 = 0, х7 = 0. Багатокутник допустимих розв’язків зображено на рис. 3.10.
Рисунок 3.10
Знайдемо вигляд функціонала, вираженого через х1 та х2. Для цього знайдені щойно вирази для х3, х4, х5, х6 та х7 через вільні змінні х1 і х2 підставимо у функціонал і, звівши подібні члени, отримаємо: . Відкидаючи вільний член, маємо: . Будуємо вектор (–5, –2), перпендикулярно до нього — пряму F'. Рухаючи пряму F' в напрямку, протилежному (необхідно знайти мінімальне значення функції F), отримаємо точку мінімуму – А (рис.3.11).
Рисунок 3.11
У точці А перетинаються дві обмежуючі прямі: х6=0 та х7=0. Отже, для відшукання її координат необхідно розв’язати систему рівнянь:
Розв’язком системи є = 8,5; = 5. Підставивши ці значення у відповідні вирази, знайдемо оптимальні значення базисних змінних:
= 0,5; = 16,5; = 17,5; = 0; = 0.
Підстановкою значень та в лінійну функцію F отримуємо значення цільової функції:
.