Тема 4. Нелинейное программирование. Нелинейное программирование
Скачать 329.5 Kb.
|
Нелинейное программирование – раздел математического программирования, изучающий задачи отыскания глобального экстремума фиксированной (целевой) функции при наличии ограничений в ситуации, когда целевая функция и ограничения имеют общий характер (не предполагаются линейными). В общем виде задача нелинейного программирования формулируется следующим образом: найти такие значения неизвестных переменных доставляющие экстремум целевой функции вида и, удовлетворяющие системе ограничений где – переменные; – заданные функции n переменных; – заданные числа. Система ограничений может включать также условия неотрицательности переменных, если такие условия имеются. В математическом анализе задача такого типа называется задачей на условный экстремум функции. Условный экстремум функции – экстремум функции, аргументы которой удовлетворяют дополнительным условиям, называемым ограничениями или уравнениями связи. Задачи нелинейного программирования возникают на практике, например, 1) когда затраты изменяются не пропорционально количеству закупленных или произведенных товаров, 2) когда расход определенных видов сырья и ресурсов происходит нелинейно, а скачкообразно (в зависимости от объема производства). В отличие от задач линейного программирования, в которых оптимальное решение может находиться только в вершинах области допустимых решений, в задачах не-линейного программирования оптимальное решение может находиться внутри области допустимых решений, на ее ребре или в вершине. Вследствие этого задачи нелинейного программирования сложнее задач линейного программирования и для них не существует общего универсального метода решения (аналогичного симплексному методу). Для решения разных задач нелинейного программирования, отличающихся видом целевой функции и системы ограничений, разработаны специальные методы решения. К основным из них относятся: 1) метод множителей Лагранжа, применяемый в случаях, когда а) условие неотрицательности переменных отсутствует; б) система ограничений состоит только из равенств; в) целевая функция и ограничения представляют собой функции, непрерывные вместе со своими частными производными; 2) выпуклое программирование – раздел нелинейного программирования, изучающий задачи минимизации выпуклых функций (максимизации вогнутых функций) на выпуклых замкнутых множествах (выпуклым множеством точек называется множество точек, которое вместе с любыми своими двумя точками содержит и соединяющий их отрезок; замкнутым множеством – называется множество точек, содержащее все свои граничные точки); 3) квадратичное программирование – раздел нелинейного программирования, изучающий задачи, в которых требуется найти глобальный экстремум квадратичной функции на многогранном множестве (выпуклым многогранником называется выпуклое замкнутое ограниченное множество точек, имеющее конечное число угловых вершин; множество точек называется ограниченным, если существует шар с радиусом конечной длины с центром в любой точке множества, который полностью содержит данное множество); 4) сепарабельное программирование – раздел математического программирования, изучающий задачи нелинейного программирования, в которых целевая функция и ограничения задаются сепарабельными функциями, то есть функциями, представимыми в виде сумм функций, каждая из которых зависит только от одной действительной переменной. Кроме того, любая задача нелинейного программирования может быть решена с использованием градиентных методов оптимизации – методов максимизации или минимизации гладких функций многих переменных, связанных с использованием градиента (под гладкой функцией понимается функция, дифференцируемая в области определения, то есть имеющая непрерывную производную). Простейшим видом задач нелинейного программирования являются задачи с двумя переменными и одним ограничением в виде равенства. Они имеют вид Задачи нелинейного программирования с двумя переменными и одним ограничением в виде равенства могут быть решены методом подстановки, методом множителей Лагранжа и графическим методом. МЕТОД ПОДСТАНОВКИ Метод подстановки используется, если из ограничения g(x ,y) = b можно в явном виде выразить функцию y = h(x) . Тогда, подстановка функции y = h(x) в целевую функцию z = f (x , y) вместо переменой y приводит к получению целевой функции вида z = f [x, h(x)] , которая зависит только от одной переменной x. В этом случае задача на условный экстремум функции двух переменных сводится к задаче на безусловный экстремум функции одной переменной. К основным понятиям, используемым при решении задачи на безусловный экстремум функции одной переменной относятся: точка максимума, точка минимума, точки экстремума, максимум функции, минимум функции, экстремум функции, необходимое условие экстремума функции, критическая точка, достаточное условие экстремума функции. Точка называется точкой максимума функции f (x) , если в некоторой окрестности точки выполняется неравенство . Точка называется точкой минимума функции f (x) , если в некоторой окрестности точки выполняется неравенство . Точки экстремума – общее название точек максимума и минимума функции. Максимум функции – значение функции в точке ее максимума. Минимум функции – значение функции в точке ее минимума. Экстремум функции – общее название максимума и минимума функции. Необходимое условие экстремума функции одной переменной – равенство нулю ее первой производной (f '(x) = 0). Критическая точка – точка, в которой выполнено необходимое условие экстремума функции. Достаточное условие экстремума функции одной переменной: если первая производная дважды дифференцируемой функции равна нулю в некоторой точке , а вторая производная в этой точке положительна, то точка является точкой минимума функции ; если отрицательна, то точка является точкой максимума функции ; если , то вопрос о наличии экстремума в точке остается открытым. Алгоритм решения задачи на безусловный экстремум функции одной переменной включает следующие этапы. 1. Нахождение производной функции . 2. Нахождение критических точек функции путем приравнивания ее производной к нулю () в соответствии с необходимым условием экстремума функции. 3. Нахождение второй производной функции и проверка достаточного условия экстремума функции в каждой критической точке. 4. Вычисление локальных экстремумов функции. 5. Нахождение глобальных максимума и минимума функции (при наличии нескольких максимумов или минимумов). Глобальный максимум функции определяется как наибольший локальный максимум. Глобальный минимум функции определяется как наименьший локальный минимум. Алгоритм решения задачи на безусловный экстремум функции двух переменных z = f ( x , y ) включает следующие этапы.
Частной производной первого порядка (первой частной производной или просто частной производной) функции двух переменных z = f (x , y) по переменной x называется производная данной функции, вычисленная при фиксированном значении переменной y как обыкновенная производная функции одной переменной x . Она обозначается как Частной производной первого порядка функции двух переменных z = f (x , y) по переменной y называется производная данной функции, вычисленная при фиксированном значении переменной x как обыкновенная производная функции одной переменной y . Она обозначается как. Функция, имеющая частные производные первого порядка, называется дифференцируемой. Теорема (необходимое условие экстремума функции двух переменных): если в точке максимума или минимума все частные производные существуют и непрерывны, то они равны нулю в этой точке. 2. Нахождение критических точек, в которых целевая функция задачи z = f (x , y) может иметь экстремум путем решения полученной системы уравнений. Критическими (или стационарными) точками называются точки, в которых выполнено необходимое условие экстремума функции (равенство нулю всех частных производных). 3. Нахождение частных производных второго порядка функции z = f (x , y) , вычисление их значений в каждой критической точке и проверка достаточного условия безусловного экстремума функции двух переменных в каждой критической точке. Частной производной второго порядка (второй частной производной) функции z = f (x , y) называется частная производная первого порядка от частной производной первого порядка данной функции. Функция двух переменных вида z = f (x , y) имеет четыре частных производных второго порядка: Частные производные второго порядка, в которых дифференцирование производится по разным переменным, называются смешанными производными. Частные производные более высоких порядков определяются аналогичным образом. Теорема. Если функция z = f (x , y) дважды дифференцируема в точке , то ее смешанные производные в этой точке равны, то есть Поэтому величина смешанной производной функции двух переменных не зависит от порядка переменных, по которым берутся производные. Теорема (достаточное условие экстремума функции двух переменных). Если функция z = f (x , y): а) определена в некоторой окрестности критической точки , в которой обе частные производные равны нулю б) имеет в этой точке непрерывные частные производные второго порядка, равные то характер этой точки определяется значением величины . Если , то в точке функция z = f (x , y) имеет экстремум (максимум при A < 0 и минимум при A > 0 ). Если , то в точке функция z = f (x , y) не имеет экстремума. Если , то вопрос о наличии экстремума в точке функции z = f (x , y) остается открытым. Данная теорема применима для проверки достаточного условия экстремума функции только двух переменных. В общем случае для проверки достаточного условия экстремума функции нескольких переменных используется следующая теорема. Теорема (достаточное условие экстремума функции n переменных). Если точка является критической точкой функции n переменных , и в окрестности этой точки существуют и непрерывны частные производные второго порядка, тогда 1) если матрица Гессе положительно определена в точке , то данная точка является точкой минимума функции z; 2) если матрица Гессе отрицательно определена в точке , то данная точка является точкой максимума функции z ; 3) если матрица Гессе не является знакоопределенной в точке, то функция z в данной точке не имеет экстремума. Матрицей Гессе называется матрица, элементами которой являются частные производные второго порядка функции по всем переменным , вида Определитель матрицы Гессе называется гессианом. МЕТОД МНОЖИТЕЛЕЙ ЛАГРАНЖА Метод множителей Лагранжа используется, если из ограничения невозможно в явном виде выразить функцию (то есть невозможно использовать метод подстановки). Метод множителей Лагранжа, также как и метод подстановки, позволяет перейти от задачи на нахождение условного экстремума функции к задаче на нахождение безусловного экстремума функции. Алгоритм решения задачи на условный экстремум целевой функции двух переменных с одним ограничением методом множителей Лагранжа включает следующие этапы.
Метод множителей Лагранжа основан на том, что точка условного экстремума функции при условии совпадает с точкой безусловного экстремума функции Лагранжа.
3. Нахождение критических (стационарных) точек, в которых функция Лагранжа (и соответственно целевая функция исходной задачи ) может иметь экстремум путем решения полученной системы уравнений. 4. Проверка достаточного условия экстремума функции Лагранжа с использованием достаточного условия экстремума функции двух переменных (так как функция Лагранжа при конкретном значении множителя Лагранжа становится функцией двух переменных) или достаточного условия экстремума функции n переменных при n > 2 (путем установления знакоопределенности матрицы Гессе, составленной из частных производных второго порядка функции Лагранжа по переменным x и y, на основе критерия Сильвестра). 5. Вычисление локальных экстремумов функции и выбор того из них, в котором целевая функция задачи принимает максимальное (минимальное) значение. В общем случае при решении задач нелинейного программирования вида функция Лагранжа определяется выражением Система из (n + m) уравнений для нахождения критических точек имеет вид Для проверки достаточного условия экстремума функции Лагранжа составляется матрица Гессе порядка n из частных производных второго порядка по переменным . Множители Лагранжа, соответствующие экстремальному значению целевой функции, характеризуют чувствительность экстремального значения целевой функции к изменениям констант ограничений . Они равны и показывают, как изменится экстремальное значение целевой функции при изменении значения константы в i -м ограничении на 1 единицу. Например, если какой-то множитель Лагранжа равен нулю, то малые изменения соответствующей константы ограничений не окажут никакого влияния на экстремальное значение целевой функции. В экономических задачах распределения ресурсов целевая функция имеет размерность стоимости, то есть цены, умноженной на объем продукции (например, прибыль, выручка, издержки), а с помощью ограничений устанавливается определенное значение некоторого количества (например, затрат). В таких задачах с помощью множителя Лагранжа определяется чувствительность целевой функции, имеющей размерность стоимости, к изменениям некоторого количества. Поэтому множитель Лагранжа имеет размерность цены и характеризует ценность какого-либо i -о ресурса. Поэтому множитель Лагранжа также называется теневой ценой (данного вида затрат). Пример Имеется два способа производства некоторого продукта. Издержки производства при каждом способе зависят от произведенных y1 и у2 следующим образом: g(x1)=9x1 + x12, g(x2)=6x2 + x22 . За месяц необходимо произвести 150 единиц продукции, распределив ее между двумя способами так, чтобы минимизировать общие издержки. Решение Найдем экстремум функции F(X) = 9x1+x12+6x2+x22, используя функцию Лагранжа: где - целевая функция вектора . - ограничения в неявном виде. В качестве целевой функции, подлежащей оптимизации, в этой задаче выступает функция: F(X) = 9x1+x12+6x2+x22 Перепишем ограничение задачи в неявном виде: Составим вспомогательную функцию Лагранжа: Необходимым условием экстремума функции Лагранжа является равенство нулю ее частных производных по переменным хi и неопределенному множителю λ. Составим систему: ∂L/∂x1 = 2x1+λ+9 = 0 ∂L/∂x2 = λ+2x2+6 = 0 ∂F/∂λ = x1+x2 -150= 0 Систему решаем с помощью метода Гаусса или используя формулы Крамера. Запишем систему в виде: Для удобства вычислений поменяем строки местами: Добавим 2-ую строку к 1-ой: Умножим 2-ую строку на (2). Умножим 3-ую строку на (-1). Добавим 3-ую строку к 2-ой: Умножим 2-ую строку на (-1). Добавим 2-ую строку к 1-ой: Из 1-ой строки выражаем x3 Из 2-ой строки выражаем x2 Из 3-ой строки выражаем x1 Таким образом, чтобы общие издержки производства были минимальны, необходимо производить x1 = 74.25; x2 = 75.75. |