Решение задач линейного программирования симплекс-методом

4.8.1 Основные понятия и определения

Линейное программирование (ЛП) – наука о методах отыскания экстремальных значений линейной функции, на неизвестные которой наложены линейные ограничения.

Общая (математическая) формулировка задачи ЛП формулируется следующим образом. Требуется найти экстремум (максимум или минимум) линейной функции n переменных Решение задач линейного программирования симплекс-методом - student2.ru

Решение задач линейного программирования симплекс-методом - student2.ru (4.3)

При ограничениях, наложенных на переменные x вида

Решение задач линейного программирования симплекс-методом - student2.ru (4.4)

Решение задач линейного программирования симплекс-методом - student2.ru заданные постоянные величины. (4.5)

Задача ЛП имеет так называемую каноническую форму, если система ограничений (4.4) задана в виде линейных уравнений, решения (4.5) системы неотрицательны и функция цели(4.3) при этом имеет экстремальное значение.

Базисные переменные – неизвестные, имеющие коэффициент, равный 1 в одном из уравнений системы (4.4) и не встречающиеся в остальных уравнениях системы (4.4) и в уравнении функции цели (4.3).

Базисное решение – решение, при котором все небазисные переменные равны 0.

4.8.2 Основные положения симплекс-метода

Для вычисления прежде всего необходимо, чтобы система ограничений (4.4) и уравнение функции цели (4.3) были приведены к виду, в котором какие-либо m неизвестных выражены через остальные n-m. При этом задача записывается в виде:

функция цели

Решение задач линейного программирования симплекс-методом - student2.ru (4.6)

система ограничений

Решение задач линейного программирования симплекс-методом - student2.ru (4.7)

где Решение задач линейного программирования симплекс-методом - student2.ru

Решение задач линейного программирования симплекс-методом - student2.ru

b, α, λ – постоянные коэффициенты, причем коэффициенты α и λ получаются после преобразования уравнения (4.3) и (4.4) к виду (4.6) и (4.7).

Допустим, что ищем решение системы, при котором функция цели (4.3) минимальна. Применяем базисное решение, то есть считаем, что

Решение задач линейного программирования симплекс-методом - student2.ru тогда Решение задач линейного программирования симплекс-методом - student2.ru Решение задач линейного программирования симплекс-методом - student2.ru .

При этом возможны два случая:

Все Решение задач линейного программирования симплекс-методом - student2.ru . Тогда минимум функции достигается при Решение задач линейного программирования симплекс-методом - student2.ru и полученное базисное значение является оптимальным, задача решена.

Среди чисел Решение задач линейного программирования симплекс-методом - student2.ru , есть положительные, например Решение задач линейного программирования симплекс-методом - student2.ru . В этом случае значение функции цели можно уменьшить за счет увеличения переменной Решение задач линейного программирования симплекс-методом - student2.ru , считая все остальные небазисные переменные равными 0, но так, чтобы ни одна из базисных переменных Решение задач линейного программирования симплекс-методом - student2.ru не оказалась отрицательной. Получим

Решение задач линейного программирования симплекс-методом - student2.ru

При этом, если все Решение задач линейного программирования симплекс-методом - student2.ru то при всех Решение задач линейного программирования симплекс-методом - student2.ru , значения Решение задач линейного программирования симплекс-методом - student2.ru а следовательно, при Решение задач линейного программирования симплекс-методом - student2.ru , функция цели Решение задач линейного программирования симплекс-методом - student2.ru т.е. минимум функции z не достигается (функция z снизу не ограничена).

Если среди чисел Решение задач линейного программирования симплекс-методом - student2.ru , есть какое-то Решение задач линейного программирования симплекс-методом - student2.ru то Решение задач линейного программирования симплекс-методом - student2.ru увеличивать беспредельно нельзя, т.к. в этом случае базисная переменная Решение задач линейного программирования симплекс-методом - student2.ru может стать отрицательной. При нескольких положительных коэффициентах из Решение задач линейного программирования симплекс-методом - student2.ru раньше всех достигает нулевого значения та базисная переменная Решение задач линейного программирования симплекс-методом - student2.ru , для которой Решение задач линейного программирования симплекс-методом - student2.ru .

Пусть Решение задач линейного программирования симплекс-методом - student2.ru .

Найдем значения остальных неизвестных

Решение задач линейного программирования симплекс-методом - student2.ru

и целевой функции Решение задач линейного программирования симплекс-методом - student2.ru причем уже Решение задач линейного программирования симплекс-методом - student2.ru .

Получен новый базис Решение задач линейного программирования симплекс-методом - student2.ru , где Решение задач линейного программирования симплекс-методом - student2.ru заменено на Решение задач линейного программирования симплекс-методом - student2.ru и функция цели z уменьшилась.

Для окончания первого шага преобразования необходимо записать (4.6) и (4.7) через новый базис. Из уравнения для Решение задач линейного программирования симплекс-методом - student2.ru (старого базисного неизвестного) в системе (4.7) находим Решение задач линейного программирования симплекс-методом - student2.ru (новое базисное неизвестное).

Решение задач линейного программирования симплекс-методом - student2.ru

и подставляем это выражение вместо Решение задач линейного программирования симплекс-методом - student2.ru в остальные уравнения. Получается система, разрешенная относительно нового базиса:

Решение задач линейного программирования симплекс-методом - student2.ru (4.8)

А функция цели (4.8) через новые базисные переменные будет иметь вид

Решение задач линейного программирования симплекс-методом - student2.ru (4.9)

В [2] приводятся правила определения коэффициентов Решение задач линейного программирования симплекс-методом - student2.ru системы (4.8) и (4.9) через коэффициенты системы (4.7).

Если исходное оптимальное решение не найдено, то процесс вычисления продолжается, производя аналогично вышеизложенному новую замену базиса.

Пример. Требуется найти максимум функции цели

Решение задач линейного программирования симплекс-методом - student2.ru

при заданных ограничениях

Решение задач линейного программирования симплекс-методом - student2.ru

Выделим базисные переменные в системе ограничений, для этого разделим на коэффициент при Решение задач линейного программирования симплекс-методом - student2.ru первое уравнение ограничения.

Получим

Решение задач линейного программирования симплекс-методом - student2.ru

а функция цели

Решение задач линейного программирования симплекс-методом - student2.ru

Решение задач линейного программирования симплекс-методом - student2.ru и Решение задач линейного программирования симплекс-методом - student2.ru образуют базис и базисное решение Решение задач линейного программирования симплекс-методом - student2.ru При этом Решение задач линейного программирования симплекс-методом - student2.ru . Поскольку Решение задач линейного программирования симплекс-методом - student2.ru входит в функцию цели с положительным коэффициентом ( Решение задач линейного программирования симплекс-методом - student2.ru ) можно попытаться увеличить z за счет увеличения Решение задач линейного программирования симплекс-методом - student2.ru .

Из первого уравнения следует, что Решение задач линейного программирования симплекс-методом - student2.ru , т.к. при Решение задач линейного программирования симплекс-методом - student2.ru значение Решение задач линейного программирования симплекс-методом - student2.ru становится отрицательным. Следовательно, необходимо перейти к новому базису Решение задач линейного программирования симплекс-методом - student2.ru .

Решение задач линейного программирования симплекс-методом - student2.ru

и функция цели

Решение задач линейного программирования симплекс-методом - student2.ru

Функцию цели увеличить больше нельзя, т.к. Решение задач линейного программирования симплекс-методом - student2.ru входит в Решение задач линейного программирования симплекс-методом - student2.ru с отрицательным коэффициентом.

Решение Решение задач линейного программирования симплекс-методом - student2.ru является оптимальным базисным решением. Функция цели при этом достигает максимума Решение задач линейного программирования симплекс-методом - student2.ru


Наши рекомендации