Загальна форма моделі задачі лінійного програмування характеризується наступним:
Знайти сукупність значень n змінних
і умові невід’ємності:
для яких лінійна функція (цільова функція)
Знайти сукупність значень n змінних
і умові невід’ємності:
для яких лінійна функція (цільова функція)
Якщо ввести у розгляд матрицю:
і вектори:
то стандартна форма моделі матиме вид:
Задачу ЛП в стандартній формі зручно вирішувати графічним методом, якщо число змінних дорівнює двом (
Знайти сукупність значень n змінних
і умові невід’ємності:
для яких цільова функція
Компактна форма моделі має вид:
2.2 Симплекс-метод
Симплекс-метод — метод розв'язання задачі лінійного програмування, в якому здійснюється скерований рух по опорних планах до знаходження оптимального розв'язку; симплекс-метод також називають методом поступового покращення плану [6].
Опишемо метод.
Нехай невироджену задачу лінійного програмування представлено в канонічному вигляді:
де X = (x1, …, xn) — вектор змінних,
C = (c1, …., cn), B = (b1, …, bm)T,
Aj = (a1j, …, amj)T, j = 1, …, n — задані вектори,
T — знак транспонування, та
відмінні від нуля компоненти опорного плану, для полегшення пояснення розташовані на перших m місцях вектору X. Базис цього плану —
де
де xij коефіцієнт розкладання. Система умов
zk ≥ 0, xj = 0, j = m + 1, …, n, j ≠ k (6)
при заданому k визначає в просторі змінних задачі промінь, який виходить із точки, яка відповідає опорному плану, що розглядається. Нехай значення змінної xk при русі по цьому променю дорівнює θ, тоді значення базисних змінних дорівнюють xi(θ). В цих позначеннях рівняння (5) можна представити в виді
помноживши рівняння (3) на θ при j = k та віднявши від рівняння (1), отримаємо
Із рівнянь (7-8) отримаємо
Оскільки xi(θ) при θ = 0 визначають план задачі, то найбільше θ, яке не порушує обмеження xi (θ) ≥ 0, визначається із умови
де I = {i | xik > 0}.
В силу невиродженості задачі мінімум досягається не більш ніж для одного i = J та θ > 0. Значення лінійної форми при θ = θ0 визначається із рівнянь (9), (4), (2)
де Δk = zk — ck. Очевидно, Δj = 0 для j = 1, …, m.
Нехай
1. знайти Δk = minjΔj. Якщо Δk = 0, тоді план, який розглядається оптимізовано; якщо Δk < 0, вектор Ak вводиться в базис;
2. знайти θ0 та l, для якого
3. за знайденими l, k обчислити нові значення елементів таблиці за формулами
4.
де
Перетворення (12) замінює вектор коефіцієнтів Xk = (x1k, …, xmk) на одиничний вектор Xk з xlk = 1. В силу монотонного збільшення x0 повернення до вже пройденого плану неможливе, а із скінченності кількості опорних планів випливає скінченність алгоритму.
Початковий опорний план з одиничним базисом можна отримати, розв'язавши описаним алгоритмом допоміжну задачу
при обмеженнях
яка містить одиничний базис, який складається із векторів An+1, …, An+m. Цим векторам відповідають штучні змінні із значеннями
Описаний вище алгоритм називається першим (або прямим) алгоритмом симплекс-методу. Також відомий другий алгоритм (алгоритм із оберненою матрицею). В ньому перетворюється лише матриця A-1, обернена до базисної матриці.
3. Прикладний розділ
3.1 Вирішення задачі лінійного програмування симплекс-методом
Для розробки математичної моделі задачі позначимо:
x1 – кількість продукту А;