Нелинейное программирование
РОССИЙСКАЯ ФЕДЕРАЦИЯ
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ
ФГБОУ ВПО «ТЮМЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»
ИНСТИТУТ ДИСТАНЦИОННОГО ОБРАЗОВАНИЯ
Специальность «Государственное и муниципальное управление»
К О Н Т Р О Л Ь Н А Я Р А Б О Т А
По дисциплине: «Основы математического моделирования социально-экономических процессов»
По теме: Нелинейное программирование
Выполнил:
студентка 4 курса, 7 семестр,
Немчинова Галина Геннадьевна
сентябрь, 2014
Содержание:
Введение
Современный этап развития человечества отличается тем, что на смену века энергетики приходит век информатики. Происходит интенсивное внедрение новых технологий во все сферы человеческой деятельности. Встает реальная проблема перехода в информационное общество, для которого приоритетным должно стать развитие образования. Изменяется и структура знаний в обществе. Все большее значение для практической жизни приобретают фундаментальные знания, способствующие творческому развитию личности. Важна и конструктивность приобретаемых знаний, умение их структурировать в соответствии с поставленной целью. На базе знаний формируются новые информационные ресурсы общества. Формирование и получение новых знаний должно базироваться на строгой методологии системного подхода, в рамках которого отдельное место занимает модельный подход. Возможности модельного подхода крайне многообразны как по используемым формальным моделям, так и по способам реализации методов моделирования. Физическое моделирование позволяет получить достоверные результаты для достаточно простых систем.
В настоящее время нельзя назвать область человеческой деятельности, в которой в той или иной степени не использовались бы методы моделирования. Особенно это относится к сфере управления различными системами, где основными являются процессы принятия решений на основе получаемой информации.
1. Постановка задачи нелинейного программирования
В задаче нелинейного программирования (НЛП) требуется найти значение многомерной переменной х=( ), минимизирующее целевую функцию f(x) при условиях, когда на переменную х наложены ограничения типа неравенств
, i=1,2,…, m (1)
а переменные , т.е. компоненты вектора х, неотрицательны:
(2)
Иногда в формулировке задачи ограничения (1) имеют противоположные знаки неравенств. Учитывая, однако, что если , то , всегда можно свести задачу к неравенствам одного знака. Если некоторые ограничения входят в задачу со знаком равенства, например , то их можно представить в виде пары неравенств , , сохранив тем самым типовую формулировку задачи.
2. Критерии оптимальности в задачах с ограничениями
Ряд инженерных задач связан с оптимизацией при наличии некоторого количества ограничений на управляемые переменные. Такие ограничения существенно уменьшают размеры области, в которой проводится поиск оптимума. На первый взгляд может показаться, что уменьшение размеров допустимой области должно упростить процедуру поиска оптимума. Между тем, напротив, процесс оптимизации становится более сложным, поскольку установленные выше критерии оптимальности нельзя использовать при наличии ограничений. При этом может нарушаться даже основное условие, в соответствии с которым оптимум должен достигаться в стационарной точке, характеризующейся нулевым градиентом. Например, безусловный минимум функции имеет место в стационарной точке х=2. Но если задача минимизации решается с учетом ограничения , то будет найден условный минимум, которому соответствует точка x=4. Эта точка не является стационарной точкой функции f, так как (4)=4. Далее исследуются необходимые и достаточные условия оптимальности решений задач с ограничениями. Изложение начинается с рассмотрения задач оптимизации, которые содержат только ограничения в виде равенств.
2.1 Задачи с ограничениями в виде равенств
Рассмотрим общую задачу оптимизации, содержащую несколько ограничений в виде равенств:
Минимизировать
при ограничениях , k=1,…, n
Эта задача в принципе может быть решена как задача безусловной оптимизации, полученная путем исключения из целевой функции k независимых переменных с помощью заданных равенств. Наличие ограничений в виде равенств фактически позволяет уменьшить размерность исходной задачи с n до n-k. В качестве иллюстрации рассмотрим следующий пример.
Пример 1
Минимизировать
при ограничении
Исключив переменную , с помощью уравнения , получим
оптимизационную задачу с двумя переменными без ограничений
min
Метод исключения переменных применим лишь в тех случаях, когда уравнения, представляющие ограничения, можно разрешить относительно некоторого конкретного набора независимых переменных. При наличии большого числа ограничений в виде равенств, процесс исключения переменных становится весьма трудоемкой процедурой. Кроме того, возможны ситуации, когда уравнение не удается разрешить относительно переменной. В частности, если в примере 1 ограничение задать в виде , то получить аналитическое выражение какой-либо из переменных через другие не представляется возможным. Таким образом, при решении задач, содержащих сложные ограничения в виде равенств, целесообразно использовать метод множителей Лагранжа, описание которого дается в следующем разделе.
2.2 Множители Лагранжа
С помощью метода множителей Лагранжа по существу устанавливаются необходимые условия, позволяющие идентифицировать точки оптимума в задачах оптимизации с ограничениями в виде равенств. При этом задача с ограничениями преобразуется в эквивалентную задачу безусловной оптимизации, в которой фигурируют некоторые неизвестные параметры, называемые множителями Лагранжа.
Рассмотрим задачу минимизации функции n переменных с учетом одного ограничения в виде равенства:
Минимизировать
(3)
при ограничениях
(4)
В соответствии с методом множителей Лагранжа эта задача преобразуется в следующую задачу безусловной оптимизации:
минимизировать
L (x, u)=f(x) – u*h(x) (5)
Функция L (х; u) называется функцией Лагранжа, u – неизвестная постоянная, которая носит название множителя Лагранжа. На знак u никаких требований не накладывается.
Пусть при заданном значении u=u0 безусловный минимум функции L (x, u) по х достигается в точке и удовлетворяет уравнению . Тогда, как нетрудно видеть, x0 минимизирует (1) с учетом (4), поскольку для всех значений х, удовлетворяющих (4), и L (x, u)=min f(x).
Разумеется, необходимо подобрать значение u=u° таким образом, чтобы координата точки безусловного минимума х° удовлетворяла равенству (4). Это можно сделать, если, рассматривая u как переменную, найти безусловный минимум функции (5) в виде функции u, а затем выбрать значение u, при котором выполняется равенство (4). Проиллюстрируем это на конкретном примере.
Пример 2
Минимизировать
при ограничении =0
Соответствующая задача безусловной оптимизации записывается в следующем виде:
минимизировать L (x, u)= -u
Решение. Приравняв две компоненты градиента L к нулю, получим
Для того чтобы проверить, соответствует ли стационарная точка х° минимуму, вычислим элементы матрицы Гессе функции L (х; u), рассматриваемой как функция х,
которая оказывается положительно определенной. Это означает, что L (х, u) – выпуклая функция х. Следовательно, координаты , определяют точку глобального минимума. Оптимальное значение u находится путем подстановки значений и в уравнение =2, откуда 2u+u/2=2 или . Таким образом, условный минимум достигается при и и равен min f(x)=4/5.
При решении задачи из примера 2 мы рассматривали L (х; u) как функцию двух переменных и и, кроме того, предполагали, что значение параметра u выбрано так, чтобы выполнялось ограничение. Если же решение системы
в виде явных функций u получить нельзя, то значения х и u находятся путем решения следующей системы, состоящей из n+1 уравнений с n+1 неизвестными:
Для нахождения всех возможных решений данной системы можно использовать численные методы поиска (например, метод Ньютона). Для каждого из решений ( ) следует вычислить элементы матрицы Гессе функции L, рассматриваемой как функция х, и выяснить, является ли эта матрица положительно определенной (локальный минимум) или отрицательно определенной (локальный максимум).
Метод множителей Лагранжа можно распространить на случай, когда задача имеет несколько ограничений в виде равенств. Рассмотрим общую задачу, в которой требуется
Минимизировать f(x)
при ограничениях =0, k=1, 2,…, К.
Функция Лагранжа принимает следующий вид:
L (x, u)=f(x)-
Здесь –множители Лагранжа, т.е. неизвестные параметры, значения которых необходимо определить. Приравнивая частные производные L по х к нулю, получаем следующую систему n уравнении с n неизвестными:
……….
Если найти решение приведенной выше системы в виде функций вектора u оказывается затруднительным, то можно расширить систему путем включения в нее ограничений в виде равенств
Решение расширенной системы, состоящей из n+К уравнений с n+К неизвестными, определяет стационарную точку функции L. Затем реализуется процедура проверки на минимум или максимум, которая проводится на основе вычисления элементов матрицы Гессе функции L, рассматриваемой как функция х, подобно тому, как это было проделано в случае задачи с одним ограничением. Для некоторых задач расширенная система n+К уравнений с n+K неизвестными может не иметь решений, и метод множителей Лагранжа оказывается неприменимым. Следует, однако, отметить, что такие задачи на практике встречаются достаточно редко.
3. Условия Куна-Таккера
В предыдущем разделе было установлено, что множители Лагранжа можно использовать при построении критериев оптимальности для задач оптимизации с ограничениями в виде равенств. Кун и Таккер обобщили этот подход на случай общей задачи нелинейного программирования с ограничениями, как в виде равенств, так и в виде неравенств.
Рассмотрим следующую общую задачу нелинейного программирования:
минимизировать
(0)
при ограничениях
(1)
(2)
Определение:
Ограничение в виде неравенства называется активным, или связывающим, в точке , если , и неактивным, или несвязывающим, если
Если существует возможность обнаружить ограничения, которые неактивны в точке оптимума, до непосредственного решения задачи, то эти ограничения можно исключить из модели и тем самым уменьшить ее размеры. Основная трудность заключается при этом в идентификации неактивных ограничений, предшествующей решению задачи.
Кун и Таккер построили необходимые и достаточные условия оптимальности для задач нелинейного программирования, исходя из предположения о дифференцируемости функций . Эти условия оптимальности, широко известные как условия Куна–Таккера, можно сформулировать в виде задачи нахождения решения некоторой системы нелинейных уравнений и неравенств, или, как иногда говорят, задачи Куна–Таккера.
3.1 Условия Куна–Таккера и задача Куна–Таккера
Найти векторы , удовлетворяющие следующим условиям
(3)
(4)
(5)
(6)
(7)
Прежде всего проиллюстрируем условия Куна – Таккера на примере.
Пример 3
Минимизировать
при ограничениях
Решение.
Записав данную задачу в виде задачи нелинейного программирования (0) – (2), получим:
Уравнение (3), входящее в состав условий Куна–Таккера, принимает следующий вид:
откуда
Неравенства (4) и уравнения (5) задачи Куна – Таккера в данном случае записываются в виде
Уравнения (5.16), известные как условие дополняющей нежесткости, принимают вид
Заметим, что на переменные и накладывается требование не отрицательности, тогда как ограничение на знак отсутствует.
Таким образом, этой задачи условия Куна–Танкера записываются в следующем виде:
3.2 Интерпретация условий Куна – Таккера
Для того чтобы интерпретировать условия Куна – Таккера, рассмотрим задачу нелинейного программирования с ограничениями в виде равенств:
минимизировать
при ограничениях
Запишем условия Куна–Таккера
(8)
(9)
Далее рассмотрим функцию Лагранжа для задачи нелинейного программирования с ограничениями в виде равенств:
Для этой функции условия оптимальности первого порядка записываются в виде:
Нетрудно видеть, что условия Куна-Таккера (8) и (9) совпадают с условиями оптимальности первого порядка для задачи Лагранжа.
Рассмотрим задачу нелинейного программирования с ограничениями в виде неравенств:
минимизировать
при ограничениях
Запишем условия Куна–Таккера
Соответствующая функция Лагранжа имеет вид
Условия оптимальности первого порядка записываются как
Заметим, что - множитель Лагранжа, соответствующий ограничению . Раньше было показано, что представляет неявную цену, ассоциированную с ограничением ; другими словами, величина отражает изменение минимального значения целевой функции , вызываемое единичным приращением правой части - го ограничения.
Если предположить, что - е ограничение является неактивным (т.е. С другой стороны, если -е ограничение активное (т.е. ), то соответствующая неявная цена не обязательно равна нулю, однако , так как . Таким образом, для всех значений .
Для того чтобы определить знак (неявной цены, ассоциированной с ограничением ), следует увеличить правую часть ограничения от 0 до 1. Ясно, что при этом область допустимых решений сужается, поскольку любое решение, удовлетворяющее ограничению , автоматически удовлетворяет неравенству . Следовательно, размеры допустимой области уменьшаются, и минимальное значение улучшить невозможно (так как вообще оно может только возрастать). Другими словами, неявная цена , ассоциированная с -м ограничением, должна быть неотрицательной, что соответствует условиям Куна–Таккера.
3.3 Теоремы Куна–Таккера
В предыдущем разделе построены условия Куна–Таккера для задач условной оптимизации. С помощью метода множителей Лагранжа получено интуитивное представление о том, что условия Куна – Танкера тесно связаны с необходимыми условиями оптимальности. В данном разделе рассматриваются строгие формулировки необходимых и достаточных условий оптимальности решения задачи нелинейного программирования.
Теорема 1. Необходимость условий Куна–Таккера
Рассмотрим задачу нелинейного программирования (0) – (2). Пусть - дифференцируемые функции, а х* – допустимое решение данной задачи. Положим . Далее пусть линейно независимы. Если х* – оптимальное решение задачи нелинейного программирования, то существует такая пара векторов , что является решением задачи Куна–Таккера (3) – (7).
Условие, согласно которому должны быть линейно независимыми, известно как условие линейной независимости и по существу представляет собой некоторое условие регулярности допустимой области, которое почти всегда выполняется для встречающихся на практике задач оптимизации. Однако вообще проверка выполнения условия линейной независимости весьма затруднительна, так как требуется, чтобы оптимальное решение задачи было известно заранее. Вместе с тем условие линейной независимости всегда выполняется для задач нелинейного программирования, обладающих следующими свойствами.
1. Все ограничения в виде
2. Все ограничения в виде
Если условие линейной независимости в точке оптимума не выполняется, то задача Куна–Таккера может не иметь решения.
Пример 4
Минимизировать
при ограничениях
Решение.
На рис. 1 изображена область допустимых решений сформулированной выше нелинейной задачи. Ясно, что оптимальное решение этой задачи есть . Покажем, что условие линейной независимости не выполняется в точке оптимума.
Рис.1. - Допустимая область в задаче 4
Так как
Легко видеть, что векторы линейно зависимы, т.е. условие линейной независимости в точке не выполняется.
Запишем условия Куна–Таккера и проверим, выполняются ли они в точке (1, 0). Условия (3), (6) и (7) принимают следующий вид;
(11)
(12)
(13)
(14)
(15)
(16)
При из уравнения (11) следует, что , тогда как уравнение (14) дает , Следовательно, точка оптимума не является точкой Куна – Таккера.
Заметим, что нарушение условия линейной независимости не обязательно означает, что точка Куна–Таккера не существует. Для того чтобы подтвердить это, заменим целевую функцию из этого примера функцией . При этом оптимум по-прежнему достигается в точке (1,0), в которой условие линейной независимости не выполняется. Условия Куна–Таккера (12) – (16) остаются неизменными, а уравнение (11) принимает вид
Нетрудно проверить, что точка является точкой Куна–Таккера, т.е. удовлетворяет условиям Куна–Таккера.
Теорема о необходимости условий Куна–Таккера позволяет идентифицировать неоптимальные точки. Другими словами, теорему 1 можно использовать для доказательства того, что заданная допустимая точка, удовлетворяющая условию линейной независимости, не является оптимальной, если она не удовлетворяет условиям Куна–Таккера. С другой стороны, если в этой точке условия Куна–Таккера выполняются, то нет гарантии, что найдено оптимальное решение нелинейной задачи. В качестве примера рассмотрим следующую задачу нелинейного программирования.
Следующая теорема устанавливает условия, при выполнении которых точка Куна–Таккера автоматически соответствует оптимальному решению задачи нелинейного программирования.
Теорема 2. Достаточность условий Куна–Таккера
Рассмотрим задачу нелинейного программирования (0) – (2). Пусть целевая функция выпуклая, все ограничения в виде неравенств содержат вогнутые функции , а ограничения в виде равенств содержат линейные функции . Тогда если существует решение , удовлетворяющее условиям Куна–Таккера (3) – (7), то х* – оптимальное решение задачи нелинейного программирования.
Если условия теоремы 2 выполняются, то нахождение точки Куна–Таккера обеспечивает получение оптимального решения задачи нелинейного программирования.
Теорему 2 можно также использовать для доказательства оптимальности данного решения задачи нелинейного программирования. В качестве иллюстрации опять рассмотрим пример:
Минимизировать
при ограничениях
С помощью теоремы 2 докажем, что решение является оптимальным. Имеем
Так как матрица положительно полуопределена при всех х, функция оказывается выпуклой. Первое ограничение в виде неравенства содержит линейную функцию , которая одновременно является как выпуклой, так и вогнутой. Для того
чтобы показать, что функция является вогнутой, вычислим
Поскольку матрица отрицательно определена, функция является вогнутой. Функция входит в линейное ограничение в вяде равенства. Следовательно, все условия теоремы 2 выполнены; если мы покажем, что – точка Куна-Таккера, то действительно установим оптимальность решения . Условия Куна-Таккера для примера 2 имеют вид
(22)
(23)
(24)
(25)
, (26)
, (27)
(28)
(29)
Точка удовлетворяет ограничениям (24) – (26) и, следовательно, является допустимой. Уравнения (22) и (23) принимают следующий вид:
Положив , получим и . Таким образом, решение х*=(1, 5), удовлетворяет условиям Куна–Таккера. Поскольку условия теоремы 2 выполнены, то оптимальное решение задачи из примера 3. Заметим, что существуют также и другие значения и , которые удовлетворяют системе (22) – (29).
Замечания
1. Для встречающихся на практике задач условие линейной независимости, как правило, выполняется. Если в задаче все функции дифференцируемы, то точку Куна–Таккера следует рассматривать как возможную точку оптимума. Таким образом, многие из методов нелинейного программирования сходятся к точке Куна–Таккера. (Здесь уместно провести аналогию со случаем безусловной оптимизации, когда соответствующие алгоритмы позволяют определить стационарную точку.)
2. Если условия теоремы 2 выполнены, точка Куна–Таккера в то же время оказывается точкой глобального минимума. К сожалению, проверка достаточных условий весьма затруднительна, и, кроме того, прикладные задачи часто не обладают требуемыми свойствами. Следует отметить, что наличие хотя бы одного нелинейного ограничения в виде равенства приводит к нарушению предположений теоремы 2.
3. Достаточные условия, установленные
теоремой 2, можно обобщить на
случай задач с невыпуклыми
функциями, входящими в ограничения
в виде неравенств, невыпуклыми
целевыми функциями и
4. Прикладное применение нелинейной оптимизации
На практике линейные модели скорее исключение, чем правило, потому что очень часто величины (цены, процентные ставки, тарифы), которые влияют на конечный результат, есть не пропорционально зависимыми от неизвестных (объемы товаров или инвестиций) и потому общий результат описывается нелинейным соотношением. Нелинейность – это довольно распространенная ситуация, ее вызывают сложные взаимоотношения между величинами, что характерно для технических, финансовых, биологических и других процессов. Потому нелинейность экономических и управленческих задач существенно расширяет возможности учета существующих свойств и черт, хотя относительно их решения исследователи должны учитывать повышенную сложность получения желанного результата вплоть до невозможности его получения вообще.
Нелинейные модели классифицируют с позиции сложности получения глобального оптимуму – все зависит от функциональных особенностей целевой функции и ограничений. Все множество нелинейных задач оптимизации можно разделить на три классы соответственно к особенностям целевой функции и функции ограничений в порядке нарастания сложности:
І. Вогнутые и выпуклые задачи квадратичного программирования, где достигается глобальный оптимум.
ІІ. Вогнутые и выпуклые задачи выпуклого программирования, где достигается глобальный оптимум.
ІІІ. Задачи нелинейного программирования общего вида, где достигается локальный оптимум, среди которых ищут глобальный оптимум.
Для примера рассмотрим некоторые задачи относящиеся к управлению и принятию решений, которые можно решить, используя теорию и методы нелинейного программирования
Задача управления запасами
Для выполнения компенсаторной функции и регулирования цен на продовольственные продукты в регионе муниципальные власти создают запасы для удовлетворения будущего спроса. Основным вопросом при этом зачастую становится определение того, как часто и в каком объеме создавать эти запасы.
Слишком частые пополнения запасов приводят к нерациональным потерям времени и средств, связанных с их непрерывным пополнением. С другой стороны, очевидно, что пополнение запасов через длительные промежутки времени приводит к образованию чрезмерно больших запасов и значительно повышает стоимость хранения запасов, в некоторых случаях (продукты с ограниченным сроком хранения) это вообще невозможно Определение оптимального объема запасов в этих условиях представляет собой классическую задачу оптимизации.
В рамках рассматриваемой задачи спрос предполагается постоянным и равным λ единиц товара в год. Чересчур частое пополнение запасов нецелесообразно, так как стоимость выполнения одного заказа составляет K руб. независимо от его размера. Первоначальная стоимость единицы товара равна c руб. Хранение излишних запасов также нецелесообразно, поскольку стоимость хранения единицы товара отлична от нуля и составляет h руб. в год. Для того чтобы упростить задачу, предположим, что спрос удовлетворяется немедленно (т.е. задолженные запросы отсутствуют), а пополнение осуществляется сразу же, как только запасы иссякают.
Рисунок 2 - Циклы управления запасами.
Рисунок 2 иллюстрирует изменение объема запасов с течением времени. В точке A объем запасов равен B; затем объем запасов начинает уменьшаться со скоростью λ единиц товара в единицу времени и достигает нулевого значения в точке C. В это время поступает новая партия товара, и объем запасов восстанавливается.
Треугольник ABC представляет один цикл управления запасами, который повторяется во времени. Задача заключается в том, чтобы определить оптимальный размер заказа B и продолжительность интервала времени между заказами C – A. Обозначим соответствующие переменные через Q и T.
Поскольку T есть величина промежутка времени, в течение которого при скорости λ истощается запас Q, имеем T=Q/λ. Таким образом, задача сводится к нахождению оптимального значения Q. Заметим, что когда Q мало, переменная T также имеет малое значение. При этом частота заказов велика, что обуславливается большие затраты на выполнение заказов и относительно малые издержки хранения запасов. С другой стороны, наличие большого объема запасов (Q велико) приводит к увеличению затрат на хранение запасов и одновременно к снижению издержек, связанных с выполнением заказов на товары. Одна из основных задач управления запасами состоит в определении оптимального значения Q, которому соответствует минимум суммы полных годовых затрат.
Получим аналитическое выражение для функции полных годовых затрат (затраты/цикл × количество циклов/год).
Примечание. Затраты на хранение запасов в течение цикла равны затратам на хранение Q/2 единиц товара в течение интервала времени T.
Таким образом, подлежащая минимизации функция полных затрат есть
,
,
.
отсюда следует, что – выпуклая функция и если существует положительное значение Q*, такое, что , то Q* минимизирует .
Решив уравнение , получим
.
Таким образом, оптимальный размер заказа равен
При этом T* – интервал времени между заказами . Величина Q* известна в теории управления запасами как наиболее экономичный размер заказа.
Часто для решения задач нелинейного программирования применяются средства автоматизации, это могут быть как специализированные программные комплексы, так и традиционные представители ПО, например – Excel.
В Excel для поиска оптимуму нелинейной задачи используется улучшенный метод сопряженных градиентов Флетчера-Ривса итерационного типа, приспособленный известным математиком Л. Лесдоном для программы надстройки Excel Solver (Поиск решений).
Идея градиентного метода поиску экстремума функции (предложена в 1847 году Коши): выбирается начальная (стартовая) точка (начальное приближение у виде набора произвольных значений неизвестных) и вычисляется градиент (начальные производные целевой функции в диапазоне этой точки), который определяет шаг и направление движения в следующую точку для улучшения ЦФ. У следующих точках эта процедура повторяется, пока эти производные не станут нулевыми, что говорит о достижении экстремума.