Добавил:
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. Контрольные вопросы
- •Список литературы

61
Итак, процесс нахождения решения задачи методом Франка–Вульфа
включает следующие этапы:
определяем допустимое решение задачи;
находим градиент функции F в этой точке;
строим линейную функцию F1 и находим ее максимальное значение при
заданных условиях графическим методом или симплекс-методом;
определяем шаг вычислений λk;
находим новое допустимое решение;
проверяем необходимость перехода к новому допустимому решению
при выполнении условия F(X
(k)
) - F(X
(k+1)
) ≤ ε;
если необходимость существует, переходим к п. 2, иначе считаем, что
найдено оптимальное решение исходной задачи с заданной точностью.
После конечного числа шагов получаем оптимальное решение задачи
с заданной точностью ε.
Примечание:
1. Если уравнения для определения очередного допустимого решения
оказываются независящими от λk , то оптимальное решение задачи найдено.
2. При определении λk возможны следующие особые случаи:
если корень уравнения dF/dλk = 0 оказывается больше 1, то это означает,
что максимум целевой функции в направлении, заданном градиентом, находится за пределами области допустимых значений. В этом случае требуется выполнить перемещение до границы области, принимая λk =1;
если корень уравнения имеет несколько решений, то в качестве λk берется минимальный положительный корень;
если уравнение не имеет корней, например, когда F(λ) – линейная
функция, то принимается λk = 1;
если λk = 0, то это означает, что текущее решение является точным оптимальным решением задачи.
Пример. Найдите максимальное значение функции
при ограничениях:
(1)
(2)
Решение: в качестве исходного допустимого решения возьмем любую
точку из области решения задачи OABC (см. рис. 7), например, точку Х
(0)
=(0, 0),
точность вычисления примем равной ε = 0,01.
xxxx
F
2
2
2
121
242
.0,
122
82
21
21
21
xx
x
xx
x

62
1-я итерация. Вычислим градиент целевой функции F в точке Х
(0)
(0,0):
тогда линейная функция F1 будет иметь вид: F
1
= 2x1 +4x2. Далее требуется
определить максимальное значение функции F1 при условиях:
Это – задача линейного программирования. Решение задачи можно
найти графическим методом. Вначале определяем многоугольник решений, построив графики функций x1 + 2x2 =8 и 2x1 – x2 =12 (рис. 8). Затем строим линию
уровня целевой функции F1 (например, 2x1 +4x2 = 0) и перемещаем
ее параллельно самой себе до крайнего положения (рис. 9, а). Решением задачи
будет любая точка отрезка AB. Возьмем точку А = (0, 4), т.е. Z
(0)
=(0,4).
Рис. 8. Область допустимых решений OABC
а
б
Рис. 9. Решение задачи графическим методом:
а – первая итерация, б – вторая итерация
Тогда новое допустимое решение исходной задачи определим
по формуле
,
)0()0(
1
)0()1(
XZXX
),4,2()(т.е.,44,22,
)0(
21
21
2
XFxxxxF
.0,
122
82
21
21
21
xx
xx
xx

63
т.е.
Подставим полученные значения в целевую функцию, получим
Для нахождения λ1 найдем производную этой функции и приравняем
к нулю
Таким образом,
Определим значения целевой функции в точках X
(0)
и X
(1)
: F(X
(0)
)=0,
F(X
(1)
)=2, т.е. разница между ними превышает значение ε. Решение
не оптимальное. Переходим к следующему шагу.
2-я итерация.
Вычислим градиент целевой функции в точке X
(1)
:
F(X
(1)
) = (2 – 2*0, 4 –4*1) = (2, 0).
Линейная функция примет имеет вид F2(x1, x2) = 2x1. Находим
ее максимальное значение при тех же ограничениях графическим методом. Целевая функция достигнет максимального значения в точке B (см. рис. 9, б).
Точка B является точкой пересечения двух прямых
x1 + 2x2 = 8 и 2x1 – x2 =12. Решая систему двух линейных уравнений, получаем
координаты точки В (6,4; 0,8), следовательно, Z
(1)
= (6,4; 0,8).
Новое допустимое решение исходной задачи X
(2)
= X
(1)
+ λ2(Z
(1)
– X
(1)
), т.е.
координаты точки:
.
Полученные значения подставляем в целевую функцию и получаем
Далее находим λ2:
и координаты следующей точки X
(2)
Вычисляем значение целевой функции в этой точке F(X
(2)
)=2.9978
и погрешность:
Решение не оптимальное, переходим к следующей итерации.
.40
00
1
)1(
2
1
)1(
1
X
X
.3216
2
11
1
F
.25,0т.е.,06416
11
1
F
.1,0
)0()0(
1
)0()1(
XZ
XX
2
)2(
2
2
)2(
1
2,01
4,6
X
X
.04,418,122
2
22
2
F
16,0,008,828,12
2
2
2
F
.97,0;02,1
)1()1(
2
)1()2(
XZ
XX
.01,09978,09978,22
21
X
F
X
F

64
3-е итерация.
Вычисляем градиент целевой функции в точке X
(2)
:
F(X
(2)
)=(2 – 2x1, 4 – 4x2) = (0,04; 0,12), тогда линейная функция примет вид
F3(x1, x2) = 0,04x1 + 0,12x2.
Решение новой задачи, полученное графическим способом, Z
(2)
=(0, 4), то-
гда координаты следующей точки определяются как:
Следовательно, точка с координатами X
(3)
= (1,0098, 1,0003) является ис-
комым решением задачи.
Для наглядности сведем все вычисления в таблицу:
i
Fi
Z
(i) X(i)
(λi)
F(λi)
Расчет-
ное λi
X
(i)
F(X
(i)
)
|F(X
(i)
)-
F(X
(i)
)|
0
(0,0)
0
1
2x1+4x2
(0,4)
(0, 4λ1)
16λ1–32λ
1
2
0,25
(0,1)
2
2
2
2x1
(6,4;0,8)
(6,4 λ2;1–0,2 λ2)
2+12,8λ2–41,04 λ2
0,16
(1,02; 0,97)
2,9978
0,9978
3
0,04x1
+0,12x2
(0;4)
(1,02–1,02λ3;
0,97+3,03 λ3)
2,9978+0,4044λ3-
19,4022λ
3
2
0,01
(1,0098;1,0003)
2,9999
0,0022
Задание: найдите максимальные (минимальные) значения функций при
неотрицательных параметрах решения:
.
)2()2(
3
)2()3(
XZ
XX
33
)3(
2
33
)3(
1
03,397,097,0497,0
02,102,102,1002,1
X
X
.4022,194044,09978,2
2
33
3
F
0
3
'
F
.01,0,08044,384044,0
33
3
'
F
.0003,1;0098,1
)2()2(
3
)2()3(
XZ
XX
99991,2
3
X
F
,01,000221,099991,29978,2
32
X
F
X
F

65
№
Задача
№
Задача
1
22
224 yxxyyxF
153
122yxyx
2
21
2
2
2
1
8xxxxF
5
7
2
21
x
xx
3
2
2
2
121
82 xxxxF
8
122
21
21
xx
xx
4
2
2
2
2
1
2xxxF
102
18
21
21
xx
xx
5
22
232 yyxxF
2
44yxyx
6
22
232 yxyxF
220yx
yx
7
2
221
2
121
225 xxxxxxF
63
22
21
21
xx
xx
8
21
2
121
21210 xxxxxF
63
202
21
21
xx
xx
9
21
2
121
2913 xxxxxF
242
122
21
21
xx
xx
10
2
221
2
121
525.089 xxxxxxF
62
102
21
21
xx
xx
11
2
221
2
11
2210 xxxxxF
6
102
21
21
xx
xx
12
min65
2
221
2
121
xxxxxxF
1223
93
21
21
xx
xx
13
2
121
232 xxxF
2
44
21
21
xx
xx
14
2
2
2
1
)3(3)1(4 xxF
15
21
xx
15
min8112
2121
2
2
2
1
xxxxxxF
153
2443
21
21
xx
xx
16
min)2()1(
2
2
2
1
xxF
7
153
21
21
xx
xx
17
min3322
22
yxxxyF
16
1
yx
yx
18
min9102
22
yxxyyxF
324yx
yx

66
№
Задача
№
Задача
19
min222
22
yxyxF
8
332
823
x
yx
yx
20
min6.54.2
22
yx
yxF
42
3
332
yx
yx
yx
21
2
2
2
121
5.03 xxxxF
4
3
52
21
21
1
xx
xx
22
2
221
2 xxxF
42
623
21
21
xx
xx
23
2
2
2
121
2
x
xxxF
102
62
21
21
xx
xx
24
min2
21
2
2
2
1
xxxxF
62
122
21
21
xx
xx
25
2
2
2
121
1610 xxxxF
4025
162
21
21
xx
xx
26
2
2
2
121
21620 xxxxF
4025
162
21
21
xx
xx

67
2.5. Лабораторная работа № 8. Метод штрафных функций
Метод применяется к определению максимального значения вогнутой
функции F(x1, … xn) → max при условиях:
где gi(x1, … xn) – выпуклые функции.
Решение задачи сводится к определению максимального значения функ-
ции
),...,(),...,(),...,(
111 nnn
xxHxxFxxG
,
являющейся суммой целевой функции задачи F(x1, … xn) и функции H(x1,….xn),
называемой штрафной функцией.
m
i
nini
n
xxgxxxxH
1
11
1
),,...,(),...,(),...,(
где άi – весовые коэффици-
енты, которые определяются как
.0,0),...,(если,
,0),...,(если,0
),...,(
1
1
1
iniii
nii
ni
xxgb
xxgb
xx
(1)
Процесс нахождения решения задачи начинают с определения координат
любой точки X
(k)
, принадлежащей области допустимых решений задачи. Коор-
динаты каждой следующей точки X
(k+1)
находят по формуле
m
i
j
k
i
i
j
k
k
j
k
j
x
Xg
x
XF
XX
1
)1(
)()(
;0max
. (2)
Если точка X
(k)
находится в области допустимых решений, то второе сла-
гаемое в квадратных скобках равно нулю (άi = 0), и переход к точке X
(k+1)
опре-
деляется градиентом целевой функции, где λ – шаг вычислений.
Если же X
(k)
не принадлежит области допустимых решений, то за счет
второго слагаемого (άi > 0) точка X
(k+1)
возвращается в эту область.
Итерационный процесс завершается, если выполняется условие:
|F(X
(k)
) – F(X
(k+1)
)| ≤ ε.
Метод штрафных функций включает следующие этапы:
1) определяем исходное допустимое решение задачи;
2) выбираем шаг вычислений λ;
3) определяем координаты следующей точки;
4) проверяем, принадлежит ли точка ОДР. Если «да», то исследуем
необходимость перехода к следующему решению, и либо находим оптимальное решение, либо переходим к п. 2. Если найденная точка лежит вне ОДР,
то переходим к п. 5;
,,1,0
,1,),...,(
1
njx
mibxxg
j
ini

68
5) подбираем значение весовых коэффициентов αi таким образом, чтобы
bi – gi(x1, …xn) ≥ 0, и переходим к п. 3.
Примечание: при выборе весовых коэффициентов нужно учитывать, что
чем меньше λi, тем быстрее находится оптимальное решение, однако при этом
снижается точность вычислений. Поэтому итерационный процесс обычно
начинают при сравнительно малых значениях λi (≈ 0.1), а затем эти значения
постепенно увеличивают.
Пример. Найдите максимум целевой функции F = (x – 6)4 + (y – 2)2 при
условиях
Решение: за начальное приближение возьмем любую точку из области
решения задачи, например, x
(0)
= 2, y
(0)
=1.
Шаг вычислений примем равным λ=0,1. Координаты следующей точки
определяются по итерационной формуле (2).
Определим значения слагаемых в квадратных скобках:
dF/dx=4(x – 6)3 , dF/dy = 2(y – 2).
g1 =30 – 2x – 5y , g2 =14 – 2x – y ,
следовательно, dg1/dx = – 2, dg2/dx = –2, dg1/dy=–5, dg2/dy = –1.
Итерационная формула примет вид:
X
(k+1)
=max{0; X
(k)
+ λ[4(X
(k)
– 6)3 +ά1(– 2) + ά2(– 2)], (3)
Y
(k+1)
=max{0; Y
(k)
+ λ[2(Y
(k)
– 2) + ά1(– 5) + ά2(– 1)]. (4)
Итерационный процесс вычислений удобно провести в MS Excel. На рис.
10 приведены формулы, введенные в таблицу. В колонках A, B , будем вводить
значения штрафов при выходе точки за пределы ОДР (при появлении отрицательных значений в колонках F, G). Значение штрафа должно вернуть точку
в область ОДР. В колонке С помещаем шаг вычислений λ = 0,1.
В колонках D, E в строке 2 вводим начальные значения координат (x
(0)
,
y
(0)
), а в строке 3 – итерационные формулы (3, 4) вычисления координат следу-
ющей точки.
В колонках F, G запишем формулы ограничений (1), накладываемых
на координаты точки. Появление отрицательных значений в этих колонках говорит о том, что точка «вышла» за пределы ОДР и, следовательно, необходимо
«наложить штраф». Для этого в этой строке в колонках A, B путем подбора величин άi необходимо ввести такие значения «штрафов», которые бы «вернули»
точку в ОДР (значения в колонках A, B должны быть ≥ 0). Тиражируем формулы строки 3 на несколько строк вниз.
В колонке I помещаем погрешность |F(X
(k)
) – F(X
(k+1)
)| вычисления итера-
ции проводят до тех пор, пока погрешность не будет меньше 0,01.
.0,0
142
3052
yx
yx
yx

69
Рис. 10. Формулы вычислений (режим формул)
Рис. 11. Результаты вычислений
Результаты вычислений приведены на рис. 11.
К «счастью», точка не выходила за пределы ОДР, следовательно, штрафы
не применяли. Функция достигла своего экстремального значения 1300 в точке
с координатами (0,0).
Задание: найдите максимум (минимум) функций с помощью метода
штрафных функций при неотрицательных параметрах решения.
№
Задача
№
Задача
1
xx
F
2
2
2
1
8
55
2
2
1
2
xx
2
2
2
1
2
1
x
x
F
32.0
21
xx
3
2
2
2
1
xxF
6
45.0
15.0
21
21
21
xx
xx
xx
4
2
3
2
2
2
132
66 xxxxxF
3
6
2
62
3
321
321
x
xxx
xxx
5
2
2
2
121
242 xxxxF
12
2
82
21
21
xx
xx
6
22
104 yxyxF
2
4
y
yx

70
№
Задача
№
Задача
7
min
2
2
2
1
xxF
3221 xx
8
min
2
2
2
1
xxF
12
2
2
2
1
1
xx
x
9
min
2
2
2
1
xxF
5
2
2
2
1
xx
10
min
2
2
4
1
xxF
8
21
xx
11
min
43
2
2
1
2
xx
F
1832
342
21
2
2
2
1
xx
xx
12
min)3()1(
2
2
4
1
xxF
2054
2123
21
2
2
2
1
xx
xx
13
min43
2
2
1
xxF
37
42
2
2
2
1
21
xx
xx
14
min)3(
3
2
2
1
xxF
62.1
2.1
21
1
2
xx
xx
15
min543
221
2
1
xxxxF
4
21
xx
16
21
xxF
5
2
21
xx
17
min
2
2
2
1
xxF
3
21
xx
18
min
2
2
2
1
xxF
5
21
xx
19
2
2
2
121
1610 xxxxF
4025
162
21
21
xx
xx
20
2
121
32 xxxF
342
8054
21
21
xx
xx
21
2
2
4
1
)4(2)3(4 xxF
3
21
xx
22
2
2
4
1
)3(9)1(2 xxF
2
21
xx
23
24
)2()3( yxF
36
22
yx
24
24
)6()4( yxF
36
22
yx
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
