Лабораторная работа № 15

 

РЕШЕНИЕ ЗАДАЧ ОПТИМИЗАЦИЙ МЕТОДОМ СЛУЧАЙНОГО ПОИСКА

 

1. Цель работы

 

Научиться использовать ЭВМ для определения экстремума функции двух переменных методом адаптивного случайного поиска.

 

2. Исходные данные

 

2.1. Функция двух переменных и начальные значения аргументов из лаб. работы № 14.

2.2. Начальный шаг поиска h = 1; параметр увеличения шага

hp = 1,618; параметр уменьшения шага hf = 0,618.

2.3. Допустимое число неудачных проб N = 6; максимальное число проб М = 200.

 

3. Содержание работы

 

3.1. Разработать алгоритм и программу для определения экстремума функции двух переменных методом адаптивного случайного поиска с переменным шагом. Для получения равномерно распределенных случайных чисел использовать стандартную функцию RANDOM.

3.2. По разработанной программе на ЭВМ провести поиск экстремального значения функции. В процессе поиска через каждые 10 проб на печать выводить номер пробы, текущие значения аргумен­тов, функции и координаты единичного вектора.

 

4. Теоретические основы работы

 

Поиск экстремума проводится по следующей схеме:

 
 

1) установить счетчик числа проб q = 1, обнулить счетчик числа неудачных проб К = 0 и вычислить значение функции в начальной точке

2) определить два случайных числа равномерно распределенных в интервале [-1, 1] : r1 = 2*t -1 , r2 = 2*t -1,

где t - случайное число равномерно распределенное в интервале (0, 1);

 
 

3) рассчитать координаты единичного вектора

       
   
 

и вывести на печать необходимую информацию;

4) определить координаты новой точки и значение функции в этой точке

x11 = x10 + h*d1 ; x21 = x20 + h*d2; ; Y1 = f (x11 , x21);

 

 

5) сравнить Y1 и Y0 : если Y1 < Y0 ( при поиске максимума

Y1 > Y0 ), то определить координаты следующей точки на выбранном направлении

x12 = x10 + hp*(x11 - x10), x22 = x20 + hp*(x21 - x20),

 

и значение функции в этой точке Y2 = f (x12 , x22) ;

 

в противном случае принять К = К + 1 и перейти к п.7;

 

6) сравнить Y2 и Y0 : если Y2 < Y0 (при поиске максимума

Y2 > Y0 ),

то задать h = hp*h, x10 = x12 , x20 = x22 , Y0 = Y2 и перейти к п. 4;

в противном случае перейти к п.8;

7) если К = N, то задать h = hf*h, К = 0, иначе сразу перейти к п.8;

8) если q > М или h < 0,001, то закончить поиск, иначе задать q = q + 1 и перейти к п.2.

 

5. Содержание отчета

 

5.1. Цель работы

5.2. Исходные данные

5.3. Схема алгоритма расчета

5.4. Распечатка программы и результатов расчета

5.5. Выводы