Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
4_chast_TerVer_pogreshnosti.docx
Скачиваний:
29
Добавлен:
21.08.2019
Размер:
770.61 Кб
Скачать

10. Задачи безусловной оптимизации. (Постановка задачи, необходимые и достаточные условия оптимальности в задачах безусловной оптимизации.) Задача.

Задача оптимизации – задача определения максимума или минимума функции на множестве X.

Задача безусловной оптимизации – задача определения максимума или минимума функции на допустимом множестве X=Rn.

Решением задачи являются допустимые точки, в которых функция достигает своего минимума (максимума).

Постановка задачи безусловной оптимизации:

Задана функция ƒ(x), определенная на Rn

Найти точки минимума функции ƒ(x) на Rn, т.е. f(x)→min, x Rn

f(x)-целевая функция

Rn-допустимое множество точек

x-допустимые точки

n-размерность задачи

(.)→min – решение задачи оптимизации

Точка x* называется точной глобального минимума или глобальным решение задачи, если для любой допустимой точки C справедливо неравенство ƒ(x)>ƒ(x*).

Точка x* называется точной локального минимума или локальным решение задачи, если существует такое подмножество U(x*)={x│x Rn,││x-x*││≤δ} что выполняется ƒ(x)>ƒ(x*) для всех x U(x*).

Если ƒ(x)>ƒ(x*) выполняются, как строгое неравенство, то х* называется строгим решением задачи.*

Точку, являющуюся решением задачи оптимизации, проверяют на необходимое и достаточное условие оптимальности.

В общем случае смысл всех критериев оптимальности для задач оптимизации сводится к тому, что из точки х* нельзя осуществить сколь угодно малый сдвиг в каком бы то не было направлении, приводящий к уменьшению значения f(x), и остается при этом в пределах допустимого множества.

Необходимое условие оптимальности: градиент gradf(x*)=0 в точке х* равен 0, т.е. нулю равны все первые частные производные f(x) в точке х*. ∂f(x*)/xi=0 i=1,2,…,n. (градиент – вектор первых частных производных).

Достаточное условие оптимальности: если выполняется необходимое условие (gradf(x*)=0) и выполняется ƒ(m)(x)=0, к=1,…, m-1; ƒ(m)(x)≠0 ,то

Если m – четно, х* - экстремум (если ƒ(m)(x)>0, то х* - точка минимума; если ƒ(m)(x)<0, то х* - точка максимума),

m – нечетно, экстремума нет (точка перегиба).

Для одномерного случая: если в х* выполняется gradf(x*)=0 и gradf(x*)>0, то х* - min, если gradf(x*)=0 и gradf(x*)<0, то х* - max.

Для двумерного случая: gradf(x*)=0 если ∂2f(x*)/∂x12 >0 и D=|∂2f2 (x*)/∂x12 ; ∂2f(x*)/∂x1 ∂x2 ;

2f(x*)/∂x1 ∂x2 ; ∂2f2 (x*)/∂x22|

D>0,то х* - min, если ∂2f2 (x*)/∂x12 <0, а D>0,то х* - max.

11. Численные методы многомерной безусловной оптимизации. (Направление убывания и общая схема методов спуска. Метод покоординатного спуска и градиентные методы спуска.) Задача.

Этот параграф посвящен методам решения задачи (2.1) в случае произвольной размерности пространства RN (N  1). Будут рассмотрены две группы классических методов минимизации. Первую группу составляют так называемые методы спуска. Наиболее важным среди методов второй группы является метод Ньютона и его модификации.

1. Направления убывания и общая схема методов спуска. Многие методы минимизации относятся к числу методов спуска. В методах спуска направление движения к минимуму на каждом шаге выбирается из числа направлений убывания минимизируемой функции.

Определение 2.2. Говорят, что вектор = (h1, h2, ..., hn) задает направление убывания функции f в точке x, если существует такое число 0 > 0, что

f(x +  ) < f(х)

при всех 0 <  < 0. Сам вектор также называют направлением убывания. Множество всех направлений убывания функции f в точке x будем обозначать через U(x, f).

Таким образом, если любой достаточно малый сдвиг из x в направлении вектора приводит к уменьшению значения функции f, то  U(x,f).

Заменив неравенство, фигурирующее в определении направления убывания, на противоположное, получим определение направления возрастания.

В дальнейшем нам понадобятся следующие необходимое и достаточное условия направления убывания.

Теорема 2.4. Достаточное условие. Пусть функция f дифференцируемая в точке х Rn. Если вектор удовлетворяет условию

тоhU(x, f).

Необходимое условие. ЕслиhU(х,f), то (f(x),h)  0.

Другими словами, теорема 2.4 утверждает, что вектор h задает направление убывания функции f, если он составляет тупой угол с вектором градиента f, указывающим, как известно из курса высшей математики, направление наискорейшего возрастания функции f. Доказательство этой теоремы можно найти в книге [1].

Итак, пусть требуется решить задачу (2.1) :

f(x)  min, x Rn.

В cлучае n = 2 решению этой задачи можно дать геометрическую иллюстрацию. Уравнению x3 = f(x1, x2) соответствует поверхность в трехмерном пространстве. Если функция f(x) достигает локального минимума в точке, то поверхность x3 = f(x1, x2) в некоторой окрестности точки x* имеет форму чаши.

Геометрическая интерпрeтация двумерной задачи минимизации основана на понятии линии уровня. Напомним, что линиями уровня функции f(х1, х2) называют семейство линий плоскости R2, накоторых функция принимает постоянное значение. Если функция f(x) имеет в R2 единственную точку локального минимума x* = (x1*, x2*), то такая функция называется мономодальной. Взаимное расположение ее линий уровня имеет вид, изображенный на рис. 2.3. Мультимодальными называются функции, которые имеют более одного экстремума. Такова, например, функция f(x) = ((x1)2 + (x2)2 + 1)2  4(x1)2, имеющая две точки минимума (1,0) и (-1,0). Линиями уровня этой функции являются так называемые овалы Кассини, изображенные на рис. 2.4.

Рис. 2.3. Рис 2.4.

Общая идея методов спуска состоит в следующем. Чтобы найти точку x* локального минимума функции f(x), строят последовательность точек {x(k)} (k = 0, 1, 2, …), сходящуюся к точке х*, таким образом, чтобы последовательность значений функции f(х(k)) была монотонно убывающей и ограниченной:

f(x(0))  f(x(1))  …  f(x(k))  …  f(x*).

Геометрически алгоритм решения задачи (2.1) в случае двух переменных напоминает спуск на дно чаши (рис. 2.5). Это мотивирует название “методы спуска”.

Для различных методов спуска сначала выбирают начальную точку последовательности х(0) (рис. 2.5). Дальнейшие приближения x(k) определяются соотношениями.

x(k +1) = x(k ) + kh(k) (k = 0, 1, 2, …), (2.13)

где h(k) – вектор направления убывания, k – положительная скалярная величина, называемая длиной шага.

Рис. 2.5.

Методы спуска различаются выбором направления убывания и длины шага. Рассмотрим наиболее известные из них.

1. Методы прямого поиска. Методы прямого поиска относятся к алгоритмам нулевого порядка, в которых используются только значения целевой функции. Мы рассмотрим подробно только один из них, а именно, метод покоординатного спуска или метод Гаусса-Зейделя. Практика показала, что этот метод эффективен и применим для широкого круга приложений.

Решение задачи (2.1) методом покоординатного спуска осуществляется по следующей общей схеме.

Выбирают произвольно начальную точку х(0) из области определения функции f(х). Приближения х(k) определяются соотношениями (2.13), где вектор направления убывания h(k) – это единичный вектор, коллинеарный какому-либо из координатных направлений; величина k является решением задачи одномерной минимизации

f(x(k) + th(k))  min, tR. (2.14)

Р ешение этой задачи может определяться, в частности, каким-либо из методов, описанных в предыдущем параграфе. Таким образом, задача поиска минимума функции нескольких переменных сводится к последовательности задач одномерной минимизации (2.14) по переменной t на отрезках n-мерного пространства, проходящих через точки x(k) в направлении векторов h(k).

Детальная реализация общей схемы в двумерном случае дает траекторию приближения к точке x*, состоящую из звеньев ломаной, соединяющих точки x(k), x(k), x(k +1), x(k +1) (k= 0, 1, 2, …) (рис. 2.6). При k = 0, исходя из начальной точки x(0) = (x1(0), x2(0)), находим точкуx(0) = (x1(0),x2(0)) минимума функции одной переменной f(x1, x2(0)); при этом f(x(0))  f(x(0)). Затем находим точку минимума x(1) функции f(x(0), x2) по второй координате. Далее делаем следующий шаг вычислений при k=1. Полагаем, что исходной точкой расчета является х(1). Фиксируя вторую координату точки х(1), находим точку минимума х(1) = (х1(1),х2(1)) функции f(х1, х2(1)) одной переменной х1; при этом f(х(1))  f(х(1))  f(х(0)). Точку х(2) получают, минимизируя целевую функцию f(х1(1), х2) вновь на координате х2 при фиксированной координате х1(1) точки х(1) и т. д.

Условием прекращения вычислительной процедуры при достижении заданной точности  может служить неравенство

 х(k+1) х(k)  < . (2.15)

Теоретически данный метод эффективен в случае единственного минимума функции. Но на практике он оказывается слишком медленным. Поэтому были разработаны более сложные методы, использующие информацию не только о значениях функции, но и ее производных. Это так называемые градиентные методы спуска.

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

Далее везде будем считать, что x и x существуют и непрерывны. Кроме того, предполагается, что компоненты градиента могут быть записаны в аналитическом виде или с достаточно высокой точностью найдены с помощью численных методов.

Все описываемые ниже методы основаны на итерационной процедуре, реализуемой в соответствии с формулой (2.13), где вектор h(k) строится с помощью антиградиента функции  в точке xk, т. е. вектора xk, задающего направление наискорейшего убывания целевой функции . Способ определения h(k) и k на каждой итерации характеризует особенности применяемого метода.

12. Постановка задач линейного программирования. (Общая задача линейного программирования, основная задача линейного программирования. Каноническая задача линейного программирования, алгоритм приведения задачи линейного программирования к канонической форме.) Задача.

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

Задачи линейного программирования и их свойства.

Задачи линейного программирования (ЗЛП) обладают рядом особенностей, позволивших разработать специальные высокоэффективные методы их решения. Но прежде чем приступать к описанию конкретных вычислительных процедур, необходимо сформулировать основные формы задач линейного программирования и изучить их свойства. Так же как и в предыдущих главах, мы будем рассматривать только задачу минимизации (вопрос о сведении задачи нахождения максимума к задаче минимизации уже обсуждался в §1 главы 1).

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

Дано: функция f(x)=C1X1+C2X2+…CnXn. (1.1)

Определенная на множестве X с заданным ограничением.

a11 x1 + a12 x2 + ... + a1n xnb1,

a21 x1 + a22 x2 + ... + a2 n xnb2,

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . (1.2)

al1 x1 + al 2 x2 + ... + al n xnbl,

al +1,1 x1 + al +1,2 x2 + ... + al +1,n xn = bl+1,

. . . . . . . . . . . . . . . . . . . . . . . . . . . .

am1 x1 + am 2 x2 + ... + am n xn = bm (ml),

и

Найти: Точки min f(x) на X.

Общая ЗЛП называется основной ЗЛП, если допустимое множество Х задано только ограничениями (1.2) типа неравенств, т.е. Х: ai1 x1 + ai2 x2 ++ ain xn bi, i = 1,2, , m.

Фактически основная ЗЛП – это одна из форм записи общей ЗЛП. Задачу линейного программирования можно также сформулировать в канонической форме.

Определение 3.4. Канонической ЗЛП (КЗЛП) называется задача минимизации целевой функции (3.1) на допустимом множестве Х, заданном ограничениями

ai1 x1 + ai2 x2 + + ain xn = bi , i =1, , m, (m n),

xj  0, j = 1, 2, , n.

Подавляющее большинство известных методов решения задач линейного программирования предназначены именно для ЗЛП в канонической форме. Поэтому начальный этап решения всякой общей ЗЛП обычно связан с приведением ее к некоторой эквивалентной канонической задаче.

Общая идея перехода от общей ЗЛП к КЗЛП cостоит в следующем.

Ограничения в виде неравенств (3.2) преобразуются в уравнения за счет введения фиктивных неотрицательных переменных xi, i = n+1, , n+l, которые входят в целевую функцию с коэффициентом 0; переменные, на которые не наложено условие неотрицательности, представляются в виде разности двух новых неотрицательных переменных:

хj = xj- xj, ( xj  0, xj  0).

Фиктивные переменные хi добавляются в неравенства (3.2) с отрицательным знаком.

Проиллюстрируем применение описанных выше рекомендаций на примере.

Пример 3.2. Пусть задана общая ЗЛП с целевой функцией

f(x) = 5x1 + 3x2 + x3 + 2x4x5

и допустимым множеством X, определенным системой уравнений и неравенств

2х1 + 4х2 + 5х3 = 7

3х2 4х3 + 5х4 + 4х5  2,

3х1 +5х3  6х4 + 2х5  4,

x1  0, x3  0, x5  0 .

Тогда в соответствии со сформулированными правилами эквивалентная каноническая задача будет иметь вид:

f1(x) = 5x1 + 3x2 3x2 +x3 + 2x4 2x4 2x5 + 0x6 + 0x7  min

на множестве Х:

2x1 + 4x2  4x2 + 5x3 = 7,

3x2  3x2  4x3 + 5x4  5x4 + 4x5x6 = 2,

3x1 + 5x3  6x4 + 6x4 + 2x5x7 = 4,

x1 0, x2  0, x2  0, x3  0, x4  0, x4  0, x5  0,

x6 0, x7  0.

Нетрудно заметить, что “платой“ за переход от общей формы задачи линейного программирования к канонической является рост ее размерности (количества переменных), что при прочих равных условиях является фактором, усложняющим процесс решения.

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