- •Тема 4. Линейное программирование (лп)
- •1) Постановка задачи линейного программирования. Формы записи задачи лп.
- •2) Графический метод решения задачи лп.
- •3.1 Стандартная форма задачи лп
- •3.2) Симплекс-метод
- •4) Двойственность в линейном программировании
- •Геометрическая интерпретация двойственных задач
1) Постановка задачи линейного программирования. Формы записи задачи лп.
Общая задача линейного программирования состоит в максимизации (или минимизации) линейной функции
(1.4)
от n вещественных переменных x1, x2,…, xn , удовлетворяющих условиям неотрицательности
(1.5)
и m линейным ограничениям
(1.6)
Среди ограничений могут одновременно встречаться знаки ≤, = и ≥ . Задача состоит в максимизации (минимизации) целевой функции. Значения bi , cj , aij предполагаются известными.
В матричных обозначениях задача может быть представлена следующим образом:
максимизировать (минимизировать) функцию
где
а
Индекс 0 в векторе x0 и в матрице A0 указывает на то, что это начальные значения.
2) Графический метод решения задачи лп.
На примере 1, мы рассмотрели задачу линейного программирования, возникающую на практике, и продемонстрировали графический метод их решения. Рассмотрев еще несколько примеров такого рода, мы сможем выявить несколько общих свойств задач линейного программирования, которые могут подсказать путь к их общему решению.
П
ример
1.2
Минимизировать функцию
z = − 3x1 − 4x2
при ограничениях x1, x2 ≥0,
Допустимой областью, изображенной на рис. 1.2, является четырехугольник PQRS.
Два последних ограничения усиливают условия неотрицательности. Функция z убывает в направлении вектора
Минимальное значение функции z = – 68 и достигается в точке R = (12, 8). Заметим, что, как и в примере 1, минимум достигается в вершине допустимой области. Оптимальным решением задачи является точках x1 =
12, x2 = 8 с минимальным значением функции z = – 68.
Из рассмотренного примера можно вывести несколько характерных черт задач линейного программирования:
Допустимая область всегда является выпуклым многоугольником, даже в случае, когда она не ограничена.
Оптимальное решение всегда достигается в вершинах допустимой области.
Задача линейного программирования могут быть приведены к стандартной форме.
3.1 Стандартная форма задачи лп
На первый взгляд задачи линейного программирования представляются по-разному. Все они могут быть приведены к стандартной форме, в которой целевая функция должна быть минимизирована, а все ограничения должны быть заданы в виде равенств с неотрицательными переменными.
Привести задачу к стандартной форме очень просто, используя следующие правила:
а) Максимизация
целевой функции
равносильна
минимизации целевой функции
б) Ограничение в
виде неравенств, например
,
может быть приведено к стандартной
форме
,
где новая
переменная x4
неотрицательна.
Ограничение
может быть приведено к стандартной
форме
,
где новая
переменная x5
неотрицательна.
в) Если некоторая
переменная xk
может
принимать любые значения, а требуется,
чтобы она была неотрицательная, ее можно
привести к виду
, где
и
.
Таким образом, приведение задачи к стандартной форме может потребовать введения дополнительных переменных (по-прежнему неотрицательных).
Аналогично соотношениям (1.7), (1.8), (1.9) выразим наиболее общую задачу линейного программирования в следующем виде (в ):
Если задача в таком виде является следствием задачи, рассмотренной выше, то в x наряду с исходными переменными будут входить новые переменные (и в матрицу А тоже).
Так, пример 2 может быть приведен к следующему виду:
минимизировать функцию z = − 3x1 − 4x2
при ограничениях
Пример 1 может быть приведен к следующему виду:
минимизировать функцию z = − 2x1 − 4x2
при ограничениях
Они состоят из двух уравнений с четырьмя неизвестными. Любое неотрицательное решение при этих ограничениях является допустимым решением.
Конечно, имея два уравнения с четырьмя неизвестными, можно получить решение (хотя не всегда допустимое), придавая двум неизвестным произвольные значения и разрешая уравнения относительно двух других неизвестных. Особенно интересны решения такого типа, когда два неизвестных приравниваются нулю. Если такое решение единственно, то оно называется базисным решением. Если оно к тому же допустимо, то называется базисным допустимым решением. Для общей задачи линейного программирования с n переменными, подчиненными m ограничениям (m < n), базисные решения ограничений могут быть получены, если приравнять нулю n –m из переменных и решить m уравнений относительно оставшихся m переменных; предполагается, что эти уравнения имеют единственное решение. Переменные, приравненные нулю, называются небазисными переменными. Остальные называются базисными и образуют базис.
В рассмотренных выше задачах можно выбрать две небазисные переменные шестью способами. Легко видеть, что базисные решения могут быть сведены в таблицу, в которой каждое решение соответствует паре небазисных переменных (x1, x2), (x1, x3), (x1, x4), (x2, x3), (x2, x4), (x3, x4). Из этих шести базисных решений только четыре допустимы и соответствуют вершинам допустимой области рис. 1.1 (см. приведенную таблицу).
В трехмерном случае линейные ограничения являются плоскостями, а не прямыми, допустимая область является выпуклым многогранником, а не выпуклым многоугольником. Оптимальному решению задачи будет соответствовать вершина этого многогранника, поскольку поверхностями уровня целевой функции будут плоскости вместо прямых, а плоскость, соответствующая наименьшему значению, имеет, вообще говоря, только одну общую точку с допустимой областью; эта точка и будет вершиной выпуклого многогранника, соответствующей оптимальному решению задачи.
Мы увидим, что этот результат закономерен. Базисные решения системы m уравнений с n неизвестными соответствуют вершинам допустимой области; оптимальное решение (если оно существует) соответствует базисному допустимому решению и, следовательно, является вершиной допустимой области.
