II. Нелинейное программирование

Нелинейное программирование— случай математического программирования, в котором целевой функцией или ограничением является нелинейная функция

Задача нелинейного программирования ставится как задача нахождения оптимума определенной целевой функции F(x1,… xn) при выполнении условий

gi(x1,…xn) ≥ 0

где xi, i=1, . . . , n — параметры, gi, j=1, . . . ,s — ограничения,n — количество параметров, s — количество ограничений.

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

Метод Фибоначчи

Постановка задачи

Требуется найти безусловный минимум функции f(x) одной переменной, т.е. такую точку II. Нелинейное программирование - student2.ru , что II. Нелинейное программирование - student2.ru .

В методе Фибоначчи реализована стратегия, обеспечивающая максимальное гарантированное сокращение интервала неопределенности при заданном количестве вычислений функции. Эта стратегия опирается на числа Фибоначчи.

Определение. Числа Фибоначчи определяются следующим образом:
II. Нелинейное программирование - student2.ru .
Последовательность чисел Фибоначчи имеет вид 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,… .

Стратегия поиска.

Метод относится к последовательным стратегиям. Задается начальный интервал неопределенности и количество N вычислений функции. Алгоритм основан на анализе величин функции в двух точках. Точки вычисления функции находятся с использованием последовательности из N+1 чисел Фибоначчи. Как и в методе золотого сечения, на первой итерации требуется два вычисления функции, а на каждой последующей итерации, требуется только одно новое вычисление функции. Поиск заканчивается, когда длина текущего интервала неопределенности оказывается меньше установленной величины.

Алгоритм

Шаг 1. Задать начальный интервал неопределенности II. Нелинейное программирование - student2.ru , ], допустимую длину конечного интервала l > 0 и константу различимости II. Нелинейное программирование - student2.ru .
Шаг 2. Найти количество N вычислений функции как наименьшее целое число, при котором удовлетворяется условие II. Нелинейное программирование - student2.ru , и числа Фибоначчи II. Нелинейное программирование - student2.ru .
Шаг 3. Положить k=0.
Шаг 4. Вычислить значения :
II. Нелинейное программирование - student2.ru .
Шаг 5. Вычислить II. Нелинейное программирование - student2.ru , II. Нелинейное программирование - student2.ru .
Шаг 6. Сравнить II. Нелинейное программирование - student2.ru с II. Нелинейное программирование - student2.ru
а) если II. Нелинейное программирование - student2.ru II. Нелинейное программирование - student2.ru II. Нелинейное программирование - student2.ru , положить
II. Нелинейное программирование - student2.ru
Перейти к шагу 7;

б) если II. Нелинейное программирование - student2.ru > II. Нелинейное программирование - student2.ru , положить
II. Нелинейное программирование - student2.ru .
Шаг 7. Проверить условие окончания и в случае необходимости сделать заключительное N-е вычисление функции для получения решения:
а) если II. Нелинейное программирование - student2.ru , положить k=k+1 и перейти к шагу 5;
б) если k=N-3, то всегда II. Нелинейное программирование - student2.ru , т.е. отсутствует точка нового вычисления функции. В этом случае полагают: II. Нелинейное программирование - student2.ru . В точках II. Нелинейное программирование - student2.ru вычисляют значения функции и находят границы конечного интервала неопределенности:

Если II. Нелинейное программирование - student2.ru , положить II. Нелинейное программирование - student2.ru

Если II. Нелинейное программирование - student2.ru , положить II. Нелинейное программирование - student2.ru

Поиск завершен и II. Нелинейное программирование - student2.ru . В качестве приближения можно взять середину этого интервала II. Нелинейное программирование - student2.ru .

Сходимость.

Для метода Фибоначчи характеристика относительного уменьшения начального интервала неопределенности находится по формуле II. Нелинейное программирование - student2.ru , где N - количество вычислений функции.

Наши рекомендации