Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Системный анализ. Учебное пособие
.pdf
Пример 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
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
