Технологии программирования | страница 120
В симплексе Q>1, Q>2, Q>3…, Q>n+1 — это рассчитанные значения минимизируемой функции при соответствующих по строке значениях аргументов минимизируемой функции.
Далее до выполнения условия окончания поиска осуществляются итерации (шаги) поиска. Условием окончания поиска этого метода является неудаленность от лучшей точки симплекса остальных точек симплекса более чем на e>2>x.
Каждая итерация начинается с нахождения номеров l и k, соответственно лучшей и худшей по значению функции точек симплекса. Далее осуществляется расчет точки X>ц — положения центра масс всех точек симплекса за исключением наихудшей точки 1. Это позднее улучшение алгоритма. Д. Химмельблау не исключал наихудшей точки.
где n — количество точек в симплексе; i — номер компоненты вектора X(i = 1, 2…, n); j — номер точки в симплексе.
Считаются нулевыми значения x>kj слагаемых сумм, где k — номер наихудшей точки.
При работе метода на каждой из итерации может вычисляться одна из особых пробных точек: а — точка отражения, р — точка растяжения, у — точка сжатия. Точки вычисляются по формулам:
X>α = X>ц + α(X>ц — X>k), X>β = X>ц + β(X>ц — X>k), X>γ = X>ц + γ(X>ц — X>k).
Целесообразно эти похожие формулы реализовать одной функцией.
Значения коэффициентов α = 1, β = 0,5 и γ = 2 подобраны экспериментальным путем (в оригинале описания алгоритма эти значения можно выявить лишь из текста программ). Расчет точек α, β, γ целесообразно осуществлять одной процедурой с параметром в виде значений коэффициентов α, β, γ.
После расчета точки X>ц вычисляется пробная точка α. Далее выполняется одно из альтернативных действий.
Если Q>α ≤ Q>1, то выполняются действия достижения сильного успеха. Если Q>1 ≤ Q>α < Q>k, то имеется слабый успех, а точка α записывается на место k-точки. Если Q>α ≥ Q>k, то выполняются действия отсутствия успеха. Рассчитывается X>β и Q>β. Далее, если Q>β ≤ Q>k, то точка β записывается на место k-точки, иначе, если точка β хуже точки k, выполняется процедура редукции симплекса и процедура расчета значения функции в точках симплекса.
Действия достижения сильного успеха. Рассчитывается X>γ и Q>γ. Наилучшая из точек α или β записывается на место наихудшей k-точки симплекса.
Действия отсутствия успеха. Рассчитывается X>β и Q>β. Далее выполняется действие по изменению симплекса при отсутствии успеха.