Skip to main content
LibreTexts - Ukrayinska

7.4: Лінійне програмування

  • Franz S. Hover & Michael S. Triantafyllou
  • Massachusetts Institute of Technology via MIT OpenCourseWare

Розглянемо тепер випадок, що вартість - це лінійна функціяn параметрів. Очевидно, що рішення не існує, якщо простір параметрів не обмежений, і дійсно рішення гарантовано знаходиться на кордоні. Ситуація добре проілюстрована в двох вимірах(n=2), приклад яких наведено нижче. Тут показано п'ять лінійних кордонів нерівності; неx допускаються поза можливою областю. У загальному випадку можуть бути присутніми як обмеження рівності, так і нерівності.

Графік, що показує двовимірну область, обмежену 5 лінійними нерівностями, в межах яких має лежати розв'язок.
Малюнок7.4.1: графік двовимірної області, обмеженої 5 лінійними нерівностями, де вартість - лінійна функція двох параметрів, зазначених на осях. Хоча вартість може бути більш оптимальною за межами обмеженого регіону, всі можливі рішення повинні лежати в цьому регіоні.

Характер проблеми - все лінійне, і включає нерівність і, можливо, обмеження рівності - допускає спеціальні і потужні алгоритми, які ефективні навіть у дуже великих вимірах, наприклад, в тисячах. У нижчих вимірах ми можемо звернутися до інтуїції, отриманої з фігури, щоб побудувати простіший метод для малих систем, скажімо, до десяти невідомих.

Перш за все, з малюнка видно, що рішення повинно лежати на одній з кордонів. Рішення фактично лежить у вершиніn гіперповерхонь розмірностіn1. Така гіперповерхня являє собою лінію в двовимірному просторі, площину в тривимірному просторі і так далі. Ми скажемо, що лінія в трипросторі - це перетин двох площин, а значить, еквівалентна двом гіперповерхням розмірності два. Можна перевірити, що гіперповерхня розмірностіn1 визначається одним рівнянням.

Якщо обмежень рівності немає, то ціn гіперповерхні, що утворюють вершину розв'язку, є підмножиною обмеженьI нерівності. У нас взагалі будеI>n. Якщо існують також обмеженняE<n рівності, то рішення лежить на перетині цих гіперповерхоньE рівності таnE інших гіперповерхонь, взятих з обмеженьI нерівності. Звичайно, якщоE=n, то у нас є тільки лінійна система для вирішення. Таким чином, ми маємо комбінаторичну задачу; розглянемо лише випадок нерівностей, а потім змішаний випадок.

  • Iнерівності, відсутні рівності. nнерівностей визначить вершину розв'язку. Кількість комбінацій рівняньn обмежень середI варіантів єI!/(In)!n!. Алгоритм: Для кожної комбінації (індексованоїk, скажімо) по черзі вирішуйте лінійну систему рівнянь, щоб знайти рішенняxk. Переконайтеся, що рішення не порушує жодного з інших обмеженьIn нерівності. З усіх рішень, які є здійсненними (тобто вони не порушують ніяких обмежень), підберіть оптимальний - він оптимальний.
  • Iнерівності,E рівності. Рішення включає всі рівності та обмеженняnE нерівності. Кількість комбінацій рівняньnE обмежень середI варіантів єI!/(In+E)!(nE)!. Алгоритм: Для кожної комбінації (індексованої зk) по черзі вирішуйте лінійний набір рівнянь, щоб дати кандидатське рішенняxk. Переконайтеся, що рішення не порушує жодного з інших обмеженьIn+E нерівності. З усіх посильних рішень підберіть оптимальний - він оптимальний.

Наведений вище приблизний рецепт передбачає, що жодна з гіперповерхонь не паралельна; паралельні обмеження не перетинаються і не існує розв'язку лінійного набору рівнянь. На щастя, такі випадки можуть бути легко виявлені (наприклад, шляхом перевірки на сингулярність матриці) і класифікуються як нездійсненні. На наведеному вище малюнку,I=5 іn=2. Звідси є5!/(52)!2!=10 комбінації, щоб спробувати: AB, AC, AD, AE, BC, BD, BE, CD, CE, DE. Лише п'ять очевидні, оскільки деякі перехрестя знаходяться за межами зазначеної області (Чи можете ви знайти їх усі?).

Підхід лінійного програмування є надзвичайно цінним у багатьох сферах політики та фінансів, де витрати масштабуються лінійно з кількістю, а нерівності є звичайним явищем. Існує також безліч інженерних додатків, через поширеність лінійного аналізу.