Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИССЛЕДОВАНИЕ АЛГОРИТМОВ ОПТИМИЗАЦИИ.DOC
Скачиваний:
24
Добавлен:
01.05.2014
Размер:
331 Кб
Скачать

Метод Фибоначчи

Этот метод применяется, если известно точное количество испы­таний n, и при выборе значения xk к-го испытания можно исполь­зовать информацию о значениях ƒ(x1),..., ƒ(xk-1)(k>=2). После каждого испытания интервал неопределенности сокращается. При этом используется следующий факт: если α<B и ƒ(α)>=ƒ(c), ƒ(B)>=ƒ(c), то на интервале [α,B] находится точка локально- ­го минимума непрерывной функции ƒ.

- 5 -

Здесь потребуются числа Фибоначчи, удовлетворяющие равенствам:

F1=F2=1,

Fn+2=Fn+Fn+1.

Нетрудно убедиться, что .

Определим α1=0, B1=1, x1=Fn-1/Fn+1, x2=Fn/Fn+1.

Если ƒ(x1)≥ƒ(x2), то положим α2=x1, B2=B1;

Если ƒ(x1)<ƒ(x2), то положим α21, B2=X2.

Для nk ≥ 2:

Yk+1 = αk + Fn-k / Fn+1,

Zk+1 = αk + Fn-k+1 / Fn+1.

В одной из этих точек значение ƒ на K-м шаге уже вычислено. Другую точку обозначим xk+1. Если ƒ(Yk+1)≤ƒ(Zk+1), то по- ­ложим αk+1k, Bk+1=Zk+1; если ƒ(Yk+1)>ƒ(Zk+1), то положим αk+1=Yk+1, Bk+1=Bk. Точка локального минимума лежит в интервале [αk, Bk] при всех k≥1, при этом Bk+1k+1=Fn-k+2/Fn+1. Последняя точка xn выбирается равной Yn+ε или Zn-ε, в за­- висимости от того, в какой из этих точек вычислено значение ƒ. Здесь 0<ε<1/Fn+1. Тогда длина заключительного интервала неопределенности равна 1/Fn+1. Можно доказать, что для лю- ­бого алгоритма за n испытаний получить заключительный интервал неопределенности для любой (наихудшей для этого алгоритма) функции ƒ, меньший, чем 1/Fn+1, невозможно.

Метод золотого сечения

Нетрудно заметить, что в методе Фибоначчи

Отметим, что

при n → ∞

- 6 -

Поэтому при больших n

(1.2)

Выбирая значения xk так же, как и в методе Фибоначчи, за исключением замены формулы (1.1) на (1.2), получаем почти такую же последовательность точек {x1,...,xn} с той разницей, что в (1.2) правая часть не зависит от n. Полученный метод называется мето­дом золотого сечения (эти сечения указаны в (1.2)) и применяется в том случае, если число n заранее неизвестно. Отметим, что

и при больших заданных n метод золотого сечения хуже метода Фибоначчи, в = 1.1708...раз.

Порядок проведения лабораторной работы

Работа выполняется в диалоговом режиме.

Номер варианта, сообщаемый в ответ на запрос, задает некото­-рую конкретную функцию, минимум которой необходимо найти, и коли­чество допустимых испытаний.

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

а) последовательно указать точки вычисления функции (для ме­тода пассивного поиска точки должны быть упорядочены в порядке возрастания);

б) указать длину , и границы заключительного интервала неопре-деленности.

В помощь студенту на экран выводится следующая информация:

- для метода пассивного поиска: при неверно введенном значе-нии xk выводится сообщение об этом, после чего ввод должен быть повторен;

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

- 7 -

Требования к отчету

Отчет должен содержать:

а) постановку решаемой задачи;

б) последовательность выбранных для испытаний точек и обосно­вание такого выбора;

в) длину и границы заключительного интервала неопределеннос­-ти;

г) ответы на контрольные вопросы.

Контрольные вопросы

1. В чем отличия в постановке задач, решаемых методами пас­сивного поиска, золотого сечения и методом Фибоначчи?

2. Как оценить скорость изменения интервала неопределенности в методах одномерной минимизации?

3. Чему равен выигрыш от использования метода золотого сечения по сравнению с методом пассивного поиска при n = 10?

Лабораторная работа 2

МНОГОМЕРНАЯ МИНИМИЗАЦИЯ

Цель работы. Исследование алгоритмов безусловной минимизации гладких функций нескольких переменных.

Постановка задачи

Для заданной функции ƒ(x1,...,xn) найти ее точку минимума x* с заданной точностью ε. Для поиска минимума воспользоваться различными методами минимизации, описываемыми ниже.

Краткие общие сведения. Градиентный метод с постоянным шагом

Общая схема метода следующая:

по заданному значению x0 - вектору начального приближения -вычисляются последовательно значения x1,x2,... по формуле:

- 8 -

где - вектор частных произ- водных функции ƒ1 по координатам х1, ..., x2, вычисленный в точке .

Метод наискорейшего спуска

Отличие этого метода от градиентного метода с постоянным ша-гом заключается в способе вычисления параметра αk на k -м шаге алгоритма:

xk+1 = xkαkgrad ƒ(xk),

αk = argmin { ƒ( xkαgrad ƒ(xk)) : α > 0 }

Т.е. на каждом шаге используется дополнительная процедура одномер­ной минимизации (поиска точки локального минимума функции одного аргумента).

Метод Ньютона-Рафсона

Этот метод используется для вычисления точки локального мини­мума функции и переменных, обладающей третьими производными по всем переменным. Последовательность { x1, x2, ...} приближений к стационарной точке строится по формуле:

где

- n x n - матрица Гессе

функции ƒ в точке xk.

Порядок проведения лабораторной работы

Работа осуществляется в диалоговом режиме с помощью программы. Описанные выше методы исследуются на примере задачи минимизации квадратичной функции двух переменных ƒ(x) = ƒ( x1, x2):

ƒ(x) = XTAX + BTX + C.

- 9 -

Параметры минимизируемой функции - 2х2 - матрица А, 2-вектор В и скаляр С - задаются студентом по указанию преподавателя.

В задачу студента входят:

а) определение начального вектора x0 и величины шага α, при котором значения ƒ(x1), ƒ(x2), ..., определенные градиентным методом с постоянным шагом, убывают;

б) проведение минимизации заданной функции методами наискорей­шего спуска и Ньютона-Рафсона;

в) сравнение результатов, полученных различными методами. В помощь студенту по окончании работы программы в соответствии с одним из методов на экран выводится таблица точек хk и значений ƒ(xk).

Требования к отчету

Отчет должен содержать:

а) постановку решаемой задачи;

б) результаты проведенной минимизации;

в) выводы относительно факторов, влияющих на сходимость после­довательностей приближений к минимуму скорость такой сходимости;

г) ответы на контрольные вопросы.

Контрольные вопросы

1. В каких случаях следует применять метод наискорейшего спус­ка, метод Ньютона, градиентный метод с постоянным шагом?

2. Какова скорость сходимости градиентных методов и метода Ньютона?

3. Для каких из рассматриваемых методов сходимость зависит от выбора начального приближения?

Лабораторная работа 3 СИМПЛЕКСНЫЙ МЕТОД

Цель работы. Изучение симплексного метода решения задач ли­нейного программирования.

- 10 -

Постановка задачи

Рассматривается следующая задача, получившая название задачи линейного программирования.

Найти минимум линейной функции ƒ n аргументов:

ƒ = c1x1 + c2x2 + ... + cnxn,

где Сi - постоянные коэффициенты, на множестве, заданном набором линейных ограничений:

α11x1 + α12x2 + ... + α1nxnB1

...

αm1x1 + αm2x2 + ... + αmnxnBm

x1 ≥ 0, ..., xn ≥ 0,

где αij, Bi - постоянные коэффициенты.

Пусть А = - m*n - матрица, а

- векторы,

тогда ограничения записываются следующим образом:

где неравенства понимаются покоординатно.

Целевая функция ƒ может быть представлена в виде скалярного

произведения ƒ = (C, X).

Множество называется допустимым Х-многогранником.

Оптимальной точкой задачи линейного программирования называет­ся такая точка X*, что и (C, X*) ≤ (C, X) для всех . Известно, что среди оптимальных точек содержится хотя бы одна крайняя точка X.