Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Введение в математическое программирование

..pdf
Скачиваний:
14
Добавлен:
15.11.2022
Размер:
1.81 Mб
Скачать

Составим математическую модель транспортной задачи: Обозначим xij – количество продукта, перевозимое из i-го

пункта производства в j-й пункт потребления.

Целевая функция, описывающая транспортные издержки, имеет вид

m

n

 

Z = ∑ ∑ cij xij .

(3.1.4)

i=1

j=1

 

Ограничения задачи:

по запасам – все продукты из пунктов производства должны быть вывезены:

n

(i =

 

);

 

xij = ai

1, m

(3.1.5)

j=1

 

 

 

 

по потребностям – спрос каждого потребителя должен быть удовлетворен:

m

(j =

 

);

 

xij =bj

1, n

(3.1.6)

i=1

 

 

 

 

общие ограничения, следующие из смысла задачи:

xij 0 (i =

 

; j =

 

).

(3.1.7)

1, m

1, n

Итак, математическая постановка транспортной задачи: Дана система m + n уравнений с m n переменными и ли-

нейная функция (3.1.4) относительно тех же переменных. Требуется среди решений системы (3.1.5)–(3.1.7) найти такое решение или решения, при которых функция (3.1.4) примет минимальное значение. Задача (3.1.4)–(3.1.7) – задача линейного программирования.

3. Задача о смесях

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

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

11

Рассмотрим задачу о выборе диеты. Имеются пищевые продукты n видов по цене за единицу веса c j (j =1, n). В про-

дуктах содержится m питательных веществ (углеводы, белки, жиры, витамины, микроэлементы и т.д.). Единица j-го продукта содержит àij единиц i-го питательного вещества. Для нормаль-

ной жизнедеятельности в заданный промежуток времени нужно потреблять не менее bi единиц i-го питательного вещества.

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

Обозначим через xj количество продукта j-го вида, входящего в рацион.

Математическая модель задачи: найти минимум функции

n

 

Z = c j x j

(3.1.8)

j=1

 

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

 

n

 

 

 

aij x j bi (i =1, m) ;

(3.1.9)

j=1

 

x j 0 ( j =

 

) .

(3.1.10)

1, n

Получили задачу линейного программирования.

 

3.2.Формы записи ЗЛП, их эквивалентность

испособы преобразования

1.Общей задачей ЛП называют следующую задачу:

n

максимизировать (минимизировать) функцию Z = c j x j

j=1

n

при условиях aij x j bi (i =1, m1) ;

i=1

12

n

aij x j =bi (i = m1 +1, m2 ) ;

i=1

n

aij x j bi (i = m2 +1, m) ;

i=1

x j 0 ( j =1, n1) , (n1 n),

где aij, bi, cj – заданные действительные числа.

Отметим, что целевая функция Z может иметь вид

n

Z = c j x j +c0 .

j=1

2. Задача ЛП в симметричной форме имеет следующий вид: максимизировать функцию

n

Z = c j x j

j=1

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

n

aij x j bi (i =1, m) ;

i=1

x j 0 ( j =1, n)

или минимизировать функцию

n

Z = c j x j

j=1

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

n

aij x j bi (i =1, m) ;

i=1

x j 0 ( j =1, n) .

13

3. ЗЛП в канонической форме имеет следующий вид: минимизировать (максимизировать) функцию

n

Z = c j x j

j=1

при условиях

n

aij x j =bi (i =1, m) ;

i=1

x j 0 ( j =1, n) .

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

Переход от симметричной формы записи задачи

кканонической форме

1.Задача на максимум линейной формы Z легко сводится

кзадаче на отыскание минимума формы Z1 = −Z .

y

 

y = f(x)

Для функции одной перемен-

 

ной это очевидно (рис. 3.2.1). Дей-

 

 

 

 

 

 

ствительно, если x* точка макси-

 

 

 

мума функции ó = f (x) , то для

0

х*

x

функции ó = − f (x) x*

точка ми-

 

 

 

нимума, так как графики функций

 

 

 

ó = f (x)

и ó = − f (x)

симметрич-

 

 

y = – f(x)

ныотносительно оси0x.

 

 

 

Итак,

max f (x) =−min(f (x)).

 

Рис. 3.2.1

 

То же

равенство

справедливо

и для функции n переменных:

 

 

 

 

max f (x1, ..., xn ) = –min (f (x1, ..., xn )).

 

Таким образом, вопрос о максимуме целевой функции Z равносилен вопросу о минимуме целевой функции Z1 = −Z .

14

2. Любое ограничение в форме линейного неравенства может быть сведено к ограничению в форме линейного уравнения. Любое линейное неравенство можно привести к виду

a1x1 +a2 x2 +... +an xn b 0.

(3.2.1)

Обозначим левую часть этого неравенства через xn+1 , т.е. xn+1 = a1x1 + a2 x2 +... + an xn b . Тогда неравенство (3.2.1) будет эквивалентно паре ограничений:

a1x1 + a2 x2 +... + an xn xn+1 = b ;

(3.2.2)

xn+1 0 .

Итак, введение в задачу дополнительных неотрицательных переменных позволяет все ограничения-неравенства заменить ограничениями-равенствами. При этом число дополнительных переменных равно числу ограничений-неравенств в исходной задаче.

Замечание:

В ряде экономических ситуаций не на все переменные задачи налагаются условия неотрицательности. В таких случаях задача не будет иметь канонического вида. Для представления такой задачи в каноническом виде каждую из переменных xk, на которую не наложено условие неотрицательности, заменим разностью двух неотрицательных переменных xk и x′′k, т.е. xk = xk x′′k, где xk 0, x′′k 0.

Переход от канонической формы записи ЗЛП к симметричной форме

Рассмотрим ЗЛП в канонической форме:

n

 

 

 

 

 

 

 

Z = c j x j (min(max));

(3.2.3)

j=1

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

aij x j

= bi

(i =

1, m

);

(3.2.4)

i=1

 

 

 

 

 

 

 

x j 0

( j =

 

) .

(3.2.5)

1, n

 

15

 

 

 

 

 

 

Задача (3.2.3)–(3.2.5) имеет смысл лишь в том случае, когда система уравнений (3.2.4) совместна. Обозначим ранг матрицы из коэффициентов при неизвестных системы (3.2.4) через r. Если r = n, то система (3.2.4) имеет единственное решение

(x10 , x20 , ..., xn0 ), которое и будет оптимальным решением нашей

задачи.

Если r < n, то r базисных неизвестных (не нарушая общности задачи будем считать базисными переменные xk+1,

xk +2 , ..., xn , где k = n – r) можно выразить через k свободных переменных:

x

k

+1

=

α x +... +

α

 

x

k

+β ,

 

 

 

 

11 1

 

1k

 

 

 

1

 

 

xk

+2 = α21x1 +... +α2k xk +β2

,

(3.2.6)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

.................... . .. ............

 

x

n

= α

x +... +α

rk

x

k

+β

r

.

 

 

 

 

 

r1 1

 

 

 

 

 

 

Выразим целевую функцию через свободные переменные. Подставим в равенство (3.2.3) вместо базисных переменных их выражения через свободные переменные (3.2.6).

В результате получим

 

Z = γ0 + γ1x1 +... + γk xk .

(3.2.7)

Заменим уравнения системы (3.2.6) равносильными нера-

венствами

x

 

 

x

 

 

 

 

 

α

+... +α

 

+β

 

0,

 

11 1

1k

k

1

 

 

α

21x1

+... +α2k xk +β2 0,

(3.2.8)

 

 

 

 

 

 

 

 

 

. . .. .. . .. .. .. . .................

 

α

x

+... +α

rk

x

+β

r

0,

 

 

r1 1

 

k

 

 

 

 

 

 

x j 0

 

(j =

 

).

(3.2.9)

 

 

 

1, k

Перепишем целевую функцию (3.2.7):

 

 

Z = γ1x1 +... + γk xk

+ γ0 (min).

(3.2.10)

Получим ЗЛП в симметричной форме. Таким образом, вместо того чтобы решить задачу (3.2.3)–(3.2.5), заданную в кано-

16

нической форме с n переменными, можно решить эквивалентную задачу (3.2.8)–(3.2.10) в симметричной форме с k переменными (k < n). Отыскав оптимальное решение задачи (3.2.8)–

–(3.2.10) – (x1 , ..., xk )можно определить остальные r неизвестных из системы (3.2.6) и получить оптимальное решение исход-

 

 

 

 

 

 

ной задачи (3.2.3)–(3.2.5) –

X * = (x*, ..., x* , x*

+1

, ..., x* ) .

 

1

k k

n

3.3.Геометрическая интерпретация

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

Задачу линейного программирования можно решить графическим методом, если:

1)задача записана в симметричной форме и число переменных не превышает двух;

2)задача записана в канонической форме и число свободных переменных не превышает двух (задача сводится к сл. 1);

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

Рассмотримследующуюзадачу линейногопрограммирования: дана система линейных неравенств

a

x

+a

x

 

b

,

 

 

11 1

12 2

 

1

 

 

(3.3.1)

.......................

a

x

+a

m2

x

2

b

,

 

 

m1 1

 

 

 

m

 

 

x j 0

(j = 1, 2)

 

(3.3.2)

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

 

 

 

 

 

 

 

 

 

 

Z = c1x1 +c2 x2 .

 

(3.3.3)

Требуется найти такое решение системы (3.3.1)–(3.3.2), при которомлинейная функция (3.3.3) примет максимальное значение.

Задача линейного программирования (3.3.1)–(3.3.3) записана в симметричной форме, число переменных равно двум.

Дадим геометрическую интерпретацию системы ограничений. Рассмотрим линейное неравенство с двумя переменными

17

a11x1 +a12 x2 b1 .

(3.3.4)

Известно, что множество точек плоскости X1OX2 , коорди-

наты которых удовлетворяют неравенству вида (3.3.4), представляет собой полуплоскость. Граница этой полуплоскости – прямая, уравнение которой имеет вид

a11x1 +a12 x2 =b1 .

(3.3.5)

Для того чтобы узнать, какая из двух полуплоскостей, общей границей которых является прямая (3.3.5), соответствует неравенству (3.3.4), нужно координаты произвольной точки, принадлежащей одной из полуплоскостей и не лежащей на прямой (3.3.5), подставить в неравенство (3.3.4). Если координаты этой точки удовлетворяют неравенству (3.3.4), то полуплоскость, которой принадлежит взятая точка, соответствует неравенству (3.3.4). Если же координаты точки не удовлетворяют неравенству (3.3.4), то ему соответствует другая полуплоскость – та, которой не принадлежит пробная точка.

Итак, каждое неравенство системы (3.3.1)–(3.3.2) имеет множество решений, расположенных в соответствующей полуплоскости плоскости X1OX2 . Значит, областью допустимых

решений системы (3.3.1)–(3.3.2) будет множество точек плоскости X1OX2 , полученных при пересечении соответствую-

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

резка [ X1, X 2 ], т.е. точки X = λ1X1 + λ2 X 2 , где λ1 0 , λ2 0 , λ1 + λ2 =1 , являющиеся выпук-

лыми линейными комбинациями точек X1 и X2 .

На рис. 3.3.1 приведены примеры множеств А и В (А – выпуклое множество, В – не является выпуклым множеством).

18

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

(рис. 3.3.2, ж).

Рис. 3.3.2

19

x2

N

 

Дадим геометрическую ин-

 

терпретацию целевой функции.

 

 

 

 

Z = Zmax

Пусть областью допустимых

 

 

 

 

решений задачи линейного про-

 

 

 

М Z = Z0

граммирования является выпук-

 

 

 

лый многоугольник (рис. 3.3.3).

 

c

 

0

 

 

 

x1

Выберем произвольное зна-

 

 

 

Z =

Zmin

чение целевой функции Z = Z0 .

 

 

 

Рис. 3.3.3

 

Получим c1x1 +c2x2 =Z0 . Этому

уравнению соответствует на плоскости прямая NM , во всех точках которой Z = Z0 . Считая в ра-

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

Определим направление возрастания (убывания) целевой функции. Найдем частные производные целевой функции по x1 и x2 :

Z

= c ,

Z

= c .

x

x

1

2

1

 

2

 

Вектор c = (c1,c2 ) называется градиентом функции Z. Он перпендикулярен к прямым Z = const семейства c1x1 +c2 x2 = Z

и указывает направление наискорейшего возрастания целевой функции.

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

Из геометрической интерпретации элементов ЗЛП следует алгоритм решения задач графическим методом:

1)строим область допустимых решений ;

2)строим вектор c = (c1,c2 ) ;

20