Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Исследование операций. Сборник заданий.pdf
X
- •Введение
- •1. Линейное программирование
- •1.1. Общие понятия
- •1.4. Лабораторная работа № 3. Искусственный базис
- •1.5. Лабораторная работа № 4. Двойственная задача
- •1.6. Контрольные вопросы
- •2. Нелинейное программирование
- •2.1. Общие понятия
- •2.3. Лабораторная работа № 6. Метод множителей Лагранжа
- •2.5. Лабораторная работа №8. Метод штрафных функций
- •2.7. Контрольные вопросы
- •Список литературы

51
В задачах НП множество точек, в которых целевая функция принимает
постоянное значение, есть гиперповерхность f(x1,…, xn) = const. При различных
значениях const мы получаем гиперповерхности, которые могут пересекаться.
В зависимости от вида целевой функции и ограничений существуют различные методы решения задач НП.
Аналитические методы
Они основаны на использовании необходимых и достаточных условий
экстремумов функций.
Для их использования необходимо, чтобы целевая функция и функции
ограничений были непрерывными вместе с их частными производными первого
порядка.
Графический метод решения задач НП
Если определена область допустимых решений, то нахождение решения
задачи НП (при n = 2) сводится к определению такой точки этой области, через
которую проходит гиперповерхность наивысшего уровня (в случае максимизации) или наинизшего уровня (в случае минимизации).
Градиентные методы
Эти методы основаны на использовании градиента целевой функции
(градиент в точке указывает направление скорейшего возрастания функции).
Начиная с некоторой точки X
(k)
из области допустимых решений, осу-
ществляется последовательный переход к другим точкам до тех пор, пока градиент целевой функции F(x
1,…, xn
) в очередной точке X
(k+1)
не станет равным ну-
лю или же пока не выполнится соотношение |F(X
(k)
) – F(X
(k+1)
)| ≤ ε.
В итоге получаем приближенное решение с заданной точностью ε.
Использование градиентных методов позволяет найти точку локального
экстремума. Глобальный экстремум можно найти только в задачах максимизации (минимизации), целевая функция которых является вогнутой (выпуклой),
а область допустимых решений выпукла.
Градиентные методы могут быть подразделены на две группы.
К первой группе относятся методы, при использовании которых исследуемые точки не выходят за пределы области допустимых решений задачи.
В данном случае наиболее распространенным является метод Франка – Вульфа.
Ко второй – методы, при использовании которых исследуемые точки могут, как
принадлежать, так и не принадлежать области допустимых решений. Однако
в результате реализации итерационного процесса находится точка области допустимых решений, определяющая приемлемое решение. Наиболее часто используются метод штрафных функций и метод Эрроу – Гурвица.
Непрямые методы
В этих методах задачу нелинейного программирования тем или иным образом сводят к решению задачи линейного программирования. Одним
из методов является метод квадратичного программирования.
Метод квадратичного программирования применяется, если целевая
функция представляет собой сумму линейной функции и квадратичной формы
F = ∑cjxj + ∑∑aikxjxk (j=1,n; k=1,n), а функции ограничений являются ли-
нейными функциями.

52
2.2. Лабораторная работа № 5.
Графический метод решения задач
Если число переменных n = 2, нелинейные задачи можно решать геометрически. Ограничения должны быть записаны в виде неравенств gi(x1,x2) ≤ bi,
i = 1,2,…m, а целевая функция иметь вид F = f(x1,x2).
Как и в случае геометрического решения задач линейного программирования, сначала необходимо построить область допустимых решений (ОДР) —
множество точек плоскости, удовлетворяющих неравенствам. Но, в отличие
от задач линейного программирования, здесь ОДР не обязательно будет выпуклой и может быть даже разрывной. Экстремум функции может достигаться
и внутри области, и на границе. После построения ОДР следует записать уравнения линий уровня целевой функции — множество точек плоскости,
в которых целевая функция постоянна: f(x1, x2) = C, и определить направление
возрастания (убывания) целевой функции, построив, например, линии уровня
для разных значений С. Затем, перемещая линию уровня в нужном направлении
в ОДР, найти точки области, в которых целевая функция принимает оптимальное значение.
Пример. Найдите максимальное значение функции
21
xxf
при условиях
(1)
(2)
(3)
Решение:
1. Построим область допустимых решений (рис. 7). Построение области
допустимых решений и графика целевой функции проводим в MS Excel. ОДР
заключена между линиями 1, 2, 3 и осью x.
Рис. 7. Область допустимых решений задачи
.0,
1243
2432
1246
2
1
21
21
21
x
x
xx
xx
xx

53
2. Строим линию уровня f. Полагая значение целевой функции равным
некоторому числу h, получаем линии уровня
hxxf
21
(см. рис. 7).
С увеличением (уменьшением) h значения функции f соответственно увеличиваются (уменьшаются), а кривая перемещается параллельно самой себе. В итоге
получим, что максимальное значение функция f принимает в точке D, в которой
кривая f касается области решений (далее, при перемещении к верху, покидает
ОДР задачи). Координаты точки D определяются из равенства угловых коэффициентов прямой (2) и касательной к функции
21
xxf
:
x1x2' + x1'x2 = 0 → x
2
'
= – x2/x1,
2x1 + 3x2 =24 → x
2
'
= –2/3, т.е. x2/x1 = 2/3. Подставляем полученное соот-
ношение в уравнение прямой (2), получим, что x1 = 6, x2 = 4, а следовательно,
значение целевой функции f = 24.
Задание: найдите максимум (минимум) функций при заданных ограниче-
ниях.
№
Задача
№
Задача
1
min
4
2
2
2
y
x
F
0,0
1612yxyx
2
min
6
4
59
2
2
1
2
xx
F
4
6
1223
2
2
1
21
x
xx
xx
3
21
34 xxF
2,1
6
01422
21
2
2
21
2
1
2
1
xx
xx
xxxx
4
2
2
1
2 xxF
0,
0
4
2
2
1
2121
2
21
x
x
xxxx
x
xx
5
min43
21
xx
F
1
25
2
,
1
2
2
2
1
xx
xx
6
21
*2 xxF
001243
2
,
1
21
xx
xx
7
xx
F
2
2
2
1
0,0
02443
21
21
xx
xx
8
yxF 2
0,0
36
2
2
yx
y
x

54
№
Задача
№
Задача
9
5 yxF
50
50
11
2
y
x
y
x
10
8
4
2
2
y
x
F
0,0
142
3052
yx
yx
yx
11
3
4
4
2
2
1
2
xx
F
0
82
1823
63
2
2
,
1
21
21
2
1
xx
xx
xx
x
x
12
yxF
0,0
8
36
3
5
4
3
5
2
2
2
2
yx
yx
y
x
y
x
13
yxF
0,0
1612yxyx
14
2
3
2
2
y
x
F
0,0
36
2
2
yx
y
x
15
y
x
F
2
2
0,0
8
36
3
5
9
3
5
2
2
2
2
yx
yx
y
x
y
x
16
2
2
11
2 xxxF
0,0
823
3
21
21
2
xx
xx
x
17
7
7
2
2
y
x
F
0,0
142
3052
yx
yx
yx
18
1
1
2
2
y
x
F
0,0
1612yxyx
19
2
2
2
1
xxF
60
70
5
4
2
1
21
21
x
x
xx
xx
20
2
4
6
2
2
1
2
xx
F
00
1
15
3
82
2
,
1
1
2
21
2
1
xx
x
x
xx
xx

55
№
Задача
№
Задача
21
3
4
7
2
2
2
1
2
xx
F
00
11
2
6
22
2
,
1
1
2
11
21
xx
x
x
xx
xx
22
21
xxF
00
10
2
6
2
2
2
,
1
1
2
21
21
xx
x
x
xx
xx
23
2
2
2
4
2
2
1
2
xx
F
00
8
2
7
2
,
1
1
2
21
xx
x
x
xx
24
21
3 xxF
00
16
2
2
,
1
2
2
2
1
21
xx
xx
xx
25
14
2
2
1
2
xx
F
00
12
3
2
1
2
,
1
1
2
21
xx
x
x
xx
26
17 yxF
0,0
9
122
yx
yx
yx

56
2.3. Лабораторная работа № 6. Метод множителей Лагранжа
Рассмотрим частный случай общей задачи нелинейного программирова-
ния, когда система ограничений содержит только уравнения-равенства:
),(,...,
max(min)),...,(
1
1
miibxxg
xxfF
i
n
i
n
Полагаем, что все функции непрерывны вместе со своими первыми част-
ными производными. Для решения задачи построим функцию Лагранжа:
,),...,((),...,(),...,,,...,(
1
1
111
m
i
niii
nmn
xxgbxxFxxL
где λi(i =1,…, m) – называются множителями Лагранжа.
Определим частные производные и приравняем их к нулю. В результате
получим систему уравнений относительно n+m переменных.
Всякое решение системы уравнений определяет точку, в которой может
иметь место экстремум функции F.
Алгоритм решения задачи методом Лагранжа:
составляют функцию Лагранжа,
находят частные производные от функции Лагранжа по переменным
и приравнивают их нулю,
решают систему уравнений и находят все точки, в которых целевая
функция F может иметь экстремум.
Среди найденных точек находят такие точки, в которых целевая функция
F достигает максимального (минимального) значения.
Метод множителей Лагранжа может быть применен и для случая, когда
система ограничений задачи нелинейного программирования содержит только
неравенства:
Решение такой задачи осуществляется в два этапа.
1. Находят стационарные точки безусловного экстремума целевой функции F. Для этого определяют частные производные функции F и приравнивают
их к нулю. В результате получают систему n уравнений относительно
n переменных. Из всех решений системы выбираем только те точки, которые
удовлетворяют системе строгих неравенств gi(x1,…, xn) < bi (i=1,…m).
2. Находят точки условного экстремума целевой функции F при условиях
ограничений равенств:
mi
nj
xx
g
b
L
x
g
x
F
x
L
n
i
i
j
j
i
m
i
i
jj
,1...,,
,1
,0
,0
1
1
mi
b
xx
g
i
n
i
,1...,,
1

57
Для этого строят функцию Лагранжа, находят частные производные
и приравнивают их нулю. В итоге получают систему n+m уравнений относительно n+m переменных, которую и решают.
В результате, на 1-м и 2-м этапе находится множество точек, в которых
целевая функция F может иметь экстремальные значения.
Для определения максимального (минимального) значения целевой
функции F необходимо вычислить значения этой функции в полученных точках.
Пример 1. Найдите минимум функции f = 4x1 + x
1
2
+ 8x2 + x
2
2
→ min при
условиях
x1 +x2 = 180, x1, x2 ≥ 0.
Составим функцию Лагранжа:
.
Вычислим частные производные функции L и приравняем их нулю
Решая данную систему, получим x1 = 91, x2 = 89. В этой точке может
иметь место экстремум функции. Значение функции в этой точке равно
f
min
= 17278.
Пример 2. Найдите экстремум функции F = (x1 – 2)2 + (x2 – 3)2 при условии x
1
2
+ x
2
2
≤ 52.
Определим точки безусловного экстремума целевой функции F, лежащие
внутри области. Для этого найдем частные производные функции F
и приравняем их к нулю:
Решая систему, получим x1 = 2, x2 = 3, F(2, 3) = 0. Полученная точка
А(2, 3) лежит внутри области решения, так как 22 +32 < 52.
Строим функцию Лагранжа для случая, когда ограничение имеет вид равенства:
21
2
22
2
11
21
18084,, xxxxxxxxL
0180
028
024
21
2
2
1
1
xx
L
x
x
L
x
x
L
032
022
2
2
1
1
x
x
F
x
x
F
mi
b
xx
g
i
n
i
,1...,,
1
2
2
2
1
2
2
2
1
21
52
3
2
,, xx
x
x
xxL

58
Вычислим частные производные функции L и приравняем их к нулю:
Первое уравнение системы помножим на x2 , второе уравнение – на x1 .
После преобразований получим систему уравнений:
решая которую, получаем два решения – две точки B(4, 6) и C(-4, -6), в которых
целевая функция F может иметь экстремумы: F(4, 6) = 13, F (-4, -6) =117.
Таким образом, минимальное значение целевой функции F
min
= 0 достига-
ется в точке А(2, 3), максимальное значение F
max
= 117 – в точке С(-4, -6).
Задание: используя метод Лагранжа, найти максимум (минимум) следу-
ющих функций.
№
Задача
№
Задача
1
21
xxF
1
21
xx
2
321
2 xxxF
1
2
3
2
2
2
1
xxx
3
xxxF
2
3
2
2
2
1
12
32
4
21
321
xx
xxx
4
321
xxxF
8
2
12
21
32
xx
xx
5
3221
xxxxF
4
4
32
21
xx
xx
6
32
2
21
2
1
4223 xxxxx
F
112
4
321
2
2
2
1
xxx
xx
7
321
xxxF
5
321
xxx
8
2
3
2
2
2
1
xxxF
18
321
xxx
9
200
min6204
21
2
22
2
1
xx
xxxF
10
xxF
2
2
2
1
5
21
xx
11
F=6x1+7x
1
2
+9x2+10x
2
2
+15→min
x1+x2=150
12
53
2
2
1
2
xx
F
5212 xx
052
0232
0222
2
2
2
1
2
2
2
1
1
1
xx
L
xx
x
L
xx
x
L
,52
32
2
2
2
1
12
xx
xx

59
№
Задача
№
Задача
13
xxF
2
2
2
1
121 xx
14
132
3
1
2
2
2
1
xx
xF
4
2
2
2
1
xx
15
3
3
1
2
2
2
1
2
xx
F
6
21
xx
16
xxF
2
2
2
1
6
21
xx
17
21
xxF
40,60
21
xx
4
3
4
4
2
2
1
2
xx
18
3
4
2
2
2
1
2
xx
F
7
21
xx
100,50
21
xx
19
321
xxxF
1/1/1/1
321
xxx
20
21
/1/1 xxF
1/1/1
2
2
2
1
xx
21
321
22 xxxF
000
9
3
,
2
,
1
2
3
2
2
2
1
xxx
xxx
22
321
xxxF
000
4
3
,
2
,
1
321
xxx
xxx
23
2
3
2
21
32 xxxF
000
8
3
,
2
,
1
321
xxx
xxx
24
2
3
2
2
2
1
xxxF
000
12
3
,
2
,
1
321
xxx
xxx
25
321
xxxF
6
321
xxx
26
321
xxxF
6
321
xxx

60
2.4. Лабораторная работа № 7.
Метод Франка–Вульфа
Рассмотрим задачу нахождения максимального значения вогнутой целе-
вой функции F(x1….xn) при условиях
).,1(0
,),1(
1
njx
mibxa
j
n
j
iiij
Определение.
Функция F(x1,….xn), заданная на выпуклом множестве X, называется во-
гнутой, если для любых двух точек X1 , X2 из X и любого 0 ≤ λ ≤ 1 выполняется
соотношение
)()1()()1(
12
12
XFXFXXF
.
Ограничения содержат только линейные неравенства. Эта особенность
является основой для замены в окрестности исследуемой точки нелинейной целевой функции линейной, в результате чего решение исходной задачи сводится
к последовательному решению задач линейного программирования.
Процесс нахождения решения задачи начинают с определения любой
точки, принадлежащей области допустимых решений задачи. Обозначим эту
точку через X
(k)
. Вычислим в этой точке градиент целевой функции F:
.
)(
,...
1
)
)(
(
)(
)(
)(
n
k
k
X
k
x
XF
x
F
Далее строим линейную функцию F1
,
)(
...
)()(
)(
2
2
)(
1
1
)(
1 n
n
kkk
x
x
XF
x
x
XF
x
x
XF
F
которой будем заменять (аппроксимировать) в окрестности точки X
(k)
нелиней-
ную целевую функцию F.
Найдем максимальное значение линейной функции F1 при заданных ограничениях. А это уже — задача линейного программирования. Решаем задачу
с помощью графического метода или симплекс-метода и получаем точку Z
(k)
.
Новое допустимое решение исходной задачи находим по формуле:
.10),(
)()()()1(
k
kk
k
kk
XZXX
Значение целевой функции F в точке X
(k+1)
, зависящее от λk , должно быть
максимальным, следовательно, определяем экстремум функции, т.е. для определения λk решаем уравнение dF/dλk =0 и выбираем наименьший корень или
выбираем произвольно, если корень не принадлежит интервалу [0; 1].
Далее вычисляем значение целевой функции F в точке X
(k+1) и
выясняем
необходимость перехода к новой точке X
(k+2)
, т.е. проверяем соблюдение усло-
вия |F(X
(k)
) - F(X
(k+1)
) ≤ ε.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
