Экстремальные и оптимальные методы в инженерной деятельности. Учебное пособие
.pdf
2.4.Геометрическаяинтерпретациязадачилинейногопрограммирования
Каждое из неравенств (2.8), (2.9) системы ограничений задачи геометрически определяет полуплоскость соответственно с граничными прямыми
ai1x1 + ai2x2 ≤ bi, x1 = 0 и x2 = 0.
В том случае, если система неравенств (2.8), (2.9) совместна, область ее решений есть множество точек, принадлежащих всем указанным полуплоскостям. Так как множество точек пересечения данных полуплоскостей — выпуклое, то областью допустимых решений задачи (2.7), (2.8), (2.9) является выпуклое множество, которое называется многоугольником решений (термин «многогранник решений» обычно употребляется, если n ≥ 3). Стороны этого многоугольника определяются прямыми, уравнения которых получаются из исходной системы ограничений (2.8), (2.9) заменой знаков неравенств на знаки точных равенств.
Таким образом, исходная задача линейного программирования состоит в нахождении такой точки многоугольника решений, в которой целевая функция принимает максимальное значение. Эта точка существует тогда, когда многоугольник решений не пуст и на нем целевая функция ограничена сверху. При указанных условиях в одной из вершин многоугольника решений целевая функция принимает максимальное значение. Для определения данной вершины построим линию уровня (см. уравнение целевой функции (2.7))
c1x1 + c2x2 = h |
(2.10) |
(где h — некоторая постоянная), проходящую через многоугольник решений, и будем продвигать ее в направлении вектора C = (c1, c2) до тех пор, пока она не пройдет через последнюю ее общую точку с многоугольником решений. Координаты указанной точки и определяют оптимальный план (решение) задачи.
Алгоритм нахождения решения задачи линейного программирования на основе ее геометрической
интерпретации
Данный алгоритм включает следующие этапы:
1) построение прямых, уравнения которых получены в результате замены в ограничениях (2.8), (2.9) знаков неравенств на знаки точных равенств;
31
Глава 2. Задачи оптимизации
2)нахождение полуплоскостей, определяемых каждым из ограничений задачи;
3)многоугольника решений;
4)построение вектора C = (c1, c2);
5)прямой c1x1 + c2x2 = h, проходящей через многоугольник решений;
6)движение прямой c1x1 + c2x2 = h в направлении вектора C,
врезультате чего либо находится точка (точки), в которой целевая функция принимает максимальное значение, либо устанавливается неограниченность сверху функции на множестве планов;
7)определение координат точки максимума функции и вычисление значения целевой функции в этой точке.
При нахождении решения рассматриваемой задачи возможны следующие случаи (рис. 2.4–2.9); на каждом из этих рисунков на оси ор-
динат — значения x2 на оси абсцисс — x1; вектор C изображен жирной стрелкой; пунктирными линиями показаны прямые с уравнением (2.10) при различных значениях h; жирной ломаной изображены границы области допустимых решений):
a) целевая функция принимает оптимальное значение в единственной точке (рис. 2.4, 2.7 и 2.8);
б) максимальное значение целевая функция принимает в любой точке отрезка AB (рис. 2.5);
в) оптимального решения не существует, так как целевая функция не ограничена сверху на множестве допустимых значений (рис. 2.6);
Fmax |
Fmax = +∞ |
|
A |
A |
Fmax |
B
Рис. 2.4. Оптимальное |
Рис. 2.5. Континуальное |
Рис. 2.6. Иллюстрация |
значение в единственной |
множество оптимальных |
отсутствия экстремума |
точке для ограниченного |
значений |
|
множества |
|
|
32
2.5.Нелинейнаяоптимизация. Геометрическаяинтерпретациязадачи нелинейногопрограммирования
Fmin A
Fmax
A
Рис. 2.7. Минимальное |
Рис. 2.8. Максимальное |
Рис. 2.9. Иллюстрация |
значение в единственной |
значение в единственной |
отсутствия области |
точке для неограни- |
точке для неограни- |
допустимых значений |
ченного множества |
ченного множества |
|
г) область допустимых решений не существует, так как система ограничений задачи несовместна (рис. 2.9); на данном рисунке каждая из парных стрелок лежит в полуплоскости, определяемой одной из неравенств (2.8) и (2.9), а начало каждой из стрелок лежит на прямой, определяющей границу соответствующей полуплоскости).
В алгоритме дается пример решения оптимизационной задачи линейного программирования на основе ее геометрической интерпретации.
2.5. Нелинейная оптимизация. Геометрическая интерпретация задачи нелинейного программирования
Общие положения. Класс задач нелинейного программирования значительно шире задач линейного программирования. Основные результаты в нелинейном программировании получены при рассмотрении задач, в которых система ограничений линейная, а целевая функция нелинейная. Даже в таких задачах оптимальное решение может быть найдено только для узкого класса целевых функций.
Рассмотрение задач нелинейного программирования начинают с классической задачи оптимизации. Задачи такого рода имеют место,
33
Глава 2. Задачи оптимизации
если задача нелинейной оптимизации состоит в определении максимального (минимального) значения функции
F (x1, x2, …, xn) |
(2.11) |
при условии, что ее переменные удовлетворяют соотношениям |
|
g(x1, x2, …, xn) ≤ bi, (i = 1, 2, …, k), |
(2.12) |
gi (x1, x2, …, xn) = bi, (i = k + 1, k + 2, …, m), |
(2.13) |
где F и gi — некоторые известные функции n переменных, а bi — заданные числа. (Как известно, если F и gi — линейные функции, то задача (2.11), (2.12) и (2.13) является задачей линейного программирования).
Здесь имеется в виду, что в результате решения задачи будет определена точка X * =(x1* , x2* ,..., xn* ), координаты которой удовлетворяют соотношениям (2.12) и (2.13) и такая, что для всякой другой точки X = (x1, x2, …, xn), удовлетворяющей условиям (2.11), выполняется неравенство F (x1* , x2* ,..., xn* ) ≥ F (x1, x2, …, xn) (если требуется определить мак-
симум целевой функции F), (F (x1* , x2* ,..., xn* ) ≤ F (x1, x2, …, xn) в случае нахождения минимума F).
Соотношения (2.12) и (2.13) образуют систему ограничений и включают в себя условия неотрицательности переменных, если такие условия имеются. Условия неотрицательности переменных могут быть заданы и непосредственно.
В евклидовом пространстве En система ограничений (2.12) и (2.13) определяет область допустимых решений задачи. В отличие от задачи линейного программирования она не всегда является выпуклой.
Если определена область допустимых решений, то нахождение решения задачи (2.11), (2.12) и (2.13) сводится к определению такой точки этой области, через которую проходит гиперповерхность наивысшего (наинизшего) уровня: F (x1, x2, …, xn) = h. (Напоминаем, что гиперповерхность есть обобщенное понятие обычной поверхности 3 мерного пространства на случай евклидова n мерного пространства. Обычно гиперповерхность задается одним уравнением F (x1, x2, …, xn) = 0 между координатами, где F — дифференцируемая функция. Примеры: уравнение a1x1 + a2x2 + …, + anxn = 0 задает гиперплоскость, а уравнение x 12 x 22 x n2 1 0 — гиперсферу.) Указанная точка может находиться как на границе области допустимых решений, так и внутри нее.
Если в задачах линейного программирования точки экстремума являются вершинами многогранника решений, то в задачах с нели-
34
2.5.Нелинейнаяоптимизация.Геометрическаяинтерпретациязадачинелинейногопрограммирования
нейной целевой функцией они могут лежать внутри области, на ребре (грани) или в вершине многогранника. Таким образом, с помощью методов линейного программирования, позволяющих осуществить переход из одной вершины многогранника в другую, можно получить оптимальное решение нелинейных задач при условии, что целевая функция удовлетворяет добавочным ограничениям.
Еще большие трудности возникают при решении задач с нелинейными ограничениями. И здесь найти оптимальное решение возможно только при условии, что целевая функция и функции, образующие систему ограничений, удовлетворяют подходящим свойствам.
Наиболее просто можно найти решение задач нелинейного программирования с двумя неизвестными. Так же, как и в линейном программировании, они могут быть решены графически, алгоритм их решения дан ниже.
Алгоритм нахождения решения задачи нелинейной
оптимизации на основе ее геометрической интерпретации
Алгоритм включает следующие этапы:
1)нахождение области допустимых решений задачи, определяемой соотношениями (2.12) и (2.13) (если она пуста, то задача не имеет решения);
2)построение гиперповерхности F (x1, x2, …, xn) = h;
3)определение гиперповерхности наивысшего (наинизшего) уровня или установление неразрешимости задачи из-за неограниченности функции (2.11) сверху (снизу) на множестве допустимых решений;
4)нахождение точки области допустимых решений, через которую проходит гиперповерхность наивысшего (наинизшего) уровня,
иопределение в ней значения функции (2.11).
Рассмотрим пример решения данного типа задачи по вышеприведенному алгоритму.
Пример 2.1. Найти решение следующей оптимизационной задачи нелинейного программирования на основе ее геометрической интерпретации:
F = x2 – x12 + 6x1 → max |
(2.14) |
при условиях |
|
2x1 + 3x2 ≤ 24, |
(2.15) |
x1 + 2x2 ≤ 15, |
(2.16) |
35
Глава 2. Задачи оптимизации
3x1 + 2x2 ≤ 24, |
(2.17) |
x2 ≤ 4, … x1, x2 ≤ 0. |
(2.18) |
Решение. Так как целевая функция (2.14) нелинейная, то задача (2.14)...(2.18) является задачей нелинейного программирования.
1. Областью допустимых решений данной задачи является многоугольник OABC (рис. 2.10). Следовательно, для нахождения ее решения нужно определить такую точку многоугольника OABC, в которой функция (2.14) принимает максимальное значение.
x2 |
|
|
|
12 |
|
|
|
11 |
3x1 + 2x2 = 24 |
|
|
10 |
|
|
|
9 |
F = 13 |
|
|
|
x1 |
||
8 |
|
||
|
|
||
7 |
|
|
|
6 |
|
F = 9 |
|
5 |
D |
x2 = 4 |
|
4 |
|||
A |
B |
||
3 |
|||
|
|||
ОДР |
|
||
2 |
|
||
|
|
||
1 |
|
C |
|
|
|
||
–3 –2 –1 О |
1 2 3 4 5 |
6 7 8 9 10 11 12 13 14 15 x1 |
|
–1 |
|||
–2 |
|
|
Рис. 2.10. План решения задачи нелинейного программирования
2. Построим линию уровня
F = x2 – x12 + 6x1 = h,
где h — некоторая постоянная, и исследуем ее поведение при различных значениях h.
36
2.6.МетодмножителейЛагранжа
3.При каждом значении h получаем параболу, которая тем выше
отдалена от оси Ox1, чем больше значение h. Значит, функция F принимает максимальное значение в точке касания одной из парабол с границей многоугольника OABC.
4.В данном случае это точка D, в которой линия уровня
F = x2 – x12 + 6x1 = 13
касается стороны AB многоугольника OABC. Координаты точки D можно найти из системы уравнений
x2 — x12 + 6x1 = 13
x2 = 4.
Решая эту систему, получим x1* = 3, x2* = 4.
Ответ: Подстановкой этих значений в целевую функцию получа-
ем Fmax = 13 при X * = (3; 4).
Из анализа решения этого примера можно сделать вывод, что точка максимальногозначенияцелевойфункцииможетинеявлятьсявершиной многоугольника решений. Поэтому процедура перебора вершин, которая в принципе может быть использована при решении задач линейной оптимизации, неприменима для решения задач нелинейной оптимизации.
Рассмотренная задача является частным случаем задачи нелинейного программирования, а именно задачи квадратичного программирования, в которой ограничения (в примере — (2.15)–(2.18)) являются линейными функциями, а целевая функция (в примере — (2.14)) представляет собой сумму линейной и квадратичной функций.
Как и в общем случае решения задач нелинейного программирования, для определения глобального экстремума задачи квадратичного программирования не существует эффективного вычислительного метода, если не известно, что любой локальный экстремум также и глобальный.
2.6. Метод множителей Лагранжа
Общие положения. В пункте 2.2 было дано понятие условного экстремума функции, то есть экстремума функции на множестве значений переменных, стесненном рядом ограничений (причем эти ограничения могут иметь вид равенств или неравенств).
37
Глава 2. Задачи оптимизации
Рассмотрим теперь задачу определения условного экстремума, когда область изменения переменных ограничена только условиями типа равенств, а именно, требуется найти экстремум целевой функции
z = f (x1, …, xn) |
(2.19) |
при дополнительных условиях |
|
gi (x1, …, xn) = bi (i = 1, 2, …, m), |
(2.20) |
где f (x1, …, xn), gi (x1, …, xn) — некоторые функции, а bi — некоторые константы.
Будем считать, что в задаче (2.19), (2.20) число неизвестных n строго больше числа уравнений m, в противном случае система уравнений (2.20) либо вообще не имеет решений (то есть множество тех значений переменных, на котором следует искать экстремум, пусто), либо имеет решение в виде изолированных точек (в этом случае экстремум можно найти, подсчитав значения экстремизируемой функции во всех таких изолированных точках).
Кроме того, чтобы задача (2.19), (2.20) имела смысл при определении условного экстремума функции z, хотя бы некоторые из функций f (x1, …, xn), gi (x1, …, xn) должны быть нелинейными. Иначе или система линейных уравнений (2.20) может вообще не иметь решения, или же линейная функция f (x1, …, xn) на множестве решений либо остается постоянной, либо может принимать как угодно большие значения (следовательно, в этом случае задача (2.19), (2.20) также не имеет решения).
Рассматриваемая задача в принципе могла бы быть решена следующим образом.
Из системы уравнений (2.20) выражаются m переменных как функции остальных n–m переменных, считающихся независимыми переменными задачи. В качестве этих независимых переменных можно брать, в частности, последние n–m компонент вектора x. Тогда можно записать
x1
x2
xm
1 xm 1, xm 2 , , xn |
|
|
2 xm 1, xm 2 , , xn |
. |
(2.21) |
|
|
|
m xm 1, xm 2 , , xn |
|
|
38
2.6.МетодмножителейЛагранжа
Будем считать, что на изменения независимых переменных xm + 1, xm + 2, …, xn уже не накладывается никаких ограничений.
Заменим теперь в функции z зависимые переменные x1, x2,.., xm соответствующими их выражениями из (2.21) и получим
z = f (φ1(xm + 1, …, xn), …, φ1(xm + 1, …, xn), xm + 1, xm + 2, …, xn) = = f (xm + 1, xm + 2, …, xn).
Поскольку функция f (xm + 1, xm + 2, …, xn) зависит только от незави-
симых переменных, ее экстремум (в частности, максимум) может быть найден (при условии, что эта функция дифференцируема) приравниванием нулю всех ее частных производных по всем независимым переменным. Заметим, приравниваются нулю все частные производные функции f (xm + 1, xm + 2, …, xn), а не исходной функции z.
Получается, на первый взгляд, задачу (2.19), (2.20) можно решить по простой схеме, а именно, путем преобразований соотношений (2.19), (2.20) решение задачи свести к определению экстремума функции многих переменных (2.21).
Но, к сожалению, изложенный метод, оказывается, мало эффективен и может быть применен только в редких случаях по двум причинам.
Во первых, для переменных x1, x2, …, xm из системы (2.21) было сделано допущение, что на их изменения не накладывается никаких ограничений, то есть областью изменений этих переменных является все (n–m)-мерное пространство, но такое допущение можно делать только исходя из вида функций gi (x1, …, xn), и может оказаться, что оно выполнимо не для всех переменных x1, x2, …, xm.
Во вторых, в этом методе требуется из системы (2.20) явно выразить m функций φ1, φ2, …, φm, фигурирующих в (2.21), а эта операция может быть выполнена практически лишь для очень простых функ-
ций gi (x1, …, xn).
Поэтому для решения задачи (2.19), (2.20) был разработан метод, называемый методом множителей Лагранжа, в котором уже не используется такая неэффективная операция, как переход от системы уравнений (2.20) к выражениям (2.21).
Теоретический материал. С помощью метода множителей Лагранжа можно определить экстремальные точки функции многих переменных при наличии дополнительных связей между оптимизируемыми
39
Глава 2. Задачи оптимизации
параметрами; это один из методов для решения экстремальных задач
сограничениями в виде равенств, сводящий задачу с ограничениями к обычной экстремальной задаче без ограничений, которые решаются известными способами.
Вернемся к рассмотрению общей задачи об условном экстремуме
сограничениями (2.19), (2.20).
Так как ограничения в этой задаче заданы уравнениями (2.20), для ее решения можно воспользоваться классическим методом отыскания условного экстремума функций нескольких переменных. Полагаем, что функции f (x1, …, xn) и gi (x1, …, xn) непрерывны вместе со своими первыми частными производными. Для решения задачи составим функцию:
m
F (x1, …, xn, λ1, …, λm) = f (x1, …, xn) + i [bi gi (xi , ..., xn )]. (2.22)
i 1
Функция F (x1, …, xn, λ1, …, λm) называется функцией Лагранжа, а числа λi — множителями Лагранжа. Необходимые условия экстремума функции состоят в равенстве нулю всех первых частных произ-
водных от F (x1, …, xn, λ1, …, λm) по x1, …, xn, λ1, …, λm. По каждой переменной xj и λi вычисляются частные производные от функции (2.22)
и приравниваются нулю:
F 0 (j = 1, …, n);
x j
F
i 0 (i = 1, …, m).
Врезультате получим систему (n + m) уравнений c (n + m) неизвестными (x1, …, xn), (λ1, …, λm):
|
|
F |
|
|
F |
m |
g |
|
|
|
|
||
|
|
|
|
|
|
|
i |
|
i |
0 |
( j 1, |
2, ..., n); |
|
|
x j |
|
x j |
|
|
||||||||
|
|
|
|
i 1 |
x j |
|
(2.23) |
||||||
|
F |
|
|
|
|
|
|
|
|
|
|||
|
bi gi (x1, ..., xn ) 0 |
(i 1, |
2, ..., m). |
||||||||||
|
i |
||||||||||||
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
||||
Решение этих уравнений относительно переменных xj и λi дает возможность определить положение стационарной точки. Следовательно, решая систему (2.23), получаем множество точек, в которых функция F (x1, …, xn, λ1, …, λm) может иметь экстремальные значения. При этом неизвестен способ определения точек глобального минимума или мак-
40
