Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебно-методические материалы / Конспект лекций / Лекции по ЭММ исправленочасть 1.DOC
Скачиваний:
185
Добавлен:
01.08.2013
Размер:
3.9 Mб
Скачать

Тема 7 Нелинейное программирование

Как известно, общая задача математического программирования формулируется следующим образом: найти вектор , удовлетворяющий системе ограничений:

bi, i=1,…,m,

(система иногда представляется через знак "=", но равенства всегда можно переделать в неравенства) и доставляющий экстремум функции . При этом предполагается, что известны функциии. Обычно на некоторые переменные из наборанакладывается условие неотрицательности. Если и , гдеи - известные константы, то при условии неотрицательности решения получаем задачу линейного программирования. Любую другую задачу математического программирования, не удовлетворяющую таким условиям, будем считать нелинейной.

Класс задач нелинейного программирования значительно шире класса задач линейного программирования, поэтому в практике экономико-математического моделирования необходимо знать и применять методы нелинейного программирования. Основные результаты в нелинейном программировании получены при рассмотрении задач, в которых система ограничений линейная, а целевая функция нелинейная. Даже в таких задачах оптимальное решение может быть найдено только для узкого класса целевых функций.

В евклидовом пространстве система ограничений определяет область допустимых решений задачи. В отличие от задач линейного программирования она не всегда является выпуклой областью.

Если определена область допустимых решений, то нахождение решение задачи нелинейного программирования сводится к определению такой точки этой области, через которую проходит гиперповерхность наивысшего (наинизшего) уровня . Указанная точка может находиться как на границе области допустимых решений, так и внутри ее, в отличие от задач линейного программирования.

Процесс нахождения решения задачи нелинейного программирования с использованием ее геометрической интерпретации включает следующие этапы:

  1. Находят область допустимых решений задачи, определяемых соотношениями (если она пуста, то задача не имеет решения).

  2. Строят гиперповерхность .

  3. Определяют гиперповерхность наивысшего (наинизшего) уровня или устанавливают неразрешимость задачи из-за неограниченности функции сверху (снизу) на множестве допустимых решений.

  4. Находят точку области допустимых решений, через которую проходит гиперповерхность наивысшего (наинизшего) уровня, и определяют в ней значение функции .

Например, найти максимальное значение функции при условиях

Так как целевая функция нелинейная, то это задача нелинейного программирования. Областью допустимых решений данной задачи является многоугольник . Следовательно, для нахождения ее решения нужно определить такую точку многоугольника, в которой функцияпринимает максимальное значение.

Построим линию уровня , где– некоторая постоянная, и исследуем ее поведение при различных значениях. При каждом значенииполучаем параболу, которая тем выше отделена от оси,чем больше значение(см. рис. 17). Значит, функцияпринимает максимальное значение в точке касания одной из парабол с границей многоугольника. В данном случае это точка, в которой гиперповерхностькасается сторонымногоугольника. Координаты точкиможно найти из системы уравнений:

Решив эту систему, получаем:

Итак, при

Рис. 17 Геометрическое решение задачи

нелинейного программирования

Как видим, в задаче нелинейного программирования точка максимального значения целевой функции не является в данном случае вершиной многоугольника решений.

Рассмотрим частный случай общей задачи нелинейного программирования, предполагая, что система ограничений содержит только уравнения, отсутствуют условия отрицательности переменных и и - функции, непрерывные вместе со своими частными производными (по крайней мере, вторая частная производная должна быть непрерывной).

(7.1)

(7.2)

В курсе математического анализа задачу (7.1)-(7.2) называют задачей на условный экстремум или классической задачей оптимизации. Чтобы вспомнить необходимые и достаточные условия существования экстремума такой задачи, введем набор переменных , называемыхмножителями Лагранжа, составим функцию Лагранжа

,

находим частные производные ии рассматриваем системууравнений (здесь привлечём необходимое условие экстремума, заключающееся в том, что первая производная должна быть равна):

(7.3)

с неизвестными. Всякое решение системы уравнений (7.3) определяет точку, в которой может иметь место экстремум функции. Следовательно, решив систему (7.3), получают все точки, в которых функцияможет иметь экстремальные значения. Дальнейшее исследование найденных точек проводят так же, как и в случае безусловного экстремума (здесь привлекается достаточное условие экстремума – если вторая производная меньше нуля, то имеет место максимум, если больше нуля - минимум).

Таким образом, определение экстремальных точек задачи нелинейного программирования (7.1)-(7.2) методом множителей Лагранжа включает следующие этапы:

  1. Составляют функцию Лагранжа.

  2. Находят частные производные от функции Лагранжа по переменным иприравнивают их0.

  3. Решая систему уравнений (7.3), находят точки, в которых целевая функция может иметь экстремум.

  4. Среди точек, подозрительных на экстремум, находят точки, в которых достигается экстремум, и вычисляют значения целевой функции в этих точках.

Рассмотрим пример. Предприятию необходимо изготовить 180 деталей. Эти изделия могут быть изготовлены двумя технологическими способами. При производстве изделийI способом затраты равны (руб.), а при изготовленииизделийII способом они составляют (руб.). Определить, сколько изделий каждым из способов следует изготовить так, чтобы общие затраты на производство продукции были минимальными.

Решение.

Математическая модель задачи нелинейного программирования состоит в следующем: найти минимум функции при условияхи.

Решим задачу, используя метод множителей Лагранжа. Найдем минимальное значение функции при условии , т.е. без учета требования неотрицательности переменных. Для этого составим функцию Лагранжа .

Вычислим её частные производные по , , и приравняем их :

Перенесем в правые части первых двух уравнений и, приравнивая их левые части, получимили.

Решаем совместно систему, т.е. получаем координаты точки, удовлетворяющие условиям неотрицательности. Эта точка является подозрительной на экстремум. Используя вторые частные производные, выясняем, что в этой точке функция имеет условный минимум. То же получим, если исследование на условный экстремум функциисведем к исследованию на безусловный экстремум функции, полученной изв результате её преобразований: из уравнения связи найдеми подставим в целевую функцию, получим функцию одной переменной:

.

; ; ; , т.е. в этой точке имеем минимум.

Метод множителей Лагранжа можно применять и в том случае, когда условия связи представляют собой неравенства.

Так, если требуется найти экстремум функции при условии, то сначала следует найти точки безусловного экстремума функциииз уравнений; , затем среди этих точек отобрать те, координаты которые удовлетворяют условию связи , и, наконец, определить точки, удовлетворяющие системе уравнений:

.

Tочки, найденные в результате решения этой системы, вместе с точками, определёнными на первом этапе и удовлетворяющими условию , подлежат дальнейшему исследованию, как и при нахождении безусловного экстремума.

В заключение рассмотрения метода Лагранжа для решения задач нелинейного программирования скажем, что функцию Лагранжа можно трактовать и в определённом экономическом смысле. Если максимизируемую функцию интерпретировать как прибыль, а правые части неравенств как величину отпущенных ресурсов, то множительy можно рассматривать как стоимость единицы ресурсов. Тогда определит экономию ресурсов в денежном выражении, а функция Лагранжа будет являться величиной общего дохода.

Для общей задачи нелинейного программирования

(7.4)

(7.5)

(7.6)

Как уже упоминалось, для отдельных классов задач, в которых сделаны дополнительные ограничения относительно свойств функции иразработаны эффективные методы их решения. В частности, ряд таких методов имеется для решения задач нелинейного программирования (7.4)–(7.6) при условии, что– вогнутая (выпуклая) функция и область допустимых решений, определяемая ограничениями (7.5)–(7.6) – выпуклая.

Определение 1.

Функция , заданная на выпуклом множествеX, называется выпуклой, если для любых двух точек и из X и любого выполняется соотношение

.

Определение 2.

См. то же, что и в определении 1, но если , тогда функция называется вогнутой.

Определение 3.

Говорят, что множество допустимых решений задачи (7.4)–(7.6) удовлетворяет условию регулярности, если существует по крайней мере одна точка , принадлежащая области допустимых решений такая, что .

Определение 4. Задача (7.4)–(7.6) называется задачей выпуклого программирования, если функция является вогнутой (выпуклой), а функции– выпуклыми.

Теорема.

Любой локальный максимум (минимум) задачи выпуклого программирования является глобальным максимумом (минимумом).

Что называется функцией Лагранжа, уже было пояснено, седловой же точкой функции Лагранжа называется точка

если

для всех и .

Теорема Куна – Таккера

Теорема. Для задачи выпуклого программирования (7.4)–(7.6), множество допустимых решений которой обладает свойством регулярности, план является оптимальным планом тогда и только тогда, когда существует такой вектор , что– седловая точка функции Лагранжа.

Если предложить, что целевая функция и функциинепрерывны и дифференцируемы, то теорема Куна - Таккера может быть дополнена аналитическими выражениями, определяющими необходимое и достаточное условие того, чтобы точкабыла седловой точкой функции Лагранжа, т.е. являлась решением задачи выпуклого программирования. Эти выражения имеют следующий вид:

где и- значения соответствующих частных производных функции Лагранжа, вычисленных в седловой точке.

Теорема Куна - Таккера в теории нелинейного программирования занимает центральное место. Она справедлива и для задач так называемого квадратичного программирования, т.е. где целевая функция при ограничениях:

.

В общем случае решения задач нелинейного программирования для определения глобального экстремума задачи не существует эффективного вычислительного метода, если не известно, что любой локальный экстремум одновременно является и глобальным. Так как в задаче выпуклого и квадратичного программирования множество допустимых решений выпукло, то, если целевая функция вогнута, любой локальный максимум является также и глобальным.

Пример: С помощью теоремы Куна - Таккера найдем при ограничениях

Решаем графически (см. рис. 18) и находим: ;;(более подробно решение см. немного ниже). Покажем, что существует векторY0 0, при котором в точке оптимума выполняются условия Куна - Таккера. Составим функцию Лагранжа:

Находим:

Рис. 18 Графическое решение задачи нелинейного программирования

Решение находим из системы:. Из второго уравнения, подставляем в первое уравнение системы. Дифференцируем по:. В выраженияиподставляем значенияи. Имеем значения частных производных больше нуля, а по условию должны быть равно нулю, тогда =0и =0. С другой стороны, может принимать ненулевые значения, т.к. отсюда ; все т.е. условия Куна-Таккера выполняются, следовательно, эта точка – точка экстремума.

Необходимое условие оптимальности для задачи нелинейного программирования можно сформулировать следующим образом. Пусть – оптимальное решение задачи (7.4)–(7.6), причем функции, , дифференцируемы в этой точке. Если– неособая точка допустимого множества задачи (7.4)–(7.6), то она является точкой Куна-Таккера этой задачи.

Таким образом, если допустимое множество задачи (7.4)-(7.6) не имеет особых точек, а функцииF(М), gi(М),() дифференцируемы во всех точках , то оптимальное решение этой задачи следует искать среди точек Куна – Таккера.

Как известно из математического анализа, особой точкой множества допустимых решений системы линейных уравнений и неравенств вида

,

т. е. множества допустимых решений

если в точке линейно зависимы градиенты тех функций , которые в ней обращаются в. Например,– особая точка множества

Действительно,

Таким образом, - линейно зависимая система.

Градиент функции – это вектор, координаты которого соответственно равны значениям частных производных функциив точкеM0. Этот вектор показывает направление быстрейшего роста функции.

Необходимое условие оптимальности малопригодно для решения большинства задач нелинейного программирования, т.к. лишь в редких случаях удается найти все точки Куна-Таккера задачи нелинейного программирования.

Достаточное условие оптимальности для задачи нелинейного программирования: если – седловая точка функции Лагранжа для задачи (7.4)–(7.6), тоявляется оптимальным решением этой задачи.

Это условие в общем случае не является необходимым: функция Лагранжа может не иметь седловых точек, в то же время исходная задача нелинейного программирования обладает оптимальным решением.

Известны различные методы, позволяющие найти оптимальное решение задачи нелинейного программирования приближенно. Однако эти методы дают достаточно хорошее приближение лишь для задачи выпуклого программирования, где всякий локальный экстремум является одновременно и глобальным. В общем случае под градиентными методами понимают методы, в которых движение к точке оптимума функции совпадают с направлением градиента этой функции, т.е. начиная с некоторой точки осуществляется последовательный переход к некоторым другим точкам до тех пор, пока не выявится приемлемое решение исходной задачи. При этом градиентные методы могут быть подразделены на2 группы.

К первой группе относятся методы, при использовании которых исследуемые точки не выходят за пределы области допустимых решений задачи. Наиболее распространенным из таких методов является метод Франка-Вольфа (Вулфа). К числу таких методов относится метод проектируемых градиентов Розена, метод допустимых направлений Зойтендейка.

Ко второй группе относятся методы, при использовании которых исследуемые точки могут как принадлежать, так и не принадлежать области допустимых решений. Однако в результате реализации итерационного процесса находится точка области допустимых решений, определяющая приемлемое решение.

Из таких методов наиболее часто используется метод штрафных функций или метод Эрроу-Гурвица.

При нахождении решение задач градиентными методами, в том числе и названными, итерационный процесс осуществляется до того момента, пока градиент функции в очередной точкене станет равным нулю или же пока, где– достаточно малое положительное число, характеризующее точность полученного решения.

Решение сложных задач нелинейного программирования градиентными методами связано с большим объёмом вычисления и целесообразно только с использованием ЭВМ.

На примере покажем общий смысл градиентных методов решения задач нелинейного программирования.

Пусть имеется функция двух переменных . Пусть исходные значения переменных будут, а значение функции. Еслине является экстремумом, то определяют такие новые значения переменныхи, чтобы следующее значение функцииоказалось ближе к оптимуму, чем предыдущее.

Каким же образом определяется величина приращений и ? Для этого в точках иопределяется направление изменения функции в сторону экстремума с помощью градиента - вектора, координатами которого служат частные производные. Чем больше значение частной производной, тем быстрее происходит изменение функции в сторону экстремума. Поэтому приращениеивыбирают пропорциональными значению частных производныхив точкахи. Таким образом, и , где – величина, называемая шагом, которая устанавливает масштаб измененийи.

Пусть необходимо максимизировать функцию

(максимум в точке (3;2))

.

В точке ,приимеем

; ,

откуда

; ;

.

Проведем еще одну итерацию. В точке ,приимеем

; ,

откуда

; ;

.

Рис. 19 Геометрическая интерпретация двух шагов

градиентного метода решения задачи нелинейного программирования

На рис. 19 показано движение по градиенту, которое было проведено в данном примере. Отношение указывает направление изменения функции в сторону максимума. Если градиент взять со знаком минус, то будем двигаться в сторону минимума.

Специфической проблемой градиентных методов является выбор величины шага t. Если задаться малым шагом, то оптимум будем искать очень долго. Если выбрать его значение слишком большим, то оптимум можно "проскочить". Соответствующими методами решается промежуточная задача выбора оптимальной величины шага. Если шаг t определяется приближенно, то, как правило, попадают не в оптимум, а в его зону. Градиентные методы обеспечивают определение локальных оптимумов. При отыскании глобального оптимума с помощью градиента нередко бывает сомнение в том, что найденный оптимум является глобальным. В этом недостаток этого метода при решении задач невыпуклого программирования.