
- •Н.Г. Лядина, е.А. Ермакова, л.В. Уразбахтина
- •Математические методы в экономике апк
- •Нелинейное и выпуклое программирование
- •Учебное пособие
- •Содержание
- •Введение
- •Нелинейное программирование Постановка и особенности задач нелинейного программирования
- •2. Область допустимых решений может иметь несколько оптимальных решений, находящихся в отличие от линейного программирования не на отрезке. Пример на рисунке 1.
- •3. Область допустимых решений может состоять из нескольких частей.
- •4. Точки, соответствующие оптимальному решению, могут находиться как на границе, так и внутри области допустимых решений.
- •5. Целевая функция может иметь несколько локальных экстремумов, из которых затем находят точку глобального оптимума.
- •Контрольные вопросы
- •Экстремум функции1
- •Нахождение безусловных экстремумов непрерывных дифференцируемых функций
- •Контрольные вопросы
- •Индивидуальные задания 1
- •Нахождение условных экстремумов. Метод множителей Лагранжа5
- •Б) Алгоритм метода множителей Лагранжа
- •Контрольные вопросы
- •Выпуклое программирование
- •Свойства выпуклых и гладких функций
- •Классификация задач выпуклого программирования
- •Экономические показатели производства культур
- •Формы записи задачи выпуклого программирования
- •Градиент и производная по направлению
- •Алгоритм решения специальной задачи выпуклого программирования. Метод Франка-Вульфа 10
- •Индивидуальные задания 3
- •Методы поиска – методы решения задач выпуклого программирования Метод последовательного изменения аргументов (координат)
- •Индивидуальные задания 4
- •Индивидуальные задания 5
- •Градиентные методы Метод наискорейшего подъема (для самостоятельного изучения)
- •Метод наискорейшего спуска
- •Различные алгоритмы градиентного метода (для самостоятельного изучения)
- •Индивидуальные задания 6
- •Индивидуальные задания 7
- •Алгоритм нелокального случайного поиска на минимум целевой функции
- •Индивидуальные задания 8
- •Особенности метода локального случайного поиска
- •Индивидуальные задания 9
- •Метод штрафных функций
- •Индивидуальные задания 10
- •Квадратичное программирование (кп) Графический метод
- •Контрольные вопросы
- •Индивидуальные задания 11
- •Квадратичный симплекс-метод
- •Индивидуальные задания 12
- •Контрольные вопросы и задания
- •Тестовые задания Тесты - выпуклое программирование
- •Тесты - квадратичное программирование
- •Рекомендуемая литература
- •Словарь терминов
- •Приложение
- •Индивидуальные задания 1 - 30
- •127550, Москва, ул. Тимирязевская, 44
Рекомендуемая литература
Основная литература
Абрамов Л.М., Капустин В.Ф. Математическое программирование. Л.: Изд-во ЛГУ, 1981.
Красс М.С. Математические методы и модели. М.: Финансы и статистика, 2007.
Красс М.С., Чупрынов Б.П. Основы математики и ее приложения в экономическом образовании. М.: ДЕЛО, 2001.
Красс М.С., Чупрынов Б.П. Основы математики. М.: Финансы и статистика, 2005.
Кремер Н.Ш. и др. Высшая математика для экономистов. М.: ЮНИТИ, 1998
Кремер Н.Ш. и др. Исследование операций в экономике. М.: ЮНИТИ, 1997, 2003, 2004.
Кузнецов Б.Т. Математические методы и модели исследования операций: Профессиональный учебник. М.: ЮНИТИ, 2005.
Кузнецов Ю.Н., Кузубов В.И., Волощенко А.Б. Математическое программирование. М.: Высшая школа, 1980, 1986.
Лядина Н.Г., Ермакова Е.А., Светлова Г.Н., Уразбахтина Л.В. Математические методы в экономике АПК. Нелинейное программирование и модели исследования операций: Практикум. М.: Изд-во РГАУ – МСХА имени К.А. Тимирязева, 2011.
Лядина Н.Г., Ермакова Е.А., Светлова Г.Н., Уразбахтина Л.В., Хотов А.В. Практикум. Математические методы в экономике АПК. (Линейное и дискретное программирование). М.: Изд-во РГАУ – МСХА имени К.А. Тимирязева, 2009.
Математические методы в экономике: Учеб. Пособие / Л.Э. Хазанова. 3-е изд., стереотип. М., Волтерс Клувер, 2005.
Математическое программирование / Под ред. Н.Ш. Кремера. М.: Финстатинформ, 1995.
Невежин В.П., Кружилов С.И. Сборник задач по курсу «Экономико-математическое моделирование». –М.: ОАО «Издательский дом «Городец»», 2005. – 320 с.
Просветов Г.И. Математические методы и модели в экономике: задачи и решения: Учебно-практическое пособие. – М., Издательство «Альфа-Пресс», 2008.
Шапкин А.С., Мазаева Н.П. Математические методы и модели исследования операций: Учебник. М.: Дашков и К°, 2005.
Экономико-математические методы и прикладные модели: Уч. пособие для вузов. Под ред. В.В.Федосеева.-2-е изд., перераб. и доп. – М.:ЮНИТИ-ДАНА, 2005.
Дополнительная литература
Акулич И.Л. Математическое программирование в примерах и задачах. М.: Высшая школа, 1986.
Волков Е.А. Численные методы. М.: Наука, 1982.
Гусева Е.Н. Экономико-математическое моделирование: учебное пособие / Е.Н. Гусева. –М.: Флинта: МПСИ, 2008.
Кофман А., Фор Р. Займемся исследованием операций. М.: Мир, 1966.
Лядина Н.Г., Лядин В.П., Уразбахтина Л.В. Классификация задач линейного и нелинейного программирования. Эквивалентные формы записи задач линейного программирования. М.: ФГОУ ВПО РГАУ - МСХА, 2007.
Лядина Н.Г., Плетцова И.И. Выпуклое программирование. М.: МСХА, 1989.
Поляк Б.Т. Введение в оптимизацию. М.: Наука, 1983.
Пшеничный Б.Н. Необходимые условия экстремума. М.: Наука, 1982.
Солодовников А.С., Бабайцев В.А., Браилов А.В. Математика в экономике. Ч. 1. М.: Финансы и статистика, 2001, 2007.
Словарь терминов
А |
Абсолютный минимум – функция
имеет в точке
абсолютный (глобальный) минимум,
если выполняется неравенство
Абсолютный максимум - функция имеет в точке абсолютный (глобальный) максимум, если выполняется неравенство , где - любая точка, принадлежащая области определения функции. Разница между локальным и абсолютным максимумами та, что абсолютный максимум достигается во всей области определения, а локальный лишь в окрестности точки. Антиградиент- вектор Z = Z(X) = Z(x1, x2,...,xn) - выпуклая целевая функция. В каждой точке области, где определена и дифференцируема функция Z, определяется вектор антиградиент antigrad Z= -iZ/x1-jZ/x2- ...-kZ/xn . Антиградиент Z может иметь другие обозначения: antigrad Z = - grad Z= -{Z/x1;Z/x2; ...;Z/xn } или - grad Z= - Z (набла). |
Б |
Базисная переменная – переменная, коэффициенты которой образуют единичный столбец. Базисное решение – система ограничений приведена к единичному базису, свободные переменные равны нулю, а все базисные переменные равны свободным членам. |
В |
Вейерштрасс теорема Теорема Вейерштрасса. Непрерывная функция, определенная на ограниченном, замкнутом множестве, в одной из точек множества принимает максимальное (минимальное) значение. Вектор градиент - Z = Z(X) = Z(x1, x2,...,xn) - выпуклая целевая функция. В каждой точке области, где определена и дифференцируема функция Z, определяется градиент grad Z= iZ/x1+jZ/x2+ ...+kZ/xn . Градиент Z может иметь другие обозначения: grad Z= {Z/x1;Z/x2; ...;Z/xn } или grad Z= Z (набла). Вогнутая функция. Функция называется вогнутой (выпуклой вниз) на промежутке Х, если для любых двух значений х1 и х2, принадлежащих промежутку Х, выполняется неравенство f[(х1 + х2)/2] [f(х1) + f(х2)] /2. Вогнута функция (выпукла вниз) на промежутке Х тогда и только тогда, когда ее первая производная на этом промежутке Х монотонно возрастает (теорема). Геометрически – угол наклона касательных к графику функции возрастает. Дуга между точками на кривой f (X), выражающей вогнутую (выпуклую вниз) функцию, всегда лежит ниже прямой, соединяющей эти точки (секущей). Выпуклое множество Множество называется выпуклым, если для любых двух несовпадающих точек найдется отрезок прямой, соединяющий эти точки и целиком принадлежащий множеству . Выпуклое множество. Пусть функции - выпуклые. Тогда множество , определяемое условиями : является выпуклым множеством, так как пересечение выпуклых функций - выпуклое множество, если оно непустое |
|
Выпуклое программирование. Задачи выпуклого программирования – это задачи минимизации нелинейной, но гладкой функции выпуклой или вогнутой при ограничениях, заданных нелинейными или линейными неравенствами, определяющими выпуклое множество. Если задача имеет выпуклую целевую функцию и выпуклую систему ограничений, то такая задача называется выпуклой задачей математического программирования.
Задача выпуклого программирования, если и - выпуклые функции, . |
|
Выпуклая функция. Функция называется
выпуклой на выпуклом множестве
,
если она обладает следующим свойством
Выпуклые функции не имеют перемежающихся подъемов и спусков, и, следовательно, локальных экстремумов. Дуга между точками на кривой f (X), выражающей выпуклую функцию, всегда лежит выше ниже прямой, соединяющей эти точки. Выпуклая функция. Функция называется выпуклой (выпуклой вверх) на промежутке Х, если для любых двух значений х1 и х2, принадлежащих промежутку Х, выполняется неравенство f[(х1 + х2)/2] [f(х1) + f(х2)] /2. Выпукла функция (выпукла вверх) на промежутке Х тогда и только тогда, когда ее первая производная на этом промежутке Х монотонно убывает (теорема). Геометрически – угол наклона касательных к графику функции убывает. Дуга между точками на кривой f (X), выражающей выпуклую (выпуклую вверх) функцию, всегда лежит выше прямой, соединяющей эти точки (секущей). |
|
Выпуклые и гладкие функции (свойства). Выпуклые функции не имеют перемежающихся подъемов и спусков, и, следовательно, локальных экстремумов. Дуга между точками на кривой f (X), выражающей выпуклую функцию, всегда лежит выше ниже прямой, соединяющей эти точки. 1. Если умножить выпуклую функцию на (-1), то функция вогнутая и наоборот. 2. Сумма конечного числа выпуклых функций - выпуклая функция. - невыпуклые функции , , , - выпуклые функции - выпуклая функция, так как является суммой конечного числа выпуклых функций. 3. Пусть функции - выпуклые. Тогда множество , определяемое условиями : является выпуклым множеством, так как пересечение выпуклых функций - выпуклое множество, если оно непустое. |
Г |
Гессе матрица —матрица вторых частных производных функции нескольких переменных
Гессианом называется определитель этой матрицы. Характеристика гессиана матрицы . (ее отрицательная или положительная определенность и полуопределенность) служит условием для определения вида стационарной точки: является ли она соответственно максимумом, минимумом или седловой точкой в задаче оптимизации функции |
|
Гладкая функция. Гладкость функций означает непрерывность ее первых производных или существование и непрерывность ее частных производных первого порядка. |
|
Градиент — вектор, направленный в сторону наискорейшего возрастания функции и равный по величине ее производной в этом направлении: где символами ei обозначены единичные векторы осей координат (орты). |
Д |
Дифференцирование функции — операция определения производной рассматриваемой функции. Например, производная линейной функции (bx + a)′ = b, т. е. является константой; производная степенной функции (xn)′ = nx n-1 . Дифференцируемая функция — функция, имеющая в каждой точке области, на которой она определена, полный дифференциал, а в случае функции одной переменной — производную. Операция нахождения производных называется дифференцированием функции. Функция, имеющая производную в точке x0, называется дифференцируемой в этой точке, причем она обязательно непрерывна в этой точке. Функция, имеющая непрерывную производную в каждой точке некоторого интервала, называется непрерывно дифференцируемой на этом интервале (промежутке). |
И |
Итеративные методы решения оптимизационных задач — заключаются в том, что вычислительный процесс начинают с некоторого пробного (начального, произвольного) допустимого, а затем применяют алгоритм, обеспечивающий последовательное улучшение этого решения. Процесс таких проб продолжается до тех пор, пока не станет ясно, что либо дальнейшее улучшение решения невозможно (достигнут оптимум, причем во многих случаях требуется дополнительно проверить — локалиный или глобальный), либо дальнейшие вычисления нецелесообразны, поскольку возможное улучшение результата не окупит дополнительных затрат. (В последнем случае для определения момента окончания вычислений используется прием, называемый методом Лас-Вегаса.) Алгоритмы, применяемые при этом (итеративные алгоритмы методов последовательного улучшения плана), можно разделить на три класса: 1) при которых известно, что на каждой итерации решение улучшается, причем число таких итераций для достижения оптимума конечно; 2) при которых также каждая итерация улучшает решение, но оптимум достигается лишь как предел бесконечной последовательности решений (бесконечного вычислительного процесса); 3) алгоритмы, основанные на методе проб и ошибок, обеспечивают улучшение решения в целом, но не на отдельной итерации. |
К |
Квадратичное программирование — раздел выпуклого программирования: совокупность методов решения экстремальных задач, в которых целевая функция (критерий) представляет собой многочлен второй степени, а ограничения линейны. В матричной форме может быть записана следующим образом: min Z=f(X) = Z(x1, x2, ... , xn) = C11 x12 + C12 x1x2 + C13 x1x3 +...+ C1nx1xn + C22 x22 + C23 x2x3 +...+ C2nx2xn +... + Cnn xn2 + C1 x1 + C2 x2 +...+ Cnxn + C0 . Квадратичное программирование. Задача называется задачей квадратичного программирования, если целевая функция содержит переменные во второй степени, а система ограничений - линейные выражения. Задачи выпуклого программирования делятся на общую задачу выпуклого программирования, специальную задачу выпуклого программирования и задачу квадратичного программирования. Квадратичного программирования задача имеет квадратичную целевую функцию и линейную систему ограничений. min Z=f(X) = Z(x1, x2, ... , xn) = C11 x12 + C12 x1x2 + C13 x1x3 +...+ C1nx1xn + C22 x22 + C23 x2x3 +...+ C2nx2xn +... + Cnn xn2 + C1 x1 + C2 x2 +...+ Cnxn + C0
Может быть построена и двойственная задача квадратичного программирования. Конечные методы математического программирования — численные методы, позволяющие получить решение задачи за определенное (не обязательно известное заранее) количество шагов (итераций). |
|
Куна-Таккер теорема. Теорема Куна –Таккера (для седловой точки). Пусть задана область решений задачи выпуклого программирования где выпуклые функции, . Если эта область имеет внутренние точки, то есть выполняется условие Слейтера: существует решение X , такое, что i(X) < 0 для всех i, i = 1 m. Тогда для того чтобы X* было оптимальным решением задачи, необходимо и достаточно, чтобы существовал неотрицательный m-мерный вектор λ*(λ*1,λ*2,…,λ*m) такой, что пара (X*, λ*) является седловой точкой функции Лагранжа. , где ≥0 можно записать в виде неравенств, т.е. f(X)+ λ*i·i(X) ≥ f(X*)+ λ*i ·i(X*) ≥ f(X*)+ λi ·i(X*), i = 1 m. λi≥0, i = 1 m. |
|
Кусочно-линейные приближения — метод решения задач нелинейного программирования (главным образом выпуклого программирования) путем предварительной линейной аппроксимации целевой функции и ограничений, т. е. их замены близкими к ним кусочно-линейными функциями.. Это означает, что кривая данной функции заменяется вписанными в нее ломаными прямыми линиями. Полученная приближенная задача решается с помощью методов линейного программирования. Кусочно-линейная функция— нелинейная функция f(x) = f(x1, x2, ..., xn), которая (при ее геометрическом представлении) состоит из переходящих друг в друга линейных участков. Любая функция от одного аргумента, непрерывная в замкнутом интервале, может быть с заданной точностью аппроксимирована кусочно-линейная функция. |
Л |
Лагранжа метод — метод решения ряда классов задач математического программирования с помощью нахождения седловой точки (x*, λ*) функции Лагранжа, что достигается приравниванием нулю частных производных этой функции по xi и λi. , где λi – множители, i = 1 m. |
|
Лагранжа множители — дополнительные множители, преобразующие целевую функцию экстремальной задачи выпуклого программирования (в частности, линейного программирования) при ее решении одним из классических методов — методом разрешающих множителей (методом Лагранжа). Полученная функция носит название лагранжиан, или функция Лагранжа. |
|
Локальное свойство функции показывает степень ее гладкости, т.е показывает свойства, связанные с непрерывностью функции, существованием и непрерывностью ее частных производных по направлению. Локальный максимум. Функция в точке имеет локальный максимум, если у точки имеется окрестность любого, в том числе и бесконечно малого радиуса , для которого выполняется неравенство , где - любая точка, принадлежащая окрестности. Локальный экстремум. Теорема о совпадении локального экстремума с глобальным (абсолютным). В любой задаче выпуклого программирования любой локальный минимум обязан совпадать с глобальным. То есть если найден минимум в задаче выпуклого программирования, то в задаче найдено оптимальное решение. Этот минимум являеться и глобальным, и локальным. |
|
Локальный случайныйо поиск на минимум целевой функции. Найти min Z = f( ) при условии аj ≤ xj ≤ bj; j = 1 ÷ n, где f( )– выпуклая функция.
≤ Pj
≤
.
Например, интервалу
S = S + 1.
|
М |
Минор элемента aij матрицы (n)-ого порядка - определитель (n-1) порядка, полученный вычеркиванием i-ой строки и j-го столбца в исходной матрице. |
Н |
Наискорейший подьем (рост), наискорейший спуск — направления поиска экстремума (максимальной или минимальной точек) в задачах нелинейного (математического) программирования при их решении градиентными методами. Нелинейность, нелинейная функция — термины, относящиеся к зависимостям, графики которых не являются прямыми линиями. |
|
Нелокальный случайный поиск на минимум целевой функции Найти min Z = f( ) при условии аj ≤ xj ≤ bj; j = 1 ÷ n, где f( )– выпуклая функция 1. Выписываем область допустимых значений ω( аj ≤ xj ≤ bj ); где j=1÷n. 2. Подготавливаем начальный вектор (а1, а2, ..., аn) = = (x1нижняя граница, x2нижняя граница,…, xnнижняя граница) = = ( x10, x20, ..., xn0 ), координатами служат нижние границы измерения координат из области допустимых решений ω. 3. Вводим целевую функцию Z = f( ). 4. Вычисляем целевую функцию при = , Z = f( ). 5. Вводим счетчик неудачных испытаний S = 0, N = 1000 – контрольное число. 6. Формируем массив случайных чисел λ. 7. Формируем случайный вектор , где , координаты которого вычисляются по правилу xj1 = xj нижняя граница + λj ּxjверхняя граница = аj + λj ּbj. 8. Вычисляем целевую функцию при = , Z = f( ). 9. Сравниваем f( ) и f( ). Если испытание удачное, то есть если f( ) <f( ), то переход к пункту 11, иначе переход к пункту 12. 10. = и Z =f( ) = f( ). Переход к пункту 7. 11. Если f( ) ≥ f( ), то ведем счет неудачных испытаний S = S + 1. 12. Сравниваем S и N, где N – контрольное число неудачных испытаний. Если S ≤ N, то переходим к пункту 7, иначе переход к пункту 13 13. Конец вычислений. Запись ответа Z =f( ) и . |
|
Непрерывная функция — во-первых, функция называется непрерывной в точке M0, если для любого числа ε > 0 можно указать окрестность Sr(M0) (S точки M0) так, что для всех точек M S выполняется неравенство |f(M) – f(M0) |< ε; а во-вторых, функция f(M) называется непрерывной на множестве V, если она непрерывна в каждой точке этого множества. Или непрерывность функции означает, что в результате небольшого изменения значения аргумента в любой точке области определения функции значение функции также изменится мало. Ньютона метод— вычислительный алгоритм решения широкого класса экстремальных задач (на отыскание безусловного минимума функции), использующий вторые частные производные минимизируемой функции. Обладает сравнительно быстрой сходимостью (искомая точка достигается через небольшое число итераций), но требует трудоемких вычислений. |
О |
Общая задача выпуклого программирования имеет выпуклую целевую функцию и систему ограничений, состоящую из выпуклых функций. min Z=f(X) φi(X) ≤ 0, i=1m, xj ≥0; j=1n, где f(X) – выпуклая функция, φi(X), i=1m – выпуклые функции. Ограничение – это математическое выражение, связывающее переменные в виде равенств или неравенств. Все ограничения образуют систему ограничений задачи. Ограничения бывают трех типов: равенства (=), неравенства типа меньше либо равно ( ), неравенства типа больше либо равно ( ). Определитель матрицы, детерминант — число, соответствующее квадратной матрице и полученное путем ее преобразования по определенному правилу. Обычное обозначение (для матрицы A): det A. Например, определитель (второго порядка) матрицы
det A = a11a22 — a12a21. Оптимальное решение – решение, в котором достигается экстремум (максимум или минимум) целевой функции. |
П |
Поиска метод. Все методы решения, основанные на исследоваии функций в небольшой окрестности последовательно выбираемых точек, называют методами поиска. Следует отметить, что все методы поиска - вычислительные, а следовательно, проводятся с ограниченной точностью. Методы поиска весьма разнообразны и включают целый ряд различных алгоритмов. Производная.
Для функции от одной переменной
f(x) — производная df/dx
— это скорость ее изменения, т. е. Необходимы различные обобщения этого понятия на более сложные функции. Например, если рассматривается функция многих переменных f (x1, ..., xn), то оказывается возможным использовать производные по одной из них (принимая остальные за неизменные). Такая производная называется частной и обозначается df/dx. Любая частная производная есть в свою очередь функция переменных x1, ..., xn — поэтому можно рассматривать вторые частные производные
Важное свойство вторых частных производных — их симметричность; если функция f непрерывна, имеет непрерывные первую и вторую частные производные, то безразлично, в каком порядке функцию дифференцировать:
Кроме обозначения производных, указанного выше, используется штрих ′ или апостроф ', например, производная функции f(x) обозначается либо df / dx, либо f′(x). Производная частная — понятие дифференциального исчисления: производная функции нескольких переменных по одной из них. Характеризует скорость изменения функции, когда меняется только один аргумент, а все остальные принимаются неизменными. |
С |
Седловой точкой действительной функции f (x,y), определённой для всех x A, y B, называется точка (x0 , y0 ), где x0 A, y0 B, если выполнены следующие условия: 1. x A, f (x , y, x0, y0), f (x0 , y0), f (x, y). 2. x В, f (x , y, x0, y0), f (x0 , y0), f (x, y). Специальная задача выпуклого программирования имеет выпуклую целевую функцию и линейную систему ограничений. min Z=f(X) = Z(x1, x2, ... , xn) , где f(X) – выпуклая функция. Стационарная точка - точка X* , в которой все частные производные функции Z = f (Х) равны 0. |
Ц |
Целевая функция - Z = f (Х) - математическое выражение, для которого требуется найти экстремальное (то есть максимальное или минимальное) значение. Целевую функцию называют также функционалом. Целевая функция математически записывает критерий оптимальности, критерий качества. |
Ш |
Штраф за дефицит - это убытки, связанные с отсутствием запаса Штрафные функции — вспомогательные функции, применяемые при численном решении некоторых классов задач математического программирования; метод штрафных функций основан на сведении задачи с ограничениями к задаче без ограничений. Например, может быть построена штрафная функция, равная нулю в допустимой области и быстро возрастающая вне ее. После этого решается задача минимизации суммы штрафных функций и целевой функции исходной задачи с помощью одного из известных вычислительных алгоритмов. Штрафная функция – это вспомогательныя функция - взвешенная сумма квадратов невязок, т.е. штраф за невыполнение ограничений Задача с ограничениями в этом случае сводится к задаче без ограничений. |