Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Математические модели в экономике..pdf
Скачиваний:
22
Добавлен:
05.02.2023
Размер:
2.41 Mб
Скачать

31

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

·· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·

Вэтом разделе мы рассмотрим задачи нелинейной оптими-

зации (называемые иначе оптимизационными задачами нелиней-

ного программирования), математические модели которых содержат нелинейные зависимости от переменных. Источники нелинейности в задачах подобного типа могут относиться, в частности, к одной из двух категорий [11]:

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

2.Установленные (постулируемые) руководством правила поведения или задаваемые зависимости, например правила расчета

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

· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·

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

32

3.1 Специфика нелинейных программ и методы их решения

Многообразие методов решения линейных программ имеет в своей основе идею упорядоченного перебора опорных планов (вершин) исходной или сопряженной задачи. Для нелинейных же программ простого метода решения, подобного cимплексному, нет по многим причинам [12].

Во-первых, множество планов может оказаться невыпуклым или иметь бесконечное количество «вершин».

Во-вторых, искомые экстремумы могут достигаться как на границе множества планов, так и внутри него.

В-третьих, в нелинейных программах возникает проблема поиска глобального экстремума среди множества локальных.

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

· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·

Существующие методы нелинейного программирования можно подразделить на следующие основные классы.

·· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·

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

Так, при отсутствии ограничений одна из простейших разновидностей градиентных методов – метод наискорейшего спуска – предлагает выбрать некоторую точку (план) X k и начальный шаг Hk , вычислить градиент функции в

выбранной точке grad F Xk и осуществить переход по градиенту (при макси-

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

· · · · · · · · · · · · · · · · · · · · · · ·

Пример 3.1 · · · · · · · · · · · · · · · · · · · · · · ·

Например, если нужно решить систему уравнений:

33

X 2 1 Y 1 3, Y ln X 1 ,

то можно заменить эту задачу задачей минимизации функции:

 

 

F(X ,Y )

 

X

2

 

 

 

 

 

 

 

2

+ Y ln X 1

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1 Y 2 3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(если система имеет решение, то искомый минимум равен нулю).

 

 

 

 

 

Градиент этой функции определяется вектором:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

grad F(X ,Y )

2

 

 

X

2

1

Y

 

 

 

2X Y

2 2 Y ln

X 1

 

X 1 ,

 

 

 

2 3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2 Y ln X 1

 

 

 

 

 

2

 

X

2

 

 

 

 

 

 

 

 

 

X

2

1

 

.

 

 

 

 

 

 

 

 

1 Y 2 3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Выбираем начальную точку M0 (2,1) и шаг h 1. Здесь значение функции

F(M

0

) 64, градиент в этой точке

 

grad F(M

0

) 64,066, 80,197 ,

нормиро-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ванный градиент (вектор единичной длины, составленный из компонент, де-

ленных на корень из суммы их квадратов) grad

н

F(M

0

) 0,62, 0,78 .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Смещаемся в направлении, обратном градиенту (ищем минимум), с

выбранным

шагом

в точку M1 M0 h gradн

F(M0 ) 2 1 0,62, 1 1 0,78

1,38, 1,78

и обнаруживаем, что F(M1) 14 F(M0 ).

 

 

 

 

Аналогичный переход с учетом

grad

н

F(M ) 0,19,

0,98 приводит в

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

точку

M

2

(1,19, 2,76), где

F(M

2

) 5,26,

grad

н

F(M

2

)

0,96, 0,27 . Переход

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

в очередную точку M3(2,15, 3,03)

дает F(M3) 11,33 F(M2 ). Соответственно

уменьшаем

шаг вдвое

 

h 0,5

и

получаем

точку

M4 (2,15, 3,03), где

F(M

4

) 3,78, grad

н

F(M

2

) 0,12,

0,99 . Очередной переход приводит в точку

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

сбольшим значением функции и приходится еще уменьшать шаг и т. д.

·· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·

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

Градиентные методы для задач с ограничениями, где при смещениях по градиенту приходится сталкиваться с опасностью «выскочить» за пределы допустимого множества решений, существенно усложняются (модифицированный метод Ньютона, методы возможных направлений Зойтендейка, сопряженных градиентов, проектируемых градиентов Розена и др.) [13].

34

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

2. Методы Монте-Карло. Здесь отыскивается n-мерный параллелепипед, включающий в себя множество планов, и затем моделируются N случайных точек с равномерным законом распределения в параллелепипеде (практически во всех программных средах предусмотрено наличие соответствующих датчиков псевдослучайных чисел).

В точках, попавших во множество планов, вычисляются значения функции и запоминается точка текущего экстремума. После этого берется параллелепипед меньших размеров с центром в найденной точке, и в нем вновь моделируются N случайных точек. Процесс такого стохастического моделирования заканчивается при малых размерах параллелепипеда. Методы Монте-Карло имеют преимущество над моделированием на детерминированной сетке, так как их точность имеет порядок 1N и не зависит от размерности задачи. Естественно, этими методами никто не пользуется при ручном счете; они просты для программной реализации и обычно используются при поиске начального приближения для градиентных методов.

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

4.Методы выпуклого программирования, реализующие поиск миниму-

ма выпуклой функции или максимума вогнутой на выпуклом множестве планов. Если множество планов – выпуклый многогранник, то эти методы допускают использование симплексного метода [14].

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

F X1, X2,..., Xn f1 X1 f2 X2 ... fn Xn .

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

ный эффект дает метод множителей Лагранжа.

Пусть требуется найти экстремумы функции F X при условиях fi X 0 (i 1...m).