Алгоритм с возвратом при неудачном шаге
1. Задать начальный шаг h 0, число проб s £ n и точность e. 2. Сгенерировать или задать начальную точку X0 и вычислить в ней функцию f; положить i= 1 (i – счетчик проб). 3. Сгенерировать случайный вектор направления × . 4. На направлении определить точку X k +1 = X k + hk ×X k и вычислить в ней функцию f. 5. Проверить: а) если f (X k +1)< f (X k), положить k = k+ 1, i= 1 и вернуться на 3; б) если f (X k +1)³ f (X k) и i < s, положить i = i+ 1 и вернуться на 3; в) если f (X k +1)³ f (X k), i = s и hk > e, положить hk = hk /2, i= 1 и вернуться на 3. г) если f (X k +1)³ f (X k), i = s и hk £ e, поиск закончить, приняв X k за точку минимума. Таким образом, поиск останавливается, если в текущей точке s направлений, сгенерированных подряд, оказались неудачными при шаге, меньшем заданной точности. На рис. показан характер движения при поиске по данному алгоритму (жирной линией выделены успешные шаги).
|