Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2 КНИГА ТюмГНГУ.doc
Скачиваний:
95
Добавлен:
09.11.2018
Размер:
5.98 Mб
Скачать

7.4. Метод Франка-Вулфа

Пусть требуется найти максимальное значение вогнутой функции

(7.12)

при условиях

(7.13)

(7.14)

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

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

(7.15)

и строят линейную функцию

Затем находят максимальное значение этой функции при ограничениях (7.13) и (7.14). Пусть решение данной задачи определяется точкой . Тогда за новое допустимое решение исходной задачи принимают координаты точки :

, (7.16)

где λk – некоторое число, называемое шагом вычислений и заключенное между нулем и единицей . Это число λk берут произвольно или определяют таким образом, чтобы значение функции в точке зависящее от λk, было максимальным. Для этого необходимо найти решение уравнения и выбрать его наименьший корень. Если его значение больше единицы, то следует положить λk=1. после определения числа λk находят координаты точки , вычисляют значение целевой функции в ней и выясняют необходимость перехода к новой точке . Если такая необходимость имеется, то вычисляют в точке градиент целевой функции, переходят к соответствующей задаче линейного программирования и находят ее решение. определяют координаты точки и исследуют необходимость проведения дальнейших вычислений. После конечного числа шагов получают с необходимой точностью решение исходной задачи.

Итак, процесс нахождения задачи (7.12)-(7.13) методом Франка-Вулфа включает следующие этапы:

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

  2. Находят градиент функции (7.12) в точке допустимого решения.

  3. Строят функцию (7.15) и находят ее максимальное значение при условиях (7.13) и (7.14).

  4. Определяют шаг вычислений.

  5. По формулам (7.16) находят компоненты нового допустимого решения.

  6. Проверяют необходимость перехода к последующему допустимому решению. В случае необходимости переходят к этапу 2, в противном случае найдено приемлемое решение исходной задачи (7.5).

7.5. Метод штрафных функций

Рассмотрим задачу определения максимального значения вогнутой функции

при условиях

,

где - выпуклые функции.

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

,

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

, (7.17)

где , (7.18)

а аi>0 – некоторые постоянные числа, представляющие собой весовые коэффициенты.

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

(7.19)

Из соотношения (7.18) следует, что если предыдущая точка находится в области допустимых решений исходной задачи, то второе слагаемое в квадратных скобках равно нулю и переход к последующей точке определяется только градиентом целевой функции. Если же указанная точка не принадлежит области допустимых решений, то за счет данного слагаемого на последующих итерациях достигается возращение в область допустимых решений. При этом, чем меньше аi, тем быстрее находится приемлемое решение, однако точность определения его снижается. Поэтому итерационный процесс обычно начинают при сравнительно малых значениях аi и, продолжая его, эти значения постоянно увеличивают.

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

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

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

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

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

  5. Проверяют, удовлетворяют ли координаты найденной точки системе ограничений задачи. Если нет, то переходят к следующему этапу. Если координаты найденной точки определяют допустимое решение задачи, то исследуют необходимость перехода к последующему допустимому решению. В случае такой необходимости переходят к этапу 2, в противном случае найдено приемлемое решение исходной задачи.

  6. Устанавливают значения весовых коэффициентов и переходят к этапу 4.

Градиентный метод с постоянным, переменным и оптимальным шагом

Различают градиентные методы с постоянным шагом и дроблением шага. Наиболее простой метод с постоянным шагом .

При этом достаточно малый шаг обеспечивает убывание (возрастание) целевой функции на каждой итерации, т. е. выполняется условие

, (7.20)

но в этом случае требуется значительно большее количество итераций. Слишком большой шаг может вызвать нарушение неравенства (7.20) или привести к зацикливанию, т. е. неограниченному повторению колебаний около точки экстремума.

Пример. Пусть необходимо найти минимум функции одной переменной , где а > 0.

Формула градиентного метода принимает вид .

Очевидно, при 0<h< процесс будет сходиться, при h > расходиться. Если же принять h=, то произойдет зацикливание, так как , и т. д.

В данном примере зацикливание легко устраняется путем уменьшения шага.

Пример. Найти максимум функции двух переменных

градиентным методом с постоянным шагом.

Решение. Выберем начальную точку и шаг h = 0,2. Компоненты градиента находятся дифференцированием функции по х1 и х2.

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

Результаты вычислений представлены в таблице 7.1.

При к =5 итерационный процесс прекращен, так как < 0,2.

Для самоконтроля представим целевую функцию в виде суммы квадратов , очевидно, что

; ;

Полученный результат х1 = 0,9222 и х2 = 2,9992 мало отличается от точного.

Таблица 7.1

Результаты вычислений

k

0

0

0

2

12

0,4

2,4

12,17

3

1

0,4

2,4

1,2

2,4

0,24

0,48

2,68

20,92

2

0,64

2,88

0,72

0,46

0,144

0,096

0,865

21,84

3

0,784

2,976

0,432

0,096

0,0864

0,0192

0,443

21,952

4

0,8754

2,9952

0,2592

0,02

0,0518

0,004

0,260

21,983

5

0,9222

2,9992

0,1556

0,003

-

-

0,156

21,994

Траектория поиска экстремума представлена на рисунке 7.4.

Рис.7.4. Траектория поиска экстремума