- •Оптимизация
- •1. , Отсюда
- •2. , Откуда
- •Оптимизация функции одной переменной
- •Методы поиска
- •Метод золотого сечения
- •Блок-схема метода "золотого сечения"
- •Оптимизация функции многих переменных Минимум функции нескольких переменных
- •Общий алгоритм методов многомерного поиска:
- •Вычисление производных функции
- •Градиентные методы поиска экстремума
- •Алгоритм простого градиентного метода:
- •Алгоритм метода наискорейшего спуска:
- •Симплексный метод
- •Расчет координат новой вершины симплекса
- •Алгоритм метода "деформируемых многогранников"
Блок-схема метода "золотого сечения"
В этой блок-схеме y, z - точки деления отрезка [a, b],причем y < z.

Ввод a,b,e
y = 0.618a + 0.382b
z = 0.382a + 0.618b
Fy = f(y) : Fz = f(z)
Да Нет
Fy < Fz
b = z a=y
Да Да
b - a < e b - a < e
Нет Нет
z = y : Fz = Fy y = z : Fy = Fz
y = 0.618a + 0.382b z = 0.382a + 0.618b
Fy = f(y) Fz = f(z)
x = (a + b)/2
Вывод x, f(x)
Пример. Для оценки сопротивления дороги движению автомобиля при скорости v км/ч можно использовать эмпирическую формулу f(v) = 24 - 2/3*v + 1/30*v2 (для шоссе). Определить скорость, при которой сопротивление будет минимальным.
Решение.
1) Данную задачу легко решить с помощью вычисления производной:
,
v = 10
км/ч
.
2) Решение с помощью метода "золотого сечения". Начальные границы интервала неопределенности примем равными a = 5, b = 20.
Решение для первого этапа:
y = 0.618*5 + 0.382*20 » 10.7 : z = 0.382*5 + 0.618*20 » 14.3
Fy = 24 - 2*10.7/3 + 10.72/30 » 20.7 : Fz = 24 - 2*14.3/3 + 14.32/30 » 21.3
Fy < Fz
Результаты вычислений обычно представляют в виде таблицы. Расчеты проводятся в соответствии с блок-схемой с погрешностью e = 1 км/ч .
|
Шаг |
a |
y |
z |
b |
Fy |
Fz |
b-a |
|
1 |
5 |
10.7 |
14.3 |
20 |
20.7 |
21.3 |
15 |
|
2 |
5 |
8.6 |
10.7 |
14.3 |
20.73 |
20.68 |
9.3 |
|
3 |
8.6 |
10.7 |
12.1 |
14.3 |
20.68 |
20.81 |
5.7 |
|
4 |
8.6 |
9.9 |
10.7 |
12.1 |
20.66 |
20.68 |
3.5 |
|
5 |
8.6 |
9.4 |
9.9 |
10.7 |
20.68 |
20.66 |
2.1 |
|
6 |
9.4 |
|
10.7 |
|
|
|
|
После пяти шагов оптимизации искомое значение скорости равно v = (8.6+10.7)/2 = 9.65 км/ч. После еще одного шага этот результат получается с меньшей погрешностью v = (9.4+10.7)/2 = 10.05 км/ч.
Оптимизация функции многих переменных Минимум функции нескольких переменных
Минимум дифференцируемой функции многих переменных u = f(x1, x2, … , xn) можно найти, исследуя ее значение в критических точках, которые определяются из решения системы дифференциальных уравнений
.
Отметить, что в данном случае критические точки могут соответствовать либо экстремальным, либо "седловым" точкам (точкам "минимакса"). Под этими точками понимаются такие точки, в которых по некоторым направлениям функция имеет минимум, а по остальным направлениям - максимум.
Пример постановки задачи. Пусть требуется спроектировать контейнер в форме прямоугольного параллелипипида объемом V=1 м3, причем на его изготовление необходимо израсходовать как можно меньше материала.
При постоянной толщине стенок это условие означает, что площадь полной поверхности контейнера S должна быть минимальной. Если обозначить через x1, x2 и x3 длины ребер контейнера, то задача сведется к минимизации функции:
S = 2 (x1 x2 + x1 x3 + x2 x3) .
Эта функция в данном случае является целевой, а условие V = 1 м3 - ограничением-равенством, которое позволяет исключить один параметр:
.
Тогда

Задача свелась к минимизации функции двух переменных. В результате ее решения будут найдены значения параметров оптимизации x1 и x2, а затем и x3. В приведенном примере фактически получилась задача безусловной оптимизации, так как ограничение-равенство было использовано для исключения параметра x3.
Решение. После дифференцирования получим


Отсюда находят x1 = x2 =1 м, x3 = 1/(x1x2) = 1 м. Таким образом, оптимальной формой контейнера в данном случае является куб, длина ребра которого равна 1 м.
При таком подходе могут возникнуть серьезные трудности при решении системы нелинейных уравнений.
Вместе с тем, можно эту задачу усложнить. Например, потребуем, чтобы данный контейнер имел длину не менее 2 м. Это условие запишется в виде ограничения-неравенства на один из параметров, например, x1 ³ 2 .
Таким образом, получили следующую условную задачу оптимизации: минимизировать функцию

учитывая ограничение-неравенство x1 ³ 2 и найти оптимальные значения факторов x2, x3 (x2³0, x3³0).
Графическое представление функции двух переменных: рассмотреть функцию
f(x1, x2) = x12 + x22 .
Показать линии равного уровня для этой функции.
Дать общий вид трех возможных вариантов линий равного уровня, показать "овражные" функции.
В общем случае для поиска минимального значения целевой функции можно ввести дискретное множество точек (узлов) путем разбиения интервалов изменения параметров x1 и x2 на части с шагами h1 и h2. В полученных узлах можно вычислить значения целевой функции и среди них найти наименьшее. Однако в многомерных задачах оптимизации такой подход требует слишком большого объема вычислений.
