Алгоритмы идентификации.
Алгоритмы идентификации представлены двумя основными алгоритмами, включающих ряд вспомогательных алгоритмов.
Первый MINP - алгоритм Пауэлла для минимизации функций с числом переменных не больше 50. Он состоит из алгоритма минимизации на основе модифицированной функции Лагранжа, алгоритма одномерного поиска минимума, алгоритма золотого сечения и др.
Второй MINRD - алгоритм минимизации, основанный на генерациях случайных направлений для решения задач нелинейного программирования вида f(x) ® min, когда считается, что функция f(x) унимодальна и существует точка xÎEn, в которой достигается минимум функции f(x).
Работа алгоритма строится следующим образом.
В начале первого этапа с помощью датчика псевдослучайных чисел, равномерно распределенных на отрезке [-1, 1] , генерируются направления S, SiÎ[-1,1], i=1,...,n, jÎJ, J={1,...,m}.
Для каждого направления решается задача
f(x0 + aj)-->min, jÎJ. ( 3 )
На основании результатов решения задачи выделяется подмножество J0(x0) множества J. Если J0(x0)=Æ, то первый этап повторяется. Если количество неудачных попыток превзойдет заранее установленное число, то работа алгоритма прекращается и в качестве решения принимается точка х. Если J0(x0) ¹ Æ, то осуществляется переход ко второму этапу. С помощью датчика псевдослучайных чисел, равномерно распределенных на отрезке [ 0, 1 ] генерируются числа gj, jÎJ0, а затем вычисляется направление
S = å gj×Sj Î K(x0), jÎ J0(x0) ( 4)
Далее решается задача f(x0 + a×S) ® min, результаты которой сопоставляются с рекордом, в качестве которого при первом выполнении второго этапа на заданной итерации принимается лучшее из решений задач ( 3 ). Если значение целевой функции на оптимальном решении задачи ( 4) меньше рекорда, то оно принимается в качестве нового рекорда, а значение аргумента запоминается. Далее этап 2 повторяется. Если количество подряд следующих неудачных попыток превысит заданное число, то этап 2 завершается приближенным решением исходной задачи f(x0 + a×S) ® min min
В качестве точки х0 принимается лучшее решение второго этапа. Далее осуществляется переход к первому этапу.
Сервисные алгоритмы обеспечивают, в первую очередь, последовательное выполнение всех функционально заданных этапов решения задач, возможности обратной связи на любой стадии выполнения задания и вывод информации на печать либо экран в задаваемом объеме. Кроме того, сервисные алгоритмы выполняют диспетчерско-контрольные функции работы ПИКа, обеспечивающие пользователя информацией о последовательности действий и допущенных ошибках.
Следует подчеркнуть, что предлагаемое алгоритмическое обеспечение является автономным и не требует внешних вычислительных ресурсов. В то же время оно позволяет достаточно оперативно заменять и модернизировать задействованные алгоритмы без ущерба для ПИКа в целом.