![]() ТОР 5 статей: Методические подходы к анализу финансового состояния предприятия Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века Характеристика шлифовальных кругов и ее маркировка Служебные части речи. Предлог. Союз. Частицы КАТЕГОРИИ:
|
Задачи нелинейного программированияРассмотрим численные методы решений задач нелинейного программирования. Следует отметить, что не существует универсального метода, способного помочь в решении любых задач НП. Поэтому рассмотрим наиболее распространенные. Но вначале введем понятие унимодальной функции. Унимодальной функцией на [ a; b ] называется функция, имеющая на этом отрезке единственную точку глобального минимума. При этом слева от этой точки функция является строго убывающей, с справа - строго возрастающей. Унимодальная функция имеет важное свойство. Если Рассмотрим задачу оптимизации для унимодальной функции на отрезке [ a; b ]. В принципе простейшим методом решения является методика перебора всех значений целевой функции на заданном интервале. В условиях применения средств вычислительной техники такая идея представляется не очень-то и абсурдной, но все-таки достаточно трудоемкой. Поэтому, если идею перебора значений целевой функции в целом оставить, но уточнить алгоритм выбора точек, в которых необходимо осуществить вычисление целевой функции, то можно получить достаточно эффективный метод решения оптимизационных задач. Одним из таких алгоритмов и является метод «золотого сечения». Сущность алгоритма заключается в следующем: значение целевой функции вычисляется в произвольных точках x1 и x2. Возможно f(x1)=f(x2) или f(x1)>f(x2). Так как функция унимодальна, то согласно ее свойству экстремум ее будет находиться на отрезке [ a; x2 ], а во втором случае [ x1; b]. Таким образом, произошло сужение интервала поиска экстремума и следующую точку необходимо брать внутри укороченного интервала. Выбор точек x1 и x2 должен осуществляться по определенному алгоритму, то есть они должны делить рассматриваемый интервал в пропорции, называемой золотым сечением отрезка. Золотым сечением отрезка называется точка, отстоящая на расстоянии ШАГ 0. Вычисляются координаты точек, осуществляющих золотое сечение исходного отрезка: Вычисляются значения целевой функции в этих точках, то есть ШАГ k (k =1). Сравним значения. Если Если же Итерация продолжается до тех пор, пока длина k =1-го отрезка На 0-ом шаге значение целевой функции вычисляется дважды, а на каждом последующем только по одному разу. Другим методом минимизации, обладающим лучшей сходимостью при одинаковом числе шагов по сравнению с методом «золотого сечения», является метод Фибоначчи. На нулевом шаге координаты точек вычисляются по формулам: где Запишем первые десять чисел Фибоначчи:
Дальнейшая методика вычислений осуществляется так же, как и в методе золотого сечения. Отличие заключается в том, что не надо вычислять величину интервала Для построения итерационного процесса служат следующие формулы В остальном алгоритм полностью подчиняется методу золотого сечения. На практике часто задается точность вычислений ξ, а не число шагов. В этом случае для определения числа шагов используют соотношение
При При решении задач с помощью методов золотого сечения и Фибоначчи важным условием является свойство унимодальности целевой функции. Если же оно не соблюдается, то реализация этих методов приведет к отысканию локального экстремума, который может сколь угодно сильно отличаться от глобального экстремума. Другим методом решения задач нелинейного программирования являются методы спуска. Сущность методов спуска заключается в построении последовательности точек такая последовательность получила называние минимизирующей. Для построения минимизирующей последовательности берется точка x
Различные методы спуска различаются методом выбора шага Согласно этому методу направление спуска выбирается параллельным координатным осям. Сначала производится спуск вдоль оси ОХ1, затем - вдоль оси ОХ2 и т.д. Алгоритм строится следующим образом: пусть х0 - точка начального приближения, тогда вычисляют следующее значение:
где
Если это неравенство выполняется, то вдоль оси ОХ1 значение функции уменьшилось и поэтому полагают Если неравенство не выполняется, то проверяют неравенство
и если оно выполняется, то в качестве следующего приближения принимают Если и в этом случае неравенство будет невыполнимо, тогда считают
Если оно выполняется, то полагают Если неравенство не выполняется, то проверяют выполнение неравенства Вычисления продолжают до тех пор, пока не будет достигнута некоторая наперед заданная точность счета, проверяемая с помощью неравенств Сходимость метода достигается для выпуклых и непрерывно дифференцируемых функций. Остается открытым вопрос о выборе начального приближения х0 для решения исходной задачи, так как неудачный выбор может привести к расходящемуся процессу. Рассмотренный метод относится к методам нулевого порядка. Данный метод может быть использован и в задачах с ограничениями на значение xi. В этом случае не для каждой итерации требуется проверять условия допустимости новой точки хk+1. Если хотя бы одно из условий нарушается, то значение координаты остается прежним. Если найти градиент функции f (x) в точке х 0, то антиградиентом будет называться функция - Методы отличаются способом выбора множителя ak. Если ak достаточно мало, то при этом наверняка обеспечивается выполнение неравенства Наиболее простой способ выбора ak - это положить его одинаковым для всех итераций. При этом если неравенство будет нарушаться, то для данной итерации a уменьшается до тех пор пока, указанное неравенство не будет справедливым. Предпочитай убыток позорной прибыли: первое Хилон Не нашли, что искали? Воспользуйтесь поиском:
|