Линейное программирование - это наука о методах исследования и отыскания наибольших и наименьших значений линейной функции, на неизвестные которой наложены линейные ограничения. Таким образом, задачи линейного программирования относятся к задачам на условный экстремум функции. Казалось бы, что для исследования линейной функции многих переменных на условный экстремум достаточно применить хорошо разработанные методы математического анализа, однако невозможность их использования можно довольно просто проиллюстрировать
Действительно, путь необходимо исследовать на экстремум линейную функцию Z = С 1 х 1 +С 2 х 2 +... +С N x N
при линейных ограничениях
a 11 x 1 + a 22 x 2 + ... + a 1N Х N = b 1
a 21 x 1 + a 22 x 2 + ... + a 2N Х N = b 2
. . . . . . . . . . .
a М1 x 1 + a М2 x 2 + ... + a МN Х N = b М
Так как Z - линейная функция, то = С j (j = 1, 2, ..., n), то все коэффициенты линейной функции не могут быть равны нулю, следовательно, внутри области, образованной системой ограничений, экстремальные точки не существуют. Они могут быть на границе области, но исследовать точки границы невозможно, поскольку частные производные являются константами
Для решения задач линейного программирования потребовалось создание специальных методов. Особенно широкое распространение линейное программирование получило в экономике, так как исследование зависимостей между величинами, встречающимися во многих экономических задачах, приводит к линейной функции с линейными ограничениями, наложенными на неизвестные
- Общая задача линейного программирования
- Формулировка задачи.
Даны линейная функция
(1.1) Z = С 1 х 1 +С 2 х 2 +... +С N x N
и система линейных ограничений
a 11 x 1 + a 22 x 2 + ... + a 1N Х N = b 1
a 21 x 1 + a 22 x 2 + ... + a 2N Х N = b 2
. . . . . . . . . . .
a i1 x 1 + a i2 x 2 + ... + a iN Х N = b i (1.2)
. . . . . . . . . . .
a M1 x 1 + a M2 x 2 + ... + a MN Х N = b M
(1.3) x j 0 (j = 1, 2, ... ,n)
где а ij , Ь j и С j - заданные постоянные величины
Найти такие неотрицательные значения х 1 , х 2 , ..., х n , которые удовлетворяют системе ограничений (1.2) и доставляют линейной функции (1.1)минимальное значение
Общая задача имеет несколько форм записи
Векторная форма записи. Минимизировать линейную функцию Z = СХ при ограничениях
(1.4) А 1 х 1 + А 2 x 2 + ... + А N x N = А о , X 0
где С = (с 1 , с 2 , ..., с N ); Х = (х 1 , х 2 , ..., х N ); СХ - скалярное произведение; векторы
A 1 , A 2 ,..., A N , A 0
состоят соответственно из коэффициентов при неизвестных и свободных членах
Матричная форма записи . Минимизировать линейную функцию, Z = СХ при ограничениях АХ = А 0 , Х 0, где С = (с 1 , с 2 , ..., с N ) - матрица-cтрока; А = (а ij ) - матрица системы;
Х - матрица-столбец, А 0 - матрица-столбец
Запись с помощью знаков суммирования. Минимизировать линейную функцию Z = С j х j при ограничениях
0пределение 1. Планом или допустимым решением задачи линейного программирования называется Х = (х 1 , х 2 , ..., х N ), удовлетворяющий условиям (1.2) и (1.3)
0пределение 2. План Х = (х 1 , х 2 , ..., х N ) называется опорным, если векторы А (i = 1, 2, ..., N), входящие в разложение (1.4) с положительными коэффициентами х , являются линейно независимыми
Так как векторы А являются N-мерными, то из определения опорного плана следует, что число его положительных компонент не может превышать М
0пределение 3. Опорный план называется невырожденным, если он содержит М положительных компонент, в противном случае опорный план называется вырожденным
0пределение 4 . Оптимальным планом или оптимальным решением задачи линейного программирования называется план, доставляющий наименьшее (наибольшее) значение линейной функции
В дальнейшем рассмотрено решение задач линейного программирования, связанных с нахождением минимального значения линейной функции. Там, где необходимо найти максимальное значение линейной функции, достаточно заменить на противоположный знак линейной функции и найти минимальное значение последней функции. Заменяя на противоположный знак полученного минимального значения, определяем максимальное значение исходной линейной функции
-
- Геометрическая интерпретация задачи линейного программирования.
Рассмотрим задачу линейного программирования, система ограничений которой задана в виде неравенств
Найти минимальное значение линейной функции
(1.5) Z = С 1 х 1 +С 2 х 2 +... +С N x N
при ограничениях
a 11 x 1 + a 22 x 2 + ... + a 1N Х N b 1
a 21 x 1 + a 22 x 2 + ... + a 2N Х N b 2
(1.6) . . . . . . . . . . .
a M1 x 1 + a M2 x 2 + ... + a MN Х N b M
(1.7) x j 0 (j = 1, 2, ... ,n)
Совокупность чисел х 1 , х 2 , ..., х N , удовлетворяющих ограничениям (1.6) и (1.7), называется решением. Если система неравенств (1.6) при условии (1.7) имеет хотя бы одно решение, она называется совместной, в противном случае - несовместной
Рассмотрим на плоскости х 1 Ох 2 совместную систему линейных неравенств
a 11 x 1 + a 22 x 2 b 1
a 21 x 1 + a 22 x 2 b 2
. . . .
a M1 x 1 + a M2 x 2 b M
x 1 0, x 2 0
Это все равно, что в системе (1.6) - (1.7) положить N=2. Каждое неравенство этой системы геометрически определяет полуплоскость с граничной прямой
a i1 x 1 + a i2 x 2 = b i ,(i = 1, 2, ..., m). Условия неотрицательности определяют полуплоскости соответственно с граничными прямыми х = 0, х = 0. Система совместна, поэтому полуплоскости, как выпуклые множества, пересекаясь, образуют общую часть, которая является выпуклым множеством и представляет собой совокупность точек, координаты каждой из которых являются решением данной системы (рис. 1.1)
Совокупность этих точек (решений) назовем многоугольником решений. Он может быть точкой, отрезком, лучом, много-угольником, неограничен-ной многоугольной облас-тью