Различные формы задач линейного программирования и их эквивалентность

Все экстремальные математические задачи, описанные ранее, и задачи, им эквивалентные, укладываются в общий класс задач линейного программирования (ЗЛП). Однако запись линейной формы и, главным образом, ограничений в разных задачах заметно различается. Так, в каждой из этих задач требуется максимизировать или минимизировать линейную функцию от нескольких переменных. При этом ограничения, наложенные на совокупность переменных, являются либо линейными неравенствами, либо линейными уравнениями. Ограничения типа неравенств также носят разный смысл: в одном случае линейная функция от переменных должна быть больше соответствующей константы, в другом меньше. Однако очевидно, что всегда можно добиться, чтобы все знаки неравенств были направлены в одну сторону (умножив при необходимости обе части неравенства на (-1)). Ряд практических задач сводится также к смешанным условиям: часть ограничений - линейные уравнения, другие – линейные неравенства. Не во всех задачах требуется неотрицательность всех переменных.

Такое разнообразие форм записи условий требует разработки специальных методов для решения отдельных классов задач и затрудняет исследование общих особенностей линейного программирования и создание общих методов и вычислительных алгоритмов. Поэтому естественно сформулировать общую задачу линейного программирования и рассмотреть способ сведения любой задачи линейного программирования к более простой и удобной для исследования форме.

В общей задачи линейного программирования часть ограничений носит характер неравенств, а часть является уравнениями. Кроме того, не на все переменные наложено условие неотрицательности.

Итак, требуется найти максимальное (минимальное) значение целевой функции

L = Различные формы задач линейного программирования и их эквивалентность - student2.ru ® max (min)

при ограничениях

Различные формы задач линейного программирования и их эквивалентность - student2.ru (1)

x1 ³ 0, x2 ³ 0, ... , xr ³ 0. Здесь k£m£n.

Если все переменные неотрицательны xj ³ 0 (j=1,2,…,n), система ограничений (1) состоит лишь из неравенств, т.е. k=m – такая ЗЛП называется стандартная (симметричная) задача линейного программирования: необходимо максимизировать (минимизировать) линейную функцию от нескольких переменных L= Различные формы задач линейного программирования и их эквивалентность - student2.ru ® max (min) при ограничениях: Различные формы задач линейного программирования и их эквивалентность - student2.ru , 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= Различные формы задач линейного программирования и их эквивалентность - student2.ru , А2= Различные формы задач линейного программирования и их эквивалентность - student2.ru ,…,Аn= Различные формы задач линейного программирования и их эквивалентность - student2.ru , В= Различные формы задач линейного программирования и их эквивалентность - student2.ru - векторы, состоящие соответственно из коэффициентов при неизвестных и свободных членов.

Матричная форма записи.

Элементы таблицы 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= Различные формы задач линейного программирования и их эквивалентность - student2.ru ® max (min) при ограничениях

Различные формы задач линейного программирования и их эквивалентность - student2.ru , 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 неизвестными

Различные формы задач линейного программирования и их эквивалентность - student2.ru . (1)

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

В результате получаем линейное уравнение, содержащее n+1 переменную:

Различные формы задач линейного программирования и их эквивалентность - student2.ru . (3)

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

Теорема. Каждому решению Различные формы задач линейного программирования и их эквивалентность - student2.ru =(b1,b2,…,bn) неравенства (1) соответствует единственное решение Различные формы задач линейного программирования и их эквивалентность - student2.ru =(b1,b2,…,bn, bn+1) уравнения (3) и неравенства (2), и, наоборот, каждому решению Различные формы задач линейного программирования и их эквивалентность - student2.ru уравнения (3) и неравенства (2) соответствует единственное решение Различные формы задач линейного программирования и их эквивалентность - student2.ru неравенства(1).

Доказательство. Пусть Различные формы задач линейного программирования и их эквивалентность - student2.ru - решение неравенства (1), тогда а1b1+a2b2+…+anbn £b.

Перенося левую часть этого неравенства в правую и обозначая выражение в правой части через bn+1, т.е. 0£b-( а1b1+a2b2+…+anbn )= bn+1,

получаем, что решение Различные формы задач линейного программирования и их эквивалентность - student2.ru =(b1,b2,…,bn, bn+1) удовлетворяет уравнению (3) и неравенству (2). Действительно, Различные формы задач линейного программирования и их эквивалентность - student2.ru и

а1b1+a2b2+…+anbn + bn+1= а1b1+a2b2+…+anbn +[ b-( а1b1+a2b2+…+anbn )]=b.

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

а1b1+a2b2+…+anbn + bn+1=b и Различные формы задач линейного программирования и их эквивалентность - student2.ru .

Тогда, отбрасывая в левой части равенства неотрицательную величину bn+1, получаем неравенство а1b1+a2b2+…+anbn £b.

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

¨

В каждое из m неравенств системы ограничений стандартной задачи ведем новые неотрицательные переменные xn+1, xn+2,..., xn+m, и рассмотрим следующую каноническую задачу: найти максимальное значение целевой функции

L = C1x1+C2x2+ ... + Cnxn +0×xn+1 + 0×xn+2 + ××× +0×xn+m ® max

при ограничениях:

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

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 положительных компонент, в противном случае опорный план называется вырожденным.

Оптимальным планом или оптимальным решением ЗЛП называется план, доставляющий наибольшее (наименьшее) значение целевой функции.

Решение ЗЛП связано с понятием выпуклого множества.

Выпуклые множества

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

Пусть на плоскости х1Ох2 заданы две точки А1(x1(1),x2(1)) и А2(x1(2),x2(2)), определяющие прямолинейный направленный отрезок Различные формы задач линейного программирования и их эквивалентность - student2.ru . Определим координаты произвольной внутренней точки А(x1, x2) данного отрезка, выразив их через координаты конечных точек отрезка A1 и A2. Заметим, что векторы
Различные формы задач линейного программирования и их эквивалентность - student2.ru =(x1-x1(1), x2-x2(1)) и Различные формы задач линейного программирования и их эквивалентность - student2.ru =(x1(2)-x1(1),x2(2)-x2(1)) параллельны и одинаково направлены, поэтому Различные формы задач линейного программирования и их эквивалентность - student2.ru =t( Различные формы задач линейного программирования и их эквивалентность - student2.ru ), где 0 £ t £ 1, или x1-x1(1)=t(x1(2)-x1(1)), x2- x2(1)=t(x2(2)-x2(1)).

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

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

Обозначив 1-t = l1, а t = l2, получим

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

Заметим, что 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, то точка А описывает отрезок Различные формы задач линейного программирования и их эквивалентность - student2.ru .

Точки А1 и А2 называются угловыми ( крайними ) токами отрезка Различные формы задач линейного программирования и их эквивалентность - student2.ru .

Пусть имеется n точек А1, А2,…Аn. Точка А - выпуклая линейная комбинация, если выполняются условия

А=l1А1+l2А2+…+lnАn; lj³0, (j=1,2,…,n) , l1+l2+…+ln=1.

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

Геометрически это означает, что множеству вместе с его двумя произвольными точками полностью принадлежит и прямолинейный отрезок, их соединяющий.

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

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

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

Замкнутым называется множество, содержащее все свои граничные точки.

Замкнутое множество может быть ограниченным и неограниченным.

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

Пересечением двух (или нескольких) множеств называется множество, состоящее из общей части данных множеств.

Теорема 1. Пересечение (общая часть) любого числа выпуклых множеств есть выпуклое множество.

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

Доказательство.

Для доказательства ограничимся случаем двух множеств.

Пусть F - пересечение выпуклых множеств F1 и F2 (см. рис.). Возьмем в F две произвольные точки A1 , A2 и соединим их прямолинейным отрезком. Отрезок Различные формы задач линейного программирования и их эквивалентность - student2.ru принадлежит F1 и F2 , так как они - выпуклые множества; этот же отрезок принадлежит и множеству F, так как оно является общей частью F1 и F2. Следовательно, F - выпуклое множество.¨

Выпуклое множество может иметь конечное и бесконечное число угловых точек, например, конечное число угловых точек (вершин) треугольника и бесконечное число угловых точек круга (точки окружности, ограничивающей круг). Прямая, плоскость, полуплоскость, пространство, полупространство угловых точек не имеют.

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

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

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

Выпуклым многогранником называется замкнутое ограниченное выпуклое множество n-мерного пространства с конечным числом угловых точек.

Граница многогранника состоит из угловых точек - вершин многогранника, отрезков прямых, соединяющих вершины, называемые рёбрами, и плоских многоугольников, называемых гранями.

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

Рассмотрим теорему о представлении выпуклого многогранника.

Теорема 2 (о представлении выпуклого многогранника). Выпуклый n-мерный многогранник является выпуклой линейной комбинацией своих угловых точек.

Доказательство.

Рассмотрим многогранник, имеющий n вершин. Пусть для простоты n=3, т.е. в качестве многогранника возьмем треугольник А1А2А3. Сначала докажем, что любая точка треугольника удовлетворяет теореме. В треугольнике А1А2А3 возьмем произвольную точку А и через нее проведем отрезок Различные формы задач линейного программирования и их эквивалентность - student2.ru (см. рисунок).

Различные формы задач линейного программирования и их эквивалентность - student2.ru А2

Различные формы задач линейного программирования и их эквивалентность - student2.ru А4

Различные формы задач линейного программирования и их эквивалентность - student2.ru А1 А3

Т. к. точка А принадлежит отрезку Различные формы задач линейного программирования и их эквивалентность - student2.ru , то она – выпуклая линейная комбинация его концов, т.е. А=l1А1+l4А4; l1³0, l4³0, l1+l4=1. (*)

Точка А4 принадлежит отрезку Различные формы задач линейного программирования и их эквивалентность - student2.ru , следовательно, является выпуклой линейной комбинацией, т.е. А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 и лежит на стороне Различные формы задач линейного программирования и их эквивалентность - student2.ru . В этом случае выпуклая линейная комбинация для точки имеет вид

А=0.А1+t2А2+t3А3=t2А2+t3А3, t1=0,t2³0, t3³0, t2+t3=1. ¨

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