На данный момент в науке существует множество методов поиска экстремума функции многих переменных. Все они различаются предъявляемыми к функции требованиями и обеспечивают разную эффективность и быстродействие. Очевидно, что хороший результат может быть достигнут путём объединения нескольких методов.
Рассмотрим алгоритм программы, сочетающей метод штрафных функций, генетический алгоритм и метод покоординатного спуска. Такая программа позволяет быстро находить экстремум функции многих переменных на множестве, задаваемом ограничениями в виде равенств и неравенств. С точки зрения структуры, её можно разделить на четыре блока, которые и будут рассмотрены ниже.
На первом этапе пользователем программы задаются все исходные данные: рассматриваемая функция и ограничения, определяющие множество значений аргументов. Затем применяется метод штрафных функций [1], в процессе которого исходная функция преобразуется к новому виду, включающему в себя ограничения. Все последующие операции выполняются уже только с этой новой функцией.
Следующий блок программы осуществляет преобразование функции в обратную польскую запись. Затем эта запись обрабатывается с целью вычленения переменных и занесения их в память.
Третий блок является ключевым блоком программы: в нём происходит основной вычислительный процесс на основе применения генетического алгоритма [2]. Сначала формируются случайные наборы значений аргументов, представляющие собой точки начального приближения. Затем начинается итерационный процесс. Первой частью его является вычисление значений функции на текущих наборах, фиксирование нового значения экстремума, если таковое появляется, и вычисление коэффициентов «выживаемости» наборов, то есть близости значений функции на них к экстремуму. Эти коэффициенты нормированы так, что их сумма по всем наборам даёт 100%. Второй частью итерационного процесса является процедура выбора родителей для наборов следующего поколения. Этот выбор осуществляется случайным образом с учётом коэффициентов «выживаемости» наборов: чем больше коэффициент, тем больше шанс набора стать родителем. В третьей части происходит кроссовер, то есть для каждого нового набора выбирается точка разрыва, все значения переменных до которой заимствуются у одного родителя, а после которой - у второго. В последней части для каждого нового набора выбирается мутирующая переменная, значение которой изменяется случайным образом. После этого новые наборы становятся текущими, и на этом итерационный процесс заканчивается. Итерации повторяются до тех пор, пока разность между модулями последних найденных значений экстремума не станет меньше 0.001 модуля значения экстремума.
Четвёртый блок программы призван за небольшое число итераций уточнить полученный результат. Это осуществляется посредством использования метода покоординатного спуска. Точкой начального приближения для него выступает набор значений аргументов, полученный в результате применения генетического алгоритма.
Таким образом, подобное сочетание нескольких методов позволяет преодолеть недостатки каждого из них и получить достаточно точное решение задачи поиска глобального экстремума функции многих переменных на множестве, задаваемом ограничениями, за достаточно небольшое количество итераций.
По поводу актуальности этого алгоритма можно сказать следующее. Актуальность поиска экстремума функции очевидна, так как многие прикладные задачи требуют нахождения оптимального решения, которым, как правило, и оказывается наименьшее или наибольшее значение функции, определяемой задачей. Актуальность же использования именно этого алгоритма для поиска экстремума функции следует из эффективного взаимодействия всех блоков программы и основывается на следующих преимуществах: глобальность находимого решения, высокая точность, высокое быстродействие, возможность оперирования с множествами, задаваемыми ограничениями.
Данная система успешно себя показала при планировании расходов бюджета в части целевых программ Владимирской области. С помощью логистической функции экспертным путем была оценена эффективность этих программ в зависимости от их финансирования. С помощью вышерассмотренной системы стало возможным получение в течение нескольких минут высокоэффективное распределение финансирования программ.
СПИСОК ЛИТЕРАТУРЫ:
- Васильев Ф.П. Численные методы решения экстремальных задач. - М. : Наука, 1988. - 556 с.
- Генетические алгоритмы [Электронный ресурс]. Проект AlgoList - алгоритмы, методы, исходники, 2008. Режим доступа: http://algolist.ru/ ai/ga/index.php