Министерство образования Российской федерации
Новокузнецкий филиал институт Кемеровского государственного университета ...
73 downloads
173 Views
503KB Size
Report
This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
Report copyright / DMCA form
Министерство образования Российской федерации
Новокузнецкий филиал институт Кемеровского государственного университета
Кафедра технической кибернетики
МЕТОДЫ БЕЗУСЛОВНОЙ МНОГОМЕРНОЙ ОПТИМИЗАЦИИ
Рекомендации к выполнению лабораторных, практических и курсовых работ по дисциплине "Методы оптимизации"
Специальности: "Автоматизированные системы обработки информации и управления"(220200), "Информационные системы в экономике"(071900)
Новокузнецк 2000
2
УДК 681.3.06 Рецензент: доктор технических наук, профессор Каледин В.О. М-54 Методы безусловной многомерной оптимизации: Рек. к выполнению лаб., практ. и курсовых работ/ Сост.: С.А. Шипилов: НФИ КемГУ. – Новокузнецк. 2000.- 31 с. Рассмотрены классические и численные методы безусловной многомерной оптимизации: последовательной одномерной оптимизации вдоль направлений, симплексные и градиентные алгоритмы. Рассматривается применение методов оптимизации для решения нелинейных уравнений и систем уравнений. Работа алгоритмов иллюстрируется на конкретных примерах. Приведены варианты индивидуальных заданий для самостоятельной работы. Предназначены для студентов специальностей "Автоматизированные системы обработки информации и управления"(220200), "Информационные системы в экономике"(071900).
Печатается по решению методического совета НФИ КемГУ.
3
ВВЕДЕНИЕ Решение оптимизационной задачи в общем случае заключается в определении таких значений входных переменных исследуемого объекта, которым соответствует наилучшее (минимальное или максимальное) значение целевой функции. Технологические системы, как правило, являются многомерными, с большим количеством входных факторов, на значение которых к тому же накладываются дополнительные ограничения. Это требует использования методов многомерной условной оптимизации. Многие из данных методов, однако, предполагают сведение задачи к безусловной оптимизации путем преобразования целевой функции с дальнейшим применением соответствующих процедур. Поэтому изучение методов поиска экстремума функций нескольких переменных без ограничений является не менее важной задачей. В настоящих рекомендациях рассматривается постановка задачи многомерной безусловной оптимизации, аналитический анализ целевой функции, теоретические основы часто используемых на практике численных методов метода крутого восхождения, симплекс - метода и метода Хука и Дживса. Для наилучшего понимания сущности и особенностей этих методов, формирования навыков корректного задания входных параметров их работа иллюстрируется на примере функций двух переменных, когда возможна геометрическая интерпретация решения задачи. В прил. 1 – 5 приводится пример выполнения практической работы, а также варианты индивидуальных заданий. 1. ПОСТАНОВКА ЗАДАЧИ Пусть задана функция n действительных переменных n f(x1, x2, x3, ..., xn) = f(x), определенная на множестве X ∈ R , где x - вектор- столбец, обозначающий точку в n-мерном евклидовом пространстве с координатами x1, x2, x3, ..., xn . Функция f(x) имеет локальный минимум в точке x*∈ X, если существует окрестность точки x* такая, что f(x*) ≤ f(x) во всех точках этой окрестности. В n случае глобального минимума в точке x* для всех x ∈ R справедливо неравенство f(x*) ≤ f(x). Далее будем рассматривать задачу отыскания точек минимума функции n f(x), т.е. f(x) → min , x ∈ R . Для приведения же задачи максимизации к задаче минимизации достаточно изменить знак целевой функции. 2. АНАЛИТИЧЕСКИЙ АНАЛИЗ ЭКСТРЕМУМА ФУНКЦИИ Необходимым условием существования экстремума функции нескольких переменных в точке x* является равенство нулю всех частных производных в этой точке:
4
∂f * (x ) = 0 , i=1, 2 ,3 , ..., n ∂xi т.е. градиент функции равен нулевому вектору. Данная система может иметь как одно, так и несколько решений. Точки x* называются стационарными точками. Для проверки полученных точек на экстремум необходимо провести исследование вторых частных производных. При этом, рассчитывается матрица Гессе Ή(x*), представляющая квадратную матрицу вторых частных производных f(x), взятых в точке x*. Достаточным условием минимума является положительно определенная матрица Ή, а максимума - отрицательно определенная. Для функции двух переменных введем следующие обозначения ∂2 f * ∂2 f * ∂2 f (x ) = A (x ) = B (x* ) = C 2 2 ∂x1∂x2 ∂x1 ∂x2 Возможны два случая: AB - C2 < 0 и AB – C2 >0. В первом случае вывода о наличии экстремумa функции сделать нельзя. Во втором случае при A > 0 найденная точка является минимумом функции, при A < 0 - максимумом функции. 3. ГРАФИЧЕСКИЙ АНАЛИЗ ФУНКЦИИ. ПОСТРОЕНИЕ ЛИНИЙ УРОВНЯ
Область функции, в которой находится оптимальное решение, представляет собой некоторую поверхность в многомерном пространстве. Эта поверхность называется поверхностью отклика. Данную поверхность даже для случая n=2 трудно изобразить графически, поэтому на плоскости ее обычно отображают с помощью линий уровня, которые представляют собой множество точек с одинаковым значением целевой функции. Для построения линий уровня необходимо выразить одну переменную через другую переменную и целевую функцию x1=F(f(x1, x2), x2). Затем необходимо, задаваясь значениями функции, провести сканирование по второй переменной, рассчитывая при этом первую. По полученным точкам можно построить линию уровня. Затем необходимо изменить значение функции и вновь повторить процедуру. Операция повторяется столько раз, сколько необходимо провести линий уровня. В случае неявно заданного уравнения линии уровня необходимо использовать более сложные методы для графического отображения функции. 4. ПОИСКОВЫЕ МНОГОМЕРНЫЕ МЕТОДЫ
Все методы, которые изложены далее носят шаговый характер. Одна итерация метода может включать в себя либо один шаг, либо множество шагов. Шаг считается «удачным», если значение целевой функции в новой точке не больше, чем в старой, т.е. если f(x(k)) ≤ f(x(k-1)); в противном случае шаг считается «неудачным».
5 4.1. Методы на основе пошаговой одномерной оптимизации
4.1.1. Метод Гаусса- Зейделя (покоординатного спуска) В основу метода Гаусса- Зейделя положены принципы более раннего метода поочередного изменения переменных. Идея последнего заключается в следующем: из начальной точки делается шаг по первой переменной, если он «удачный», то переходят к следующей переменной. Если шаг оказался «неудачным», то делается шаг в противоположном направлении. Эта процедура повторяется до тех пор, пока во всех направлениях не будут получаться одни «неудачные шаги». В этом случае величина шага уменьшается. Поиск продолжается до тех пор, пока абсолютное значение величины шага оказывается меньше заданной точности. В методе Гаусса- Зейделя при выполнении шага по каждой переменной ищут минимум целевой функции в ее направлении, при этом значения остальных переменных остаются постоянными. Этот поиск по направлению можно производить любым известным методом одномерной оптимизации ( например, методом обратного переменного шага, методом «золотого сечения» и т.п.). Таким образом, в методе Гаусса-Зейделя задача многомерной оптимизации сводится к многократному использованию метода одномерной оптимизации. Очередность варьирования переменных при этом устанавливается произвольно и обычно не меняется в процессе оптимизации. Таким образом, алгоритм метода заключается в следующем. 1. Для некоторого начального значения x(0) фиксируют все координаты вектора x , кроме одной (для определенности x1) и проводят операцию одномерного поиска минимума функции F(x1)=f(x1, x2(0), x3(0), … xn(0)), в результате чего получают точку x(1)=(x1*, x2(0), x3(0), … xn(0)), где x1* = arg min F ( x1 ) . x1
2. Фиксируя в точке x(1) все координаты кроме второй, повторяют п. 1 по x2. И так до последней составляющей xn. Цикл алгоритма завершается после n – кратной операции одномерной оптимизации вдоль каждой из координат, после чего этот цикл повторяют, получая точки x(1), x(2), …, в каждой из которых значение целевой функции не больше, чем в предыдущей. Условием прекращения вычислительной процедуры при достижении заданной точности ε может служить неравенство x ( k ) − x ( k −1) < ε . При пошаговом движении, например, в алгоритме поочередного изменения переменных поиск прекращается в точке, для которой x(k) совпало с x(k-1), т.е. цикл оказался нерезультативным. Недостатком метода Гаусса-Зейделя является жесткое направление изменения каждой из составляющих решения, не зависящее от характера функции, что может привести к неоправданной остановке алгоритма в случае “овражных” функций.
6 4.1.2. Метод Хука и Дживса (метод конфигураций) Этот метод можно рассматривать как модификацию метода ГауссаЗейделя. Идея метода заключается в следующем: из начальной (базовой) точки выполняется одна итерация метода Гаусса-Зейделя; там, где получено уточненное значение функции, помещается временная базовая точка. После этого дальнейший поиск проводят вдоль прямой, соединяющий две базовые точки. Этот поиск проводится любым методом одномерного поиска. Найдя точку с минимальным значением целевой функции, из нее снова выполняют одну итерацию метода Гаусса-Зейделя, и дальнейший поиск снова проводят вдоль прямой, соединяющий две последние базовые точки т.д. Рассмотрим простейшую модификацию метода Хука и Дживса. Процедура включает в себя два циклически повторяющихся этапа: исследующий поиск вокруг базисной точки и поиск по образцу. 1. Исследующий поиск. Задается начальная базисная точка x(0) и приращения по каждой координате Δxi . Рассчитывается значение целевой функции в базисной точке. Затем в циклическом порядке изменяется каждая координата: xi(1) = xi(0) + Δxi Если приращение улучшает целевую функцию, то шаг считается "удачным" и дается приращение по другой координате. В противном случае"неудачным" и делается шаг в противоположном направлении: xi(1) = xi(0) - Δxi Если он также оказывается "неудачным", то значение xi(0) оставляют неизменным, и дается приращение по следующей координате и т.д., пока не будут изменены все координаты. На этом заканчивается исследующий поиск, найдена точка x(1). Если "неудачными" оказались шаги по всем направлениям производится уменьшение приращений Δxi (обычно в два раза) и исследующий поиск повторяется. Процедура заканчивается, когда величина приращений не станет меньше заданной точности. 2. Поиск по образцу осуществляется вдоль направления, соединяющего точки x(0) и x(1). Совершается один или несколько шагов до тех пор, пока шаги будут "удачными", т.е. приводят к улучшению целевой функции. Величина шагов обычно равна расстоянию между x(0) и x(1), т.е. x(2) = x(1) + (x(1)-x(0))= 2⋅x(1)-x(0). Если после последнего "удачного" шага условие окончания поиска не выполнено, т.е. Δxi > ε, то эту точку принимают в качестве новой базисной точки, и всю процедуру повторяют. Недостатком метода Хука – Дживса, как и метода Гаусса- Зейделя, является его плохая сходимость при оптимизации “овражных” функций, что на стадии исследующего поиска может привести к неоправданной остановке алгоритма.
7 4.2. Симплексные алгоритмы
4.2.1. Обычный симплекс- метод Симплексом в пространстве n переменных называют выпуклый многогранник, имеющий n+1 вершину. В пространстве двух переменных это треугольник, в пространстве трех переменных - тетраэдр. В обычном симплексметоде используется правильный симплекс (все ребра которого равны). Идея симплекс-метода, которая далее рассматривается на примере двумерного случая, заключается в следующем. Выбирается начальный симплекс с вершинами x(1)- x(2)- x(3). Размещение правильного симплекса в пространстве может быть осуществлено двумя путями (рис.1). 1. Одна вершина симплекса помещается в начало координат, а остальные вершины располагаются так, чтобы ребра, выходящие из первой вершины, образовывали одинаковые углы с соответствующими координатными осями. Тогда для двумерного случая координаты вершин будут равны: № x2 x(4) x2 x1 вершины x(3) x(1) x(2) x
(3)
0
0
3 +1 2 2 3 −1 2 2
3 −1 2 2 3 +1 2 2
xц.т.
x(1)
Q
x(2)
P
x1
Рис. 1 В общем случае координаты вершин симплекса определяются матрицей: № вершины x1 x2 x3 … xn 1 P= ( n + 1 + n − 1) ; 1 0 0 0 … 0 n 2 … 2 P Q Q Q 1 … 3 Q P Q Q Q= n +1 −1 . … … … … … … n 2 … n+1 Q Q Q P 2. Центр симплекса помещается в начало координат, а (n+1)-я вершина на ось xn. Остальные вершины располагаются симметрично относительно координатных осей. В двумерном случае координаты вершин будут равны: x2 x(3) № x1 x2 вершины 1 1 − − x(1) 2 3 2 1 1 − x(2) x1 2 3 2 R1 V1 x(1) x(2) 1 (3) x 0 3 Рис. 2
)
R2
V2
(
8 В общем случае координаты вершин симплекса определяются матрицей:
x2 x3 … № вершины x1 xn 1 Ri = ; 1 -R1 -R2 -R3 … -Rn 2 ⋅ i ( i + 1 ) 2 V1 -R2 -R3 … -Rn i -R3 3 0 … -Rn V2 Vi = . 4 0 0 V3 -Rn 2(i + 1) … … … … … … n+1 0 0 0 … Vn В первом и во втором случаях формулы получены для симплекса, длина ребра которого равна единице. Для произвольной длины каждую формулу нужно умножить на длину ребра. Если поиск осуществляется не из начала координат, а из начальной точки x(0), то к координатам вершин симплекса необходимо добавить координаты начальной точки- x1(0) и x2(0). В вершинах исходного симплекса рассчитывается значение целевой функции f(x(1)), f(x(2)), f(x(3)). Из этих трех значений выбирается "наихудшая" точка (при поиске минимума это та точка, в которой функция принимает максимальное значение). Допустим, что это точка x(1). Через центр тяжести противолежащей грани xц.т.=(x(2) + x(3))/2 строится новая вершина симплекса x(4), симметричная "наихудшей" вершине x(1) (рис.1). Координаты новой вершины x(4) рассчитываются по формуле:
x(4)= xц.т.+ (xц.т.- x(1))= x(2) + x(3) - x(1) В результате получается новый симплекс x(2) - x(3) - x(4), причем значение целевой функции в двух точках x(2) и x(3) уже известно. Поэтому вычисляется значение функции в точке x(4) и среди всех вершин ищется вершина с "наихудшим" значением. Эта вершина вновь отображается через середину противолежащей грани и вся процедура повторяется. Признаком окончания поиска является так называемая процедура зацикливания, когда вновь отображенная вершина оказывается "наихудшей". В этом случае, если заданная точность не достигается, (точность определяется длиной ребра симплекса) необходимо уменьшить размеры симплекса. Процедура повторяется до тех пор, пока длина ребра симплекса не станет меньше заданной точности. В общем n – мерном случае, если обозначить отображаемую вершину симплекса за x(1), остальные вершины - x(2) , x(3) , x(n+1), отображенную вершину за x(n+2) , координаты центра тяжести грани, относительно которой производится отображение, определяются по формуле: 1 n+1 x ц.т. = ∑ x (i ) , а отображаемой вершины n i =2
(
)
x (n+ 2 ) = x ц.т. + α x ц.т. − x (1) .
(4.1)
Здесь множитель α > 0 . При α =1 получаем зеркальное отображение x(1) и если исходный симплекс был правильным, то при зеркальном отображении и новый симплекс окажется правильным.
9
4.2.2. Метод Нельдера – Мида (деформируемых многогранников) Данный метод является существенно более эффективным, чем простейший алгоритм регулярных симплексов, за счет того, что симплекс меняет свою форму от цикла к циклу. Рабочий цикл алгоритма состоит из следующих операций. 1. Выбирают начальный (обычно регулярный) симплекс x(1) -x(2)-…- x(n+1) и, как и в предыдущем алгоритме, рассчитывают значения целевой функции в его вершинах. 2. Из найденных значений целевой функции ymax=f(xmax) и минимальное значение ymin=f(xmin).
ищут
максимальное
3. Отображают “наихудшую” вершину относительно центра тяжести xц.т противоположной грани с коэффициентом α =1 в формулах (4.1). 4. Анализируют результат отображения, сравнивая значение функции в отображенной вершине с ее значениями в вершинах предыдущего симплекса. a) Если при этом значение функции в новой вершине оказалось меньше, чем наилучшее значение предыдущего симплекса, т.е. y(n+2) < ymin , то проводят растяжение симплекса, увеличивая в β>1 (обычно β =2) раз расстояние от отраженной вершины до центра тяжести xц.т x (n+3) = β x ( n+ 2) + (1 − β ) x ц.т. . (4.2) Если после операции растяжения значение функции в новой точке уменьшается, т.е. y(n+3) < y(n+2), то эта вершина принимается за вершину нового симплекса, если же увеличивается, то в качестве новой вершины берется точка, полученная после отображения y(n+2). b) Когда значение функции в отображенной вершине меньше, чем в наихудшей вершине предыдущего симплекса, но больше, чем во всех остальных, то производят операцию сжатия c коэффициентом β < 1 (обычно β = 0,5) в формуле (4.2). c) Если значение функции в отображенной точке больше, чем в наихудшей вершине предыдущего симплекса, т.е. y(n+2) > ymax , то производят редукцию (уменьшение размеров симплекса обычно в два раза), т.е. координаты всех вершин симплекса сдвигаются на половину расстояния до наилучшей точки x (k ) = x min + 0,5(x(k) - x min ) . В качестве критерия остановки авторы алгоритма рекомендуют среднеквадратичную величину разности значений функции в вершинах симплекса и
[( )
]
2
1 n+1 f x ( k ) − f (x ц.т. ) ≤ ε , среднего ее значения, т.е. ∑ n + 1 i =1 где ε - заданная точность.
10 4.3. Градиентные методы
Суть всех градиентных методов заключается в использовании вектора градиента для определения направления движения к оптимуму. Вектор гради⎛ ∂f ∂f ∂f ⎞ ⎟⎟ обладает несколькими свойствами, кото∇f (x) = ⎜⎜ , ,K , ента ∂ ∂ ∂ x x x ⎝ 1 2 n ⎠ рые и обуславливают его эффективное применение при поиске экстремальных значений функции многих переменных. Выделим некоторые из них. • Вектор градиента всегда направлен в сторону наиболее быстрого возрастания функции в данной точке. Поэтому очевидно, что при поиске минимальных значений функции необходимо двигаться в противоположную сторону. Такое направление движения называют антиградиентом (-∇f(x) ) или отрицательным градиентом и оно характеризует направление наиболее быстрого убывания функции. • Градиент всегда ортогонален линии равного уровня, проходящей через данную точку x(k). • Согласно необходимому условию существования экстремума функции многих переменных в точке экстремума градиент функции обращается в ноль. Это свойство часто используется для проверки условия окончания поиска в градиентных методах, т.е. ∇f (x (k ) ) ≤ ε . Общий алгоритм всех градиентных методов заключается в построении из некоторой начальной точки x(0) последовательности приближений (рассматриваем задачу минимизации): (k=0, 1, …), x(k+1)= x(k)-λ(k)S(k) (k) где S - единичный вектор в направлении градиента целевой функции f(x) ∇f ( x ( k ) ) ∇f ( x ( k ) ) ; S (k ) = в точке x(k): = (k ) 2 2 2 ∇f ( x ) ⎛ ∂f ⎞ ⎛ ∂f ⎞ ⎛ ∂f ⎞ ⎟⎟ ⎜⎜ ⎟⎟ + ⎜⎜ ⎟⎟ + L + ⎜⎜ x x x ∂ ∂ ∂ ⎝ 1⎠ ⎝ 2⎠ ⎝ n⎠
λ(k) – величина шага в направлении градиента. 4.3.1. Метод крутого восхождения Бокса – Уилсона Метод крутого восхождения Бокса – Уилсона представляет собой пошаговую процедуру движения по поверхности отклика, в которой для оценки составляющих градиента ∇f(x) = [b0(k), b1(k), b2(k), …, bn(k)] используется линейное уравнение регрессии f(x)=b0(k)+b1(k)x1+b2(k)x2+...+bn(k)xn, полученное в ре(k) зультате планирования эксперимента в окрестности точки x . Затем совершается движение по поверхности отклика в направлении градиента с величиной шага, пропорциональной произведению коэффициента bj(k) на интервал варьирования ∆xj. Движение по поверхности осуществляется до тех пор, пока параметр оптимизации не начнет увеличиваться (в случае поиска минимума). В полученной точке вновь производится планирование эксперимента
11 и оценка нового направления движения. Процедура поиска продолжается до тех пор, пока величина вектора градиента не станет меньше заданной точности. Пусть мы имеем функцию f(x1, x2). Необходимо найти минимум функции методом крутого восхождения. Алгоритм поиска следующий. Выбираем начальную точку поиска x(0) (x1(0), x2(0)). В окрестности точки проводим полный факторный эксперимент № X1 X2 y 2 ПФЭ 2 . Матрица планирования в кодиро1 -1 -1 y1 ванных переменных для ПФЭ 22 имеет вид: 2 y2 +1 -1 3 y3 -1 +1 Переход от кодированных переy4 4 +1 +1 менных к натуральным осуществляется по j = 1, 2, формуле: xj = xj(0)+ Xj·∆xj, (0) где xj - опорный уровень; Xj - кодированное значение переменной; ∆xj - интервал варьирования. Опорному уровню соответствуют координаты начальной точки поиска, кодированные значения переменных приве№ x1 x2 y дены в матрице ПФЭ 22. Интервал варьиро(0) (0) 1 y1 x1 -1 x1 -1 вания ∆xj для расчетов можно принять рав(0) (0) 2 x1 +1 x1 -1 y2 ным 1. C учетом этого матрица ПФЭ 22 в на(0) (0) x1 -1 x1 +1 y3 3 туральных переменных будет иметь вид: (0) (0) x1 +1 x1 +1 y4 4 Значения y1, y2, y3, y4 определяем, рассчитывая значение функции y=f(x1, x2) для полученных четырех точек. Метод ПФЭ позволяет получить линейную зависимость y от x1 и x2 : y= b0+ b1x1+ b2x2 . Необходимо оценить значения коэффициентов уравнения b1, b2 b2= (-y1-y2+y3+y4)/4 . b1= (-y1+y2-y3+y4)/4 ; Определив значение коэффициентов регрессии, начинаем движение по поверхности отклика в направлении вектора градиента [-b1,-b2]. Знак (-) указывает на поиск минимума. Расчет ведем по формуле: xj(k)= xj(0) - k·a·bj·∆xj , где: xj(k) - значение j-го фактора на k-том шаге движения в направлении градиента; a - коэффициент пропорциональности (выбираем с учетом предполагаемого вида поверхности отклика). Движение по поверхности отклика осуществляется до тех пор, пока значение функции не начнет увеличиваться. В этом случае за исходную точку берется точка, в которой значение функции будет минимальным. В этой точке вновь реализуется ПФЭ 22, рассчитываются коэффициенты регрессии и вновь осуществляется движение по поверхности отклика. Процедура повторяется до тех пор, пока длина вектора градиента ∇f (x) = b12 + b22 не станет меньше заданного ε.
12 5. ПРИМЕНЕНИЕ МЕТОДОВ ОПТИМИЗАЦИИ К РЕШЕНИЮ НЕЛИНЕЙНЫХ УРАВНЕНИЙ И СИСТЕМ
Пусть требуется найти решение системы ⎧ f1 ( x1 , x2 , K , xn ) = 0 ⎪ f (x , x , K , x ) = 0 ⎪ n 2 1 2 ⎨ LLLLL ⎪ ⎪⎩ f n ( x1 , x2 , K , xn ) = 0 ⎛ f1 ( x ) ⎞ ⎛ x1 ⎞ ⎜ f ( x) ⎟ ⎜x ⎟ 2 которая при x=⎜ ⎟ , f (x ) = ⎜ 2 ⎟ L ⎜L ⎟ ⎜ ⎟ ⎜ f ( x) ⎟ ⎜x ⎟ ⎝ n ⎠ ⎝ n⎠ записывается в векторной форме как f(x)=0.
Введем неотрицательную функцию Φ (x) = ∑ ( f i ( x1 , x1 , K , xn ) ) . n
2
i =1
Тогда точка минимума x* функции Φ(x) является решением данной системы уравнений, и наоборот, решение системы реализует минимум функции Φ(x). Действительно, пусть x*- решение системы уравнений. Тогда Φ(x*)=0 , n т.е. x* является точкой локального минимума функции Φ(x) (Φ(x) ≥ 0 ∀x ∈ R ). Таким образом, можно получить решение системы нелинейных уравнений, решая задачу об определении локального минимума функции Φ(x) , т.е. задачу n Φ(x) → min , x∈R . Пусть дана система уравнений ⎧ x12 + x22 − 1 = 0 . ⎨ ⎩ x2 − x1 sin x1 = 0 Решение этой системы можно найти, отыскивая точку локального минимума целевой функции: Φ(x) = f12(x1, x2) + f22(x1, x2) = (x12 + x22 – 1)2 +( x2 - x1sin x1)2 .
13 6. ТРЕБОВАНИЯ К ВЫПОЛНЕНИЮ РАБОТЫ 6.1. Порядок выполнения лабораторных работ
1. Найти решение задачи безусловной оптимизации для заданной целевой функции (прил. 2, 3), используя теоремы о необходимых и достаточных условиях экстремума. Провести анализ найденного решения и установить, на каком множестве D оно является глобальным. 2. Провести графический анализ функции, отобразив ее в виде совокупности линий уровня. 3. Найти приближенное решение задачи безусловной минимизации f(x) → min, x ⊂ D для заданной начальной точки x(0) с заданной точностью ε : − методом Гаусса-Зейделя; − симплекс-методом; − методом крутого восхождения Бокса - Уилсона. Построить траектории поиска, совместив их в одних осях координат с линиями уровня. 4. Сделать выводы об эффективности методов, сравнивая количество расчетов функции для достижения заданной точности. 5. Найти минимум заданной функции с использованием надстройки Excel “Поиск решения”. 6. Найти решение заданной системы двух уравнений (прил. 5) с точностью ε = 0,01 с использованием надстройки Excel “Поиск решения”. 6.2. Содержание курсовой работы
1. Введение (применение методов оптимизации в решении инженерных задач на персональных компьютерах). 2. Постановка задачи, аналитический и графический анализ заданной функции (прил. 4), математическое описание и вывод основных соотношений реализуемых методов: − метода Хука и Дживса; − метода Нельдера – Мида; − градиентного метода с адаптацией шага. 3. Блок- схемы алгоритмов методов. 4. Реализация методов на компьютере. Данный пункт можно выполнить с использованием любой системы программирования или табличного процессора Excel. Привести распечатку программы реализации задачи. 5. Пояснения к программе (описание модулей, процедур, функций, формальных параметров, комментарии к алгоритму и т.п.). 6. Исследование работоспособности методов (точность, число итераций и др. характеристики) на нескольких различных примерах с распечатками результатов в текстовом и графическом виде. 7. Заключение (основные выводы по работе). 8. Список использованной литературы.
14 ПРИЛОЖЕНИЕ 1 ПРИМЕР ВЫПОЛНЕНИЯ РАБОТЫ
Найти минимум функции f(x1,x2) = (x1 + x2)2 + (x2 - 1)2 с точностью ε = 0,2 для начальной точки с координатами x(0)= (5, 6). 1. Аналитический анализ функции Находим частные производные первого порядка и приравниваем их нулю.
∂f = 2( x1 + x2 ) = 0 ; ∂x1 ∂f = 2( x1 + x2 ) + 2( x2 − 1) = 0 . ∂x1 Решаем систему уравнений: ⎧ x1 + x2 = 0 ⎧ x1 = − x2 ⎨2 x + 4 x - 2 = 0 ; ⎨− 2 x + 4 x − 2 = 0 ⎩ 1 ⎩ 2 2 2 * * и получаем x1 =-1 ; x2 = 1 . Находим частные производные второго порядка: 2 ∂ f =2= A ∂x12 ⎡ ∂2 f ∂2 f ⎤ ⎢ ⎥ ∂x1∂x2 ⎥ ⎡ A C ⎤ ⎡2 2⎤ ∂2 f ∂x12 ⎢ = =4=B = и матрицу Гессе Η = . ∂ 2 f ⎥ ⎢⎣C B ⎥⎦ ⎢⎣2 4⎥⎦ ⎢ ∂2 f ∂x22 ⎢ ∂x ∂x ∂x22 ⎥⎦ ⎣ 2 1 ∂2 f =2=C ∂x1∂x2 Поскольку матрица Гессе (A·B-C2 = 8 -4 = 4 >0 и A = 2 >0), точка x*= (-1, 1) является точкой минимума. Значение функции в этой точке f(-1; 1) = (-1+1)2+ (1-1)2= 0. Матрица Гессе положительно определена независимо от координат точки x и, следовательно, рассматриваемая функция является выпуклой на множестве R2, а единственная стационарная точка x*- глобальным минимумом f(x1,x2). 2. Графический анализ функции Для построения линий уровня функции F = f(x1, x2) = (x1+x2)2+(x2-1)2 выбираем следующие значения функции: 25, 50, 100, 200. Выражаем переменную x1 через x2 и функцию F
x1 = ± F − ( x2 − 1) 2 − x2 .
15 Результаты расчетов сводим в таблицу f(x1, x2)
25
50
100
x2
+x1
- x1
1 -1 3 -3 5 1 -1 3 -3 5 -5 6 0 2 -2 4 -4 6 -6 8 -8 10
4 5,58 1,58 6,00 -2,00 6,07 7,78 3,78 8,83 0,88 8,74 3,26 9,95 7,95 11,54 5,54 12,66 2,66 13,14 -1,86 12,36 -6,64
-6 -3,58 -7,58 0,00 -8,00 -8,07 -5,78 -9,78 -2,88 -10,8 2,26 9,74 -9,95 -11,95 -7,54 -13,54 -4,66 -14,66 -1,14 -15,14 4,64 -14,36
f(x1, x2)
x2
+x1
- x1
200
0 2 -2 4 -4 6 -6 8 -8 10 -10 12 -12 14
14,11 12,11 15,82 9,82 17,23 7,23 18,29 4,29 18,91 0,91 18,89 -4,11 17,56 7,00
-14,11 16,11 -11,82 -17,82 -9,23 -19,23 -6,29 -20,89 -2,91 -20,91 2,11 -20,89 7,44 -11,56
Полученные линии уровня приведены на рис.3
200 100 50 25
Рис.3
16
3. Поиск экстремума методом Гаусса - Зейделя Определяем значение функции в начальной точке x(0)= (5, 6) f(x(0))= (5+6)2+(6-1)2= 146. ∆x2=2 . Выбираем шаг по каждой координате: ∆x1=2 ; Осуществляем одномерный поиск по координате x1 при x2 =6 . x1(0)1 = 5+2 = 7 ; f(x(0)1) = (7+6)2+(6-1)2= 194 - шаг неудачный и движемся в обратном направлении; x1(0)1 = 5-2 = 3 ; f(x(0)1) = (3+6)2+(6-1)2= 106 - шаг удачный и продолжаем движение в том же направлении ; x(0)2 = (1; 6) ; f(x(0)2) = (1+6)2+(6-1)2= 106 ; x(0)3 = (-1; 6); f(x(0)3) = (-1+6)2+(6-1)2= 50 ; x(0)4 = (-3; 6); f(x(0)4) = (-3+6)2+(6-1)2= 34 ; x(0)5 = (-5; 6); f(x(0)5) = (-5+6)2+(6-1)2= 26 ; x(0)6 = (-7; 6); f(x(0)6) = (-7+6)2+(6-1)2= 26; x(0)7 = (-9; 6); f(x(0)7) = (-9+6)2+(6-1)2= 34 – шаг неудачный, возвращаемся в точку x(0)6 и осуществляем одномерный поиск по координате x2. x2(0)8 = 6+2 = 8 ; f(x(0)8) = (-7+8)2+ (8-1)2= 50 - шаг неудачный, меняем шаг на обратный; x2(0)9 = 6-2 = 4 ; f(x(0)9) = (-7+4)2+(4-1)2=18 - шаг удачный. Получили точку x(1)= x(0)9 с координатами (-7; 4) и переходим к следующей итерации. Осуществляем одномерный поиск по координате x1 . x(1)1 = (-5; 4); f(x(1)1) = (-5+4)2+(4-1)2= 10 ; x(1)2 = (-3; 4); f(x(1)2) = (-3+4)2+(4-1)2= 10 ; x(1)3 = (-1; 4); f(x(1)3) = (-1+4)2+(4-1)2= 18 - шаг неудачный, возвращаемся в точку x(1)2 и осуществляем одномерный поиск по координате x2. x(1)4 = (-3; 6); f(x(1)4) = (-3+6)2+(6-1)2= 34 –неудача; x(1)5 = (-3; 2); f(x(1)5) = (-3+2)2+(2-1)2= 2 –удача; x(1)6 = (-3; 0); f(x(1)6) = (-3+0)2+(0-1)2= 10 –неудача и переходим к следующей итерации. Базовая точка x(2) = (-3, 2). Осуществляем одномерный поиск по координате x1 . x(2)1 = (-1; 2); f(x(2)1) = 2 – удача; продолжаем по x2; x(2)2 = (-1; 4); f(x(2)2) = 18 – неудача; x(2)3 = (-1; 0); f(x(2)3) = 2 – удача, переходим к следующей итерации. Базовая точка x(3) = (-1, 0). x(3)1 = (-3; 0); f(x(3)1) = 10 – неудача;
17 (3)2
x = (1; 0); x(3)3 = (1; 2); x(3)4 = (1;-2); итерации.
(3)2
f(x ) = 2 – удача, продолжаем по x2; f(x(3)3) = 10 – неудача; f(x(3)4) = 10 – неудача, переходим к следующей
Базовая точка x(4) = (1, 0). x(4)1 = (-3; 0); f(x(4)1) = 10 – неудача; x(4)2 = (3; 0); f(x(4)2) = 10 – неудача, продолжаем по x2; x(4)3 = (1; 2); f(x(4)3) = 10 – неудача; x(4)4 = (1;-2); f(x(4)4) = 10 – неудача. Поскольку в данной точке одномерный поиск не приводит к успеху ни по одной координате проверяем условие остановки алгоритма ∆xi=2> ε=0,2, уменьшаем шаг по каждой координате в два раза: ∆x1=1 ; ∆x2=1 и переходим к следующей итерации. Базовая точка x(5) = (1, 0). x(5)1 = (2; 0); f(x(5)1) = 5 – неудача; x(5)2 = (0; 0); f(x(5)2) = 1 – удача, продолжаем по x2; x(5)3 = (0; 1); f(x(5)3) = 1 – удача; переходим к следующей итерации. Базовая точка x(6) = (0, 1). x(6)1 = (1; 1); f(x(6)1) = 4 – неудача; x(6)2 = (-1; 1); f(x(6)2) = 0 – удача, продолжаем по x2; x(6)3 = (-1; 2); f(x(6)3) = 2 – неудача; x(6)4 = (-1; 0); f(x(6)4) = 2– неудача; переходим к следующей итерации. Базовая точка x(7) = (-1, 1). Все последующие шаги из данной точки неудачны, поэтому сокращаем шаг в два раза до 0,5 и поскольку дальнейшие шаги также не200 удачны (произошло случайное попадание в точку экстремума) сокращаем шаг еще в два раза до 0,125. Последующие шаги также не улучшают целевую 100 функцию и, поскольку условие 50 20 остановки алгоритма ∆xi=0,125 5 < ε=0,2 выполняется, прекращаем вычисления. Таким образом, за точку минимума принимаем значение x*≈x(7) =(-1; 1). Траектория поиска показана на рис. 4. Рис.4
18
4. Поиск экстремума методом Хука и Дживса Определяем значение функции в начальной точке f(x(0))= (5+6)2+(6-1)2= 146. Выбираем приращения: ∆x2=2 ∆x1=2 ; Осуществляем исследующий поиск по координате x1 x1(0)1 = 5+2 = 7 ; f(x(0)1) = (7+6)2+(6-1)2= 194 - шаг неудачный. x1(0)2 = 5-2 = 3 ; f(x(0)2) = (3+6)2+(6-1)2= 106 - шаг удачный. Осуществляем исследующий поиск по координате x2. x2(0)3 = 6+2 = 8 ; f(x(0)3) = (3+8)2+ (8-1)2= 170 - шаг неудачный. x2(0)4 = 6-2 = 4 ; f(x(0)4) = (3+4)2+(4-1)2=58 - шаг удачный. Получили точку x(1) с координатами (3; 4). Осуществляем пошаговый поиск по образцу: f(x(2))= (1+2)2+(2-1)2=10. Точка x(2) имеет координаты (1; 2); Точка x(3) имеет координаты (-1; 0); f(x(3)) =(-1+0)2+(0-1)2=2. Точка x(4) имеет координаты (-3,-2); f(x(4)) =(-3-2)2+(-2-1)2=34 - шаг неудачный. Переходим ко второй итерации. Координаты базисной точки x(3) = (-1; 0). Осуществляем исследующий поиск по координате x1: x(3)1 = (1; 0); f(x(3)1) = (1+0)2+(0-1)2=2 - шаг удачный. Осуществляем исследующий поиск по координате x2. x(3)2 = (1; 2); f(x(3)2) = (1+2)2+(2-1)2=10 - шаг неудачный. x(3)3 = (1; -2); f(x(3)3) = (1-(-2))2+(-2-1)2=10 - шаг неудачный. Получили точку x(4) с координатами (1; 0). Осуществляем пошаговый поиск по образцу: Точка x(5) имеет координаты (3; 0); f(x(5))= (3+0)2+(0-1)2=10 - шаг неудачный. Поскольку неудачными оказались шаги по всем направлениям, проверяем условие окончания алгоритма ∆xi=2> ε=0,2, уменьшаем приращения в два раза: ∆x1=1 ; ∆x2=1 и переходим ко второй итерации. Координаты базисной точки x(4) = (1; 0). Осуществляем исследующий поиск по координате x1: x(4)1 = (2; 0); f(x(4)1) = (2+0)2+(0-1)2=5 - шаг неудачный. x(4)2 = (0; 0); f(x(4)2) = (0+0)2+(0-1)2=1 - шаг удачный. Осуществляем исследующий поиск по координате x2. x(4)3 = (0; 1); f(x(4)3) = (0+1)2+(1-1)2=1 - шаг удачный.
19 (5)
Получили точку x с координатами (0; 1);
f(x(5)) =1.
Осуществляем пошаговый поиск по образцу. Точка x(6) имеет координаты (-1; 2); f(x(3))= (-1+2)2+(2-1)2=2. Шаг неудачный, поэтому возвращаемся к точке x(5) и повторяем исследующий поиск. Координаты базисной точки x(5) = (0; 1); f(x(5)) =1. Осуществляем исследующий поиск по координате x1: x(5)1 = (1; 1); f(x(5)1) = (1+1)2+(1-1)2=4 - шаг неудачный. x(5)2 = (-1; 1); f(x(5)2) = (-1+1)2+(1-1)2=0 - шаг удачный. Осуществляем исследующий поиск по координате x2. x(5)3 = (-1; 2); f(x(5)3) = (-1+2)2+(2-1)2=2 - шаг неудачный. x(5)4 = (-1; 0); f(x(5)4) = (-1+0)2+(0-1)2=2 - шаг неудачный. f(x(6)) =0. Получили точку x(6) с координатами (-1; 1); Последующие неудачные шаги объясняются случайным попаданием в точку минимума. Поскольку пошаговый поиск по образцу не приносит положительных результатов, а также неудачными оказываются шаги по всем направлениям, проверяем условие окончания алгоритма ∆xi=1> ε=0,2, уменьшаем приращения в два раза: ∆x1=0,5 ; ∆x2=0,5 и переходим к следующей итерации итерации. Координаты базисной точки x(6) = (-1; 1); f(x(6)) =0. Исследующий поиск в окрестности базисной точки не приносит улучшения функции, поэтому уменьшаем шаг до 0,25 и 100 далее до 0,125, что также не приводит к положительным 50 результатам. Проверяем 20 условие окончания поиска ∆xi=0,125 < ε=0,2 и закан5 чиваем вычисления. Таким образом, за точку минимума принимаем значение x*≈ x(6) = (-1; 1). Траектория поиска приведена на рис.5.
Рис. 5
20 5. Поиск экстремума симплекс -методом
Начальную точку с координатами x(0) = (5; 6) берем за центр тяжести треугольника. Вокруг начальной точки строим треугольник -симплекс. Координаты вершин исходного симплекса рассчитываются по формулам: x(1) = (x1(0)-a/2 ; x2(0) - 0,29·a); x(2) = (x1(0) +a/2 ; x2(0) - 0,29·a); x(3) = (x1(0) ; x2(0) +0,58·a), где a- длина ребра симплекса, которую выбираем произвольно. Пусть a=2, тогда координаты вершин исходного симплекса и соответствующее им значение целевой функции будут равны: № точки x1 x2 y (1) 4 5,42 108,27 x (2) x 6 5,42 149,95 (3) x 5 7,16 185,81 Из трех значений функции выбирается "наихудшая" точка: при поиске минимума эта та точка, в которой функция принимает максимальное значение. В нашем случае это точка с координатами x(3) = (5; 7,16). Через центр противолежащей грани строится новая вершина симплекса, симметричная "наихудшей" вершине. Координаты новой вершины рассчитываем по формулам: ; x2(4)= x2(1)+ x2(2)- x2(3). x1(4)= x1(1)+ x1(2)- x1(3) В результате получился новый симплекс с вершинами: x2 № точки x1 y (1) 4 5,42 108,27 x (2) x 6 5,42 149,95 (4) x 5 3,68 82,52 Теперь " наихудшей" точкой будет вершина симплекса с координатами x = (6; 5,42). Дальнейшие расчеты приведены в таблице. № точки x1 x2 y (1) x 4 5,42 108,27 (5) x 3 3,68 51,8 (4) x 5 3,68 82,52 (6) x 4 1,94 36,16 (7) x 2 1,94 16,41 (8) x 3 0,2 10,88 (9) x 1 0,2 2,08 (10) x 2 -1,54 6,66 (11) x 0 -1,54 8,82 (2)
Координаты последнего симплекса приведены в таблице: Таким образом, вершина x2 № точки x1 (8) (11) (9) x отображенная в x вновь 1 0,2 x (10) оказалась "наихудшей". Этот 2 -1,54 x (11) случай называется процедурой x 0 -1,54
y 2,08 6,66 8,82
21 "зацикливания". Проверяем условие окончания алгоритма, сравнивая длину ребра симплекса с заданной точностью (5 − 1) 2 + (−3,28 − 3,68) 2 = 2 > 0,2 . Для продолжения поиска необходимо произвести редукцию последнего симплекса. Выбирается вершина, в которой функция принимает минимальное значе(9) ние x = (1; 0,2). Две другие вершины будут расположены на серединах прилежащих к ней граней. x2 x1 y Таким образом, получился № точки (9) 2,08 0,2 1 x новый симплекс с длиной ребра, (12) 3,48 -0,67 1,5 x равной 1, и координатами (13) 2,82 -0,67 0,5 x вершин: Дальнейшие расчеты приведены в таблице: № точки x1 x2 y x2 № точки x1 y (22) (14) x -0,50 0,635 0,15 x 0 0,2 0,68 (23) (15) x -0,375 0,8525 0,25 x 0,5 1,07 2,46 (24) зацикливание, уменьшаем ребро до 0,5 x -0,625 0,8525 0,074 (14) (25) 0 x 0,2 0,68 x -0,75 0,635 0,146 (16) (26) x 0,5 0,2 1,13 x -0,875 0,8525 0,022 (17) (27) x 0,25 0,635 0,92 x -0,75 1,07 0.1073 (18) x -0,25 0,635 0,28 зацикливание, уменьшаем ребро до 0,125 (19) x -0,5 0,2 0,73 -0,875 0,8525 0,022 x(26) (28) зацикливание, уменьшаем ребро до 0,25 -0,75 0,8525 0,032 x (29) -0,25 0,635 0,28 x(18) x -0,8125 0,9612 0,024 (30) -0,375 0,4175 0,34 x(20) x -0,9375 0,9612 0,0021 (31) x(21) -0,125 0,4175 0,42 x -1 0,8525 0,0435 Поскольку в последней точке произошло зацикливание, а длина ребра симплекса 0,125 < ε=0,2, условие окончания алгоритма выполняется. Таким образом, за точку минимума принимаем вершину симплекса, соответствующую минимуму целевой функции после его зацикливания, т.е. x*≈ x(30) = (-0,9375; 0,9612). Траектория поиска показана на рис.6.
100 50 20 5
Рис.6
200
22 6. Поиск экстремума методом Нельдера - Мида
В качестве начального № точки x2 x1 y (1) возьмем такой же симплекс, что x 4 5,42 108,27 (2) и в предыдущем примере. x 6 5,42 149,95 (3) “Наихудшей” вершиной x 5 7,16 185,81 является x(3) = (5; 7,16), а “наилучшей” - x(1) = (4; 5,42). После отражения имеем новый симплекс с вершинами: № точки x1 x2 y Поскольку отраженная (1) 108,27 5,42 4 x точка x(4) является “наилучшей”, (2) 149,95 5,42 6 x производим растяжение (4) 3,68 82,52 5 x симплекса. Координаты новой вершины рассчитываем по формулам: x1(5)=2 x1(4) – (x1(1) + x1(2))/2= 5 ; x2(5)= 2 x2(4) - (x2(1)+ x2(2))/2=1,94 . Теперь " наихудшей" точкой будет вершина симплекса с координатами (2) x = (6; 5,42). Дальнейшие расчеты приведены в таблице. Производим растяжение от вершины x(6) № точки x1 x2 y x(7) 1,5 0,2 3,53 x(1) 4 5,42 108,27 (2) Производим отражение вершины x(1) x 6 5,42 149,95 x(5) 5 1,94 49,05 x(8) 2,5 -3,28 18,92 Производим отражение вершины x(2)
x
(6)
3
1,94
Производим отражение вершины x(5)
25,28
x(9)
-1
-5,02
72,48
Координаты последнего симплекса приведены в таблице: Таким образом, вершина x(9) № точки x1 x2 y (7) оказалась "наихудшей". Для 1,5 0,2 3,53 x (8) продолжения поиска необx 2,5 -3,28 18,92 (9) ходимо произвести редукцию x -1 -5,02 72,48 последнего симплекса. Выбирается вершина, в которой функция принимает минимальное значе(7) ние x = (1,5; 0,2). Две другие x1 x2 y вершины будут расположены № точки (7) x 1,5 0,2 3,53 на серединах прилежащих к ней (10) x 2 -1,54 6,66 граней. (11) x 0,25 -2,41 16,29 Дальнейшие расчеты приведены в таблице:
№ точки
x1
x2
y
x(12)
3,25
1,07
18,66
x(7) x(13) x(14)
1,5 1,75 2,375
0,2 -0,67 0,635
3,53 3,96 9,19
x(15)
0,875
-1,105
4,48
Производим отражение вершины x(11)
Производим редукцию относительно x(7)
Производим отражение вершины x(14)
23 Последняя точка является “лучшей”, по сравнению с отраженной, но тем не менее, является “худшей” среди оставшихся, поэтому производим операцию сжатия. Координаты новой вершины рассчитываем по формулам: x1(16)= 0,5x1(15) + (x1(7)+ x1(13))/4 = 1,25 ; x2(16)=0,5x2(15) + (x2(7)+ x2(13))/4 =-0,67. Дальнейшие расчеты сведем в таблицу: Отражение вершины x(21) x2 № точки x1 y x(23) -0,88 2,375 4,14 x(7) 1,5 0,2 3,53 (22) (13) Редукция относительно x 1,75 -0,67 3,96 x (22) (16) x -1,125 1,505 0,4 x 1,25 -0,67 3,13 (24) (13) Производим отражение вершины x x -1 1,94 1,767 (25) (17) x -0,688 1,29 0,443 x 1 0,2 2,08 Растяжение от вершины x(17)
x(18) x
(19)
0,625
0,635
(7)
1,72
x(26)
1,54
x
(27)
x
(28)
Отражение вершины x
0,375
-0,235
Растяжение ничего не дает, поэтому производим отражение вершины x(16)
x(20) № точки
-0,25 x1
1,07 x2
x(21)
-0,50
0,2
x
(22)
Отражение вершины x(19) (18)
0,68 y 0,73
Отражение вершины x
-1,125
1,505
0,40
Отражение вершины x(24)
-0,81
0,8525
(25)
0,023
Отражение вершины x
-1,25
1,07
(22)
0,037
Отражение вершины x
-0,938
0,418
0,61
(26)
Редукция относительно x
(26)
x x(29) x(30) x(31)
-0,81 -0,875 -1,03
0,8525 0,635 0,96
0,023 0,19 0,0064
-0,969
1,18
0,076
Отражение вершины x(29)
В последней точке происходит выполнение условия окончания алгоритма, т.е. среднеквадратичная величина разности значений функции в вершинах симплекса и среднего ее 100 значения составляет 0,015< ε=0,2. 50 Таким образом, за точку минимума прини20 маем вершину симплекса, соответствующую мини5 муму целевой функции, т.е. x*≈ x(30) = (-1,03; 0,96). Траектория поиска показана на рис.7.
Рис.7
24 7. Поиск экстремума методом крутого восхождения
Интервал варьирования для обeих переменных выбираем равным 1. Реализуем ПФЭ 22 в точке x(0) = (5; 6), для чего рассчитываем натуральные условия опытов. Для первой переменной -1 будет соответствовать значение x1= 5-1·1= 4 ; +1 будет соответствовать значение x1= 5+1·1= 6. Для второй переменной -1 будет соответствовать значение x2= 6-1·1= 5 ; +1 будет соответствовать значение x2= 6+1·1= 7. Таким образом, матрица планирования будет иметь вид: x2 № x1 y 1 5 (-1) 97 4 (-1) 2 6 (+1) 5 (-1) 137 4 (-1) 7 (+1) 3 157 6 (+1) 7 (+1) 4 205 Исследуемую функцию аппроксимируем уравнением y= b0+ b1x1+ b2x2 . Рассчитываем коэффициенты уравнения регрессии: b1= (-97+137-157+205)/4= 22 ; b2= (-97-137+157+205)/4= 32 . Рассчитываем величину шага для x1 и x2, принимая коэффициент пропорциональности a=0,1 . hx2= 0,1·1·32= 3,2 . hx1= 0,1·1·22= 2,2 ; Начинаем движение по поверхности отклика в направлении градиента из начальной точки (5; 6) с рассчитанным шагом. Точки рассчитываются следующим образом: где k- номер шага. x1(k)= 5- k·Δx1 ; x2(k)= 6- k·Δx2, В каждой новой точке рассчитываем значение функции. x2 № точки x1 y (0) x 5 6 146,00 (1) x 2,8 2,8 34,6 (2) x 0,6 -0,4 2 (3) x -1,6 -3,6 48,2 На третьем шаге значение функции увеличивается, следовательно, в данном направлении минимальной точкой будет точка с координатами [0,6; -0,4]. Так как заданная точность не достигнута, вновь реализуем ПФЭ 22. Центром плана будет являться точка x(2) =(0,6; -0,4). № x1 x2 y 1 -1,4 (-1) 9 -0,4 (-1) 2 1,6 (+1) -1,4 (-1) 5,8 -0,4 (-1) -0,6 (+1) 3 0,2 1,6 (+1) -0,6 (+1) 4 5 Рассчитываем коэффициенты регрессии: b1=0,4 ; b2=-2,4 . Рассчитываем значение шага для x1 и x2. hx1= 0,1·1 (0,4)= 0,04 ; hx2= 0,1·1·(-2,4)= -0,24 . Начинаем движение по поверхности отклика.
25 x2 № точки x1 y (2) 0,60 x -0,40 2 (3) x 0,56 -0,16 1,51 (4) x 0,52 0,08 1,21 (5) x 0,48 0,32 1,10 (6) x 0,44 0,56 1,19 (5) В точке x =(0,48; 0,32) значение функции минимально, принимаем эту точку за исходную и вновь реализуем ПФЭ 22. № x1 x2 y 1 4,26 -0,52 (-1) -0,68 (-1) 2 1,48 (+1) -0,68 (-1) 3,46 -0,52 (-1) -1,32 (+1) 3 0,74 1,48 (+1) -1,32 (+1) 4 7,94 Рассчитываем коэффициенты регрессии: b1=1,6 ; b2=0,24 . Рассчитываем значение шага для x1 и x2. hx1= 0,1·1 (1,6)= 0,16 ; hx2= 0,1·1·(0,24)= 0,024 . Начинаем движение по поверхности отклика. Результаты расчета приведены в таблице: x2 № x1 y (5) x 0,48 0,32 1,10 (6) 0,32 x 0,296 0,87 (7) x 0,16 0,272 0,72 (8) x 0 0,248 0,63 (9) x -0,16 0,224 0,61 (10) x -0,32 0,2 0,65 В точке x(9) =(0,48; 0,32) значение функции минимально, принимаем эту точку за исходную и вновь 100 реализуем ПФЭ 22. Процедуру повторяем 50 до тех пор, пока величина вектора градиента b12 + b22 не станет меньше заданной точности. Траектория поиска показана на рис.8.
20 5
Рис.8
26 ПРИЛОЖЕНИЕ 2 ВАРИАНТЫ ИНДИВИДУАЛЬНЫХ ЗАДАНИЙ ДЛЯ РУЧНОГО РАСЧЕТА
№ варианта 1 2
Вид целевой функции f(x1,x2)
Начальная точка Точность x1(0)
x2(0)
ε
(x1 - 4x2)2 + (x2 + 5)2
10
-5
0,15
(x1 + x2)2 + (x2 + 4)2
9
5
0,3
4
10
0,25
0
8
0,15
8
10
0,35
2
2
3
(x1 - 3x2) + (x2 - 2)
4
2
(x1 - 3x2) + (x2 + 1)
2
5
2
(x1 + 5x2) + (x2 - 1)
2
6 7
(x1 + 2x2)2 + (x2 - 3)2
0
10
0,18
(x1 - 2x2)2 + (x2 - 3)2
-7
-7
0,2
6
-1
0,18
10
10
0,35
-6
5
0,25
2
8
(x1 + x2) + (x2 + 2)
9
2
2
(x1 + 3x2) + (x2 + 5) 2
2
2
10
(x1 + 9x2) + (x2 - 1)
11
(x1 - 2x2)2 + (x2 - 9)2
15
12
0,15
12
(x1 + x2)2 + (x2 + 6)2
10
8
0,18
5
6
0,15
7
6
0,25
-4
7
0,3
2
2
13
(x1 + x2) + (x2 - 1)
14
2
(x1 - 2x2) + (x2 - 3)
15
2
(x1 + 2x2) + (x2 - 4)
16 17
(x1 - 2x2)2 + (x2 + 5)2
-15
5
0,2
(x1 - 6x2)2 + (x2 + 1)2
-5
-3
0,2
-10
-5
0,18
-5
6
0,22
-10
7
0,22
2
18
(x1 - 5x2) + (x2 + 6)
2
19
2
(x1 + 4x2) + (x2 - 3)
2
20
2
(x1 + 6x2) + (x2 + 2)
21
(x1 - 7x2)2 + (x2 - 2)2
8
6
0,3
22
(x1 - 8x2)2 + (x2 + 1)2
-5
-5
0,2
10
2
0,25
-10
5
0,35
-10
-5
0,21
23 24 25
2
2
2
(x1 - x2) + (x2 - 7)
2
2
(x1 + 8x2) + (x2 - 2) 2
2
(x1 - 5x2) + (x2 + 3)
2 2
27 ПРИЛОЖЕНИЕ 3 ВАРИАНТЫ ИНДИВИДУАЛЬНЫХ ЗАДАНИЙ ДЛЯ РАСЧЕТА В ТАБЛИЧНОМ ПРОЦЕССОРЕ EXCEL Начальная точка Точность № Вид целевой функции вар. f(x1,x2) ε x2(0) x1(0) 1
x13 + 8 x23 − 6 x1 x2 + 1
2
e
3
5
10
0,1
6
2
0,25
x12 + x22 + x1 x2 − 3 x1 − 6 x2
-5
8
0,12
4
x12 + x22 + 4( x2 − x1 )
9
5
0,13
5
x12 + x22 + x1 x2 + x1 − x2 + 1
4
10
0,05
6
x13 + x22 − 6 x1 x2 − 39 x1 + 18 x2 + 20
15
18
0,1
7
( x1 − 3) 2 + ( x2 − 2) 2 + ( x1 − x2 − 4) 2
8
10
0,05
8
2 x12 + x23 − 4 x1 − 3x2 + 6
-5
7
0,2
9
x12 + x22 + x1 x2 − 3 x1 − 6 x2
6
-1
0,08
10
x12 + x22 − 4 x1 x2 − 2 x1 − 2 x2 + 8
10
8
0,1
11
2 x13 − x1 x22 + 5 x12 + x22
0,5
-1,5
0,15
12
2 x12 + x22 + 4( x2 − x1 ) + 6
7
6
0,15
13
x12 + x22 + x1 x2 − 3 x1 − 6 x2
-4
7
0,08
14
8 x12 + 2 x22 + 4 x1 x2 + 4 x1 − 4 x2 50 20 + x1 x2 + x1 x2
-5
-3
0,2
10
-5
0,08
15
x1
2
( x1 + x22 )
16
x12 + 2 x22 + 2( x1 + 4 x2 ) + 5
-5
6
0,12
17
x12 + x22 − 2 ln x1 − 18 ln x2
10
7
0,15
18
x13 + x23 − 15 x1 x2
8
6
0,13
19
( x1 − 3) 4 + ( x1 − 2 x2 ) 2
10
10
0,05
-5
-5
0,2
21
2 2 ( x12 + x22 )⎛⎜ e −( x1 + x2 ) − 1⎞⎟ ⎝ ⎠ x14 − 2 x12 + 5 x 22 − 2 x12 x 2 − 2 x 2 + 2
( x1 > 0)
8
12
0,25
22
x14 − 2 x12 + 5 x22 − 2 x12 x2 − 2 x2 + 2
( x1 < 0)
-10
5
0,35
23
x14 + 2 x22 − 2 x12 x2 − 2 x2 + 1
( x1 > 0)
10
-5
0,1
24
x14 + 2 x12 − 2 x12 x2 − 2 x2 + 1
( x1 < 0)
-15
12
0,05
25
x12 + 3 x22 + 4 x1 − 6 x2 + 7
-6
5
0,15
20
28 ПРИЛОЖЕНИЕ 4 ВАРИАНТЫ ЗАДАНИЙ ДЛЯ ВЫПОЛНЕНИЯ КУРСОВОЙ РАБОТЫ
№ вар.
Целевая функция f(x1, x2)
Координаты начальных точек задание 1 задание 2 x1 x2 x1 x2
Точность
ε
1
x13 - 1,5x12 - 18x1 + (3x1 + x2)2
0
-20
10
-15
0,12
2
x13 - 16,5x12 + (x1 + x2)2
25
20
20
-30
0,15
3
x13 - 7,5x12 - 108x1 + (4x1+x2)2
0
-70
20
5
0,05
4
x13 + 13,5x12 - 66x1 + (5x1 - x2)2
25
-30
25
50
0,15
5
x13 - 18x12 + 60x1 + (3x1 + x2)2
5
75
15
-50
0,2
6
x13 - 7,5x12 + 12x1 + (2x1 - x2)2
10
10
5
20
0,1
7
x13 + 4,5x12 - 120x1 + (2x1 - x2)2
15
40
20
-20
0,08
8
x13 - 18x12 - 39x1 + (3x1 - x2)2
5
75
20
0
0,1
9
x13- 28,5x12 + 102x1 + (3x1 + x2)2
25
0
0
-50
0,15
10
x13 - 15x12 - 288x1 + (4x1 - x2)2
30
-5
0
100
0,05
11
x13 - 45x12+ 600x1 +(x1 + x2)2
50
-75
50
50
0,12
12
x13 + 9x12- 165x1 + (2x1 - x2)2
20
-30
5
50
0,15
13
x13 - 36x12 + 240x1 + (2x1 + x2)2
40
10
15
-100
0,13
14
x13 - 34,5x12+ 126x1 + (3x1 + x2)2
20
-150
35
20
0,12
15
x13 - 75x1 + (3x1 + x2)2
20
25
5
-75
0,06
16
x13 - 9x12- 336x1 + (2x1 - x2)2
5
100
30
-30
0,08
17
x13 - 6x12 - 36x1 + (4x1-x2)2
10
0
5
50
0,05
18
x13 - 1,5x12 - 6x1 + (3x1 - x2)2
6
12
3
20
0,15
19
x13 - 40,5x12 + 216x1 + (2x1 - x2)2
40
-25
20
100
0,12
20
x13 - 18x12 - 324x1 + (3x1 - x2)2
10
100
30
-20
0,1
21
x13 - 16,5x12- 378x1 + (4x1 + x2)2
30
0
0
-100
0,3
22
x13 - 13,5x12- 570x1 +(2x1 - x2)2
30
-50
10
100
0,15
23
x13 - 4,5x12- 462x1 + (3x1 - x2)2
40
-20
0
100
0,05
24
x13 + 9x12- 21x1 + (3x1 - x2)2
15
-15
0
30
0,1
25
x13 - 6x12 - 135x1 + (2x1 - x2)2
20
-20
25
35
0,04
29 ПРИЛОЖЕНИЕ 5 ВАРИАНТЫ ЗАДАНИЙ ДЛЯ РЕШЕНИЯ СИСТЕМ УРАВНЕНИЙ
⎧ x 2 3 + x22 3 = 4 1. ⎨ 12 2 ⎩ x1 + x2 = 0 ⎧ x 2 3 + x22 3 = 4 2. ⎨ 12 2 ⎩ x1 + x2 = 0
( x1 > 0)
⎧ x 2 + x22 − 2 x1 = 0 13. ⎨ 1 ⎩ x2 − ln x1 = 0
( x1 < 0)
⎧ x12 + 2 x1 + x22 + 2 x2 + 1 = 0 14. ⎨ ( x1 > 0) x − x + 1 = − 1 1 ⎩ 2
( x 2 > 0)
⎧ x − x1 + 1 = 0 3. ⎨ 22 ( x1 > 0) 2 2 0 x x x + − = ⎩ 1 2 2
⎧ x12 3 + x22 3 = 1 15. ⎨ 2 2 ⎩ x1 + x2 − 2 x1 = 0
( x 2 > 0)
⎧ x cos x1 − x2 = 0 4. ⎨ 12 2 ⎩ x1 + x2 − 1 = 0
( x1 > 0)
⎧ x12 3 + x22 3 = 1 16. ⎨ 2 2 ⎩ x1 + x2 − 2 x1 = 0
( x2 < 0)
⎧ x cos x1 − x2 = 0 5. ⎨ 12 2 ⎩ x1 + x2 − 1 = 0
( x1 < 0)
⎧ x sin x1 − x2 = 0 17. ⎨ 12 2 ⎩ x1 + x2 − 1 = 0
( x1 > 0)
⎧ x sin x1 − x2 = 0 18. ⎨ 12 2 ⎩ x1 + x2 − 1 = 0
( x1 < 0)
⎧ 2 x12 + x22 = 1 6. ⎨ 23 ⎩ x2 − x1 = 0
( x 2 > 0)
⎧ 2x2 + x2 = 1 7. ⎨ 1 2 23 ⎩ x2 + x1 = 0
( x 2 < 0)
⎧ x − sin x1 = 0 8. ⎨ 22 2 ⎩ x1 + x2 − 1 = 0
( x1 > 0)
⎧ x − sin x1 = 0 9. ⎨ 22 2 ⎩ x1 + x2 − 1 = 0
( x1 < 0)
⎧ x1 − x2 = 0 ⎪ 19. ⎨ 1 + x12 ⎪ x2 + x2 − 1 = 0 ⎩ 1 2
( x1 > 0)
⎧ x1 − x2 = 0 ⎪ 20. ⎨ 1 + x12 ⎪ x2 + x2 − 1 = 0 ⎩ 1 2
( x1 < 0)
⎧ x12 + x22 − 2 x2 = 0 ( x1 < 0) 10. ⎨ − x1 ⎩ x2 − e = 0
⎧ x12 + x22 − 2 x2 = 0 ⎪ 21. ⎨ ( x1 > 0) 1 x − ln( x + 1 ) = 0 1 ⎪⎩ 2 2
⎧ x 2 + x22 − 2 x2 = 0 11. ⎨ 1 − x1 ⎩ x2 − e = 0
⎧ x 2 + x22 − 2 x2 = 0 22. ⎨ 1 ( x1 > 0) 2 ln( 1 ) 0 x − x + = ⎩ 2 1
( x1 > 0)
⎧ x 2 − 2 x1 + x22 − 2 x2 + 1 = 0 ( x1 > 0) 12. ⎨ 1 x − x + = 1 0 1 ⎩ 2
⎧ x2 − 2 x1e − x1 = 0 23. ⎨ 2 2 ⎩ x1 + x2 − 1 = 0
( x1 > 0)
30 ⎧ x2 − 2 x1e − x1 = 0 24. ⎨ 2 2 ⎩ x1 + x2 − 1 = 0
( x1 < 0)
(
)
⎧⎪ x 2 + x 2 2 = 2( x 2 − x 2 ) 1 2 2 25. ⎨ 21 ⎪⎩ x1 + x2 − 1 = 0
( x1 > 0, x 2 > 0)
Рекомендуемая литература 1. Базара М., Шетти К. Нелинейное программирование. Теория и алгоритмы. -М.: Мир, 1982. 2. Банди. Методы оптимизации. -М.: Радио и связь, 1988. 3. Васильев Ф. П. Численные методы решения экстремальных задач. М.:Наука, 1981. 4. Кафаpов В.В. Методы кибеpнетики в химии и химической технологии. М.: Химия, 1985. 5. Курицкий Б. Поиск оптимальных решений средствами Excel 7.0 :BHVСпб., 1997. 6. Моисеев Н. Н., Иванилов Ю. П., Столярова Е. М. Методы оптимизации. М.: Наука, 1975. 7. Мочалов С.П. Методы оптимизации металлургических процессов. Учеб. пособие. – Кемерово: КузПИ, 1989. 8. Поляк Б. Т. Введение в оптимизацию. -М.: Наука, 1983. 9. Реклейтис Г., Рейвиндран А., Рэгсделк. Оптимизация в технике. В 2-х кн. -М.: Мир, 1986. 10. Рыков А.С. Поисковая оптимизация. Методы деформируемых конфигураций. -М.: Наука, 1993. 11. Химмельблау Д. Прикладное нелинейное программирование. -М.: Мир, 1974. 12. Циpлин А.М. Оптимальное упpавление технологическими пpоцессами. М.: Энеpгоатомиздат, 1986.
31
Составитель Шипилов Сергей Александрович
МЕТОДЫ БЕЗУСЛОВНОЙ МНОГОМЕРНОЙ ОПТИМИЗАЦИИ
Рекомендации к выполнению лабораторных, практических и курсовых работ по дисциплине "Методы оптимизации" Специальности: "Автоматизированные системы обработки информации и управления"(220200), "Информационные системы в экономике"(071900)
Изд. лиц. серия ЛР № 020464 от 19.06.1997 г. Лицензия выдана КемГУ (650043, г. Кемерово, ул. Красная, 6) Подписано в печать 12.10 2000 г. Формат бумаги 60х90 1/16. Бумага писчая. Печать на ризографе GR 3750. Усл. печ. л. 1,7. Уч.- изд. 1,9 Тираж 50 экз. Заказ Новокузнецкий филиал- институт Кемеровского государственного университета. 654041, г. Новокузнецк, ул. Циолковского, 15 а. Издательский центр НФИ КемГУ Цена договорная