- •Глава 8. Нелинейное программирование
- •8.1. Характеристика задач
- •8.2. Условия оптимальности
- •Теорема
- •8.3. Квадратичное программирование
- •8.4. Сепарабельное программирование (сп)
- •8.5. Задачи дробно-линейного программирования
- •8.6. Методы "спуска"
- •8.7. Методы одномерной минимизации
- •8.7.1. Метод деления шага пополам
- •8.7.2. Квадратичная аппроксимация
- •8.7.3. Метод деления интервала пополам
- •8.7.4. Метод золотого сечения
- •8.7.5. Метод Фибоначчи
- •8.7.6. Метод первого порядка
- •8.8. Многомерный поиск безусловного минимума
- •8.8.1. Метод Гаусса-Зейделя (покоординатного спуска)
- •8.8.2. Метод Хука-Дживса (метод конфигураций)
- •8.8.3. Симплексный метод
- •8.8.4. Градиентные методы
- •8.8.6. Методы сопряженных направлений
- •8.8.7. Методы случайного поиска
- •Алгоритм с возвратом при неудачном шаге
- •Алгоритм с обратным шагом
- •Алгоритм наилучшей пробы
- •Алгоритм статистического градиента
- •8.8.8. Генетические алгоритмы
- •8.9. Методы условной оптимизации
- •8.9.1. Метод проектирования градиента
- •8.9.2.Метод штрафных функций
- •8.9.3. Метод барьерных функций
- •8.9.4. Другие методы условной оптимизации
- •8.10. Задания для самостоятельной работы
8.9.4. Другие методы условной оптимизации
Если все ограничения задачи заданы в виде неравенств, то для поиска условного минимума могут применяться модификации некоторых методов безусловной оптимизации. Так в методах случайного поиска модификация заключается в изменении условия успешности шага или направления. Шаг считается успешным. если он приводит в точку, в которой улучшается значение целевой функции и выполняются все ограничения. С этой целью добавляется проверка каждой точки на принадлежность допустимому множеству. В остальном алгоритмы остаются без изменений.
Аналогичное дополнение алгоритма Хука-Дживса делает его пригодным для поиска условного минимума. Генетические алгоритмы также могут использоваться для условной оптимизации. Для этого в них вводится детерминированный оператор жизнеспособности: если особь не удовлетворяет условиям "жизни", она погибает. Такой оператор должен применяться к каждой особи.
В данной главе не затронуты вопросы, возникающие при минимизации многоэкстремальных функций. Задача поиска глобального минимума многократно сложнее локальной оптимизации. Напомним, что при минимизации унимодальных функций в одних методах направление спуска выбирается по локальной модели целевой функции, например, линейной (градиентные методы) или квадратичной (метод Ньютона), в других – без использования модели, например, симплексный и случайные методы. В случае многоэкстремальной функции методы поиска строятся также на основе либо модели глобального поведения функции, либо эвристических представлений.
Несмотря на интенсивные исследования проблемы глобальной оптимизации сегодня нет эффективных методов, построенных на идее глобального поведения функции. Практическое применение находят в основном подходы, испоьзующие локальный спуск из многих начальных точек с последующим выбором лучшего из найденных решений. Многократный спуск иногда называют мультистартом. Ему присущи такие недостатки как возможность неоднократного спуска в одну и ту же точку и отсутствие гарантии попадания в область притяжения глобального минимума. Эффективность мультистарта повышают за счет обеспечения выхода из "мелких" минимумов, исключения повторных спусков в найденные минимумы и т.п. С этой целью процессу спуска придают инерцию, которая позволяет проскакивать "неглубокие" минимумы (метод тяжелого шарика), изменяют целевую функцию для придания ей "туннельного эффекта", обеспечивающего переход из найденного в более глубокий минимум, используют редукцию задачи и другие идеи.
8.10. Задания для самостоятельной работы
1. Решить следующие задачи квадратичного программирования симплекс-методом с использованием правила ограниченного ввода. Результаты представить графически (допустимое множество и оптимумы).
1) f=max 2x1 + x2 4 - x1 + x2 2 x1,x2 0 |
2) f=max 4x1 + 3x2 12 - x1 + x2 1 x1,x2 0 |
3) f=max 3x1 + x2 15 x1 + 2x2 10 x1,x2 0 |
4) f=max 6x1 + 2x2 30 2x1 + 4x2 20 x1,x2 0 |
5) f=max -2x1 + x2 2 x1 + x2 3 x1,x2 0 |
6) f=max 3x1 + 5x2 15 x1 - x2 1 x1,x2 0 |
7) f=max 3x1 + 6x2 18 x1 - 4x2 4 x1,x2 0 |
8) f=max 4x1 - x2 8 x1 + x2 12 x1,x2 0 |
9) f=max 3x1 + 4x2 12 x1 - 2x2 2 x1,x2 0 |
10) f=max 8 - 2x2 0 5 - x1 - x2 0 x1,x2 0 |
11) f=max - x1 + x2 2 2x1 + x2 4 x1,x2 0 |
12) f=max 3x1 + x2 15 x1 + 2x2 10 x1,x2 0 |
13) f=max - 2x1 + x2 2 2x1 + 2x2 6 x1,x2 0 |
14) f=max 2x1 + 4x2 24 7x1 + 5x2 35 x1,x2 0 |
15) f=max 2x1 + 6x2 30 2x1 + x2 8 x1,x2 0 |
16) f=max 6x1 + 2x2 24 2x1 + 4x2 18 x1,x2 0 |
17) f=max x1 + 2x2 12 7x1 + 5x2 35 x1,x2 0 |
18) f=max 4 - x2 0 5 - x1 - x2 0 x1,x2 0 |
19) f=max - x1 + 2x2 2 2x1 - x2 2 x1,x2 0 |
20) f=max -2x1 + 2x2 2 x1 + 0,75x2 3 x1,x2 0 |
21) f=min x1 + 3x2 12 x1 + x2 6 x1,x2 0
|
22) f=max 3x1 + 4x2 12 x1 - 2x2 2 x1,x2 0 |
23) f=max 3x1 + 6x2 18 x1 - 4x2 4 x1,x2 0
|
24) f=min x1 + 3x2 12 x1 + x2 6 x1,x2 0 |
2. Найти минимум функции на заданном интервале [a,b] а) методом золотого сечения, б) методом Фибоначчи. Данные приведены в таблице.
f=k(x-a) (b-x)
№ |
k |
a |
b |
|
|
|
1 |
-0.5 |
2 |
10 |
1.2 |
3 |
0.1 |
2 |
-1.2 |
5 |
14 |
2 |
1.5 |
0.15 |
3 |
-2 |
1 |
12 |
3 |
1 |
0.15 |
4 |
-0.1 |
4 |
16 |
1 |
2 |
0.2 |
5 |
-3 |
10 |
15 |
2 |
2 |
0.05 |
6 |
-1.5 |
3 |
13 |
1.8 |
2.5 |
0.15 |
7 |
-2 |
-3 |
9 |
3 |
1.2 |
0.2 |
8 |
-1 |
-5 |
6 |
2.5 |
2 |
0,18 |
3. Найти безусловный минимум нижеследующих функций двух переменных а) методом Хука-Дживса, б) методом наискорейшего спуска, в) методом Ньютона. Спуск провести из двух раличных начальных точек. Одномерный метод и точность выбрать по своему усмотрению.
3.1. f =
3.2. f = (x1-2)4+( x1-2x2)2,
3.3.,
3.4. f = (x1-2)4+6( x1-2x2)2,
3.5. f =,
3.6. .
4.Найти условный минимум методом штрафных функций в задачах:
4.3. f = (x1-2)4+20( x1-2x2)2min,
x22x1+2.
Примечание. Задания 3 и 4 можно дополнить требованием представить графически траектории поиска из нескольких начальных точек на фоне линий уровня целевой функции (и ограничения для п.4).