|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Метод циклического покоординатного спускаМетод циклического покоординатного спуска заключается в изменении каждый раз одной переменной, тогда как другие остаются постоянными. Опишем этот метод для задачи (2.1).
приближение, а а0- некото- ™ы * > 0 Обозначим е>= (0,.... 0,1, 0,..., 0) - единичный динатньГи вектор, у которого./-* координата равна 1, остальные равны нулю,./ =1,..., л. Положим S*=eJ»Jk=k-n\-] + l, (2-13) где Г* 1 - целая часть числа kin. Условие (2.13) обеспечивает цик- L"J, „ „о = i лический перебор координатных векторов е,...,е, т.е. Л е,... Вычислим значение функции/С*) в точке Х= Хк+ akSk и проверим неравенство
f(Xk+akSk)<f(Xk). Если оно выполняется, то полагаем Xk+x = Xk+akSk,akH=ak. (2.15) В случае, если условие (2.14) не выполняется, вычисляем значение функцииДХ) в точке Х- Хк - а^5* и проверяем неравенство f(Xk-akSk)<f(Xk). (2-16) При выполнении условия (2.16) полагаем y*+i_ у* г, с* г, = г, (2 \Ъ Л —Л — U.ki3, Ufc+|— <J.k. yi.,11) Будем считать (к+\)-й этап удачным, если выполнилось хотя бы одно из условий (2.14) или (2.16). Если же ни одно из этих условий не выполнено, считаем (А;+1)-й этап неудачным и полагаем
=п, хк = х''"+1; ак при/* ф п или хк ф хк~"*х или 0 < к < п - 1, где Я.е(0;1) - фиксированное число, являющееся параметром алгоритма. Условие (2.18) означает, что если за один цикл из п этапов при переборе направлений всех координатных векторов е,..., е" с шагом ак реализовался хотя бы один удачный этап, то длина шага ак не дробится и сохраняется на протяжении по крайней мере следующего цикла из п этапов. Если же среди последних п этапов ни одного удачного не оказалось, то шаг а дробится. Скорость сходимости данного метода невысока. Несмотря на это, метод циклического покоординатного спуска широко применяется на практике благодаря простоте реализации. Заметим, что такой метод работает плохо, если в выражение минимизируемой функции входят произведения х.х., т.е. если имеет место взаимодействие между x.,i=\,...,n. Указанного недостатка можно избежать с помощью следующей модификации метода покоординатного спуска, известной под названием метода Зейделя. 2.2.2. Метод Зейделя Этот метод заключается в последовательной минимизации функции/^ по направлению каждого из координатных векторов e\j = 1,..., и, всегда начиная из самой последней точки построенной последовательности. После завершения минимизации по направлению последнего координатного вектора е" цикл, называемый внешней итерацией, повторяется до тех пор, пока не выполнится одно из возможных условий окончания поиска: |/(Х*)-/(А'*-")|<8ИЛи||Х4-Х*1<£, (2.19) где е > 0 - заданный параметр точности. Для приближенного решения вспомогательной задачи минимизации min{/-(A-*-aS*)|ae^} (2.20) на каждом внутреннем шаге внешней итерации целесообразно использовать изученный ранее метод поразрядного поиска. Опишем алгоритм метода Зейделя. ШагО. Задать параметр точности е > 0, выбрать точку на Шаг1. Положить jk=k- л["^1 +1, Sk = eJ, где |^J- целая часть числа kin. Решить задачу одномерного поиска (2.20), т.е. определить оптимальную величину шага а = arg mm{f(Xk+aS)\aeR}. Найти новую точку последовательности Xk+l=Xk+akSk и вычислить значение функции/(Х +). Шаг 2. Если / < п, то положить к = к+\ и перейти к шагу 1, иначе -- перейти к шагу 3. Шаг 3. Проверить условие достижения заданной точности (2.19). Если оно выполняется, то перейти к шагу 4, иначе -к шагу 1, положив к= к+\. Шаг 4. Завершить вычисления, положив X»IW, / =f(X '). Эффективность метода Зейдел'я существенно зависит от свойств целевой функции/^). Так, если линиями уровня целевой функции двух переменных являются концентрические окружности, то очевидно, что два шага исчерпывающего спуска приведут в точку минимума из любой начальной точки, т.е. минимум такой функции удается с помощью описанного алгоритма найти точно за конечное число шагов. Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.005 сек.) |