Общая задача нелинейного программирования
Во многих экономических моделях зависимости между постоянными и переменными факторами лишь в первом приближении можно считать линейными, более детальное рассмотрение позволяет обнаружить их нелинейность. Как правило, такие показатели, как прибыль, себестоимость, капитальные затраты на производство и др., в действительности зависящие от объема производства, расхода ресурсов и т.п., не линейны.
Общая оптимизационная задача формулируется следующим образом: найти вектор X=(x1,x2, ... , xn), удовлетворяющий системе ограничений, представляемых в виде совокупности равенств и/или неравенств вида
ji(x1, x2, ... , xn) £ bi , i=1,2,...,k, (1)
ji(x1, x2, ... , xn) = bi , i=k+1,k+2,...,m
и доставляющий экстремальное значение целевой функции
Z=f(x1, x2, ... , xn); (2)
При этом на некоторые переменные x1, x2, ... , xn могут накладываться условия неотрицательности и целочисленности.
В случае если одна из функций ji и/или f будет нелинейной, то полученную модель считают задачей нелинейного программирования (ЗНП). Класс ЗНП шире класса ЗЛП. Основные результаты получены при рассмотрении задач, в которых ограничения имеют линейный вид, а целевая функция нелинейная. Рассмотрим частные случаи, когда целевая функция сепарабельная (ее можно представить в виде суммы функций, каждая из которых зависит от одной переменной) или квадратичная.
С помощью большинства вычислительных методов можно найти точку локального оптимума, но нельзя установить, является ли она точкой глобального (абсолютного) оптимума или нет. Если задача содержит нелинейные ограничения, то область допустимых решений не является выпуклой и кроме глобального оптимума могут существовать точки локального оптимума.
Можно выделить класс нелинейных задач, которые относятся к классическим методам оптимизации. Рассмотрение ЗНП начинают с классической задачи оптимизации. Задачи такого рода имеют место, если система (1) содержит только уравнения, отсутствуют условия неотрицательности и целочисленности переменных, а функции ji(x1, x2, ... , xn) и f(x1, x2, ... , xn) непрерывны и имеют частные производные не ниже второго порядка. Т.е. задачу оптимизации можно сформулировать так: найти переменные x1, x2, ... , xn, удовлетворяющие системе уравнений
ji(x1, x2, ... , xn) = bi , i=1,2,...,m, (3)
и обращающие в максимум (минимум) целевую функцию
Z=f(x1, x2, ... , xn). (4)
Примером типичной и простой ЗНП является следующая: данное предприятие для производства какого-то продукта расходует два средства в количестве х1 и х2 . Это факторы производства, например, машины и труд, а величины х1 и х2 – затраты факторов производства. Объем производства (выраженный в натуральных или стоимостных единицах) является функцией затрат производства Z=f(x1, x2). Эта зависимость называется производственной функцией. Издержки зависят от расхода обоих факторов (x1 и x2) и от цен этих факторов (с1 и с2). Совокупные издержки выражаются формулой b=c1x1+c2x2. Требуется при данных совокупных издержках определить такое количество факторов производства, которое максимизирует объем продукции Z.
Математическая модель этой задачи: найти переменные x1, x2, удовлетворяющие условиям b=c1x1+c2x2, х1³0, х2³0, при которых функция Z=f(x1, x2) достигает максимума. Как правило, функция Z может иметь произвольный нелинейный вид.
Максимум и минимум функции объединяется понятием экстремум, который может быть локальным или глобальным.
Используя классические методы оптимизации, следует четко представлять себе различие между локальным экстремумом функции, глобальным экстремумом и условным экстремумом.
Будем полагать, что функция Z=f(x1, x2, ... , xn)= f(Х) дважды дифференцируема в точке Х*=(x*1, x*2, ... , x*n) и в некоторой ее окрестности. Если для всех точек Х этой окрестности f(Х*)³ f(Х) или f(Х*)£ f(Х), то говорят, что функция f(Х) имеет локальный экстремум в Х* (соответственно максимум или минимум).
Точка Х*, в которой все частные производные функции f(Х) равны 0, называется стационарной точкой.
Необходимое условие экстремума: если в точке Х* функция f(Х) имеет экстремум, то частные производные функции в этой точке равны нулю:
Как правило, в практических задачах необходимо определить наибольшее и наименьшее значение функции (глобальный экстремум) в некоторой области.
Функция Z=f(Х) имеет в точке Х* заданной области D глобальный максимум (наибольшее значение) или глобальный минимум (наименьшее значение), если неравенство f(Х*)³ f(Х) или f(Х*)£ f(Х) соответственно выполняется для любой точки
ХÎ D.
Если область D замкнута и ограничена, то дифференцируемая функция Z=f(Х) достигает в этой области своих наибольшего и наименьшего значений в стационарной точке или в граничной точке области (теорема Вейерштрасса).
Следовательно, чтобы найти наибольшее (наименьшее) значение функции Z=f(Х) в области D, нужно:
1) найти все стационарные точки внутри области D и вычислить значения функции в них;
2) исследовать функцию на экстремум на границе области D;
3) сравнить значения функции, полученные в п.1 и 2: наибольшее (наименьшее) из этих чисел и будет наибольшим (наименьшим) значением функции в этой области.
Граница области D аналитически может быть задана системой уравнений (условий) относительно переменных x1, x2, ... , xn. Поэтому, исследуя экстремальные свойства функции на границе, необходимо решить задачу определения условного экстремума.
Пусть необходимо найти экстремум функции Z=f(x1, x2, ... , xn) при условии, что переменных x1, x2, ... , xn удовлетворяют уравнениям
ji(x1, x2, ... , xn) = 0 , i=1,2,...,m, m<n. (*)
Предполагается, что функции f и ji имеют непрерывные частные производные по всем переменным. Уравнения (*) называют уравнениями связи.
Функция Z=f(Х) имеет в точке , удовлетворяющей уравнениям связи (*), условный максимум (минимум), если неравенство f( )³ f(Х) (f( )£ f(Х)) имеет место для всех точек Х, координаты которых удовлетворяют уравнениям связи.
Легко заметить, что задача определения условного экстремума совпадает с ЗНП (3), (4).
Один из способов определения условного экстремума применяется в том случае, если из уравнений связи m переменных можно явно выразить через оставшиеся n-m переменных:
xi=yI(xm+1, …,xn), i=1,2,…,m.
Подставив полученные выражения для xi в функцию Z, получим
Z= f(y1(xm+1, …,xn),…, ym(xm+1, …,xn), xm+1, …,xn), или Z=F(xm+1, …,xn).
Задача сведена к нахождению локального (глобального) экстремума для функции
n-m переменных. Если в точке функция Z=F(xm+1, …,xn) имеет экстремум, то в точке =(y1 ,…,ym , функция Z=f(x1, x2, ... , xn) имеет условный экстремум ( сформулированный ранее).
Если число переменных n=2, нелинейные задачи можно решить графически. Ограничения должны быть записаны в виде неравенств ji(x1, x2, ... , xn) £ bi , i=1,2,...,m, а целевая функция иметь вид Z=f(x1, x2).
Как и в случаегеометрического решения ЗЛП, сначала необходимо построить область допустимых решение (ОДР) – множество точек плоскости, удовлетворяющих неравенствам ji(x1, x2, ... , xn) £ bi. Но в отличии от ЗЛП здесь ОДР не обязательно будет выпуклой и может быть разрывной. Экстремум функции может достигаться и внутри области, и на границе.
После построения ОДР следует записать уравнения линий уровня целевой функции- множество точек плоскости, в которых целевая функция постоянна: f(x1, x2)=C, и определить направление возрастания (убывания) целевой функции, построив, например, линии уровня для разных значений С. Затем, перемещая линию уровня в нужном направлении в ОДР, найти точки области, в которых целевая функция принимает оптимальное значение.
Пример1. Найти минимальное и максимальное значения сепарабельной функции Z=(x1-4)2+(x2-6)2 при ограничениях:
x1³0, x2³0.
Решение. ОДР представляет собой многоугольник ABCE (рис. 1). Если положить Z=Q (Q>0),то линии уровня целевой функции - это уравнение окружности (x1-4)2+(x2-6)2=Q. С уменьшением (увеличением) Q (квадрата радиуса) значения функции Z соответственно уменьшаются (увеличиваются).
Центром окружностей будет точка М с координатами (4, 6). Проведем из точки M окружности различных радиусов при разных Q и получим: минимальное значение функция Z(D)=196/13 принимает в точке D (24/13,36/13), в которой окружность касается области решений. Точка D не является угловой, ее координаты находят в результате решения системы уравнений, соответствующих прямым MD и CE.
Функция Z имеет два локальных максимума: в вершине A(1;0) функция
Рис.1 Z(A)=45, в вершине E(6;0) функция Z(e)=40.
Так как Z(А)>Z(E), то вершина A является точкой глобального максимума.
Пример 2. Пусть область допустимых решений остается прежней, а
Z=(x1-4)2+(x2-1)2. Найти минимальное и максимальное значения этой функции.
Решение. Минимальное значение функция принимает в точке M(4;1) (рис.2): Z(M)=0. Функция Z имеет два локальных максимума: в вершине E(6;0) функция Z(E)=5, в вершине С(0;4) функция Z(C)=25, причем глобальный максимум достигается в вершине С.
Рис. 2
Пример 3. Найти минимальное и максимальное значения функции Z=x12+x22 при ограничениях
x1³0, x2³0.
Решение. В этом случае (рис.3) область допустимых решений не является выпуклой и состоит из двух отдельных частей. Минимальное значение функции Z=17 достигается в точках A(1;4) и L(4;1). Функция Z
Рис.3. имеет два локальных максимума: в точке
D(2/3; 6) функция Z(D)=328/9 и в точке M(7; 4/7) функция Z(M)=2417/49. Точка M является точкой глобального максимума.
Метод множителей Лагранжа
Выразить в явном виде из уравнений связи (условий-ограничений) необходимую часть переменных, как правило, не удается. Французский математик и механик Лагранж предложил оригинальный метод нахождения условного экстремума функции в данном случае, который носит его имя.
Пусть задана задача математического программирования: максимизировать функцию
f(x1,x2,...,xn) (5)
при ограничениях
jj(x1,x2,...,xn)=0, j=1,2,...,m, m<n. (6)
Ограничения в задаче заданы уравнениями. Полагаем, что функции f и ji имеют непрерывные частные производные по всем переменным. Для решения задачи составим функцию:
L(x1,x2,...,xn,l1,l2,...,lm)=f(x1,x2,...,xn)+ . (7)
которая называется функцией Лагранжа, а числа li - множителями Лагранжа. Отметим, что множителям Лагранжа можно придать экономический смысл. Если f(x1,x2,...,xn) – доход, соответствующий плану Х=(x1,x2,...,xn), а функция jj(x1,x2,...,xn) – издержки i-го ресурса, соответствующие этому плану, то li – цена (оценка) i-го ресурса, характеризующая изменение экстремального значения целевой функции в зависимости от изменения размера i-го ресурса (маргинальная оценка).
Обозначим через X совокупность переменных xj (j=1,2,...,n), а через L - совокупность переменных множителей li (i=1,2,...,m). Определим частные производные (j=1,2,...,n), (i=1,2,...,m) и приравняем их к нулю. В результате получим систему уравнений:
(8)
Легко заметить, что =jj(Х), т.е. в (8) входять уравнения связи.
Если функция Z=f(x1,x2,...,xn) в точке X(o)=(x1(o), x2(o),..., xn(o)) имеет экстремум, то существует такой вектор L(o)=(l1(o),l2(o),...,lm(o)), что точка
(x1(o), x2(o),..., xn(o), l1(o), l2(o),..., lm(o)) является решением системы (8). Следовательно, нахождение условного экстремума функции Z=f(Х) сводится к нахождению локального экстремума функции L(X,L). При этом неизвестен способ определения точек глобального минимума или максимума. Однако если решения системы найдены, то для определения глобального максимума (минимума) достаточно найти значения функции в соответствующих точках. Если для функций Z=f(x1,x2,...,xn) и ji(x1,x2,...,xn) (i=1,2,...,m) существуют вторые частные производные и они непрерывны, то можно вывести достаточное условие существования локального экстремума функции в точке, являющейся решением системы (8). Однако практическое значение этого условия невелико.
Метод множителей Лагранжа имеет ограниченное применение, так как система (8), как правило, имеет несколько решений.
Пример 4. Найти точку условного экстремума функции Z=x1x2+x2x3 при ограничениях .
Решение. Составим функцию Лагранжа L(x1,x2,x3,l1,l2)= x1x2+x2x3+l1(x1+x2-2)+ l2(x2+x3-2) и продифференцируем ее по переменным x1, x2, x3, l1 и l2. Приравнивая полученные выражения нулю, получим следующую систему уравнений:
Из первого и третьего уравнения следует, что l1=l2=-x2; тогда
Решая данную систему, получим x1=x2=x3=1; Z=2.
9.3. Обобщёние метода множителей Лагранжа
Метод Лагранжа теоретически можно использовать и когда ограничения имеют вид неравенств и их решения должны быть неотрицательными.
Пусть задана задача математического программирования: максимизировать функцию
Z=f(x1,x2,...,xn) (5)
при ограничениях
jj(x1,x2,...,xn)=0, j=1,2,...,m, m<n. (6)
Рассмотрим ситуацию, когда к основным ограничениям-равенствам, исходной задачи добавлены ограничения xj ³ 0, j=1, 2, ... ,n, т.е. введено условие неотрицательности.
Функция f(Х) может принимать экстремальное значение как на границе xj ³ 0, так и внутри ее области.
На первом этапе находят неотрицательные решения X0=( ) системы
и определяют значения Z , принадлежащих области изменения переменных.
Если экстремум f(x) располагается в граничной точке, то последовательно рассматривают случаи, когда одна из переменных обращается в 0, т.е. решают последовательно n задач с n-1 переменной и m ограничениями, получаемых в результате поочерёдных подстановок нулевых значений координат x1=0, x2=0, ... , xn=0 в выражения f(x1,x2,...,xn) и ji(x1,x2,...,xn) ( i=1, 2, ... , m ). Решив n таких задач, приравнивают 0 две переменные и решаются Cn2 задач с n-2 переменными и m ограничениями т. д.
На последнем шаге приравнивают 0 n-m переменных, тем самым однозначно оставшиеся m переменных. Для этих значений также вычисляют значения Z. Отметим, что приравнивать нулю можно одновременно не более, чем n-m координат, т. е. число ограничений не должно превышать числа переменных.
Определив подобным образом все граничные точки, которым соответствуют экстремальные значения и стационарные внутренние точки функции f(x), вычисляют значения целевой функции в этих точках и сравнивают их между собой, выбирая наибольшее или наименьшее значение, которое принимается за искомое экстремальное f(x*). Однако при достаточно большом числе переменных трудности в вычислениях могут оказаться непреодолимыми.
Требование неотрицательности xj³0 может накладываться не на все координаты X=(x1,x2,...,xn), а только на часть переменных, тогда соответствующие комбинации с нулевыми переменными в выше описанной процедуре допускаются только из тех переменных, которые должны удовлетворять этому требованию.
Теперь рассмотрим ситуацию, когда к системе ограничений-равенств добавляются ограничения, имеющие вид неравенств, т.е. имеем ограничения:
ji(X)=ji(x1, x2, ... , xn) £ bi i=1,2,...,p;
ji(X)=ji(x1,x2,..., xn)³bi i=p+1,p+2,..., q;
gi(X)=bi i=q+1, q+2,..., m.
Пусть условие неотрицательности переменных снято. Наличие этого условия приводит, как было показано выше, к решению ряда промежуточных задач, делая более громоздким процедуру отыскания искомого экстремального решения.
Перепишем рассматриваемую систему ограничений в виде равенств, вводя для этого в неравенства новые переменные, которым предъявляем требования неотрицательности. В результате система ограничений принимает следующий вид:
xn+i ³ 0, i = 1, 2, ... , q.
Такое представление ограничений даёт возможность воспользоваться ранее описанной процедурой нахождения экстремального значения целевой функции z=f(X) с ограничениями-равенствами и с условием неотрицательности для части переменных xn+i, i=1, 2, ... , q, которые к тому же не входят в выражение целевой функции.
Исследование данной задачи естественно начать с поиска возможного решения внутри области xn+i³0, i=1, 2, ..., q.
Теорема Куна-Таккера
Описанный подход обобщения метода множителей Лагранжа связан с необходимостью решения большого числа промежуточных задач при определении экстремального значения целевой функции. Однако если функция Лагранжа в точке глобального экстремума исходной функции f(Х) имеет особенность, так называемую седловую точку, то схема обобщения метода множителей Лагранжа принимает более простую форму.
Седловой точкой для функции Лагранжа (локальной седловой точкой) называется точка =(x1(o), x2(o),..., xn(o), l1(o), l2(o),..., lm(o)), для которой для всех Х из e-окрестности точки и всех из e-окрестности точки будут выполняться неравенства L(X, L(o)) £ L(X(o), L(o)) £ L(X(o), L).
Точка определена как точка максимума функции Лагранжа по Х и минимума L по .
Если неравенство L(X, L(o)) £ L(X(o), L(o)) £ L(X(o), L) выполняется для любых Х и , то точка является глобальной седловой точкой.
Центральное место в теории нелинейного программирования занимает теорема Куна-Таккера, которая устанавливает связь между условиями существования в точке глобальной седловой точки функции Лагранжа и необходимыми и достаточными условиями, которым должна удовлетворять точка X0=( ), в которой целевая функция f(Х) достигает абсолютного условного экстремума.
Пусть дана ЗНП: найти максимальное значение функции Z=f(x1,x2,...,xn) при ограничениях
ji (x1,x2,...,xn)=0, i=1,2,...,m,
x1, x2, ... ,xn ³ 0 (9)
Составим функцию Лагранжа для данной задачи:
L(X,L)=f(X) + (10)
Если выполняется условие регулярности ( существует по крайней мере одна точка X, для которой ji (X)>0 для всех i), то имеет место следующая теорема.
Теорема Куна-Таккера. Вектор X(o) тогда и только тогда является оптимальным решением задачи (9), когда существует такой вектор L(o), что при X(o) ³ 0 и L(o) ³ 0 для всех
X ³ 0 и L ³ 0
L(X, L(o)) £ L(X(o), L(o)) £ L(X(o), L). (11)
Теорема также называется теоремой о седловой точке.
Доказательство достаточности условий (11). Пусть X(o) > 0 и L(o) > 0 - седловая точка функции L(X, L). Если в (11) вместо L(X, L) подставить ее значение (10), то получим
f(X)+ £f(X(o))+ £f(X(o))+
при X ³ 0, L ³ 0.
Правое неравенство справедливо при любом L ³ 0, поэтому
ji (X) ³ 0, =0.
Тогда из левого неравенства получим
f(X(o)) ³ f(X)+ при X ³ 0.
Так как при этом ³ 0, то f(X(o)) ³ f(X).
Таким образом, точка X(o) удовлетворяет ограничениям (11) и во всех других точках функция принимает значение меньшее, чем в X(o). Это утверждение приводит решение задачи к отысканию седловых точек функции Лагранжа L(X,L).
Доказательство необходимости условий (11) ввиду его сложности не рассматривается.
Если f(X) и ji(X) - дифференцируемые функции, то (11) эквивалентны следующим локальным условиям Куна-Таккера:
(12)
(13)
Выражение означает, что значение частной производной функции Лагранжа берется в точке (X(o), L(o)), где X(o)=(x1(o), x2(o),..., xn(o)),
L(o)=( l1(o), l2(o),..., lm(o)).
Пример. Найти max Z = -x12 -x22 при ограничениях
x1³0, x2³0.
Решение. С помощью графического метода легко решить данную задачу: x1=0,8, x2=0,4, Z= -0,8.
Покажем, что существует L(o) ³ 0, при котором в точке оптимума выполняются условия Куна-Таккера (12), (13) для функции F(X, L):
F(X, L)=-x12-x22+l1(2x1+x2-2)+l2(8-2x1-x2)+l3(6-x1-x2).
Находим:
= -2x1+2l1-l3; = -2x2+l1-l2-l3;
=2x1+x2-2; =8-2x1-x2; =6-x1-x2.
Согласно условиям (13) l2 и l3 должны принимать нулевые значения, так, как, подставляя x1=0,8 и x2=0,4 в выражения и , имеем значения, большие нуля, а по условию, . Согласно условию l1 может принимать ненулевое значение, так как . В соответствии с (12) производная (j=1,2) должна принимать ненулевые значения, так как координаты вектора X(o) отличны от нуля. Находим l1=0,8. Следовательно, в точке (X(o), L(o)) выполняются условия Куна-Таккера и она действительно является точкой экстремума.