
- •Им. А.Н.Туполева
- •И.П. Ультриванов
- •Учебное пособие для студентов экономического факультета Издательство Казанского
- •Глава 1. Основные понятия моделирования систем
- •Виды и способы математического моделирования систем
- •Экономико-математические модели
- •Адекватность модели
- •1.4. Понятие «черного ящика» в теории управления
- •1.5. Последовательность процесса моделирования
- •Глава 2. Основные свойства систем управления
- •2.1. Понятие системы
- •2.2. Устойчивость динамических систем
- •2.3. Равновесие в экономических системах
- •2.4. Качество процессов регулирования
- •Глава 3. Общие методы оптимизации
- •3.1. Классификация методов получения оптимальных решений
- •3.2. Оптимальные решения
- •3.3. Математическое программирование
- •Глава 4. Задача линейного программирования и ее оптимальное решение
- •4.1. Определение линейности функций
- •4.2. Постановка задачи линейного программирования
- •4.3. Геометрическая интерпретация и графический метод решения задачи линейного программирования
- •4.4. Симплексный метод решения задачи
- •Алгоритм симплекс-метода решения злп. Алгоритм симплекс-метода решения злп продемонстрируем на простом примере.
- •Глава 5. Методы оптимизации в задачах нелинейного программирования
- •5.2. Метод множителей Лагранжа
- •5.3. Методы одномерного поиска минимума функции
- •Эффективность одномерных методов поиска
- •5.4. Методы минимизации без ограничений, использующие производные
- •5.5. Методы минимизации без ограничений, не использующие производные (методы поиска)
5.3. Методы одномерного поиска минимума функции
Алгоритмы, которые будут описаны ниже, основаны на использовании эффективных методов одномерной оптимизации для обнаружения минимума функции одной переменной и не требуют вычисления производных функции. Такие методы называются поисковыми. Для практического применения этих методов необходимо знать начальный интервал неопределенности Δ(0), содержащий минимум целевой функции f(x) и в котором функция f(x) унимодальна. Существуют различные методы уменьшения начального интервала Δ(0) до некоторого конечного Δ(n). Мы ограничимся знакомством лишь с некоторыми, а затем перейдем к другим методам, которые обычно на практике оказываются более эффективными.
Эффективность Е процедуры, включающей п вычислений целевой функции (п – итераций), определяется как отношение:
В табл. 3 сравнивается эффективность пяти различных методов.
Т а б л и ц а 3
Эффективность одномерных методов поиска
(п – число итераций, Fп – число Фибоначчи1 для п оценок)
Непоследовательные методы |
Е |
Последовательные методы |
Е |
Равномерный поиск
Равномерный поиск делением пополам |
|
Поиск делением пополам
Поиск Фибоначчи
Поиск методом золотого сечения |
|
Оказывается, что относительная эффективность двух хорошо известных методов золотого сечения и поиска Фибоначчи несколько выше эффективности поиска последовательным делением пополам и существенно превосходит эффективность поиска непоследовательными методами.
Числа
Фибоначчи—элементы числовой
последовательности 1,1,2,3,5,8,...n,
в которых каждый последующий член равен
сумме двух предыдущих.
В табл. 4 сравниваются количества итераций, необходимых для уменьшения начального интервала, равного 5·10–1.
Т а б л и ц а 4
Уменьшение интервала до: |
Непоследовательные методы |
Последовательные методы |
|||
Равномерный поиск |
Равномерный поиск делением пополам |
Поиск методом золотого сечения |
Поиск Фибоначчи |
Поиск делением пополам |
|
5 · 10–3
5 · 10–5 |
199
19 999 |
198
19 998 |
11
21 |
11
21 |
14
28 |
Принципиальную методику поиска минимума функций эффективными последовательными методами рассмотрим на примере алгоритма метода золотого сечения.
Метод золотого сечения. Поиск с помощью метода золотого сечения основан на разбиении отрезка прямой на две части, известном как «золотое сечение». При этом отношение длины всего отрезка к большей части равно отношению большей части к меньшей. Здесь используются две дроби Фибоначчи:
Заметим, что
Поиск необходимо начинать в таком
направлении, чтобы значение функции
f(x) уменьшалось.
Начальный отрезок
Δ(0), включающий минимум f(x),
может быть получен с помощью, например,
последовательной серии нескольких
возрастающих шагов по независимой
переменной. Обозначим последние три
значения x через
(последняя
точка),
и
,
где
,
и пусть
.
Рассмотрим рис.15. В соответствии с этим рисунком, если мы находимся на k-м этапе, то (k+1)-й интервал нужно вычислять следующим образом.
Определим координаты точек А и В:
,
.
Если
если
если
или
f(x)
0,62∆(0)
0,38∆(0)
f(B) f(A)
B A x
∆(1)
∆(0)
Рис.15
Если
,
где ε – заданная точность решения
задачи, то заменяем значение индекса
и возвращаясь к началу алгоритма
вычисляем новые значения А и В.
Если
,
вычисляем координату х*,
соответствующую найденной точке минимума
функции:
В отличие от метода половинного деления для большей точности на каждой итерации определяются две новые точки А и В (а не одна новая точка), поскольку значения F1 и F2 не являются точными; при оперировании только с одной новой точкой ошибки округления при вычислении могут привести к потере интервала, содержащего минимум.
Методы интерполяции и экстраполяции. В другом классе методов одномерной минимизации значение независимой переменной х соответствующей с заданной точностью ε точке минимума х* определяется с помощью экстраполяции и интерполяции. Были предложены квадратичные и кубические формулы аппроксимации либо только значения функции, либо и функции и производных. Пользуясь некоторыми из методов, основанных на аппроксимации функции полиномом, проходящим через выбранные точки, можно легче обнаружить минимум f(x) при заданной точности, чем методами, указанными в табл.4.
Рассмотрим алгоритм
Дэвиса, Свенна и Кэмпи (ДСК), использующий
при поиске х* одноразовую
квадратичную интерполяцию. Вначале
метода проводятся возрастающие по
величине шаги до тех пор, пока не будет
пройден минимум, а затем выполняется
одноразовая квадратичная интерполяция.
Эта процедура показана на рис.16. Здесь
– первое из значений х, для которого
зарегистрировано отклонение от минимума,
а Δх – длина шага.
f(x)
6 5 2 1
4 3
8Δх
2Δх
4Δх
Δх
x(m-3)
x(m-1)
x(m-2) x
xm
x(m+1)
Рис.16
Процедура метода ДСК состоит из следующих шагов:
Шаг 1. Вычислить
f(x)
в начальной точке х(0). Если
,
то перейти к шагу2. Если
,
положить
и перейти к шагу 2.
Шаг 2. Вычислить
Шаг 3. Вычислить
.
Шаг 4. Если
удвоить
Δх и вернуться к шагу 2 при k
= k+1. Если
обозначить
через
через
и т.д., уменьшить Δх наполовину и
вернуться к шагам 2 и 3для еще одного
(только одного) вычисления.
Шаг 5. Из четырех
равноотстоящих значений
исключить либо
либо
в зависимости от того, какое из них
находится дальше от х, соответствующего
наименьшему значению f(x).
Пусть
– оставшиеся три значения х, где
– центральная точка,
Шаг 6. Провести квадратичную интерполяцию для определения х*:
Эти шаги завершают
первый этап метода ДСК. При желании
продолжить эту процедуру с целью
повышения точности определения
нужно начать из
или из
если
уменьшить Δх и начать с первого
шага.
В
алгоритме Пауэлла квадратичная
аппроксимация проводится путем
использования первых трех точек,
полученных в направлении поиска. Затем
определяется точка х, соответствующая
минимуму квадратичной функции. Такая
квадратичная аппроксимация продолжается
до тех пор, пока с требуемой точностью
не обнаруживается минимум f(x). Алгоритм
Пауэлла строится следующим образом
(рис.17):
f(x)
Этап
1 1111
Этап
2
Рис.17
Этап 1
Шаг 1. От
начальной точки
нужно перейти к
Шаг 2. Вычислить
Шаг 3. Если
положить
Если
положить
Шаг 4. Вычислить
Шаг 5. Вычислить приближенное значение х в точке минимума f(x) по формуле
Шаг 6. Если
и любое из значений
соответствующих минимуму f(x),
отличаются меньше, чем на предписанную
точность ε, закончить поиск. В противном
случае (этап 2), вычислить
и исключить из множества
то
значение х, которое соответствует
наибольшему значению f(x), если,
однако, при этом не будет потерян
интервал, в котором находится минимум
f(x). В этом случае следует так исключить
х, чтобы сохранить этот интервал.
Перейти к шагу 5.
Работа алгоритма продолжается до тех пор, пока не будет достигнута желаемая точность.
Весьма эффективной является комбинация алгоритмов ДСК и Пауэлла по сравнению с каждым из этих алгоритмов в отдельности. Комбинированный алгоритм ДСК – Пауэлла состоит из одного этапа (шаги с 1 по 6) алгоритма ДСК, на котором определяется интервал, в котором находится минимум f(x), шага 6 алгоритма Пауэлла и затем, если это оказывается необходимым, шагов 5 и 6 алгоритма Пауэлла.