Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по моделированию.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
1.77 Mб
Скачать

Лекция 10

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

Рассмотренные нами модели линейного программирования основаны на предположении о линейной зависимости между характеристиками объекта и

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

Целевая функция и ограничения модели (2.8) - (2.1) являются нелинейными функциями элементов решения , t, и S. Следовательно, рассмотренная нами в лекции № 2 задача оптимизации режимов процесса рамного пиления является задачей нелинейного программирования.

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

Пример:

(10.1)

В этой задаче нелинейной является целевая функция модели.

В задаче

(10.2)

Нелинейно 2-е ограничение модели.

Задачи нелинейного программирования намного сложнее и разнообразнее, чем ЗЛП. Для их решения не существует универсальных методов, аналогичных, например, симплекс методу, который используется для решения задач линейного программирования. Это объясняется отсутствием многих свойств решений, которые имели место и использовались при реализации алгоритмов решения ЗЛП. В частности , оптимальное решение ЗНП может находиться как внутри так и на границе ОДР. В задачах же линейного программирования оптимальное решение всегда находиться на границе ОДР.

Рассмотрим пример, иллюстрирующий это свойство задач нелинейного программирования. Пусть требуется решить следующую задачу:

( -2)2+( -5)2 min (10.3)

1 5

2 7.

Легко определить что оптимальным для этой задачи будет решение =2; =5,

Причем эти значения переменных и лежат внутри ОДР.

Рассмотрим теперь другую, по внешнему виду очень напоминающую предыдущую, задачу:

( -2)2+( -5)2 max

1 5 (10.4)

2 10

Для этой задачи оптимальным решением будет точка, лежащая на границе ОДР =5; =10.

Градиентные методы нелинейного программирования.

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

Рассмотрим этот метод применительно к задаче отыскания max функции двух переменных: F( ; ). Будем считать, пока, что ограничения в модели отсутствуют. Рассмотрим координатную плоскость, по осям которой будем откладывать значение переменных и . Изобразим на этой плоскости линии уровня.

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

РИС.10.1

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

Предположим, что отыскание максимума начинается с вычисления функции F(X1,X2) в некоторой произвольной точке с координатами (Х1020). Далее для отыскивания точки max можно двигаться в любом из бесчисленного множества направлений на плоскости. Учитывая, что положение точки максимума неизвестно, лучшим из этого множества направлений будет, по – видимому, то, в котором целевая функция возрастает быстрее всего. Это направление называется градиентом функции. Отметим, что в каждой точке координатной плоскости направление градиента перпендикулярно касательной к линии уровня, проведенной через ту же точку. В математическом анализе доказано, что составляющие вектора градиента функции являются ее частные производными по аргументам. Для функции 2-х аргументов компоненты вектора градиента определяются по формуле:

В общем виде для функции n переменных у (Х12;….Хn) выражение для вектора градиента имеет следующий вид:

Из ( 10.5 ) и ( 10.6 ) следует что использование градиентного метода предполагает возможность вычисления первых производных целевой функции.

Рассмотрим основные этапы применения градиентного метода.

1.выбирается некоторая начальная точка .

2.вычисляются частные производные от целевой функции по аргументам и составляется вектор grad по формуле (10.6)

3.вычисляются компоненты этого вектора для данной исходной точки

4.осуществляется переход в следующую точку или делается рабочий шаг в направлении grad у. При этом значения переменных в новой точке определяем по формулам:

(10.7)

(10.8)

В формулах ( 10.7 ) и (10.8 ) - некоторое число, которое называется длинной шага.

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

:

Рис 10.2

Рассмотрим пример. Пусть требуется найти максимум функции

У= (10.9)

Легко определить, что оптимальным решением этой задачи будет

Соответствующее оптимальному решению значение целевой функции будет равно 50:

У=50 (10.10)

Предположим, что исходная точка Х поиска находится в начале координат:

X ( ). Т.е. X1=0, X2=0. Расcчитаем значение целевой функции в этой точке:

= . (10.11)

Найдем частные производные функции по X1 и X2:

Чтобы получить значения компонент вектора градиента в исходной точке, подставим в ( ) и ( ) Х1=0 и X2=0

Таким образом в исходной точке компоненты градиента равны 8 и 12. Поэтому координаты следующей точки вычисляются по формуле:

Зададимся значением =0,1 и найдем для этого значения координаты и следующей точки X:

Рассчитаем значение У1 целевой функции в этой новой точке:

У1= =16,1

Сравнив значения целевой функции в исходной точке и точке

Видим, что при переходе к точке целевая функция увеличилась на 18.

То есть, выбранное нами направление действительно соответствует направлению возрастания функции.

Далее находим координаты следующей точки X:

Подставив полученные значения и в ( ),

получаем у =28,7. Сравним полученные нами в различных точках значения целевой функции:

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

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

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

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

При использовании градиентного метода необходимо учитывать следующее.

Градиентный метод является приближенным методом отыскания экстремума. Тоесть в результате его применения можно получить лишь приближенное решение задачи.

Если отыскивается min, а не max целевой функции, то в формулах ( 10. )- (10.8 ) знаки перед вторыми слагаемыми изменяются на противоположные. В этом случае движение осуществляется теперь в направлении, противоположном направлению градиента, которое называется антиградиентом.

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

(10.24)

Тогда приближенное значение первой компоненты вектора grad можно найти из формулы:

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

(10.25)

Далее находят приближенное значение второй компоненты вектора градиента,

и, аналогичным образом, всех остальных компонент.

Лекция 11