
- •Лекция 1
- •Лекция 2
- •Уравнении с одним неизвестным
- •Метод деления отрезка пополам (метод бисекции).
- •Метод Ньютона (метод касательных).
- •Метод простой итерации.
- •Лекция 3 Системы линейных уравнений
- •3.Прямые методы
- •Итерационные методы
- •Метод Гаусса — Зейделя.
- •Системы уравнений.
- •Лекция 4 Аппроксимация функций.
- •Точечная аппроксимация.
- •Многочлены Чебышева.
- •Линейная и квадратичная интерполяция.
- •Сплайны.
- •Многочлен Лагранжа.
- •Лекция 5.
- •Метод Симпсона.
- •Использование сплайнов.
- •Кратные интегралы.
- •Метод Монте-Карло.
- •Лекция 6. Численное дифференцированно.
- •Погрешность численного дифференцирования.
- •Метод неопределенных коэффициентов.
- •Улучшение аппроксимации.
- •Частные производные.
- •Лекция 7.
- •Основные понятия.
- •Задачи оптимизации.
- •Одномерная оптимизация.
- •1. Задачи на экстремум.
- •Метод золотого сечения.
- •Метод градиентного спуска.
- •Лекция 8. Задачи с ограничениями.
- •Линейное программирование.
- •Геометрический метод.
- •Симплекс-метод.
- •Задача о ресурсах.
Метод золотого сечения.
При построении процесса оптимизации
стараются сократить объем вычислений
и время поиска. Этого достигают обычно
путем сокращения количества вычислений
(или измерений при проведении эксперимента)
значений целевой функции
.
Одним из наиболее эффективных методов,
в которых при ограниченном количестве
вычислений
достигается наилучшая точность, является
метод золотого сечения. Он состоит
в построении последовательности
отрезков
,
стягивающихся к точке минимума функции
.
На каждом шаге, за исключением первого,
вычисление значения функции
проводится
лишь один раз. Эта точка, называемая
золотым сечением, выбирается специальным
образом.
Поясним сначала идею метода геометрически, а затем выведем необходимые соотношения.
Нaпервом шаге процесса
оптимизации внутри отрезка(рис. а) выбираем некоторые внутренние
точки
и
,
и вычисляем значении целевой функции
и
.
Поскольку в данном случае
,
очевидно, что минимум расположен на
одном из прилегающих к
отрезков:
или
.
Поэтому отрезок
можно отбросить, сузив тем самым
первоначальный интервал неопределенности.
Второй шаг проводим на отрезке
(рис. 6),
.
Нужно снова выбрать, две внутренние
точки, но одна из них (
)
осталась из предыдущего шага, поэтому
достаточно выбрать лишь одну точку
,
вычислить значение
и провести сравнение. Поскольку здесь
,
ясно, что минимум находится на отрезке
.
Обозначим этот отрезок
,
снова выберем одну внутреннюю точку и
повторим процедуру сужения интервала
неопределенности. Процесс оптимизации
повторяется до тех пор, пока длина
очередного отрезка
не станет меньше заданной величины
.
Теперь рассмотрим способ размещения
внутренних точек на каждом отрезке
.
Пусть длина интервала неопределенности
равна
,
а точка деления разбивает его на части
.
Золотое сечение интервала
неопределенности выбирается так, чтобы
отношение длины большего отрезка к
длине всего интервала равнялось отношению
длины меньшего отрезка к длине большего
отрезка:
(1).
Из этого соотношения можно найти точку
деления, определив отношение
.
Преобразуем выражение (1) и найдем это
значение:
,
,
,
,
Поскольку нас интересует только положительное решение, то
.
Отсюда
,
.
Поскольку заранее известно, в какой
последовательности (
и
или
и
)
делить интервал неопределенности, то
соответствующие двум этим способом
деления.
На рис.точки деления
и
выбираются с учетом полученных значений
для частей отрезка. В данном случае
имеем
.
После первого шага оптимизации получается
новый интервал неопределенности –
отрезок
(рис.
).
Можно показать, что точка
делит этот отрезок в требуемом отношении,
при этом
,
.
Для этого проведем очевидные преобразования:
,
,
.
Вторая точка деления
выбирается на таком же расстоянии от
левой границе отрезка, т.е.
.
И снова интервал неопределенности уменьшается до размера
.
Используя полученные соотношения можно
записать координаты точек деления
и
отрезка
на
-м
шаге оптимизации
:
.
При этом длина интервала неопределенности равна
.
Процесс оптимизации заканчивается при
выполнении условия
.
При этом проектный параметр оптимизации
составляет
.
Можно в качестве оптимального значения
принять
(или
,
или
и т.п.).
Блок-схема метода золотого сечения:
.
Многомерные задачи оптимизации.
Минимум функции нескольких переменных.В большинстве реальных задач оптимизации, представляющих практический интерес, целевая функция зависит от многих проектных параметров.
Минимум дифференцируемой функции многих
переменных
можно найти, исследуя ее значения в
критических точках, которые определяются
из решения системы дифференциальных
уравнений
(2).
Рассмотренный метод можно использовать лишь для дифференцируемой целевой функции. Но и в этом случае могут возникнуть серьезные трудности при решении системы нелинейных уравнений (2).
Во многих случаях никакой формулы для целевой функции нет, а имеется лишь возможность определения ее значений в произвольных точках рассматриваемой области с помощью некоторого вычислительного алгоритма или путем физических измерений. Задача состоит в приближенном определении наименьшего значения функции во всей области при известных ее значениях в отдельных точках.
Для решения подобной задачи в области
проектирования
,
в которой ищется минимум целевой функции
,
можно ввести дискретное множество точек
(узлов) путем разбиения интервалов
изменения параметров
на части с шагами
.
В полученных узлах можно вычислить
значения целевой функции и среди этих
значений найти наименьшее.
Следует отметить, что такой метод может быть использован для функции одной переменной. В многомерных задачах оптимизации, где число проектных параметров достигает пяти и более, этот метод потребовал бы слишком большого объема вычислений.
Оценим, например, объем вычислений с
помощью общего поиска при решении
задачи оптимизации функции пяти
неизвестных. Пусть вычисление ее значения
в одной точке требует
арифметических операций (на практике
это число может достигать нескольких
тысяч и больше). Область проектирования
разделим на
частей в каждом из пяти направлений,
т. е. число расчетных точек равно
,
т. е. приблизительно
.
Число, арифметических операций тогда
равно
,
и для решения этой задачи на ЭВМ с
быстродействием 1 млн. оп./с. потребуется
с (более 10 суток) машинного времени.
Проведенная оценка показывает, что такие методы общего поиска с использованием сплошного перебора для решения многомерных задач оптимизации не годятся. Необходимы специальные численные методы, основанные на целенаправленном поиске. Рассмотрим некоторые из них.
Метод покоординатного спуска. Пусть
требуется найти наименьшее значение
целевой функции.
В качестве начального приближения
выберем в
-мерном
пространстве некоторую точку
,
с координатами
.
Зафиксируем все координаты
функции
,
кроме первой. Тогда
- функция одной переменной
.
Решая одномерную задачу оптимизации
для этой функции, мы от точки
переходим к точке
,
в которой функция
принимает наименьшее значение по
координате
при фиксированных остальных
координатах. В этом состоит первый
шаг процесса оптимизации, состоящий в
спуске по координате
.
Зафиксируем теперь все координаты,
кроме
,
и рассмотрим функцию этой переменной
.
Снова решая одномерную задачу оптимизации,
находим ее наименьшее значение при
т.
е. в точке
.
Аналогично проводится спуск по
координатам
,
а затем процедура снова повторяется от
до
т. д. В результате этого процесса
получается последовательность точек
,
в которых значения целевой функции
составляют монотонно убывающую
последовательность
.
На любом
-м
шаге этот процесс можно прервать, и
значение
принимается в качестве наименьшего
значения целевой функции в
рассматриваемой области.
Таким
образом, метод покоординатного спуска
сводит задачу о нахождении наименьшего
значения функции многих переменных
к многократному решению одномерных
задач оптимизации по каждому проектному
параметру.
Данный метод легко проиллюстрировать
геометрически для случая функции
двух переменных
,
описывающей некоторую поверхность в
трехмерном пространстве. На рисунке
нанесены линии уровня этой поверхности.
Процесс оптимизации в этом случае
проходит следующим образом. Точка
описывает начальное приближение.
Проводя спуск по координате
,
попадем в точку
.
Далее, двигаясь параллельно оси ординат,
придем в точку
,
и т. д.
Важным здесь является вопрос о сходимости
рассматриваемого процесса оптимизации.
Другими словами, будет ли
последовательность значений целевой
функции
сходиться к наименьшему ее значению в
данной области? Это зависит от вида
самой функции и выбора начального
приближения.
Для
функции двух переменных очевидно,
что метод неприменим в случае наличия
изломов в линиях уровня. Это
соответствует так называемому оврагу
на поверхности. Здесь возможен
случай, когда спуск по одной координате
приводит, на «дно» оврага. Тогда любое
движение вдоль другой координаты
ведет к возрастанию функции, соответствующему
подъему на «берег» оврага. Поскольку
поверхности типа «оврага» встречаются
в инженерной практике, то при
использовании метода покоординатного
спуска следует убедиться, что решаемая
задача не имеет этого недостатка.
Для гладких функций при удачно выбранном
начальном приближении (в некоторой
окрестности минимума) процесс сходится
к минимуму. К достоинствам метода
покоординатного спуска следует также
отнести возможность использования
простых алгоритмов одномерной оптимизации.
Блок-схема метода покоординатного
спуска представлена на рисунке.