Различные формы задач линейного программирования и их эквивалентность
Все экстремальные математические задачи, описанные ранее, и задачи, им эквивалентные, укладываются в общий класс задач линейного программирования (ЗЛП). Однако запись линейной формы и, главным образом, ограничений в разных задачах заметно различается. Так, в каждой из этих задач требуется максимизировать или минимизировать линейную функцию от нескольких переменных. При этом ограничения, наложенные на совокупность переменных, являются либо линейными неравенствами, либо линейными уравнениями. Ограничения типа неравенств также носят разный смысл: в одном случае линейная функция от переменных должна быть больше соответствующей константы, в другом меньше. Однако очевидно, что всегда можно добиться, чтобы все знаки неравенств были направлены в одну сторону (умножив при необходимости обе части неравенства на (-1)). Ряд практических задач сводится также к смешанным условиям: часть ограничений - линейные уравнения, другие – линейные неравенства. Не во всех задачах требуется неотрицательность всех переменных.
Такое разнообразие форм записи условий требует разработки специальных методов для решения отдельных классов задач и затрудняет исследование общих особенностей линейного программирования и создание общих методов и вычислительных алгоритмов. Поэтому естественно сформулировать общую задачу линейного программирования и рассмотреть способ сведения любой задачи линейного программирования к более простой и удобной для исследования форме.
В общей задачи линейного программирования часть ограничений носит характер неравенств, а часть является уравнениями. Кроме того, не на все переменные наложено условие неотрицательности.
Итак, требуется найти максимальное (минимальное) значение целевой функции
L = ® max (min)
при ограничениях
(1)
x1 ³ 0, x2 ³ 0, ... , xr ³ 0. Здесь k£m£n.
Если все переменные неотрицательны xj ³ 0 (j=1,2,…,n), система ограничений (1) состоит лишь из неравенств, т.е. k=m – такая ЗЛП называется стандартная (симметричная) задача линейного программирования: необходимо максимизировать (минимизировать) линейную функцию от нескольких переменных L= ® max (min) при ограничениях: , i=1, 2, ... ,m.
x1 ³ 0, x2 ³ 0, ... , xn ³ 0,
Векторная форма записи: L=CX® max (min) при ограничениях A1x1+A2x2+…+Anxn£ B, X³ 0,
где С=(C1,C2,...,Cn) - вектор коэффициентов целевой функции, Х=( x1,x2,…,xn),
СХ – скалярное произведение,
А1= , А2= ,…,Аn= , В= - векторы, состоящие соответственно из коэффициентов при неизвестных и свободных членов.
Матричная форма записи.
Элементы таблицы aij образуют матрицу А размером m х n; bi выразим вектором ограничений B=(b1,b2,...,bm), xi - вектором X=(x1,x2,...,xn), коэффициенты целевой функции - вектор C=(C1,C2,...,Cn).
В соответствии с правилом умножения матрицы на вектор каждое из m выражений, стоящих в левой части неравенств, представляет собой координату вектора AX. Систему неравенств можно переписать следующим образом: A×X £ B.
Выражение C1x1+C2x2+××××+Cnxn запишем в виде скалярного произведения двух векторов CX.
Используя эти обозначения, ЗЛП можно кратко выразить в следующей форме:
найти L=C X® max (min) при ограничениях A×X £ B, X ³ 0 .
Стандартная задача важна ввиду наличия большого числа прикладных моделей, сводящихся наиболее естественным образом к этому классу ЗЛП.
Если система ограничений (1) состоит лишь из равенств, т.е. k=0 – такая ЗЛП называется каноническая (основная) задача линейного программирования:
найти максимум (минимум) линейной функции от нескольких переменных:
L= ® max (min) при ограничениях
, i=1, 2, ... ,m, x1 ³ 0, x2 ³ 0, ... , xn ³ 0,
В матричной записи: L=CX® max (min) при ограничениях A×X = B, X ³ 0 .
В векторной записи: L=CX® max (min) при ограничениях A1x1+A2x2+…+Anxn= B, X³ 0.
Все три перечисленные формы задач эквивалентны в том смысле, что каждую из них можно простыми преобразованиями привести к любой из двух остальных. Поэтому, если имеется способ решения одной из этих задач (например, канонической), то тем самым мы умеем решать любую из трех ЗЛП.
Покажем, например, как привести стандартную задачу к канонической форме. Рассмотрим линейное неравенство с n неизвестными
. (1)
Для приведения неравенства к равенству необходимо к его левой части прибавить неотрицательную величину . (2)
В результате получаем линейное уравнение, содержащее n+1 переменную:
. (3)
Неотрицательная переменная величина , с помощью которой неравенство преобразуется в уравнение, называется дополнительной переменной.
Теорема. Каждому решению =(b1,b2,…,bn) неравенства (1) соответствует единственное решение =(b1,b2,…,bn, bn+1) уравнения (3) и неравенства (2), и, наоборот, каждому решению уравнения (3) и неравенства (2) соответствует единственное решение неравенства(1).
Доказательство. Пусть - решение неравенства (1), тогда а1b1+a2b2+…+anbn £b.
Перенося левую часть этого неравенства в правую и обозначая выражение в правой части через bn+1, т.е. 0£b-( а1b1+a2b2+…+anbn )= bn+1,
получаем, что решение =(b1,b2,…,bn, bn+1) удовлетворяет уравнению (3) и неравенству (2). Действительно, и
а1b1+a2b2+…+anbn + bn+1= а1b1+a2b2+…+anbn +[ b-( а1b1+a2b2+…+anbn )]=b.
Пусть удовлетворяет уравнению (3) и неравенству (2), т.е.
а1b1+a2b2+…+anbn + bn+1=b и .
Тогда, отбрасывая в левой части равенства неотрицательную величину bn+1, получаем неравенство а1b1+a2b2+…+anbn £b.
Отсюда следует, что - решение неравенства (1).
¨
В каждое из m неравенств системы ограничений стандартной задачи ведем новые неотрицательные переменные xn+1, xn+2,..., xn+m, и рассмотрим следующую каноническую задачу: найти максимальное значение целевой функции
L = C1x1+C2x2+ ... + Cnxn +0×xn+1 + 0×xn+2 + ××× +0×xn+m ® max
при ограничениях:
x1 ³ 0, x2 ³ 0, ... , xn, xn+1, xn+2, ... , xn+m ³ 0.
Таким образом, если система ограничений ЗЛП содержит неравенства, то, вводя в каждое из них свою неотрицательную дополнительную переменную, ее можно преобразовать в систему уравнений, т.е. стандартную ЗЛП свести к канонической. При этом в линейную функцию каждая дополнительная переменная входит с коэффициентом, равным нулю.
Еще проще процесс сведения канонической задачи к стандартной - надо лишь каждое уравнение из системы ограничений заменить двумя неравенствами:
ai1x1 + ai2x2 + ××× + ainxn = bi Û ai1x1 + ai2x2 + ××× + ainxn £ bi,
ai1x1 + ai2x2 + ××× + ainxn ³ bi.
Если на переменную xj общей ЗЛП не накладывается условие неотрицательности, то для того, чтобы общую задачу свести к стандартной, нужно положить xj = uj - vj, где uj, vj - новые переменные, и наложить условия uj ³ 0, vj ³ 0. Это возможно, т.к. любое число может быть записано как разность двух положительных чисел.
Тот случай, когда в задаче требуется минимизировать линейную форму C1x1+C2x2+ ... + Cnxn, легко свести к задаче максимизации: следует рассмотреть задачу нахождения максимума функции -С1x1-C2x2- ... -Cnxn.
Терминология задач линейного программирования.
Линейная функция L=CX = C1x1+C2x2+ ... + Cnxn, подлежащая максимизации (или минимизации), называется целевой функцией.
Вектор X=(x1, x2, ... , xn), удовлетворяющий всем ограничениям задачи линейного программирования, называется допустимым вектором (решением) или планом.
Если система неравенств при условии неотрицательности имеет хотя бы одно решение, она называется совместной, в противном случае - несовместной.
Задача линейного программирования, для которой существуют допустимые векторы, называется допустимой задачей.
Максимальное значение d=CX* целевой функции называется значением задачи.
План X=(x1, x2, ... , xn) называется опорным, если векторы Ai (i=1,2, ... , m), входящие в разложение A1x1+A2x2+…+Anxn = B с положительными коэффициентами xi, являются линейно независимыми.
Так как векторы Ai являются m-мерными, то из определения опорного плана следует, что число его положительных компонент не может превышать m.
Опорный план называется невырожденным, если он содержит m положительных компонент, в противном случае опорный план называется вырожденным.
Оптимальным планом или оптимальным решением ЗЛП называется план, доставляющий наибольшее (наименьшее) значение целевой функции.
Решение ЗЛП связано с понятием выпуклого множества.
Выпуклые множества
Пусть на плоскости х1Ох2 заданы две точки А1(x1(1),x2(1)) и А2(x1(2),x2(2)), определяющие прямолинейный направленный отрезок . Определим координаты произвольной внутренней точки А(x1, x2) данного отрезка, выразив их через координаты конечных точек отрезка A1 и A2. Заметим, что векторы
=(x1-x1(1), x2-x2(1)) и =(x1(2)-x1(1),x2(2)-x2(1)) параллельны и одинаково направлены, поэтому =t( ), где 0 £ t £ 1, или x1-x1(1)=t(x1(2)-x1(1)), x2- x2(1)=t(x2(2)-x2(1)).
Отсюда получаем систему уравнений
Раскрыв скобки в уравнениях системы, сгруппировав члены относительно координат точек, получаем
Обозначив 1-t = l1, а t = l2, получим
.
Заметим, что l1 ³ 0, l2³0 и l1+l2=1, так как 0 £ t £ 1. Таким образом координаты точки А являются суммами одноимённых координат точек А1 и А2, умноженными на числа l1 и l2. Такое представление координат точки называется выпуклой линейной комбинацией точек А1 и А2 и может быть записано в следующем виде:
А=l1А1+l2А2;
l1³0, l2³0, l1+l2=1.
При l1=1 и l2=0 точка А совпадает с концом отрезка А1, при l1=0 и l2=1 - с концом отрезка А2. Таким образом, если t пробегает все значения от 0 до 1, то точка А описывает отрезок .
Точки А1 и А2 называются угловыми ( крайними ) токами отрезка .
Пусть имеется n точек А1, А2,…Аn. Точка А - выпуклая линейная комбинация, если выполняются условия
А=l1А1+l2А2+…+lnАn; lj³0, (j=1,2,…,n) , l1+l2+…+ln=1.
Множество точек называется выпуклым, если оно вместе с любыми двумя точками содержит и их произвольную выпуклую линейную комбинацию.
Геометрически это означает, что множеству вместе с его двумя произвольными точками полностью принадлежит и прямолинейный отрезок, их соединяющий.
Точка множества называется граничной, если любой шар сколь угодно малого радиуса с центром в этой точке содержит как точки, принадлежащие множеству, так и точки, не принадлежащие ему. Граничные точки множества образуют его границу.
Точка множества называется внутренней, если любой шар сколь угодно малого радиуса с центром в этой точке содержит точки только данного множества.
Угловыми точками выпуклого множества назовём точки, не являющиеся выпуклой комбинацией двух произвольных точек множества.
Замкнутым называется множество, содержащее все свои граничные точки.
Замкнутое множество может быть ограниченным и неограниченным.
Множество называется ограниченным, если существует шар радиуса конечной длины с центром в любой точке множества, который полностью содержит в себе данное множество; в противном случае множество называется неограниченным.
Пересечением двух (или нескольких) множеств называется множество, состоящее из общей части данных множеств.
Теорема 1. Пересечение (общая часть) любого числа выпуклых множеств есть выпуклое множество.
Доказательство.
Для доказательства ограничимся случаем двух множеств.
Пусть F - пересечение выпуклых множеств F1 и F2 (см. рис.). Возьмем в F две произвольные точки A1 , A2 и соединим их прямолинейным отрезком. Отрезок принадлежит F1 и F2 , так как они - выпуклые множества; этот же отрезок принадлежит и множеству F, так как оно является общей частью F1 и F2. Следовательно, F - выпуклое множество.¨
Выпуклое множество может иметь конечное и бесконечное число угловых точек, например, конечное число угловых точек (вершин) треугольника и бесконечное число угловых точек круга (точки окружности, ограничивающей круг). Прямая, плоскость, полуплоскость, пространство, полупространство угловых точек не имеют.
Выпуклым многоугольником называется выпуклое замкнутое ограниченное множество на плоскости, имеющее конечное число угловых точек, которые называются его вершинами, а отрезки, соединяющие две вершины и образующие его границу, называются сторонами многоугольника.
Опорной прямой выпуклого многоугольника называется прямая, имеющая с многоугольником, расположенным по одну сторону от нее, хотя бы одну общую точку.
Выпуклым многогранником называется замкнутое ограниченное выпуклое множество n-мерного пространства с конечным числом угловых точек.
Граница многогранника состоит из угловых точек - вершин многогранника, отрезков прямых, соединяющих вершины, называемые рёбрами, и плоских многоугольников, называемых гранями.
Опорной плоскостью многогранника называется плоскость, имеющая с многогранником, расположенным по одну сторону от нее, хотя бы одну общую точку.
Рассмотрим теорему о представлении выпуклого многогранника.
Теорема 2 (о представлении выпуклого многогранника). Выпуклый n-мерный многогранник является выпуклой линейной комбинацией своих угловых точек.
Доказательство.
Рассмотрим многогранник, имеющий n вершин. Пусть для простоты n=3, т.е. в качестве многогранника возьмем треугольник А1А2А3. Сначала докажем, что любая точка треугольника удовлетворяет теореме. В треугольнике А1А2А3 возьмем произвольную точку А и через нее проведем отрезок (см. рисунок).
А2
А4
А1 А3
Т. к. точка А принадлежит отрезку , то она – выпуклая линейная комбинация его концов, т.е. А=l1А1+l4А4; l1³0, l4³0, l1+l4=1. (*)
Точка А4 принадлежит отрезку , следовательно, является выпуклой линейной комбинацией, т.е. А4=l2А2+l3А3; l2³0, l3³0, l2+l3=1. (**)
Подставляя (**) в (*), получаем
А=l1А1+l4(l2А2+l3А3)= l1А1+l2l4А2+l3l4А3.
Полагая l1= t1, l2l4=t2, l3l4=t3, окончательно получим
А= t1А1+t2А2+t3А3, t1³0, t2³0, t3³0, t1+t2+t3=1,
т.е. точка А - выпуклая линейная комбинация вершин А1, А2, А3. Если положить, например, t1=0, то это означает, что точка А совпадает с точкой А4 и лежит на стороне . В этом случае выпуклая линейная комбинация для точки имеет вид
А=0.А1+t2А2+t3А3=t2А2+t3А3, t1=0,t2³0, t3³0, t2+t3=1. ¨