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

метопт-пми / 2 / Симплекс-метод

.pdf
Скачиваний:
0
Добавлен:
10.06.2026
Размер:
1.1 Mб
Скачать

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

(постановка задачи и основные определения)

Основная задача математического программирования состоит в минимизации вещественной функции на множестве, определенном системой ограничений типа равенства и/или неравенства.

Записывать задачу будем в следующем виде:

min (x) (x) min, x X , где

x X

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

Ограничения или условия записываются в виде:

X x Rn : fi (x) 0

, i 1...m

gk (x) 0

, k 1...l

, где

 

Определение. X называется допустимым множеством.

Размерность задачи: n – число переменных; m + l – число ограничений.

Запись min (x) означает:

а) либо найти оптимальную точку

*

X :

*

 

*

 

 

x

(x ) min (x)

или x

 

arg min (x) .

 

 

x X

 

 

x X

 

Определение. Всякая допустимая точка x X называется планом; x* оптимальный план.

б) если x* не существует, то найти * inf (x) , например, * .

x X

в) либо показать, что X = (допустимое множество – пусто).

Классификация задач математического программирования

1)Если целевая функция линейна, т.е. (x) (c, x) , где c Rn и ограничения линейны, т.е. имеют

вид:

Ax b, где A m n – матрица, b Rm Gx = h, где G l n – матрица, h Rl,

то это задача линейного программирования (иначе, нелинейного, например, квадратичного).

2)Если целевая функция – выпукла и допустимое множество X – выпуклое (fi, gk – выпуклые функции), то это задача выпуклого программирования.

3)Если по условию переменные – целые числа, т.е. xi Z, i 1,..., n , то это – задача целочисленного программирования (в данном курсе не рассматривается).

Спецификация задач математического программирования

1

как правило, методы классического анализа для отыскания условных экстремумов неприменимы (экстремум достигается в угловых точках допустимого множества).

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

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

Наименование предмета – математическое программирование – связано с тем, что целью решения задач является выбор программы действий.

Cведения о выпуклых множествах

Определение

1.

Множество

X Rn

называется

выпуклым,

если

x, y X 0,1

x (1 ) y X (выпуклое множество содержит отрезок, соединяющий две любые его точки).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Определение

2.

 

Точка

x X

называется

внутренней,

если

существует

0 : (x) Х ,

где

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y x

 

 

 

 

-окрестность точки x, т.е.

 

x X

 

 

 

 

x

 

 

y :

 

 

точка

называется внутренней,

если

существует такая её окрестность, все точки которой принадлежат X. И наоборот, если найдется такая -окрестность точки , которая не содержит ни одной точки множества X – такая точка называется внешней по отношению к множеству X.

Определение 3. Точка x X называется

граничной, если > 0 существует

y

(x) : y X и

 

 

 

 

 

 

 

 

 

 

существует

y (x) : y X , т.е. в

любой

окрестности точки x содержатся

как точки,

 

 

 

 

 

 

 

 

принадлежащие множеству X, так и точки, не предлежащие этому множеству.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Определение 4. Проекцией точки на множество X называют такую точку p X, что

 

 

 

 

 

 

 

 

def

 

 

 

 

p

inf

 

x

(, x) .

 

 

 

 

 

 

x X

 

 

 

 

 

При этом,

( , x) называют "расстояние" от точки до множества X. Ясно, что если X, то

p = . Если же X, и множество X – открыто, то проекция p не существует. Если множество X – не выпукло, то проекция может быть не единственной.

2

Верно следующее утверждение:

Лемма 1. Пусть X – выпуклое замкнутое множество из Rn, X Rn , тогда:

1)Любая точка Rn имеет и притом единственную проекцию на это множество;

2)Для того чтобы точка p X была проекцией точки на множество X, необходимо и достаточно выполнения неравенства (x p, p) 0 для x X.

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

Докажем первое утверждение леммы.

Рассмотрим функцию g(x) вида

g(x) x 2 ( ) Rn , x X .

тупой угол (x p, – p) 0)

Поскольку g(x) сильно выпукла, то по следствию из теоремы об

ограниченности множеств Лебега для сильно выпуклой функции можно утверждать, что g(x) достигает своей нижней грани на Х в единственной точке p X.

Это означает, что

x 2 p 2 x p ,

Причем равенство здесь возможно, только когда x = p (т.к. p единственная точка), а тогда p = p , что и требовалось доказать.

Докажем второе утверждение леммы.

Необходимость. Пусть p – проекция точки на X.

Возьмем произвольную точку x X, отличную от р, рассмотрим точку

z p : z ax (1 ) p .

Ввиду выпуклости множества Х для [0,1] точка z X.

 

Так как z 2 2 x p 2 2 (x p, p ) p 2 , и из определения проекции следует, что

z 2 p 2 , то 2 x p 2 2 (x p, p ) 0 .

Поскольку это неравенство справедливо для [0,1], то x p 2 2(x p, p ) 0 .

Переходя к пределу при a->0, имеем (x p, p ) 0 , что и требовалось доказать.

Достаточность. Пусть верно (x p, р) 0 x X, тогда x X верно

x v 2 (x p) ( p ) 2 x p 2 2(x p, p ) p 2 p 2 ,

т.е. точка p является проекцией точки на X.

Определение 5. Гиперплоскостью в Rn называется множество вида Гc, x : (c, x) ,

где c 0 – вектор Rn, R1 .

3

 

 

 

 

Свойства гиперплоскостей

 

 

 

1.

Это множество всегда не пусто: если, например ci 0, то точка x0 с координатами

xi

 

,

 

 

 

 

 

 

 

 

 

 

 

 

ci

x j 0 j i удовлетворяет равенству (c, x ) ,

т.е. x Г

c,

.

 

 

 

 

 

 

 

0

 

 

0

 

 

 

 

2.

Пусть x

– ( ) из Г

c,

, т.е. (c, x ) , тогда

Г

c,

{x : x Rn , (c, x x ) 0} .

 

 

 

 

0

 

0

 

 

 

0

 

 

 

Известно, что два вектора a,b Rn – ортогональны, если (a,b) = 0 гиперплоскость Гc, состоит

из тех и только тех точек x, для которых вектор xx0

ортогонален вектору с. Вектор с называют

нормальным вектором гиперплоскости Гc, .

 

 

 

 

 

 

 

 

3.

В пространстве Rn гиперплоскость определяет два полупространства:

 

 

 

{x : (c, x) } и {x : (c, x) } .

Лемма 2 (Теорема отделимости). Для любого выпуклого и замкнутого множества X и любой точки, не принадлежащей множеству X, существует такая гиперплоскость Г, что (c, ) и (c, x)

для x X.

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

Доказательство. Пусть p – проекция на X.

 

 

def

 

def

 

Определим

c

( p), (c, ) , и рассмотрим

 

гиперплоскость Г

c,

{y : y Rn , (c, y) },

 

 

 

 

 

 

 

 

 

 

 

 

 

 

для которой выполняется первое утверждение леммы 2.

 

По лемме 1, если p – проекция, то x X справедливо

(x, p) ( p, p) .

Поскольку точка X,

то расстояние

 

 

 

p

 

 

 

0 ( p, p) ( , p) .

 

 

 

 

Итак, имеем для x X :

(c, x) ( p, x) ( p, p) ( p, ) (c, )

x X (c, x) , ч.т.д.

Теорема (об опорной гиперплоскости).

В любой граничной точке x0 выпуклого множества существует опорная гиперплоскость, т.е. существует c 0 и λ :

Гc, y : y Rn , (c, y) , (c, x0 ) , и для всех x X (c, x) .

4

X0 Y
Гc,

Опорная гиперплоскость единственна (если

Понятие опорной гиперплоскости – шире

существует касательная гиперплоскость, то она

касательной.

В

точке x0 не

существует

совпадает с опорной). И в этом случае опорная

касательной,

но

существуют

опорные

гиперплоскость единственная.

гиперплоскости, причем в качестве вектора c

 

можно выбрать любой, лежащий между c1, c2.

Доказательство. Рассмотрим

последовательность

 

{k}

– внешних

точек относительно

X : lim

k

x0 (т.е. по определению сходимости lim

 

k

x0

 

0 ).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

k

 

k

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

По лемме 2 (теорема отделимости) существует последовательность гиперплоскостей

Гck , k y : (ck , y) k , где k

(ck , k ) и x X (ck , х) k .

 

 

 

 

 

 

 

 

 

Т.к. длину ck можно выбирать произвольно, то, не умаляя общности, можно

считать, что

 

 

 

ck

 

 

 

1.

 

 

 

 

def

Не меняя обозначений, считаем, что lim ck c .

x

Далее воспользуемся леммой Больцано-Вейерштрасса.

Лемма (Больцано-Вейерштрасса). Из любой ограниченной последовательности всегда можно извлечь такую частичную последовательность, которая сходилась бы к конечному пределу.

def

Рассмотрим lim(ck , k ) (c, x0 ) .

x

Переходя к пределу в соотношении, определяющем Гck , k , получим гиперплоскость:

{y : (c, y) } , где = (с, x0).

А, переходя к пределу в соотношении (ck , x) k x X, получим:

(c, x) для x X , ч.т.д. (равенство возникает, поскольку x0 X, а (c, x0) = ) .

Теорема (о разделяющей гиперплоскости).

Пусть X0 – множество внутренних точек выпуклого множества X; Y – выпуклое множество.

Если X0 (множество Х0 – не пусто) и (не пересекается с другим множеством), то для множеств X и Y существует разделяющая гиперплоскость, т.е.

существует c 0 : x X, y Y справедливо соотношение (c, y) (c, x).

5

 

def

 

Доказательство. Рассмотрим множество

Z {z : z y x, y Y , x X0} . Это множество выпукло.

Действительно,

 

 

z z1 (1 ) z2 ( y1 x1) (1 )( y2 x2 ) [ y1 (1 ) y2 ] [ x1 (1 )x2 ] Z .

 

Y

X0

Точка z = 0 не является внутренней точкой множества Z (т.к.

x0 Y ).

Поэтому существует с 0: z Z

(c, z) (c,0) . Это неравенство справедливо:

-по теореме об опорной гиперплоскости, если точка z = 0 – граничная для множества Z;

-или по теореме отделимости, если точка z = 0 – внешняя (тогда неравенство строгое).

(c, y x) 0 (c, y) (c, x) y Y, x X 0 .

Последнее неравенство остается справедливым и для y Y и x X, поскольку предельный переход не нарушает нестрогих неравенств, ч.т.д.

Введем два определения:

Определение 1. Точка x множества X (x X) называется угловой (или крайней) точкой, если в X не существует таких точек x′ и x″, xx″, что x x (1 )x , при некотором (0,1).

Геометрически: точка x – крайняя в X, если её нельзя поместить внутрь отрезка, концы которого лежат в X.

Например,

у треугольника крайние точки – вершины;

у луча – начало;

у круга – все точки окружности;

прямая, гиперплоскость – крайних точек не имеют.

Определение 2. Точка x0 X называется выпуклой комбинацией точек x1,…, xn X, если существуютi 0 , существуют xi X, i=1,…N, такие, что:

N

N

 

 

x0 i xi ;

i 1;

i 0,

i 1,..., N

i 1

i 1

 

 

Теорема Крейна–Мильмана (о представлении).

Пусть X – выпуклое, замкнутое, ограниченное множество, тогда x0 X может быть представлена в виде выпуклой комбинации конечного числа угловых точек множества, т.е. x0 X существуютi 0, существуют xi X – угловые точки:

N N

x0 i xi ; i 1

i 1 i 1

6

Доказательство. Индукция по размерности пространства n. При n = 1 X – отрезок утверждение теоремы очевидно. Предположим, что для n = k – 1 теорема справедлива.

Пусть X Rk. Возможны два случая: 1) x0 – граничная точка X.

Построим в этой точке гиперплоскость, опорную к X (существует по теореме об опорной гиперплоскости):

Гc, {y : (c, y) } , где = (c, x0) – опорная гиперплоскость.

Рассмотрим множество X0 = X Гc, .. Оно, как пересечение выпуклого, замкнутого, ограниченного множества X с выпуклым замкнутым множеством Гc, , само выпукло, замкнуто и ограничено.

Кроме этого, X0 Гc, Rk 1 .

По индукционному предположению существуют x1,..., xN – угловые точки X0:

N

 

 

N

x0 i xi ,

i 0,

i 1,..., N,

i 1

i 1

 

 

i 1

Покажем, что x1, x2 ,..., xn являются угловыми точками и для множества X.

Предположим противное, т.е. что некоторая точка xi не является угловой для множества X. Это

означает,

что

существует

 

 

 

 

 

 

 

 

x , x X , x x

 

 

и

 

 

 

0

 

 

 

 

 

 

(c, xi )

(c, x )

 

 

 

 

 

 

 

 

 

 

 

 

 

(0,1) : xi x (1 )x .

 

 

 

 

 

 

 

 

Т.к. xi X0 Гc, , то

 

 

 

 

 

 

 

 

и т.к. Гc, – опорная к X, то

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(c, x ) (c, x0 )

 

 

 

(*)

 

 

 

 

 

 

(c, x ) (c, x0 )

 

 

 

 

 

 

 

 

 

 

 

 

 

Поскольку 0 < < 1, можно записать:

 

 

 

 

 

 

 

 

 

(c, x )

1

[(c, x ) (1 )(c, x )]

1

(c, x0 ) (1, )(c, x0 )

(c, x0 ) .

 

 

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Из последнего соотношения следует, что (c, x) ≥ (c, x0), но

 

 

 

 

 

 

 

 

(c, x ) (c, x0 ) (c, x ) (c, x0 ) x Г

c,

,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Поскольку x X x X0

X c, .

 

 

 

 

 

 

 

Аналогично можно показать, что xX0 противоречие с тем, что xi – угловая точка X0

xi

угловая точка X, ч.т.д

2)Пусть теперь x0 – внутренняя точка множества X. Проведем через x0 прямую l. Пересечение l X

является отрезком с концами и , принадлежащими границе множества X, и, поскольку x0 – внутренняя точка X существует (0,1):

x0 x (1 )x .

7

Поскольку для граничных точек и теорема верна, то верна она и для x0. Действительно, для граничных точек имеют место соотношения:

N1

N1

 

 

 

x

i yi , i 1,

i 0, i 1,..., N1

i 1

i 1

 

 

 

N2

N2

 

 

 

x i zi , i 1,

i 0, i

1,..., N2 ,

i 1

i 1

 

 

 

где все yi и zi – угловые точки множества X.

N1

N2

 

А тогда x0 i yi

(1

) i zi , ч.т.д.

i 1

i 1

 

Замечание: Можно доказать, что в указанном представлении число угловых точек не превосходит величины n–размерности пространства.

 

 

 

 

 

 

Линейное программирование

Задача линейного программирования:

 

 

 

n

c

x

 

min

 

(x) (c, x)

 

j

 

 

x X

j

 

 

 

 

j 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n

 

ограничение неравенства: aij x j bi ,i 1,..., k

(1)

 

 

 

 

 

j 1

 

 

 

 

 

 

 

n

 

ограничение равенства: aij x j

bi ,i k 1,..., m

 

 

 

 

 

 

j 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

прямые ограничения: x j 0, j 1,..., s

Здесь cj, aij, bi – заданные числа, причем не все cj и aij = 0.

Это – задача линейного программирования (ЗЛП) со смешанными ограничениями. К задачам такого вида (1) сводятся многие прикладные задачи технико-экономического содержания. Из общей задачи линейного программирования обычно выделяют и исследуют два её подкласса – основную

задачу и каноническую.

Если k = m (только ограничение неравенства) и s = n (прямые ограничения) накладываются на все элементы вектора, то это основная (стандартная) форма ЗЛП.

min(c, x)

x Xn

(2) aij x j bi , i 1,..., m Ax b;j 1

x j 0, j 1,..., n x 0;

Допустимое множество Х x Rn : Ax b, x 0

A m n – матрица условий; b m – вектор ограничений.

Если k = 0 (только ограничения равенства) и s = n, то это – каноническая форма ЗЛП.

8

min(c, x)

(3)x XX x Rn : Ax b, x 0

Задачи в формах (1), (2), (3) могут быть сведены друг к другу, т.е. приведены к эквивалентной задаче (с тем же множеством решений).

Сведение (1) к (2):

Обозначим I {i : i 1,..., m} – множество всех ограничений; I1 {i : i 1,..., k} – множество ограничений неравенств;

I2 I \ I1 – множество ограничений равенств.

Аналогично:

Обозначим J { j : j 1,..., n};

J1 { j : j 1,..., s} – множество прямых ограничений;

J2 J \ J1

Заметим, что задача (1) приводится к виду:

min[(1, 1) + (2, 2)]

: 11 1 + 12 2 121 1 + 22 2 = 2

{1 0

Здесь:

 

s

n s

 

 

A

A

k

A

11

12

 

A21

A22

m k

x

 

s

b

 

k

; c c1

, c2

x 1

 

n s

; b 1

 

m k

x2

b2

s

n s

Идея: Нужно (m k)–равенств заменить неравенствами:

 

0

0

 

 

 

 

 

 

 

 

 

0

 

Ввести (n s)–прямых ограничений:

 

 

 

 

 

 

 

 

max( , 0) 0

 

 

 

 

 

 

 

 

 

max( , 0)

 

 

 

 

 

 

0 и ввести переменную =

Т.о., делаем замену переменных x2 x2 x2 , где элементы вектора

x

j2

max(x

, 0)

 

 

 

j2

 

 

 

 

max( x j

 

j J2

x j

 

, 0)

 

2

 

2

 

 

Тогда задача (1) приводится к виду:

9

min[(c1, x1) (c2 , x2 ) (c2 ,

 

2 )]

x

x X

 

 

 

 

 

 

 

 

 

 

 

x : A11x1 A22 x2 A12

x

2 b1

 

 

 

 

 

 

 

 

 

 

 

 

 

(2)

A21x1 A22 x2 A22 x2

 

b2

 

 

 

 

 

 

 

 

 

 

 

 

 

A21x1 A22 x2 A22 x2 b2

 

 

x1 0,

x2 0,

 

2 0

x

 

 

 

 

 

 

 

 

 

 

 

 

 

Это задача в основной форме (2) с размерностью n 2n s и числом ограничений m 2m k .

Сведение (2) к (3):

Введем m–дополнительных переменных и рассмотрим задачу в пространстве Rn+m:

x

x }n

; c

c }n

;

 

 

 

 

 

 

 

 

u }m

 

o }m

 

Тогда (2) можно записать в виде:

 

 

 

 

 

 

 

 

 

 

 

 

 

min(c , x ) min(c, x)

 

 

 

 

 

 

 

 

 

(3 )

x X

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X : Ax u b

 

 

 

 

 

x 0, u 0

 

 

 

 

 

 

 

Эта задача в канонической форме (3)

с размерностью n m n и m-ограничениями.

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

Геометрическая интерпретация основной задачи линейного программирования

Рассмотрим задачу ЛП в форме (2), т.е. основную ЗЛП: min( , )

 

 

 

 

{

 

 

 

 

 

Х: { : ≥ , ≥ 0}

Пусть n 2, x (x , x )T

задача сводится к виду:

1

 

2

 

 

 

c x

 

c x

 

min

 

1 1

2 2

 

 

 

x1, x2 : x1 0, x2 0, ai1x1

ai2 x2 bi ,i 1,..., m

X :

 

 

 

 

 

 

Введем множества:

X 0 {x (x1 , x2 ) : x1 0, x2 0} – положительные квадрант плоскости.

Xi {x (x1, x2 ) : ai1x1 ai2 x2 bi ,

i 1...m}

– полуплоскость, образованная прямой

ai1x1 ai 2 x2 bi .

 

 

Ясно, что множество X является пересечением множеств X0 , X1,..., Xm и возможны следующие случаи:

(a)1) Может случиться, что это пересечение пусто, тогда задача теряет смысл (а).

2)Если множество X не пусто, то оно образовано пересечением

конечного числа полуплоскостей множество X представляет собой

10

Соседние файлы в папке 2