метопт-пми / 2 / Симплекс-метод
.pdf
Математическое программирование
(постановка задачи и основные определения)
Основная задача математического программирования состоит в минимизации вещественной функции на множестве, определенном системой ограничений типа равенства и/или неравенства.
Записывать задачу будем в следующем виде:
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, для которых вектор x–x0 |
ортогонален вектору с. Вектор с называют |
|||||||||||
нормальным вектором гиперплоскости Г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 не |
существует |
совпадает с опорной). И в этом случае опорная |
касательной, |
но |
существуют |
опорные |
гиперплоскость единственная. |
гиперплоскости, причем в качестве вектора 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″, x′ x″, что 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, . |
|
|
|
|
|
|
|
||||
Аналогично можно показать, что x″ X0 противоречие с тем, что xi – угловая точка X0 |
xi |
|||||||||||
–угловая точка X, ч.т.д
2)Пусть теперь x0 – внутренняя точка множества X. Проведем через x0 прямую l. Пересечение l X
является отрезком с концами x͂ и x͌, принадлежащими границе множества X, и, поскольку x0 – внутренняя точка X существует (0,1):
x0 x (1 )x .
7
Поскольку для граничных точек x͂ и x͌ теорема верна, то верна она и для 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
