Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект лекций по ПРЭС (2012 год).doc
Скачиваний:
2
Добавлен:
01.03.2025
Размер:
6.61 Mб
Скачать

5.3. Численное решение одномерных задач оптимизации

Рассмотрим следующий пример. Химический завод производит некоторое вещество. Выход интересующего нас продукта определяется температурой: y = f(T). Температуру можно варьировать в определенных пределах: T1 TT2. Вид функции f заранее неизвестен, но зависит от используемого сырья. Получив очередную партию сырья, нужно найти температуру T, при которой наиболее выгодно вести производство, т. е. функция f(T) достигает своего наибольшего значения.

С математической точки зрения мы имеем типичную одномерную задачу оптимизации. В то же время между этой задачей и задачей о консервной банке имеется существенное различие. В данном случае нет никакой формулы для целевой функции f(T). Чтобы определить ее значение при некоторой температуре Т, нужно провести опыт в лаборатории (если это возможно), либо прямо в производственных условиях. Совершенно ясно, что возможно лишь конечное число измерений и тем самым функция f(T) будет известна нам в конечном числе точек. Значений ее производных мы вообще определить не можем. Остается добавить, что каждое измерение требует времени, а задерживать производство нельзя. Поэтому необходимо получить ответ на поставленный вопрос после небольшого числа измерений, т. е. по значениям функции y = f(T) в нескольких точках.

Итак, обсудим математические вопросы, связанные со следующей постановкой одномерной задачи оптимизации, определяя значение непрерывной функции f(х) в некотором конечном числе точек отрезка [a, b], нужно приближенно найти ее наименьшее (или наибольшее) значение на данном отрезке.

Рассмотрим разные подходы к решению этой задачи.

5.3.1 Метод равномерного распределения точек по отрезку

Идея этого метода наиболее проста и естественна. Возьмем некоторое число (целое) n, вычислим шаг h = (ba) / n и определим значения функции f(х) в точках xk = a + kn (k = 0, 1, …, n): yk = f(xk). После этого найдем среди полученных чисел наименьшее:

mn = min (y0, y1, …, yn) = min f(x), x [a, b]

Число mn можно приближенно принять за наименьшее значение функции f(х) на отрезке [a, b]. Благодаря непрерывности функции имеем f(х)

,

т. е. с увеличением числа точек n ошибка, которую мы допускаем, принимая mn за m стремится к нулю. В этом методе нас может ожидать неприятность, которую иллюстрирует рисунок 5.2.

Рисунок 5.2.

На нем приведен график некоторой непрерывной функции. Допустим, что, желая найти ее наименьшее значение, мы взяли m = 8. Определяя значения функции yk = f(xk) в точках xk (k = 0, 1, …, 8) получим

m8 = min (y0, y1, …, y8) = y6 = f(x6)

В данном случае из-за недостаточного числа точек мы пропустим «узкий язык» между х1 и х2 , который опускается гораздо ниже y6 = f(x6). Поэтому при решении вопроса о числе точек важно максимально полно использовать всю дополнительную информацию о свойствах целевой функции, о степени ее гладкости, вытекающую из характера и особенностей задачи. Не последнюю роль играет и такой фактор, как опыт, интуиция исследователя.

5.3.2. Метод распределения точек по отрезку, учитывающий результаты вычисления целевой функции

Распределяя точки xk равномерно, мы уделяем одинаковое внимание всем участкам отрезка: тем, где целевая функция велика и тем, в направлении которых она убывает, т. е. не используем информацию о функции f(x), которую мы получаем по мере вычисления чисел yk = f(xk).

Организацию вычислений по такой схеме можно сравнить с поведением в лесу неопытно грибника. В поисках грибов он ходит по всему лесу, не чувствуя разницы между грибными и негрибными местами. Опытный же грибник подолгу задерживается на грибных местах, а через негрибные места проходит быстро, не тратя на них лишнего времени.

Чтобы организовать поиск наименьшего значения функции по методу «опытного грибника», нужно отказаться от равномерного распределения точек, а выбирать очередную точку с учетом информации, которую мы получили о функции f(x) в результате ее вычисления в предыдущих точках. При этом основанное внимание следует уделять тем участкам отрезка [a, b], где вычисления дают малые значения функции, просматривая другие участки более бегло. Реализовать эту идею можно, например, следующим образом.

Вычислим значения функции f(x) в двух граничных точках x0 = a и x1 = b: y0 = f(x0), y1 = f(x1). После этого следующую точку x2 выберем ближе к тому концу отрезка, на котором функция принимает меньшее значение. Ее положение определим соотношением между числами y0 и y1: чем больше разница, тем сильнее будет сдвиг точки х2 в соответствующую сторону. Точку х3 выберем с учетом взаимного расположения точек x0, x1, x2 и соотношения между числами y0, y1, y2 и т. д. Мы не будем останавливаться на описании возможных алгоритмов выбора очередной точки xk по информации, полученной в результате вычисления целевой функции на предыдущих шагах – это специальный вопрос, исследования в данной области продолжаются, алгоритмы совершенствуются, и рано говорить об окончательном решении задачи.