- •Кафедра компьютерных систем управления и обработки информации
- •Введение
- •1 Методы одномерной оптимизации
- •Одномерная оптимизация методом классического анализа
- •Метод равномерного поиска
- •Метод поразрядного приближения
- •Метод дихотомии
- •1.5 Метод золотого сечения
- •1.6 Метод квадратичной интерполяции
- •Методы одномерной оптимизации на основе преобразования задач
- •2.1 Метод классического анализа.
- •2.2 Метод исключения переменных
- •2.3 Метод множителей Лагранжа
- •2.4 Пример применения метода множителей Лагранжа
- •2.5 Метод множителей Лагранжа с ограничениями в виде неравенств
- •2.6 Экономическая интерпретация множителей Лагранжа
- •2.7 Метод штрафных функций
- •3 Поисковые методы одномерной оптимизации
- •3.1 Общие сведения
- •3.2 Градиентные методы оптимизации
- •3.2.1 Метод релаксации
- •3.2.2 Метод градиента
- •Метод наискорейшего спуска
- •3.3. Безградиентные методы оптимизации поиска
- •3.3.1 Метод сканирования
- •3.3.2 Метод Гаусса-Зейделя
- •3.3.3 Метод поиска по симплексу
- •4 Линейная оптимизация
- •4.1 Примеры задач линейной оптимизации
- •4.2 Общая постановка задачи линейной оптимизации
- •4.3 Геометрическая интерпретация злп
- •4.4 Основы симплекс-метода
- •Список использованных источников и литературы
- •Содержание
3.3.2 Метод Гаусса-Зейделя
Метод Гаусса-Зейделя,
называемый также методом покоординатного
спуска, аналогичен методу релаксации.
Отличие заключается лишь в том что, в
этом методе не определяется осевое
направление, вдоль которого значение
изменяется наиболее сильно. Поочерёдно
изменяются все переменные.
Алгоритм поиска
минимума следующий. Пусть ищется минимум
.
Устанавливается очерёдность изменения
–
и начальная точка
поиска. Затем все переменные
фиксируются на уровне
,
изменяется по алгоритму
;
;
;
(3.22)
где
– шаг изменяется
,
обычно
не зависит от k.
После каждого шага
вычисляется
,
сравнивается с предыдущим значением,
критерия шаги продолжаются до достижения
частного оптимума по xj
= x1.
В этой точке величина
фиксируется и изменяется x2
до достижения оптимума по x2
и т.д. После того как достигается оптимум
по последней переменной xn,
снова изменяется x1
и весь цикл повторяется до тех пор, пока
не будет найдена точка оптимума.
На рисунке 3.11 показан алгоритм поиска минимума для функции двух переменных.
Рисунок 3.12 – Траектория движения к оптимуму в методе координатного спуска
Заметим что для функции двух переменных методы релаксации и Гаусса-Зейделя совпадают.
Если
первый шаг изменения xj
не улучшает значение критерия, т.е.
,
а
,
то выполняется шаг по xj
в обратном направлении
,
т. е. Первый шаг пробный. Если и этот шаг
неудачный, то переходят к изменению
xj+1
и т.д.
Поиск заканчивают когда достигается точка , из которой при движении в любом осевом направлении улучшение критерия не наблюдается.
Рассмотрим
вопрос улучшения алгоритма поиска
.
Пусть
в области допустимых решений D
задано нулевое приближение
.
Рассматриваем
функцию
при фиксированных значениях
как функцию одной переменной x1,
т. е.
(3.23)
Минимизируя
находим значение
,
доставляющее минимум функцию (3.23):
;
.
Далее
при фиксированных значениях
рассматриваем
как функцию одной переменной x2.
Находим её минимум
;
.
Продолжая
эту процедуру последовательно, после
n
шагов получаем точку
,
в которой выполняется условие
.
В
результате одного шага покоординатного
спуска происходит переход из начальной
точки
в точку
.
Если при этом оказывается, что
,
то
начальная точка
– точка, доставляющая минимум функцию
.
Если
,то
выполняется следующий шаг поко-ординатного
спуска, в котором за начальную точку
принимается
,
получаем
и т.д. Этот процесс продолжается до тех
пор, пока не выполнится какое-либо
условие окончания поиска, например
такое
,
(3.24)
где
– заданная точность.
или
(3.25)
Таким образом, поиск минимума функции одной переменной занимает центральное место в рассматриваемом алгоритме покоординатного спуска.
Простота метода и сравнительно небольшой объём вычислений обусловили его распространение в автоматических системах поиска.
3.3.3 Метод поиска по симплексу
Рассмотрим задачу
(3.26)
Симплексный метод является безградиентным методом, реализует процедуру прямого поиска оптимума на основе вычисления значения целевой функции. Предполагается, что непрерывна, а может как существовать, так и не существовать, поскольку соответствующие числовые значения не используются. Однако следует отметить, что симплексный метод можно применить для решения задач, в которых существует, но представляет собой сложную векторную функцию управляемых переменных. Наконец, предполагается, что функция унимодальна в рассматриваемой области. Если же метод применяется для анализа мультимодальных функций, то приходится ограничиваться идентификацией локальных оптимумов.
Симплексный метод относится к категории эвристических, которые реализуют процедуры поиска с помощью интуитивных геометрических представлений.
Первые попытки решения оптимизационных без ограничений на основе прямого поиска связаны с использованием процедуры сканирования, что является непригодной для решения задач с числом переменных превышающим 2.
Более полезная идея заключается в выборе базовой точки и оценивания значений в точках, окружающих базовую точку. Например, при решении задач с двумя переменными можно воспользоваться квадратным образцом (рис. 3.12), который является частным случаем кубического образца. В вершинах образца и базовой точке вычисляется значение .
Рисунок 3.13 – Использование квадратного образца для поиска оптимума
Затем «наилучшая» из пяти исследуемых точек выбирается в качестве следующей базовой точки, вокруг которой строится аналогичный образец. Если ни одна из угловых точек не имеет преимущества перед базовой, размеры образца следует уменьшить, после чего продолжить поиск.
Этот тип эволюционной оптимизации был использован Боксом и другими исследователями США для анализа функционирования промышленных предприятий, когда эффект варьирования значений переменных, описывающих производственные процессы, измеряется с ошибкой.
В задачах большой размерности вычисление значений проводится во всех вершинах, а также в центре тяжести гиперкуба (куба в n- мерном пространстве), т. е. в точках так называемого кубического образца. Если количество переменных (размерность пространства, в котором ведётся поиск) равно n, то поиск по кубическому образцу требует 2n+1 вычислений значения для одного образца. При увеличении и объём вычислений возрастает чрезвычайно быстро. Таким образом, несмотря на логическую простоту поиска по кубическому образцу, возникает необходимость использования более эффективных методов прямого поиска для решения возникающих на практике задач оптимизации.
Одна из вызывающих особый интерес стратегий поиска положена в основу метода поиска по симплексу, предложенного американскими специалистами Спендли, Хекстом и Химсвортом. Следует отметить, что указанный метод не имеет отношения к симплекс-методу линейного программирования, а сходство названий носит случайный характер.
Процедура симплексного поиска базируется на том, что экспериментальным образцом, содержащим наименьшее число точек, является регулярный (правильный) симплекс. Регулярный симплекс в n-мерном пространстве представляет собой многогранник, образованный n+1 равностоящими друг от друга точками – вершинами. Например, в случае двух переменных симплексом является равносторонний треугольник, в трёхмерном пространстве – четырёхгранная пирамида (тетраедр) (рис. 3.13).
Рисунок 3.14 – Примеры симплекса на плоскости и в пространстве
В алгоритме симплексного используется важное свойство симплексов: против любой из вершин симплекса Sj расположена только одна грань, на которой можно построить новый симплекс путём переноса выбранной вершины на надлежащее расстояние вдоль прямой, проведённой через центр тяжести остальных вершин начального симплекса. Полученная таким образом точка является вершиной нового симплекса, а выбранная при построении вершина начального симплекса исключается (рис. 3.14).
Рисунок 3.15 – Построение нового симплекса на плоскости
Основная идея симплексного метода заключается в том, что по известным значениям в вершинах симплекса находится направление небольшого изменения критерия оптимальности для очередного шага оптимизации.
Рассмотрим алгоритм
этого метода на примере отыскания
минимума
функции двух переменных (рис. 3.15).
Рисунок 3.16 – Поиск оптимума симплексным методом
Выбирается начальный симплекс S10S20S30 и определяется значение в точках вершин.
По полученным значениям выбирается наихудшая вершина, в которой значение наибольшее (вершина S10). Строится новый симплекс, для чего наихудшая вершина S10 заменяется новой S11, расположенной симметрично относительно центра, находящейся против неё грани. В новой вершине вычисляется значение , которое сравнивается с известными значениями для двух других вершин S20, S30 нового симплекса. Снова находится наихудшая вершина (S30), которая исключается аналогичным образом и т.д.
В результате повторения процедуры исключения наихудшей вершины процесс поиска сходится к оптимальному значению . В районе оптимума может возникнуть циклическое движение по двум или более симплексам, когда вновь полученная вершина окажется наихудшей и её исключение к предыдущему симплексу. На рисунке исключение наихудшей S34 приводит к предыдущей вершине S33, что приводит к зацикливанию алгоритма поиска.
В таких случаях можно воспользоваться следующими правилами:
1) если вершина, которой соответствует наибольшее значение (находится вершина при поиске минимума), построена на предыдущей итерации, то необходимо уменьшить размеры симплекса с помощью коэффициента редукции и построить новый регулярный симплекс, выбрав в качестве базовой точку, которой соответствует наилучшее (минимальное) значение ;
2) построить деформированный симплекс, для чего исключаемая вершина Sj переносится на расстояние 0.5SjA. При этом происходит сжатие симплекса (рис. 3.16).
Рисунок 3.17 – Построение деформированного симплекса
Уменьшении размеров симплекса при появлении новых зацикливаний в районе оптимума и продолжают до тех пор, пока не будет достигнута требуемая точность определения оптимума.
Поиск завершается, когда или размеры симплекса, или разности между значениями в вершинах симплекса становятся достаточно малыми.
Реализация алгоритма поиска по симплексу основана на вычислениях двух типов:
1) построение исходного регулярного симплекса при заданных базовой точке и масштабном множителе;
2) расчет координат отражённой вершины.
Построение
исходного симплекса.
Пусть задана начальная (базовая) точка
и масштабный множитель
.
Координаты остальных n
вершин симплекса в n-мерном
пространстве вычисляются по формуле:
где
– j-
ая координата i-
ой вершины;
,
– приращения.
Приращения
,
,
зависящие только от n
и
,
определяются по формулам:
;
Величина выбирается исследователем. При =1 рёбра регулярного симплекса имеют единичную длину (длина ребра равна ).
Расчёт
координат отражённой вершины.
Пусть SL
– наихудшая вершина, подлежащая
отражению, а
– координаты этой вершины. Центр тяжести
остальных n
вершин (центр противолежащей грани)
обозначим A.
Тогда координаты точки A
вычисляются по приведённым ниже формулам
в векторной и скалярной формах
соответственно:
;
,
где
– k-ая
координата i-ой
вершины;
– k-ая
координата точки A.
Все
точки
прямой, проходящей через точки
и
,
задаются формулой
,
(3.27)
где
- параметр характеризующий расстояние
точки на линии от центра.
При
получаем исходную точку
;
соответствует центру тяжести
.
Для того, чтобы построенный симплекс
обладал свойством регулярности, отражение
должно быть симметричным. Следовательно,
новая вершина регулярного симплекса
получается при
.
Таким образом, получаем
,
где
– координата отражённой вершины нового
симплекса.
При
получаем деформированный симплекс. При
этом исключаемая вершина отражается
на расстояние 0.5SLA
от центра A
вдоль прямой (6/27).
С учётом этого из уравнения определяем координаты новой вершины деформированного симплекса:
Преимуществами симплексного метода являются:
1) простота расчетов и логической структуры алгоритма, относительно короткая программа для ЭВМ;
2) невысокий уровень требований к объёму памяти ЭВМ, массив данных имеет размерность (n+1, n+2);
3) алгоритм оказывается эффективным даже в тех случаях, когда ошибка вычислений велика, поскольку при его реализации оперируют наибольшими значениями в вершинах, а не наименьшими.
Перечисленные методы характеризуют метод поиска по симплексу как весьма полезный при проведении вычислений в реальном времени (анализ в динамике).
Недостатком метода является возможность возникновения трудностей, связанных с масштабированием, поскольку все координаты вершин симплекса зависят от одного и того же масштабного множителя альфа. Чтобы обойти трудности такого рода следует промасштабировать все переменные с тем, чтобы их значения были сравнимыми по величине.
