Геометрична інтерпретація
розв'язування задач лінійного програмування
Розглянемо геометричну інтерпретацію задачі
лінійного програмування, що залежить від двох параметрів. Для прикладу
візьмемо задачу про
використання сировини.
Геометрично систему
обмежень цієї задачі, що є системою нерівностей
2*x1 + 5*x2 <= 20
8*x1 + 5*x2 <= 40
5*x1 + 6*x2 <= 30
можна зобразити у вигляді деякої області на декартовій площині:
Оскільки розв'язки задач лінійного
програмування завжди знаходяться в області невід'ємних значень, то до
обмежень задач лінійного програмування потрібно дописати ще
дві нерівності: x1>=0 та x2>=0. На
малюнку ці дві нерівності визначають першу
чверть системи координат. Координати множини точок, що належать побудованому багатокутнику,
є розв'язками цієї системи, а багатокутник
називається областю допустимих розв'язків.
Для визначення цільової функції та її обмежень, побудуємо багатокутник допустимих
значень OABCD.
Оскільки всі нерівності містять знак <= , то багатокутник
допустимих розв'язків включає і прямі.
Далі для пошуку максимального розв'язку серед усіх допустимих будується опорна пряма (або пряма
нульового рівня):
L = 50*x1 + 40*x2 = 0
З цього рівняння видно, що пряма проходить через початок координат. Якщо цільова функція матиме вільний член, то при побудові опорної прямої його можна проігнорувати,
адже максимум лінійної функції L = b*x1 + c*x2 +d досягається при тих самих значеннях x1 та x2, що і максимум лінійної
функції без вільного члена d. Щоб визначити точку - максимум або мінімум серед допустимих розв'язків, потрібно
переміщувати опорну пряму паралельно самій собі в одному з напрямів. При
цьому значення L2 буде
або збільшуватись, або зменшуватись. Залежно
від постановки вихідної задачі (у даній задачі - це пошук максимуму)
визначається напрям руху опорної прямої: за вектором
напряму у випадку максимізації
цільової функції або проти вектора напряму при мінімізації
цільової функції. Вектор напряму визначається коефіцієнтами цільової функції:
вектор a(b,c)
Для даної задачі вектор напряму матиме вигляд: вектор а(50,40). Оскільки цільову функцію цієї задачі потрібно дослідити
на максимум L = 50*x1 + 40*x2 —> max, то опорну пряму потрібно переміщувати в напрямі, який вказує побудований вектор
напряму (на малюнку).
Координати останньої крайньої точки
багатокутника допустимих значень, яку перетне опорна лінія на своєму шляху, і
будуть тими значеннями, при яких величина L2 набуде
максимального значення. Для нашої задачі
такою вершиною багатокутника є вершина С. Вона утворюється при перетині
прямих 8*x1 + 5*x2 = 40 та 5*x1 + 6*x2 = 30.
Для визначення координат цієї вершини потрібно лише розв'язати відповідну
систему лінійних рівнянь:
8*x1 + 5*x2 = 40
5*x1 + 6*x2 = 30
і
підставити отриманий розв'язок (приблизно
x1 =3,9; x2 =1,74) у функцію. У результаті
отримаємо такий розв'язок цієї задачі лінійного програмування L2 = 264,6.
Опишемо алгоритм
пошуку оптимального значення задачі лінійного
програмування в геометричній інтерпретації.
1.
За умовою задачі записати обмеження та цільову
функцію.
2.
Побудувати багатокутник допустимих значень.
3. Побудувати опорну пряму відповідно до скоректованої цільової функції: прибрати вільний член і
прирівняти до 0.
4. За коефіцієнтами цільової функції при невідомих побудувати вектор напряму і визначити напрям переміщення
опорної прямої для досягнення
оптимального значення цільової функції.
5. Визначити точку, в якій цільова функція набуває оптимального значення, та рівняння прямих, на перетині
яких знаходиться визначена точка.
6. Розв'язати систему лінійних рівнянь, яку утворюють рівняння визначених прямих. 7. Для отримання
шуканого оптимального значення цільової функції підставити розв'язок системи рівнянь у
цільову функцію.
Обов'язково потрібно розглядати такі три можливі випадки одержання розв'язку
задачі лінійного програмування:
1) задача має один розв'язок, тобто опорна пряма на останньому
кроці перетинає одну точку, яка є вершиною області допустимих розв'язків;
2) задача має безліч розв'язків, тобто опорна пряма на останньому кроці перетинає відрізок, який є однією зі
сторін області допустимих розв'язків;
3) розв'язок задачі відсутній, тобто опорна пряма переміщується в бік, де область допустимих значень не
обмежена відрізком прямої, або опорна пряма переміщується в бік, протилежний до розміщення області допустимих значень.
Завдання
1. Розв'язати геометрично задачу про
використання сировини для випадку існування одного оптимального розв'язку, використавши власні вхідні дані.
2. Розв'язати геометрично задачу про використання сировини для випадку
існування безлічі оптимальних розв'язків, використавши
власні вхідні дані.
3. Розв'язати геометрично задачу про
використання сировини для випадку відсутності жодного оптимального розв'язку,
використавши власні вхідні дані.
4. Розв'язати геометрично задачу про складання харчового раціону для випадку існування одного оптимального
розв'язку, використавши власні вхідні
дані.
5). Розв'язати геометрично задачу про складання харчового раціону для випадку існування безлічі оптимальних
розв'язків, використавши власні вхідні дані.
6. Розв'язати геометрично задачу про складання харчового раціону для випадку відсутності жодного
оптимального розв'язку, використавши
власні вхідні дані.