- •1. Задачи оптимизации
- •1.1. Основные понятия
- •1.2. Постановка задачи оптимизации
- •1.2.1 Задача безусловной оптимизации
- •1.2.2. Задача условной оптимизации
- •1.2.3. Классическая задача на условный экстремум
- •1.2.4. Понятия выпуклого множества и выпуклой функции
- •1.2.5. Выпуклая задача оптимизации
- •1.2.6. Задача математического программирования
- •1.2.7. Задачи выпуклого программирования
- •1.2.8. Задачи линейного и квадратичного программирования
- •1.2.9. Задача дискретной оптимизации
- •1.2.10. Задачи оптимального управления
- •2.Начальные сведения о численных методах оптимизации
- •2.1. Понятие о численных методах оптимизации
- •2.2. Сходимость методов оптимизации
- •2.3. Условия остановки (критерии окончания счета)
- •2.4. Направление убывания и методы спуска
- •2.5. Выбор длины шага из условия минимизации функции вдоль заданного направления
1.2.6. Задача математического программирования
Задача (1.1) называется задачей математического программирования, если ее допустимое множество имеет вид
,
т.е. задается системой конечного числа неравенств и уравнений, рассматриваемых, вообще говоря, на некотором множестве Р Rn. Иными словами, задачу математического программирования можно записать в виде
f(x) min,
gi(x) 0, i = 1, …, k, (1.21)
gi(x)= 0, i = k+1, …, т, x P.
При этом условия типа gi(x) 0 называются ограничениями-неравенствами, типа gi(x)= 0 – ограничениями-равенствами, оба этих типа условий — функциональными ограничениями; условие x P носит название прямого ограничения.
Классическая задача на условный экстремум является частным случаем задачи математического программирования, когда ограничения-неравенства и прямое ограничение отсутствуют.
Деление ограничений задачи математического программирования на функциональные и прямые условно. Например, в задаче (1.21) можно исключить ограничения-равенства путем введения их в прямое ограничение, т.е. перейти к задаче вида
f(x) min,
gi(x) 0, i = 1, …, k, x P',
где . Исключение всех функциональных ограничений лишь возвращает нас к задаче вида (1.1). То или иное представление задачи определяется целями исследования. Однако, как правило, чем подробнее описаны функциональные ограничения задачи, тем детальнее удается изучить ее свойства. Обычно в качестве Р берется множество «простой» структуры, например координатный параллелепипед
,
причем здесь не исключается, что aj = - или bj = + (координаты могут уходить в бесконечность) при тех или иных j.
При геометрической интерпретации задач математического программирования используются те же приемы, о которых шла речь выше. В дополнение к этому следует лишь отметить, что при изображении области, определяемой ограничением-неравенством gi(x) 0, указывается линия уровня gi(x) = 0 и может ставиться знак «–» с той ее стороны, где gi(x) 0, и знак «+» - с противоположной.
Пример 1.5. Пусть дана задача
f(x) = x2 min,
, , .
Ее геометрической интерпретацией служит рис.1.8. Отсюда видно, что решением задачи является «нижняя» точка пересечения окружности g1(x) = 0 и прямой g3(x) = 0, т.е. .
1.2.7. Задачи выпуклого программирования
Укажем важный подкласс задач математического программирования. Задача (1.21) называется задачей выпуклого программирования, если множество Р выпукло, функции f, g1, ..., gk выпуклы на Р, функции gk+1, ..., gm линейны (см. (1.19)).
Легко проверить, что задача из примера 1.5 является задачей выпуклого программирования. Приведем два содержательных примера задач этого типа.
Пример 1.6 (задача поиска). Объект, подлежащий обнаружению, находится в одном из п районов с вероятностями р1, ..., рп соответственно. Для поиска объекта имеется общий ресурс времени Т. Известно, что при поиске в i-м районе в течение времени ti, вероятность обнаружения объекта (при условии, что он там находится) равна , где i > 0 – заданное число. Требуется так распределить время наблюдения по районам, чтобы максимизировать вероятность обнаружения объекта. Соответствующая задача оптимизации имеет вид
,
,
ti 0, i = 1, …, n.
Нетрудно проверить, что целевая функция задачи вогнута по t = (t1, …, tn). Переходя к минимизации этой функции, взятой с обратным знаком, получаем задачу выпуклого программирования.