Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MATEMATIChESKIE_METODY.doc
Скачиваний:
92
Добавлен:
10.06.2015
Размер:
1.94 Mб
Скачать

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

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

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

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

Задачи нелинейного программирования делятся на следующие типы:

  1. Когда нелинейная ЦФ и линейная – система ограничений;

  2. Линейная ЦФ и нелинейные ограничения;

  3. Нелинейная ЦФ и система нелинейных ограничений.

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

Оптимальное решение – значение вектора входных параметров x* =x1,x2,xnи соответствующее ему значение ЦФ.L(x*) – достигающая максимального значения.

Локальным оптимальным решением называется значение ЦФ L(x*) экстремальная в некоторой дельта окрестности.

Глобальным оптимальным решением является экстремальное значение ЦФ во всей ОДР.

Допустимость – любой вектор xвходных параметров, удовлетворяющий условиям ограничений называется допустимым вектором или допустимой точкой. Множество допустимых точек задает ОДР.

Если наилучшее решение, но не экстремальное находится на границе ОДР, то такое решение называется условно оптимальным.

Ограничение в виде неравенства обеспечивает нахождение вектора входных параметров внутри ОДР.

Ограничение в виде равенства обеспечивает нахождения вектора входных параметров на пересечении гиперповерхностей.

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

Градиент. Линией уровня называется множество точек, на которых ЦФ имеет постоянные значения. Если в какой-либо точке функция непрерывна и дифференцируема, то в этой точке существует градиент ЦФ. Градиент указывает направление наискорейшего возрастания функции, антиградиент – противоположные направления – убывания. Градиент определяется как вектор-столбец первых частных производных целевой функцииL(x) по переменнойx.

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

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

Необходимые и достаточные условия оптимальности решения

Полностью критерии оптимальности для задач НЛП не разработаны. Он формулируется для некоторого круга задач. Необходимыми условиями нахождения локального экстремума функции является:

  1. ЦФ дифференцируема в точке x*;

  2. Если первая производная ЦФ равна 0 в точке x*, то эта точка является стационарной.

Достаточными условиями существования локального экстремума являются названные необходимые условия и следующие: вторые производные ЦФ должны быть положительно определены. В случае поиска максимального значения вторые производные должны быть отрицательно определены.

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

Методы прямого поиска. Суть этих методов состоит в том, что для поиска экстремального значения используются только значения ЦФ. Большинство методов этой группы основаны на экспериментальных данных и отражают опыт практических исследований, но строго теоретического обоснования не имеют.

К достоинствам этих методов относится:

  • Простота алгоритма;

  • Возможность вычислить значение ЦФ практически во всех точках.

Недостаток:

  • Трудность при обработке Седловых точек.

К этим методам относятся: метод покоординатного спуска, метод Хука-Дживса, метод Розенброка, метод Пауэлла, метод регулярного многогранника, метод деформируемого многогранника, метод скользящего допуска.

Метод покоординатного спуска

Суть метода состоит в том, что поиск решения выполняется по каждой оси (направление изменения переменной xi). Выбирается первая переменнаяx1(первая ось координат) и выполняется перемещение по этой оси. В каждой точке вычисляется значение ЦФ. Движение вдоль выбранной оси координат прекращается в тот момент, когда очередная точка будет иметь значение ЦФ большее, чем в предыдущей точке.

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

Для организации поиска метода покоординатного спуска используется соотношение xk=xk-1+ak∙Uk, гдеxk– координаты текущей точки поиска,xk-1 – координаты предыдущей точки поиска,Uk– единичный вектор, определяющий направление спуска наk-м шаге. Может принимать значения +1 и -1, что обеспечивает перемещение по оси в одном из двух направлений.ak– размер шага. Одна итерация включает в себя проход по каждой оси координат.

Алгоритм метода:

  1. Определить координаты стартовой точки;

  2. Вычислить значение ЦФ в этой точке;

  3. Выбрать очередную ось и прибавить дельта x(шаг итерации)

  4. Вычислить значение ЦФ в текущей точке;

  5. Если значение ЦФ в текущей точке меньше, чем в предыдущей, то сделать еще один шаг в том же направлении и перейти к пункту 4. Если значение ЦФ в текущей точке больше, чем в предыдущей, то прейти к пункту 6.

  6. Определить, был ли сделанный шаг в этом направлении первым, если да, то запомнить, что по текущей оси по текущему направлению сделан первый неудачный шаг. Перейти к пункту 7. Если нет, перейти к пункту 8.

  7. Сменить направление движения по текущей оси и прейти к пункту 4.

  8. Проверить все ли оси координат просмотрены, если да – перейти к пункту 9, если нет – перейти к пункту 3.

  9. Проверить по всем ли осям координат сделано два неудачных первых шага. Если да, то уменьшить дельта x и перейти к пункту 10, если нет – перейти к пункту 3.

  10. Проверить, достигнута ли требуемая точность, если да – перейти к шагу 11, если нет, то перейти к шагу 3 и начать просмотр с первой оси координат.

  11. Остановить вычисления, вывести значение ЦФ и координаты точки экстремума.

Градиентные методыпоиска экстремума при своей работе требуют вычисления не только значения ЦФ на каком-либо множестве точек, но и вычисления первой производной на том же множестве, иногда вычисление второй производной.

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

Метод градиентного спуска.

Суть его заключается в том, что в каждой i-той точке алгоритма вычисляется градиент. Определяются направления движения и шаг. Строится последовательность точек, переходя от одной точке к другой, достигается точка минимума. В точке минимума все элементы градиента принимают значение 0. Для определения координат очередной точки используется антиградиент – противоположное направление градиента.

Размер шага модно определить по различным правилам: размер шага может быть с фиксированным коэффициентом изменения и с оптимальным подбором.

Для случая с фиксированным коэффициентом изменение размера шага координаты точки на k-ом шаге по формуле:xk=xk-1-sk

Размер шага skопределяется по формулеsk=dkградf(xk-1) гдеdk– коэффициент изменения шага,dk<1

Критерий остановки алгоритма – это выполнение следующего условия |-градf(sk)|<E,E-точность вычисления.

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

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

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

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

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

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

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

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

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

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

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

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

Итак, при

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

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

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

,

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

с m + n неизвестными .

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

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

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

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

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

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

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

Решение.

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

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

.

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

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

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

.

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

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

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

.

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]