Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Исследование операций. Сборник заданий.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
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)
Fi)
Рас­чет-
ное λ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
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]