К задачам нелинейного программирования относятся такие задачи, в которых или целевая функция, или система ограничений, или и целевая функция и система ограничений содержат выражения, нелинейные относительно переменных. Такого рода задачи возникают на практике в тех случаях, когда, например, затраты растут не пропорционально количеству произведенной или закупленной продукции.
Задачи нелинейного программирования можно классифицировать в соответствии с видом целевой функции f(Х), функциями ограничений и количеством переменных в задаче (размерностью вектора решений Х).
Обобщенно классификация может быть представлена в следующем виде:
Таблица 1
Классификация задач нелинейного программирования
Вид функции f(Х) | Вид функций ограничений | Число переменных | Название задачи |
Нелинейная | Отсутствуют | Одна | Безусловная однопараметрическая оптимизация |
Нелинейная | Отсутствуют | Более одной | Безусловная многопараметрическая оптимизация |
Нелинейная | Нелинейные или линейные | Более одной | Условная нелинейная оптимизация |
Линейная | Нелинейные | Более одной | Условная нелинейная оптимизация |
В общем виде задача нелинейного программирования формулируется так:
найти значения вектора Х переменные xj (j=1÷ n), при которых f(X) =
= f(x1, x2, …,xn)®max (min)
при ограничениях gi(x1, x2, …,xn) ≤ (≥, =) ai0, i=1÷m;
где f и g - заданные функции от n переменных.
Для задач нелинейного программирования, в отличие от линейных задач, нет универсального метода решения. Напомним некоторые свойства задач линейного программирования:
· множество допустимых решений выпукло. Это выпуклое множество имеет конечное число вершин, которые обычно называют крайними или угловыми точками;
· целевая функция, принимая определенное значение, представляет собой гиперповерхность уровня. Все гиперповерхности уровня, соответствующие разным значениям целевой функции, параллельны между собой;
· для задач линейного программирования не существует понятий локального максимума (минимума) и глобального. На множестве допустимых решений локальный оптимум является также и глобальным;
· если область допустимых решений ограничена, то задача линейного программирования всегда имеет решение, которое достигается, по крайней мере, в одной из вершин (крайних, угловых точках) множества допустимых решений.
В произвольной задаче нелинейного программирования многие перечисленные свойства могут отсутствовать.
Рассмотрим некоторые особенности задач нелинейного программирования.
1. Область допустимых решений не обязательно является выпуклым множеством.
Пример 1. Дана система ограничений:
(x1 – 2)2 + (x2 – 2)2 ≤ 4
(x1 – 3)2 + (x2 – 3)2 ≥ 1
x1³ 0; x2³ 0
и целевая функция maxZ = 1,5x1+1,5x2 .
Рис.1. Область допустимых решений - невыпуклое множество
Заменим неравенство на равенство: (x1 – 2)2 + (x2 – 2)2 = 4. Данное выражение геометрически представляет собой окружность с центром в точке с координатами (2; 2) и радиусом, равным =2.
Аналогично со вторым ограничением: (x1 – 3)2 + (x2 – 3)2 =1. Строим окружность с центром в точке (3; 3) и радиусом, равным 1.