Вы находитесь на странице: 1из 4

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

Задача о максимуме выпуклой функции на выпуклом множестве

I(u) → sup
u∈U
Теорема. Если функция I выпукла на замкнутом, выпуклом ограниченном множестве
U ⊂ Rn и I ∗ = supu∈U I(u), то существуют крайние точки ui множества U , в которых
выполняется равенство I(ui ) = I ∗ .

До-во. Пусть I(u∗ ) = I ∗ , u∗ ∈ U . По теореме о представлении точек выпуклого


∑ ∑m
множества u∗ можно представить в виде u∗ = m i=1 α i ui , i=1 = 1, αi ≥ 0, где ui крайние
точки множества U . При этом

m ∑
m ∑
m ∑
m
∗ ∗ ∗ ∗
I = I(u ) = I( αi ui ) ≤ αi I(ui ) ≤ αi I = I αi = I ∗
i=1 i=1 i=1 i=1

I(ui ) = I ∗ .

Общая задача линейного программирования

I = c1 x1 + c2 x2 + ... + cn xn → sup
a11 x1 + a12 x2 + ... + a1n xn ≍ b1
a21 x1 + a22 x2 + ... + a2n xn ≍ b2
...
am1 x1 + am2 x2 + ... + amn xn ≍ bm

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

I = c1 x1 + c2 x2 + ... + cn xn → sup
a11 x1 + a12 x2 + ... + a1n xn = b1
a21 x1 + a22 x2 + ... + a2n xn = b2
...
am1 x1 + am2 x2 + ... + amn xn = bm
x1 ≥ 0, x2 ≥ 0, ..., xn ≥ 0,

1
b1 ≥ 0, b2 ≥ 0, ..., bm ≥ 0,

ЗЛП может быть приведена к канонической форме

a21 x1 + a22 x2 + ... + a2n xn ≤ b2


a21 x1 + a22 x2 + ... + a2n xn + xn+1 = b2 , xn+1 ≥ 0
a21 x1 + a22 x2 + ... + a2n xn ≥ b2
a21 x1 + a22 x2 + ... + a2n xn − xn+1 = b2 , xn+1 ≥ 0

a21 x1 + a22 x2 + ... + a2n xn = b2 , b2 < 0


−a21 x1 − a222 x2 − ... − a2n xn = −b2

Если xi может быть любого знака, то полагаем xi = x′i − x′′i , x′i ≥ 0, x′′i ≥ 0

ЗЛП можно записать в виде



n
I= ci xi
i=1

x1 A1 + x2 A2 + ... + xn An = b
xi ≥ 0, bi ≥ 0

 

 ai1 
 a 
 
i2
Ai = ,

 ... 

 

aim
 

 b 1 


 
b2 
b= ,

 . . . 


 

bm


n
I= ci xi
i=1

Ax = b
x ≥ 0, b ≥ 0

2
Предполагается, что ранг матрицы А равен m. Тогда есть m линейно независимых
векторов-столбцов, они называются базисом, коэффициенты xi , стоящие перед базис-
ными векторами называются базисными, остальные коэф. наз. небазисными. Допусти-
мые точки наз-ся планами ЛЗ. Крайние точки наз. опорными планами. Решение задачи
ЛП. наз. оптимальным планом.

Основная теорема.

Точка с координатами {x1 , x2 , ..., xn } является крайней точкой доп. множ. тогда и
только тогда, кода она имеет не больше m отличных от нуля компонент и векторы
столбцы матрицы А, стоящие при ненулевых компонентах в равенстве Ax = b, были
линейно независимы.

М-задача

Если ЗЛП не имеет единичного базиса, то ее можно преобразовать к задаче с еди-


ничным базисом.

Рассматриваем задачу

I = c1 x1 + c2 x2 + ... + cn xn − M xn+1 − ... − M xn+m → sup

a11 x1 + a12 x2 + ... + a1n xn + xn+1 = b1


a21 x1 + a22 x2 + ... + a2n xn + xn+2 = b2
...
am1 x1 + am2 x2 + ... + amn xn + xn+m = bm
x1 ≥ 0, x2 ≥ 0, ..., xn+m ≥ 0,
b1 ≥ 0, b2 ≥ 0, ..., bm ≥ 0,
Считаем, что М очень большое число.

Алгоритм симплексного метода

Численные методы нелинейного программирования

Градиентный метод

I(u) → inf
u ∈ Rn , I ′ (u)
∂I(u) ∂I(u) ∂I(u)
вектор с координатами ∂u1
, ∂u2 , ∂un

uk ∈ Rn

3
I(u) − I(uk ) = ⟨I ′ (uk ), u − uk ⟩ + o(∥u − uk ∥)
I ′ (uk ) = −β(u − uk )
u − uk = ∆u, u = uk + ∆u
uk+1 = uk − βI ′ (uk )
Градиентный метод.

Алгоритм метода наискорейшего спуска

1. Задаем u0 ∈ Rn , ε > 0

2. Находим I ′ (u0 ), K := ∥I ′ (u0 )∥

3. Если K < ε то u∗ = u0 "стоп"

4. Решить задачу I(u0 − βI ′ (u0 ) → inf, β ≥ 0. Пусть β∗ решение этой задачи.

5. u0 := u0 − β∗ I ′ (u0 ) и на 2.

Градиентный метод с квази постоянным шагом

1. Задаем u0 ∈ Rn , ε > 0, β > 0

2. Находим I0 := I(u0 )

3. Находим I ′ (u0 ), K := ∥I ′ (u0 )∥,

4. Если K < ε, то u∗ = u0 "стоп"

5. u1 := u0 − βI ′ (u0 ), I1 := I(u1 )

6. Если I1 < I0 то u0 := u1 , I0 := I1 и на 3
β
иначе β := 2
и на 5