Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
267.doc
Скачиваний:
13
Добавлен:
30.04.2022
Размер:
1.72 Mб
Скачать

2.2.3. Оптимизация частотных характеристик методом Гаусса-Зейделя

При оптимизации ЧХ методом Гаусса-Зейделя оптимизация ведётся по тем же критериям, которые указаны в пункте 2.2, то есть по главному критерию (1.68) с учётом ограничений (1.69) - (1.70).

Процедура оптимизации состоит из следующих шагов:

  1. Априорно задаётся общее число коэффициентов НЦФ кратное 2N.

  2. Указывается общее число неудачных попыток для алгоритма оптимизации по каждой из групп и по всем группам.

  3. Происходит разбиение симметричной части вектора коэффициентов НЦФ на группы, как указано в пункте 2.2.2.

  4. Инженерным методом выбирается начальное приближение вектора коэффициентов НЦФ.

  5. Процесс оптимизации идёт по группам последовательно, начиная со второй группы (коэффициенты первой группы всегда равны 1).

  6. Осуществляем покоординатный спуск в группе. Изменяем значение i-го (i=1, …, m, m – число коэффициентов группы) коэффициента группы при фиксированных остальных. Вычисляем значение целевой функции и коэффициентов прямоугольности. Если это значение уменьшилось, а значения АЧХ на выбранных уровнях ухудшились не более чем на заданную ошибку, то сохраняем данное значение коэффициента, в противном случае возвращаем его прежнее значение. Так производим оптимизацию всех коэффициентов в группе последовательно до тех пор, пока значение целевой функции будет улучшаться или число циклов оптимизации группы не превысит заданное.

  7. Оптимизация всего вектора коэффициентов НЦФ состоит в последовательной оптимизации всех групп коэффициентов до тех пор, пока имеет место улучшение целевой функции или число попыток оптимизации не превысит допустимое.

2.2.4. Комбинированный алгоритм оптимизации частотных характеристик

Для решения условной задачи оптимизации (1.68) – (1.70) разработан алгоритм, построенный на основе комбинации методов случайного поиска и покоординатного спуска типа Гаусса-Зейделя. Ограничения (1.52) – (1.53) учитываются в нем алгоритмически, как это описано в пунктах 2.2.2 и 2.2.3.

Алгоритм работает по типу метода групповой релаксации переменных. Сущность метода групповой релаксации переменных состоит в том, что процесс оптимизации разбивается на этапы, на каждом из которых оптимизация проводится по одной или нескольким группам переменных. При переходе от предыдущего этапа к последующему происходит замена переменных – групповая релаксация в процессе оптимизации продолжается. В простейшем случае групповая релаксация осуществляется последовательно по группам начиная со второй (первая группа всегда имеет все коэффициенты равные единице). Процесс продолжается до тех пор, пока имеет место улучшение целевой функции (1.68).

В качестве начального приближения используется вектор коэффициентов , рассчитанный инженерным методом, как это описано в пункте 2.2.1.

Обобщённая структурная схема комбинированного алгоритма оптимизации представлена на рис. 2.4.

1

2

3

4

5

Рис. 2.4. Обобщённая структурная схема комбинированного алгоритма оптимизации

6

7

8

9

K=1

10

11

Рис. 2.4. Продолжение

12

13

14

15

Нет

Да

16

17

18

19

20

Рис. 2.4. Продолжение

21

22

Нет

23

24

Да

25

27

26

Да

Рис. 2.4. Продолжение

Нет

29

28

Да

Да

31

30

32

Нет

33

34

Нет

35

36

Рис. 2.4. Окончание

Полностью комбинированный алгоритм оптимизации состоит в следующем:

  1. Задаётся общее число коэффициентов симметричной части ЦФ N, кратное 2P, число коэффициентов в каждой группе , погрешность еd для ограничений (1.69) и (1.70), максимальное число последовательных покоординатных спусков в группе K*, максимальное число циклов оптимизации группы m**, максимальное число последовательных неудачных циклов оптимизации группы m*, максимальное число последовательных неудачных циклов оптимизации по группам В*, максимальное число циклов оптимизации по группам В** (блок 2, рис. 2.4).

  2. Производится первоначальный расчёт параметров НЦФ инженерным методом, как это описано в пункте 2.2.1 (блок 3, рис. 2.4).

  3. Начальным приближением для процесса оптимизации является вектор коэффициентов X, полученный в пункте 3 (перед процессом оптимизации он запоминается) и соответствующее ему значение целевой функции С, которое надо минимизировать (блок 5, рис. 2.4).

  4. Вектор коэффициентов Х делится на группы хr (r=1, …, L), r – номер группы, L – число групп, и процесс оптимизации идёт последовательно с первой группы до последней в цикле не более B** раз (для исключения ошибки). Параметр В означает B-тую итерацию, сначала равен 1. Счётчик подряд неудачных реализаций этого цикла оптимизации по всем группам B1 =0 (блоки 4 и 6, рис. 2.4).

  5. Сначала оптимизируется первая группа. Запоминается значение целевой функции PrevC и сам вектор Х, которые были перед началом оптимизации данной группы. m1 равен 0 (блоки 6-8, рис. 2.4).

  6. В цикле от 1 до m** осуществляется процесс оптимизации данной группы. Параметр m означает m-тую итерацию и сначала приравнивается 1. Значение m** введено для исключения ошибки. На каждой итерации группа заполняется случайным образом (используя эвристический алгоритм) (блоки 8-9, рис. 2.4).

  7. В группе, заполненной случайным образом, в цикле от 1 до K* (введено для избежания ошибки) осуществляется процедура покоординатного спуска. Параметр K означает K-тую итерацию и сначала приравнивается 1 (блок 10, рис. 2.4).

  8. Процедура покоординатного спуска состоит в следующем:

определяется начальное значение целевой функции С0, соответствующее данному заполнению группы. Перебираются по порядку с первого до последнего все коэффициенты группы: изменяется значение текущего коэффициента на противоположное (при неизменных остальных). Определяется новое значение целевой функции С1 и обобщённое значение d1, отвечающее за коэффициенты прямоугольности. Если С0<С1 или d1<(d+ ed) тогда оставляется старое значение коэффициента, иначе запоминается новое значение целевой функции: С0=С1 (блоки 11-12, рис. 2.4).

  1. Полученное в ходе этого покоординатного спуска в группе (см. пункт 9) значение сравнивается на первой итерации с заведомо большим значением . Если = (то есть уменьшения целевой функции не произошло), то мы покидаем цикл, в противном случае = , K=K+1. Если K < K*, то осуществляется переход к шагу 8, в противном случае выход из цикла. В связи с физическими свойствами проектируемого устройства выход из цикла процедуры покоординатного спуска всегда происходит из-за отсутствия уменьшения целевой функции (блоки 13-15, рис. 2.4).

  2. Полученное в ходе выполнения шагов 7-9 значение сравнивается на первой итерации с заведомо большим числом . Если >= или d1<(d+ ed), то m1=m1+1, далее определяется m1>= m*, если да то выходим из цикла. Если же >= или d1>=(d+ ed), то = , m1=0 и запоминается новое значение коэффициентов оптимизируемой группы. Потом начинается следующая итерация с заполнения группы случайным образом и шаги 7-9 повторяются. Условие останова здесь – либо число подряд неудачных реализаций циклов оптимизации группы (состоящих в выполнении шагов 7-9), либо число итераций. После выхода из цикла заполняем группу коэффициентами, соответствующими наиболее удачной реализации цикла оптимизации, восстанавливая запомненный в ходе цикла оптимизации набор значений коэффициентов группы (блоки 16-23, рис. 2.4).

  3. Пункты 6-10 описывают полный цикл оптимизации одной группы. Если в ходе цикла оптимизации получено, что >=PrevC (то есть получено худшее значение, чем до запуска полного цикла оптимизации группы), то восстанавливается первоначальный вектор коэффициентов X и значение целевой функции в ходе цикла оптимизации группы приравнивается PrevC: =PrevC (блоки 24- 25, рис. 2.4).

  4. Последовательно оптимизируются группы с первой до последней. Их оптимизация состоит в выполнении шагов 5 – 11. При этом значение , полученное в ходе выполнения шагов 5-11 является значением, полученным после оптимизации каждой группы, то есть когда r=L (дойдём до последней группы), будет значением, полученным после одного цикла оптимизации по всем группам (блоки 26-27, рис. 2.4).

  5. Полученное в ходе выполнения шагов 5-12 значение сравнивается с первоначально запомненным С.

Если >=С, то счётчик B1=B1+1. Далее, если В1<B*, то приравниваем номер оптимизируемой группы к первой и увеличиваем число осуществлённых итераций на одну, в противном случае происходит останов процесса оптимизации. Если же <С, то B1=0, С = и число осуществлённых итераций увеличивается на 1. Потом оптимизация начинается снова с первой группы до последней (состоит в выполнении шагов 5-12). Условиями останова здесь служат число подряд неудачных реализаций этого цикла оптимизации и число итераций (блоки 28-34, рис. 2.4).

14. После выхода из цикла мы получаем конечный вектор коэффициентов Х, соответствующий минимальному значению целевой функции (блок 35, рис. 2.4).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]