Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Системный анализ. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
1 Мб
Скачать
☆
Пример 2.2. Рассмотрим случай, когда известно заранее (априори),
что целевая функция
()yfx
имеет на отрезке
только один ми-
,ab
нимум (рис. 2.2).
Рис. 2.2. Пример функции, имеющей один минимум
В этом случае можно воспользоваться следующим методом:
1) зададим шаг вычислений h и построим две числовые последова-
тельности:
xa
0
,
xah
1
,
2
2xah
, …,
и
00
,
()yyx
11
2) их анализ покажет, что
Между
и
y
y
1k
начает, что наименьшее значение
,
yy

11
kk

и его можно выбрать как
;
()yyx
yyy y yy y
   
012 1 1 2kkkk
убывание меняется по возрастанию. Это оз-
1k
()fx

достигается на отрезке
(приближенно).
()
yfx
kk
.
Если требуемая точность в решении задачи еще не обеспечена, то нужно уменьшить шаг h и повторить описанную процедуру не для отрез­ка
, а для отрезка
,ab
,
xx

11
kk

.
Если вместо минимума ищется максимум целевой функции, то ис­пользуется аналогичная процедура, но знаки неравенств изменятся на противоположные.
31
2.3. МНОГОМЕРНЫЕ ЗАДАЧИ ОПТИМИЗАЦИИ
Выше мы рассматривали одномерные задачи оптимизации, в кото­рых целевая функция зависела только от одного аргумента. Однако по­давляющее число реальных задач оптимизации, представляющих инте­рес, являются многомерными: в них целевая функция зависит от не­скольких аргументов, причем их число может быть весьма большим.
В рассмотренной ранее задаче о химическом производстве
целевая функция зависела от температуры. Однако на самом деле наряду с тем­пературой производительность зависит также от давления, физически связанного с температурой, от соотношения между концентрациями ис­пользуемых реагентов, катализаторов и других факторов. Таким обра­зом, задачи выбора наилучших условий химического производства – это типичная многомерная задача оптимизации.
Математическая постановка таких
задач аналогична их постановке в одномерном случае: ищется наименьшее (наибольшее) значение целе­вой функции, заданной на некотором множестве
E возможных значений
ее аргументов. В случае, когда целевая функция непрерывна, а множе­ство
E является замкнутой ограниченной областью, остается справедли-
вой теорема Вейерштрасса. Тем самым выделяется класс задач оптими­зации, для которых гарантировано существование решения. Именно к этому классу и будут принадлежать рассматриваемые ниже задачи. В случаях, когда целевая функция задается аналитической формулой, применимы все возможности исследования теории функций нескольких переменных. В других случаях
никакой формулы для целевой функции нет, а имеется лишь возможность определить ее значение в любой точке рассматриваемой области (с помощью расчетов, в результате экспери­мента и пр.). В таких задачах в процессе решения мы фактически можем найти значения целевой функции лишь в конечном числе точек, и по этой информации требуется приближенно
установить ее наименьшее
значение для всей области.
Многомерные задачи, естественно, являются более сложными и тру­доемкими, чем одномерные, причем обычно трудности при их решении возрастают с увеличением размерности. Действительно, возьмем самый простой по своей идее приближенный метод поиска наименьшего зна­чения функции, который рассматривался раньше для одномерных задач. Покроем рассматриваемую
область сеткой с шагом h и определим зна­чения функции в ее узлах. Сравнивая полученные числа между собой, найдем среди них наименьшее и примем его приближенно за наимень-
32
шее значение функции для всей области. Этот метод носит название
x
метода сплошного перебора.
Замечание. Указанный метод применим для одномерных, двумер-
ных и трехмерных задач. Для задач большей размерности из-за возрас­тающего количества вычислений он малоэффективен. Иногда сплош­ной перебор замещают случайным поиском, когда точки сетки просмат­риваются не подряд, а в случайном порядке. В результате поиск наименьшего значения целевой функции ускоряется, но теряет
свою
надежность.
Пример 2.3. В качестве примера рассмотрим следующую задачу:
(3)( 2) min;xx
22
12
2
12
10x 
2
1
30xx
;
.
0x
;
На рис. 2.3 допустимая область закрашена серым цветом. Задача
заключается в нахождении такой точки из допустимой области, для которой
(3)( 2) minxx
чение. Заметим, что точки
(3)( 2) ,xxс
22
12
22
12
лежат на окружности радиусом с с центром
имеет наименьшее возможное зна-
удовлетворяющие равенству
,, ()
x
12
в точке (3, 2). Для каждого неотрицательного с такая окружность назы­вается линией уровня целевой функции, отвечающей заданному значе­нию с. Таким образом, задача заключается в нахождении минималь­ного с, при котором хотя бы одна точка окружности принадлежит допу­стимой области. Иными словами, нужно найти окружность наимень­шего радиуса, которая пересекала
бы допустимую область. Как видно из рис. 2.3, такая окружность наименьшего радиуса соответствует с = 2 и пересекает допустимую область в единственной точке (2, 1). Поэтому (2, 1) – оптимальное решение, и значение целевой функции в этой точке равно двум.
Использованный выше подход состоит в нахождении оптимального решения с помощью построения линии уровня целевой функции, отвеча­ющей наименьшему
значению, при котором она пересекает допустимую
33
область. Очевидно, что такой геометрический способ решения подходит
x
M
M
f
x
x
x
x
M
f
для очень простых задач и практически неприменим в задачах, где число переменных больше двух.
Рис. 2.3. Геометрический способ решения задачи нелинейного программирования:
1 – линии уровня функции; 2 – оптимальная точка; 3 – допустимая область
Рассмотрим методы, позволяющие вести поиск наименьшего значе­ния целевой функции целенаправленно.
1. Метод покоординатного спуска. Пусть нужно найти наимень-
шее значение целевой функции
() (, , , )
ufM fxx x . Здесь че-
12
n
рез M обозначена точка n-мерного пространства с координатами
(, , , )
12
точку
xx
:
n
(, ,, )
xx x и рассмотрим функцию f при фиксиро-
01020 0
ванных значениях всех переменных, кроме первой: Тогда она превратится в функцию одной переменной переменную, будем двигаться от начальной точки убывания функции, пока не дойдем до ее минимума при
(, , , )
xx x
12
n
n
. Выберем некоторую начальную
(, , , )
xx x .
120 0
. Изменяя эту
1
x в сторону
110
111
n
x , после
которого она начинает возрастать. Точку с координатами
(, , ,, )
xx x обозначим через
11 20 30 0
n
, при этом
1
() ()
MfM .
01
34
(, ,, )
x
x
f
x
x
x
x
M
f
x
x
x
f
f
fxy
f
x
Далее зафиксируем переменные функцию f как функцию одной переменной Изменяя
, будем опять двигаться от начального значения
2
xx
11 30 0
2
n
:
(, , ,, )
xxx x .
11 2 30 0
и рассмотрим
n
x
220
в сторону убывания функции, пока не дойдем до минимума при
x . Точку с координатами
221
через 
, при этом
2
() ()
MfM
12
(, , ,, )
xx x обозначим
11 21 30 0
n
.
Проведем такую же минимизацию целевой функции по переменным
, , ,
xx . Дойдя до переменной
34
n
, снова вернемся к
n
и продол-
1
жим процесс. Эта процедура вполне оправдывает название метода. С ее помощью мы построим последовательность точек
,, ,...MMM ,
012
которой соответствует монотонная последовательность точек значений
() () () ()
функции тором шаге k, можно приближенно принять значение функции
MfMfM fM  … Обрывая ее на неко-
012
n
()
fM
k
за ее наименьшее значение в рассматриваемой области.
Отметим, что описанный метод сводит задачу поиска наимень­шего значения функции нескольких переменных к многократному решению одномерных задач оптимизации. Если целевая функция
(, , , )
xx x задана явной формулой и является дифференцируемой,
12
n
то мы можем вычислить ее частные производные и использовать их для определения направления убывания функции по каждой переменной и поиска соответствующих одномерных минимумов. В случае же, когда явной формулы для целевой функции нет, одномерные задачи следует решать с помощью методов, рассмотренных выше.
Иллюстрация линий уровня некоторой функции
метода продемонстрирована на рис. 2.4, а. Здесь вдоль
(, )u
двух переменных функ-
ция сохраняет постоянные значения, равные 1, 3, 5, 7 и 9. Показана тра­ектория поиска ее наименьшего значения, которое достигается в точке 0, с помощью метода покоординатного спуска.
2. Метод градиентного спуска. Пусть некоторая функция f зависит
от трех переменных x, y и z. Вектор, состоящий из ее частных производ- ных по этим переменным, называется градиентом функции:
grad f x y z
(, ,)




ff
ijk
. (2.13)
yz
Здесь i, j, k – единичные векторы, параллельные координатным осям.
35
а б в
Рис. 2.4. Поиск наименьшего значения функции:
а – методом покоординатного спуска; б – методом градиентного спуска; в – методом
наискорейшего спуска
Частные производные характеризуют изменение функции f по каж­дой независимой переменной по отдельности. Образованный с их помо­щью вектор градиента дает общее представление о поведении функции в окрестности точки (x, y, z). Направление этого вектора является направлением наиболее быстрого возрастания функции в данной точке. Противоположное ему направление, которое часто называют антигра- диентом, представляет
собой направление наиболее быстрого убыва-
ния функции. Модуль градиента
2
(2.14)
grad f x y z
(, ,)

(, ,) (, , ) (, ,)
fxyz fxyz fxyz

 

 

 
22

xyz
 
определяет скорость возрастания и убывания функции в направлении градиента и антиградиента.
Выберем начальную точку, вычислим в ней градиент рассматривае­мой функции и сделаем шаг в обратном, антиградиентном направлении (рис. 2.4, б). В результате придем в точку, в которой значение функции будет меньше первоначального. В новой точке повторим процедуру: снова вычислим градиент
функции и сделаем шаг в обратном направле­нии. Продолжая этот процесс, мы будем двигаться в сторону убывания функции. Специальный выбор направления движения на каждом шаге позволяет надеяться на то, что в данном случае приближение к наимень-
36
шему значению функции будет более быстрым, чем в методе покоорди-
f
x
f
натного спуска.
Метод градиентного спуска требует вычисления градиента целевой функции на каждом шаге. Если она задана аналитически, то это, оче­видно, не составляет особенных проблем и все сводится к явным фор­мулам для частных производных, определяющих градиент. В против­ном случае
частные производные в нужных точках приходится вычис­лять приближенно, заменяя их соответствующими разностными отно­шениями:
(,, ,,) (,,,,)
f
xx

xxxxfxxx
11
ii


ii n i n
. (2.15)
Замечание. Здесь
нельзя брать слишком малым, а значения
i
функции нужно вычислять с достаточно высокой степенью точности, иначе при вычислении разности
(, , , , ) (, , , , )
fx x x x fx x x  
11
ii n i n
будет допущена достаточно большая ошибка, что сделает численное дифференцирование недопустимо грубым.
3. Метод наискорейшего спуска. Следует отметить одно важное обстоятельство. Вычисление градиента на каждом шаге, позволяющее все время двигаться в направлении наиболее быстрого возрастания или убывания целевой функции, может и замедлять вычислительный про­цесс, так как подсчет градиента – фактически
более сложная процедура, чем вычисление значений самой функции. В связи с этим весьма часто используется модификация градиентного метода, называемая методом наискорейшего спуска. В этом методе после вычисления градиента функции в начальной точке в направлении антиградиента выполняется не маленький шаг, а движение происходит до тех пор, пока функция убывает (рис. 2.4, в).
Достигнув точки минимума на данном направле­нии, опять вычисляют градиент функции и повторяют описанную выше процедуру. При этом вычисление градиента происходит значительно реже, только при изменении направлений движения.
Замечание. В методе наискорейшего спуска траектория движения
к цели может быть несколько длиннее, чем в методе градиентного спуска, однако машинное время вычислений за счет более резкого вы­числения градиента может быть существенно меньше.
37
Поиск наименьшего значения одной и той же функции всеми выше-
перечисленными методами наглядно продемонстрирован на рис. 2.4.
Следует сказать, что описанные методы хороши далеко не во всех случаях. Приступая к решению практической задачи без исследования ее особенностей невозможно выбрать наиболее эффективный метод и построить алгоритм. Например, все рассмотренные методы ориенти­рованы на
случай, когда наименьшее значение функции достигается внутри исследуемой области, и становятся малоэффективными, если наименьшее значение достигается на границе области или вблизи нее. Существуют и так называемая проблема оврагов и многоэкстремаль­ность, требующие разработки специальных методов, решающих возни­кающие оптимизационные задачи. Для более глубокого изучения ука­занной проблематики следует обратиться к
специальной научно-мето-
дической литературе.
2.4. ПРЕДМЕТ И ЗАДАЧИ ТЕОРИИ ИГР
Рассмотрим ситуации, когда некоторые параметры, от которых за­висит успех операции, неизвестны и нет никаких данных, позволяющих судить о том, какие их значения более вероятны, а какие – менее. Неопределенными могут быть как внешние, «объективные» условия операции, так и «субъективные» – сознательные
действия противников, соперников или других лиц. Очевидно, что если речь идет о неопреде­ленной ситуации, то выводы, вытекающие из научного исследования, не могут быть ни точными, ни однозначными, но и в этом случае коли­чественный анализ может принести пользу при выборе решения. Такого рода задачами занимается специальный раздел математики, называю­щийся
теорией игр и статистических решений. В некоторых редких случаях разработанные в нем методы дают возможность фактически найти оптимальное решение. Однако чаще всего эти методы позволяют попросту глубже разобраться в ситуации, оценить каждое решение с различных (иногда противоречивых) точек зрения, взвесить его пре­имущества и недостатки и, в конце концов, принять
решение – если не единственно правильное, то, по крайней мере, до конца продуманное. Всегда полезно представить варианты в такой форме, чтобы способ вы­бора был грубым, а риск – по возможности минимальным. Нередко за­дача ставится так: какой ценой можно заплатить за недостающую ин­формацию, чтобы за ее счет повысить эффективность операции?
38
Наиболее простыми из ситуаций, рассматриваемых в теории игр, яв­ляются так называемые конфликтные ситуации, в которых сталкива­ются интересы двух (или более) сторон, преследующих разные (иногда противоположные) цели, причем выигрыш каждой стороны зависит от того, как себя поведут другие. Цель теории игр состоит в выработке ре­комендаций по разумному поведению участников
конфликта. От реаль­ного конфликта игра отличается тем, что ведется по определенным пра­вилам. Эти правила указывают «права и обязанности» участников, а также исход игры – выигрыш или проигрыш каждого участника в за­висимости от сложившейся обстановки. Примем, что выигрыши (про­игрыши) участников имеют количественное выражение (например, в шахматах можно считать «
выигрыш» за единицу, «проигрыш» –
за минус единицу, «ничью» – за нуль).
В игре могут сталкиваться интересы двух или более участников; в первом случае игра называется парной, во втором – множественной. Участники множественной игры могут образовывать коалиции (посто­янные или временные). Ходом называется выбор игроком одного из предусмотренных правилами игры действий и его осуществление
.
Ходы бывают личные и случайные. При личном ходе игрок сознательно выбирает и осуществляет тот или другой вариант действий (пример – любой ход в шахматах). При случайном ходе выбор осуществляется не волей игрока, а каким-то механизмом случайного выбора (например, бросанием монеты). Некоторые игры (так называемые «чисто азарт­ные») состоят только из
случайных ходов, ими теория игр не занимается. Ее цель – оптимизация поведения игрока в игре, где (может быть, наряду со случайными) есть личные ходы. Такие игры называются стра­тегическими. Стратегией игрока называется совокупность правил, определяющих выбор варианта действий при каждом личном ходе в за­висимости от сложившейся ситуации.
Игра называется конечной, если
у каждого игрока имеется в распо­ряжении только конечное число стратегий (в противном случае игра называется бесконечной). Бывают игры (например, шахматы), где число стратегий конечно, но так велико, что полный их перебор практи­чески невозможен.
Оптимальной стратегией игрока называется такая, которая обеспе-
чивает ему наилучшее положение в данной игре, т.
е. максимальный выигрыш. Если игра повторяется неоднократно и содержит кроме личных еще и случайные ходы, оптимальная стратегия обеспечивает максимальный средний выигрыш. Задача теории игр – выявление
39
оптимальных стратегий игроков. Основное предположение в теории игр,
В
B
А
B
исходя из которого находятся оптимальные стратегии, состоит в том, что противник (в общем случае – противники), по меньшей мере, так же разумен, как и сам игрок, и делает все для того, чтобы добиться своей цели.
Игра называется игрой с нулевой суммой, если сумма выигрышей всех игроков равна нулю (т. е. каждый игрок выигрывает только за счет других). Самый простой случай – парная игра с нулевой суммой, назы­ваемая антагонистической (или игрой со строгим соперничеством).
Антагонистические матричные игры. Самым простым случаем, подробно разработанным в теории игр, является конечная парная игра с нулевой суммой (антагонистическая игра двух
лиц или двух коалиций). Рассмотрим такую игру G, в которой участвуют два игрока А и В, име­ющие противоположные интересы: выигрыш одного равен проигрышу другого. Так как выигрыш игрока А равен выигрышу игрока В с обрат­ным знаком, мы можем интересоваться только выигрышем а игрока А. Естественно, А хочет максимизировать Пусть у нас имеется m возможных стратегий
ника – n возможных стратегий
а
игрой m × n). Обозначим как зуется стратегией
A , а противник – стратегией
i
выигрыш в случае, если игрок А поль-
ij
что для каждой пары стратегий
а
рыш)
нам известен. Тогда можно составить прямоугольную таблицу
ij
а, а В – минимизировать его.
А A А
12
, , ...,
ВВ (такая игра называется
12
,
В
ij
n
выигрыш (или средний выиг-
,, , ...,
а у против-
m
. Предположим,
j
(матрицу), в которой перечислены стратегии игроков и соответствую­щие выигрыши.
Представление игры в матричной форме
j
B
B2 …
A
i
1
B
n
A1 a11 a12 … a1n
A2 a21 a22 … a2n
… … … … …
Am
a
m1
a
mn
am2 …
40
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]