Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
смирнов шпоры.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
499.73 Кб
Скачать

2.Решение задач нелинейного программирования методом штрафных функций.

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

При использовании этого метода задача в отличии от метода Франка-Вулфа решается не на прямую, а через поиск максимального значения некоторой дополнительно вводимой функции:

Сумма целевой функции и некоторой дополнительной функции (Н) определяемой условиями ограничений и называемой штрафной функцией.

Эту штрафную функцию можно вводить различными способами. Наиболее часто ее вводят с помощью следующего выражения:

Где определяется из условия:

Где - положительное число, играющее роль весового коэффициента.

Используя штрафную функцию задачу решают методом многих итераций, переходя от одной к другой до тех пор, пока не будет получено приемлемое решение.

Причем координаты очередной точки находят по выражению:

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

Тогда, если предыдущая точка находится в области допустимых решений, то второе слагаемое в квадратных скобках всегда равно 0 и переход к последующей точке определяется только градиентом целевой функции.

Если же полученная точка не находится а области допустимых решений то за счет не нулевого значения второго слагаемого в квадратных скобках на очередной точке осуществляется возвращение в область допустимых решений.

При этом установлено: чем меньше значение , тем быстрее находится приемлемое решение. Однако при этом снижается точность решения.

Поэтому итерационный процесс решения задачи начинают при сравнительно небольших значениях и постепенно по мере итераций значение увеличивают.

Итак, процесс решения задачи нелинейного программирования методом штрафных функций реализуется путем выполнения следующей последовательности действий:

  1. Определяют исходное допустимое решение;

  2. Выбирают шаг вычислений ;

  3. Находят по всем переменным частные производные от целевой функции и от функций определяющих область допустимых решений;

  4. По формуле вычисления находят координаты новой точки определяющей возможное новое решение задачи;

  5. Проверяют, удовлетворяют ли координаты новой точки системе исходных функций ограничений, если координаты полученной находятся в области допустимых решений, то следует необходимость перехода к последующему допустимому решению; если условие не выполняется, то переходят к новой точке, а если выполняется – считают полученное решение приемлемым.