Метод покоординатного спуска в задачах без ограничений
Это задача безусловной минимизации, т. е. задача минимизации целевой функции у = f (х1, х2,…, хn) на всем пространстве переменных (на всем евклидовом пространстве). Если требуется решить задачу максимизации, то выражение целевой функции умножают на (– 1) и снова решается задача минимизации.
Суть данного метода заключается в построении последовательности точек х(0), х(1), х(2),…, х(n), монотонно уменьшающих значение целевой функции f (х(0)) ³ f (х(1)) ³ f (х(2)) ³ … ³ f (х(n)).
Согласно этому методу направления спуска выбирается параллельно координатным осям, т. е. сначала спуск осуществляется вдоль первой оси OХ1 затем вдоль второй оси OХ2 и т. д. до последней оси OХn.
Пусть х(0) – начальная точка (рис. 3.11), a – некоторое положительное число. Вычисляют значение целевой функции в этой точке – f (х(0)). Далее вычисляют значение целевой функции при х = х(0) + а и проверяют выполнение неравенства
f (х(0) + а) < f (х(0)).
Если это неравенство справедливо, то вдоль направления оси 0X1 значение функции f уменьшилось, и поэтому полагают x(1) = x(0) + a. Если неравенство не выполняется, то делают шаг в противоположном направлении и проверяют выполнение неравенства
f (х(0) – а) < f (х(0)).
В случае выполнения этого неравенства полагают x(1) = x(0) – a. Если оба неравенства не выполняются, то x(1) = x(0).
Рис. 3.11. Графическая иллюстрация поиска точки минимума методом
покоординатного спуска
Второй шаг производят вдоль координатной оси OX2. Вычисляют значение функции в точке (x(1) + a) и сравнивают его с предыдущим значением, т. е. проверяют выполнение неравенства
f (х(1) + а) < f (х(1)).
Если это неравенство выполняется, то полагают x(2) = x(1) + a. Если оно не выполняется, то делают шаг в противоположном направлении и проверяют выполнение неравенства
f (х(1) – а) < f (х(1)).
В случае выполнения последнего неравенства считают, что x(2) = x(1) – a. Если оба предыдущих неравенства не выполняются, то принимают x(2) = x(1).
Так перебирают все n направлений координатных осей. На этом первая итерация закончена. На n-м шаге будет получена некоторая точка x(n). Если x(n) ¹ x(0), то аналогично, начиная с x(n) осуществляют вторую итерацию. Если же x(n) = x(0) (это имеет место, если на каждом шаге ни одно из пары неравенств не окажется выполненным), то величину шага нужно уменьшить, взяв, например, an+1 = an/2, и в следующей итерации использовать новое значение величины шага.
Последующие итерации выполняют аналогично. На практике вычисления прекращают при выполнении какого-либо условия окончания счета, например
½f (х)(k + 1) – f (х)(k)½< d,
где f (x)(k + 1) – значение целевой функции на (k + 1) итерации; f (x)(k) – значение целевой функции на k-ой итерации; d – некоторое положительное число, характеризующее точность решения исходной задачи минимизации целевой функции.
Дата добавления: 2018-11-26; просмотров: 883;